Merge branch 'master' into calendar

This commit is contained in:
Jan-Christoph Borchardt 2011-08-19 22:58:45 +02:00
commit 86f6d2fc25
147 changed files with 6133 additions and 614 deletions

View File

@ -6,26 +6,74 @@ file_filter = l10n/<lang>/core.po
host = http://www.transifex.net
source_file = l10n/templates/core.pot
source_lang = en
trans.bg_BG = l10n/bg_BG/core.po
trans.ca = l10n/ca/core.po
trans.da = l10n/da/core.po
trans.de = l10n/de/core.po
trans.el = l10n/el/core.po
trans.es = l10n/es/core.po
trans.fr = l10n/fr/core.po
trans.id = l10n/id/core.po
trans.it = l10n/it/core.po
trans.nl = l10n/nl/core.po
trans.pl = l10n/pl/core.po
trans.pt_BR = l10n/pt_BR/core.po
trans.sv = l10n/sv/core.po
[owncloud.settings]
file_filter = l10n/<lang>/settings.po
host = http://www.transifex.net
source_file = l10n/templates/settings.pot
source_lang = en
trans.bg_BG = l10n/bg_BG/settings.po
trans.ca = l10n/ca/settings.po
trans.da = l10n/da/settings.po
trans.de = l10n/de/settings.po
trans.el = l10n/el/settings.po
trans.es = l10n/es/settings.po
trans.fr = l10n/fr/settings.po
trans.id = l10n/id/settings.po
trans.it = l10n/it/settings.po
trans.nl = l10n/nl/settings.po
trans.pl = l10n/pl/settings.po
trans.pt_BR = l10n/pt_BR/settings.po
trans.sv = l10n/sv/settings.po
[owncloud.files]
file_filter = translations/owncloud.files/<lang>.po
host = http://www.transifex.net
source_file = l10n/templates/files.pot
source_lang = en
trans.bg_BG = l10n/bg_BG/files.po
trans.ca = l10n/ca/files.po
trans.da = l10n/da/files.po
trans.de = l10n/de/files.po
trans.el = l10n/el/files.po
trans.es = l10n/es/files.po
trans.fr = l10n/fr/files.po
trans.id = l10n/id/files.po
trans.it = l10n/it/files.po
trans.nl = l10n/nl/files.po
trans.pl = l10n/pl/files.po
trans.pt_BR = l10n/pt_BR/files.po
trans.sv = l10n/sv/files.po
[owncloud.media]
file_filter = translations/owncloud.media/<lang>.po
host = http://www.transifex.net
source_file = l10n/templates/media.pot
source_lang = en
trans.bg_BG = l10n/bg_BG/media.po
trans.ca = l10n/ca/media.po
trans.da = l10n/da/media.po
trans.de = l10n/de/media.po
trans.el = l10n/el/media.po
trans.es = l10n/es/media.po
trans.fr = l10n/fr/media.po
trans.id = l10n/id/media.po
trans.it = l10n/it/media.po
trans.nl = l10n/nl/media.po
trans.pl = l10n/pl/media.po
trans.pt_BR = l10n/pt_BR/media.po
trans.sv = l10n/sv/media.po

BIN
3rdparty/css/chosen/chosen-sprite.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

340
3rdparty/css/chosen/chosen.css vendored Normal file
View File

@ -0,0 +1,340 @@
/* @group Base */
select.chzn-select {
visibility: hidden;
height: 28px !important;
min-height: 28px !important;
}
.chzn-container {
font-size: 13px;
position: relative;
display: inline-block;
zoom: 1;
*display: inline;
}
.chzn-container .chzn-drop {
background: #fff;
border: 1px solid #aaa;
border-top: 0;
position: absolute;
top: 29px;
left: 0;
-webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15);
-moz-box-shadow : 0 4px 5px rgba(0,0,0,.15);
-o-box-shadow : 0 4px 5px rgba(0,0,0,.15);
box-shadow : 0 4px 5px rgba(0,0,0,.15);
z-index: 999;
}
/* @end */
/* @group Single Chosen */
.chzn-container-single .chzn-single {
background-color: #fff;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
background-image: -o-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
background-image: linear-gradient(top, #eeeeee 0%,#ffffff 50%);
-webkit-border-radius: 4px;
-moz-border-radius : 4px;
border-radius : 4px;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
border: 1px solid #aaa;
display: block;
overflow: hidden;
white-space: nowrap;
position: relative;
height: 26px;
line-height: 26px;
padding: 0 0 0 8px;
color: #444;
text-decoration: none;
}
.chzn-container-single .chzn-single span {
margin-right: 26px;
display: block;
overflow: hidden;
white-space: nowrap;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
-moz-binding: url('/xml/ellipsis.xml#ellipsis');
text-overflow: ellipsis;
}
.chzn-container-single .chzn-single div {
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius : 0 4px 4px 0;
border-radius : 0 4px 4px 0;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
background: #ccc;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
border-left: 1px solid #aaa;
position: absolute;
right: 0;
top: 0;
display: block;
height: 100%;
width: 18px;
}
.chzn-container-single .chzn-single div b {
background: url('chosen-sprite.png') no-repeat 0 1px;
display: block;
width: 100%;
height: 100%;
}
.chzn-container-single .chzn-search {
padding: 3px 4px;
margin: 0;
white-space: nowrap;
}
.chzn-container-single .chzn-search input {
background: #fff url('chosen-sprite.png') no-repeat 100% -20px;
background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('chosen-sprite.png') no-repeat 100% -20px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('chosen-sprite.png') no-repeat 100% -20px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
background: url('chosen-sprite.png') no-repeat 100% -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
background: url('chosen-sprite.png') no-repeat 100% -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
background: url('chosen-sprite.png') no-repeat 100% -20px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
margin: 1px 0;
padding: 4px 20px 4px 5px;
outline: 0;
border: 1px solid #aaa;
font-family: sans-serif;
font-size: 1em;
}
.chzn-container-single .chzn-drop {
-webkit-border-radius: 0 0 4px 4px;
-moz-border-radius : 0 0 4px 4px;
border-radius : 0 0 4px 4px;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
}
/* @end */
/* @group Multi Chosen */
.chzn-container-multi .chzn-choices {
background-color: #fff;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
background-image: -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background-image: -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
background-image: -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
background-image: linear-gradient(top, #ffffff 85%,#eeeeee 99%);
border: 1px solid #aaa;
margin: 0;
padding: 0;
cursor: text;
overflow: hidden;
height: auto !important;
height: 1%;
position: relative;
}
.chzn-container-multi .chzn-choices li {
float: left;
list-style: none;
}
.chzn-container-multi .chzn-choices .search-field {
white-space: nowrap;
margin: 0;
padding: 0;
}
.chzn-container-multi .chzn-choices .search-field input {
color: #666;
background: transparent !important;
border: 0 !important;
padding: 5px;
margin: 1px 0;
outline: 0;
-webkit-box-shadow: none;
-moz-box-shadow : none;
-o-box-shadow : none;
box-shadow : none;
}
.chzn-container-multi .chzn-choices .search-field .default {
color: #999;
}
.chzn-container-multi .chzn-choices .search-choice {
-webkit-border-radius: 3px;
-moz-border-radius : 3px;
border-radius : 3px;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
background-color: #e4e4e4;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #e4e4e4), color-stop(0.7, #eeeeee));
background-image: -webkit-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
background-image: -moz-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
background-image: -o-linear-gradient(bottom, #e4e4e4 0%, #eeeeee 70%);
background-image: -ms-linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e4e4e4', endColorstr='#eeeeee',GradientType=0 );
background-image: linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
color: #333;
border: 1px solid #b4b4b4;
line-height: 13px;
padding: 3px 19px 3px 6px;
margin: 3px 0 3px 5px;
position: relative;
}
.chzn-container-multi .chzn-choices .search-choice span {
cursor: default;
}
.chzn-container-multi .chzn-choices .search-choice-focus {
background: #d4d4d4;
}
.chzn-container-multi .chzn-choices .search-choice .search-choice-close {
display: block;
position: absolute;
right: 5px;
top: 6px;
width: 8px;
height: 9px;
font-size: 1px;
background: url(chosen-sprite.png) right top no-repeat;
}
.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover {
background-position: right -9px;
}
.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close {
background-position: right -9px;
}
/* @end */
/* @group Results */
.chzn-container .chzn-results {
margin: 0 4px 4px 0;
max-height: 190px;
padding: 0 0 0 4px;
position: relative;
overflow-x: hidden;
overflow-y: auto;
}
.chzn-container-multi .chzn-results {
margin: -1px 0 0;
padding: 0;
}
.chzn-container .chzn-results li {
line-height: 80%;
padding: 7px 7px 8px;
margin: 0;
list-style: none;
}
.chzn-container .chzn-results .active-result {
cursor: pointer;
}
.chzn-container .chzn-results .highlighted {
background: #3875d7;
color: #fff;
}
.chzn-container .chzn-results li em {
background: #feffde;
font-style: normal;
}
.chzn-container .chzn-results .highlighted em {
background: transparent;
}
.chzn-container .chzn-results .no-results {
background: #f4f4f4;
}
.chzn-container .chzn-results .group-result {
cursor: default;
color: #999;
font-weight: bold;
}
.chzn-container .chzn-results .group-option {
padding-left: 20px;
}
.chzn-container-multi .chzn-drop .result-selected {
display: none;
}
/* @end */
/* @group Active */
.chzn-container-active .chzn-single {
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
box-shadow : 0 0 5px rgba(0,0,0,.3);
border: 1px solid #5897fb;
}
.chzn-container-active .chzn-single-with-drop {
border: 1px solid #aaa;
-webkit-box-shadow: 0 1px 0 #fff inset;
-moz-box-shadow : 0 1px 0 #fff inset;
-o-box-shadow : 0 1px 0 #fff inset;
box-shadow : 0 1px 0 #fff inset;
background-color: #eee;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
-webkit-border-bottom-left-radius : 0;
-webkit-border-bottom-right-radius: 0;
-moz-border-radius-bottomleft : 0;
-moz-border-radius-bottomright: 0;
border-bottom-left-radius : 0;
border-bottom-right-radius: 0;
}
.chzn-container-active .chzn-single-with-drop div {
background: transparent;
border-left: none;
}
.chzn-container-active .chzn-single-with-drop div b {
background-position: -18px 1px;
}
.chzn-container-active .chzn-choices {
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
box-shadow : 0 0 5px rgba(0,0,0,.3);
border: 1px solid #5897fb;
}
.chzn-container-active .chzn-choices .search-field input {
color: #111 !important;
}
/* @end */
/* @group Right to Left */
.chzn-rtl { direction:rtl;text-align: right; }
.chzn-rtl .chzn-single { padding-left: 0; padding-right: 8px; }
.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; }
.chzn-rtl .chzn-single div {
left: 0; right: auto;
border-left: none; border-right: 1px solid #aaaaaa;
-webkit-border-radius: 4px 0 0 4px;
-moz-border-radius : 4px 0 0 4px;
border-radius : 4px 0 0 4px;
}
.chzn-rtl .chzn-choices li { float: right; }
.chzn-rtl .chzn-choices .search-choice { padding: 3px 6px 3px 19px; margin: 3px 5px 3px 0; }
.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 5px; right: auto; background-position: right top;}
.chzn-rtl.chzn-container-single .chzn-results { margin-left: 4px; margin-right: 0; padding-left: 0; padding-right: 4px; }
.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 20px; }
.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
.chzn-rtl .chzn-search input {
background: url('chosen-sprite.png') no-repeat -38px -20px, #ffffff;
background: url('chosen-sprite.png') no-repeat -38px -20px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
background: url('chosen-sprite.png') no-repeat -38px -20px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('chosen-sprite.png') no-repeat -38px -20px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
background: url('chosen-sprite.png') no-repeat -38px -20px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
background: url('chosen-sprite.png') no-repeat -38px -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
background: url('chosen-sprite.png') no-repeat -38px -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
background: url('chosen-sprite.png') no-repeat -38px -20px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
padding: 4px 5px 4px 20px;
}
/* @end */

View File

@ -35,12 +35,21 @@ if( !OC_User::isLoggedIn()){
exit();
}
$CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" );
if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
$_ut = "strftime('%s','now')";
} else {
$_ut = "UNIX_TIMESTAMP()";
}
//FIXME: Detect when user adds a known URL
$query = OC_DB::prepare("
INSERT IGNORE INTO *PREFIX*bookmarks
INSERT INTO *PREFIX*bookmarks
(url, title, description, user_id, public, added, lastmodified)
VALUES (?, ?, ?, ?, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
VALUES (?, ?, ?, ?, 0, $_ut, $_ut)
");
$params=array(
urldecode($_GET["url"]),
urldecode($_GET["title"]),
@ -50,6 +59,7 @@ $params=array(
$query->execute($params);
$b_id = OC_DB::insertid();
if($b_id !== false) {
$query = OC_DB::prepare("
INSERT INTO *PREFIX*bookmarks_tags

View File

@ -49,9 +49,16 @@ if($filterTag){
$offset = isset($_GET["page"]) ? intval($_GET["page"]) * 10 : 0;
$params[] = $offset;
$CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" );
if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
$_gc_separator = ", ' '";
} else {
$_gc_separator = "SEPARATOR ' '";
}
//FIXME: bookmarks without tags are not being retrieved
$query = OC_DB::prepare("
SELECT url, title, description, GROUP_CONCAT( tag SEPARATOR ' ' ) AS tags
SELECT url, title, description, GROUP_CONCAT( tag $_gc_separator ) AS tags
FROM *PREFIX*bookmarks, *PREFIX*bookmarks_tags
WHERE *PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id
AND *PREFIX*bookmarks.user_id = ?

View File

@ -13,7 +13,7 @@
<autoincrement>1</autoincrement>
<default>0</default>
<notnull>true</notnull>
<length>64</length>
<length>4</length>
</field>
<field>
<name>url</name>

View File

@ -20,7 +20,7 @@ function getBookmarks() {
}
$.ajax({
url: 'ajax/updateList.php',
data: "tag=" + encodeURI($('#bookmarkFilterTag').val()) + "&page=" + bookmarks_page,
data: 'tag=' + encodeURI($('#bookmarkFilterTag').val()) + '&page=' + bookmarks_page,
success: function(bookmarks){
bookmarks_page += 1;
$('.bookmark_link').unbind('click', recordClick);
@ -37,35 +37,57 @@ function getBookmarks() {
}
function addBookmark(event) {
var url = encodeEntities($('#bookmark_add_url').val())
var title = encodeEntities($('#bookmark_add_title').val())
var description = encodeEntities($('#bookmark_add_description').val())
var tags = encodeEntities($('#bookmark_add_tags').val())
var taglist = tags.split(' ')
var tagshtml = '';
for ( var i=0, len=taglist.length; i<len; ++i ){
tagshtml += '<a class="bookmark_tags" href="?tag=' + encodeURI(taglist[i]) + '">' + taglist[i] + '</a> ';
}
$.ajax({
url: 'ajax/addBookmark.php',
data: "url=" + encodeURI($('#bookmark_add_url').val()) + "&title=" + encodeURI($('#bookmark_add_title').val()) + "&description=" + encodeURI($('#bookmark_add_description').val()) + "&tags=" + encodeURI($('#bookmark_add_tags').val()),
success: function(data){ $('.bookmarks_add').slideToggle(); $('.bookmarks_add').children('p').children('.bookmarks_input').val(''); }
data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&description=' + encodeURI(description) + '&tags=' + encodeURI(tags),
success: function(data){
$('.bookmarks_add').slideToggle();
$('.bookmarks_add').children('p').children('.bookmarks_input').val('');
$('.bookmarks_list').prepend(
'<div class="bookmark_single">' +
'<p class="bookmark_title"><a href="' + url + '" target="_new" class="bookmark_link">' + title + '</a></p>' +
'<p class="bookmark_url">' + url + '</p>' +
'<p class="bookmark_description">' + description + '</p>' +
'<p>' + tagshtml + '</p>' +
'<p class="bookmark_actions"><span class="bookmark_delete">Delete</span></p>' +
'</div>'
);
}
});
}
function delBookmark(event) {
var record = $(this).parent().parent()
$.ajax({
url: 'ajax/delBookmark.php',
data: "url=" + encodeURI($(this).parent().parent().children('.bookmark_url:first').text()),
success: function(data){ alert('deleted!'); }
data: 'url=' + encodeURI($(this).parent().parent().children('.bookmark_url:first').text()),
success: function(data){ record.animate({ opacity: 'hide' }, 'fast'); }
});
}
function updateBookmarksList(bookmark) {
var tags = encodeEntities(bookmark.tags).split(" ");
var taglist = "";
var tags = encodeEntities(bookmark.tags).split(' ');
var taglist = '';
for ( var i=0, len=tags.length; i<len; ++i ){
taglist = taglist + "<a class=\"bookmark_tags\" href=\"?tag=" + encodeURI(tags[i]) + "\">" + tags[i] + "</a> ";
taglist = taglist + '<a class="bookmark_tags" href="?tag=' + encodeURI(tags[i]) + '">' + tags[i] + '</a> ';
}
$('.bookmarks_list').append(
"<div class=\"bookmark_single\">" +
"<p class=\"bookmark_title\"><a href=\"" + encodeEntities(bookmark.url) + "\" target=\"_new\" class=\"bookmark_link\">" + encodeEntities(bookmark.title) + "</a></p>" +
"<p class=\"bookmark_url\">" + encodeEntities(bookmark.url) + "</p>" +
"<p class=\"bookmark_description\">" + encodeEntities(bookmark.description) + "</p>" +
"<p>" + taglist + "</p>" +
"<p class=\"bookmark_actions\"><span class=\"bookmark_delete\">Delete</span></p>" +
"</div>"
'<div class="bookmark_single">' +
'<p class="bookmark_title"><a href="' + encodeEntities(bookmark.url) + '" target="_new" class="bookmark_link">' + encodeEntities(bookmark.title) + '</a></p>' +
'<p class="bookmark_url">' + encodeEntities(bookmark.url) + '</p>' +
'<p class="bookmark_description">' + encodeEntities(bookmark.description) + '</p>' +
'<p>' + taglist + '</p>' +
'<p class="bookmark_actions"><span class="bookmark_delete">Delete</span></p>' +
'</div>'
);
}
@ -79,14 +101,13 @@ function updateOnBottom() {
function recordClick(event) {
$.ajax({
url: 'ajax/recordClick.php',
data: "url=" + encodeURI($(this).attr('href')),
data: 'url=' + encodeURI($(this).attr('href')),
});
return false;
}
function encodeEntities(s){
try {
return $("<div/>").text(s).html();
return $('<div/>').text(s).html();
} catch (ex) {
return "";

View File

@ -4,10 +4,11 @@
<input type="button" class="bookmarks_addBtn" value="Add Bookmark" />
</div>
<div class="bookmarks_add">
<p><label class="bookmarks_label">URL: </label><input type="text" id="bookmark_add_url" class="bookmarks_input" /></p>
<p><label class="bookmarks_label">Title: </label><input type="text" id="bookmark_add_title" class="bookmarks_input" /></p>
<p><label class="bookmarks_label">Description: </label><input type="text" id="bookmark_add_description" class="bookmarks_input" /></p>
<p><label class="bookmarks_label">Tags:</label><input type="text" id="bookmark_add_tags" class="bookmarks_input" /></p>
<p><label class="bookmarks_label">Address</label><input type="text" id="bookmark_add_url" class="bookmarks_input" /></p>
<p><label class="bookmarks_label">Title</label><input type="text" id="bookmark_add_title" class="bookmarks_input" /></p>
<p><label class="bookmarks_label">Description</label><input type="text" id="bookmark_add_description" class="bookmarks_input" /></p>
<p><label class="bookmarks_label">Tags</label><input type="text" id="bookmark_add_tags" class="bookmarks_input" /></p>
<p><label class="bookmarks_label"> </label><label class="bookmarks_hint">Hint: Use space to separate tags.</label></p>
<p><label class="bookmarks_label"></label><input type="submit" id="bookmark_add_submit" /></p>
</div>
<div class="bookmarks_list">
@ -15,4 +16,4 @@
JavaScript is needed to display your Bookmarks
</noscript>
You have no bookmarks
</div>
</div>

View File

@ -0,0 +1,8 @@
<?php
$RUNTIME_NOAPPS = true;
require_once('../../../lib/base.php');
require_once('../lib_public.php');
$path = $_GET['path'];
echo json_encode(OC_PublicLink::getLink($path));

View File

@ -1,6 +1,6 @@
<?php
OC_App::addNavigationEntry(array( "id" => "files_publiclink_administration", "order" => 2, "href" => OC_Helper::linkTo( "files_publiclink", "admin.php" ), "name" => "Public Links"));
// OC_App::addNavigationEntry(array( "id" => "files_publiclink_administration", "order" => 2, "href" => OC_Helper::linkTo( "files_publiclink", "admin.php" ), "name" => "Public Links"));
?>

View File

@ -49,7 +49,15 @@ class OC_PublicLink{
public function getToken(){
return $this->token;
}
public static function getLink($path) {
$query=OC_DB::prepare("SELECT token FROM *PREFIX*publiclink WHERE user=? AND path=? LIMIT 1");
$result=$query->execute(array(OC_User::getUser(),$path))->fetchAll();
if(count($result)>0){
return $result[0]['token'];
}
}
/**
* gets all public links
* @return array

View File

@ -0,0 +1,35 @@
<?php
$RUNTIME_NOAPPS = true;
require_once('../../../lib/base.php');
require_once('../lib_share.php');
$userDirectory = "/".OC_User::getUser()."/files";
$source = $userDirectory.$_GET['source'];
$users = OC_Share::getMySharedItem($source);
$path = $source;
for ($i = 0; $i < count($users); $i++) {
if ($users[$i]['uid_shared_with'] == OC_Share::PUBLICLINK) {
$users[$i]['token'] = OC_Share::getTokenFromSource($source);
}
}
$source = dirname($source);
while ($source != "" && $source != "/" && $source != "." && $source != $userDirectory) {
$values = array_values(OC_Share::getMySharedItem($source));
if (count($values) > 0) {
$parentUsers = array();
for ($i = 0; $i < count($values); $i++) {
if ($values[$i]['uid_shared_with'] == OC_Share::PUBLICLINK) {
$values[$i]['token'] = OC_Share::getTokenFromSource($source)."&path=".substr($path, strlen($source));
}
$parentUsers[basename($source)."-".$i] = $values[$i];
}
$users = array_merge($users, $parentUsers);
}
$source = dirname($source);
}
if (!empty($users)) {
echo json_encode($users);
}
?>

View File

@ -0,0 +1,12 @@
<?php
$RUNTIME_NOAPPS = true;
require_once('../../../lib/base.php');
require_once('../lib_share.php');
$source = "/".OC_User::getUser()."/files".$_GET['source'];
$uid_shared_with = $_GET['uid_shared_with'];
$permissions = $_GET['permissions'];
OC_Share::setPermissions($source, $uid_shared_with, $permissions);
?>

View File

@ -0,0 +1,24 @@
<?php
$RUNTIME_NOAPPS = true;
require_once('../../../lib/base.php');
require_once('../lib_share.php');
$sources = explode(";", $_POST['sources']);
$uid_shared_with = $_POST['uid_shared_with'];
$permissions = $_POST['permissions'];
foreach ($sources as $source) {
if ($source && OC_FILESYSTEM::file_exists($source) && OC_FILESYSTEM::is_readable($source)) {
$source = "/".OC_User::getUser()."/files".$source;
try {
$shared = new OC_Share($source, $uid_shared_with, $permissions);
if ($uid_shared_with == OC_Share::PUBLICLINK) {
echo $shared->getToken();
}
} catch (Exception $exception) {
echo "false";
}
}
}
?>

View File

@ -0,0 +1,11 @@
<?php
$RUNTIME_NOAPPS = true;
require_once('../../../lib/base.php');
require_once('../lib_share.php');
$source = "/".OC_User::getUser()."/files".$_GET['source'];
$uid_shared_with = $_GET['uid_shared_with'];
OC_Share::unshare($source, $uid_shared_with);
?>

View File

@ -0,0 +1,28 @@
<?php
$RUNTIME_NOAPPS = true;
require_once('../../../lib/base.php');
if (!OC_User::isLoggedIn()) {
echo json_encode(array("status" => "error", "data" => array("message" => "Authentication error")));
exit();
}
$users = array();
$ocusers = OC_User::getUsers();
$self = OC_User::getUser();
$groups = OC_Group::getUserGroups($self);
$users[] = "<optgroup label='Users'>";
foreach ($ocusers as $user) {
if ($user != $self) {
$users[] = "<option value='".$user."'>".$user."</option>";
}
}
$users[] = "</optgroup>";
$users[] = "<optgroup label='Groups'>";
foreach ($groups as $group) {
$users[] = "<option value='".$group."'>".$group."</option>";
}
$users[] = "</optgroup>";
echo json_encode($users);
?>

View File

@ -0,0 +1,12 @@
<?php
require_once('apps/files_sharing/lib_share.php');
require_once('apps/files_sharing/sharedstorage.php');
OC_Filesystem::registerStorageType("shared", "OC_Filestorage_Shared", array("datadir"=>"string"));
OC_Util::addScript("files_sharing", "share");
OC_Util::addScript("3rdparty", "chosen/chosen.jquery.min");
OC_Util::addStyle( 'files_sharing', 'sharing' );
OC_Util::addStyle("3rdparty", "chosen/chosen");
?>

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<database>
<name>*dbname*</name>
<create>true</create>
<overwrite>false</overwrite>
<charset>latin1</charset>
<table>
<name>*dbprefix*sharing</name>
<declaration>
<field>
<name>uid_owner</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>uid_shared_with</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>source</name>
<type>text</type>
<notnull>true</notnull>
<length>128</length>
</field>
<field>
<name>target</name>
<type>text</type>
<notnull>true</notnull>
<length>128</length>
</field>
<field>
<name>permissions</name>
<type>integer</type>
<notnull>true</notnull>
<length>1</length>
</field>
</declaration>
</table>
</database>

View File

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<info>
<id>files_sharing</id>
<name>Share Files</name>
<description>File sharing between users</description>
<version>0.1</version>
<licence>AGPL</licence>
<author>Michael Gapczynski</author>
<require>2</require>
</info>

View File

@ -0,0 +1,8 @@
#dropdown { display:block; position:absolute; z-index:100; width:16em; right:0; margin-right:7em; background:#eee; padding:1em;
-moz-box-shadow:0 1px 1px #777; -webkit-box-shadow:0 1px 1px #777; box-shadow:0 1px 1px #777;
-moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em;
-moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; }
#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; }

View File

@ -0,0 +1,83 @@
<?php
$RUNTIME_NOAPPS=true; //no need to load the apps
$RUNTIME_NOSETUPFS=true; //don't setup the fs yet
require_once '../../lib/base.php';
require_once 'lib_share.php';
//get the path of the shared file
$token = $_GET['token'];
$source = OC_Share::getSource($token);
if ($source !== false) {
// TODO Manipulating the string may not be the best choice. Is there an alternative?
$user = substr($source, 1, strpos($source, "/", 1) - 1);
OC_Util::setupFS($user);
$source = substr($source, strlen("/".$user."/files"));
$subPath = isset( $_GET['path'] ) ? $_GET['path'] : '';
$root = $source;
$source .= $subPath;
if (!OC_Filesystem::file_exists($source)) {
header("HTTP/1.0 404 Not Found");
$tmpl = new OC_Template("", "404", "guest");
$tmpl->assign("file", $subPath);
$tmpl->printPage();
exit;
}
if (OC_Filesystem::is_dir($source)) {
$files = array();
$rootLength = strlen($root);
foreach (OC_Files::getdirectorycontent($source) as $i) {
$i['date'] = OC_Util::formatDate($i['mtime'] );
if ($i['type'] == 'file') {
$i['extention'] = substr($i['name'], strrpos($i['name'], "."));
$i['basename'] = substr($i['name'], 0, strrpos($i['name'], "."));
}
$i['directory'] = substr($i['directory'], $rootLength);
if ($i['directory'] == "/") {
$i['directory'] = "";
}
$files[] = $i;
}
// Make breadcrumb
$breadcrumb = array();
$pathtohere = "";
foreach (explode("/", $subPath) as $i) {
if ($i != "") {
$pathtohere .= "/$i";
$breadcrumb[] = array("dir" => $pathtohere, "name" => $i);
}
}
// Load the files we need
OC_Util::addStyle("files", "files");
$breadcrumbNav = new OC_Template("files", "part.breadcrumb", "");
$breadcrumbNav->assign("breadcrumb", $breadcrumb);
$breadcrumbNav->assign("baseURL", OC_Helper::linkTo("files_sharing", "get.php")."?token=".$token."&path=");
$list = new OC_Template("files", "part.list", "");
$list->assign("files", $files);
$list->assign("baseURL", OC_Helper::linkTo("files_sharing", "get.php")."?token=".$token."&path=");
$list->assign("downloadURL", OC_Helper::linkTo("files_sharing", "get.php")."?token=".$token."&path=");
$tmpl = new OC_Template("files", "index", "user");
$tmpl->assign("fileList", $list->fetchPage());
$tmpl->assign("breadcrumb", $breadcrumbNav->fetchPage());
$tmpl->printPage();
} else {
//get time mimetype and set the headers
$mimetype = OC_Filesystem::getMimeType($source);
header("Content-Transfer-Encoding: binary");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public");
header("Content-Disposition: filename='".basename($source)."'");
header("Content-Type: " . $mimetype);
header("Content-Length: " . OC_Filesystem::filesize($source));
//download the file
@ob_clean();
OC_Filesystem::readfile($source);
}
} else {
header("HTTP/1.0 404 Not Found");
$tmpl = new OC_Template("", "404", "guest");
$tmpl->printPage();
die();
}
?>

View File

@ -0,0 +1,54 @@
$(document).ready(function() {
$( "#source" ).autocomplete({
source: "../../files/ajax/autocomplete.php",
minLength: 1
});
$( "#uid_shared_with" ).autocomplete({
source: "ajax/userautocomplete.php",
minLength: 1
});
$("button.delete").live('click', function( event ) {
event.preventDefault();
// var row=$(this);
var source=$(this).attr('data-source');
var uid_shared_with=$(this).attr('data-uid_shared_with');
var data='source='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with);
$.ajax({
type: 'GET',
url: 'ajax/unshare.php',
cache: false,
data: data
// success: function(){
// row.remove();
// }
});
});
$('#share_item').submit(function( event ){
event.preventDefault();
var source=$('#source').val();
var uid_shared_with=$('#uid_shared_with').val();
var permissions=$('#permissions').val()||0;
var data='source='+source+'&uid_shared_with='+uid_shared_with+'&permissions='+permissions;
$.ajax({
type: 'GET',
url: 'ajax/share.php',
cache: false,
data: data,
// success: function(token){
// if(token){
// var html="<tr class='link' id='"+token+"'>";
// html+="<td class='path'>"+path+"</td>";
// var expire=($('#expire').val())?$('#expire').val():'Never'
// html+="<td class='expire'>"+expire+"</td>"
// html+="<td class='link'><a href='get.php?token="+token+"'>"+$('#baseUrl').val()+"?token="+token+"</a></td>"
// html+="<td><button class='delete fancybutton' data-token='"+token+"'>Delete</button></td>"
// html+="</tr>"
// $(html).insertBefore($('#newlink_row'));
// $('#expire').val('');
// $('#expire_time').val('');
// $('#path').val('');
// }
// }
});
});
});

View File

@ -0,0 +1,232 @@
$(document).ready(function() {
if (typeof FileActions !== 'undefined') {
FileActions.register('all', 'Share', function(filename) {
var icon;
var file = $('#dir').val()+'/'+filename;
$.ajax({
type: 'GET',
url: OC.linkTo('files_sharing', 'ajax/getitem.php'),
dataType: 'json',
data: 'source='+file,
async: false,
success: function(users) {
if (users) {
icon = OC.imagePath('core', 'actions/shared');
$.each(users, function(index, row) {
if (row.uid_shared_with == 'public') {
icon = OC.imagePath('core', 'actions/public');
}
});
} else {
icon = OC.imagePath('core', 'actions/share');
}
}
});
return icon;
}, function(filename) {
if (($('#dropdown').length > 0)) {
$('#dropdown').hide('blind', function() {
var dropdownFile = $('#dropdown').data('file')
var file = $('#dir').val()+'/'+filename;
$('#dropdown').remove();
$('tr').removeClass('mouseOver');
if (dropdownFile != file) {
createDropdown(filename, file);
}
});
} else {
createDropdown(filename, $('#dir').val()+'/'+filename);
}
});
};
$('.share').click(function(event) {
event.preventDefault();
var filenames = getSelectedFiles('name');
var length = filenames.length;
var files = '';
for (var i = 0; i < length; i++) {
files += $('#dir').val()+'/'+filenames[i]+';';
}
createDropdown(false, files);
});
$(this).click(function(event) {
if (!($(event.target).hasClass('drop')) && $(event.target).parents().index($('#dropdown')) == -1) {
if ($('#dropdown').is(':visible')) {
$('#dropdown').hide('blind', function() {
$('#dropdown').remove();
$('tr').removeClass('mouseOver');
});
}
}
});
$('#share_with').live('change', function() {
var source = $('#dropdown').data('file');
var uid_shared_with = $(this).val();
var permissions = 0;
var data = 'sources='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with)+'&permissions='+encodeURIComponent(permissions);
$.ajax({
type: 'POST',
url: OC.linkTo('files_sharing','ajax/share.php'),
cache: false,
data: data,
success: function(result) {
if (result !== 'false') {
addUser(uid_shared_with, permissions, false);
}
}
});
});
$('#shared_list > li').live('mouseenter', function(event) {
$(':hidden', this).show();
});
$('#shared_list > li').live('mouseleave', function(event) {
$('a', this).hide();
if (!$('input:[type=checkbox]', this).is(':checked')) {
$('input:[type=checkbox]', this).hide();
$('label', this).hide();
}
});
$('.permissions').live('change', function() {
var permissions = (this.checked) ? 1 : 0;
var source = $('#dropdown').data('file');
var uid_shared_with = $(this).parent().data('uid_shared_with');
var data = 'source='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with)+'&permissions='+encodeURIComponent(permissions);
$.ajax({
type: 'GET',
url: OC.linkTo('files_sharing','ajax/setpermissions.php'),
cache: false,
data: data
});
});
$('.unshare').live('click', function(event) {
event.preventDefault();
var user = $(this).parent();
var source = $('#dropdown').data('file');
var uid_shared_with = user.data('uid_shared_with');
var data = 'source='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with);
$.ajax({
type: 'GET',
url: OC.linkTo('files_sharing','ajax/unshare.php'),
cache: false,
data: data,
success: function() {
var option = "<option value='"+uid_shared_with+"'>"+uid_shared_with+"</option>";
$(user).remove();
$(option).appendTo('#share_with');
$('#share_with').trigger('liszt:updated');
}
});
});
$('#makelink').live('change', function() {
if (this.checked) {
var source = $('#dropdown').data('file');
var uid_shared_with = "public";
var permissions = 0;
var data = 'sources='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with)+'&permissions='+encodeURIComponent(permissions);
$.ajax({
type: 'POST',
url: OC.linkTo('files_sharing','ajax/share.php'),
cache: false,
data: data,
success: function(token) {
if (token) {
showPublicLink(token);
}
}
});
} else {
var source = $('#dropdown').data('file');
var uid_shared_with = "public";
var data = 'source='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with);
$.ajax({
type: 'GET',
url: OC.linkTo('files_sharing','ajax/unshare.php'),
cache: false,
data: data,
success: function(){
$('#link').hide('blind');
}
});
}
});
$('#link').live('click', function() {
$(this).focus();
$(this).select();
});
});
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 += "<option value=''></option>";
html += "</select>";
html += "<ul id='shared_list'></ul>";
html += "</div>";
html += "<div id='public'>";
html += "<input type='checkbox' name='makelink' id='makelink' value='1' /><label for='makelink'>make public</label>";
//html += "<input type='checkbox' name='public_link_write' id='public_link_write' value='1' /><label for='public_link_write'>allow upload</label>";
html += "<br />";
html += "<input id='link' style='display:none; width:90%;' />";
html += "</div>";
if (filename) {
$('tr[data-file="'+filename+'"]').addClass('mouseOver');
$(html).appendTo($('tr[data-file="'+filename+'"] td.filename'));
} else {
$(html).appendTo($('thead .share'));
}
$.getJSON(OC.linkTo('files_sharing', 'ajax/userautocomplete.php'), function(users) {
if (users) {
$.each(users, function(index, row) {
$(row).appendTo('#share_with');
});
$('#share_with').trigger('liszt:updated');
}
});
$.getJSON(OC.linkTo('files_sharing', 'ajax/getitem.php'), { source: files }, function(users) {
if (users) {
$.each(users, function(index, row) {
if (row.uid_shared_with == 'public') {
showPublicLink(row.token);
} else if (isNaN(index)) {
addUser(row.uid_shared_with, row.permissions, index.substr(0, index.lastIndexOf('-')));
} else {
addUser(row.uid_shared_with, row.permissions, false);
}
});
}
});
$('#dropdown').show('blind');
$('#share_with').chosen();
}
function addUser(uid_shared_with, permissions, parentFolder) {
if (parentFolder) {
var user = "<li>Parent folder "+parentFolder+" shared with "+uid_shared_with+"</li>";
} else {
var checked = ((permissions > 0) ? "checked='checked'" : "style='display:none;'");
var style = ((permissions == 0) ? "style='display:none;'" : "");
var user = "<li data-uid_shared_with='"+uid_shared_with+"'>"+uid_shared_with;
user += "<input type='checkbox' name='permissions' id='"+uid_shared_with+"' class='permissions' "+checked+"/><label for='"+uid_shared_with+"' "+style+">can edit</label>";
user += "<a href='' title='Unshare' class='unshare' style='display:none;'><img class='svg' src='"+OC.imagePath('core','actions/delete')+"'/></a></li>";
}
$('#share_with option[value="'+uid_shared_with+'"]').remove();
$('#share_with').trigger('liszt:updated');
$(user).appendTo('#shared_list');
}
function showPublicLink(token) {
$('#makelink').attr('checked', true);
$('#link').data('token', token);
$('#link').val(parent.location.protocol+"//"+location.host+OC.linkTo('files_sharing','get.php')+'?token='+token);
$('#link').show('blind');
}

View File

@ -0,0 +1,403 @@
<?php
/**
* ownCloud
*
* @author Michael Gapczynski
* @copyright 2011 Michael Gapczynski GapczynskiM@gmail.com
*
* 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 Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
OC_Hook::connect("OC_FILESYSTEM","post_delete", "OC_Share", "deleteItem");
OC_Hook::connect("OC_FILESYSTEM","post_rename", "OC_Share", "renameItem");
/**
* This class manages shared items within the database.
*/
class OC_Share {
const WRITE = 1;
const DELETE = 2;
const UNSHARED = -1;
const PUBLICLINK = "public";
private $token;
/**
* Share an item, adds an entry into the database
* @param $source The source location of the item
* @param $uid_shared_with The user or group to share the item with
* @param $permissions The permissions, use the constants WRITE and DELETE
*/
public function __construct($source, $uid_shared_with, $permissions) {
$uid_owner = OC_User::getUser();
$query = OC_DB::prepare("INSERT INTO *PREFIX*sharing VALUES(?,?,?,?,?)");
if ($uid_shared_with == self::PUBLICLINK) {
$token = sha1("$uid_shared_with-$source");
$query->execute(array($uid_owner, self::PUBLICLINK, $source, $token, $permissions));
$this->token = $token;
} else {
if (OC_Group::groupExists($uid_shared_with)) {
$gid = $uid_shared_with;
$uid_shared_with = OC_Group::usersInGroup($gid);
// Remove the owner from the list of users in the group
$uid_shared_with = array_diff($uid_shared_with, array($uid_owner));
} else if (OC_User::userExists($uid_shared_with)) {
$gid = null;
$uid_shared_with = array($uid_shared_with);
} else {
throw new Exception($uid_shared_with." is not a user");
}
foreach ($uid_shared_with as $uid) {
// Check if this item is already shared with the user
$checkSource = OC_DB::prepare("SELECT source FROM *PREFIX*sharing WHERE source = ? AND uid_shared_with ".self::getUsersAndGroups($uid));
$resultCheckSource = $checkSource->execute(array($source, $uid))->fetchAll();
// TODO Check if the source is inside a folder
if (count($resultCheckSource) > 0 && !isset($gid)) {
throw new Exception("This item is already shared with ".$uid);
}
// Check if the target already exists for the user, if it does append a number to the name
$target = "/".$uid."/files/Shared/".basename($source);
if (self::getSource($target)) {
if ($pos = strrpos($target, ".")) {
$name = substr($target, 0, $pos);
$ext = substr($target, $pos);
} else {
$name = $target;
$ext = "";
}
$counter = 1;
while ($checkTarget !== false) {
$newTarget = $name."_".$counter.$ext;
$checkTarget = self::getSource($newTarget);
$counter++;
}
$target = $newTarget;
}
if (isset($gid)) {
$uid = $uid."@".$gid;
}
$query->execute(array($uid_owner, $uid, $source, $target, $permissions));
}
}
}
/**
* Remove any duplicate or trailing '/' from the path
* @return A clean path
*/
private static function cleanPath($path) {
$path = rtrim($path, "/");
return preg_replace('{(/)\1+}', "/", $path);
}
/**
* Generate a string to be used for searching for uid_shared_with that handles both users and groups
* @param $uid (Optional) The uid to get the user groups for, a gid to get the users in a group, or if not set the current user
* @return An IN operator as a string
*/
private static function getUsersAndGroups($uid = null) {
$in = " IN(";
if (isset($uid) && OC_Group::groupExists($uid)) {
$users = OC_Group::usersInGroup($uid);
foreach ($users as $user) {
// Add a comma only if the the current element isn't the last
if ($user !== end($users)) {
$in .= "'".$user."@".$uid."', ";
} else {
$in .= "'".$user."@".$uid."'";
}
}
} else if (isset($uid)) {
// TODO Check if this is necessary, only constructor needs it as IN. It would be better for other queries to just return =$uid
$in .= "'".$uid."'";
$groups = OC_Group::getUserGroups($uid);
foreach ($groups as $group) {
$in .= ", '".$uid."@".$group."'";
}
} else {
$uid = OC_User::getUser();
$in .= "'".$uid."'";
$groups = OC_Group::getUserGroups($uid);
foreach ($groups as $group) {
$in .= ", '".$uid."@".$group."'";
}
}
$in .= ", '".self::PUBLICLINK."'";
$in .= ")";
return $in;
}
/**
* Create a new entry in the database for a file inside a shared folder
*
* $oldTarget and $newTarget may be the same value. $oldTarget exists in case the file is being moved outside of the folder
*
* @param $oldTarget The current target location
* @param $newTarget The new target location
*/
public static function pullOutOfFolder($oldTarget, $newTarget) {
$folders = self::getParentFolders($oldTarget);
$source = $folders['source'].substr($oldTarget, strlen($folders['target']));
$item = self::getItem($folders['target']);
$query = OC_DB::prepare("INSERT INTO *PREFIX*sharing VALUES(?,?,?,?,?)");
$query->execute(array($item[0]['uid_owner'], OC_User::getUser(), $source, $newTarget, $item[0]['permissions']));
}
/**
* Get the item with the specified target location
* @param $target The target location of the item
* @return An array with the item
*/
public static function getItem($target) {
$target = self::cleanPath($target);
$query = OC_DB::prepare("SELECT uid_owner, source, permissions FROM *PREFIX*sharing WHERE target = ? AND uid_shared_with = ? LIMIT 1");
return $query->execute(array($target, OC_User::getUser()))->fetchAll();
}
/**
* Get the item with the specified source location
* @param $source The source location of the item
* @return An array with the users and permissions the item is shared with
*/
public static function getMySharedItem($source) {
$source = self::cleanPath($source);
$query = OC_DB::prepare("SELECT uid_shared_with, permissions FROM *PREFIX*sharing WHERE source = ? AND uid_owner = ?");
return $query->execute(array($source, OC_User::getUser()))->fetchAll();
}
/**
* Get all items the current user is sharing
* @return An array with all items the user is sharing
*/
public static function getMySharedItems() {
$query = OC_DB::prepare("SELECT uid_shared_with, source, permissions FROM *PREFIX*sharing WHERE uid_owner = ?");
return $query->execute(array(OC_User::getUser()))->fetchAll();
}
/**
* Get the items within a shared folder that have their own entry for the purpose of name, location, or permissions that differ from the folder itself
*
* Works for both target and source folders. Can be used for getting all items shared with you e.g. pass '/MTGap/files'
*
* @param $folder The folder of the items to look for
* @return An array with all items in the database that are in the folder
*/
public static function getItemsInFolder($folder) {
$folder = self::cleanPath($folder);
// Append '/' in order to filter out the folder itself if not already there
if (substr($folder, -1) !== "/") {
$folder .= "/";
}
$length = strlen($folder);
$query = OC_DB::prepare("SELECT uid_owner, source, target, permissions FROM *PREFIX*sharing WHERE SUBSTR(source, 1, ?) = ? OR SUBSTR(target, 1, ?) = ? AND uid_shared_with ".self::getUsersAndGroups());
return $query->execute(array($length, $folder, $length, $folder))->fetchAll();
}
/**
* Get the source and target parent folders of the specified target location
* @param $target The target location of the item
* @return An array with the keys 'source' and 'target' with the values of the source and target parent folders
*/
public static function getParentFolders($target) {
$target = self::cleanPath($target);
$query = OC_DB::prepare("SELECT source FROM *PREFIX*sharing WHERE target = ? AND uid_shared_with".self::getUsersAndGroups()." LIMIT 1");
// Prevent searching for user directory e.g. '/MTGap/files'
$userDirectory = substr($target, 0, strpos($target, "files") + 5);
$target = dirname($target);
$result = array();
while ($target != "" && $target != "/" && $target != "." && $target != $userDirectory) {
// Check if the parent directory of this target location is shared
$result = $query->execute(array($target))->fetchAll();
if (count($result) > 0) {
break;
}
$target = dirname($target);
}
if (count($result) > 0) {
// Return both the source folder and the target folder
return array("source" => $result[0]['source'], "target" => $target);
} else {
return false;
}
}
/**
* Get the source location of the item at the specified target location
* @param $target The target location of the item
* @return Source location or false if target location is not valid
*/
public static function getSource($target) {
$target = self::cleanPath($target);
$query = OC_DB::prepare("SELECT source FROM *PREFIX*sharing WHERE target = ? AND uid_shared_with ".self::getUsersAndGroups()." LIMIT 1");
$result = $query->execute(array($target))->fetchAll();
if (count($result) > 0) {
return $result[0]['source'];
} else {
$folders = self::getParentFolders($target);
if ($folders == true) {
return $folders['source'].substr($target, strlen($folders['target']));
} else {
return false;
}
}
}
/**
* Get the user's permissions for the item at the specified target location
* @param $target The target location of the item
* @return The permissions, use bitwise operators to check against the constants WRITE and DELETE
*/
public static function getPermissions($target) {
$target = self::cleanPath($target);
$query = OC_DB::prepare("SELECT permissions FROM *PREFIX*sharing WHERE target = ? AND uid_shared_with ".self::getUsersAndGroups()." LIMIT 1");
$result = $query->execute(array($target))->fetchAll();
if (count($result) > 0) {
return $result[0]['permissions'];
} else {
$folders = self::getParentFolders($target);
if ($folders == true) {
$result = $query->execute(array($folders['target']))->fetchAll();
if (count($result) > 0) {
return $result[0]['permissions'];
}
} else {
return false;
}
}
}
/**
* Get the token for a public link
* @return The token of the public link, a sha1 hash
*/
public function getToken() {
return $this->token;
}
/**
* Get the token for a public link
* @param $source The source location of the item
* @return The token of the public link, a sha1 hash
*/
public static function getTokenFromSource($source) {
$query = OC_DB::prepare("SELECT target FROM *PREFIX*sharing WHERE source = ? AND uid_shared_with = ? AND uid_owner = ? LIMIT 1");
$result = $query->execute(array($source, self::PUBLICLINK, OC_User::getUser()))->fetchAll();
if (count($result) > 0) {
return $result[0]['target'];
} else {
return false;
}
}
/**
* Set the source location to a new value
* @param $oldSource The current source location
* @param $newTarget The new source location
*/
public static function setSource($oldSource, $newSource) {
$oldSource = self::cleanPath($oldSource);
$newSource = self::cleanPath($newSource);
$query = OC_DB::prepare("UPDATE *PREFIX*sharing SET source = REPLACE(source, ?, ?) WHERE uid_owner = ?");
$query->execute(array($oldSource, $newSource, OC_User::getUser()));
}
/**
* Set the target location to a new value
*
* You must use the pullOutOfFolder() function to change the target location of a file inside a shared folder if the target location differs from the folder
*
* @param $oldTarget The current target location
* @param $newTarget The new target location
*/
public static function setTarget($oldTarget, $newTarget) {
$oldTarget = self::cleanPath($oldTarget);
$newTarget = self::cleanPath($newTarget);
$query = OC_DB::prepare("UPDATE *PREFIX*sharing SET target = REPLACE(target, ?, ?) WHERE uid_shared_with ".self::getUsersAndGroups());
$query->execute(array($oldTarget, $newTarget));
}
/**
* Change the permissions for the specified item and user
*
* You must construct a new shared item to change the permissions of a file inside a shared folder if the permissions differ from the folder
*
* @param $source The source location of the item
* @param $uid_shared_with The user to change the permissions for
* @param $permissions The permissions, use the constants WRITE and DELETE
*/
public static function setPermissions($source, $uid_shared_with, $permissions) {
$source = self::cleanPath($source);
$query = OC_DB::prepare("UPDATE *PREFIX*sharing SET permissions = ? WHERE SUBSTR(source, 1, ?) = ? AND uid_owner = ? AND uid_shared_with ".self::getUsersAndGroups($uid_shared_with));
$query->execute(array($permissions, strlen($source), $source, OC_User::getUser()));
}
/**
* Unshare the item, removes it from all specified users
*
* You must use the pullOutOfFolder() function to unshare a file inside a shared folder and set $newTarget to nothing
*
* @param $source The source location of the item
* @param $uid_shared_with Array of users to unshare the item from
*/
public static function unshare($source, $uid_shared_with) {
$source = self::cleanPath($source);
$query = OC_DB::prepare("DELETE FROM *PREFIX*sharing WHERE SUBSTR(source, 1, ?) = ? AND uid_owner = ? AND uid_shared_with ".self::getUsersAndGroups($uid_shared_with));
$query->execute(array(strlen($source), $source, OC_User::getUser()));
}
/**
* Unshare the item from the current user, removes it only from the database and doesn't touch the source file
*
* You must use the pullOutOfFolder() function to unshare a file inside a shared folder and set $newTarget to nothing
*
* @param $target The target location of the item
*/
public static function unshareFromMySelf($target, $delete = true) {
$target = self::cleanPath($target);
if ($delete) {
$query = OC_DB::prepare("DELETE FROM *PREFIX*sharing WHERE SUBSTR(target, 1, ?) = ? AND uid_shared_with ".self::getUsersAndGroups());
$query->execute(array(strlen($target), $target));
} else {
$query = OC_DB::prepare("UPDATE *PREFIX*sharing SET permissions = ? WHERE SUBSTR(target, 1, ?) = ? AND uid_shared_with ".self::getUsersAndGroups());
$query->execute(array(self::UNSHARED, strlen($target), $target));
}
}
/**
* Remove the item from the database, the owner deleted the file
* @param $arguments Array of arguments passed from OC_HOOK
*/
public static function deleteItem($arguments) {
$source = "/".OC_User::getUser()."/files".$arguments['path'];
$source = self::cleanPath($source);
$query = OC_DB::prepare("DELETE FROM *PREFIX*sharing WHERE SUBSTR(source, 1, ?) = ? AND uid_owner = ?");
$query->execute(array(strlen($source), $source, OC_User::getUser()));
}
/**
* Rename the item in the database, the owner renamed the file
* @param $arguments Array of arguments passed from OC_HOOK
*/
public static function renameItem($arguments) {
$oldSource = "/".OC_User::getUser()."/files".$arguments['oldpath'];
$oldSource = self::cleanPath($oldSource);
$newSource = "/".OC_User::getUser()."/files".$arguments['newpath'];
$newSource = self::cleanPath($newSource);
self::setSource($oldSource, $newSource);
}
}
?>

View File

@ -0,0 +1,39 @@
<?php
/**
* ownCloud
*
* @author Michael Gapczynski
* @copyright 2011 Michael Gapczynski GapczynskiM@gmail.com
*
* 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 Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once('../../lib/base.php');
require_once('lib_share.php');
if (!OC_User::isLoggedIn()){
header( "Location: ".OC_HELPER::linkTo( "index.php" ));
exit();
}
OC_App::setActiveNavigationEntry("files_sharing_list");
OC_Util::addScript("files_sharing", "list");
$tmpl = new OC_Template("files_sharing", "list", "user");
$tmpl->assign("shared_items", OC_Share::getMySharedItems());
$tmpl->printPage();
?>

View File

@ -0,0 +1,580 @@
<?php
/**
* ownCloud
*
* @author Michael Gapczynski
* @copyright 2011 Michael Gapczynski GapczynskiM@gmail.com
*
* 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 Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once( 'lib_share.php' );
/**
* Convert target path to source path and pass the function call to the correct storage provider
*/
class OC_Filestorage_Shared extends OC_Filestorage {
private $datadir;
private $sourcePaths = array();
public function __construct($arguments) {
$this->datadir = $arguments['datadir'];
if (OC_Share::getItemsInFolder($this->datadir)) {
if (!OC_Filesystem::is_dir($this->datadir)) {
OC_Filesystem::mkdir($this->datadir);
}
} else if (OC_Filesystem::is_dir($this->datadir)) {
OC_Filesystem::rmdir($this->datadir);
}
$this->datadir .= "/";
}
public function getInternalPath($path) {
$mountPoint = OC_Filesystem::getMountPoint($path);
$internalPath = substr($path, strlen($mountPoint));
return $internalPath;
}
public function getSource($target) {
$target = $this->datadir.$target;
if (array_key_exists($target, $this->sourcePaths)) {
return $this->sourcePaths[$target];
} else {
$source = OC_Share::getSource($target);
$this->sourcePaths[$target] = $source;
return $source;
}
}
public function mkdir($path) {
if ($path == "" || $path == "/" || !$this->is_writeable($path)) {
return false;
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->mkdir($this->getInternalPath($source));
}
}
}
public function rmdir($path) {
// The folder will be removed from the database, but won't be deleted from the owner's filesystem
OC_Share::unshareFromMySelf($this->datadir.$path);
$this->clearFolderSizeCache($path);
}
public function opendir($path) {
if ($path == "" || $path == "/") {
global $FAKEDIRS;
$path = $this->datadir.$path;
$sharedItems = OC_Share::getItemsInFolder($path);
if (empty($sharedItems)) {
return false;
}
$files = array();
foreach ($sharedItems as $item) {
// If item is in the root of the shared storage provider add it to the fakedirs
if (dirname($item['target'])."/" == $path) {
$files[] = basename($item['target']);
}
}
$FAKEDIRS['shared'] = $files;
return opendir('fakedir://shared');
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
$dh = $storage->opendir($this->getInternalPath($source));
// Remove any duplicate or trailing '/'
$path = rtrim($this->datadir.$path, "/");
$path = preg_replace('{(/)\1+}', "/", $path);
$modifiedItems = OC_Share::getItemsInFolder($source);
if ($modifiedItems && $dh) {
global $FAKEDIRS;
$sources = array();
$targets = array();
foreach ($modifiedItems as $item) {
// If the item is in the current directory and has a different name than the source, add it to the arrays
if (dirname($item['target']) == $path) {
// If the item was unshared from self, add it it to the arrays
if ($item['permissions'] == OC_Share::UNSHARED) {
$sources[] = basename($item['source']);
$targets[] = "";
} else {
$sources[] = basename($item['source']);
$targets[] = basename($item['target']);
}
}
}
// Don't waste time if there aren't any modified items in the current directory
if (empty($sources)) {
return $dh;
} else {
$files = array();
while (($filename = readdir($dh)) !== false) {
if ($filename != "." && $filename != "..") {
// If the file isn't in the sources array it isn't modified and can be added as is
if (!in_array($filename, $sources)) {
$files[] = $filename;
// The file has a different name than the source and is added to the fakedirs
} else {
$target = $targets[array_search($filename, $sources)];
// Don't add the file if it was unshared from self by the user
if ($target != "") {
$files[] = $target;
}
}
}
}
$FAKEDIRS['shared'] = $files;
return opendir('fakedir://shared');
}
} else {
return $dh;
}
}
}
}
public function is_dir($path) {
if ($path == "" || $path == "/") {
return true;
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->is_dir($this->getInternalPath($source));
}
}
}
public function is_file($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->is_file($this->getInternalPath($source));
}
}
// TODO fill in other components of array
public function stat($path) {
if ($path == "" || $path == "/") {
$stat["dev"] = "";
$stat["ino"] = "";
$stat["mode"] = "";
$stat["nlink"] = "";
$stat["uid"] = "";
$stat["gid"] = "";
$stat["rdev"] = "";
$stat["size"] = $this->filesize($path);
$stat["atime"] = $this->fileatime($path);
$stat["mtime"] = $this->filemtime($path);
$stat["ctime"] = $this->filectime($path);
$stat["blksize"] = "";
$stat["blocks"] = "";
return $stat;
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->stat($this->getInternalPath($source));
}
}
}
public function filetype($path) {
if ($path == "" || $path == "/") {
return "dir";
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->filetype($this->getInternalPath($source));
}
}
}
public function filesize($path) {
if ($path == "" || $path == "/" || $this->is_dir($path)) {
return $this->getFolderSize($path);
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->filesize($this->getInternalPath($source));
}
}
}
public function getFolderSize($path) {
$dbpath = OC_User::getUser()."/files/Share/".$path."/";
$query = OC_DB::prepare("SELECT size FROM *PREFIX*foldersize WHERE path=?");
$size = $query->execute(array($dbpath))->fetchAll();
if (count($size) > 0) {
return $size[0]['size'];
} else {
return $this->calculateFolderSize($path);
}
}
public function calculateFolderSize($path) {
if ($this->is_file($path)) {
$path = dirname($path);
}
$path = str_replace("//", "/", $path);
if ($this->is_dir($path) && substr($path, -1) != "/") {
$path .= "/";
}
$size = 0;
if ($dh = $this->opendir($path)) {
while (($filename = readdir($dh)) !== false) {
if ($filename != "." && $filename != "..") {
$subFile = $path.$filename;
if ($this->is_file($subFile)) {
$size += $this->filesize($subFile);
} else {
$size += $this->getFolderSize($subFile);
}
}
}
if ($size > 0) {
$dbpath = OC_User::getUser()."/files/Share/".$path;
$query = OC_DB::prepare("INSERT INTO *PREFIX*foldersize VALUES(?,?)");
$result = $query->execute(array($dbpath, $size));
}
}
return $size;
}
public function clearFolderSizeCache($path){
if ($this->is_file($path)) {
$path = dirname($path);
}
$path = str_replace("//", "/", $path);
if ($this->is_dir($path) && substr($path, -1) != "/") {
$path .= "/";
}
$query = OC_DB::prepare("DELETE FROM *PREFIX*foldersize WHERE path = ?");
$result = $query->execute(array($path));
if ($path != "/" && $path != "") {
$parts = explode("/", $path);
$part = array_pop($parts);
if (empty($part)) {
array_pop($parts);
}
$parent = implode("/", $parts);
$this->clearFolderSizeCache($parent);
}
}
public function is_readable($path) {
return true;
}
public function is_writeable($path) {
if ($path == "" || $path == "/" || OC_Share::getPermissions($this->datadir.$path) & OC_Share::WRITE) {
return true;
} else {
return false;
}
}
public function file_exists($path) {
if ($path == "" || $path == "/") {
return true;
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->file_exists($this->getInternalPath($source));
}
}
}
public function readfile($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->readfile($this->getInternalPath($source));
}
}
public function filectime($path) {
if ($path == "" || $path == "/") {
$ctime = 0;
if ($dh = $this->opendir($path)) {
while (($filename = readdir($dh)) !== false) {
$tempctime = $this->filectime($filename);
if ($tempctime < $ctime) {
$ctime = $tempctime;
}
}
return $ctime;
}
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->filectime($this->getInternalPath($source));
}
}
}
public function filemtime($path) {
if ($path == "" || $path == "/") {
$mtime = 0;
if ($dh = $this->opendir($path)) {
while (($filename = readdir($dh)) !== false) {
$tempmtime = $this->filemtime($filename);
if ($tempmtime > $mtime) {
$mtime = $tempmtime;
}
}
return $mtime;
}
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->filemtime($this->getInternalPath($source));
}
}
}
public function fileatime($path) {
if ($path == "" || $path == "/") {
$atime = 0;
if ($dh = $this->opendir($path)) {
while (($filename = readdir($dh)) !== false) {
$tempatime = $this->fileatime($filename);
if ($tempatime > $atime) {
$atime = $tempatime;
}
}
return $atime;
}
} else {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->fileatime($this->getInternalPath($source));
}
}
}
public function file_get_contents($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->file_get_contents($this->getInternalPath($source));
}
}
public function file_put_contents($path, $data) {
if ($this->is_writeable($path)) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->file_put_contents($this->getInternalPath($source), $data);
}
}
}
public function unlink($path) {
// The item will be removed from the database, but won't be touched on the owner's filesystem
$target = $this->datadir.$path;
// Check if the item is inside a shared folder
if (OC_Share::getParentFolders($target)) {
// If entry for item already exists
if (OC_Share::getItem($target)) {
OC_Share::unshareFromMySelf($target, false);
} else {
OC_Share::pullOutOfFolder($target, $target);
OC_Share::unshareFromMySelf($target, false);
}
// Delete the database entry
} else {
OC_Share::unshareFromMySelf($target);
}
$this->clearFolderSizeCache($this->getInternalPath($target));
return true;
}
public function rename($path1, $path2) {
$oldTarget = $this->datadir.$path1;
$newTarget = $this->datadir.$path2;
// Check if the item is inside a shared folder
if ($folders = OC_Share::getParentFolders($oldTarget)) {
$root1 = substr($path1, 0, strpos($path1, "/"));
$root2 = substr($path1, 0, strpos($path2, "/"));
// Prevent items from being moved into different shared folders until versioning (cut and paste) and prevent items going into 'Shared'
if ($root1 !== $root2) {
return false;
// Check if both paths have write permission
} else if ($this->is_writeable($path1) && $this->is_writeable($path2)) {
$oldSource = $this->getSource($path1);
$newSource = $folders['source'].substr($newTarget, strlen($folders['target']));
if ($oldSource) {
$storage = OC_Filesystem::getStorage($oldSource);
return $storage->rename($this->getInternalPath($oldSource), $this->getInternalPath($newSource));
}
// If the user doesn't have write permission, items can only be renamed and not moved
} else if (dirname($path1) !== dirname($path2)) {
return false;
// The item will be renamed in the database, but won't be touched on the owner's filesystem
} else {
OC_Share::pullOutOfFolder($oldTarget, $newTarget);
// If this is a folder being renamed, call setTarget in case there are any database entries inside the folder
if (self::is_dir($path1)) {
OC_Share::setTarget($oldTarget, $newTarget);
}
}
} else {
OC_Share::setTarget($oldTarget, $newTarget);
}
$this->clearFolderSizeCache($this->getInternalPath($oldTarget));
$this->clearFolderSizeCache($this->getInternalPath($newTarget));
return true;
}
public function copy($path1, $path2) {
if ($path2 == "" || $path2 == "/") {
// TODO Construct new shared item or should this not be allowed?
} else {
if ($this->is_writeable($path2)) {
$tmpFile = $this->toTmpFile($path1);
return $this->fromTmpFile($tmpFile, $path2);
} else {
return false;
}
}
}
public function fopen($path, $mode) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->fopen($this->getInternalPath($source), $mode);
}
}
public function toTmpFile($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->toTmpFile($this->getInternalPath($source));
}
}
public function fromTmpFile($tmpFile, $path) {
if ($this->is_writeable($path)) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->fromTmpFile($tmpFile, $this->getInternalPath($source));
}
} else {
return false;
}
}
public function fromUploadedFile($tmpPath, $path) {
$source = $this->getSource($tmpPath);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->fromUploadedFile($this->getInternalPath($source), $path);
}
}
public function getMimeType($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->getMimeType($this->getInternalPath($source));
}
}
public function delTree($path) {
$target = $this->datadir.$path;
if (OC_Share::getPermissions($target) & OC_Share::DELETE) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->delTree($this->getInternalPath($source));
}
} else {
// Check if the folder is inside a shared folder
if (OC_Share::getParentFolders($target)) {
// If entry for folder already exists
if (OC_Share::getItem($target)) {
OC_Share::setTarget($target, "/");
} else {
OC_Share::pullOutOfFolder($target, "/");
// Call setTarget in case there are any database entries for items inside this folder
OC_Share::setTarget($target, "/");
}
// Delete the database entry
} else {
OC_Share::unshareFromMySelf($target);
}
$this->clearFolderSizeCache($this->getInternalPath($target));
return true;
}
}
public function find($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->find($this->getInternalPath($source));
}
}
public function getTree($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->getTree($this->getInternalPath($source));
}
}
public function hash($type, $path, $raw) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->hash($type, $this->getInternalPath($source), $raw);
}
}
public function free_space($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->free_space($this->getInternalPath($source));
}
}
// TODO query all shared files?
public function search($query) {
}
}
?>

View File

@ -0,0 +1,30 @@
<fieldset>
<legend>Your Shared Files</legend>
<table id="itemlist">
<thead>
<tr>
<th>Item</th>
<th>Shared With</th>
<th>Permissions</th>
</tr>
</thead>
<tbody>
<?php foreach($_['shared_items'] as $item):?>
<tr class="item">
<td class="source"><?php echo substr($item['source'], strlen("/".$_SESSION['user_id']."/files/"));?></td>
<td class="uid_shared_with"><?php echo $item['uid_shared_with'];?></td>
<td class="permissions"><?php echo "Read"; echo($item['permissions'] & OC_SHARE::WRITE ? ", Edit" : ""); echo($item['permissions'] & OC_SHARE::DELETE ? ", Delete" : "");?></td>
<td><button class="delete" data-source="<?php echo $item['source'];?>" data-uid_shared_with="<?php echo $item['uid_shared_with'];?>">Delete</button></td>
</tr>
<?php endforeach;?>
<tr id="share_item_row">
<form action="#" id="share_item">
<td class="source"><input placeholder="Item" id="source" /></td>
<td class="uid_shared_with"><input placeholder="Share With" id="uid_shared_with" /></td>
<td class="permissions"><input placeholder="Permissions" id="permissions" /></td>
<td><input type="submit" value="Share" /></td>
</form>
</tr>
</tbody>
</table>
</fieldset>

View File

@ -129,8 +129,7 @@ if($arguments['action']){
// calc the string in GMT not localtime and add the offset
$expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
//output the HTTP header
Header($expire);
header('Expires: 0');
header($expire);
header('Cache-Control: max-age=3600, must-revalidate');
header('Pragma: public');
header('Accept-Ranges: bytes');

9
apps/media/l10n/ca.php Normal file
View File

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Música",
"Songs scanned" => "Cançons escanejades",
"Rescan Collection" => "Escaneja de nou la col·lecció",
"Pause" => "Pausa",
"Artist" => "Artista",
"Album" => "Àlbum",
"Title" => "Títol"
);

9
apps/media/l10n/da.php Normal file
View File

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Musik",
"Songs scanned" => "Sange skannet",
"Rescan Collection" => "Genskan Samling",
"Pause" => "Pause",
"Artist" => "Kunstner",
"Album" => "Album",
"Title" => "Titel"
);

9
apps/media/l10n/el.php Normal file
View File

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Μουσική",
"Songs scanned" => "Σαρωμένα τραγούγια",
"Rescan Collection" => "Επανασάρωση συλλογής",
"Pause" => "Παύση",
"Artist" => "Καλλιτέχνης",
"Album" => "Άλμπουμ",
"Title" => "Τίτλος"
);

9
apps/media/l10n/es.php Normal file
View File

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Música",
"Songs scanned" => "Canciones encontradas",
"Rescan Collection" => "Buscar música nueva",
"Pause" => "Pausa",
"Artist" => "Artista",
"Album" => "Álbum",
"Title" => "Título"
);

7
apps/media/l10n/it.php Normal file
View File

@ -0,0 +1,7 @@
<?php $TRANSLATIONS = array(
"Music" => "Musica",
"Pause" => "Pausa",
"Artist" => "Artista",
"Album" => "Album",
"Title" => "Titolo"
);

9
apps/media/l10n/nl.php Normal file
View File

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Muziek",
"Songs scanned" => "nummers gescanned",
"Rescan Collection" => "Collectie opnieuw scannen",
"Pause" => "Pauze",
"Artist" => "Artiest",
"Album" => "Album",
"Title" => "Titel"
);

View File

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Música",
"Songs scanned" => "Músicas encontradas",
"Rescan Collection" => "Atualizar a Coleção",
"Pause" => "Pausa",
"Artist" => "Artista",
"Album" => "Álbum",
"Title" => "Título"
);

9
apps/media/l10n/sv.php Normal file
View File

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Musik",
"Songs scanned" => "Skannade låtar",
"Rescan Collection" => "Sök igenom samlingen",
"Pause" => "Paus",
"Artist" => "Artist",
"Album" => "Album",
"Title" => "Titel"
);

View File

@ -201,6 +201,7 @@ class OC_MEDIA_AMPACHE{
$filter=isset($params['filter'])?$params['filter']:'';
$exact=isset($params['exact'])?($params['exact']=='true'):false;
$artists=OC_MEDIA_COLLECTION::getArtists($filter,$exact);
error_log('artists found: '.print_r($artists,true));
echo('<root>');
foreach($artists as $artist){
self::printArtist($artist);
@ -215,8 +216,7 @@ class OC_MEDIA_AMPACHE{
</root>");
return;
}
global $SITEROOT;
$filter=$params['filter'];
$filter=isset($params['filter'])?$params['filter']:'';
$songs=OC_MEDIA_COLLECTION::getSongs($filter);
$artist=OC_MEDIA_COLLECTION::getArtistName($filter);
echo('<root>');

View File

@ -123,10 +123,12 @@ class OC_MEDIA_COLLECTION{
static public function getArtists($search='%',$exact=false){
if(!$exact and $search!='%'){
$search="%$search%";
}elseif($search==''){
$search='%';
}
$query=OC_DB::prepare("SELECT DISTINCT *PREFIX*media_artists.artist_name AS artist_name , *PREFIX*media_artists.artist_id AS artist_id FROM *PREFIX*media_artists
INNER JOIN *PREFIX*media_songs ON *PREFIX*media_artists.artist_id=*PREFIX*media_songs.song_artist WHERE artist_name LIKE ? AND *PREFIX*media_songs.song_user=?");
return $query->execute(array($search,OC_User::getUser()))->fetchAll();
return $query->execute(array($search,self::$uid))->fetchAll();
}
/**
@ -159,7 +161,7 @@ class OC_MEDIA_COLLECTION{
static public function getAlbums($artist=0,$search='%',$exact=false){
$cmd="SELECT DISTINCT *PREFIX*media_albums.album_name AS album_name , *PREFIX*media_albums.album_artist AS album_artist , *PREFIX*media_albums.album_id AS album_id
FROM *PREFIX*media_albums INNER JOIN *PREFIX*media_songs ON *PREFIX*media_albums.album_id=*PREFIX*media_songs.song_album WHERE *PREFIX*media_songs.song_user=? ";
$params=array(OC_User::getUser());
$params=array(self::$uid);
if($artist!=0){
$cmd.="AND *PREFIX*media_albums.album_artist = ? ";
array_push($params,$artist);

View File

@ -1,8 +1,8 @@
<form id="openidform">
<fieldset class="personalblock">
<label for="openid"><strong>OpenID</strong></label>
<input type="text" id="openid" value="<?php echo ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].OC::$WEBROOT.'/?'; echo OC_User::getUser(); ?>" title="you can authenticate to other sites with this address" />
<label for="identity">Authorized</label>
<input type="text" name="identity" id="identity" value="<?php echo $_['identity']; ?>" placeholder="OpenID provider" title="Wordpress, Identi.ca, Launchpad, &hellip;" />
<input type="text" id="openid" value="<?php echo ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].OC::$WEBROOT.'/?'; echo OC_User::getUser(); ?>" title="<?php echo $l->t('you can authenticate to other sites with this address');?>" />
<label for="identity"><?php echo $l->t('Authorized');?></label>
<input type="text" name="identity" id="identity" value="<?php echo $_['identity']; ?>" placeholder="OpenID <?php echo $l->t('provider');?>" title="<?php echo $l->t('Wordpress, Identi.ca, Launchpad, &hellip;');?>" />
</fieldset>
</form>

View File

@ -21,25 +21,31 @@
*
*/
// We send json data
header( "Content-Type: application/jsonrequest" );
$RUNTIME_NOAPPS = TRUE; //no apps, yet
require_once('../../lib/base.php');
if(isset($_GET["user"]) && isset($_GET["password"]))
{
if(!OC_User::checkPassword($_GET["user"], $_GET["password"]))
exit();
$groups = array();
foreach( OC_Group::getGroups() as $i ){
// Do some more work here soon
$groups[] = array( "groupname" => $i );
if(!OC_User::isLoggedIn()){
if(!isset($_SERVER['PHP_AUTH_USER'])){
header('WWW-Authenticate: Basic realm="ownCloud Server"');
header('HTTP/1.0 401 Unauthorized');
echo 'Valid credentials must be supplied';
exit();
} else {
if(!OC_User::checkPassword($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])){
exit();
}
}
echo json_encode($groups);
}
$groups = array();
foreach( OC_Group::getGroups() as $i ){
// Do some more work here soon
$groups[] = array( "groupname" => $i );
}
// We send json data
header( "Content-Type: application/jsonrequest" );
echo json_encode($groups);
?>

View File

@ -21,27 +21,30 @@
*
*/
// We send json data
header( "Content-Type: application/jsonrequest" );
$RUNTIME_NOAPPS = TRUE; //no apps, yet
require_once('../../lib/base.php');
if(isset($_GET["user"]) && isset($_GET["password"]))
{
if(!OC_User::checkPassword($_GET["user"], $_GET["password"]))
if(!OC_User::isLoggedIn()){
if(!isset($_SERVER['PHP_AUTH_USER'])){
header('WWW-Authenticate: Basic realm="ownCloud Server"');
header('HTTP/1.0 401 Unauthorized');
echo 'Valid credentials must be supplied';
exit();
$users = array();
foreach( OC_User::getUsers() as $i ){
$users[] = array( "username" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ));
}
echo json_encode($users);
} else {
if(!OC_User::checkPassword($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])){
exit();
}
}
}
$users = array();
foreach( OC_User::getUsers() as $i ){
$users[] = array( "username" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ));
}
// We send json data
header( "Content-Type: application/jsonrequest" );
echo json_encode($users);
?>

View File

@ -21,37 +21,21 @@
*
*/
header("Content-Type: application/jsonrequest");
$RUNTIME_NOAPPS = TRUE; //no apps, yet
require_once('../../lib/base.php');
$not_installed = !OC_Config::getValue('installed', false);
// First step : check if the server is correctly configured for ownCloud :
$errors = OC_Util::checkServer();
if(count($errors) > 0) {
echo json_encode(array("user_valid" => "false", "comment" => $errors));
}
// Setup required :
elseif($not_installed) {
echo json_encode(array("user_valid" => "false", "comment" => "not_installed"));
}
// Someone wants to check a user:
elseif(isset($_GET["user"]) and isset($_GET["password"])) {
if(OC_User::checkPassword($_GET["user"], $_GET["password"]))
echo json_encode(array("user_valid" => "true", "comment" => ""));
else
echo json_encode(array("user_valid" => "false", "comment" => ""));
}
// For all others cases:
else {
echo json_encode(array("user_valid" => "false", "comment" => "unknown"));
if(!isset($_SERVER['PHP_AUTH_USER'])){
header('WWW-Authenticate: Basic realm="ownCloud Server"');
header('HTTP/1.0 401 Unauthorized');
echo 'Valid credentials must be supplied';
exit();
} else {
header("Content-Type: application/jsonrequest");
if(OC_User::checkPassword($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])){
echo json_encode(array("username" => $_SERVER["PHP_AUTH_USER"], "user_valid" => "true"));
} else {
echo json_encode(array("username" => $_SERVER["PHP_AUTH_USER"], "user_valid" => "false"));
}
}
?>

View File

@ -34,11 +34,11 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', end
input[type="text"], input[type="password"] { cursor:text; }
input, select, .button, #quota, div.jp-progress { font-size:1em; width:10em; margin:.3em; padding:.6em .5em .4em; background:#fff; color:#333; border:1px solid #ddd; -moz-box-shadow:0 1px 1px #fff, 0 2px 0 #bbb inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; }
input[type="text"], input[type="password"] { background:#f8f8f8; color:#555; cursor:text; }
input[type="text"]:hover, input[type="text"]:focus, input[type="password"]:hover, input[type="password"]:focus { background:#fff; color:#333; }
input[type="text"]:hover, input[type="text"]:focus, input[type="password"]:hover, input[type="password"]:focus { background:#fff; color:#333; outline: none;}
input[type="submit"], input[type="button"], .button, #quota, div.jp-progress { 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="checkbox"] { width:auto; }
input[type="submit"]:hover, input[type="submit"]:focus, input[type="button"]:hover, input[type="button"]:focus, .button:hover { background:#fff; color:#333; outline: none;}
input[type="checkbox"] { width:auto; outline: none;}
#body-login input { font-size:1.5em; }
#body-login input[type="submit"] { float:right; margin-right:.8em; }
@ -51,7 +51,7 @@ input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text-
/* CONTENT ------------------------------------------------------------------ */
#controls { 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; }
#content { margin:3.5em 0 0 12.5em; padding-bottom:10em; }
#content { margin:3.5em 0 0 12.5em; }
#leftcontent { position:absolute; top:6.4em; width:20em; background:#f8f8f8; height:100%; border-right:1px solid #ddd; }
#leftcontent li { 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 { background:#eee; }
@ -93,7 +93,7 @@ input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text-
/* VARIOUS REUSABLE SELECTORS */
.hidden { display:none; }
#notification { z-index:101; cursor:pointer; background-color:#fc4; border:0; padding:0 .7em .3em; display:block; position:fixed; left:50%; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; }
#notification { z-index:101; cursor:pointer; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position:fixed; left:50%; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; }
.action, .selectedActions a, #logout { opacity:.3; -webkit-transition:opacity 500ms; -moz-transition:opacity 500ms; -o-transition:opacity 500ms; transition:opacity 500ms; }
.action:hover, .selectedActions a:hover, #logout:hover { opacity:1; }
@ -101,10 +101,10 @@ input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text-
table tr { -webkit-transition:background-color 500ms; -moz-transition:background-color 500ms; -o-transition:background-color 500ms; transition:background-color 500ms; }
tbody tr:hover, tr:active { background-color:#f8f8f8; }
#body-settings .personalblock { 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 div.personalblock:first-child { position:relative; margin-top:4.5em; padding:0; }
#body-settings .personalblock { 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; }
#quota div, div.jp-play-bar, div.jp-seek-bar { padding:.6em 1em; background:#e6e6e6; font-weight:normal; white-space:nowrap; }
#quota div, div.jp-play-bar, div.jp-seek-bar { padding:.6em 1em; 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; }
div.jp-play-bar, div.jp-seek-bar { padding:0; }
li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; background:#ffe .8em .8em no-repeat; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }

View File

@ -180,7 +180,7 @@ if (!Array.prototype.indexOf){
* check if the browser support svg images
*/
function SVGSupport() {
return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") || document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.0");
return !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
}
/**
@ -302,9 +302,7 @@ $(document).ready(function(){
// all the tipsy stuff needs to be here (in reverse order) to work
$('.jp-controls .jp-previous').tipsy({gravity:'nw', fade:true, live:true});
$('.jp-controls .jp-next').tipsy({gravity:'n', fade:true, live:true});
$('.remove .action').tipsy({gravity:'se', fade:true, live:true});
$('.date .action').tipsy({gravity:'se', fade:true, live:true});
$('.action').tipsy({gravity:'s', fade:true, live:true});
$('.password .action').tipsy({gravity:'se', fade:true, live:true});
$('.selectedActions a.delete').tipsy({gravity: 'ne', fade:true, live:true});
$('.selectedActions a').tipsy({gravity:'n', fade:true, live:true});
$('.file_upload_button_wrapper').tipsy({gravity:'e', fade:true});

View File

@ -7,7 +7,6 @@
"Data folder" => "Директория за данни",
"Finish setup" => "Завършване на настройките",
"Cloud not found" => "обклакът не намерен",
"is a personal cloud which runs on your own server" => "е персонален облак който работи от Ваш собствен сървър",
"prev" => "пред.",
"next" => "следващо",
"You are logged out." => "Вие излязохте."

27
core/l10n/ca.php Normal file
View File

@ -0,0 +1,27 @@
<?php $TRANSLATIONS = array(
"Users" => "Usuaris",
"Apps" => "Aplicacions",
"Help" => "Ajuda",
"Personal" => "Personal",
"Login failed!" => "L'inici de sessió ha fallat!",
"remember" => "recorda'm",
"Create an <strong>admin account</strong>" => "Crea un <strong>compte d'administrador</strong>",
"Username" => "Nom d'usuari",
"Password" => "Contrasenya",
"Configure the database" => "Configura la base de dades",
"will be used" => "s'usarà",
"Database user" => "Usuari de la base de dades",
"Database password" => "Contrasenya de la base de dades",
"Database name" => "Nom de la base de dades",
"Advanced" => "Avançat",
"Host" => "Host",
"Table prefix" => "Prefix de les taules",
"Data folder" => "Carpeta de dades",
"Finish setup" => "Acaba la configuració",
"Cloud not found" => "No s'ha trobat el núvol",
"gives you the freedom to control your own data on the internet" => "us dóna la llibertat per controlar les vostres dades a internet",
"prev" => "anterior",
"next" => "següent",
"You are logged out." => "Heu tancat la sessió.",
"Settings" => "Arranjament"
);

View File

@ -1,8 +1,22 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Login mislykkedes",
"Login failed!" => "Login mislykkedes!",
"remember" => "husk",
"Create an <strong>admin account</strong>" => "Lav en <strong>administrator konto</strong>",
"Username" => "Brugernavn",
"Password" => "Kodeord",
"Configure the database" => "Konfigurer databasen",
"will be used" => "vil blive brugt",
"Database user" => "Database-bruger",
"Database password" => "Database-kodeord",
"Database name" => "Database-navn",
"Advanced" => "Avanceret",
"Host" => "Vært",
"Table prefix" => "Tabel præfiks",
"Data folder" => "Data mappe",
"Finish setup" => "Afslut installation",
"Cloud not found" => "Sky ikke fundet",
"prev" => "forrige",
"next" => "næste",
"You are logged out." => "Du er nu logget ud"
"You are logged out." => "Du er nu logget ud",
"Settings" => "Indstillinger"
);

View File

@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
"Users" => "Nutzer",
"Apps" => "Anwendungen",
"Help" => "Hilfe",
"Personal" => "Persönlich",
"Login failed!" => "Anmeldung fehlgeschlagen!",
"remember" => "merken",
"Create an <strong>admin account</strong>" => "<strong>Admin-Konto</strong> anlegen",
@ -15,10 +19,9 @@
"Data folder" => "Datenverzeichnis",
"Finish setup" => "Installation abschließen",
"Cloud not found" => "Cloud nicht verfügbar",
"is a personal cloud which runs on your own server" => "ist ein persönlicher Online-Speicher für deinen eigenen Server",
"gives you the freedom to control your own data on the internet" => "gibt dir die Freiheit, deine eigenen Daten im Internet zu kontrollieren.",
"prev" => "Zurück",
"next" => "Weiter",
"You are logged out." => "Erfolgreich abgemeldet.",
"Log out" => "Abmelden",
"Settings" => "Einstellungen"
);

23
core/l10n/el.php Normal file
View File

@ -0,0 +1,23 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Η σύνδεση απέτυχε!",
"remember" => "να με θυμάσαι",
"Create an <strong>admin account</strong>" => "Δημιουργήστε έναν <strong>λογαριασμό διαχειριστή</strong>",
"Username" => "Όνομα Χρήστη",
"Password" => "Κωδικός",
"Configure the database" => "Διαμόρφωση της βάσης δεδομένων",
"will be used" => "θα χρησιμοποιηθούν",
"Database user" => "Χρήστης της βάσης δεδομένων",
"Database password" => "Κωδικός πρόσβασης βάσης δεδομένων",
"Database name" => "Όνομα βάσης δεδομένων",
"Advanced" => "Για προχωρημένους",
"Host" => "Εξυπηρετητής",
"Table prefix" => "Πρόθεμα πίνακα",
"Data folder" => "Φάκελος δεδομένων",
"Finish setup" => "Ολοκλήρωση εγκατάστασης",
"Cloud not found" => "Δεν βρέθηκε σύννεφο",
"gives you the freedom to control your own data on the internet" => "σας δίνει την ελευθερία να ελέγχετε τα δικά σας δεδομένα στο διαδίκτυο",
"prev" => "προηγούμενο",
"next" => "επόμενο",
"You are logged out." => "Έχετε αποσυνδεθεί.",
"Settings" => "Ρυθμίσεις"
);

View File

@ -1,10 +1,22 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "¡No se pudo iniciar sesión!",
"remember" => "recuérdame",
"Create an <strong>admin account</strong>" => "Crear una <strong>cuenta de administrador</strong>",
"Username" => "Nombre de usuario",
"Password" => "Contraseña",
"Configure the database" => "Configurar la base de datos",
"will be used" => "serán utilizados",
"Database user" => "Usuario de la base de datos",
"Database password" => "Contraseña de la base de datos",
"Database name" => "Nombre de la base de datos",
"Advanced" => "Avanzado",
"Host" => "Host",
"Table prefix" => "Prefijo de la tabla",
"Data folder" => "Directorio de almacenamiento",
"Finish setup" => "Completar la instalación",
"Cloud not found" => "No se encontró la nube",
"prev" => "anterior",
"next" => "siguiente",
"You are logged out." => "Has cerrado sesión."
"You are logged out." => "Has cerrado sesión.",
"Settings" => "Ajustes"
);

View File

@ -15,10 +15,9 @@
"Data folder" => "Répertoire des données",
"Finish setup" => "Terminer l'installation",
"Cloud not found" => "Introuvable",
"is a personal cloud which runs on your own server" => "est un service de cloud personnel propulsé par votre propre serveur",
"gives you the freedom to control your own data on the internet" => "vous rend libre de contrôler vos propres données sur internet",
"prev" => "précédent",
"next" => "suivant",
"You are logged out." => "Vous êtes désormais déconnecté.",
"Log out" => "Se déconnecter",
"Settings" => "Paramètres"
);

10
core/l10n/id.php Normal file
View File

@ -0,0 +1,10 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Gagal masuk!",
"Username" => "Username",
"Password" => "Password",
"Advanced" => "Tingkat Lanjut",
"Finish setup" => "Selesaikan instalasi",
"prev" => "sebelum",
"next" => "selanjutnya",
"You are logged out." => "Anda telah keluar."
);

21
core/l10n/it.php Normal file
View File

@ -0,0 +1,21 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Login fallito!",
"remember" => "ricorda",
"Create an <strong>admin account</strong>" => "Crea un &lt;strong&gt;account amministratore&lt;/strong&gt;",
"Username" => "Nome utente",
"Password" => "Password",
"Configure the database" => "Configura il database",
"will be used" => "sarà usato",
"Database user" => "Utente database",
"Database password" => "Password database",
"Database name" => "Nome database",
"Advanced" => "Opzioni avanzate",
"Host" => "Host",
"Table prefix" => "Prefisso tabella",
"Data folder" => "Cartella dati",
"Finish setup" => "Termina",
"prev" => "precedente",
"next" => "successivo",
"You are logged out." => "Sei uscito.",
"Settings" => "Impostazioni"
);

View File

@ -1,8 +1,23 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Aanmelden mislukt.",
"remember" => "onthoud gegevens",
"Create an <strong>admin account</strong>" => "Maak een <strong>admin-account</strong>",
"Username" => "Gebruikersnaam",
"Password" => "Wachtwoord",
"Configure the database" => "Configureren van de database",
"will be used" => "zal gebruikt woorden",
"Database user" => "Database gebruiker",
"Database password" => "Database wachtwoord",
"Database name" => "Database naam",
"Advanced" => "Geavanceerd",
"Host" => "Host",
"Table prefix" => "Tabelnaam voorvoegsel",
"Data folder" => "Gegevens folder",
"Finish setup" => "Installatie afronden",
"Cloud not found" => "Cloud niet gevonden",
"gives you the freedom to control your own data on the internet" => "geeft je de vrijheid om je eigen data te controleren op het internet",
"prev" => "vorige",
"next" => "volgende",
"You are logged out." => "U bent afgemeld."
"You are logged out." => "U bent afgemeld.",
"Settings" => "Instellingen"
);

22
core/l10n/pt_BR.php Normal file
View File

@ -0,0 +1,22 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Login sem sucesso",
"remember" => "lembrete",
"Create an <strong>admin account</strong>" => "Criar uma <strong>conta</strong> de <strong>administrador</strong>",
"Username" => "Nome de Usuário",
"Password" => "Senha",
"Configure the database" => "Configurar o banco de dados",
"will be used" => "será usado",
"Database user" => "Usuário de banco de dados",
"Database password" => "Senha do banco de dados",
"Database name" => "Nome do banco de dados",
"Advanced" => "Avançado",
"Host" => "Host 'servidor'",
"Table prefix" => "Prefixo da tabela",
"Data folder" => "Pasta de dados",
"Finish setup" => "Concluir configuração",
"Cloud not found" => "Cloud não encontrado",
"prev" => "anterior",
"next" => "próximo",
"You are logged out." => "Você está desconectado.",
"Settings" => "Configurações"
);

26
core/l10n/sv.php Normal file
View File

@ -0,0 +1,26 @@
<?php $TRANSLATIONS = array(
"Users" => "Användare",
"Apps" => "Program",
"Help" => "Hjälp",
"Login failed!" => "Inloggning misslyckades!",
"remember" => "kom ihåg",
"Create an <strong>admin account</strong>" => "Skapa ett <strong>administratörskonto</strong>",
"Username" => "Användarnamn",
"Password" => "Lösenord",
"Configure the database" => "Konfigurera databasen",
"will be used" => "kommer att användas",
"Database user" => "Databas-användare",
"Database password" => "Databas-lösenord",
"Database name" => "Databasnamn",
"Advanced" => "Avancerat",
"Host" => "Värd",
"Table prefix" => "Tabellprefix",
"Data folder" => "Datamapp",
"Finish setup" => "Avsluta installation",
"Cloud not found" => "Hittade inget moln",
"gives you the freedom to control your own data on the internet" => "ger dig friheten att hantera ditt eget data på internet",
"prev" => "föregående",
"next" => "nästa",
"You are logged out." => "Du är utloggad",
"Settings" => "Inställningar"
);

View File

@ -1,8 +1,10 @@
../strings.php
../templates/404.php
../templates/error.php
../templates/installation.php
../templates/layout.guest.php
../templates/layout.user.php
../templates/login.php
../templates/logout.php
../templates/part.pagenavi.php
../templates/part.searchbox.php
../../lib/app.php

9
core/strings.php Normal file
View File

@ -0,0 +1,9 @@
<?php
//some strings that are used in /lib but wont be translatable unless they are in /core to
$l=new OC_L10N('core');
$l->t("Users");
$l->t("Apps");
$l->t("Help");
$l->t("Personal");
?>

View File

@ -4,13 +4,13 @@
<title>ownCloud</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="<?php echo image_path('', 'favicon.png'); ?>" /><link rel="apple-touch-icon-precomposed" href="<?php echo image_path('', 'favicon-touch.png'); ?>" />
<?php if(isset($_['cssfiles'])) foreach($_['cssfiles'] as $cssfile): ?>
<?php foreach($_['cssfiles'] as $cssfile): ?>
<link rel="stylesheet" href="<?php echo $cssfile; ?>" type="text/css" media="screen" />
<?php endforeach; ?>
<script type="text/javascript">
var oc_webroot = '<?php global $WEBROOT; echo $WEBROOT; ?>';
// </script>
<?php if(isset($_['jsfiles'])) foreach($_['jsfiles'] as $jsfile): ?>
</script>
<?php foreach($_['jsfiles'] as $jsfile): ?>
<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
<?php endforeach; ?>
@ -20,11 +20,8 @@
foreach($header['attributes'] as $name=>$value){
echo "$name='$value' ";
};
echo '>';
echo $header['text'];
echo '</'.$header['tag'].'>';
echo '/>';
?>
<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
<?php endforeach; ?>
</head>

View File

@ -10,7 +10,7 @@
<script type="text/javascript">
var oc_webroot = '<?php global $WEBROOT; echo $WEBROOT; ?>';
var oc_current_user = '<?php echo OC_User::getUser() ?>';
// </script>
</script>
<?php foreach($_['jsfiles'] as $jsfile): ?>
<script type="text/javascript" src="<?php echo $jsfile; ?>"></script>
<?php endforeach; ?>
@ -20,9 +20,7 @@
foreach($header['attributes'] as $name=>$value){
echo "$name='$value' ";
};
echo '>';
echo $header['text'];
echo '</'.$header['tag'].'>';
echo '/>';
?>
<?php endforeach; ?>
</head>

View File

@ -1,12 +1,12 @@
<center>
<table class="pager" cellspacing="0" cellpadding="0" border="0">
<tr>
<tr><td width="50%"></td>
<td width="1">
<?php if($_['page']>0):?>
<span class="pagerbutton1"><a href="<?php echo $_['url'].($_['page']-1);?>"><?php echo $l->t( 'prev' ); ?></a>&nbsp;&nbsp;</span>
<?php endif; ?>
</td>
<td>
<td width="1">
<?php if ($_['pagestart']>0):?>
...
<?php endif;?>
@ -26,6 +26,6 @@
<span class="pagerbutton2"><a href="<?php echo $_['url'].($_['page']+1);?>"><?php echo $l->t( 'next' ); ?></a></span>
<?php endif; ?>
</td>
</tr>
<td width="50%"></td></tr>
</table>
</center>
</center>

View File

@ -53,11 +53,10 @@ table td.filename .nametext { width:60%; }
table td.filename form { float:left; font-size:.85em; }
table thead.fixed tr{ position:fixed; top:6.3em; z-index:49; -moz-box-shadow:0 -3px 7px #000; -webkit-box-shadow:0 -3px 7px #000; box-shadow:0 -3px 7px #000; }
table thead.fixed { height:2em; }
#fileList tr input[type=checkbox] { opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesnt work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 500ms; -moz-transition:opacity 500ms; -o-transition:opacity 500ms; transition:opacity 500ms; }
#fileList tr:hover input[type="checkbox"] { opacity:.5; }
#fileList tr input[type="checkbox"]:checked { opacity:1; }
#fileList tr td.filename>input[type=checkbox]:first-child { opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesnt work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 500ms; -moz-transition:opacity 500ms; -o-transition:opacity 500ms; transition:opacity 500ms; }
#fileList tr:hover td.filename>input[type="checkbox"]:first-child { opacity:.8; }
#fileList tr td.filename>input[type="checkbox"]:checked:first-child { opacity:1; }
#fileList tr td.filename { -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms; }
#fileList tr.selected td.filename, #fileList tr:hover td.filename { background-image:url('') !important; }
#select_all { float:left; margin:.2em; margin-left:.6em; }
#uploadsize-message,#delete-confirm { display:none; }
.selectedActions a, a.action { float:right; display:inline; margin:0 .5em; padding:.3em .3em 0 .3em !important; }

View File

@ -69,8 +69,11 @@ foreach( explode( "/", $dir ) as $i ){
// make breadcrumb und filelist markup
$list = new OC_Template( "files", "part.list", "" );
$list->assign( "files", $files );
$list->assign( "baseURL", OC_Helper::linkTo("files", "index.php?dir="));
$list->assign( "downloadURL", OC_Helper::linkTo("files", "download.php?file="));
$breadcrumbNav = new OC_Template( "files", "part.breadcrumb", "" );
$breadcrumbNav->assign( "breadcrumb", $breadcrumb );
$breadcrumbNav->assign( "baseURL", OC_Helper::linkTo("files", "index.php?dir="));
$maxUploadFilesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));

14
files/l10n/ca.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Fitxers",
"Maximum upload size" => "Mida màxima de pujada",
"Nothing in here. Upload something!" => "Res per aquí. Pugeu alguna cosa!",
"Upload" => "Puja",
"New Folder" => "Carpeta nova",
"Name" => "Nom",
"Download" => "Descarrega",
"Size" => "Mida",
"Modified" => "Modificat",
"Delete" => "Esborra",
"Upload too large" => "La pujada és massa gran",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada d'aquest servidor"
);

14
files/l10n/da.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Filer",
"Maximum upload size" => "Maksimal upload-størrelse",
"Nothing in here. Upload something!" => "Her er tomt. Upload noget!",
"Upload" => "Upload",
"New Folder" => "Ny Mappe",
"Name" => "Navn",
"Download" => "Download",
"Size" => "Størrelse",
"Modified" => "Ændret",
"Delete" => "Slet",
"Upload too large" => "Upload for stor",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerne du prøver at uploade er større end den maksimale størrelse for fil-upload på denne server."
);

14
files/l10n/el.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Αρχεία",
"Maximum upload size" => "Μέγιστο μέγεθος μεταφόρτωσης",
"Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανέβασε κάτι!",
"Upload" => "Μεταφόρτωση",
"New Folder" => "Νέος φάκελος",
"Name" => "Όνομα",
"Download" => "Λήψη",
"Size" => "Μέγεθος",
"Modified" => "Τροποποιήθηκε",
"Delete" => "Διαγραφή",
"Upload too large" => "Πολύ μεγάλο το αρχείο προς μεταφόρτωση",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος μεταφόρτωσης αρχείων σε αυτόν το διακομιστή."
);

14
files/l10n/es.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Archivos",
"Maximum upload size" => "Tamaño máximo de subida",
"Nothing in here. Upload something!" => "Aquí no hay nada. ¡Sube algo!",
"Upload" => "Subir",
"New Folder" => "Crear Carpeta",
"Name" => "Nombre",
"Download" => "Descargar",
"Size" => "Tamaño",
"Modified" => "Modificado",
"Delete" => "Eliminado",
"Upload too large" => "El archivo es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor."
);

14
files/l10n/id.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Berkas",
"Maximum upload size" => "Ukuran unggah maksimum",
"Nothing in here. Upload something!" => "Tidak ada apa-apa di sini. Unggah sesuatu!",
"Upload" => "Unggah",
"New Folder" => "Folder Baru",
"Name" => "Nama",
"Download" => "Unduh",
"Size" => "Ukuran",
"Modified" => "Dimodifikasi",
"Delete" => "Hapus",
"Upload too large" => "Unggahan terlalu besar",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Berkas yang anda coba unggah melebihi ukuran maksimum untuk pengunggahan berkas di server ini."
);

14
files/l10n/it.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "File",
"Maximum upload size" => "Dimensione massima upload",
"Nothing in here. Upload something!" => "Non c'è niente qui. Carica qualcosa!",
"Upload" => "Carica",
"New Folder" => "Nuova Cartella",
"Name" => "Nome",
"Download" => "Scarica",
"Size" => "Dimensione",
"Modified" => "Modificato",
"Delete" => "Cancella",
"Upload too large" => "Il file caricato è troppo grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "I file che stai provando a caricare superano la dimensione massima consentita su questo server."
);

14
files/l10n/nl.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Bestanden",
"Maximum upload size" => "Maximaale bestands groote voor uploads",
"Nothing in here. Upload something!" => "Er bevind zich hier niks, upload een bestand.",
"Upload" => "Uploaden",
"New Folder" => "Nieuwe Map",
"Name" => "Naam",
"Download" => "Download",
"Size" => "Bestandsgroote",
"Modified" => "Laatst aangepast",
"Delete" => "Verwijderen",
"Upload too large" => "Bestanden te groot",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "De bestanden die U probeert up te loaden zijn grooter dan de maximaal toegstane groote voor deze server."
);

14
files/l10n/pt_BR.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Arquivos",
"Maximum upload size" => "Tamanho máximo para carregar",
"Nothing in here. Upload something!" => "Nada aqui.Carregar alguma coisa!",
"Upload" => "Carregar",
"New Folder" => "Nova Pasta",
"Name" => "Nome",
"Download" => "Baixar",
"Size" => "Tamanho",
"Modified" => "Modificado",
"Delete" => "Excluir",
"Upload too large" => "Arquivo muito grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os arquivos que você está tentando carregar excedeu o tamanho máximo para arquivos no servidor."
);

14
files/l10n/sv.php Normal file
View File

@ -0,0 +1,14 @@
<?php $TRANSLATIONS = array(
"Files" => "Filer",
"Maximum upload size" => "Maximal storlek att lägga upp",
"Nothing in here. Upload something!" => "Ingenting här. Lägg upp något!",
"Upload" => "Lägg upp",
"New Folder" => "Ny katalog",
"Name" => "Namn",
"Download" => "Ladda ned",
"Size" => "Storlek",
"Modified" => "Ändrad",
"Delete" => "Ta bort",
"Upload too large" => "För stor överföring",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Filerna du försöker lägga upp överstiger den maximala storleken för filöverföringar på servern."
);

View File

@ -29,7 +29,7 @@
<span class='name'><?php echo $l->t( 'Name' ); ?></span>
<span class='selectedActions'>
<a href="" title="<?php echo $l->t('Download')?>" class="download"><img class='svg' alt="Download" src="../core/img/actions/download.svg" /></a>
<!--<a href="" title="" class="share">Share</a>-->
<a href="" title="Share" class="share"><img class='svg' alt="Share" src="../core/img/actions/share.svg" /></a>
</span>
</th>
<th id="headerSize"><?php echo $l->t( 'Size' ); ?></th>

View File

@ -1,5 +1,5 @@
<?php foreach($_["breadcrumb"] as $crumb): ?>
<div class="crumb svg" data-dir='<?php echo $crumb["dir"];?>' style='background-image:url("<?php echo image_path('core','breadcrumb.png');?>")'>
<a href="<?php echo link_to("files", "index.php?dir=".$crumb["dir"]); ?>"><?php echo htmlspecialchars($crumb["name"]); ?></a>
<a href="<?php echo $_['baseURL'].$crumb["dir"]; ?>"><?php echo htmlspecialchars($crumb["name"]); ?></a>
</div>
<?php endforeach; ?>

View File

@ -9,7 +9,7 @@
<tr data-file="<?php echo $file['name'];?>" data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>" data-mime="<?php echo $file['mime']?>" data-size='<?php echo $file['size'];?>'>
<td class="filename svg" style="background-image:url(<?php if($file['type'] == 'dir') echo mimetype_icon('dir'); else echo mimetype_icon($file['mime']); ?>)">
<input type="checkbox" />
<a class="name" href="<?php if($file['type'] == 'dir') echo link_to('files', 'index.php?dir='.$file['directory'].'/'.$file['name']); else echo link_to('files', 'download.php?file='.$file['directory'].'/'.$file['name']); ?>" title="">
<a class="name" href="<?php if($file['type'] == 'dir') echo $_['baseURL'].$file['directory'].'/'.$file['name']; else echo $_['downloadURL'].$file['directory'].'/'.$file['name']; ?>" title="">
<span class="nametext">
<?php if($file['type'] == 'dir'):?>
<?php echo htmlspecialchars($file['name']);?>

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 03:02+0000\n"
"POT-Creation-Date: 2011-08-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.net/projects/p/owncloud/team/bg_BG/)\n"
"MIME-Version: 1.0\n"
@ -18,6 +18,22 @@ msgstr ""
"Language: bg_BG\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
#: strings.php:6
msgid "Apps"
msgstr ""
#: strings.php:7
msgid "Help"
msgstr ""
#: strings.php:8
msgid "Personal"
msgstr ""
#: templates/login.php:4
msgid "Login failed!"
msgstr "Входа пропадна!"
@ -84,8 +100,8 @@ msgid "Cloud not found"
msgstr "обклакът не намерен"
#: templates/layout.guest.php:38
msgid "is a personal cloud which runs on your own server"
msgstr "е персонален облак който работи от Ваш собствен сървър"
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
#: templates/part.pagenavi.php:6
msgid "prev"
@ -99,11 +115,7 @@ msgstr "следващо"
msgid "You are logged out."
msgstr "Вие излязохте."
#: templates/layout.user.php:36
msgid "Log out"
msgstr ""
#: templates/layout.user.php:56
#: templates/layout.user.php:49
msgid "Settings"
msgstr ""

69
l10n/bg_BG/files.po Normal file
View File

@ -0,0 +1,69 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 02:25+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.net/projects/p/owncloud/team/bg_BG/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg_BG\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:7
msgid "Files"
msgstr ""
#: templates/admin.php:5
msgid "Maximum upload size"
msgstr ""
#: templates/part.list.php:1
msgid "Nothing in here. Upload something!"
msgstr ""
#: templates/index.php:9
msgid "Upload"
msgstr ""
#: templates/index.php:16
msgid "New Folder"
msgstr ""
#: templates/index.php:29
msgid "Name"
msgstr ""
#: templates/index.php:31
msgid "Download"
msgstr ""
#: templates/index.php:35
msgid "Size"
msgstr ""
#: templates/index.php:36
msgid "Modified"
msgstr ""
#: templates/index.php:36
msgid "Delete"
msgstr ""
#: templates/index.php:44
msgid "Upload too large"
msgstr ""
#: templates/index.php:46
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""

47
l10n/bg_BG/media.po Normal file
View File

@ -0,0 +1,47 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.net/projects/p/owncloud/team/bg_BG/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg_BG\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:31
msgid "Music"
msgstr ""
#: templates/music.php:27
msgid "Songs scanned"
msgstr ""
#: templates/music.php:28
msgid "Rescan Collection"
msgstr ""
#: templates/music.php:29
msgid "Pause"
msgstr ""
#: templates/music.php:35
msgid "Artist"
msgstr ""
#: templates/music.php:36
msgid "Album"
msgstr ""
#: templates/music.php:37
msgid "Title"
msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"POT-Creation-Date: 2011-08-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Bulgarian (Bulgaria) (http://www.transifex.net/projects/p/owncloud/team/bg_BG/)\n"
"MIME-Version: 1.0\n"
@ -33,7 +33,19 @@ msgstr "Невалидна заявка"
msgid "Language changed"
msgstr "Езика е сменен"
#: templates/help.php:21
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:3
msgid "Go there manually."
msgstr ""
#: templates/help.php:11
msgid "Answer"
msgstr ""
#: templates/help.php:17
msgid "Ask a question"
msgstr ""
@ -49,46 +61,46 @@ msgstr ""
msgid "by"
msgstr ""
#: templates/personal.php:3
msgid "Account information"
msgstr "Информация за профила"
#: templates/personal.php:2
msgid "You use"
msgstr ""
#: templates/personal.php:5
msgid "You're currently using"
msgstr "Вие ползвате"
#: templates/personal.php:2
msgid "of the available"
msgstr ""
#: templates/personal.php:5
msgid "of your"
msgstr "на Вашето"
#: templates/personal.php:5
msgid "space"
msgstr "място"
#: templates/personal.php:11 templates/personal.php:17
msgid "Change Password"
msgstr "Промяна на парола"
#: templates/personal.php:12
#: templates/personal.php:7
msgid "Your password got changed"
msgstr "Вашата парола е сменена"
#: templates/personal.php:14
msgid "Old password"
#: templates/personal.php:9
msgid "Current password"
msgstr ""
#: templates/personal.php:15
#: templates/personal.php:10
msgid "New password"
msgstr "Нова парола"
#: templates/personal.php:16
#: templates/personal.php:11
msgid "show"
msgstr ""
#: templates/personal.php:23
#: templates/personal.php:12
msgid "Change password"
msgstr ""
#: templates/personal.php:18
msgid "Language"
msgstr "Език"
#: templates/personal.php:24
msgid "Help translating"
msgstr ""
#: templates/personal.php:30
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:11
msgid "Name"
msgstr ""
@ -105,8 +117,8 @@ msgstr ""
msgid "Create"
msgstr ""
#: templates/users.php:36
msgid "Remove"
#: templates/users.php:40
msgid "Delete"
msgstr ""

121
l10n/ca/core.po Normal file
View File

@ -0,0 +1,121 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <rcalvoi@yahoo.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-19 13:10+0200\n"
"PO-Revision-Date: 2011-08-18 20:01+0000\n"
"Last-Translator: rogerc <rcalvoi@yahoo.com>\n"
"Language-Team: Catalan (http://www.transifex.net/projects/p/owncloud/team/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr "Usuaris"
#: strings.php:6
msgid "Apps"
msgstr "Aplicacions"
#: strings.php:7
msgid "Help"
msgstr "Ajuda"
#: strings.php:8
msgid "Personal"
msgstr "Personal"
#: templates/login.php:4
msgid "Login failed!"
msgstr "L'inici de sessió ha fallat!"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "recorda'm"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
msgstr "Crea un <strong>compte d'administrador</strong>"
#: templates/installation.php:21
msgid "Username"
msgstr "Nom d'usuari"
#: templates/installation.php:22
msgid "Password"
msgstr "Contrasenya"
#: templates/installation.php:27
msgid "Configure the database"
msgstr "Configura la base de dades"
#: templates/installation.php:32 templates/installation.php:43
#: templates/installation.php:53
msgid "will be used"
msgstr "s'usarà"
#: templates/installation.php:64
msgid "Database user"
msgstr "Usuari de la base de dades"
#: templates/installation.php:65
msgid "Database password"
msgstr "Contrasenya de la base de dades"
#: templates/installation.php:66
msgid "Database name"
msgstr "Nom de la base de dades"
#: templates/installation.php:74
msgid "Advanced"
msgstr "Avançat"
#: templates/installation.php:77
msgid "Host"
msgstr "Host"
#: templates/installation.php:78
msgid "Table prefix"
msgstr "Prefix de les taules"
#: templates/installation.php:80
msgid "Data folder"
msgstr "Carpeta de dades"
#: templates/installation.php:83
msgid "Finish setup"
msgstr "Acaba la configuració"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "No s'ha trobat el núvol"
#: templates/layout.guest.php:38
msgid "gives you the freedom to control your own data on the internet"
msgstr "us dóna la llibertat per controlar les vostres dades a internet"
#: templates/part.pagenavi.php:6
msgid "prev"
msgstr "anterior"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "següent"
#: templates/logout.php:1
msgid "You are logged out."
msgstr "Heu tancat la sessió."
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Arranjament"

72
l10n/ca/files.po Normal file
View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <rcalvoi@yahoo.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-16 18:04+0000\n"
"Last-Translator: rogerc <rcalvoi@yahoo.com>\n"
"Language-Team: Catalan (http://www.transifex.net/projects/p/owncloud/team/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:7
msgid "Files"
msgstr "Fitxers"
#: templates/admin.php:5
msgid "Maximum upload size"
msgstr "Mida màxima de pujada"
#: templates/part.list.php:1
msgid "Nothing in here. Upload something!"
msgstr "Res per aquí. Pugeu alguna cosa!"
#: templates/index.php:9
msgid "Upload"
msgstr "Puja"
#: templates/index.php:16
msgid "New Folder"
msgstr "Carpeta nova"
#: templates/index.php:29
msgid "Name"
msgstr "Nom"
#: templates/index.php:31
msgid "Download"
msgstr "Descarrega"
#: templates/index.php:35
msgid "Size"
msgstr "Mida"
#: templates/index.php:36
msgid "Modified"
msgstr "Modificat"
#: templates/index.php:36
msgid "Delete"
msgstr "Esborra"
#: templates/index.php:44
msgid "Upload too large"
msgstr "La pujada és massa gran"
#: templates/index.php:46
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
"Els fitxers que esteu intentant pujar excedeixen la mida màxima de pujada "
"d'aquest servidor"

48
l10n/ca/media.po Normal file
View File

@ -0,0 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <rcalvoi@yahoo.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-16 06:18+0000\n"
"Last-Translator: rogerc <rcalvoi@yahoo.com>\n"
"Language-Team: Catalan (http://www.transifex.net/projects/p/owncloud/team/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:31
msgid "Music"
msgstr "Música"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Cançons escanejades"
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Escaneja de nou la col·lecció"
#: templates/music.php:29
msgid "Pause"
msgstr "Pausa"
#: templates/music.php:35
msgid "Artist"
msgstr "Artista"
#: templates/music.php:36
msgid "Album"
msgstr "Àlbum"
#: templates/music.php:37
msgid "Title"
msgstr "Títol"

124
l10n/ca/settings.po Normal file
View File

@ -0,0 +1,124 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <rcalvoi@yahoo.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Catalan (http://www.transifex.net/projects/p/owncloud/team/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ajax/openid.php:13 ajax/setlanguage.php:13
msgid "Authentication error"
msgstr "Error d'autenticació"
#: ajax/openid.php:21
msgid "OpenID Changed"
msgstr "OpenID ha canviat"
#: ajax/openid.php:23 ajax/setlanguage.php:23
msgid "Invalid request"
msgstr "Sol.licitud no vàlida"
#: ajax/setlanguage.php:21
msgid "Language changed"
msgstr "S'ha canviat l'idioma"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:3
msgid "Go there manually."
msgstr ""
#: templates/help.php:11
msgid "Answer"
msgstr ""
#: templates/help.php:17
msgid "Ask a question"
msgstr "Feu una pregunta"
#: templates/apps.php:12
msgid "Select an App"
msgstr "Sel·leccioneu una aplicació"
#: templates/apps.php:14
msgid "-licensed"
msgstr "- amb llicència"
#: templates/apps.php:14
msgid "by"
msgstr "per"
#: templates/personal.php:2
msgid "You use"
msgstr ""
#: templates/personal.php:2
msgid "of the available"
msgstr ""
#: templates/personal.php:7
msgid "Your password got changed"
msgstr "La contrasenya ha canviat"
#: templates/personal.php:9
msgid "Current password"
msgstr ""
#: templates/personal.php:10
msgid "New password"
msgstr "Contrasenya nova"
#: templates/personal.php:11
msgid "show"
msgstr "mostra"
#: templates/personal.php:12
msgid "Change password"
msgstr ""
#: templates/personal.php:18
msgid "Language"
msgstr "Idioma"
#: templates/personal.php:24
msgid "Help translating"
msgstr ""
#: templates/personal.php:30
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:11
msgid "Name"
msgstr "Nom"
#: templates/users.php:12
msgid "Password"
msgstr "Contrasenya"
#: templates/users.php:13 templates/users.php:28
msgid "Groups"
msgstr "Grups"
#: templates/users.php:18
msgid "Create"
msgstr "Crea"
#: templates/users.php:40
msgid "Delete"
msgstr ""

View File

@ -2,12 +2,13 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Pascal d'Hermilly <pascal@dhermilly.dk>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 02:33+0000\n"
"POT-Creation-Date: 2011-08-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Danish (http://www.transifex.net/projects/p/owncloud/team/da/)\n"
"MIME-Version: 1.0\n"
@ -16,46 +17,62 @@ msgstr ""
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
#: strings.php:6
msgid "Apps"
msgstr ""
#: strings.php:7
msgid "Help"
msgstr ""
#: strings.php:8
msgid "Personal"
msgstr ""
#: templates/login.php:4
msgid "Login failed!"
msgstr "Login mislykkedes"
msgstr "Login mislykkedes!"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr ""
msgstr "husk"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
msgstr ""
msgstr "Lav en <strong>administrator konto</strong>"
#: templates/installation.php:21
msgid "Username"
msgstr ""
msgstr "Brugernavn"
#: templates/installation.php:22
msgid "Password"
msgstr ""
msgstr "Kodeord"
#: templates/installation.php:27
msgid "Configure the database"
msgstr ""
msgstr "Konfigurer databasen"
#: templates/installation.php:32 templates/installation.php:43
#: templates/installation.php:53
msgid "will be used"
msgstr ""
msgstr "vil blive brugt"
#: templates/installation.php:64
msgid "Database user"
msgstr ""
msgstr "Database-bruger"
#: templates/installation.php:65
msgid "Database password"
msgstr ""
msgstr "Database-kodeord"
#: templates/installation.php:66
msgid "Database name"
msgstr ""
msgstr "Database-navn"
#: templates/installation.php:74
msgid "Advanced"
@ -63,15 +80,15 @@ msgstr "Avanceret"
#: templates/installation.php:77
msgid "Host"
msgstr ""
msgstr "Vært"
#: templates/installation.php:78
msgid "Table prefix"
msgstr ""
msgstr "Tabel præfiks"
#: templates/installation.php:80
msgid "Data folder"
msgstr ""
msgstr "Data mappe"
#: templates/installation.php:83
msgid "Finish setup"
@ -79,10 +96,10 @@ msgstr "Afslut installation"
#: templates/404.php:12
msgid "Cloud not found"
msgstr ""
msgstr "Sky ikke fundet"
#: templates/layout.guest.php:38
msgid "is a personal cloud which runs on your own server"
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
#: templates/part.pagenavi.php:6
@ -97,12 +114,8 @@ msgstr "næste"
msgid "You are logged out."
msgstr "Du er nu logget ud"
#: templates/layout.user.php:36
msgid "Log out"
msgstr ""
#: templates/layout.user.php:56
#: templates/layout.user.php:49
msgid "Settings"
msgstr ""
msgstr "Indstillinger"

72
l10n/da/files.po Normal file
View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Pascal d'Hermilly <pascal@dhermilly.dk>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-17 17:24+0000\n"
"Last-Translator: pascal_a <pascal@dhermilly.dk>\n"
"Language-Team: Danish (http://www.transifex.net/projects/p/owncloud/team/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:7
msgid "Files"
msgstr "Filer"
#: templates/admin.php:5
msgid "Maximum upload size"
msgstr "Maksimal upload-størrelse"
#: templates/part.list.php:1
msgid "Nothing in here. Upload something!"
msgstr "Her er tomt. Upload noget!"
#: templates/index.php:9
msgid "Upload"
msgstr "Upload"
#: templates/index.php:16
msgid "New Folder"
msgstr "Ny Mappe"
#: templates/index.php:29
msgid "Name"
msgstr "Navn"
#: templates/index.php:31
msgid "Download"
msgstr "Download"
#: templates/index.php:35
msgid "Size"
msgstr "Størrelse"
#: templates/index.php:36
msgid "Modified"
msgstr "Ændret"
#: templates/index.php:36
msgid "Delete"
msgstr "Slet"
#: templates/index.php:44
msgid "Upload too large"
msgstr "Upload for stor"
#: templates/index.php:46
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
"Filerne du prøver at uploade er større end den maksimale størrelse for fil-"
"upload på denne server."

48
l10n/da/media.po Normal file
View File

@ -0,0 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Pascal d'Hermilly <pascal@dhermilly.dk>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-17 17:19+0000\n"
"Last-Translator: pascal_a <pascal@dhermilly.dk>\n"
"Language-Team: Danish (http://www.transifex.net/projects/p/owncloud/team/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:31
msgid "Music"
msgstr "Musik"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Sange skannet"
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Genskan Samling"
#: templates/music.php:29
msgid "Pause"
msgstr "Pause"
#: templates/music.php:35
msgid "Artist"
msgstr "Kunstner"
#: templates/music.php:36
msgid "Album"
msgstr "Album"
#: templates/music.php:37
msgid "Title"
msgstr "Titel"

View File

@ -2,12 +2,13 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Pascal d'Hermilly <pascal@dhermilly.dk>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"POT-Creation-Date: 2011-08-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Danish (http://www.transifex.net/projects/p/owncloud/team/da/)\n"
"MIME-Version: 1.0\n"
@ -22,90 +23,102 @@ msgstr "Godkendelsesfejl"
#: ajax/openid.php:21
msgid "OpenID Changed"
msgstr ""
msgstr "OpenID ændret"
#: ajax/openid.php:23 ajax/setlanguage.php:23
msgid "Invalid request"
msgstr "Invalid forespørgsel"
msgstr "Ugyldig forespørgsel"
#: ajax/setlanguage.php:21
msgid "Language changed"
msgstr "Sprog ændret"
#: templates/help.php:21
msgid "Ask a question"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:3
msgid "Go there manually."
msgstr ""
#: templates/help.php:11
msgid "Answer"
msgstr ""
#: templates/help.php:17
msgid "Ask a question"
msgstr "Stil et spørgsmål"
#: templates/apps.php:12
msgid "Select an App"
msgstr ""
msgstr "Vælg en App"
#: templates/apps.php:14
msgid "-licensed"
msgstr ""
msgstr "-licenseret"
#: templates/apps.php:14
msgid "by"
msgstr "af"
#: templates/personal.php:2
msgid "You use"
msgstr ""
#: templates/personal.php:3
msgid "Account information"
msgstr "Konto information"
#: templates/personal.php:2
msgid "of the available"
msgstr ""
#: templates/personal.php:5
msgid "You're currently using"
msgstr "Du udnytter i øjeblikket"
#: templates/personal.php:7
msgid "Your password got changed"
msgstr "Din adgangskode er blevet ændret"
#: templates/personal.php:5
msgid "of your"
msgstr "af din"
#: templates/personal.php:9
msgid "Current password"
msgstr ""
#: templates/personal.php:5
msgid "space"
msgstr "plads"
#: templates/personal.php:10
msgid "New password"
msgstr "Ny adgangskode"
#: templates/personal.php:11 templates/personal.php:17
msgid "Change Password"
msgstr "Ændre adgangskode"
#: templates/personal.php:11
msgid "show"
msgstr "vis"
#: templates/personal.php:12
msgid "Your password got changed"
msgstr "Din adgangskode er ændret"
#: templates/personal.php:14
msgid "Old password"
msgid "Change password"
msgstr ""
#: templates/personal.php:15
msgid "New password"
msgstr "Nye adgangskode"
#: templates/personal.php:16
msgid "show"
msgstr ""
#: templates/personal.php:23
#: templates/personal.php:18
msgid "Language"
msgstr "Sprog"
#: templates/personal.php:24
msgid "Help translating"
msgstr ""
#: templates/personal.php:30
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:11
msgid "Name"
msgstr ""
msgstr "Navn"
#: templates/users.php:12
msgid "Password"
msgstr ""
msgstr "Kodeord"
#: templates/users.php:13 templates/users.php:28
msgid "Groups"
msgstr ""
msgstr "Grupper"
#: templates/users.php:18
msgid "Create"
msgstr ""
msgstr "Ny"
#: templates/users.php:36
msgid "Remove"
#: templates/users.php:40
msgid "Delete"
msgstr ""

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 02:35+0000\n"
"POT-Creation-Date: 2011-08-19 13:10+0200\n"
"PO-Revision-Date: 2011-08-18 19:25+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: German (http://www.transifex.net/projects/p/owncloud/team/de/)\n"
"MIME-Version: 1.0\n"
@ -18,6 +18,22 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr "Nutzer"
#: strings.php:6
msgid "Apps"
msgstr "Anwendungen"
#: strings.php:7
msgid "Help"
msgstr "Hilfe"
#: strings.php:8
msgid "Personal"
msgstr "Persönlich"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Anmeldung fehlgeschlagen!"
@ -84,8 +100,9 @@ msgid "Cloud not found"
msgstr "Cloud nicht verfügbar"
#: templates/layout.guest.php:38
msgid "is a personal cloud which runs on your own server"
msgstr "ist ein persönlicher Online-Speicher für deinen eigenen Server"
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
"gibt dir die Freiheit, deine eigenen Daten im Internet zu kontrollieren."
#: templates/part.pagenavi.php:6
msgid "prev"
@ -99,11 +116,7 @@ msgstr "Weiter"
msgid "You are logged out."
msgstr "Erfolgreich abgemeldet."
#: templates/layout.user.php:36
msgid "Log out"
msgstr "Abmelden"
#: templates/layout.user.php:56
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Einstellungen"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 02:37+0000\n"
"POT-Creation-Date: 2011-08-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 17:25+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: German (http://www.transifex.net/projects/p/owncloud/team/de/)\n"
"MIME-Version: 1.0\n"
@ -33,7 +33,19 @@ msgstr "Ungültige Anfrage"
msgid "Language changed"
msgstr "Sprache geändert"
#: templates/help.php:21
#: templates/help.php:3
msgid "Problems connecting to help database."
msgstr "Probleme bei der Verbindung zur Hilfe-Datenbank."
#: templates/help.php:4
msgid "Go there manually."
msgstr "Datenbank direkt besuchen."
#: templates/help.php:12
msgid "Answer"
msgstr "Antwort"
#: templates/help.php:16
msgid "Ask a question"
msgstr "Stell eine Frage"
@ -49,46 +61,48 @@ msgstr "-lizenziert"
msgid "by"
msgstr "von"
#: templates/personal.php:3
msgid "Account information"
msgstr "Konto-Information"
#: templates/personal.php:2
msgid "You use"
msgstr "Du nutzt"
#: templates/personal.php:5
msgid "You're currently using"
msgstr "Du benutzt gerade"
#: templates/personal.php:2
msgid "of the available"
msgstr "der verfügbaren"
#: templates/personal.php:5
msgid "of your"
msgstr "von deinem"
#: templates/personal.php:5
msgid "space"
msgstr "Speicherplatz"
#: templates/personal.php:11 templates/personal.php:17
msgid "Change Password"
msgstr "Passwort ändern"
#: templates/personal.php:12
#: templates/personal.php:7
msgid "Your password got changed"
msgstr "Dein Passwort wurde geändert"
#: templates/personal.php:14
msgid "Old password"
msgstr "Altes Passwort"
#: templates/personal.php:9
msgid "Current password"
msgstr "Aktuelles Passwort"
#: templates/personal.php:15
#: templates/personal.php:10
msgid "New password"
msgstr "Neues Passwort"
#: templates/personal.php:16
#: templates/personal.php:11
msgid "show"
msgstr "zeigen"
#: templates/personal.php:23
#: templates/personal.php:12
msgid "Change password"
msgstr "Passwort ändern"
#: templates/personal.php:18
msgid "Language"
msgstr "Sprache"
#: templates/personal.php:24
msgid "Help translating"
msgstr "Hilf bei der Übersetzung"
#: templates/personal.php:30
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
"benutze diese Adresse, um deine ownCloud mit deinem Dateiverwalter zu "
"verbinden"
#: templates/users.php:11
msgid "Name"
msgstr "Name"
@ -105,8 +119,8 @@ msgstr "Gruppen"
msgid "Create"
msgstr "Anlegen"
#: templates/users.php:36
msgid "Remove"
msgstr "Entfernen"
#: templates/users.php:40
msgid "Delete"
msgstr "Löschen"

123
l10n/el/core.po Normal file
View File

@ -0,0 +1,123 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <petros.kyladitis@gmail.com>, 2011.
# Petros Kyladitis <petros.kyladitis@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Greek (http://www.transifex.net/projects/p/owncloud/team/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
#: strings.php:6
msgid "Apps"
msgstr ""
#: strings.php:7
msgid "Help"
msgstr ""
#: strings.php:8
msgid "Personal"
msgstr ""
#: templates/login.php:4
msgid "Login failed!"
msgstr "Η σύνδεση απέτυχε!"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "να με θυμάσαι"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
msgstr "Δημιουργήστε έναν <strong>λογαριασμό διαχειριστή</strong>"
#: templates/installation.php:21
msgid "Username"
msgstr "Όνομα Χρήστη"
#: templates/installation.php:22
msgid "Password"
msgstr "Κωδικός"
#: templates/installation.php:27
msgid "Configure the database"
msgstr "Διαμόρφωση της βάσης δεδομένων"
#: templates/installation.php:32 templates/installation.php:43
#: templates/installation.php:53
msgid "will be used"
msgstr "θα χρησιμοποιηθούν"
#: templates/installation.php:64
msgid "Database user"
msgstr "Χρήστης της βάσης δεδομένων"
#: templates/installation.php:65
msgid "Database password"
msgstr "Κωδικός πρόσβασης βάσης δεδομένων"
#: templates/installation.php:66
msgid "Database name"
msgstr "Όνομα βάσης δεδομένων"
#: templates/installation.php:74
msgid "Advanced"
msgstr "Για προχωρημένους"
#: templates/installation.php:77
msgid "Host"
msgstr "Εξυπηρετητής"
#: templates/installation.php:78
msgid "Table prefix"
msgstr "Πρόθεμα πίνακα"
#: templates/installation.php:80
msgid "Data folder"
msgstr "Φάκελος δεδομένων"
#: templates/installation.php:83
msgid "Finish setup"
msgstr "Ολοκλήρωση εγκατάστασης"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "Δεν βρέθηκε σύννεφο"
#: templates/layout.guest.php:38
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
"σας δίνει την ελευθερία να ελέγχετε τα δικά σας δεδομένα στο διαδίκτυο"
#: templates/part.pagenavi.php:6
msgid "prev"
msgstr "προηγούμενο"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "επόμενο"
#: templates/logout.php:1
msgid "You are logged out."
msgstr "Έχετε αποσυνδεθεί."
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Ρυθμίσεις"

72
l10n/el/files.po Normal file
View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Petros Kyladitis <petros.kyladitis@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 17:44+0000\n"
"Last-Translator: multipetros <petros.kyladitis@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.net/projects/p/owncloud/team/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:7
msgid "Files"
msgstr "Αρχεία"
#: templates/admin.php:5
msgid "Maximum upload size"
msgstr "Μέγιστο μέγεθος μεταφόρτωσης"
#: templates/part.list.php:1
msgid "Nothing in here. Upload something!"
msgstr "Δεν υπάρχει τίποτα εδώ. Ανέβασε κάτι!"
#: templates/index.php:9
msgid "Upload"
msgstr "Μεταφόρτωση"
#: templates/index.php:16
msgid "New Folder"
msgstr "Νέος φάκελος"
#: templates/index.php:29
msgid "Name"
msgstr "Όνομα"
#: templates/index.php:31
msgid "Download"
msgstr "Λήψη"
#: templates/index.php:35
msgid "Size"
msgstr "Μέγεθος"
#: templates/index.php:36
msgid "Modified"
msgstr "Τροποποιήθηκε"
#: templates/index.php:36
msgid "Delete"
msgstr "Διαγραφή"
#: templates/index.php:44
msgid "Upload too large"
msgstr "Πολύ μεγάλο το αρχείο προς μεταφόρτωση"
#: templates/index.php:46
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
"Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος "
"μεταφόρτωσης αρχείων σε αυτόν το διακομιστή."

48
l10n/el/media.po Normal file
View File

@ -0,0 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Petros Kyladitis <petros.kyladitis@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 17:45+0000\n"
"Last-Translator: multipetros <petros.kyladitis@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.net/projects/p/owncloud/team/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:31
msgid "Music"
msgstr "Μουσική"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Σαρωμένα τραγούγια"
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Επανασάρωση συλλογής"
#: templates/music.php:29
msgid "Pause"
msgstr "Παύση"
#: templates/music.php:35
msgid "Artist"
msgstr "Καλλιτέχνης"
#: templates/music.php:36
msgid "Album"
msgstr "Άλμπουμ"
#: templates/music.php:37
msgid "Title"
msgstr "Τίτλος"

125
l10n/el/settings.po Normal file
View File

@ -0,0 +1,125 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <petros.kyladitis@gmail.com>, 2011.
# Petros Kyladitis <petros.kyladitis@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Greek (http://www.transifex.net/projects/p/owncloud/team/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ajax/openid.php:13 ajax/setlanguage.php:13
msgid "Authentication error"
msgstr "Σφάλμα ταυτοποίησης"
#: ajax/openid.php:21
msgid "OpenID Changed"
msgstr "Το OpenID άλλαξε"
#: ajax/openid.php:23 ajax/setlanguage.php:23
msgid "Invalid request"
msgstr "Άκυρα αίτημα"
#: ajax/setlanguage.php:21
msgid "Language changed"
msgstr "Η γλώσσα άλλαξε"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:3
msgid "Go there manually."
msgstr ""
#: templates/help.php:11
msgid "Answer"
msgstr ""
#: templates/help.php:17
msgid "Ask a question"
msgstr "Κάντε μια ερώτηση"
#: templates/apps.php:12
msgid "Select an App"
msgstr "Επιλέξτε μια εφαρμογή"
#: templates/apps.php:14
msgid "-licensed"
msgstr "-με άδεια"
#: templates/apps.php:14
msgid "by"
msgstr "με"
#: templates/personal.php:2
msgid "You use"
msgstr "Χρησιμοποιείτε"
#: templates/personal.php:2
msgid "of the available"
msgstr "από τα διαθέσιμα"
#: templates/personal.php:7
msgid "Your password got changed"
msgstr "Ο κωδικός πρόσβασής σας άλαλαξε"
#: templates/personal.php:9
msgid "Current password"
msgstr "Τρέχοντα κωδικό πρόσβασης"
#: templates/personal.php:10
msgid "New password"
msgstr "Νέος κωδικός"
#: templates/personal.php:11
msgid "show"
msgstr "Εμφάνιση"
#: templates/personal.php:12
msgid "Change password"
msgstr "Αλλαγή κωδικού πρόσβασης"
#: templates/personal.php:18
msgid "Language"
msgstr "Γλώσσα"
#: templates/personal.php:24
msgid "Help translating"
msgstr "Βοηθήστε στη μετάφραση"
#: templates/personal.php:30
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:11
msgid "Name"
msgstr "Όνομα"
#: templates/users.php:12
msgid "Password"
msgstr "Κωδικός"
#: templates/users.php:13 templates/users.php:28
msgid "Groups"
msgstr "Ομάδες"
#: templates/users.php:18
msgid "Create"
msgstr "Δημιουργία"
#: templates/users.php:40
msgid "Delete"
msgstr "Διαγραφή"

View File

@ -2,13 +2,14 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <sergioballesterossolanas@gmail.com>, 2011.
# <rom1dep@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 02:33+0000\n"
"POT-Creation-Date: 2011-08-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/owncloud/team/es/)\n"
"MIME-Version: 1.0\n"
@ -17,17 +18,33 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
#: strings.php:6
msgid "Apps"
msgstr ""
#: strings.php:7
msgid "Help"
msgstr ""
#: strings.php:8
msgid "Personal"
msgstr ""
#: templates/login.php:4
msgid "Login failed!"
msgstr "¡No se pudo iniciar sesión!"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr ""
msgstr "recuérdame"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
msgstr ""
msgstr "Crear una <strong>cuenta de administrador</strong>"
#: templates/installation.php:21
msgid "Username"
@ -39,24 +56,24 @@ msgstr "Contraseña"
#: templates/installation.php:27
msgid "Configure the database"
msgstr ""
msgstr "Configurar la base de datos"
#: templates/installation.php:32 templates/installation.php:43
#: templates/installation.php:53
msgid "will be used"
msgstr ""
msgstr "serán utilizados"
#: templates/installation.php:64
msgid "Database user"
msgstr ""
msgstr "Usuario de la base de datos"
#: templates/installation.php:65
msgid "Database password"
msgstr ""
msgstr "Contraseña de la base de datos"
#: templates/installation.php:66
msgid "Database name"
msgstr ""
msgstr "Nombre de la base de datos"
#: templates/installation.php:74
msgid "Advanced"
@ -64,15 +81,15 @@ msgstr "Avanzado"
#: templates/installation.php:77
msgid "Host"
msgstr ""
msgstr "Host"
#: templates/installation.php:78
msgid "Table prefix"
msgstr ""
msgstr "Prefijo de la tabla"
#: templates/installation.php:80
msgid "Data folder"
msgstr ""
msgstr "Directorio de almacenamiento"
#: templates/installation.php:83
msgid "Finish setup"
@ -80,10 +97,10 @@ msgstr "Completar la instalación"
#: templates/404.php:12
msgid "Cloud not found"
msgstr ""
msgstr "No se encontró la nube"
#: templates/layout.guest.php:38
msgid "is a personal cloud which runs on your own server"
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
#: templates/part.pagenavi.php:6
@ -98,12 +115,8 @@ msgstr "siguiente"
msgid "You are logged out."
msgstr "Has cerrado sesión."
#: templates/layout.user.php:36
msgid "Log out"
msgstr ""
#: templates/layout.user.php:56
#: templates/layout.user.php:49
msgid "Settings"
msgstr ""
msgstr "Ajustes"

72
l10n/es/files.po Normal file
View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <sergioballesterossolanas@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-17 07:24+0000\n"
"Last-Translator: xsergiolpx <sergioballesterossolanas@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/owncloud/team/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:7
msgid "Files"
msgstr "Archivos"
#: templates/admin.php:5
msgid "Maximum upload size"
msgstr "Tamaño máximo de subida"
#: templates/part.list.php:1
msgid "Nothing in here. Upload something!"
msgstr "Aquí no hay nada. ¡Sube algo!"
#: templates/index.php:9
msgid "Upload"
msgstr "Subir"
#: templates/index.php:16
msgid "New Folder"
msgstr "Crear Carpeta"
#: templates/index.php:29
msgid "Name"
msgstr "Nombre"
#: templates/index.php:31
msgid "Download"
msgstr "Descargar"
#: templates/index.php:35
msgid "Size"
msgstr "Tamaño"
#: templates/index.php:36
msgid "Modified"
msgstr "Modificado"
#: templates/index.php:36
msgid "Delete"
msgstr "Eliminado"
#: templates/index.php:44
msgid "Upload too large"
msgstr "El archivo es demasiado grande"
#: templates/index.php:46
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
"Los archivos que estás intentando subir sobrepasan el tamaño máximo "
"permitido por este servidor."

48
l10n/es/media.po Normal file
View File

@ -0,0 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <sergioballesterossolanas@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 21:47+0000\n"
"Last-Translator: xsergiolpx <sergioballesterossolanas@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/owncloud/team/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: appinfo/app.php:31
msgid "Music"
msgstr "Música"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Canciones encontradas"
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Buscar música nueva"
#: templates/music.php:29
msgid "Pause"
msgstr "Pausa"
#: templates/music.php:35
msgid "Artist"
msgstr "Artista"
#: templates/music.php:36
msgid "Album"
msgstr "Álbum"
#: templates/music.php:37
msgid "Title"
msgstr "Título"

View File

@ -2,13 +2,14 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# <sergioballesterossolanas@gmail.com>, 2011.
# <rom1dep@gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 04:33+0200\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"POT-Creation-Date: 2011-08-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/owncloud/team/es/)\n"
"MIME-Version: 1.0\n"
@ -23,7 +24,7 @@ msgstr "Error de autentificación"
#: ajax/openid.php:21
msgid "OpenID Changed"
msgstr ""
msgstr "OpenID Cambiado"
#: ajax/openid.php:23 ajax/setlanguage.php:23
msgid "Invalid request"
@ -33,80 +34,92 @@ msgstr "Solicitud no válida"
msgid "Language changed"
msgstr "Idioma cambiado"
#: templates/help.php:21
msgid "Ask a question"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:3
msgid "Go there manually."
msgstr ""
#: templates/help.php:11
msgid "Answer"
msgstr ""
#: templates/help.php:17
msgid "Ask a question"
msgstr "Hacer una pregunta"
#: templates/apps.php:12
msgid "Select an App"
msgstr ""
msgstr "Seleccionar una aplicación"
#: templates/apps.php:14
msgid "-licensed"
msgstr ""
msgstr "-autorizado"
#: templates/apps.php:14
msgid "by"
msgstr "por"
#: templates/personal.php:2
msgid "You use"
msgstr ""
#: templates/personal.php:3
msgid "Account information"
msgstr "Información de la cuenta"
#: templates/personal.php:2
msgid "of the available"
msgstr ""
#: templates/personal.php:5
msgid "You're currently using"
msgstr "Estás utilizando"
#: templates/personal.php:5
msgid "of your"
msgstr "de tus"
#: templates/personal.php:5
msgid "space"
msgstr "de espacio total"
#: templates/personal.php:11 templates/personal.php:17
msgid "Change Password"
msgstr "Cambiar contraseña"
#: templates/personal.php:12
#: templates/personal.php:7
msgid "Your password got changed"
msgstr "Tu contraseña ha sido cambiada"
#: templates/personal.php:14
msgid "Old password"
#: templates/personal.php:9
msgid "Current password"
msgstr ""
#: templates/personal.php:15
#: templates/personal.php:10
msgid "New password"
msgstr "Nueva contraseña:"
#: templates/personal.php:16
#: templates/personal.php:11
msgid "show"
msgstr "mostrar"
#: templates/personal.php:12
msgid "Change password"
msgstr ""
#: templates/personal.php:23
#: templates/personal.php:18
msgid "Language"
msgstr "Idioma"
#: templates/personal.php:24
msgid "Help translating"
msgstr ""
#: templates/personal.php:30
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:11
msgid "Name"
msgstr ""
msgstr "Nombre"
#: templates/users.php:12
msgid "Password"
msgstr ""
msgstr "Contraseña"
#: templates/users.php:13 templates/users.php:28
msgid "Groups"
msgstr ""
msgstr "Grupos"
#: templates/users.php:18
msgid "Create"
msgstr ""
msgstr "Crear"
#: templates/users.php:36
msgid "Remove"
#: templates/users.php:40
msgid "Delete"
msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 05:10+0200\n"
"PO-Revision-Date: 2011-08-13 09:09+0000\n"
"Last-Translator: rom1dep <rom1dep@gmail.com>\n"
"POT-Creation-Date: 2011-08-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: French (http://www.transifex.net/projects/p/owncloud/team/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -17,6 +17,22 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
#: strings.php:6
msgid "Apps"
msgstr ""
#: strings.php:7
msgid "Help"
msgstr ""
#: strings.php:8
msgid "Personal"
msgstr ""
#: templates/login.php:4
msgid "Login failed!"
msgstr "Échec de la connexion !"
@ -83,8 +99,8 @@ msgid "Cloud not found"
msgstr "Introuvable"
#: templates/layout.guest.php:38
msgid "is a personal cloud which runs on your own server"
msgstr "est un service de cloud personnel propulsé par votre propre serveur"
msgid "gives you the freedom to control your own data on the internet"
msgstr "vous rend libre de contrôler vos propres données sur internet"
#: templates/part.pagenavi.php:6
msgid "prev"
@ -98,11 +114,7 @@ msgstr "suivant"
msgid "You are logged out."
msgstr "Vous êtes désormais déconnecté."
#: templates/layout.user.php:36
msgid "Log out"
msgstr "Se déconnecter"
#: templates/layout.user.php:56
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Paramètres"

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# <rom1dep@gmail.com>, 2011.
# Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-13 05:10+0200\n"
"PO-Revision-Date: 2011-08-13 09:12+0000\n"
"Last-Translator: rom1dep <rom1dep@gmail.com>\n"
"POT-Creation-Date: 2011-08-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: French (http://www.transifex.net/projects/p/owncloud/team/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -23,7 +24,7 @@ msgstr "Erreur d'authentification"
#: ajax/openid.php:21
msgid "OpenID Changed"
msgstr "Identifiant OpenID changé avec succès"
msgstr "Identifiant OpenID changé"
#: ajax/openid.php:23 ajax/setlanguage.php:23
msgid "Invalid request"
@ -31,9 +32,21 @@ msgstr "Requète invalide"
#: ajax/setlanguage.php:21
msgid "Language changed"
msgstr "Langue changée avec succès"
msgstr "Langue changée"
#: templates/help.php:21
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:3
msgid "Go there manually."
msgstr ""
#: templates/help.php:11
msgid "Answer"
msgstr ""
#: templates/help.php:17
msgid "Ask a question"
msgstr "Poser une question"
@ -49,46 +62,46 @@ msgstr "sous licence"
msgid "by"
msgstr "par"
#: templates/personal.php:3
msgid "Account information"
msgstr "Informations sur le compte"
#: templates/personal.php:2
msgid "You use"
msgstr "Vous utilisez"
#: templates/personal.php:5
msgid "You're currently using"
msgstr "Vous utilisez actuellement"
#: templates/personal.php:2
msgid "of the available"
msgstr "sur un total de"
#: templates/personal.php:5
msgid "of your"
msgstr "de votre espace de stockage de"
#: templates/personal.php:5
msgid "space"
msgstr " "
#: templates/personal.php:11 templates/personal.php:17
msgid "Change Password"
msgstr "Changer votre mot de passe"
#: templates/personal.php:12
#: templates/personal.php:7
msgid "Your password got changed"
msgstr "Votre mot de passe a été changé"
#: templates/personal.php:14
msgid "Old password"
msgstr "Ancien mot de passe"
#: templates/personal.php:9
msgid "Current password"
msgstr "Mot de passe actuel"
#: templates/personal.php:15
#: templates/personal.php:10
msgid "New password"
msgstr "Nouveau mot de passe :"
msgstr "Nouveau mot de passe"
#: templates/personal.php:16
#: templates/personal.php:11
msgid "show"
msgstr "Afficher"
#: templates/personal.php:23
#: templates/personal.php:12
msgid "Change password"
msgstr "Changer de mot de passe"
#: templates/personal.php:18
msgid "Language"
msgstr "Langue"
#: templates/personal.php:24
msgid "Help translating"
msgstr "Aider à traduire"
#: templates/personal.php:30
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:11
msgid "Name"
msgstr "Nom"
@ -105,8 +118,8 @@ msgstr "Groupes"
msgid "Create"
msgstr "Créer"
#: templates/users.php:36
msgid "Remove"
#: templates/users.php:40
msgid "Delete"
msgstr "Supprimer"

121
l10n/id/core.po Normal file
View File

@ -0,0 +1,121 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Muhammad Radifar <m_radifar05@yahoo.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org/buglist.cgi?product=owncloud\n"
"POT-Creation-Date: 2011-08-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"Language-Team: Indonesian (http://www.transifex.net/projects/p/owncloud/team/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0\n"
#: strings.php:5
msgid "Users"
msgstr ""
#: strings.php:6
msgid "Apps"
msgstr ""
#: strings.php:7
msgid "Help"
msgstr ""
#: strings.php:8
msgid "Personal"
msgstr ""
#: templates/login.php:4
msgid "Login failed!"
msgstr "Gagal masuk!"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr ""
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
msgstr ""
#: templates/installation.php:21
msgid "Username"
msgstr "Username"
#: templates/installation.php:22
msgid "Password"
msgstr "Password"
#: templates/installation.php:27
msgid "Configure the database"
msgstr ""
#: templates/installation.php:32 templates/installation.php:43
#: templates/installation.php:53
msgid "will be used"
msgstr ""
#: templates/installation.php:64
msgid "Database user"
msgstr ""
#: templates/installation.php:65
msgid "Database password"
msgstr ""
#: templates/installation.php:66
msgid "Database name"
msgstr ""
#: templates/installation.php:74
msgid "Advanced"
msgstr "Tingkat Lanjut"
#: templates/installation.php:77
msgid "Host"
msgstr ""
#: templates/installation.php:78
msgid "Table prefix"
msgstr ""
#: templates/installation.php:80
msgid "Data folder"
msgstr ""
#: templates/installation.php:83
msgid "Finish setup"
msgstr "Selesaikan instalasi"
#: templates/404.php:12
msgid "Cloud not found"
msgstr ""
#: templates/layout.guest.php:38
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
#: templates/part.pagenavi.php:6
msgid "prev"
msgstr "sebelum"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "selanjutnya"
#: templates/logout.php:1
msgid "You are logged out."
msgstr "Anda telah keluar."
#: templates/layout.user.php:49
msgid "Settings"
msgstr ""

Some files were not shown because too many files have changed in this diff Show More