Merge branch 'master' into calendar

This commit is contained in:
Jan-Christoph Borchardt 2011-08-28 23:38:24 +02:00
commit 60a5581071
164 changed files with 3319 additions and 1905 deletions

View File

@ -1,5 +1,7 @@
ErrorDocument 404 //owncloud/core/templates/404.php
php_value upload_max_filesize 512M
php_value post_max_size 512M
SetEnv htaccessWorking true
<IfModule mod_php5.c>
php_value upload_max_filesize 512M
php_value post_max_size 512M
SetEnv htaccessWorking true
</IfModule>
Options -Indexes

48
apps/bookmarks/addBm.php Normal file
View File

@ -0,0 +1,48 @@
<?php
/**
* ownCloud - bookmarks plugin
*
* @author Arthur Schiwon
* @copyright 2011 Arthur Schiwon blizzz@arthur-schiwon.de
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once('../../lib/base.php');
// Check if we are a user
if( !OC_User::isLoggedIn()){
header( 'Location: '.OC_Helper::linkTo( '', 'index.php' ));
exit();
}
require_once('bookmarksHelper.php');
OC_App::setActiveNavigationEntry( 'bookmarks_index' );
OC_Util::addScript('bookmarks','addBm');
OC_Util::addStyle('bookmarks', 'bookmarks');
$tmpl = new OC_Template( 'bookmarks', 'addBm', 'user' );
$url = isset($_GET['url']) ? urldecode($_GET['url']) : '';
$metadata = getURLMetadata($url);
$tmpl->assign('URL', htmlentities($metadata['url']));
$tmpl->assign('TITLE', htmlentities($metadata['title']));
$tmpl->assign('DESCRIPTION', htmlentities($metadata['description']));
$tmpl->printPage();

View File

@ -51,15 +51,14 @@ $query = OC_DB::prepare("
$params=array(
urldecode($_GET["url"]),
urldecode($_GET["title"]),
urldecode($_GET["description"]),
htmlspecialchars_decode($_GET["url"]),
htmlspecialchars_decode($_GET["title"]),
htmlspecialchars_decode($_GET["description"]),
OC_User::getUser()
);
$query->execute($params);
$b_id = OC_DB::insertid();
if($b_id !== false) {
$query = OC_DB::prepare("
INSERT INTO *PREFIX*bookmarks_tags

View File

@ -35,18 +35,33 @@ if( !OC_User::isLoggedIn()){
exit();
}
$params=array(
htmlspecialchars_decode($_GET["url"]),
OC_User::getUser()
);
$query = OC_DB::prepare("
DELETE FROM *PREFIX*bookmarks
SELECT id FROM *PREFIX*bookmarks
WHERE url LIKE ?
AND user_id = ?
");
$params=array(
urldecode($_GET["url"]),
OC_User::getUser()
);
$result = $query->execute($params);
$id = $query->execute($params)->fetchOne();
$query = OC_DB::prepare("
DELETE FROM *PREFIX*bookmarks
WHERE id = $id
");
$result = $query->execute();
$query = OC_DB::prepare("
DELETE FROM *PREFIX*bookmarks_tags
WHERE bookmark_id = $id
");
$result = $query->execute();
// var_dump($params);
echo json_encode( array( "status" => "success", "data" => array()));

View File

@ -0,0 +1,44 @@
<?php
/**
* ownCloud - bookmarks plugin
*
* @author Arthur Schiwon
* @copyright 2011 Arthur Schiwon blizzz@arthur-schiwon.de
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
//no apps or filesystem
$RUNTIME_NOSETUPFS=true;
require_once('../../../lib/base.php');
// We send json data
header( 'Content-Type: application/jsonrequest' );
// Check if we are a user
if( !OC_User::isLoggedIn()){
echo json_encode( array( 'status' => 'error', 'data' => array( 'message' => 'Authentication error' )));
exit();
}
// $metadata = array();
require '../bookmarksHelper.php';
$metadata = getURLMetadata(htmlspecialchars_decode($_GET["url"]));
echo json_encode( array( 'status' => 'success', 'data' => $metadata));

View File

@ -40,7 +40,7 @@ $query = OC_DB::prepare("
AND url LIKE ?
");
$params=array(OC_User::getUser(), urldecode($_GET["url"]));
$params=array(OC_User::getUser(), htmlspecialchars_decode($_GET["url"]));
$bookmarks = $query->execute($params);
header( "HTTP/1.1 204 No Content" );

View File

@ -27,47 +27,61 @@ $RUNTIME_NOSETUPFS=true;
require_once('../../../lib/base.php');
// We send json data
header( "Content-Type: application/jsonrequest" );
header( 'Content-Type: application/jsonrequest' );
// Check if we are a user
if( !OC_User::isLoggedIn()){
echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" )));
echo json_encode( array( 'status' => 'error', 'data' => array( 'message' => 'Authentication error' )));
exit();
}
$params=array(OC_User::getUser());
$CONFIG_DBTYPE = OC_Config::getValue( 'dbtype', 'sqlite' );
//Filter for tag?
$filterTag = isset($_GET["tag"]) ? urldecode($_GET["tag"]) : false;
$filterTag = isset($_GET['tag']) ? '%' . htmlspecialchars_decode($_GET['tag']) . '%' : false;
if($filterTag){
$sqlFilterTag = "HAVING INSTR (tags, ?) > 0";
$sqlFilterTag = 'HAVING tags LIKE ?';
$params[] = $filterTag;
} else {
$sqlFilterTag = '';
}
$offset = isset($_GET["page"]) ? intval($_GET["page"]) * 10 : 0;
$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 = ", ' '";
$sort = isset($_GET['sort']) ? ($_GET['sort']) : 'bookmarks_sorting_recent';
if($sort == 'bookmarks_sorting_clicks') {
$sqlSort = 'clickcount DESC';
} else {
$_gc_separator = "SEPARATOR ' '";
$sqlSort = 'id DESC';
}
//FIXME: bookmarks without tags are not being retrieved
$query = OC_DB::prepare("
SELECT url, title, description, GROUP_CONCAT( tag $_gc_separator ) AS tags
if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
$_gc_separator = ', \' \'';
} else {
$_gc_separator = 'SEPARATOR \' \'';
}
$query = OC_DB::prepare('
SELECT url, title, description,
CASE WHEN *PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id
THEN GROUP_CONCAT( tag ' .$_gc_separator. ' )
ELSE \' \'
END
AS tags
FROM *PREFIX*bookmarks, *PREFIX*bookmarks_tags
WHERE *PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id
WHERE (*PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id
OR *PREFIX*bookmarks.id NOT IN (
SELECT *PREFIX*bookmarks_tags.bookmark_id FROM *PREFIX*bookmarks_tags
)
)
AND *PREFIX*bookmarks.user_id = ?
GROUP BY url
$sqlFilterTag
ORDER BY *PREFIX*bookmarks.id DESC
LIMIT ?, 10");
'.$sqlFilterTag.'
ORDER BY *PREFIX*bookmarks.'.$sqlSort.'
LIMIT ?, 10');
$bookmarks = $query->execute($params)->fetchAll();
echo json_encode( array( "status" => "success", "data" => $bookmarks));
echo json_encode( array( 'status' => 'success', 'data' => $bookmarks));

View File

@ -33,7 +33,7 @@
<name>description</name>
<type>text</type>
<default></default>
<notnull>true</notnull>
<notnull>false</notnull>
<length>255</length>
</field>
<field>

View File

@ -0,0 +1,23 @@
<?php
function getURLMetadata($url) {
//allow only http(s) and (s)ftp
$protocols = '/^[hs]{0,1}[tf]{0,1}tp[s]{0,1}\:\/\//i';
//if not (allowed) protocol is given, assume http
if(preg_match($protocols, $url) == 0) {
$url = 'http://' . $url;
}
$metadata['url'] = $url;
$page = file_get_contents($url);
@preg_match( "/<title>(.*)<\/title>/si", $page, $match );
$metadata['title'] = htmlspecialchars_decode(@$match[1]);
$meta = get_meta_tags($url);
if(array_key_exists('description', $meta)) {
$metadata['description'] = $meta['description'];
}
return $metadata;
}

View File

@ -23,10 +23,29 @@
text-decoration: underline;
}
.bookmarks_sorting {
float: left;
margin-left: 2em;
}
.bookmarks_sorting li {
padding: 1ex 1em;
border: 1px solid gray;
-moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em;
}
.bookmarks_sorting_active {
font-weight: bold;
}
.bookmarks_add {
display: none;
}
.bookmarks_addBml {
text-decoration: underline;
}
.bookmarks_label {
width: 7em;
display: inline-block;
@ -60,4 +79,8 @@
.bookmark_tags {
color: #ff3333;
}
}
.clear {
clear:both;
}

View File

@ -0,0 +1,17 @@
$(document).ready(function() {
$('#bookmark_add_submit').click(addBookmark);
});
function addBookmark(event) {
var url = $('#bookmark_add_url').val();
var title = $('#bookmark_add_title').val();
var description = $('#bookmark_add_description').val();
var tags = $('#bookmark_add_tags').val();
$.ajax({
url: 'ajax/addBookmark.php',
data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&description=' + encodeURI(description) + '&tags=' + encodeURI(tags),
success: function(data){
location.href='index.php';
}
});
}

View File

@ -1,6 +1,8 @@
var bookmarks_page = 0;
var bookmarks_loading = false;
var bookmarks_sorting = 'bookmarks_sorting_recent';
$(document).ready(function() {
$('.bookmarks_addBtn').click(function(event){
$('.bookmarks_add').slideToggle();
@ -9,6 +11,11 @@ $(document).ready(function() {
$('#bookmark_add_submit').click(addBookmark);
$(window).scroll(updateOnBottom);
$('#bookmark_add_url').focusout(getMetadata);
$('.' + bookmarks_sorting).addClass('bookmarks_sorting_active');
$('.bookmarks_sorting li').click(function(event){changeSorting(this)});
$('.bookmarks_list').empty();
getBookmarks();
});
@ -18,9 +25,10 @@ function getBookmarks() {
//have patience :)
return;
}
$.ajax({
url: 'ajax/updateList.php',
data: 'tag=' + encodeURI($('#bookmarkFilterTag').val()) + '&page=' + bookmarks_page,
data: 'tag=' + encodeURI($('#bookmarkFilterTag').val()) + '&page=' + bookmarks_page + '&sort=' + bookmarks_sorting,
success: function(bookmarks){
bookmarks_page += 1;
$('.bookmark_link').unbind('click', recordClick);
@ -36,6 +44,30 @@ function getBookmarks() {
});
}
function getMetadata() {
var url = encodeEntities($('#bookmark_add_url').val())
$.ajax({
url: 'ajax/getMeta.php',
data: 'url=' + encodeURIComponent(url),
success: function(pageinfo){
$('#bookmark_add_url').val(pageinfo.data.url);
$('#bookmark_add_description').val(pageinfo.data.description);
$('#bookmark_add_title').val(pageinfo.data.title);
}
});
}
function changeSorting(sortEl) {
$('.' + bookmarks_sorting).removeClass('bookmarks_sorting_active');
bookmarks_sorting = sortEl.className;
$('.' + bookmarks_sorting).addClass('bookmarks_sorting_active');
$('.bookmarks_list').empty();
bookmarks_page = 0;
bookmarks_loading = false;
getBookmarks();
}
function addBookmark(event) {
var url = encodeEntities($('#bookmark_add_url').val())
var title = encodeEntities($('#bookmark_add_title').val())
@ -80,6 +112,9 @@ function updateBookmarksList(bookmark) {
for ( var i=0, len=tags.length; i<len; ++i ){
taglist = taglist + '<a class="bookmark_tags" href="?tag=' + encodeURI(tags[i]) + '">' + tags[i] + '</a> ';
}
if(!hasProtocol(bookmark.url)) {
bookmark.url = 'http://' + bookmark.url;
}
$('.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>' +
@ -113,3 +148,8 @@ function encodeEntities(s){
return "";
}
}
function hasProtocol(url) {
var regexp = /(ftp|http|https|sftp)/;
return regexp.test(url);
}

View File

@ -0,0 +1,8 @@
<div class="bookmarks_addBm">
<p><label class="bookmarks_label">Address</label><input type="text" id="bookmark_add_url" class="bookmarks_input" value="<? echo $_['URL']; ?>"/></p>
<p><label class="bookmarks_label">Title</label><input type="text" id="bookmark_add_title" class="bookmarks_input" value="<? echo $_['TITLE']; ?>" /></p>
<p><label class="bookmarks_label">Description</label><input type="text" id="bookmark_add_description" class="bookmarks_input" value="<? echo $_['DESCRIPTION']; ?>" /></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>

View File

@ -1,7 +1,8 @@
<input type="hidden" id="bookmarkFilterTag" value="<?php echo htmlentities($_GET['tag']); ?>" />
<input type="hidden" id="bookmarkFilterTag" value="<?php if(isset($_GET['tag'])) echo htmlentities($_GET['tag']); ?>" />
<h2 class="bookmarks_headline"><?php echo isset($_GET["tag"]) ? 'Bookmarks with tag: ' . urldecode($_GET["tag"]) : 'All bookmarks'; ?></h2>
<div class="bookmarks_menu">
<input type="button" class="bookmarks_addBtn" value="Add Bookmark" />
<input type="button" class="bookmarks_addBtn" value="Add Bookmark"/>&nbsp;
<a class="bookmarks_addBml" href="javascript:var url = encodeURIComponent(location.href);window.open('<?php echo (isset($_SERVER['HTTPS']) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . OC_Helper::linkTo('bookmarks', 'addBm.php'); ?>?url='+url, 'owncloud-bookmarks');" title="Drag this to your browser bookmarks and click it, when you want to bookmark a webpage.">Add page to ownCloud</a>
</div>
<div class="bookmarks_add">
<p><label class="bookmarks_label">Address</label><input type="text" id="bookmark_add_url" class="bookmarks_input" /></p>
@ -11,6 +12,13 @@
<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_sorting pager">
<ul>
<li class="bookmarks_sorting_recent">Recent Bookmarks</li>
<li class="bookmarks_sorting_clicks">Most clicks</li>
</ul>
</div>
<div class="clear"></div>
<div class="bookmarks_list">
<noscript>
JavaScript is needed to display your Bookmarks

View File

@ -13,5 +13,5 @@ OC_Util::addStyle('contacts','styles');
<?php echo $this->inc("part.details"); ?>
</div>
<?php if(count($_['addressbooks']) == 1 ): ?>
<?php echo $l->t('The path to this addressbook is %s', array(OC::$WEBROOT.'/apps/contacts/carddav.php/addressbooks/'.OC_User::getUser().'/'.$_['addressbooks'][0]['uri'])); ?>
<?php echo $l->t('The path to this addressbook is %s', array(((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].OC::$WEBROOT.'/apps/contacts/carddav.php/addressbooks/'.OC_User::getUser().'/'.$_['addressbooks'][0]['uri'])); ?>
<?php endif; ?>

View File

@ -30,6 +30,6 @@
<?php endif; ?>
<div id="contacts_cardoptions">
<a id="contacts_deletecard"><img class="svg action" src="<?php echo image_path('', 'actions/delete.svg'); ?>" /></a>
<a id="contacts_addproperty"><img class="svg action" src="<?php echo image_path('', 'actions/download.svg'); ?>" /></a>
<a id="contacts_deletecard"><img class="svg action" alt="<?php echo $l->t('Delete');?>" src="<?php echo image_path('', 'actions/delete.svg'); ?>" /></a>
<a id="contacts_addproperty"><img class="svg action" alt="<?php echo $l->t('Download');?>" src="<?php echo image_path('', 'actions/download.svg'); ?>" /></a>
</div>

View File

@ -1,33 +0,0 @@
<?php
/**
* ownCloud - Addressbook
*
* @author Jakob Sack
* @copyright 2011 Jakob Sack mail@jakobsack.de
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
// Init owncloud
require_once('../../lib/base.php');
$connector = new OC_Connector_Sabre_Principal;
$users = OC_User::getUsers();
foreach($users as $user){
$foo = $connector->getPrincipalByPath('principals/'.$user);
if(!isset($foo)){
OC_Connector_Sabre_Principal::addPrincipal(array('uid'=>$user));
}
}
echo "done";

View File

@ -6,17 +6,18 @@ 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);
if ($users = OC_Share::getMySharedItem($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) {
if ($values = OC_Share::getMySharedItem($source)) {
$values = array_values($values);
$parentUsers = array();
for ($i = 0; $i < count($values); $i++) {
if ($values[$i]['uid_shared_with'] == OC_Share::PUBLICLINK) {

View File

@ -4,20 +4,25 @@ $RUNTIME_NOAPPS = true;
require_once('../../../lib/base.php');
require_once('../lib_share.php');
$userDirectory = "/".OC_User::getUser()."/files";
$sources = explode(";", $_POST['sources']);
$uid_shared_with = $_POST['uid_shared_with'];
$permissions = $_POST['permissions'];
foreach ($sources as $source) {
// Make sure file exists and can be shared
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";
$source = $userDirectory.$source;
// If the file doesn't exist, it may be shared with the current user
} else if (!$source = OC_Share::getSource($userDirectory.$source)) {
echo "false";
}
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

@ -1,9 +1,11 @@
<?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::$CLASSPATH['OC_Share'] = "apps/files_sharing/lib_share.php";
OC_Hook::connect("OC_Filesystem", "post_delete", "OC_Share", "deleteItem");
OC_Hook::connect("OC_Filesystem", "post_rename", "OC_Share", "renameItem");
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' );

View File

@ -67,7 +67,7 @@ if ($source !== false) {
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-Disposition: filename=".basename($source));
header("Content-Type: " . $mimetype);
header("Content-Length: " . OC_Filesystem::filesize($source));
//download the file
@ -80,4 +80,4 @@ if ($source !== false) {
$tmpl->printPage();
die();
}
?>
?>

View File

@ -117,7 +117,7 @@ $(document).ready(function() {
cache: false,
data: data,
success: function() {
var option = "<option value='"+uid_shared_with+"'>"+uid_shared_with+"</option>";
var option = '<option value="'+uid_shared_with+'">'+uid_shared_with+'</option>';
$(user).remove();
$(option).appendTo('#share_with');
$('#share_with').trigger('liszt:updated');
@ -128,7 +128,7 @@ $(document).ready(function() {
$('#makelink').live('change', function() {
if (this.checked) {
var source = $('#dropdown').data('file');
var uid_shared_with = "public";
var uid_shared_with = 'public';
var permissions = 0;
var data = 'sources='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with)+'&permissions='+encodeURIComponent(permissions);
$.ajax({
@ -144,7 +144,7 @@ $(document).ready(function() {
});
} else {
var source = $('#dropdown').data('file');
var uid_shared_with = "public";
var uid_shared_with = 'public';
var data = 'source='+encodeURIComponent(source)+'&uid_shared_with='+encodeURIComponent(uid_shared_with);
$.ajax({
type: 'GET',
@ -165,19 +165,19 @@ $(document).ready(function() {
});
function createDropdown(filename, files) {
var html = "<div id='dropdown' class='drop' data-file='"+files+"'>";
html += "<div id='private'>";
html += "<select data-placeholder='User or Group' style='width:220px;' id='share_with' class='chzen-select'>";
html += "<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>";
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'));
@ -211,13 +211,13 @@ function createDropdown(filename, files) {
function addUser(uid_shared_with, permissions, parentFolder) {
if (parentFolder) {
var user = "<li>Parent folder "+parentFolder+" shared with "+uid_shared_with+"</li>";
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>";
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="" class="unshare" style="display:none;"><img class="svg" alt="Unshare" src="'+OC.imagePath('core','actions/delete')+'"/></a></li>';
}
$('#share_with option[value="'+uid_shared_with+'"]').remove();
$('#share_with').trigger('liszt:updated');
@ -227,6 +227,6 @@ function addUser(uid_shared_with, permissions, parentFolder) {
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').val(parent.location.protocol+'//'+location.host+OC.linkTo('files_sharing','get.php')+'?token='+token);
$('#link').show('blind');
}

View File

@ -20,9 +20,6 @@
*
*/
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.
*/
@ -69,7 +66,8 @@ class OC_Share {
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);
$sharedFolder = "/".$uid."/files/Shared";
$target = $sharedFolder."/".basename($source);
if (self::getSource($target)) {
if ($pos = strrpos($target, ".")) {
$name = substr($target, 0, $pos);
@ -90,6 +88,9 @@ class OC_Share {
$uid = $uid."@".$gid;
}
$query->execute(array($uid_owner, $uid, $source, $target, $permissions));
// Clear the folder size cache for the 'Shared' folder
$clearFolderSize = OC_DB::prepare("DELETE FROM *PREFIX*foldersize WHERE path = ?");
$clearFolderSize->execute(array($sharedFolder));
}
}
}
@ -175,8 +176,16 @@ class OC_Share {
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();
$result = $query->execute(array($source, OC_User::getUser()))->fetchAll();
if (count($result) > 0) {
return $result;
} else if ($originalSource = self::getSource($source)) {
return $query->execute(array($originalSource, OC_User::getUser()))->fetchAll();
} else {
return false;
}
}
/**
* Get all items the current user is sharing
* @return An array with all items the user is sharing
@ -185,7 +194,7 @@ class OC_Share {
$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
*
@ -204,7 +213,7 @@ class OC_Share {
$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
@ -301,18 +310,6 @@ class OC_Share {
}
}
/**
* 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
*
@ -327,7 +324,7 @@ class OC_Share {
$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
*
@ -342,7 +339,7 @@ class OC_Share {
$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
*
@ -356,13 +353,14 @@ class OC_Share {
$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
* You must use the pullOutOfFolder() function before you call unshareFromMySelf() and set the delete parameter to false to unshare from self a file inside a shared folder
*
* @param $target The target location of the item
* @param $delete (Optional) If true delete the entry from the database, if false the permission is set to UNSHARED
*/
public static function unshareFromMySelf($target, $delete = true) {
$target = self::cleanPath($target);
@ -377,25 +375,23 @@ class OC_Share {
/**
* Remove the item from the database, the owner deleted the file
* @param $arguments Array of arguments passed from OC_HOOK
* @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);
$source = "/".OC_User::getUser()."/files".self::cleanPath($arguments['path']);
$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
* @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);
$oldSource = "/".OC_User::getUser()."/files".self::cleanPath($arguments['oldpath']);
$newSource = "/".OC_User::getUser()."/files".self::cleanPath($arguments['newpath']);
$query = OC_DB::prepare("UPDATE *PREFIX*sharing SET source = REPLACE(source, ?, ?) WHERE uid_owner = ?");
$query->execute(array($oldSource, $newSource, OC_User::getUser()));
}
}

View File

@ -79,37 +79,37 @@ class OC_Filestorage_Shared extends OC_Filestorage {
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']);
} else {
global $FAKEDIRS;
$files = array();
foreach ($sharedItems as $item) {
// If item is in the root of the shared storage provider and the item exists add it to the fakedirs
if (dirname($item['target'])."/" == $path && $this->file_exists(basename($item['target']))) {
$files[] = basename($item['target']);
}
}
$FAKEDIRS['shared'] = $files;
return opendir('fakedir://shared');
}
$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();
// Remove any duplicate or trailing '/'
$path = preg_replace('{(/)\1+}', "/", $path);
$targetFolder = rtrim($this->datadir.$path, "/");
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 is in the current directory and the item exists add it to the arrays
if (dirname($item['target']) == $targetFolder && $this->file_exists($path."/".basename($item['target']))) {
// If the item was unshared from self, add it it to the arrays
if ($item['permissions'] == OC_Share::UNSHARED) {
$sources[] = basename($item['source']);
@ -124,6 +124,7 @@ class OC_Filestorage_Shared extends OC_Filestorage {
if (empty($sources)) {
return $dh;
} else {
global $FAKEDIRS;
$files = array();
while (($filename = readdir($dh)) !== false) {
if ($filename != "." && $filename != "..") {
@ -210,7 +211,6 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
public function filesize($path) {
if ($path == "" || $path == "/" || $this->is_dir($path)) {
return $this->getFolderSize($path);
} else {
@ -221,10 +221,14 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
}
}
public function getFolderSize($path) {
$dbpath = OC_User::getUser()."/files/Share/".$path."/";
$query = OC_DB::prepare("SELECT size FROM *PREFIX*foldersize WHERE path=?");
// Shared folder sizes are cached separately from the source folder sizes because folders can have different names
$path = rtrim($path, "/");
$path = ltrim($path, "/");
$path = preg_replace('{(/)\1+}', "/", $path);
$dbpath = rtrim($this->datadir.$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'];
@ -233,19 +237,15 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
}
public function calculateFolderSize($path) {
private 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;
$subFile = $path."/".$filename;
if ($this->is_file($subFile)) {
$size += $this->filesize($subFile);
} else {
@ -254,7 +254,7 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
}
if ($size > 0) {
$dbpath = OC_User::getUser()."/files/Share/".$path;
$dbpath = rtrim($this->datadir.$path, "/");
$query = OC_DB::prepare("INSERT INTO *PREFIX*foldersize VALUES(?,?)");
$result = $query->execute(array($dbpath, $size));
}
@ -262,16 +262,15 @@ class OC_Filestorage_Shared extends OC_Filestorage {
return $size;
}
public function clearFolderSizeCache($path){
private function clearFolderSizeCache($path) {
$path = rtrim($path, "/");
$path = preg_replace('{(/)\1+}', "/", $path);
if ($this->is_file($path)) {
$path = dirname($path);
}
$path = str_replace("//", "/", $path);
if ($this->is_dir($path) && substr($path, -1) != "/") {
$path .= "/";
}
$dbpath = rtrim($this->datadir.$path, "/");
$query = OC_DB::prepare("DELETE FROM *PREFIX*foldersize WHERE path = ?");
$result = $query->execute(array($path));
$result = $query->execute(array($dbpath));
if ($path != "/" && $path != "") {
$parts = explode("/", $path);
$part = array_pop($parts);
@ -391,7 +390,11 @@ class OC_Filestorage_Shared extends OC_Filestorage {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->file_put_contents($this->getInternalPath($source), $data);
$result = $storage->file_put_contents($this->getInternalPath($source), $data);
if ($result) {
$this->clearFolderSizeCache($path);
}
return $result;
}
}
}
@ -459,7 +462,11 @@ class OC_Filestorage_Shared extends OC_Filestorage {
} else {
if ($this->is_writeable($path2)) {
$tmpFile = $this->toTmpFile($path1);
return $this->fromTmpFile($tmpFile, $path2);
$result = $this->fromTmpFile($tmpFile, $path2);
if ($result) {
$this->clearFolderSizeCache($path2);
}
return $result;
} else {
return false;
}
@ -487,18 +494,30 @@ class OC_Filestorage_Shared extends OC_Filestorage {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->fromTmpFile($tmpFile, $this->getInternalPath($source));
$result = $storage->fromTmpFile($tmpFile, $this->getInternalPath($source));
if ($result) {
$this->clearFolderSizeCache($path);
}
return $result;
}
} 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 fromUploadedFile($tmpFile, $path) {
if ($this->is_writeable($path)) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
$result = $storage->fromUploadedFile($tmpFile, $this->getInternalPath($source));
if ($result) {
$this->clearFolderSizeCache($path);
}
return $result;
}
} else {
return false;
}
}
@ -510,50 +529,6 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
}
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) {
@ -570,9 +545,33 @@ class OC_Filestorage_Shared extends OC_Filestorage {
}
}
// TODO query all shared files?
public function search($query) {
public function search($query) {
return $this->searchInDir($query);
}
private function searchInDir($query, $path = "") {
$files = array();
if ($dh = $this->opendir($path)) {
while (($filename = readdir($dh)) !== false) {
if ($filename != "." && $filename != "..") {
if (strstr(strtolower($filename), strtolower($query))) {
$files[] = $path."/".$filename;
}
if ($this->is_dir($path."/".$filename)) {
$files = array_merge($files, $this->searchInDir($query, $path."/".$filename));
}
}
}
}
return $files;
}
public function getLocalFile($path) {
$source = $this->getSource($path);
if ($source) {
$storage = OC_Filesystem::getStorage($source);
return $storage->getLocalFile($this->getInternalPath($source));
}
}
}

View File

@ -122,10 +122,9 @@ $(document).ready(function() {
a.data('file',text);
a.attr('href','#');
a.click(function(){
var file=$(this).data('file');
var text=file.split('/').pop();
var dir=file.substr(0,file.length-file.length-1);
TextViewer.showText(dir,text);
var file=text.split('/').pop();
var dir=text.substr(0,text.length-file.length-1);
TextViewer.showText(dir,file);
});
}
});

View File

@ -56,7 +56,6 @@ OC_MEDIA_COLLECTION::$uid=OC_User::getUser();
if($arguments['action']){
switch($arguments['action']){
case 'delete':
unset($_SESSION['collection']);
$path=$arguments['path'];
OC_MEDIA_COLLECTION::deleteSongByPath($path);
$paths=explode(PATH_SEPARATOR,OC_Preferences::getValue(OC_User::getUser(),'media','paths',''));
@ -65,21 +64,13 @@ if($arguments['action']){
OC_Preferences::setValue(OC_User::getUser(),'media','paths',implode(PATH_SEPARATOR,$paths));
}
case 'get_collection':
if(!isset($_SESSION['collection'])){
$artists=OC_MEDIA_COLLECTION::getArtists();
foreach($artists as &$artist){
$artist['albums']=OC_MEDIA_COLLECTION::getAlbums($artist['artist_id']);
foreach($artist['albums'] as &$album){
$album['songs']=OC_MEDIA_COLLECTION::getSongs($artist['artist_id'],$album['album_id']);
}
}
$_SESSION['collection']=json_encode($artists);
}
echo $_SESSION['collection'];
$data=array();
$data['artists']=OC_MEDIA_COLLECTION::getArtists();
$data['albums']=OC_MEDIA_COLLECTION::getAlbums();
$data['songs']=OC_MEDIA_COLLECTION::getSongs();
echo json_encode($data);
break;
case 'scan':
unset($_SESSION['collection']);
OC_DB::beginTransaction();
set_time_limit(0); //recursive scan can take a while
$path=$arguments['path'];
@ -88,7 +79,6 @@ if($arguments['action']){
flush();
break;
case 'scanFile':
unset($_SESSION['collection']);
echo (OC_MEDIA_SCANNER::scanFile($arguments['path']))?'true':'false';
break;
case 'get_artists':

View File

@ -1,6 +1,21 @@
#folderlist li { margin-bottom:1em; }
#folderlist button.prettybutton { font-size:1em; width:10em; }
li button.right.prettybutton { font-size:1em; }
#controls ul.jp-controls { padding:0; }
#controls ul.jp-controls li { display:inline; }
#controls ul.jp-controls li a { position:absolute; padding:.8em 1em; }
a.jp-play, a.jp-pause { left:2.5em; }
a.jp-pause { display:none; }
a.jp-next { left:5em; }
div.jp-progress { position:absolute; overflow:hidden; top:.5em; left:8em; width:15em; height:1.2em; padding:0; }
div.jp-seek-bar { background:#eee; width:0; height:100%; cursor:pointer; }
div.jp-play-bar { background:#ccc; width:0; height:100%; }
div.jp-seeking-bg { background:url("../img/pbar-ani.gif"); }
div.jp-current-time,div.jp-duration { position:absolute; font-size:.64em; font-style:oblique; top:1em; left:13.5em; width:22em; }
div.jp-duration { text-align:right; }
a.jp-mute,a.jp-unmute { left:24em; }
div.jp-volume-bar { position:absolute; overflow:hidden; background:#eee; width:4em; height:0.4em; cursor:pointer; top:1.3em; left:27em; }
div.jp-volume-bar-value { background:#ccc; width:0; height:0.4em; }
#collection { padding-top:1em; position:relative; width:70em; float:left; }
#collection li.album,#collection li.song { margin-left:3em; }
#leftcontent img.remove { display:none; float:right; cursor:pointer; }
@ -12,5 +27,14 @@ li button.right.prettybutton { font-size:1em; }
#collection li { padding-right:10px; }
#searchresults input.play, #searchresults input.add { float:left; height:1em; width:1em; }
#collection tr.collapsed td.album, #collection tr.collapsed td.title { color:#ddd; }
a.expander { float:right; display:block; }
a.expander { }
tr.active { background-color:#eee; }
tr.artist, tr.artist td {
border-top: 1px solid lightgrey;
}
tr.album td.artist {
padding-left: 20px;
}
tr.song td.artist {
padding-left: 40px;
}

View File

@ -1,16 +1 @@
#controls ul.jp-controls { padding:0; }
#controls ul.jp-controls li { display:inline; }
#controls ul.jp-controls li a { position:absolute; padding:.8em 1em; }
a.jp-play, a.jp-pause { left:2.5em; }
a.jp-next { left:5em; }
div.jp-progress { position:absolute; overflow:hidden; top:.5em; left:8em; width:15em; height:1.2em; padding:0; }
div.jp-seek-bar { background:#eee; width:0; height:100%; cursor:pointer; }
div.jp-play-bar { background:#ccc; width:0; height:100%; }
div.jp-seeking-bg { background:url("../img/pbar-ani.gif"); }
div.jp-current-time,div.jp-duration { position:absolute; font-size:.64em; font-style:oblique; top:1em; left:13.5em; width:22em; }
div.jp-duration { text-align:right; }
a.jp-mute,a.jp-unmute { left:24em; }
div.jp-volume-bar { position:absolute; overflow:hidden; background:#eee; width:4em; height:0.4em; cursor:pointer; top:1.3em; left:27em; }
div.jp-volume-bar-value { background:#ccc; width:0; height:0.4em; }

View File

@ -1,5 +1,9 @@
Collection={
artists:[],
albums:[],
songs:[],
artistsById:{},
albumsById:{},
loaded:false,
loading:false,
loadedListeners:[],
@ -12,18 +16,37 @@ Collection={
$.ajax({
url: OC.linkTo('media','ajax/api.php')+'?action=get_collection',
dataType: 'json',
success: function(collection){
Collection.artists=collection;
//set the album and artist fieds for the songs
for(var i=0;i<collection.length;i++){
var artist=collection[i];
for(var j=0;j<artist.albums.length;j++){
var album=artist.albums[j]
for(var w=0;w<album.songs.length;w++){
album.songs[w].album_name=album.album_name;
album.songs[w].artist_name=artist.artist_name;
}
success: function(data){
//normalize the data
for(var i=0;i<data.artists.length;i++){
var artist=data.artists[i];
var artistData={name:artist.artist_name,songs:[],albums:[]};
Collection.artistsById[artist.artist_id]=artistData;
Collection.artists.push(artistData);
}
for(var i=0;i<data.albums.length;i++){
var album=data.albums[i];
var artistName=Collection.artistsById[album.album_artist].name;
var albumData={name:album.album_name,artist:artistName,songs:[]};
Collection.albumsById[album.album_id]=albumData;
Collection.albums.push(albumData);
Collection.artistsById[album.album_artist].albums.push(albumData);
}
for(var i=0;i<data.songs.length;i++){
var song=data.songs[i];
if(Collection.artistsById[song.song_artist] && Collection.albumsById[song.song_album]){
var songData={
name:song.song_name,
artist:Collection.artistsById[song.song_artist].name,
album:Collection.albumsById[song.song_album].name,
lastPlayed:song.song_lastplayed,
length:song.song_length,
path:song.song_path,
playCount:song.song_playcount,
};
Collection.songs.push(songData);
Collection.artistsById[song.song_artist].songs.push(songData);
Collection.albumsById[song.song_album].songs.push(songData);
}
}
@ -32,7 +55,7 @@ Collection={
for(var i=0;i<Collection.loadedListeners.length;i++){
Collection.loadedListeners[i]();
}
if(collection.length==0){
if(data.songs.length==0){
$('#scan input.start').val(t('media','Scan Collection'));
$('#scan input.start').click();
}
@ -53,93 +76,104 @@ Collection={
var template=Collection.parent.find('tr.template');
var lastArtist='';
var lastAlbum='';
$.each(Collection.artists,function(index,artist){
$.each(artist.albums,function(index,album){
$.each(album.songs,function(index,song){
var tr=template.clone().removeClass('template');
tr.find('td.title a').text(song.song_name);
tr.find('td.title a').click(function(event){
event.preventDefault();
PlayList.add(song,true);
PlayList.play(0);
Collection.parent.find('tr').removeClass('active');
tr.addClass('active');
});
if(artist.artist_name!=lastArtist){
tr.find('td.artist a').click(function(event){
event.preventDefault();
PlayList.add(artist,true);
PlayList.play(0);
Collection.parent.find('tr').removeClass('active');
$('tr[data-artist="'+artist.artist_name+'"]').addClass('active');
});
tr.find('td.artist a').text(artist.artist_name);
if(artist.albums.length>1){
var expander=$('<a class="expander">&gt;</a>');
expander.data('expanded',true);
expander.click(function(event){
var tr=$(this).parent().parent();
if(expander.data('expanded')){
Collection.hideArtist(tr.data('artist'));
}else{
Collection.showArtist(tr.data('artist'));
}
});
tr.children('td.artist').append(expander);
}
}
if(album.album_name!=lastAlbum){
tr.find('td.album a').click(function(event){
event.preventDefault();
PlayList.add(album,true);
PlayList.play(0);
Collection.parent.find('tr').removeClass('active');
$('tr[data-album="'+album.album_name+'"]').addClass('active');
});
tr.find('td.album a').text(album.album_name);
if(album.songs.length>1){
var expander=$('<a class="expander">&gt;</a>');
expander.data('expanded',true);
expander.click(function(event){
var tr=$(this).parent().parent();
if(expander.data('expanded')){
Collection.hideAlbum(tr.data('album'));
}else{
Collection.showAlbum(tr.data('album'));
}
});
tr.children('td.album').append(expander);
}
}
tr.attr('data-artist',artist.artist_name);
tr.attr('data-album',album.album_name);
lastArtist=artist.artist_name;
lastAlbum=album.album_name;
Collection.parent.find('tbody').append(tr);
$.each(Collection.artists,function(i,artist){
if(artist.name && artist.songs.length>0){
var tr=template.clone().removeClass('template');
tr.find('td.title a').text(artist.songs.length+' '+t('media','songs'));
tr.find('td.album a').text(artist.albums.length+' '+t('media','albums'));
tr.find('td.artist a').text(artist.name);
tr.data('artistData',artist);
tr.find('td.artist a').click(function(event){
event.preventDefault();
PlayList.add(artist);
PlayList.play(0);
Collection.parent.find('tr').removeClass('active');
$('tr[data-artist="'+artist.name+'"]').addClass('active');
});
Collection.hideAlbum(artist.artist_name,album.album_name);
});
Collection.hideArtist(artist.artist_name);
var expander=$('<a class="expander">&gt;</a>');
expander.data('expanded',false);
expander.click(function(event){
var tr=$(this).parent().parent();
if(expander.data('expanded')){
Collection.hideArtist(tr.data('artist'));
}else{
Collection.showArtist(tr.data('artist'));
}
});
tr.find('td.artist').addClass('buttons');
Collection.addButtons(tr,artist);
tr.children('td.artist').append(expander);
tr.attr('data-artist',artist.name);
Collection.parent.find('tbody').append(tr);
}
});
}
}
},
showArtist:function(artist){
Collection.parent.find('tr[data-artist="'+artist+'"]').show();
Collection.parent.find('tr[data-artist="'+artist+'"]').first().removeClass('collapsed');
Collection.parent.find('tr[data-artist="'+artist+'"] a.expander').data('expanded',true);
Collection.parent.find('tr[data-artist="'+artist+'"] a.expander').addClass('expanded');
Collection.parent.find('tr[data-artist="'+artist+'"] a.expander').text('v');
var tr=Collection.parent.find('tr[data-artist="'+artist+'"]');
var nextRow=tr.next();
var artist=tr.data('artistData');
var first=true;
$.each(artist.albums,function(foo,album){
$.each(album.songs,function(i,song){
if(first){
newRow=tr;
}else{
var newRow=tr.clone();
}
if(i==0){
newRow.find('td.album a').text(album.name);
newRow.find('td.album a').click(function(event){
event.preventDefault();
PlayList.add(album);
PlayList.play(0);
Collection.parent.find('tr').removeClass('active');
$('tr[data-album="'+album.name+'"]').addClass('active');
});
}else{
newRow.find('.expander').remove();
newRow.find('td.album a').text('');
}
newRow.find('td.title a').text(song.name);
Collection.addButtons(newRow,song);
newRow.find('td.title a').click(function(event){
event.preventDefault();
PlayList.add(song);
PlayList.play(0);
Collection.parent.find('tr').removeClass('active');
$('tr[data-title="'+song.name+'"]').addClass('active');
});
newRow.attr('data-album',album.name);
newRow.attr('data-title',song.name);
newRow.attr('data-artist',artist.name);
if(!first){
nextRow.before(newRow);
}
first=false;
});
});
tr.removeClass('collapsed');
tr.find('a.expander').data('expanded',true);
tr.find('a.expander').addClass('expanded');
tr.find('a.expander').text('v');
},
hideArtist:function(artist){
if(Collection.parent.find('tr[data-artist="'+artist+'"]').length>1){
Collection.parent.find('tr[data-artist="'+artist+'"]').hide();
Collection.parent.find('tr[data-artist="'+artist+'"]').first().show();
Collection.parent.find('tr[data-artist="'+artist+'"]').first().addClass('collapsed');
Collection.parent.find('tr[data-artist="'+artist+'"] a.expander').data('expanded',false);
Collection.parent.find('tr[data-artist="'+artist+'"] a.expander').removeClass('expanded');
Collection.parent.find('tr[data-artist="'+artist+'"] a.expander').text('>');
var tr=Collection.parent.find('tr[data-artist="'+artist+'"]');
if(tr.length>1){
var artist=tr.first().data('artistData');
tr.first().find('td.album a').text(artist.albums.length+' '+t('media','albums'));
tr.first().find('td.title a').text(artist.songs.length+' '+t('media','songs'));
tr.first().find('td.album a').unbind('click');
tr.first().find('td.title a').unbind('click');
tr.each(function(i,row){
if(i>0){
$(row).remove();
}
});
tr.find('a.expander').data('expanded',false);
tr.find('a.expander').removeClass('expanded');
tr.find('a.expander').text('>');
}
},
showAlbum:function(artist,album){
@ -161,16 +195,26 @@ Collection={
song.song_playcount++;
}
},
addButtons:function(parent){
parent.children('button.add').click(function(){
var type=$(this).parent().data('type');
PlayList.add($(this).parent().data(type));
addButtons:function(parent,data){
buttons = parent.find('.buttons');
if(buttons.find('.add').length<=0) {
buttons.append('<img class="add" src="'+OC.imagePath('core','actions/play-add')+'"/>');
}
if(buttons.find('.play').length<=0) {
buttons.append('<img class="play" src="'+OC.imagePath('core','actions/play')+'"/>');
}
buttons.find('.add').unbind('click');
buttons.find('.add').click(function(event){
event.preventDefault();
PlayList.add(data,true);
PlayList.render();
});
parent.children('button.play').click(function(){
var type=$(this).parent().data('type');
var oldSize=PlayList.items.length;
PlayList.add($(this).parent().data(type));
PlayList.play(oldSize);
buttons.find('.play').unbind('click');
buttons.find('.play').click(function(event){
event.preventDefault();
PlayList.add(data);
PlayList.play(0,0);
PlayList.render();
});
},
find:function(artistName,albumName,songName){

View File

@ -5,10 +5,8 @@ var PlayList={
player:null,
volume:0.8,
active:false,
tempPlaylist:[],
isTemp:true,
next:function(){
var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items;
var items=PlayList.items;
var next=PlayList.current+1;
if(next>=items.length){
next=0;
@ -17,7 +15,7 @@ var PlayList={
PlayList.render();
},
previous:function(){
var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items;
var items=PlayList.items;
var next=PlayList.current-1;
if(next<0){
next=items.length-1;
@ -26,7 +24,7 @@ var PlayList={
PlayList.render();
},
play:function(index,time,ready){
var items=(PlayList.isTemp)?PlayList.tempPlaylist:PlayList.items;
var items=PlayList.items;
if(index==null){
index=PlayList.current;
}
@ -34,8 +32,11 @@ var PlayList={
PlayList.current=index;
if(PlayList.player){
if(PlayList.player.data('jPlayer').options.supplied!=items[index].type){//the the audio type changes we need to reinitialize jplayer
PlayList.player.jPlayer("play",time);
localStorage.setItem(oc_current_user+'oc_playlist_time',time);
PlayList.player.jPlayer("destroy");
PlayList.init(items[index].type,function(){PlayList.play(null,time,ready)});
PlayList.save(); // so that the init don't lose the playlist
PlayList.init(items[index].type,null); // init calls load that calls play
}else{
PlayList.player.jPlayer("setMedia", items[PlayList.current]);
items[index].playcount++;
@ -60,7 +61,10 @@ var PlayList={
}
}
}else{
PlayList.init(items[index].type,PlayList.play);
localStorage.setItem(oc_current_user+'oc_playlist_time',time);
localStorage.setItem(oc_current_user+'oc_playlist_playing','true');
PlayList.save(); // so that the init don't lose the playlist
PlayList.init(items[index].type,null); // init calls load that calls play
}
}
},
@ -100,37 +104,30 @@ var PlayList={
swfPath:OC.linkTo('media','js'),
});
},
add:function(song,temp,dontReset){
add:function(song,dontReset){
if(!dontReset){
PlayList.tempPlaylist=[];//clear the temp playlist
PlayList.items=[];//clear the playlist
}
PlayList.isTemp=temp;
PlayList.isTemp=true;
if(!song){
return;
}
if(song.substr){//we are passed a string, asume it's a url to a song
PlayList.addFile(song,temp,true);
PlayList.addFile(song,true);
}
if(song.albums){//a artist object was passed, add all albums inside it
$.each(song.albums,function(index,album){
PlayList.add(album,temp,true);
PlayList.add(album,true);
});
}
if(song.songs){//a album object was passed, add all songs inside it
} else if(song.songs){//a album object was passed, add all songs inside it
$.each(song.songs,function(index,song){
PlayList.add(song,temp,true);
PlayList.add(song,true);
});
}
if(song.song_name){
var type=musicTypeFromFile(song.song_path);
var item={name:song.song_name,type:type,artist:song.artist_name,album:song.album_name,length:song.song_length,playcount:song.song_playcount};
item[type]=PlayList.urlBase+encodeURIComponent(song.song_path);
if(PlayList.isTemp){
PlayList.tempPlaylist.push(item);
}else{
PlayList.items.push(item);
}
if(song.path){
var type=musicTypeFromFile(song.path);
var item={name:song.name,type:type,artist:song.artist,album:song.album,length:song.length,playcount:song.playCount};
item[type]=PlayList.urlBase+encodeURIComponent(song.path);
PlayList.items.push(item);
}
},
addFile:function(path){
@ -160,10 +157,14 @@ var PlayList={
if(typeof localStorage !== 'undefined' && localStorage){
localStorage.setItem(oc_current_user+'oc_playlist_items',JSON.stringify(PlayList.items));
localStorage.setItem(oc_current_user+'oc_playlist_current',PlayList.current);
var time=Math.round(PlayList.player.data('jPlayer').status.currentTime);
localStorage.setItem(oc_current_user+'oc_playlist_time',time);
var volume=PlayList.player.data('jPlayer').options.volume*100;
localStorage.setItem(oc_current_user+'oc_playlist_volume',volume);
if(PlayList.player) {
if(PlayList.player.data('jPlayer')) {
var time=Math.round(PlayList.player.data('jPlayer').status.currentTime);
localStorage.setItem(oc_current_user+'oc_playlist_time',time);
var volume=PlayList.player.data('jPlayer').options.volume*100;
localStorage.setItem(oc_current_user+'oc_playlist_volume',volume);
}
}
if(PlayList.active){
localStorage.setItem(oc_current_user+'oc_playlist_active','false');
}

View File

@ -1,8 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "Música",
"Play" => "Reprodueix",
"Pause" => "Pausa",
"Previous" => "Anterior",
"Next" => "Següent",
"Mute" => "Mut",
"Unmute" => "Activa el so",
"Songs scanned" => "Cançons escanejades",
"Rescan Collection" => "Escaneja de nou la col·lecció",
"Pause" => "Pausa",
"Artist" => "Artista",
"Album" => "Àlbum",
"Title" => "Títol"

View File

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

View File

@ -1,8 +1,8 @@
<?php $TRANSLATIONS = array(
"Music" => "Musik",
"Pause" => "Pause",
"Songs scanned" => "Lieder gescannt",
"Rescan Collection" => "Sammlung scannen",
"Pause" => "Pause",
"Artist" => "Künstler",
"Album" => "Album",
"Title" => "Titel"

View File

@ -1,8 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "Μουσική",
"Play" => "Αναπαραγωγή",
"Pause" => "Παύση",
"Previous" => "Προηγούμενο",
"Next" => "Επόμενο",
"Mute" => "Σίγαση",
"Unmute" => "Επαναφορά ήχου",
"Songs scanned" => "Σαρωμένα τραγούγια",
"Rescan Collection" => "Επανασάρωση συλλογής",
"Pause" => "Παύση",
"Artist" => "Καλλιτέχνης",
"Album" => "Άλμπουμ",
"Title" => "Τίτλος"

View File

@ -1,8 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "Música",
"Play" => "Reproducir",
"Pause" => "Pausa",
"Previous" => "Anterior",
"Next" => "Siguiente",
"Mute" => "Silenciar",
"Unmute" => "Sonar",
"Songs scanned" => "Canciones encontradas",
"Rescan Collection" => "Buscar música nueva",
"Pause" => "Pausa",
"Artist" => "Artista",
"Album" => "Álbum",
"Title" => "Título"

View File

@ -1,8 +1,8 @@
<?php $TRANSLATIONS = array(
"Music" => "Musique",
"Pause" => "Pause",
"Songs scanned" => "Pistes scannées",
"Rescan Collection" => "Réanalyser la Collection",
"Pause" => "Pause",
"Artist" => "Artiste",
"Album" => "Album",
"Title" => "Titre"

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

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Musik",
"Pause" => "Jeda",
"Songs scanned" => "Lagu-lagu yang telah dipindai",
"Rescan Collection" => "Pindai ulang Koleksi",
"Artist" => "Artis",
"Album" => "Album",
"Title" => "Judul"
);

View File

@ -1,6 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "Musica",
"Play" => "Play",
"Pause" => "Pausa",
"Previous" => "Precedente",
"Next" => "Successiva",
"Mute" => "Disattiva audio",
"Unmute" => "Riattiva audio",
"Songs scanned" => "Canzoni analizzate",
"Rescan Collection" => "Rianalizza colezione",
"Artist" => "Artista",
"Album" => "Album",
"Title" => "Titolo"

View File

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

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

@ -0,0 +1,9 @@
<?php $TRANSLATIONS = array(
"Music" => "Muzyka",
"Pause" => "Zatrzymaj",
"Songs scanned" => "Przeskanowane utwory",
"Rescan Collection" => "Przeskanuj kolekcję",
"Artist" => "Artysta",
"Album" => "Album",
"Title" => "Tytuł"
);

View File

@ -1,8 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "Música",
"Play" => "Tocar",
"Pause" => "Pausa",
"Previous" => "Anterior",
"Next" => "Próximo",
"Mute" => "Mudo",
"Unmute" => "Não Mudo",
"Songs scanned" => "Músicas encontradas",
"Rescan Collection" => "Atualizar a Coleção",
"Pause" => "Pausa",
"Artist" => "Artista",
"Album" => "Álbum",
"Title" => "Título"

View File

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

View File

@ -24,10 +24,8 @@
//we need to have the sha256 hash of passwords for ampache
OC_Hook::connect('OC_User','post_login','OC_MEDIA','loginListener');
//connect to the filesystem for auto updating if configured
if(OC_Preferences::getValue(OC_User::getUser(),'media','autoupdate',false)){
OC_Hook::connect('OC_Filesystem','post_write','OC_MEDIA','updateFile');
}
//connect to the filesystem for auto updating
OC_Hook::connect('OC_Filesystem','post_write','OC_MEDIA','updateFile');
//listen for file deletions to clean the database if a song is deleted
OC_Hook::connect('OC_Filesystem','delete','OC_MEDIA','deleteFile');
@ -56,20 +54,14 @@ class OC_MEDIA{
*/
public static function updateFile($params){
$path=$params['path'];
$folderNames=explode(PATH_SEPARATOR,OC_Preferences::getValue(OC_User::getUser(),'media','paths',''));
foreach($folderNames as $folder){
if(substr($path,0,strlen($folder))==$folder){
require_once 'lib_scanner.php';
require_once 'lib_collection.php';
//fix a bug where there were multiply '/' in front of the path, it should only be one
while($path[0]=='/'){
$path=substr($path,1);
}
$path='/'.$path;
error_log($path);
OC_MEDIA_SCANNER::scanFile($path);
}
require_once 'lib_scanner.php';
require_once 'lib_collection.php';
//fix a bug where there were multiply '/' in front of the path, it should only be one
while($path[0]=='/'){
$path=substr($path,1);
}
$path='/'.$path;
OC_MEDIA_SCANNER::scanFile($path);
}
/**

View File

@ -1,11 +1,11 @@
<div id="controls">
<ul class="jp-controls">
<li><a href="#" class="jp-play action"><img class="svg" src="<?php echo image_path('core', 'actions/play-big.svg'); ?>" /></a></li>
<li><a href="#" class="jp-pause action"><img class="svg" src="<?php echo image_path('core', 'actions/pause-big.svg'); ?>" /></a></li>
<li><a href="#" class="jp-previous action"><img class="svg" src="<?php echo image_path('core', 'actions/play-previous.svg'); ?>" /></a></li>
<li><a href="#" class="jp-next action"><img class="svg" src="<?php echo image_path('core', 'actions/play-next.svg'); ?>" /></a></li>
<li><a href="#" class="jp-mute action"><img class="svg" src="<?php echo image_path('core', 'actions/sound.svg'); ?>" /></a></li>
<li><a href="#" class="jp-unmute action"><img class="svg" src="<?php echo image_path('core', 'actions/sound-off.svg'); ?>" /></a></li>
<li><a href="#" class="jp-play action"><img class="svg" alt="<?php echo $l->t('Play');?>" src="<?php echo image_path('core', 'actions/play-big.svg'); ?>" /></a></li>
<li><a href="#" class="jp-pause action"><img class="svg" alt="<?php echo $l->t('Pause');?>" src="<?php echo image_path('core', 'actions/pause-big.svg'); ?>" /></a></li>
<li><a href="#" class="jp-previous action"><img class="svg" alt="<?php echo $l->t('Previous');?>" src="<?php echo image_path('core', 'actions/play-previous.svg'); ?>" /></a></li>
<li><a href="#" class="jp-next action"><img class="svg" alt="<?php echo $l->t('Next');?>" src="<?php echo image_path('core', 'actions/play-next.svg'); ?>" /></a></li>
<li><a href="#" class="jp-mute action"><img class="svg" alt="<?php echo $l->t('Mute');?>" src="<?php echo image_path('core', 'actions/sound.svg'); ?>" /></a></li>
<li><a href="#" class="jp-unmute action"><img class="svg" alt="<?php echo $l->t('Unmute');?>" src="<?php echo image_path('core', 'actions/sound-off.svg'); ?>" /></a></li>
</ul>
<div class="jp-progress">
<div class="jp-seek-bar">
@ -25,23 +25,25 @@
<div id="rightcontent">
<div id="scan">
<p id="scancount" style="display:none"><span class="songCount">0</span> <?php echo $l->t('Songs scanned')?>
<input type="button" class="start" value="<?php echo $l->t('Rescan Collection')?>"></input>
<input type="button" class="stop" style="display:none" value="<?php echo $l->t('Pause')?>"></input></p>
<p id="scancount" style="display:none"><span class="songCount">0</span> <?php echo $l->t('Songs scanned')?></p>
<input type="button" class="start" value="<?php echo $l->t('Rescan Collection')?>" />
<input type="button" class="stop" style="display:none" value="<?php echo $l->t('Pause')?>" />
<div id="scanprogressbar"></div>
</div>
<table id="collection">
<thead>
<th><?php echo $l->t('Artist')?></th>
<th><?php echo $l->t('Album')?></th>
<th><?php echo $l->t('Title')?></th>
<tr>
<th><?php echo $l->t('Artist')?></th>
<th><?php echo $l->t('Album')?></th>
<th><?php echo $l->t('Title')?></th>
</tr>
</thead>
<tbody>
<tr class="template">
<td class="artist"><a/></td>
<td class="album"><a/></td>
<td class="title"><a/></td>
<td class="artist"><a></a></td>
<td class="album"><a></a></td>
<td class="title"><a></a></td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,17 @@
<?php
OC_App::register( array(
'order' => 11,
'id' => 'test_db',
'name' => 'Test' ));
OC_App::addNavigationEntry( array(
'id' => 'test_db_index',
'order' => 11,
'href' => OC_Helper::linkTo( 'test_db', 'index.php' ),
/*
'icon' => OC_Helper::imagePath( 'openstreetgame', 'icon.svg' ),
*/
'name' => 'Test DB' ));
?>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<info>
<id>test_db</id>
<name>Test DB</name>
<description>A test of the db</description>
<version>0.1</version>
<licence>AGPL</licence>
<author>Côme BERNIGAUD</author>
<require>2</require>
</info>

View File

@ -0,0 +1,7 @@
<?php
//do some dummy stuff to test the newly created tables
/*
$query=OC_DB::prepare("INSERT INTO *PREFIX*test_dummy(foo_name,foo_value) VALUES(?,?)");
$query->execute(array('bar',42));
*/
?>

26
apps/test_db/index.php Normal file
View File

@ -0,0 +1,26 @@
<?php
require_once('../../lib/base.php');
// Check if we are a user
if( !OC_User::isLoggedIn()){
header( "Location: ".OC_Helper::linkTo( '', 'index.php' ));
exit();
}
class Test {
private $test1;
private $test2;
public function init() {
$this->test1 = "test1";
$this->test2 = 2;
}
public function show() {
echo "test1:".$this->test1."<br/>test2:".$this->test2."<br/>";
}
};
$tmpl = new OC_Template( 'test_db', 'index', 'user' );
$tmpl->printPage();
?>

View File

@ -0,0 +1,17 @@
<?php
$t1 = new Test();
$t1->init();
$t1->show();
$testid = OC_DB4App::store('test_db','main',OC_User::getUser(),$t1);
echo "id in db is $testid<br/>\n";
$t2 = OC_DB4App::get_object('test_db','main',$testid);
$t2->show();
print_r(OC_DB4App::get_objects('test_db','main',OC_User::getUser()));
OC_DB4App::delete_object('test_db','main',$testid);
OC_DB4App::drop('test_db','main');
?>

View File

@ -23,6 +23,8 @@
require_once('apps/user_ldap/user_ldap.php');
OC_APP::registerAdmin('user_ldap','settings');
// define LDAP_DEFAULT_PORT
define("OC_USER_BACKEND_LDAP_DEFAULT_PORT", 389);

View File

@ -20,14 +20,6 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once('../../lib/base.php');
if( !OC_User::isLoggedIn() || !OC_Group::inGroup( OC_User::getUser(), 'admin' )){
header( "Location: ".OC_Helper::linkTo( '', "index.php" ));
exit();
}
$params = array('ldap_host', 'ldap_port', 'ldap_dn', 'ldap_password', 'ldap_base', 'ldap_filter');
foreach($params as $param){
@ -35,11 +27,9 @@ foreach($params as $param){
OC_Appconfig::setValue('user_ldap', $param, $_POST[$param]);
}
}
OC_App::setActiveNavigationEntry( "user_ldap_settings" );
// fill template
$tmpl = new OC_Template( 'user_ldap', 'settings', 'admin' );
$tmpl = new OC_Template( 'user_ldap', 'settings');
foreach($params as $param){
$value = OC_Appconfig::getValue('user_ldap', $param,'');
$tmpl->assign($param, $value);
@ -48,4 +38,4 @@ foreach($params as $param){
// ldap_port has a default value
$tmpl->assign( 'ldap_port', OC_Appconfig::getValue('user_ldap', 'ldap_port', OC_USER_BACKEND_LDAP_DEFAULT_PORT));
$tmpl->printPage();
return $tmpl->fetchPage();

View File

@ -1,27 +1,12 @@
<form id="ldap" action='#' method='post'>
<fieldset>
<legend>LDAP</legend>
<div>
<div>
<span>Host: *</span><span><input type="text" name="ldap_host" width="200" value="<?php echo $_['ldap_host']; ?>"></span>
</div>
<div>
<span>Port: *</span><span><input type="text" name="ldap_port" width="200" value="<?php echo $_['ldap_port']; ?>"></span>
</div>
<div>
<span>DN:<input type="text" name="ldap_dn" width="200" value="<?php echo $_['ldap_dn']; ?>"></span>
</div>
<div>
<span>Password:<input type="password" name="ldap_password" width="200" value="<?php echo $_['ldap_password']; ?>"></span>
</div>
<div>
<span>Base: *<input type="text" name="ldap_base" width="200" value="<?php echo $_['ldap_base']; ?>"></span>
</div>
<div>
<span>Filter * (use %uid placeholder):<input type="text" name="ldap_filter" width="200" value="<?php echo $_['ldap_filter']; ?>"></span>
</div>
</div>
<input type='submit' value='Save'/>
<br/> * required
<form id="ldap" action="#" method="post">
<fieldset class="personalblock">
<legend><strong>LDAP</strong></legend>
<p><label for="ldap_host">Host<input type="text" id="ldap_host" name="ldap_host" value="<?php echo $_['ldap_host']; ?>"></label>
<label for="ldap_port">Port</label><input type="text" id="ldap_port" name="ldap_port" value="<?php echo $_['ldap_port']; ?>" /></p>
<p><label for="ldap_dn">Name</label><input type="text" id="ldap_dn" name="ldap_dn" value="<?php echo $_['ldap_dn']; ?>" />
<label for="ldap_password">Password</label><input type="password" id="ldap_password" name="ldap_password" value="<?php echo $_['ldap_password']; ?>" /></p>
<p><label for="ldap_base">Base</label><input type="text" id="ldap_base" name="ldap_base" value="<?php echo $_['ldap_base']; ?>" />
<label for="ldap_filter">Filter (use %uid placeholder)</label><input type="text" id="ldap_filter" name="ldap_filter" value="<?php echo $_['ldap_filter']; ?>" /></p>
<input type="submit" value="Save" />
</fieldset>
</form>
</form>

View File

@ -63,6 +63,9 @@ class OC_USER_LDAP extends OC_User_Backend {
private function getDs() {
if(!$this->ds) {
$this->ds = ldap_connect( $this->ldap_host, $this->ldap_port );
if(ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3))
if(ldap_set_option($this->ds, LDAP_OPT_REFERRALS, 0))
ldap_start_tls($this->ds);
}
// login

View File

@ -32,25 +32,25 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', end
/* INPUTS */
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; outline: none;}
input, select, .button, #quota, div.jp-progress, .pager li a { font-size:1em; width:10em; margin:.3em; padding:.6em .5em .4em; background:#fff; color:#333; border:1px solid #ddd; -moz-box-shadow:0 1px 1px #fff, 0 2px 0 #bbb inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; outline:none; }
input[type="text"], input[type="password"], input[type="search"] { background:#f8f8f8; color:#555; cursor:text; }
input[type="text"]:hover, input[type="text"]:focus, input[type="password"]:hover, input[type="password"]:focus, input[type="search"]:hover, input[type="search"]:focus { background:#fff; color:#333; }
input[type="submit"], input[type="button"], .button, #quota, div.jp-progress { 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; outline: none;}
input[type="checkbox"] { width:auto; outline: none;}
input[type="submit"], input[type="button"], .button, #quota, div.jp-progress, .pager li a { width:auto; padding:.4em; border:1px solid #ddd; font-weight:bold; cursor:pointer; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; }
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; }
#body-login input { font-size:1.5em; }
#body-login input[type="submit"] { float:right; margin-right:.8em; }
#remember_login { margin:.8em .2em 0 1em; }
form.searchbox input[type="search"] { position:fixed; font-size:1.2em; top:.4em; right:4em; padding:.2em .5em .2em 1.5em; background:#f8f8f8 url('../img/actions/search.svg') .5em center no-repeat; border:0; -moz-border-radius:1em; -webkit-border-
radius:1em; border-radius:1em; }
form.searchbox input[type="search"] { position:fixed; font-size:1.2em; top:.4em; right:3em; padding:.2em .5em .2em 1.5em; background-image:url('../img/actions/search.svg'); background-repeat:no-repeat; background-position:.5em center; border:0; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em; }
input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; }
input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text-shadow:#ffeedd 0 1px 0; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #ffeedd inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #ffeedd inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #ffeedd inset; }
/* 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; }
#controls .button { display:inline-block; }
#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; }
@ -80,7 +80,7 @@ input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text-
/* NAVIGATION ------------------------------------------------------------- */
#navigation { position:fixed; top:3.5em; float:left; width:12.5em; padding:0; z-index:75; height:100%; background:#eee; border-right: 1px #ccc solid; -moz-box-shadow: -3px 0 7px #000; -webkit-box-shadow: -3px 0 7px #000; box-shadow: -3px 0 7px #000; }
#navigation { position:fixed; top:3.5em; float:left; width:12.5em; padding:0; z-index:75; height:100%; background:#eee; border-right: 1px #ccc solid; -moz-box-shadow: -3px 0 7px #000; -webkit-box-shadow: -3px 0 7px #000; box-shadow: -3px 0 7px #000; overflow:hidden;}
#navigation a { display:block; padding:.6em .5em .4em 2.5em; background:#eee 1em center no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; text-shadow:#f8f8f8 0 1px 0; -webkit-transition:background 300ms; -moz-transition:background 300ms; -o-transition:background 300ms; transition:background 300ms; }
#navigation a.active, #navigation a:hover, #navigation a:focus { background-color:#dbdbdb; border-top:1px solid #d4d4d4; border-bottom:1px solid #ccc; color:#333; }
#navigation a.active { background-color:#ddd; }
@ -101,10 +101,14 @@ 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 .personalblock, #body-settings .helpblock { padding:.5em 1em; margin:1em; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; }
#body-settings .personalblock#quota { position:relative; margin-top:4.5em; padding:0; }
#body-settings #controls+.helpblock { position:relative; margin-top:7.3em; }
#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; }
.pager { list-style:none; float:right; display:inline; margin:.7em 12.7em 0 0; }
.pager li { display:inline-block; }
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,56 @@ if (!Array.prototype.indexOf){
* check if the browser support svg images
*/
function SVGSupport() {
return !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
return SVGSupport.checkMimeType.correct && !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
}
SVGSupport.checkMimeType=function(){
$.ajax({
url: OC.imagePath('core','breadcrumb.svg'),
success:function(data,text,xhr){
var headerParts=xhr.getAllResponseHeaders().split("\n");
var headers={};
$.each(headerParts,function(i,text){
if(text){
var parts=text.split(':',2);
var value=parts[1].trim();
if(value[0]=='"'){
value=value.substr(1,value.length-2);
}
headers[parts[0]]=value;
}
});
if(headers["Content-Type"]!='image/svg+xml'){
replaceSVG();
SVGSupport.checkMimeType.correct=false
}
}
});
}
SVGSupport.checkMimeType.correct=true;
//replace all svg images with png for browser compatibility
function replaceSVG(){
$('img.svg').each(function(index,element){
element=$(element);
var src=element.attr('src');
element.attr('src',src.substr(0,src.length-3)+'png');
});
$('.svg').each(function(index,element){
element=$(element);
var background=element.css('background-image');
if(background && background!='none'){
background=background.substr(0,background.length-4)+'png)';
element.css('background-image',background);
}
element.find('*').each(function(index,element) {
element=$(element);
var background=element.css('background-image');
if(background && background!='none'){
background=background.substr(0,background.length-4)+'png)';
element.css('background-image',background);
}
});
});
}
/**
@ -197,28 +246,10 @@ function object(o) {
$(document).ready(function(){
if(!SVGSupport()){//replace all svg images with png images for browser that dont support svg
$('img.svg').each(function(index,element){
element=$(element);
var src=element.attr('src');
element.attr('src',src.substr(0,src.length-3)+'png');
});
$('.svg').each(function(index,element){
element=$(element);
var background=element.css('background-image');
if(background && background!='none'){
background=background.substr(0,background.length-4)+'png)';
element.css('background-image',background);
}
element.find('*').each(function(index,element) {
element=$(element);
var background=element.css('background-image');
if(background && background!='none'){
background=background.substr(0,background.length-4)+'png)';
element.css('background-image',background);
}
});
});
};
replaceSVG();
}else{
SVGSupport.checkMimeType();
}
$('form.searchbox').submit(function(event){
event.preventDefault();
})
@ -226,7 +257,7 @@ $(document).ready(function(){
if(event.keyCode==13){//enter
if(OC.search.currentResult>-1){
var result=$('#searchresults tr.result a')[OC.search.currentResult];
$(result).click();
window.location = $(result).attr('href');
}
}else if(event.keyCode==38){//up
if(OC.search.currentResult>0){
@ -303,9 +334,10 @@ $(document).ready(function(){
$('.jp-controls .jp-previous').tipsy({gravity:'nw', fade:true, live:true});
$('.jp-controls .jp-next').tipsy({gravity:'n', 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});
$('.selectedActions a.delete').tipsy({gravity: 'se', fade:true, live:true});
$('.selectedActions a').tipsy({gravity:'s', fade:true, live:true});
$('#headerSize').tipsy({gravity:'s', fade:true, live:true});
$('td.filesize').tipsy({gravity:'s', fade:true, live:true});
$('td .modified').tipsy({gravity:'s', fade:true, live:true});

View File

@ -1,10 +1,10 @@
<?php $TRANSLATIONS = array(
"Personal" => "Personal",
"Users" => "Usuaris",
"Apps" => "Aplicacions",
"Admin" => "Administrador",
"Help" => "Ajuda",
"Personal" => "Personal",
"Login failed!" => "L'inici de sessió ha fallat!",
"remember" => "recorda'm",
"Cloud not found" => "No s'ha trobat el núvol",
"Create an <strong>admin account</strong>" => "Crea un <strong>compte d'administrador</strong>",
"Username" => "Nom d'usuari",
"Password" => "Contrasenya",
@ -18,10 +18,12 @@
"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",
"Log out" => "Sortir",
"Settings" => "Arranjament",
"Login failed!" => "L'inici de sessió ha fallat!",
"remember" => "recorda'm",
"You are logged out." => "Heu tancat la sessió.",
"Settings" => "Arranjament"
"prev" => "anterior",
"next" => "següent"
);

View File

@ -1,6 +1,10 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Login mislykkedes!",
"remember" => "husk",
"Personal" => "Personlig",
"Users" => "Brugere",
"Apps" => "Apps",
"Admin" => "Admin",
"Help" => "Hjælp",
"Cloud not found" => "Sky ikke fundet",
"Create an <strong>admin account</strong>" => "Lav en <strong>administrator konto</strong>",
"Username" => "Brugernavn",
"Password" => "Kodeord",
@ -14,9 +18,12 @@
"Table prefix" => "Tabel præfiks",
"Data folder" => "Data mappe",
"Finish setup" => "Afslut installation",
"Cloud not found" => "Sky ikke fundet",
"prev" => "forrige",
"next" => "næste",
"gives you the freedom to control your own data on the internet" => "giver dig friheden til at kontrollere dine egne data på internettet",
"Log out" => "Log ud",
"Settings" => "Indstillinger",
"Login failed!" => "Login mislykkedes!",
"remember" => "husk",
"You are logged out." => "Du er nu logget ud",
"Settings" => "Indstillinger"
"prev" => "forrige",
"next" => "næste"
);

View File

@ -1,8 +1,9 @@
<?php $TRANSLATIONS = array(
"Personal" => "Persönlich",
"Users" => "Nutzer",
"Apps" => "Anwendungen",
"Admin" => "Verwaltung",
"Help" => "Hilfe",
"Personal" => "Persönlich",
"Login failed!" => "Anmeldung fehlgeschlagen!",
"remember" => "merken",
"Create an <strong>admin account</strong>" => "<strong>Admin-Konto</strong> anlegen",
@ -23,5 +24,6 @@
"prev" => "Zurück",
"next" => "Weiter",
"You are logged out." => "Erfolgreich abgemeldet.",
"Log out" => "Abmelden",
"Settings" => "Einstellungen"
);

View File

@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
"Personal" => "Προσωπικά",
"Users" => "Χρήστες",
"Apps" => "Εφαρμογές",
"Help" => "Βοήθεια",
"Login failed!" => "Η σύνδεση απέτυχε!",
"remember" => "να με θυμάσαι",
"Create an <strong>admin account</strong>" => "Δημιουργήστε έναν <strong>λογαριασμό διαχειριστή</strong>",
@ -19,5 +23,6 @@
"prev" => "προηγούμενο",
"next" => "επόμενο",
"You are logged out." => "Έχετε αποσυνδεθεί.",
"Log out" => "Αποσύνδεση",
"Settings" => "Ρυθμίσεις"
);

View File

@ -1,6 +1,10 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "¡No se pudo iniciar sesión!",
"remember" => "recuérdame",
"Personal" => "Personal",
"Users" => "Usuarios",
"Apps" => "Aplicaciones",
"Admin" => "Administrador",
"Help" => "Ayuda",
"Cloud not found" => "No se encontró la nube",
"Create an <strong>admin account</strong>" => "Crear una <strong>cuenta de administrador</strong>",
"Username" => "Nombre de usuario",
"Password" => "Contraseña",
@ -13,10 +17,13 @@
"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",
"Finish setup" => "Completar instalación",
"gives you the freedom to control your own data on the internet" => "te da la libertad del control de tus propios datos en internet",
"Log out" => "Salir",
"Settings" => "Ajustes",
"Login failed!" => "¡No se pudo iniciar sesión!",
"remember" => "recuérdame",
"You are logged out." => "Has cerrado sesión.",
"Settings" => "Ajustes"
"prev" => "anterior",
"next" => "siguiente"
);

View File

@ -1,6 +1,10 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Échec de la connexion !",
"remember" => "se souvenir de moi",
"Personal" => "Personnel",
"Users" => "Utilisateurs",
"Apps" => "Applications",
"Admin" => "Administration",
"Help" => "Aide",
"Cloud not found" => "Introuvable",
"Create an <strong>admin account</strong>" => "Créer un <strong>compte administrateur</strong>",
"Username" => "Nom d'utilisateur",
"Password" => "Mot de passe",
@ -14,10 +18,12 @@
"Table prefix" => "Préfixe des tables",
"Data folder" => "Répertoire des données",
"Finish setup" => "Terminer l'installation",
"Cloud not found" => "Introuvable",
"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",
"Log out" => "Se déconnecter",
"Settings" => "Paramètres",
"Login failed!" => "Échec de la connexion !",
"remember" => "se souvenir de moi",
"You are logged out." => "Vous êtes désormais déconnecté.",
"Settings" => "Paramètres"
"prev" => "précédent",
"next" => "suivant"
);

View File

@ -1,10 +1,29 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Gagal masuk!",
"Personal" => "Pribadi",
"Users" => "Pengguna",
"Apps" => "Aplikasi",
"Admin" => "Admin",
"Help" => "Bantuan",
"Cloud not found" => "Cloud tidak ditemukan",
"Create an <strong>admin account</strong>" => "Buat sebuah <strong>akun admin</strong>",
"Username" => "Username",
"Password" => "Password",
"Configure the database" => "Konfigurasi database",
"will be used" => "akan digunakan",
"Database user" => "Pengguna database",
"Database password" => "Password database",
"Database name" => "Nama database",
"Advanced" => "Tingkat Lanjut",
"Host" => "Host",
"Table prefix" => "Awalan tabel",
"Data folder" => "Folder data",
"Finish setup" => "Selesaikan instalasi",
"gives you the freedom to control your own data on the internet" => "memberikan anda kebebasan dalam mengendalikan data anda di internet",
"Log out" => "Keluar",
"Settings" => "Setelan",
"Login failed!" => "Gagal masuk!",
"remember" => "selalu login",
"You are logged out." => "Anda telah keluar.",
"prev" => "sebelum",
"next" => "selanjutnya",
"You are logged out." => "Anda telah keluar."
"next" => "selanjutnya"
);

View File

@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
"Personal" => "Personale",
"Users" => "Utenti",
"Apps" => "Applicazioni",
"Help" => "Aiuto",
"Login failed!" => "Login fallito!",
"remember" => "ricorda",
"Create an <strong>admin account</strong>" => "Crea un &lt;strong&gt;account amministratore&lt;/strong&gt;",
@ -14,8 +18,11 @@
"Table prefix" => "Prefisso tabella",
"Data folder" => "Cartella dati",
"Finish setup" => "Termina",
"Cloud not found" => "Cloud non trovata",
"gives you the freedom to control your own data on the internet" => "da la libertà di controllare i tuoi dati su internet",
"prev" => "precedente",
"next" => "successivo",
"You are logged out." => "Sei uscito.",
"Log out" => "Log out",
"Settings" => "Impostazioni"
);

View File

@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
"Personal" => "Persoonlijk",
"Users" => "Gebruikers",
"Apps" => "Apps",
"Help" => "Help",
"Login failed!" => "Aanmelden mislukt.",
"remember" => "onthoud gegevens",
"Create an <strong>admin account</strong>" => "Maak een <strong>admin-account</strong>",
@ -19,5 +23,6 @@
"prev" => "vorige",
"next" => "volgende",
"You are logged out." => "U bent afgemeld.",
"Log out" => "Afmelden",
"Settings" => "Instellingen"
);

View File

@ -1,8 +1,29 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Nie udało się zalogować!",
"Personal" => "Ustawienia osobiste",
"Users" => "Użytkownicy",
"Apps" => "Aplikacje",
"Admin" => "Administrator",
"Help" => "Pomoc",
"Cloud not found" => "Konta nie znaleziono ",
"Create an <strong>admin account</strong>" => "Stwórz jako <strong>konto administratora</strong>",
"Username" => "Użytkownik",
"Password" => "Hasło",
"Configure the database" => "Konfiguracja bazy danych",
"will be used" => "zostanie użyte",
"Database user" => "Użytkownik bazy danych",
"Database password" => "Hasło do bazy danych",
"Database name" => "Nazwa bazy danych",
"Advanced" => "Zaawansowane",
"Host" => "Host",
"Table prefix" => "Prefiks tablicy",
"Data folder" => "Katalog danych",
"Finish setup" => "Zakończ instalację",
"gives you the freedom to control your own data on the internet" => "daje Ci wolność kontroli nad Twoimi danymi w Internecie",
"Log out" => "Wyloguj się",
"Settings" => "Ustawienia",
"Login failed!" => "Nie udało się zalogować!",
"remember" => "zapamiętaj",
"You are logged out." => "Zostałeś wylogowany.",
"prev" => "wstecz",
"next" => "dalej",
"You are logged out." => "Jesteś wylogowany."
"next" => "dalej"
);

View File

@ -1,6 +1,10 @@
<?php $TRANSLATIONS = array(
"Login failed!" => "Login sem sucesso",
"remember" => "lembrete",
"Personal" => "Pessoal",
"Users" => "Usuários",
"Apps" => "Apps",
"Admin" => "Admin",
"Help" => "Ajuda",
"Cloud not found" => "Cloud não encontrado",
"Create an <strong>admin account</strong>" => "Criar uma <strong>conta</strong> de <strong>administrador</strong>",
"Username" => "Nome de Usuário",
"Password" => "Senha",
@ -14,9 +18,12 @@
"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",
"gives you the freedom to control your own data on the internet" => "te dá a liberdade de controlar seus próprios dados na internet",
"Log out" => "Sair",
"Settings" => "Configurações",
"Login failed!" => "Login sem sucesso",
"remember" => "lembrete",
"You are logged out." => "Você está desconectado.",
"Settings" => "Configurações"
"prev" => "anterior",
"next" => "próximo"
);

View File

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

View File

@ -31,7 +31,7 @@
<form class="searchbox" action="#" method="post">
<input id="searchbox" class="svg" type="search" name="query" value="<?php if(isset($_POST['query'])){echo $_POST['query'];};?>" autocomplete="off" />
</form>
<a id="logout" href="<?php echo link_to('', 'index.php'); ?>?logout=true"><img class="svg" src="<?php echo image_path('', 'actions/logout.svg'); ?>" /></a>
<a id="logout" href="<?php echo link_to('', 'index.php'); ?>?logout=true"><img class="svg" alt="<?php echo $l->t('Log out');?>" src="<?php echo image_path('', 'actions/logout.svg'); ?>" /></a>
</div></header>
<nav><div id="navigation">
@ -43,7 +43,7 @@
</ul>
<ul id="settings" class="svg">
<img id="expand" class="svg" src="<?php echo image_path('', 'actions/settings.svg'); ?>" />
<img id="expand" class="svg" alt="<?php echo $l->t('Settings');?>" src="<?php echo image_path('', 'actions/settings.svg'); ?>" />
<span style="display:none"><?php echo $l->t('Settings');?></span>
<div id="expanddiv">
<?php foreach($_['settingsnavigation'] as $entry):?>

View File

@ -1,31 +1,22 @@
<center>
<table class="pager" cellspacing="0" cellpadding="0" border="0">
<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 width="1">
<?php if ($_['pagestart']>0):?>
...
<?php endif;?>
<?php for ($i=$_['pagestart']; $i < $_['pagestop'];$i++):?>
<?php if ($_['page']!=$i):?>
<a href="<?php echo $_['url'].$i;?>"><?php echo $i+1;?>&nbsp;</a>
<?php else:?>
<?php echo $i+1;?>&nbsp;
<?php endif?>
<?php endfor;?>
<?php if ($_['pagestop']<$_['pagecount']):?>
...
<?php endif;?>
</td>
<td width="1">
<?php if(($_['page']+1)<$_['pagecount']):?>
<span class="pagerbutton2"><a href="<?php echo $_['url'].($_['page']+1);?>"><?php echo $l->t( 'next' ); ?></a></span>
<?php endif; ?>
</td>
<td width="50%"></td></tr>
</table>
</center>
<ol class="pager">
<?php if($_['page']>0):?>
<li class="pagerbutton1"><a href="<?php echo $_['url'].($_['page']-1);?>"><?php echo $l->t( 'prev' ); ?></a></li>
<?php endif; ?>
<?php if ($_['pagestart']>0):?>
&hellip;
<?php endif;?>
<?php for ($i=$_['pagestart']; $i < $_['pagestop'];$i++):?>
<?php if ($_['page']!=$i):?>
<li><a href="<?php echo $_['url'].$i;?>"><?php echo $i+1;?></a></li>
<?php else:?>
<li><?php echo $i+1;?></li>
<?php endif?>
<?php endfor;?>
<?php if ($_['pagestop']<$_['pagecount']):?>
&hellip;
<?php endif;?>
<?php if(($_['page']+1)<$_['pagecount']):?>
<li class="pagerbutton2"><a href="<?php echo $_['url'].($_['page']+1);?>"><?php echo $l->t( 'next' ); ?></a></li>
<?php endif; ?>
</ol>

View File

@ -17,7 +17,7 @@ if( !OC_User::isLoggedIn()){
$files=$_FILES['files'];
$dir = $_POST['dir'];
if(!empty($dir)) $dir .= '/';
$dir .= '/';
$error='';
$totalSize=0;
@ -33,7 +33,7 @@ $result=array();
if(strpos($dir,'..') === false){
$fileCount=count($files['name']);
for($i=0;$i<$fileCount;$i++){
$target='/' . stripslashes($dir) . $files['name'][$i];
$target=stripslashes($dir) . $files['name'][$i];
if(OC_Filesystem::fromUploadedFile($files['tmp_name'][$i],$target)){
$result[]=array( "status" => "success", 'mime'=>OC_Filesystem::getMimeType($target),'size'=>OC_Filesystem::filesize($target),'name'=>$files['name'][$i]);
}

View File

@ -13,7 +13,7 @@
.file_upload_wrapper { font-weight:bold; display:-moz-inline-box; /* fallback for older firefox versions*/ display:inline-block; padding-left:0; overflow:hidden; position:relative; margin:.1em 1em;}
.file_upload_wrapper .file_upload_button_wrapper { position:absolute; top:0; left:0; width:100%; height:100%; cursor:pointer; z-index:1000; }
#file_newfolder_name { background-image:url('../../core/img/places/folder.svg'); font-weight:normal; width:6em; }
#file_newfolder_name { background-image:url('../../core/img/places/folder.svg'); font-weight:normal; width:7em; }
.file_upload_start, .file_upload_filename { font-size:1em; }
#file_newfolder_submit, #file_upload_submit { width:3em; }
.file_upload_target { display:none; }
@ -24,7 +24,7 @@
.file_upload_form, .file_upload_wrapper, .file_upload_start, .file_upload_filename, #file_upload_submit { cursor:pointer; }
/* FILE TABLE */
span#emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; }
#emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; }
table { position:relative; top:37px; width:100%; }
tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; height:1em; }
tbody tr.selected { background-color:#eee; }
@ -51,13 +51,13 @@ table td.filename a, table td.login, table td.logout, table td.download, table t
table td.filename .nametext, .modified { float:left; padding:.3em 0; }
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 tr{ position:fixed; top:6.5em; z-index:49; -moz-box-shadow:0 -3px 7px #ddd; -webkit-box-shadow:0 -3px 7px #ddd; box-shadow:0 -3px 7px #ddd; }
table thead.fixed { height:2em; }
#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; }
#select_all { float:left; margin:.2em; margin-left:.6em; }
#select_all { float:left; margin:.3em 0.6em 0 .5em; }
#uploadsize-message,#delete-confirm { display:none; }
.selectedActions a, a.action { float:right; display:inline; margin:0 .5em; padding:.3em .3em 0 .3em !important; }
.selectedActions { display:none; }

View File

@ -81,6 +81,7 @@ $tmpl = new OC_Template( "files", "index", "user" );
$tmpl->assign( "fileList", $list->fetchPage() );
$tmpl->assign( "breadcrumb", $breadcrumbNav->fetchPage() );
$tmpl->assign( 'dir', $dir);
$tmpl->assign( "files", $files );
$tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
$tmpl->assign( 'uploadMaxHumanFilesize', OC_Helper::humanFileSize($maxUploadFilesize));
$tmpl->printPage();

View File

@ -85,6 +85,9 @@ FileActions={
}
if(actions['Delete']){
var img=FileActions.icons['Delete'];
if(img.call){
img=img(file);
}
var html='<a href="#" title="Delete" class="action" />';
var element=$(html);
if(img){
@ -121,15 +124,15 @@ FileActions={
}
}
FileActions.register('all','Download',OC.imagePath('core','actions/download'),function(filename){
FileActions.register('all','Download',function(){return OC.imagePath('core','actions/download')},function(filename){
window.location='ajax/download.php?files='+filename+'&dir='+$('#dir').val();
});
FileActions.register('all','Delete',OC.imagePath('core','actions/delete'),function(filename){
FileList.delete(filename);
FileActions.register('all','Delete',function(){return OC.imagePath('core','actions/delete')},function(filename){
FileList.do_delete(filename);
});
FileActions.register('all','Rename',OC.imagePath('core','actions/rename'),function(filename){
FileActions.register('all','Rename',function(){return OC.imagePath('core','actions/rename')},function(filename){
FileList.rename(filename);
});

View File

@ -6,8 +6,8 @@ FileList={
var img=(loading)?OC.imagePath('core', 'loading.gif'):OC.imagePath('core', 'filetypes/file');
var html='<tr data-file="'+name+'" data-type="file" data-size="'+size+'">';
if(name.indexOf('.')!=-1){
var basename=name.substr(0,name.indexOf('.'));
var extention=name.substr(name.indexOf('.'));
var basename=name.substr(0,name.lastIndexOf('.'));
var extention=name.substr(name.lastIndexOf('.'));
}else{
var basename=name;
var extention=false;
@ -127,7 +127,7 @@ FileList={
tr.attr('data-file',newname);
td.children('a.name').empty();
if(newname.indexOf('.')>0){
basename=newname.substr(0,newname.indexOf('.'));
basename=newname.substr(0,newname.lastIndexOf('.'));
}else{
basename=newname;
}
@ -135,7 +135,7 @@ FileList={
span.text(basename);
td.children('a.name').append(span);
if(newname.indexOf('.')>0){
span.append($('<span class="extention">'+newname.substr(newname.indexOf('.'))+'</span>'));
span.append($('<span class="extention">'+newname.substr(newname.lastIndexOf('.'))+'</span>'));
}
$.ajax({
url: 'ajax/rename.php',
@ -150,10 +150,10 @@ FileList={
form.trigger('submit');
});
},
delete:function(files){
do_delete:function(files){
if(FileList.deleteFiles){//finish any ongoing deletes first
FileList.finishDelete(function(){
FileList.delete(files);
FileList.do_delete(files);
});
return;
}

View File

@ -26,18 +26,55 @@ $(document).ready(function() {
FileActions.hide();
});
var lastChecked;
// Sets the file link behaviour :
$('td.filename a').live('click',function(event) {
event.preventDefault();
var filename=$(this).parent().parent().data('file');
if(!FileList.isLoading(filename)){
var mime=$(this).parent().parent().data('mime');
var type=$(this).parent().parent().data('type');
var action=FileActions.getDefault(mime,type);
if(action){
action(filename);
if (event.ctrlKey || event.shiftKey) {
if (event.shiftKey) {
var last = $(lastChecked).parent().parent().prevAll().length;
var first = $(this).parent().parent().prevAll().length;
var start = Math.min(first, last);
var end = Math.max(first, last);
var rows = $(this).parent().parent().parent().children('tr');
for (var i = start; i < end; i++) {
$(rows).each(function(index) {
if (index == i) {
var checkbox = $(this).children().children('input:checkbox');
$(checkbox).attr('checked', 'checked');
$(checkbox).parent().parent().addClass('selected');
}
});
}
}
var checkbox = $(this).parent().children('input:checkbox');
lastChecked = checkbox;
if ($(checkbox).attr('checked')) {
$(checkbox).removeAttr('checked');
$(checkbox).parent().parent().removeClass('selected');
$('#select_all').removeAttr('checked');
} else {
$(checkbox).attr('checked', 'checked');
$(checkbox).parent().parent().toggleClass('selected');
var selectedCount=$('td.filename input:checkbox:checked').length;
if (selectedCount == $('td.filename input:checkbox').length) {
$('#select_all').attr('checked', 'checked');
}
}
procesSelection();
} else {
var filename=$(this).parent().parent().data('file');
if(!FileList.isLoading(filename)){
var mime=$(this).parent().parent().data('mime');
var type=$(this).parent().parent().data('type');
var action=FileActions.getDefault(mime,type);
if(action){
action(filename);
}
}
}
});
// Sets the select_all checkbox behaviour :
@ -54,7 +91,23 @@ $(document).ready(function() {
procesSelection();
});
$('td.filename input:checkbox').live('click',function() {
$('td.filename input:checkbox').live('click',function(event) {
if (event.shiftKey) {
var last = $(lastChecked).parent().parent().prevAll().length;
var first = $(this).parent().parent().prevAll().length;
var start = Math.min(first, last);
var end = Math.max(first, last);
var rows = $(this).parent().parent().parent().children('tr');
for (var i = start; i < end; i++) {
$(rows).each(function(index) {
if (index == i) {
var checkbox = $(this).children().children('input:checkbox');
$(checkbox).attr('checked', 'checked');
$(checkbox).parent().parent().addClass('selected');
}
});
}
}
var selectedCount=$('td.filename input:checkbox:checked').length;
$(this).parent().parent().toggleClass('selected');
if(!$(this).attr('checked')){
@ -100,7 +153,7 @@ $(document).ready(function() {
$('.delete').click(function(event) {
var files=getSelectedFiles('name');
event.preventDefault();
FileList.delete(files);
FileList.do_delete(files);
return false;
});
@ -251,8 +304,8 @@ function simpleFileSize(bytes) {
}
function formatDate(date){
var monthNames = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];
var monthNames = [ t('files','January'), t('files','February'), t('files','March'), t('files','April'), t('files','May'), t('files','June'),
t('files','July'), t('files','August'), t('files','September'), t('files','October'), t('files','November'), t('files','December') ];
return monthNames[date.getMonth()]+' '+date.getDate()+', '+date.getFullYear()+', '+((date.getHours()<10)?'0':'')+date.getHours()+':'+date.getMinutes();
}
@ -311,8 +364,8 @@ function procesSelection(){
var selectedFiles=selected.filter(function(el){return el.type=='file'});
var selectedFolders=selected.filter(function(el){return el.type=='dir'});
if(selectedFiles.length==0 && selectedFolders.length==0){
$('#headerName>span.name').text('Name');
$('#headerSize').text(t('files','Size MB'));
$('#headerName>span.name').text(t('files','Name'));
$('#headerSize').text(t('files','Size'));
$('#modified').text(t('files','Modified'));
$('th').removeClass('multiselect');
$('.selectedActions').hide();
@ -327,7 +380,7 @@ function procesSelection(){
$('#headerName').css('width',width.name);
$('#headerSize').css('width',width.size);
$('#headerDate').css('width',width.date);
$('table').css('padding-top','2em');
$('table').css('padding-top','2.1em');
$('.selectedActions').show();
var totalSize=0;
for(var i=0;i<selectedFiles.length;i++){
@ -337,7 +390,7 @@ function procesSelection(){
totalSize+=selectedFolders[i].size;
};
simpleSize=simpleFileSize(totalSize);
$('#headerSize').text(simpleSize+' MB');
$('#headerSize').text(simpleSize);
$('#headerSize').attr('title',humanFileSize(totalSize));
var selection='';
if(selectedFolders.length>0){
@ -398,19 +451,19 @@ function relative_modified_date(timestamp) {
var diffdays = Math.round(diffhours/24);
var diffmonths = Math.round(diffdays/31);
var diffyears = Math.round(diffdays/365);
if(timediff < 60) { return 'seconds ago'; }
else if(timediff < 120) { return '1 minute ago'; }
else if(timediff < 3600) { return diffminutes+' minutes ago'; }
if(timediff < 60) { return t('files','seconds ago'); }
else if(timediff < 120) { return '1 '+t('files','minute ago'); }
else if(timediff < 3600) { return diffminutes+' '+t('files','minutes ago'); }
//else if($timediff < 7200) { return '1 hour ago'; }
//else if($timediff < 86400) { return $diffhours.' hours ago'; }
else if(timediff < 86400) { return 'today'; }
else if(timediff < 172800) { return 'yesterday'; }
else if(timediff < 2678400) { return diffdays+' days ago'; }
else if(timediff < 5184000) { return 'last month'; }
else if(timediff < 86400) { return t('files','today'); }
else if(timediff < 172800) { return t('files','yesterday'); }
else if(timediff < 2678400) { return diffdays+' '+t('files','days ago'); }
else if(timediff < 5184000) { return t('files','last month'); }
//else if($timediff < 31556926) { return $diffmonths.' months ago'; }
else if(timediff < 31556926) { return 'months ago'; }
else if(timediff < 63113852) { return 'last year'; }
else { return diffyears+' years ago'; }
else if(timediff < 31556926) { return t('files','months ago'); }
else if(timediff < 63113852) { return t('files','last year'); }
else { return diffyears+' '+t('files','years ago'); }
}
function getMimeIcon(mime){

View File

@ -5,9 +5,9 @@
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $_['uploadMaxFilesize'] ?>" id="max_upload">
<input type="hidden" class="max_human_file_size" value="(max <?php echo $_['uploadMaxHumanFilesize']; ?>)">
<input type="hidden" name="dir" value="<?php echo $_['dir'] ?>" id="dir">
<div class="file_upload_wrapper" class="svg">
<div class="file_upload_wrapper svg">
<input type="submit" class="file_upload_filename" value="<?php echo $l->t('Upload'); ?>"/>
<input class="file_upload_start" class="file_upload_start" type="file" name='files[]'/>
<input class="file_upload_start" type="file" name='files[]'/>
<a href="#" class="file_upload_button_wrapper" onclick="return false;" title="<?php echo 'max. '.$_['uploadMaxHumanFilesize'] ?>"></a>
</div>
<iframe name="file_upload_target_1" class='file_upload_target' src=""></iframe>
@ -21,7 +21,9 @@
</div>
<div id='notification'></div>
<table cellspacing="0">
<div id="emptyfolder" <?php if(count($_['files'])) echo 'style="display:none;"';?>><?php echo $l->t('Nothing in here. Upload something!')?></div>
<table>
<thead>
<tr>
<th id='headerName'>
@ -43,8 +45,6 @@
<div id="uploadsize-message" title="<?php echo $l->t('Upload too large')?>">
<p>
<?php echo $l->t( 'The files you are trying to upload exceed the maximum size for file uploads on this server.' ); ?>
<?php echo $l->t('The files you are trying to upload exceed the maximum size for file uploads on this server.');?>
</p>
</div>
<span id="file_menu"/>

View File

@ -1,4 +1,3 @@
<span id="emptyfolder" <?php if(count($_['files'])) echo 'style="display:none;"';?>><?php echo $l->t('Nothing in here. Upload something!')?></span>
<?php foreach($_['files'] as $file):
$simple_file_size = simple_file_size($file['size']);
$simple_size_color = intval(200-$file['size']/(1024*1024)*2); // the bigger the file, the darker the shade of grey; megabytes*2

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-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"POT-Creation-Date: 2011-08-23 11:17+0200\n"
"PO-Revision-Date: 2011-08-23 09:17+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"
@ -19,19 +19,23 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgid "Personal"
msgstr ""
#: strings.php:6
msgid "Apps"
msgid "Users"
msgstr ""
#: strings.php:7
msgid "Help"
msgid "Apps"
msgstr ""
#: strings.php:8
msgid "Personal"
msgid "Admin"
msgstr ""
#: strings.php:9
msgid "Help"
msgstr ""
#: templates/login.php:4
@ -99,15 +103,15 @@ msgstr "Завършване на настройките"
msgid "Cloud not found"
msgstr "обклакът не намерен"
#: templates/layout.guest.php:38
#: templates/layout.guest.php:35
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
#: templates/part.pagenavi.php:6
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "пред."
#: templates/part.pagenavi.php:26
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "следващо"
@ -115,7 +119,11 @@ msgstr "следващо"
msgid "You are logged out."
msgstr "Вие излязохте."
#: templates/layout.user.php:49
#: templates/layout.user.php:34
msgid "Log out"
msgstr ""
#: templates/layout.user.php:46 templates/layout.user.php:47
msgid "Settings"
msgstr ""

View File

@ -6,8 +6,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 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"POT-Creation-Date: 2011-08-20 05:08+0200\n"
"PO-Revision-Date: 2011-08-20 03: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"
@ -20,27 +20,47 @@ msgstr ""
msgid "Music"
msgstr ""
#: templates/music.php:27
msgid "Songs scanned"
#: templates/music.php:3
msgid "Play"
msgstr ""
#: templates/music.php:28
msgid "Rescan Collection"
msgstr ""
#: templates/music.php:29
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr ""
#: templates/music.php:35
msgid "Artist"
#: templates/music.php:5
msgid "Previous"
msgstr ""
#: templates/music.php:36
msgid "Album"
#: templates/music.php:6
msgid "Next"
msgstr ""
#: templates/music.php:7
msgid "Mute"
msgstr ""
#: templates/music.php:8
msgid "Unmute"
msgstr ""
#: templates/music.php:28
msgid "Songs scanned"
msgstr ""
#: templates/music.php:29
msgid "Rescan Collection"
msgstr ""
#: templates/music.php:37
msgid "Artist"
msgstr ""
#: templates/music.php:38
msgid "Album"
msgstr ""
#: templates/music.php:39
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-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"POT-Creation-Date: 2011-08-28 01:13+0200\n"
"PO-Revision-Date: 2011-08-27 23:13+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,91 +33,99 @@ msgstr "Невалидна заявка"
msgid "Language changed"
msgstr "Езика е сменен"
#: templates/help.php:2
msgid "Problems connecting to help database."
#: templates/apps.php:8
msgid "Add your application"
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
#: templates/apps.php:21
msgid "Select an App"
msgstr ""
#: templates/apps.php:14
#: templates/apps.php:23
msgid "-licensed"
msgstr ""
#: templates/apps.php:14
#: templates/apps.php:23
msgid "by"
msgstr ""
#: templates/personal.php:2
#: templates/help.php:8
msgid "Ask a question"
msgstr ""
#: templates/help.php:17
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:18
msgid "Go there manually."
msgstr ""
#: templates/help.php:26
msgid "Answer"
msgstr ""
#: templates/personal.php:8
msgid "You use"
msgstr ""
#: templates/personal.php:2
#: templates/personal.php:8
msgid "of the available"
msgstr ""
#: templates/personal.php:7
#: templates/personal.php:13
msgid "Your password got changed"
msgstr "Вашата парола е сменена"
#: templates/personal.php:9
#: templates/personal.php:14
msgid "Unable to change your password"
msgstr ""
#: templates/personal.php:15
msgid "Current password"
msgstr ""
#: templates/personal.php:10
#: templates/personal.php:16
msgid "New password"
msgstr "Нова парола"
#: templates/personal.php:11
#: templates/personal.php:17
msgid "show"
msgstr ""
#: templates/personal.php:12
#: templates/personal.php:18
msgid "Change password"
msgstr ""
#: templates/personal.php:18
#: templates/personal.php:24
msgid "Language"
msgstr "Език"
#: templates/personal.php:24
#: templates/personal.php:30
msgid "Help translating"
msgstr ""
#: templates/personal.php:30
#: templates/personal.php:36
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:11
#: templates/users.php:16
msgid "Name"
msgstr ""
#: templates/users.php:12
#: templates/users.php:17
msgid "Password"
msgstr ""
#: templates/users.php:13 templates/users.php:28
#: templates/users.php:18 templates/users.php:36
msgid "Groups"
msgstr ""
#: templates/users.php:18
#: templates/users.php:24
msgid "Create"
msgstr ""
#: templates/users.php:40
#: templates/users.php:48
msgid "Delete"
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-19 13:10+0200\n"
"PO-Revision-Date: 2011-08-18 20:01+0000\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-23 15:32+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"
@ -18,28 +18,28 @@ msgstr ""
"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!"
#: strings.php:6
msgid "Users"
msgstr "Usuaris"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "recorda'm"
#: strings.php:7
msgid "Apps"
msgstr "Aplicacions"
#: strings.php:8
msgid "Admin"
msgstr "Administrador"
#: strings.php:9
msgid "Help"
msgstr "Ajuda"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "No s'ha trobat el núvol"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
@ -94,28 +94,36 @@ msgstr "Carpeta de dades"
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
#: templates/layout.guest.php:35
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/layout.user.php:34
msgid "Log out"
msgstr "Sortir"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "següent"
#: templates/layout.user.php:46 templates/layout.user.php:47
msgid "Settings"
msgstr "Arranjament"
#: 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/logout.php:1
msgid "You are logged out."
msgstr "Heu tancat la sessió."
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Arranjament"
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "anterior"
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "següent"

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 12:41+0200\n"
"PO-Revision-Date: 2011-08-16 06:18+0000\n"
"POT-Creation-Date: 2011-08-23 11:09+0200\n"
"PO-Revision-Date: 2011-08-21 10:56+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"
@ -21,27 +21,47 @@ msgstr ""
msgid "Music"
msgstr "Música"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Cançons escanejades"
#: templates/music.php:3
msgid "Play"
msgstr "Reprodueix"
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Escaneja de nou la col·lecció"
#: templates/music.php:29
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr "Pausa"
#: templates/music.php:35
#: templates/music.php:5
msgid "Previous"
msgstr "Anterior"
#: templates/music.php:6
msgid "Next"
msgstr "Següent"
#: templates/music.php:7
msgid "Mute"
msgstr "Mut"
#: templates/music.php:8
msgid "Unmute"
msgstr "Activa el so"
#: templates/music.php:28
msgid "Songs scanned"
msgstr "Cançons escanejades"
#: templates/music.php:29
msgid "Rescan Collection"
msgstr "Escaneja de nou la col·lecció"
#: templates/music.php:37
msgid "Artist"
msgstr "Artista"
#: templates/music.php:36
#: templates/music.php:38
msgid "Album"
msgstr "Àlbum"
#: templates/music.php:37
#: templates/music.php:39
msgid "Title"
msgstr "Títol"

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-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-23 15:33+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"
@ -33,92 +33,97 @@ msgstr "Sol.licitud no vàlida"
msgid "Language changed"
msgstr "S'ha canviat l'idioma"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/apps.php:8
msgid "Add your application"
msgstr "Afegir una aplicació"
#: 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
#: templates/apps.php:21
msgid "Select an App"
msgstr "Sel·leccioneu una aplicació"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "-licensed"
msgstr "- amb llicència"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "by"
msgstr "per"
#: templates/personal.php:2
#: templates/help.php:8
msgid "Ask a question"
msgstr "Feu una pregunta"
#: templates/help.php:17
msgid "Problems connecting to help database."
msgstr "Problemes per connectar-se a la base de dades d'ajuda."
#: templates/help.php:18
msgid "Go there manually."
msgstr "Vés-hi manualment."
#: templates/help.php:26
msgid "Answer"
msgstr "Resposta"
#: templates/personal.php:8
msgid "You use"
msgstr ""
msgstr "Esteu usant"
#: templates/personal.php:2
#: templates/personal.php:8
msgid "of the available"
msgstr ""
msgstr "del disponible"
#: templates/personal.php:7
#: templates/personal.php:13
msgid "Your password got changed"
msgstr "La contrasenya ha canviat"
#: templates/personal.php:9
#: templates/personal.php:15
msgid "Current password"
msgstr ""
msgstr "contrasenya actual"
#: templates/personal.php:10
#: templates/personal.php:16
msgid "New password"
msgstr "Contrasenya nova"
#: templates/personal.php:11
#: templates/personal.php:17
msgid "show"
msgstr "mostra"
#: templates/personal.php:12
msgid "Change password"
msgstr ""
#: templates/personal.php:18
msgid "Change password"
msgstr "canvia la contrasenya"
#: templates/personal.php:24
msgid "Language"
msgstr "Idioma"
#: templates/personal.php:24
msgid "Help translating"
msgstr ""
#: templates/personal.php:30
msgid "Help translating"
msgstr "Ajudeu amb la traducció"
#: templates/personal.php:36
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
"useu aquesta adreça per connectar-vos a ownCloud des del gestor de fitxers"
#: templates/users.php:11
#: templates/users.php:16
msgid "Name"
msgstr "Nom"
#: templates/users.php:12
#: templates/users.php:17
msgid "Password"
msgstr "Contrasenya"
#: templates/users.php:13 templates/users.php:28
#: templates/users.php:18 templates/users.php:36
msgid "Groups"
msgstr "Grups"
#: templates/users.php:18
#: templates/users.php:24
msgid "Create"
msgstr "Crea"
#: templates/users.php:40
#: templates/users.php:48
msgid "Delete"
msgstr ""
msgstr "Esborra"

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-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-26 13:48+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"
@ -18,28 +18,28 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
msgid "Personal"
msgstr "Personlig"
#: strings.php:6
msgid "Apps"
msgstr ""
msgid "Users"
msgstr "Brugere"
#: strings.php:7
msgid "Help"
msgstr ""
msgid "Apps"
msgstr "Apps"
#: strings.php:8
msgid "Personal"
msgstr ""
msgid "Admin"
msgstr "Admin"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Login mislykkedes!"
#: strings.php:9
msgid "Help"
msgstr "Hjælp"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "husk"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "Sky ikke fundet"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
@ -94,28 +94,36 @@ msgstr "Data mappe"
msgid "Finish setup"
msgstr "Afslut installation"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "Sky ikke fundet"
#: templates/layout.guest.php:38
#: templates/layout.guest.php:35
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
msgstr "giver dig friheden til at kontrollere dine egne data på internettet"
#: templates/part.pagenavi.php:6
msgid "prev"
msgstr "forrige"
#: templates/layout.user.php:34
msgid "Log out"
msgstr "Log ud"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "næste"
#: templates/layout.user.php:46 templates/layout.user.php:47
msgid "Settings"
msgstr "Indstillinger"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Login mislykkedes!"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "husk"
#: templates/logout.php:1
msgid "You are logged out."
msgstr "Du er nu logget ud"
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Indstillinger"
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "forrige"
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "næste"

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 12:41+0200\n"
"PO-Revision-Date: 2011-08-17 17:19+0000\n"
"Last-Translator: pascal_a <pascal@dhermilly.dk>\n"
"POT-Creation-Date: 2011-08-20 05:08+0200\n"
"PO-Revision-Date: 2011-08-20 03: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"
"Content-Type: text/plain; charset=UTF-8\n"
@ -21,27 +21,47 @@ msgstr ""
msgid "Music"
msgstr "Musik"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Sange skannet"
#: templates/music.php:3
msgid "Play"
msgstr ""
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Genskan Samling"
#: templates/music.php:29
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr "Pause"
#: templates/music.php:35
#: templates/music.php:5
msgid "Previous"
msgstr ""
#: templates/music.php:6
msgid "Next"
msgstr ""
#: templates/music.php:7
msgid "Mute"
msgstr ""
#: templates/music.php:8
msgid "Unmute"
msgstr ""
#: templates/music.php:28
msgid "Songs scanned"
msgstr "Sange skannet"
#: templates/music.php:29
msgid "Rescan Collection"
msgstr "Genskan Samling"
#: templates/music.php:37
msgid "Artist"
msgstr "Kunstner"
#: templates/music.php:36
#: templates/music.php:38
msgid "Album"
msgstr "Album"
#: templates/music.php:37
#: templates/music.php:39
msgid "Title"
msgstr "Titel"

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-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-26 13:49+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"
@ -33,92 +33,96 @@ msgstr "Ugyldig forespørgsel"
msgid "Language changed"
msgstr "Sprog ændret"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/apps.php:8
msgid "Add your application"
msgstr "Tilføj dit program"
#: 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
#: templates/apps.php:21
msgid "Select an App"
msgstr "Vælg en App"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "-licensed"
msgstr "-licenseret"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "by"
msgstr "af"
#: templates/personal.php:2
#: templates/help.php:8
msgid "Ask a question"
msgstr "Stil et spørgsmål"
#: templates/help.php:17
msgid "Problems connecting to help database."
msgstr "Problemer med at forbinde til hjælpe-databasen"
#: templates/help.php:18
msgid "Go there manually."
msgstr "Gå derhen manuelt."
#: templates/help.php:26
msgid "Answer"
msgstr "Svar"
#: templates/personal.php:8
msgid "You use"
msgstr ""
msgstr "Du benytter"
#: templates/personal.php:2
#: templates/personal.php:8
msgid "of the available"
msgstr ""
msgstr "af det tilgængelige"
#: templates/personal.php:7
#: templates/personal.php:13
msgid "Your password got changed"
msgstr "Din adgangskode er blevet ændret"
#: templates/personal.php:9
#: templates/personal.php:15
msgid "Current password"
msgstr ""
msgstr "Nuværende adgangskode"
#: templates/personal.php:10
#: templates/personal.php:16
msgid "New password"
msgstr "Ny adgangskode"
#: templates/personal.php:11
#: templates/personal.php:17
msgid "show"
msgstr "vis"
#: templates/personal.php:12
msgid "Change password"
msgstr ""
#: templates/personal.php:18
msgid "Change password"
msgstr "Skift password"
#: templates/personal.php:24
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 ""
msgid "Help translating"
msgstr "Hjælp med at oversætte"
#: templates/users.php:11
#: templates/personal.php:36
msgid "use this address to connect to your ownCloud in your file manager"
msgstr "benyt denne adresse til at forbinde til din ownCloud i din filbrowser"
#: templates/users.php:16
msgid "Name"
msgstr "Navn"
#: templates/users.php:12
#: templates/users.php:17
msgid "Password"
msgstr "Kodeord"
#: templates/users.php:13 templates/users.php:28
#: templates/users.php:18 templates/users.php:36
msgid "Groups"
msgstr "Grupper"
#: templates/users.php:18
#: templates/users.php:24
msgid "Create"
msgstr "Ny"
#: templates/users.php:40
#: templates/users.php:48
msgid "Delete"
msgstr ""
msgstr "Slet"

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-19 13:10+0200\n"
"PO-Revision-Date: 2011-08-18 19:25+0000\n"
"POT-Creation-Date: 2011-08-23 11:18+0200\n"
"PO-Revision-Date: 2011-08-23 09:18+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"
@ -19,21 +19,25 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Personal"
msgstr "Persönlich"
#: strings.php:6
msgid "Users"
msgstr "Nutzer"
#: strings.php:6
#: strings.php:7
msgid "Apps"
msgstr "Anwendungen"
#: strings.php:7
#: strings.php:8
msgid "Admin"
msgstr "Verwaltung"
#: strings.php:9
msgid "Help"
msgstr "Hilfe"
#: strings.php:8
msgid "Personal"
msgstr "Persönlich"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Anmeldung fehlgeschlagen!"
@ -99,16 +103,16 @@ msgstr "Installation abschließen"
msgid "Cloud not found"
msgstr "Cloud nicht verfügbar"
#: templates/layout.guest.php:38
#: templates/layout.guest.php:35
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
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "Zurück"
#: templates/part.pagenavi.php:26
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "Weiter"
@ -116,7 +120,11 @@ msgstr "Weiter"
msgid "You are logged out."
msgstr "Erfolgreich abgemeldet."
#: templates/layout.user.php:49
#: templates/layout.user.php:34
msgid "Log out"
msgstr "Abmelden"
#: templates/layout.user.php:46 templates/layout.user.php:47
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 05:10+0200\n"
"PO-Revision-Date: 2011-08-13 02:35+0000\n"
"POT-Creation-Date: 2011-08-20 05:08+0200\n"
"PO-Revision-Date: 2011-08-20 03:08+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"
@ -21,7 +21,31 @@ msgstr ""
msgid "Music"
msgstr "Musik"
#: templates/music.php:27
#: templates/music.php:3
msgid "Play"
msgstr ""
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr "Pause"
#: templates/music.php:5
msgid "Previous"
msgstr ""
#: templates/music.php:6
msgid "Next"
msgstr ""
#: templates/music.php:7
msgid "Mute"
msgstr ""
#: templates/music.php:8
msgid "Unmute"
msgstr ""
#: templates/music.php:28
msgid "Songs scanned"
msgstr "Lieder gescannt"
@ -29,19 +53,15 @@ msgstr "Lieder gescannt"
msgid "Rescan Collection"
msgstr "Sammlung scannen"
#: templates/music.php:30
msgid "Pause"
msgstr "Pause"
#: templates/music.php:34
#: templates/music.php:37
msgid "Artist"
msgstr "Künstler"
#: templates/music.php:35
#: templates/music.php:38
msgid "Album"
msgstr "Album"
#: templates/music.php:36
#: templates/music.php:39
msgid "Title"
msgstr "Titel"

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-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 17:25+0000\n"
"POT-Creation-Date: 2011-08-28 01:13+0200\n"
"PO-Revision-Date: 2011-08-27 23:13+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,93 +33,101 @@ msgstr "Ungültige Anfrage"
msgid "Language changed"
msgstr "Sprache geändert"
#: templates/help.php:3
msgid "Problems connecting to help database."
msgstr "Probleme bei der Verbindung zur Hilfe-Datenbank."
#: templates/apps.php:8
msgid "Add your application"
msgstr "Eigene Anwendung hinzufügen"
#: 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"
#: templates/apps.php:12
#: templates/apps.php:21
msgid "Select an App"
msgstr "Wähle eine Anwendung aus"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "-licensed"
msgstr "-lizenziert"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "by"
msgstr "von"
#: templates/personal.php:2
#: templates/help.php:8
msgid "Ask a question"
msgstr "Stell eine Frage"
#: templates/help.php:17
msgid "Problems connecting to help database."
msgstr "Probleme bei der Verbindung zur Hilfe-Datenbank."
#: templates/help.php:18
msgid "Go there manually."
msgstr "Datenbank direkt besuchen."
#: templates/help.php:26
msgid "Answer"
msgstr "Antwort"
#: templates/personal.php:8
msgid "You use"
msgstr "Du nutzt"
#: templates/personal.php:2
#: templates/personal.php:8
msgid "of the available"
msgstr "der verfügbaren"
#: templates/personal.php:7
#: templates/personal.php:13
msgid "Your password got changed"
msgstr "Dein Passwort wurde geändert"
#: templates/personal.php:9
#: templates/personal.php:14
msgid "Unable to change your password"
msgstr ""
#: templates/personal.php:15
msgid "Current password"
msgstr "Aktuelles Passwort"
#: templates/personal.php:10
#: templates/personal.php:16
msgid "New password"
msgstr "Neues Passwort"
#: templates/personal.php:11
#: templates/personal.php:17
msgid "show"
msgstr "zeigen"
#: templates/personal.php:12
#: templates/personal.php:18
msgid "Change password"
msgstr "Passwort ändern"
#: templates/personal.php:18
#: templates/personal.php:24
msgid "Language"
msgstr "Sprache"
#: templates/personal.php:24
#: templates/personal.php:30
msgid "Help translating"
msgstr "Hilf bei der Übersetzung"
#: templates/personal.php:30
#: templates/personal.php:36
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
#: templates/users.php:16
msgid "Name"
msgstr "Name"
#: templates/users.php:12
#: templates/users.php:17
msgid "Password"
msgstr "Passwort"
#: templates/users.php:13 templates/users.php:28
#: templates/users.php:18 templates/users.php:36
msgid "Groups"
msgstr "Gruppen"
#: templates/users.php:18
#: templates/users.php:24
msgid "Create"
msgstr "Anlegen"
#: templates/users.php:40
#: templates/users.php:48
msgid "Delete"
msgstr "Löschen"

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-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"POT-Creation-Date: 2011-08-23 11:17+0200\n"
"PO-Revision-Date: 2011-08-23 09:17+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"
@ -19,21 +19,25 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
msgid "Personal"
msgstr "Προσωπικά"
#: strings.php:6
msgid "Apps"
msgstr ""
msgid "Users"
msgstr "Χρήστες"
#: strings.php:7
msgid "Help"
msgstr ""
msgid "Apps"
msgstr "Εφαρμογές"
#: strings.php:8
msgid "Personal"
msgid "Admin"
msgstr ""
#: strings.php:9
msgid "Help"
msgstr "Βοήθεια"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Η σύνδεση απέτυχε!"
@ -99,16 +103,16 @@ msgstr "Ολοκλήρωση εγκατάστασης"
msgid "Cloud not found"
msgstr "Δεν βρέθηκε σύννεφο"
#: templates/layout.guest.php:38
#: templates/layout.guest.php:35
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
"σας δίνει την ελευθερία να ελέγχετε τα δικά σας δεδομένα στο διαδίκτυο"
#: templates/part.pagenavi.php:6
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "προηγούμενο"
#: templates/part.pagenavi.php:26
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "επόμενο"
@ -116,7 +120,11 @@ msgstr "επόμενο"
msgid "You are logged out."
msgstr "Έχετε αποσυνδεθεί."
#: templates/layout.user.php:49
#: templates/layout.user.php:34
msgid "Log out"
msgstr "Αποσύνδεση"
#: templates/layout.user.php:46 templates/layout.user.php:47
msgid "Settings"
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 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 17:45+0000\n"
"POT-Creation-Date: 2011-08-23 11:09+0200\n"
"PO-Revision-Date: 2011-08-21 22:51+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"
@ -21,27 +21,47 @@ msgstr ""
msgid "Music"
msgstr "Μουσική"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Σαρωμένα τραγούγια"
#: templates/music.php:3
msgid "Play"
msgstr "Αναπαραγωγή"
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Επανασάρωση συλλογής"
#: templates/music.php:29
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr "Παύση"
#: templates/music.php:35
#: templates/music.php:5
msgid "Previous"
msgstr "Προηγούμενο"
#: templates/music.php:6
msgid "Next"
msgstr "Επόμενο"
#: templates/music.php:7
msgid "Mute"
msgstr "Σίγαση"
#: templates/music.php:8
msgid "Unmute"
msgstr "Επαναφορά ήχου"
#: templates/music.php:28
msgid "Songs scanned"
msgstr "Σαρωμένα τραγούγια"
#: templates/music.php:29
msgid "Rescan Collection"
msgstr "Επανασάρωση συλλογής"
#: templates/music.php:37
msgid "Artist"
msgstr "Καλλιτέχνης"
#: templates/music.php:36
#: templates/music.php:38
msgid "Album"
msgstr "Άλμπουμ"
#: templates/music.php:37
#: templates/music.php:39
msgid "Title"
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-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"POT-Creation-Date: 2011-08-28 01:13+0200\n"
"PO-Revision-Date: 2011-08-27 23:13+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"
@ -34,91 +34,101 @@ msgstr "Άκυρα αίτημα"
msgid "Language changed"
msgstr "Η γλώσσα άλλαξε"
#: templates/help.php:2
msgid "Problems connecting to help database."
#: templates/apps.php:8
msgid "Add your application"
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
#: templates/apps.php:21
msgid "Select an App"
msgstr "Επιλέξτε μια εφαρμογή"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "-licensed"
msgstr "-με άδεια"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "by"
msgstr "με"
#: templates/personal.php:2
#: templates/help.php:8
msgid "Ask a question"
msgstr "Κάντε μια ερώτηση"
#: templates/help.php:17
msgid "Problems connecting to help database."
msgstr "Προβλήματα κατά τη σύνδεση με τη βάση δεδομένων βοήθειας."
#: templates/help.php:18
msgid "Go there manually."
msgstr "Χειροκίνητη μετάβαση."
#: templates/help.php:26
msgid "Answer"
msgstr "Απάντηση"
#: templates/personal.php:8
msgid "You use"
msgstr "Χρησιμοποιείτε"
#: templates/personal.php:2
#: templates/personal.php:8
msgid "of the available"
msgstr "από τα διαθέσιμα"
#: templates/personal.php:7
#: templates/personal.php:13
msgid "Your password got changed"
msgstr "Ο κωδικός πρόσβασής σας άλαλαξε"
#: templates/personal.php:9
#: templates/personal.php:14
msgid "Unable to change your password"
msgstr ""
#: templates/personal.php:15
msgid "Current password"
msgstr "Τρέχοντα κωδικό πρόσβασης"
#: templates/personal.php:10
#: templates/personal.php:16
msgid "New password"
msgstr "Νέος κωδικός"
#: templates/personal.php:11
#: templates/personal.php:17
msgid "show"
msgstr "Εμφάνιση"
#: templates/personal.php:12
#: templates/personal.php:18
msgid "Change password"
msgstr "Αλλαγή κωδικού πρόσβασης"
#: templates/personal.php:18
#: templates/personal.php:24
msgid "Language"
msgstr "Γλώσσα"
#: templates/personal.php:24
#: templates/personal.php:30
msgid "Help translating"
msgstr "Βοηθήστε στη μετάφραση"
#: templates/personal.php:30
#: templates/personal.php:36
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
"χρησιμοποιήστε αυτή τη διεύθυνση για να συνδεθείτε στο ownCloud σας από το "
"διαχειριστή αρχείων σας"
#: templates/users.php:11
#: templates/users.php:16
msgid "Name"
msgstr "Όνομα"
#: templates/users.php:12
#: templates/users.php:17
msgid "Password"
msgstr "Κωδικός"
#: templates/users.php:13 templates/users.php:28
#: templates/users.php:18 templates/users.php:36
msgid "Groups"
msgstr "Ομάδες"
#: templates/users.php:18
#: templates/users.php:24
msgid "Create"
msgstr "Δημιουργία"
#: templates/users.php:40
#: templates/users.php:48
msgid "Delete"
msgstr "Διαγραφή"

View File

@ -8,9 +8,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-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-24 23:20+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"
@ -19,28 +19,28 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
msgid "Personal"
msgstr "Personal"
#: strings.php:6
msgid "Apps"
msgstr ""
msgid "Users"
msgstr "Usuarios"
#: strings.php:7
msgid "Help"
msgstr ""
msgid "Apps"
msgstr "Aplicaciones"
#: strings.php:8
msgid "Personal"
msgstr ""
msgid "Admin"
msgstr "Administrador"
#: templates/login.php:4
msgid "Login failed!"
msgstr "¡No se pudo iniciar sesión!"
#: strings.php:9
msgid "Help"
msgstr "Ayuda"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "recuérdame"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "No se encontró la nube"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
@ -93,30 +93,38 @@ msgstr "Directorio de almacenamiento"
#: templates/installation.php:83
msgid "Finish setup"
msgstr "Completar la instalación"
msgstr "Completar instalación"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "No se encontró la nube"
#: templates/layout.guest.php:38
#: templates/layout.guest.php:35
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
msgstr "te da la libertad del control de tus propios datos en internet"
#: templates/part.pagenavi.php:6
msgid "prev"
msgstr "anterior"
#: templates/layout.user.php:34
msgid "Log out"
msgstr "Salir"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "siguiente"
#: templates/layout.user.php:46 templates/layout.user.php:47
msgid "Settings"
msgstr "Ajustes"
#: 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 "recuérdame"
#: templates/logout.php:1
msgid "You are logged out."
msgstr "Has cerrado sesión."
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Ajustes"
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "anterior"
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "siguiente"

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 12:41+0200\n"
"PO-Revision-Date: 2011-08-13 21:47+0000\n"
"POT-Creation-Date: 2011-08-23 11:09+0200\n"
"PO-Revision-Date: 2011-08-21 22:27+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"
@ -21,27 +21,47 @@ msgstr ""
msgid "Music"
msgstr "Música"
#: templates/music.php:27
msgid "Songs scanned"
msgstr "Canciones encontradas"
#: templates/music.php:3
msgid "Play"
msgstr "Reproducir"
#: templates/music.php:28
msgid "Rescan Collection"
msgstr "Buscar música nueva"
#: templates/music.php:29
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr "Pausa"
#: templates/music.php:35
#: templates/music.php:5
msgid "Previous"
msgstr "Anterior"
#: templates/music.php:6
msgid "Next"
msgstr "Siguiente"
#: templates/music.php:7
msgid "Mute"
msgstr "Silenciar"
#: templates/music.php:8
msgid "Unmute"
msgstr "Sonar"
#: templates/music.php:28
msgid "Songs scanned"
msgstr "Canciones encontradas"
#: templates/music.php:29
msgid "Rescan Collection"
msgstr "Buscar música nueva"
#: templates/music.php:37
msgid "Artist"
msgstr "Artista"
#: templates/music.php:36
#: templates/music.php:38
msgid "Album"
msgstr "Álbum"
#: templates/music.php:37
#: templates/music.php:39
msgid "Title"
msgstr "Título"

View File

@ -8,9 +8,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-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-24 23:20+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"
@ -34,92 +34,97 @@ msgstr "Solicitud no válida"
msgid "Language changed"
msgstr "Idioma cambiado"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/apps.php:8
msgid "Add your application"
msgstr "Añadir tu aplicación"
#: 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
#: templates/apps.php:21
msgid "Select an App"
msgstr "Seleccionar una aplicación"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "-licensed"
msgstr "-autorizado"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "by"
msgstr "por"
#: templates/personal.php:2
#: templates/help.php:8
msgid "Ask a question"
msgstr "Hacer una pregunta"
#: templates/help.php:17
msgid "Problems connecting to help database."
msgstr "Problemas al conectar con la base de datos de ayuda."
#: templates/help.php:18
msgid "Go there manually."
msgstr "Ir manualmente"
#: templates/help.php:26
msgid "Answer"
msgstr "Respuesta"
#: templates/personal.php:8
msgid "You use"
msgstr ""
msgstr "Estás utilizando"
#: templates/personal.php:2
#: templates/personal.php:8
msgid "of the available"
msgstr ""
msgstr "del total disponible de"
#: templates/personal.php:7
#: templates/personal.php:13
msgid "Your password got changed"
msgstr "Tu contraseña ha sido cambiada"
#: templates/personal.php:9
#: templates/personal.php:15
msgid "Current password"
msgstr ""
msgstr "Contraseña actual"
#: templates/personal.php:10
#: templates/personal.php:16
msgid "New password"
msgstr "Nueva contraseña:"
#: templates/personal.php:11
#: templates/personal.php:17
msgid "show"
msgstr "mostrar"
#: templates/personal.php:12
msgid "Change password"
msgstr ""
#: templates/personal.php:18
msgid "Change password"
msgstr "Cambiar contraseña"
#: templates/personal.php:24
msgid "Language"
msgstr "Idioma"
#: templates/personal.php:24
msgid "Help translating"
msgstr ""
#: templates/personal.php:30
msgid "Help translating"
msgstr "Ayuda a traducir"
#: templates/personal.php:36
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
"usar esta dirección para conectar tu ownCloud en tu explorador de archivos"
#: templates/users.php:11
#: templates/users.php:16
msgid "Name"
msgstr "Nombre"
#: templates/users.php:12
#: templates/users.php:17
msgid "Password"
msgstr "Contraseña"
#: templates/users.php:13 templates/users.php:28
#: templates/users.php:18 templates/users.php:36
msgid "Groups"
msgstr "Grupos"
#: templates/users.php:18
#: templates/users.php:24
msgid "Create"
msgstr "Crear"
#: templates/users.php:40
#: templates/users.php:48
msgid "Delete"
msgstr ""
msgstr "Eliminar"

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-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-26 15:33+0000\n"
"Last-Translator: rom1dep <rom1dep@gmail.com>\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"
@ -18,28 +18,28 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: strings.php:5
msgid "Users"
msgstr ""
msgid "Personal"
msgstr "Personnel"
#: strings.php:6
msgid "Apps"
msgstr ""
msgid "Users"
msgstr "Utilisateurs"
#: strings.php:7
msgid "Help"
msgstr ""
msgid "Apps"
msgstr "Applications"
#: strings.php:8
msgid "Personal"
msgstr ""
msgid "Admin"
msgstr "Administration"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Échec de la connexion !"
#: strings.php:9
msgid "Help"
msgstr "Aide"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "se souvenir de moi"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "Introuvable"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
@ -94,28 +94,36 @@ msgstr "Répertoire des données"
msgid "Finish setup"
msgstr "Terminer l'installation"
#: templates/404.php:12
msgid "Cloud not found"
msgstr "Introuvable"
#: templates/layout.guest.php:38
#: templates/layout.guest.php:35
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"
msgstr "précédent"
#: templates/layout.user.php:34
msgid "Log out"
msgstr "Se déconnecter"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "suivant"
#: templates/layout.user.php:46 templates/layout.user.php:47
msgid "Settings"
msgstr "Paramètres"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Échec de la connexion !"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "se souvenir de moi"
#: templates/logout.php:1
msgid "You are logged out."
msgstr "Vous êtes désormais déconnecté."
#: templates/layout.user.php:49
msgid "Settings"
msgstr "Paramètres"
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "précédent"
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "suivant"

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:06+0000\n"
"Last-Translator: rom1dep <rom1dep@gmail.com>\n"
"POT-Creation-Date: 2011-08-20 05:08+0200\n"
"PO-Revision-Date: 2011-08-20 03: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"
@ -21,7 +21,31 @@ msgstr ""
msgid "Music"
msgstr "Musique"
#: templates/music.php:27
#: templates/music.php:3
msgid "Play"
msgstr ""
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr "Pause"
#: templates/music.php:5
msgid "Previous"
msgstr ""
#: templates/music.php:6
msgid "Next"
msgstr ""
#: templates/music.php:7
msgid "Mute"
msgstr ""
#: templates/music.php:8
msgid "Unmute"
msgstr ""
#: templates/music.php:28
msgid "Songs scanned"
msgstr "Pistes scannées"
@ -29,19 +53,15 @@ msgstr "Pistes scannées"
msgid "Rescan Collection"
msgstr "Réanalyser la Collection"
#: templates/music.php:30
msgid "Pause"
msgstr "Pause"
#: templates/music.php:34
#: templates/music.php:37
msgid "Artist"
msgstr "Artiste"
#: templates/music.php:35
#: templates/music.php:38
msgid "Album"
msgstr "Album"
#: templates/music.php:36
#: templates/music.php:39
msgid "Title"
msgstr "Titre"

View File

@ -8,9 +8,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-18 18:58+0200\n"
"PO-Revision-Date: 2011-08-18 16:59+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-26 15:34+0000\n"
"Last-Translator: rom1dep <rom1dep@gmail.com>\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"
@ -34,91 +34,97 @@ msgstr "Requète invalide"
msgid "Language changed"
msgstr "Langue changée"
#: templates/help.php:2
msgid "Problems connecting to help database."
msgstr ""
#: templates/apps.php:8
msgid "Add your application"
msgstr "Ajoutez votre application"
#: 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"
#: templates/apps.php:12
#: templates/apps.php:21
msgid "Select an App"
msgstr "Sélectionner une Application"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "-licensed"
msgstr "sous licence"
#: templates/apps.php:14
#: templates/apps.php:23
msgid "by"
msgstr "par"
#: templates/personal.php:2
#: templates/help.php:8
msgid "Ask a question"
msgstr "Poser une question"
#: templates/help.php:17
msgid "Problems connecting to help database."
msgstr "Problème de connexion à la base de données d'aide."
#: templates/help.php:18
msgid "Go there manually."
msgstr "S'y rendre manuellement."
#: templates/help.php:26
msgid "Answer"
msgstr "Réponse"
#: templates/personal.php:8
msgid "You use"
msgstr "Vous utilisez"
#: templates/personal.php:2
#: templates/personal.php:8
msgid "of the available"
msgstr "sur un total de"
#: templates/personal.php:7
#: templates/personal.php:13
msgid "Your password got changed"
msgstr "Votre mot de passe a été changé"
#: templates/personal.php:9
#: templates/personal.php:15
msgid "Current password"
msgstr "Mot de passe actuel"
#: templates/personal.php:10
#: templates/personal.php:16
msgid "New password"
msgstr "Nouveau mot de passe"
#: templates/personal.php:11
#: templates/personal.php:17
msgid "show"
msgstr "Afficher"
#: templates/personal.php:12
#: templates/personal.php:18
msgid "Change password"
msgstr "Changer de mot de passe"
#: templates/personal.php:18
#: templates/personal.php:24
msgid "Language"
msgstr "Langue"
#: templates/personal.php:24
#: templates/personal.php:30
msgid "Help translating"
msgstr "Aider à traduire"
#: templates/personal.php:30
#: templates/personal.php:36
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
"utilisez cette adresse pour vous connecter à votre ownCloud depuis votre "
"explorateur de fichiers"
#: templates/users.php:11
#: templates/users.php:16
msgid "Name"
msgstr "Nom"
#: templates/users.php:12
#: templates/users.php:17
msgid "Password"
msgstr "Mot de passe"
#: templates/users.php:13 templates/users.php:28
#: templates/users.php:18 templates/users.php:36
msgid "Groups"
msgstr "Groupes"
#: templates/users.php:18
#: templates/users.php:24
msgid "Create"
msgstr "Créer"
#: templates/users.php:40
#: templates/users.php:48
msgid "Delete"
msgstr "Supprimer"

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-18 21:07+0200\n"
"PO-Revision-Date: 2011-08-18 19:08+0000\n"
"Last-Translator: JanCBorchardt <JanCBorchardt@fsfe.org>\n"
"POT-Creation-Date: 2011-08-28 01:11+0200\n"
"PO-Revision-Date: 2011-08-27 17:17+0000\n"
"Last-Translator: radifar <m_radifar05@yahoo.com>\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"
@ -18,32 +18,32 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0\n"
#: strings.php:5
msgid "Users"
msgstr ""
msgid "Personal"
msgstr "Pribadi"
#: strings.php:6
msgid "Apps"
msgstr ""
msgid "Users"
msgstr "Pengguna"
#: strings.php:7
msgid "Help"
msgstr ""
msgid "Apps"
msgstr "Aplikasi"
#: strings.php:8
msgid "Personal"
msgstr ""
msgid "Admin"
msgstr "Admin"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Gagal masuk!"
#: strings.php:9
msgid "Help"
msgstr "Bantuan"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr ""
#: templates/404.php:12
msgid "Cloud not found"
msgstr "Cloud tidak ditemukan"
#: templates/installation.php:20
msgid "Create an <strong>admin account</strong>"
msgstr ""
msgstr "Buat sebuah <strong>akun admin</strong>"
#: templates/installation.php:21
msgid "Username"
@ -55,24 +55,24 @@ msgstr "Password"
#: templates/installation.php:27
msgid "Configure the database"
msgstr ""
msgstr "Konfigurasi database"
#: templates/installation.php:32 templates/installation.php:43
#: templates/installation.php:53
msgid "will be used"
msgstr ""
msgstr "akan digunakan"
#: templates/installation.php:64
msgid "Database user"
msgstr ""
msgstr "Pengguna database"
#: templates/installation.php:65
msgid "Database password"
msgstr ""
msgstr "Password database"
#: templates/installation.php:66
msgid "Database name"
msgstr ""
msgstr "Nama database"
#: templates/installation.php:74
msgid "Advanced"
@ -80,42 +80,50 @@ msgstr "Tingkat Lanjut"
#: templates/installation.php:77
msgid "Host"
msgstr ""
msgstr "Host"
#: templates/installation.php:78
msgid "Table prefix"
msgstr ""
msgstr "Awalan tabel"
#: templates/installation.php:80
msgid "Data folder"
msgstr ""
msgstr "Folder data"
#: templates/installation.php:83
msgid "Finish setup"
msgstr "Selesaikan instalasi"
#: templates/404.php:12
msgid "Cloud not found"
msgstr ""
#: templates/layout.guest.php:38
#: templates/layout.guest.php:35
msgid "gives you the freedom to control your own data on the internet"
msgstr ""
msgstr "memberikan anda kebebasan dalam mengendalikan data anda di internet"
#: templates/part.pagenavi.php:6
msgid "prev"
msgstr "sebelum"
#: templates/layout.user.php:34
msgid "Log out"
msgstr "Keluar"
#: templates/part.pagenavi.php:26
msgid "next"
msgstr "selanjutnya"
#: templates/layout.user.php:46 templates/layout.user.php:47
msgid "Settings"
msgstr "Setelan"
#: templates/login.php:4
msgid "Login failed!"
msgstr "Gagal masuk!"
#: templates/login.php:9 templates/login.php:13
msgid "remember"
msgstr "selalu login"
#: templates/logout.php:1
msgid "You are logged out."
msgstr "Anda telah keluar."
#: templates/layout.user.php:49
msgid "Settings"
msgstr ""
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr "sebelum"
#: templates/part.pagenavi.php:20
msgid "next"
msgstr "selanjutnya"

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.
#
# 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-13 12:41+0200\n"
"PO-Revision-Date: 2011-08-18 08:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-08-20 05:08+0200\n"
"PO-Revision-Date: 2011-08-20 03: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"
@ -18,30 +19,50 @@ msgstr ""
#: appinfo/app.php:31
msgid "Music"
msgstr "Musik"
#: templates/music.php:3
msgid "Play"
msgstr ""
#: templates/music.php:27
msgid "Songs scanned"
#: templates/music.php:4 templates/music.php:30
msgid "Pause"
msgstr "Jeda"
#: templates/music.php:5
msgid "Previous"
msgstr ""
#: templates/music.php:6
msgid "Next"
msgstr ""
#: templates/music.php:7
msgid "Mute"
msgstr ""
#: templates/music.php:8
msgid "Unmute"
msgstr ""
#: templates/music.php:28
msgid "Rescan Collection"
msgstr ""
msgid "Songs scanned"
msgstr "Lagu-lagu yang telah dipindai"
#: templates/music.php:29
msgid "Pause"
msgstr ""
#: templates/music.php:35
msgid "Artist"
msgstr ""
#: templates/music.php:36
msgid "Album"
msgstr ""
msgid "Rescan Collection"
msgstr "Pindai ulang Koleksi"
#: templates/music.php:37
msgid "Artist"
msgstr "Artis"
#: templates/music.php:38
msgid "Album"
msgstr "Album"
#: templates/music.php:39
msgid "Title"
msgstr ""
msgstr "Judul"

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