Merge branch 'master' into trashbin_encryption

This commit is contained in:
Björn Schießle 2013-02-21 00:05:30 +01:00
commit 6aed7abfbe
59 changed files with 357 additions and 241 deletions

View file

@ -48,7 +48,7 @@ $totalSize = 0;
foreach ($files['size'] as $size) {
$totalSize += $size;
}
if ($totalSize > \OC\Files\Filesystem::free_space($dir)) {
if ($totalSize > $maxUploadFilesize) {
OCP\JSON::error(array('data' => array('message' => $l->t('Not enough storage available'),
'uploadMaxFilesize' => $maxUploadFilesize,
'maxHumanFilesize' => $maxHumanFilesize)));

View file

@ -315,8 +315,8 @@ var FileList={
do_delete:function(files){
if(files.substr){
files=[files];
}
for (var i in files) {
}
for (var i=0; i<files.length; i++) {
var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date").children(".action.delete");
var oldHTML = deleteAction[0].outerHTML;
var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'perform delete operation')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';

View file

@ -162,9 +162,10 @@ $(document).ready(function() {
var tr=$('tr').filterAttr('data-file',filename);
var renaming=tr.data('renaming');
if(!renaming && !FileList.isLoading(filename)){
var mime=$(this).parent().parent().data('mime');
var type=$(this).parent().parent().data('type');
var permissions = $(this).parent().parent().data('permissions');
FileActions.currentFile = $(this).parent();
var mime=FileActions.getCurrentMimeType();
var type=FileActions.getCurrentType();
var permissions = FileActions.getCurrentPermissions();
var action=FileActions.getDefault(mime,type, permissions);
if(action){
event.preventDefault();

View file

@ -60,6 +60,7 @@
"Text file" => "Tekstbestand",
"Folder" => "Map",
"From link" => "Vanaf link",
"Deleted files" => "Verwijderde bestanden",
"Cancel upload" => "Upload afbreken",
"Nothing in here. Upload something!" => "Er bevindt zich hier niets. Upload een bestand!",
"Download" => "Download",

View file

@ -10,6 +10,7 @@
"No file was uploaded" => "Nie przesłano żadnego pliku",
"Missing a temporary folder" => "Brak katalogu tymczasowego",
"Failed to write to disk" => "Błąd zapisu na dysk",
"Not enough storage available" => "Za mało miejsca",
"Invalid directory." => "Zła ścieżka.",
"Files" => "Pliki",
"Delete" => "Usuwa element",
@ -54,6 +55,7 @@
"Text file" => "Plik tekstowy",
"Folder" => "Katalog",
"From link" => "Z linku",
"Deleted files" => "Pliki usnięte",
"Cancel upload" => "Przestań wysyłać",
"Nothing in here. Upload something!" => "Brak zawartości. Proszę wysłać pliki!",
"Download" => "Pobiera element",

View file

@ -229,11 +229,6 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return false;
}
public function free_space($path) {
// Infinite?
return false;
}
public function touch($path, $mtime = null) {
if (is_null($mtime)) {
$mtime = time();

View file

@ -242,10 +242,6 @@ class SFTP extends \OC\Files\Storage\Common {
}
}
public function free_space($path) {
return -1;
}
public function touch($path, $mtime=null) {
try {
if (!is_null($mtime)) return false;

View file

@ -76,10 +76,6 @@ abstract class StreamWrapper extends \OC\Files\Storage\Common{
return fopen($this->constructUrl($path), $mode);
}
public function free_space($path) {
return 0;
}
public function touch($path, $mtime=null) {
$this->init();
if(is_null($mtime)) {

View file

@ -478,10 +478,6 @@ class SWIFT extends \OC\Files\Storage\Common{
}
}
public function free_space($path) {
return 1024*1024*1024*8;
}
public function touch($path, $mtime=null) {
$this->init();
$obj=$this->getObject($path);

View file

@ -222,7 +222,7 @@ class DAV extends \OC\Files\Storage\Common{
return 0;
}
} catch(\Exception $e) {
return 0;
return \OC\Files\FREE_SPACE_UNKNOWN;
}
}

View file

@ -3,24 +3,43 @@
OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
$file = $_REQUEST['file'];
$files = $_POST['files'];
$dirlisting = $_POST['dirlisting'];
$list = json_decode($files);
$path_parts = pathinfo($file);
if ($path_parts['dirname'] == '.') {
$delimiter = strrpos($file, '.d');
$filename = substr($file, 0, $delimiter);
$timestamp = substr($file, $delimiter+2);
} else {
$filename = $file;
$timestamp = null;
$error = array();
$success = array();
$i = 0;
foreach ($list as $file) {
if ( $dirlisting=='0') {
$delimiter = strrpos($file, '.d');
$filename = substr($file, 0, $delimiter);
$timestamp = substr($file, $delimiter+2);
} else {
$filename = $file;
$timestamp = null;
}
OCA\Files_Trashbin\Trashbin::delete($filename, $timestamp);
if (!OCA\Files_Trashbin\Trashbin::file_exists($filename, $timestamp)) {
$success[$i]['filename'] = $file;
$success[$i]['timestamp'] = $timestamp;
$i++;
} else {
$error[] = $filename;
}
}
OCA\Files_Trashbin\Trashbin::delete($filename, $timestamp);
if (!OCA\Files_Trashbin\Trashbin::file_exists($filename)) {
OCP\JSON::success(array("data" => array("filename" => $file)));
} else {
if ( $error ) {
$filelist = '';
foreach ( $error as $e ) {
$filelist .= $e.', ';
}
$l = OC_L10N::get('files_trashbin');
OCP\JSON::error(array("data" => array("message" => $l->t("Couldn't delete %s permanently", array($file)))));
$message = $l->t("Couldn't delete %s permanently", array(rtrim($filelist, ', ')));
OCP\JSON::error(array("data" => array("message" => $message,
"success" => $success, "error" => $error)));
} else {
OCP\JSON::success(array("data" => array("success" => $success)));
}

View file

@ -3,9 +3,9 @@
OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
$files = $_REQUEST['files'];
$dirlisting = $_REQUEST['dirlisting'];
$list = explode(';', $files);
$files = $_POST['files'];
$dirlisting = $_POST['dirlisting'];
$list = json_decode($files);
$error = array();
$success = array();

View file

@ -16,6 +16,7 @@ OCP\Util::addScript('files', 'filelist');
$dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : '';
$result = array();
if ($dir) {
$dirlisting = true;
$fullpath = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath($dir);
@ -36,7 +37,7 @@ if ($dir) {
);
}
}
closedir($fullpath);
closedir($dirContent);
} else {
$dirlisting = false;

View file

@ -6,9 +6,10 @@ $(document).ready(function() {
var tr=$('tr').filterAttr('data-file', filename);
var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'perform restore operation')+'" src="'+ OC.imagePath('core', 'loader.gif') +'"></a>';
var undeleteAction = $('tr').filterAttr('data-file',filename).children("td.date");
var files = tr.attr('data-file');
undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner;
$.post(OC.filePath('files_trashbin','ajax','undelete.php'),
{files:tr.attr('data-file'), dirlisting:tr.attr('data-dirlisting') },
{files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') },
function(result){
for (var i = 0; i < result.data.success.length; i++) {
var row = document.getElementById(result.data.success[i].filename);
@ -31,16 +32,17 @@ $(document).ready(function() {
var deleteAction = $('tr').filterAttr('data-file',filename).children("td.date").children(".action.delete");
var oldHTML = deleteAction[0].outerHTML;
var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'delete file permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
var files = tr.attr('data-file');
deleteAction[0].outerHTML = newHTML;
$.post(OC.filePath('files_trashbin','ajax','delete.php'),
{file:tr.attr('data-file') },
{files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') },
function(result){
if ( result.status == 'success' ) {
var row = document.getElementById(result.data.filename);
for (var i = 0; i < result.data.success.length; i++) {
var row = document.getElementById(result.data.success[i].filename);
row.parentNode.removeChild(row);
} else {
deleteAction[0].outerHTML = oldHTML;
}
if (result.status != 'success') {
OC.dialogs.alert(result.data.message, 'Error');
}
});
@ -88,15 +90,15 @@ $(document).ready(function() {
}
}
processSelection();
});
});
$('.undelete').click('click',function(event) {
var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'perform restore operation')+'" src="'+ OC.imagePath('core', 'loader.gif') +'"></a>';
var files=getSelectedFiles('file');
var fileslist=files.join(';');
var fileslist = JSON.stringify(files);
var dirlisting=getSelectedFiles('dirlisting')[0];
for (var i in files) {
for (var i=0; i<files.length; i++) {
var undeleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date");
undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner;
}
@ -111,9 +113,33 @@ $(document).ready(function() {
if (result.status != 'success') {
OC.dialogs.alert(result.data.message, 'Error');
}
});
});
});
$('.delete').click('click',function(event) {
console.log("delete selected");
var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'Delete permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
var files=getSelectedFiles('file');
var fileslist = JSON.stringify(files);
var dirlisting=getSelectedFiles('dirlisting')[0];
for (var i=0; i<files.length; i++) {
var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date");
deleteAction[0].innerHTML = deleteAction[0].innerHTML+spinner;
}
$.post(OC.filePath('files_trashbin','ajax','delete.php'),
{files:fileslist, dirlisting:dirlisting},
function(result){
for (var i = 0; i < result.data.success.length; i++) {
var row = document.getElementById(result.data.success[i].filename);
row.parentNode.removeChild(row);
}
if (result.status != 'success') {
OC.dialogs.alert(result.data.message, 'Error');
}
});
});
});

View file

@ -1,7 +1,14 @@
<?php $TRANSLATIONS = array(
"Couldn't delete %s permanently" => "Неможливо видалити %s назавжди",
"Couldn't restore %s" => "Неможливо відновити %s",
"perform restore operation" => "виконати операцію відновлення",
"delete file permanently" => "видалити файл назавжди",
"Name" => "Ім'я",
"Deleted" => "Видалено",
"1 folder" => "1 папка",
"{count} folders" => "{count} папок",
"1 file" => "1 файл",
"{count} files" => "{count} файлів"
"{count} files" => "{count} файлів",
"Nothing in here. Your trash bin is empty!" => "Нічого немає. Ваший кошик для сміття пустий!",
"Restore" => "Відновити"
);

View file

@ -25,6 +25,13 @@
</th>
<th id="headerDate">
<span id="modified"><?php echo $l->t( 'Deleted' ); ?></span>
<span class="selectedActions">
<a href="" class="delete">
<?php echo $l->t('Delete')?>
<img class="svg" alt="<?php echo $l->t('Delete')?>"
src="<?php echo OCP\image_path("core", "actions/delete.svg"); ?>" />
</a>
</span>
</th>
</tr>
</thead>

View file

@ -1,12 +1,8 @@
<input type="hidden" id="disableSharing" data-status="<?php echo $_['disableSharing']; ?>">
<?php foreach($_['files'] as $file):
$simple_file_size = OCP\simple_file_size($file['size']);
// the bigger the file, the darker the shade of grey; megabytes*2
$simple_size_color = intval(200-$file['size']/(1024*1024)*2);
if($simple_size_color<0) $simple_size_color = 0;
$relative_deleted_date = OCP\relative_modified_date($file['timestamp']);
// the older the file, the brighter the shade of grey; days*14
$relative_date_color = round((time()-$file['mtime'])/60/60/24*14);
$relative_date_color = round((time()-$file['date'])/60/60/24*14);
if($relative_date_color>200) $relative_date_color = 200;
$name = str_replace('+', '%20', urlencode($file['name']));
$name = str_replace('%2F', '/', $name);

View file

@ -11,5 +11,5 @@ OCP\Util::addscript('files_versions', 'versions');
// Listen to write signals
OCP\Util::connectHook('OC_Filesystem', 'write', "OCA\Files_Versions\Hooks", "write_hook");
// Listen to delete and rename signals
OCP\Util::connectHook('OC_Filesystem', 'post-delete', "OCA\Files_Versions\Hooks", "remove_hook");
OCP\Util::connectHook('OC_Filesystem', 'post_delete', "OCA\Files_Versions\Hooks", "remove_hook");
OCP\Util::connectHook('OC_Filesystem', 'rename', "OCA\Files_Versions\Hooks", "rename_hook");

View file

@ -41,6 +41,10 @@ $(document).ready(function(){
}
});
function goToVersionPage(url){
window.location(url);
}
function createVersionsDropdown(filename, files) {
var historyUrl = OC.linkTo('files_versions', 'history.php') + '?path='+encodeURIComponent( $( '#dir' ).val() ).replace( /%2F/g, '/' )+'/'+encodeURIComponent( filename );
@ -51,7 +55,7 @@ function createVersionsDropdown(filename, files) {
html += '<option value=""></option>';
html += '</select>';
html += '</div>';
html += '<input type="button" value="All versions..." onclick="window.location=\''+historyUrl+'\'" name="makelink" id="makelink" />';
html += '<input type="button" value="All versions..." name="makelink" id="makelink" />';
html += '<input id="link" style="display:none; width:90%;" />';
if (filename) {
@ -60,6 +64,10 @@ function createVersionsDropdown(filename, files) {
} else {
$(html).appendTo($('thead .share'));
}
$("#makelink").click(function() {
goToVersionPage(historyUrl);
});
$.ajax({
type: 'GET',

View file

@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
"Could not revert: %s" => "Не вдалося відновити: %s",
"success" => "успішно",
"File %s was reverted to version %s" => "Файл %s був відновлений до версії %s",
"failure" => "неуспішно",
"File %s could not be reverted to version %s" => "Файл %s не може бути відновлений до версії %s",
"No old versions available" => "Старі версії недоступні",
"No path specified" => "Шлях не вказаний",
"History" => "Історія",
"Revert a file to a previous version by clicking on its revert button" => "Відновити файл на попередню версію, натиснувши на кнопку Відновити",
"Files Versioning" => "Версії файлів",
"Enable" => "Включити"
);

View file

@ -20,13 +20,10 @@ class Hooks {
public static function write_hook( $params ) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
$versions = new Storage( new \OC\Files\View('') );
$path = $params[\OC\Files\Filesystem::signal_param_path];
if($path<>'') $versions->store( $path );
if($path<>'') {
Storage::store($path);
}
}
}
@ -40,12 +37,10 @@ class Hooks {
*/
public static function remove_hook($params) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
$versions = new Storage( new \OC_FilesystemView('') );
$path = $params[\OC\Files\Filesystem::signal_param_path];
if($path<>'') $versions->delete( $path );
if($path<>'') {
Storage::delete($path);
}
}
}
@ -59,13 +54,11 @@ class Hooks {
*/
public static function rename_hook($params) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
$versions = new Storage( new \OC_FilesystemView('') );
$oldpath = $params['oldpath'];
$newpath = $params['newpath'];
if($oldpath<>'' && $newpath<>'') $versions->rename( $oldpath, $newpath );
if($oldpath<>'' && $newpath<>'') {
Storage::rename( $oldpath, $newpath );
}
}
}

View file

@ -35,37 +35,25 @@ class Storage {
'step' => 604800),
);
private static function getUidAndFilename($filename)
{
if (\OCP\App::isEnabled('files_sharing')
&& substr($filename, 0, 7) == '/Shared'
&& $source = \OCP\Share::getItemSharedWith('file',
substr($filename, 7),
\OC_Share_Backend_File::FORMAT_SHARED_STORAGE)) {
$filename = $source['path'];
$pos = strpos($filename, '/files', 1);
$uid = substr($filename, 1, $pos - 1);
$filename = substr($filename, $pos + 6);
} else {
$uid = \OCP\User::getUser();
private static function getUidAndFilename($filename) {
$uid = \OC\Files\Filesystem::getOwner($filename);
if ( $uid != \OCP\User::getUser() ) {
$info = \OC\Files\Filesystem::getFileInfo($filename);
$ownerView = new \OC\Files\View('/'.$uid.'/files');
$filename = $ownerView->getPath($info['fileid']);
}
return array($uid, $filename);
}
/**
* store a new version of a file.
*/
public function store($filename) {
public static function store($filename) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
list($uid, $filename) = self::getUidAndFilename($filename);
$files_view = new \OC\Files\View('/'.\OCP\User::getUser() .'/files');
$users_view = new \OC\Files\View('/'.\OCP\User::getUser());
//check if source file already exist as version to avoid recursions.
// todo does this check work?
if ($users_view->file_exists($filename)) {
return false;
}
$files_view = new \OC\Files\View('/'.$uid .'/files');
$users_view = new \OC\Files\View('/'.$uid);
// check if filename is a directory
if($files_view->is_dir($filename)) {
@ -106,10 +94,10 @@ class Storage {
*/
public static function delete($filename) {
list($uid, $filename) = self::getUidAndFilename($filename);
$versions_fileview = new \OC_FilesystemView('/'.$uid .'/files_versions');
$versions_fileview = new \OC\Files\View('/'.$uid .'/files_versions');
$abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$filename.'.v';
if( ($versions = self::getVersions($filename)) ) {
if( ($versions = self::getVersions($uid, $filename)) ) {
if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) {
$versionsSize = self::calculateSize($uid);
}
@ -127,16 +115,15 @@ class Storage {
public static function rename($oldpath, $newpath) {
list($uid, $oldpath) = self::getUidAndFilename($oldpath);
list($uidn, $newpath) = self::getUidAndFilename($newpath);
$versions_view = new \OC_FilesystemView('/'.$uid .'/files_versions');
$files_view = new \OC_FilesystemView('/'.$uid .'/files');
$versions_view = new \OC\Files\View('/'.$uid .'/files_versions');
$files_view = new \OC\Files\View('/'.$uid .'/files');
$abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_view->getAbsolutePath('').$newpath;
if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) {
$versions_view->rename($oldpath, $newpath);
} else if ( ($versions = Storage::getVersions($oldpath)) ) {
} else if ( ($versions = Storage::getVersions($uid, $oldpath)) ) {
$info=pathinfo($abs_newpath);
if(!file_exists($info['dirname'])) mkdir($info['dirname'], 0750, true);
$versions = Storage::getVersions($oldpath);
foreach ($versions as $v) {
$versions_view->rename($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']);
}
@ -177,14 +164,14 @@ class Storage {
/**
* @brief get a list of all available versions of a file in descending chronological order
* @param $uid user id from the owner of the file
* @param $filename file to find versions of, relative to the user files dir
* @param $count number of versions to return
* @returns array
*/
public static function getVersions( $filename, $count = 0 ) {
public static function getVersions($uid, $filename, $count = 0 ) {
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
list($uid, $filename) = self::getUidAndFilename($filename);
$versions_fileview = new \OC\Files\View('/' . \OCP\User::getUser() . '/files_versions');
$versions_fileview = new \OC\Files\View('/' . $uid . '/files_versions');
$versionsName = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
$versions = array();
@ -197,7 +184,7 @@ class Storage {
sort( $matches );
$files_view = new \OC_FilesystemView('/'.$uid.'/files');
$files_view = new \OC\Files\View('/'.$uid.'/files');
$local_file = $files_view->getLocalFile($filename);
$local_file_md5 = \md5_file( $local_file );
@ -248,7 +235,7 @@ class Storage {
*/
private static function calculateSize($uid) {
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
$versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
$versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
$versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST);
@ -273,7 +260,7 @@ class Storage {
*/
private static function getAllVersions($uid) {
if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
$versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
$versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
$versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST);
@ -319,7 +306,7 @@ class Storage {
private static function expire($filename, $versionsSize = null) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
list($uid, $filename) = self::getUidAndFilename($filename);
$versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
$versions_fileview = new \OC\Files\View('/'.$uid.'/files_versions');
// get available disk space for user
$quota = \OCP\Util::computerFileSize(\OC_Preferences::getValue($uid, 'files', 'quota'));
@ -338,7 +325,7 @@ class Storage {
}
// calculate available space for version history
$files_view = new \OC_FilesystemView('/'.$uid.'/files');
$files_view = new \OC\Files\View('/'.$uid.'/files');
$rootInfo = $files_view->getFileInfo('/');
$free = $quota-$rootInfo['size']; // remaining free space for user
if ( $free > 0 ) {
@ -354,7 +341,7 @@ class Storage {
$versions_by_file = $result['by_file'];
$all_versions = $result['all'];
} else {
$all_versions = Storage::getVersions($filename);
$all_versions = Storage::getVersions($uid, $filename);
$versions_by_file[$filename] = $all_versions;
}

View file

@ -258,8 +258,8 @@ fieldset.warning a { color:#b94a48 !important; font-weight:bold; }
#expand:hover img, #expand:focus img, #expand:active img { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; }
#expanddiv {
position:absolute; right:0; top:45px; z-index:76; display:none;
background-color:#444; border-bottom-left-radius:7px; box-shadow: 0 0 20px rgb(29,45,68);
background:#383c43 url('../img/noise.png') repeat; border-bottom:1px #333 solid; border-left:border-bottom:1px #333 solid;
background:#383c43 url('../img/noise.png') repeat;
border-bottom-left-radius:7px; border-bottom:1px #333 solid; border-left:1px #333 solid;
-moz-box-shadow:0 0 7px rgb(29,45,68); -webkit-box-shadow:0 0 7px rgb(29,45,68); box-shadow:0 0 7px rgb(29,45,68);
}
#expanddiv a {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 B

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 B

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 B

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 588 B

View file

@ -266,8 +266,9 @@
}
list.append(list.find('li.creator'));
var pos=button.position();
if($(document).height() > (button.offset().top+button.outerHeight() + list.children().length * button.height())
|| $(document).height()/2 > pos.top
if(($(document).height() > (button.offset().top+button.outerHeight() + list.children().length * button.height())
&& $(document).height() - button.offset().top > (button.offset().top+button.outerHeight() + list.children().length * button.height()))
|| $(document).height()/2 > button.offset().top
) {
list.css({
top:pos.top+button.outerHeight()-5,

View file

@ -44,7 +44,11 @@ class OC_Core_LostPassword_Controller {
$msg = $tmpl->fetchPage();
$l = OC_L10N::get('core');
$from = OCP\Util::getDefaultEmailAddress('lostpassword-noreply');
OC_Mail::send($email, $_POST['user'], $l->t('ownCloud password reset'), $msg, $from, 'ownCloud');
try {
OC_Mail::send($email, $_POST['user'], $l->t('ownCloud password reset'), $msg, $from, 'ownCloud');
} catch (Exception $e) {
OC_Template::printErrorPage( 'A problem occurs during sending the e-mail please contact your administrator.');
}
self::displayLostPasswordPage(false, true);
} else {
self::displayLostPasswordPage(true, false);

View file

@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-18 00:05+0100\n"
"PO-Revision-Date: 2013-02-17 12:30+0000\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 22:10+0000\n"
"Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
@ -164,7 +164,7 @@ msgstr "προσθήκη ομάδας"
#: js/users.js:352
msgid "A valid username must be provided"
msgstr ""
msgstr "Πρέπει να δοθεί έγκυρο όνομα χρήστη"
#: js/users.js:353 js/users.js:359 js/users.js:374
msgid "Error creating user"
@ -172,7 +172,7 @@ msgstr "Σφάλμα δημιουργίας χρήστη"
#: js/users.js:358
msgid "A valid password must be provided"
msgstr ""
msgstr "Πρέπει να δοθεί έγκυρο συνθηματικό"
#: personal.php:29 personal.php:30
msgid "__language_name__"

View file

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-16 00:04+0100\n"
"PO-Revision-Date: 2013-02-15 15:00+0000\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 12:10+0000\n"
"Last-Translator: mbouzada <mbouzada@gmail.com>\n"
"Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
"MIME-Version: 1.0\n"

View file

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-16 00:04+0100\n"
"PO-Revision-Date: 2013-02-15 14:31+0000\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 12:10+0000\n"
"Last-Translator: mbouzada <mbouzada@gmail.com>\n"
"Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
"MIME-Version: 1.0\n"

View file

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-16 00:04+0100\n"
"PO-Revision-Date: 2013-02-15 15:40+0000\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 12:10+0000\n"
"Last-Translator: mbouzada <mbouzada@gmail.com>\n"
"Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
"MIME-Version: 1.0\n"

View file

@ -19,9 +19,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-15 00:04+0100\n"
"PO-Revision-Date: 2013-02-14 23:05+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 21:50+0000\n"
"Last-Translator: André Koot <meneer@tken.net>\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -286,7 +286,7 @@ msgstr "Vanaf link"
#: templates/index.php:40
msgid "Deleted files"
msgstr ""
msgstr "Verwijderde bestanden"
#: templates/index.php:46
msgid "Cancel upload"

View file

@ -7,6 +7,7 @@
# Cyryl Sochacki <>, 2012.
# Cyryl Sochacki <cyrylsochacki@gmail.com>, 2012-2013.
# Marcin Małecki <gerber@tkdami.net>, 2011-2012.
# Mariusz <fisiu@opensuse.org>, 2013.
# <mosslar@gmail.com>, 2011.
# <mplichta@gmail.com>, 2012.
# Piotr Sokół <psokol@jabster.pl>, 2012.
@ -15,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-15 00:04+0100\n"
"PO-Revision-Date: 2013-02-14 23:05+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 15:50+0000\n"
"Last-Translator: Mariusz Fik <fisiu@opensuse.org>\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -76,7 +77,7 @@ msgstr "Błąd zapisu na dysk"
#: ajax/upload.php:52
msgid "Not enough storage available"
msgstr ""
msgstr "Za mało miejsca"
#: ajax/upload.php:83
msgid "Invalid directory."
@ -282,7 +283,7 @@ msgstr "Z linku"
#: templates/index.php:40
msgid "Deleted files"
msgstr ""
msgstr "Pliki usnięte"
#: templates/index.php:46
msgid "Cancel upload"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: ajax/delete.php:22
#: ajax/delete.php:24
#, php-format
msgid "Couldn't delete %s permanently"
msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View file

@ -3,7 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Aranel Surion <aranel@aranelsurion.org>, 2011, 2012.
# Aranel Surion <aranel@aranelsurion.org>, 2011-2013.
# Emre <emresaracoglu@live.com>, 2012.
# <info@beyboo.de>, 2012.
# Necdet Yücel <necdetyucel@gmail.com>, 2012.
@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"PO-Revision-Date: 2013-02-18 19:50+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-18 23:30+0000\n"
"Last-Translator: Aranel Surion <aranel@aranelsurion.org>\n"
"Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -32,7 +32,7 @@ msgstr "Eşleşme hata"
#: ajax/changedisplayname.php:32
msgid "Unable to change display name"
msgstr ""
msgstr "Ekran adı değiştirilemiyor"
#: ajax/creategroup.php:10
msgid "Group already exists"
@ -72,7 +72,7 @@ msgstr "Geçersiz istek"
#: ajax/togglegroups.php:12
msgid "Admins can't remove themself from the admin group"
msgstr ""
msgstr "Yöneticiler kendilerini yönetici grubundan kaldıramaz"
#: ajax/togglegroups.php:28
#, php-format
@ -82,15 +82,15 @@ msgstr "Kullanıcı %s grubuna eklenemiyor"
#: ajax/togglegroups.php:34
#, php-format
msgid "Unable to remove user from group %s"
msgstr ""
msgstr "%s grubundan kullanıcı kaldırılamıyor"
#: ajax/updateapp.php:14
msgid "Couldn't update app."
msgstr ""
msgstr "Uygulama güncellenemedi."
#: js/apps.js:30
msgid "Update to {appversion}"
msgstr ""
msgstr "{appversion} Güncelle"
#: js/apps.js:36 js/apps.js:76
msgid "Disable"
@ -102,15 +102,15 @@ msgstr "Etkin"
#: js/apps.js:55
msgid "Please wait...."
msgstr ""
msgstr "Lütfen bekleyin...."
#: js/apps.js:84
msgid "Updating...."
msgstr ""
msgstr "Güncelleniyor...."
#: js/apps.js:87
msgid "Error while updating app"
msgstr ""
msgstr "Uygulama güncellenirken hata"
#: js/apps.js:87
msgid "Error"
@ -118,7 +118,7 @@ msgstr "Hata"
#: js/apps.js:90
msgid "Updated"
msgstr ""
msgstr "Güncellendi"
#: js/personal.js:96
msgid "Saving..."
@ -134,7 +134,7 @@ msgstr "geri al"
#: js/users.js:62
msgid "Unable to remove user"
msgstr ""
msgstr "Kullanıcı kaldırılamıyor"
#: js/users.js:75 templates/users.php:26 templates/users.php:80
#: templates/users.php:105
@ -151,19 +151,19 @@ msgstr "Sil"
#: js/users.js:191
msgid "add group"
msgstr ""
msgstr "grup ekle"
#: js/users.js:352
msgid "A valid username must be provided"
msgstr ""
msgstr "Geçerli bir kullanıcı adı mutlaka sağlanmalı"
#: js/users.js:353 js/users.js:359 js/users.js:374
msgid "Error creating user"
msgstr ""
msgstr "Kullanıcı oluşturulurken hata"
#: js/users.js:358
msgid "A valid password must be provided"
msgstr ""
msgstr "Geçerli bir parola mutlaka sağlanmalı"
#: personal.php:29 personal.php:30
msgid "__language_name__"
@ -184,7 +184,7 @@ msgstr "data dizininiz ve dosyalarınız büyük ihtimalle internet üzerinden e
#: templates/admin.php:29
msgid "Setup Warning"
msgstr ""
msgstr "Kurulum Uyarısı"
#: templates/admin.php:32
msgid ""
@ -199,7 +199,7 @@ msgstr ""
#: templates/admin.php:44
msgid "Module 'fileinfo' missing"
msgstr ""
msgstr "Modül 'fileinfo' kayıp"
#: templates/admin.php:47
msgid ""
@ -352,7 +352,7 @@ msgstr "Uygulamanın sayfasına apps.owncloud.com adresinden bakın "
#: templates/apps.php:29
msgid "<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>"
msgstr ""
msgstr "<span class=\"licence\"></span>-lisanslayan <span class=\"author\"></span>"
#: templates/apps.php:31
msgid "Update"
@ -393,7 +393,7 @@ msgstr "Dosyalarınızı senkronize etmek için uygulamayı indirin"
#: templates/personal.php:25
msgid "Show First Run Wizard again"
msgstr ""
msgstr "İlk Çalıştırma Sihirbazını yeniden göster"
#: templates/personal.php:36 templates/users.php:23 templates/users.php:79
msgid "Password"
@ -421,19 +421,19 @@ msgstr "Parola değiştir"
#: templates/personal.php:54 templates/users.php:78
msgid "Display Name"
msgstr ""
msgstr "Ekran Adı"
#: templates/personal.php:55
msgid "Your display name was changed"
msgstr ""
msgstr "Ekran adınız değiştirildi"
#: templates/personal.php:56
msgid "Unable to change your display name"
msgstr ""
msgstr "Ekran adınız değiştirilemiyor"
#: templates/personal.php:59
msgid "Change display name"
msgstr ""
msgstr "Ekran adını değiştir"
#: templates/personal.php:68
msgid "Email"
@ -461,11 +461,11 @@ msgstr "WebDAV"
#: templates/personal.php:89
msgid "Use this address to connect to your ownCloud in your file manager"
msgstr ""
msgstr "Bu adresi kullanarak ownCloud 'unuza dosya yöneticinizde bağlanın"
#: templates/users.php:21 templates/users.php:77
msgid "Login Name"
msgstr ""
msgstr "Giriş Adı"
#: templates/users.php:32
msgid "Create"
@ -473,11 +473,11 @@ msgstr "Oluştur"
#: templates/users.php:35
msgid "Default Storage"
msgstr ""
msgstr "Varsayılan Depolama"
#: templates/users.php:41 templates/users.php:139
msgid "Unlimited"
msgstr ""
msgstr "Limitsiz"
#: templates/users.php:59 templates/users.php:154
msgid "Other"
@ -485,16 +485,16 @@ msgstr "Diğer"
#: templates/users.php:84
msgid "Storage"
msgstr ""
msgstr "Depolama"
#: templates/users.php:95
msgid "change display name"
msgstr ""
msgstr "ekran adını değiştir"
#: templates/users.php:99
msgid "set new password"
msgstr ""
msgstr "yeni parola belirle"
#: templates/users.php:134
msgid "Default"
msgstr ""
msgstr "Varsayılan"

View file

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# пан Володимир <volodya327@gmail.com>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-12 15:10+0100\n"
"PO-Revision-Date: 2013-02-12 10:07+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 14:20+0000\n"
"Last-Translator: volodya327 <volodya327@gmail.com>\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -17,23 +18,23 @@ msgstr ""
"Language: uk\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: ajax/delete.php:22
#: ajax/delete.php:24
#, php-format
msgid "Couldn't delete %s permanently"
msgstr ""
msgstr "Неможливо видалити %s назавжди"
#: ajax/undelete.php:41
#, php-format
msgid "Couldn't restore %s"
msgstr ""
msgstr "Неможливо відновити %s"
#: js/trash.js:7 js/trash.js:94
msgid "perform restore operation"
msgstr ""
msgstr "виконати операцію відновлення"
#: js/trash.js:33
msgid "delete file permanently"
msgstr ""
msgstr "видалити файл назавжди"
#: js/trash.js:125 templates/index.php:17
msgid "Name"
@ -41,7 +42,7 @@ msgstr "Ім'я"
#: js/trash.js:126 templates/index.php:27
msgid "Deleted"
msgstr ""
msgstr "Видалено"
#: js/trash.js:135
msgid "1 folder"
@ -61,8 +62,8 @@ msgstr "{count} файлів"
#: templates/index.php:9
msgid "Nothing in here. Your trash bin is empty!"
msgstr ""
msgstr "Нічого немає. Ваший кошик для сміття пустий!"
#: templates/index.php:20 templates/index.php:22
msgid "Restore"
msgstr ""
msgstr "Відновити"

View file

@ -4,13 +4,14 @@
#
# Translators:
# <skoptev@ukr.net>, 2012.
# пан Володимир <volodya327@gmail.com>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-08 00:10+0100\n"
"PO-Revision-Date: 2013-02-07 23:11+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 14:30+0000\n"
"Last-Translator: volodya327 <volodya327@gmail.com>\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -21,33 +22,33 @@ msgstr ""
#: ajax/rollbackVersion.php:15
#, php-format
msgid "Could not revert: %s"
msgstr ""
msgstr "Не вдалося відновити: %s"
#: history.php:40
msgid "success"
msgstr ""
msgstr "успішно"
#: history.php:42
#, php-format
msgid "File %s was reverted to version %s"
msgstr ""
msgstr "Файл %s був відновлений до версії %s"
#: history.php:49
msgid "failure"
msgstr ""
msgstr "неуспішно"
#: history.php:51
#, php-format
msgid "File %s could not be reverted to version %s"
msgstr ""
msgstr "Файл %s не може бути відновлений до версії %s"
#: history.php:68
msgid "No old versions available"
msgstr ""
msgstr "Старі версії недоступні"
#: history.php:73
msgid "No path specified"
msgstr ""
msgstr "Шлях не вказаний"
#: js/versions.js:16
msgid "History"
@ -55,7 +56,7 @@ msgstr "Історія"
#: templates/history.php:20
msgid "Revert a file to a previous version by clicking on its revert button"
msgstr ""
msgstr "Відновити файл на попередню версію, натиснувши на кнопку Відновити"
#: templates/settings.php:3
msgid "Files Versioning"

View file

@ -7,13 +7,14 @@
# <skoptev@ukr.net>, 2012.
# <victor.dubiniuk@gmail.com>, 2012.
# <volodya327@gmail.com>, 2013.
# пан Володимир <volodya327@gmail.com>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-02-19 00:05+0100\n"
"PO-Revision-Date: 2013-02-18 13:40+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2013-02-20 00:02+0100\n"
"PO-Revision-Date: 2013-02-19 14:10+0000\n"
"Last-Translator: volodya327 <volodya327@gmail.com>\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -91,51 +92,51 @@ msgstr "Зображення"
#: setup.php:34
msgid "Set an admin username."
msgstr ""
msgstr "Встановіть ім'я адміністратора."
#: setup.php:37
msgid "Set an admin password."
msgstr ""
msgstr "Встановіть пароль адміністратора."
#: setup.php:40
msgid "Specify a data folder."
msgstr ""
msgstr "Вкажіть теку для даних."
#: setup.php:53
#, php-format
msgid "%s enter the database username."
msgstr ""
msgstr "%s введіть ім'я користувача бази даних."
#: setup.php:56
#, php-format
msgid "%s enter the database name."
msgstr ""
msgstr "%s введіть назву бази даних."
#: setup.php:59
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
msgstr "%s не можна використовувати крапки в назві бази даних"
#: setup.php:62
#, php-format
msgid "%s set the database host."
msgstr ""
msgstr "%s встановити хост бази даних."
#: setup.php:126 setup.php:294 setup.php:339
msgid "PostgreSQL username and/or password not valid"
msgstr ""
msgstr "PostgreSQL ім'я користувача та/або пароль не дійсні"
#: setup.php:127 setup.php:150 setup.php:204
msgid "You need to enter either an existing account or the administrator."
msgstr ""
msgstr "Вам потрібно ввести або існуючий обліковий запис або administrator."
#: setup.php:149 setup.php:427 setup.php:494
msgid "Oracle username and/or password not valid"
msgstr ""
msgstr "Oracle ім'я користувача та/або пароль не дійсні"
#: setup.php:203
msgid "MySQL username and/or password not valid"
msgstr ""
msgstr "MySQL ім'я користувача та/або пароль не дійсні"
#: setup.php:257 setup.php:360 setup.php:369 setup.php:387 setup.php:397
#: setup.php:406 setup.php:435 setup.php:501 setup.php:527 setup.php:534
@ -143,37 +144,37 @@ msgstr ""
#: setup.php:584
#, php-format
msgid "DB Error: \"%s\""
msgstr ""
msgstr "Помилка БД: \"%s\""
#: setup.php:258 setup.php:361 setup.php:370 setup.php:388 setup.php:398
#: setup.php:407 setup.php:436 setup.php:502 setup.php:528 setup.php:535
#: setup.php:546 setup.php:562 setup.php:570 setup.php:579
#, php-format
msgid "Offending command was: \"%s\""
msgstr ""
msgstr "Команда, що викликала проблему: \"%s\""
#: setup.php:273
#, php-format
msgid "MySQL user '%s'@'localhost' exists already."
msgstr ""
msgstr "Користувач MySQL '%s'@'localhost' вже існує."
#: setup.php:274
msgid "Drop this user from MySQL"
msgstr ""
msgstr "Видалити цього користувача з MySQL"
#: setup.php:279
#, php-format
msgid "MySQL user '%s'@'%%' already exists"
msgstr ""
msgstr "Користувач MySQL '%s'@'%%' вже існує"
#: setup.php:280
msgid "Drop this user from MySQL."
msgstr ""
msgstr "Видалити цього користувача з MySQL."
#: setup.php:553 setup.php:585
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
msgstr "Команда, що викликала проблему: \"%s\", ім'я: %s, пароль: %s"
#: setup.php:649
msgid ""

View file

@ -62,21 +62,21 @@ class OC_FileProxy_Quota extends OC_FileProxy{
* @var string $internalPath
*/
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($path);
$owner=$storage->getOwner($internalPath);
$owner = $storage->getOwner($internalPath);
if (!$owner) {
return -1;
}
$totalSpace=$this->getQuota($owner);
if($totalSpace==-1) {
$totalSpace = $this->getQuota($owner);
if($totalSpace == -1) {
return -1;
}
$view = new \OC\Files\View("/".$owner."/files");
$rootInfo=$view->getFileInfo('/');
$usedSpace=isset($rootInfo['size'])?$rootInfo['size']:0;
return $totalSpace-$usedSpace;
$rootInfo = $view->getFileInfo('/');
$usedSpace = isset($rootInfo['size'])?$rootInfo['size']:0;
return $totalSpace - $usedSpace;
}
public function postFree_space($path, $space) {
@ -84,6 +84,9 @@ class OC_FileProxy_Quota extends OC_FileProxy{
if($free==-1) {
return $space;
}
if ($space < 0){
return $free;
}
return min($free, $space);
}

View file

@ -29,6 +29,8 @@
namespace OC\Files;
const FREE_SPACE_UNKNOWN = -2;
class Filesystem {
public static $loaded = false;
/**

View file

@ -301,4 +301,13 @@ abstract class Common implements \OC\Files\Storage\Storage {
}
return implode('/', $output);
}
/**
* get the free space in the storage
* @param $path
* return int
*/
public function free_space($path){
return \OC\Files\FREE_SPACE_UNKNOWN;
}
}

View file

@ -762,9 +762,13 @@ class OC_Helper {
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
$freeSpace = \OC\Files\Filesystem::free_space($dir);
$freeSpace = max($freeSpace, 0);
if($freeSpace !== \OC\Files\FREE_SPACE_UNKNOWN){
$freeSpace = max($freeSpace, 0);
return min($maxUploadFilesize, $freeSpace);
return min($maxUploadFilesize, $freeSpace);
} else {
return $maxUploadFilesize;
}
}
/**

View file

@ -16,6 +16,24 @@
"Files" => "Файли",
"Text" => "Текст",
"Images" => "Зображення",
"Set an admin username." => "Встановіть ім'я адміністратора.",
"Set an admin password." => "Встановіть пароль адміністратора.",
"Specify a data folder." => "Вкажіть теку для даних.",
"%s enter the database username." => "%s введіть ім'я користувача бази даних.",
"%s enter the database name." => "%s введіть назву бази даних.",
"%s you may not use dots in the database name" => "%s не можна використовувати крапки в назві бази даних",
"%s set the database host." => "%s встановити хост бази даних.",
"PostgreSQL username and/or password not valid" => "PostgreSQL ім'я користувача та/або пароль не дійсні",
"You need to enter either an existing account or the administrator." => "Вам потрібно ввести або існуючий обліковий запис або administrator.",
"Oracle username and/or password not valid" => "Oracle ім'я користувача та/або пароль не дійсні",
"MySQL username and/or password not valid" => "MySQL ім'я користувача та/або пароль не дійсні",
"DB Error: \"%s\"" => "Помилка БД: \"%s\"",
"Offending command was: \"%s\"" => "Команда, що викликала проблему: \"%s\"",
"MySQL user '%s'@'localhost' exists already." => "Користувач MySQL '%s'@'localhost' вже існує.",
"Drop this user from MySQL" => "Видалити цього користувача з MySQL",
"MySQL user '%s'@'%%' already exists" => "Користувач MySQL '%s'@'%%' вже існує",
"Drop this user from MySQL." => "Видалити цього користувача з MySQL.",
"Offending command was: \"%s\", name: %s, password: %s" => "Команда, що викликала проблему: \"%s\", ім'я: %s, пароль: %s",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Ваш Web-сервер ще не налаштований належним чином для того, щоб дозволити синхронізацію файлів, через те що інтерфейс WebDAV, здається, зламаний.",
"Please double check the <a href='%s'>installation guides</a>." => "Будь ласка, перевірте <a href='%s'>інструкції по встановленню</a>.",
"seconds ago" => "секунди тому",

View file

@ -75,7 +75,7 @@ class OC_Util {
public static function getVersion() {
// hint: We only can count up. So the internal version number
// of ownCloud 4.5 will be 4.90.0. This is not visible to the user
return array(4, 92, 10);
return array(4, 93, 10);
}
/**
@ -83,7 +83,7 @@ class OC_Util {
* @return string
*/
public static function getVersionString() {
return '5.0 alpha 1';
return '5.0 beta 1';
}
/**

View file

@ -29,7 +29,9 @@
"Group Admin" => "Ομάδα Διαχειριστών",
"Delete" => "Διαγραφή",
"add group" => "προσθήκη ομάδας",
"A valid username must be provided" => "Πρέπει να δοθεί έγκυρο όνομα χρήστη",
"Error creating user" => "Σφάλμα δημιουργίας χρήστη",
"A valid password must be provided" => "Πρέπει να δοθεί έγκυρο συνθηματικό",
"__language_name__" => "__όνομα_γλώσσας__",
"Security Warning" => "Προειδοποίηση Ασφαλείας",
"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Ο κατάλογος data και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess που παρέχει το ownCloud δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος data να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο data έξω από τον κατάλογο του διακομιστή.",

View file

@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
"Unable to load list from App Store" => "App Store'dan liste yüklenemiyor",
"Authentication error" => "Eşleşme hata",
"Unable to change display name" => "Ekran adı değiştirilemiyor",
"Group already exists" => "Grup zaten mevcut",
"Unable to add group" => "Gruba eklenemiyor",
"Could not enable app. " => "Uygulama devreye alınamadı",
@ -10,19 +11,34 @@
"Unable to delete user" => "Kullanıcı silinemiyor",
"Language changed" => "Dil değiştirildi",
"Invalid request" => "Geçersiz istek",
"Admins can't remove themself from the admin group" => "Yöneticiler kendilerini yönetici grubundan kaldıramaz",
"Unable to add user to group %s" => "Kullanıcı %s grubuna eklenemiyor",
"Unable to remove user from group %s" => "%s grubundan kullanıcı kaldırılamıyor",
"Couldn't update app." => "Uygulama güncellenemedi.",
"Update to {appversion}" => "{appversion} Güncelle",
"Disable" => "Etkin değil",
"Enable" => "Etkin",
"Please wait...." => "Lütfen bekleyin....",
"Updating...." => "Güncelleniyor....",
"Error while updating app" => "Uygulama güncellenirken hata",
"Error" => "Hata",
"Updated" => "Güncellendi",
"Saving..." => "Kaydediliyor...",
"deleted" => "silindi",
"undo" => "geri al",
"Unable to remove user" => "Kullanıcı kaldırılamıyor",
"Groups" => "Gruplar",
"Group Admin" => "Yönetici Grubu ",
"Delete" => "Sil",
"add group" => "grup ekle",
"A valid username must be provided" => "Geçerli bir kullanıcı adı mutlaka sağlanmalı",
"Error creating user" => "Kullanıcı oluşturulurken hata",
"A valid password must be provided" => "Geçerli bir parola mutlaka sağlanmalı",
"__language_name__" => "__dil_adı__",
"Security Warning" => "Güvenlik Uyarisi",
"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "data dizininiz ve dosyalarınız büyük ihtimalle internet üzerinden erişilebilir. Owncloud tarafından sağlanan .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu döküman dizini dışına almanızı şiddetle tavsiye ederiz.",
"Setup Warning" => "Kurulum Uyarısı",
"Module 'fileinfo' missing" => "Modül 'fileinfo' kayıp",
"More" => "Daha fazla",
"Version" => "Sürüm",
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "Geliştirilen Taraf<a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is altında lisanslanmıştır <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
@ -30,6 +46,7 @@
"More Apps" => "Daha fazla App",
"Select an App" => "Bir uygulama seçin",
"See application page at apps.owncloud.com" => "Uygulamanın sayfasına apps.owncloud.com adresinden bakın ",
"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-lisanslayan <span class=\"author\"></span>",
"Update" => "Güncelleme",
"User Documentation" => "Kullanıcı Belgelendirmesi",
"Administrator Documentation" => "Yönetici Belgelendirmesi",
@ -38,18 +55,31 @@
"Bugtracker" => "Hata Takip Sistemi",
"Commercial Support" => "Ticari Destek",
"Get the apps to sync your files" => "Dosyalarınızı senkronize etmek için uygulamayı indirin",
"Show First Run Wizard again" => "İlk Çalıştırma Sihirbazını yeniden göster",
"Password" => "Parola",
"Your password was changed" => "Şifreniz değiştirildi",
"Unable to change your password" => "Parolanız değiştirilemiyor",
"Current password" => "Mevcut parola",
"New password" => "Yeni parola",
"Change password" => "Parola değiştir",
"Display Name" => "Ekran Adı",
"Your display name was changed" => "Ekran adınız değiştirildi",
"Unable to change your display name" => "Ekran adınız değiştirilemiyor",
"Change display name" => "Ekran adını değiştir",
"Email" => "Eposta",
"Your email address" => "Eposta adresiniz",
"Fill in an email address to enable password recovery" => "Parola sıfırlamayı aktifleştirmek için eposta adresi girin",
"Language" => "Dil",
"Help translate" => "Çevirilere yardım edin",
"WebDAV" => "WebDAV",
"Use this address to connect to your ownCloud in your file manager" => "Bu adresi kullanarak ownCloud 'unuza dosya yöneticinizde bağlanın",
"Login Name" => "Giriş Adı",
"Create" => "Oluştur",
"Other" => "Diğer"
"Default Storage" => "Varsayılan Depolama",
"Unlimited" => "Limitsiz",
"Other" => "Diğer",
"Storage" => "Depolama",
"change display name" => "ekran adını değiştir",
"set new password" => "yeni parola belirle",
"Default" => "Varsayılan"
);