summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2012-09-07 15:42:37 +0200
committerBart Visscher <bartv@thisnet.nl>2012-09-07 15:51:44 +0200
commit5eba5798274823fe3147a8d671ca5e15b3eb7843 (patch)
treeeb9cfb3fc687b8be26dde07a08fd23ca3455991f /apps
parentb483f2aab856e3324026588a9702043072fd7ad2 (diff)
parent3829460ab8cbb6de65c53583a20fd04cbe7927dd (diff)
downloadnextcloud-server-5eba5798274823fe3147a8d671ca5e15b3eb7843.tar.gz
nextcloud-server-5eba5798274823fe3147a8d671ca5e15b3eb7843.zip
Merge branch 'master' into routing
Conflicts: apps/files/js/fileactions.js lib/base.php lib/helper.php lib/ocs.php
Diffstat (limited to 'apps')
-rw-r--r--apps/files/admin.php2
-rw-r--r--apps/files/ajax/list.php4
-rw-r--r--apps/files/ajax/upload.php4
-rw-r--r--apps/files/appinfo/filesync.php6
-rw-r--r--apps/files/appinfo/update.php2
-rw-r--r--apps/files/download.php2
-rw-r--r--apps/files/index.php24
-rw-r--r--apps/files/js/fileactions.js32
-rw-r--r--apps/files/js/filelist.js157
-rw-r--r--apps/files/js/files.js65
-rw-r--r--apps/files/l10n/ca.php5
-rw-r--r--apps/files/l10n/cs_CZ.php59
-rw-r--r--apps/files/l10n/da.php3
-rw-r--r--apps/files/l10n/de.php13
-rw-r--r--apps/files/l10n/el.php2
-rw-r--r--apps/files/l10n/eo.php2
-rw-r--r--apps/files/l10n/es.php5
-rw-r--r--apps/files/l10n/et_EE.php2
-rw-r--r--apps/files/l10n/eu.php2
-rw-r--r--apps/files/l10n/fa.php2
-rw-r--r--apps/files/l10n/fi_FI.php8
-rw-r--r--apps/files/l10n/fr.php12
-rw-r--r--apps/files/l10n/gl.php2
-rw-r--r--apps/files/l10n/hr.php2
-rw-r--r--apps/files/l10n/hu_HU.php2
-rw-r--r--apps/files/l10n/id.php2
-rw-r--r--apps/files/l10n/it.php5
-rw-r--r--apps/files/l10n/ja_JP.php4
-rw-r--r--apps/files/l10n/ko.php8
-rw-r--r--apps/files/l10n/lb.php17
-rw-r--r--apps/files/l10n/lv.php24
-rw-r--r--apps/files/l10n/nb_NO.php2
-rw-r--r--apps/files/l10n/nl.php4
-rw-r--r--apps/files/l10n/pl.php5
-rw-r--r--apps/files/l10n/pt_BR.php2
-rw-r--r--apps/files/l10n/pt_PT.php2
-rw-r--r--apps/files/l10n/ru.php3
-rw-r--r--apps/files/l10n/sl.php5
-rw-r--r--apps/files/l10n/sv.php5
-rw-r--r--apps/files/l10n/th_TH.php5
-rw-r--r--apps/files/l10n/tr.php6
-rw-r--r--apps/files/l10n/zh_CN.GB2312.php2
-rw-r--r--apps/files/l10n/zh_CN.php5
-rw-r--r--apps/files/l10n/zh_TW.php9
-rw-r--r--apps/files/settings.php6
-rw-r--r--apps/files/templates/admin.php2
-rw-r--r--apps/files/templates/index.php13
-rw-r--r--apps/files_encryption/appinfo/app.php2
-rw-r--r--apps/files_encryption/js/settings.js4
-rw-r--r--apps/files_encryption/l10n/cs_CZ.php8
-rw-r--r--apps/files_encryption/l10n/sk_SK.php6
-rw-r--r--apps/files_encryption/l10n/zh_CN.php5
-rw-r--r--apps/files_encryption/l10n/zh_TW.php6
-rw-r--r--apps/files_encryption/lib/crypt.php30
-rw-r--r--apps/files_encryption/lib/cryptstream.php54
-rw-r--r--apps/files_encryption/lib/proxy.php44
-rw-r--r--apps/files_encryption/templates/settings.php2
-rw-r--r--apps/files_encryption/tests/encryption.php4
-rw-r--r--apps/files_encryption/tests/proxy.php12
-rw-r--r--apps/files_encryption/tests/stream.php10
-rw-r--r--apps/files_external/js/dropbox.js4
-rw-r--r--apps/files_external/js/settings.js4
-rw-r--r--apps/files_external/l10n/cs_CZ.php16
-rw-r--r--apps/files_external/l10n/es.php7
-rw-r--r--apps/files_external/l10n/eu.php1
-rw-r--r--apps/files_external/l10n/fi_FI.php2
-rw-r--r--apps/files_external/l10n/he.php13
-rw-r--r--apps/files_external/l10n/it.php6
-rw-r--r--apps/files_external/l10n/sk_SK.php18
-rwxr-xr-xapps/files_external/lib/config.php564
-rw-r--r--apps/files_external/lib/ftp.php20
-rw-r--r--apps/files_external/lib/smb.php36
-rw-r--r--apps/files_external/lib/streamwrapper.php34
-rw-r--r--apps/files_external/lib/swift.php172
-rw-r--r--apps/files_external/lib/webdav.php88
-rw-r--r--apps/files_external/tests/ftp.php6
-rw-r--r--apps/files_external/tests/google.php6
-rw-r--r--apps/files_external/tests/smb.php6
-rw-r--r--apps/files_external/tests/swift.php6
-rw-r--r--apps/files_external/tests/test.php6
-rw-r--r--apps/files_external/tests/webdav.php6
-rw-r--r--apps/files_sharing/css/public.css5
-rw-r--r--apps/files_sharing/js/public.js8
-rw-r--r--apps/files_sharing/js/share.js2
-rw-r--r--apps/files_sharing/l10n/ca.php9
-rw-r--r--apps/files_sharing/l10n/cs_CZ.php9
-rw-r--r--apps/files_sharing/l10n/de.php9
-rw-r--r--apps/files_sharing/l10n/el.php6
-rw-r--r--apps/files_sharing/l10n/eo.php3
-rw-r--r--apps/files_sharing/l10n/es.php9
-rw-r--r--apps/files_sharing/l10n/eu.php9
-rw-r--r--apps/files_sharing/l10n/fi_FI.php9
-rw-r--r--apps/files_sharing/l10n/fr.php9
-rw-r--r--apps/files_sharing/l10n/he.php7
-rw-r--r--apps/files_sharing/l10n/it.php9
-rw-r--r--apps/files_sharing/l10n/ja_JP.php9
-rw-r--r--apps/files_sharing/l10n/nl.php9
-rw-r--r--apps/files_sharing/l10n/pl.php9
-rw-r--r--apps/files_sharing/l10n/ru.php8
-rw-r--r--apps/files_sharing/l10n/sk_SK.php7
-rw-r--r--apps/files_sharing/l10n/sl.php9
-rw-r--r--apps/files_sharing/l10n/sv.php9
-rw-r--r--apps/files_sharing/l10n/th_TH.php9
-rw-r--r--apps/files_sharing/lib/share/file.php24
-rw-r--r--apps/files_sharing/lib/sharedstorage.php20
-rw-r--r--apps/files_sharing/public.php3
-rwxr-xr-xapps/files_sharing/templates/public.php8
-rw-r--r--apps/files_versions/ajax/expireAll.php2
-rw-r--r--apps/files_versions/ajax/rollbackVersion.php2
-rw-r--r--apps/files_versions/appinfo/app.php2
-rw-r--r--apps/files_versions/js/versions.js4
-rw-r--r--apps/files_versions/l10n/ca.php2
-rw-r--r--apps/files_versions/l10n/cs_CZ.php4
-rw-r--r--apps/files_versions/l10n/de.php2
-rw-r--r--apps/files_versions/l10n/es.php2
-rw-r--r--apps/files_versions/l10n/eu.php2
-rw-r--r--apps/files_versions/l10n/fi_FI.php2
-rw-r--r--apps/files_versions/l10n/fr.php2
-rw-r--r--apps/files_versions/l10n/he.php6
-rw-r--r--apps/files_versions/l10n/it.php2
-rw-r--r--apps/files_versions/l10n/ja_JP.php2
-rw-r--r--apps/files_versions/l10n/nl.php2
-rw-r--r--apps/files_versions/l10n/pl.php2
-rw-r--r--apps/files_versions/l10n/sl.php2
-rw-r--r--apps/files_versions/l10n/sv.php2
-rw-r--r--apps/files_versions/l10n/th_TH.php2
-rw-r--r--apps/files_versions/l10n/zh_CN.php6
-rw-r--r--apps/files_versions/lib/hooks.php88
-rw-r--r--apps/files_versions/lib/versions.php622
-rw-r--r--apps/files_versions/templates/history.php2
-rw-r--r--apps/files_versions/templates/settings-personal.php11
-rw-r--r--apps/user_ldap/appinfo/install.php2
-rw-r--r--apps/user_ldap/appinfo/update.php6
-rw-r--r--apps/user_ldap/appinfo/version2
-rw-r--r--apps/user_ldap/group_ldap.php2
-rw-r--r--apps/user_ldap/l10n/ca.php1
-rw-r--r--apps/user_ldap/l10n/cs_CZ.php45
-rw-r--r--apps/user_ldap/l10n/de.php3
-rw-r--r--apps/user_ldap/l10n/eo.php2
-rw-r--r--apps/user_ldap/l10n/es.php30
-rw-r--r--apps/user_ldap/l10n/eu.php1
-rw-r--r--apps/user_ldap/l10n/fi_FI.php20
-rw-r--r--apps/user_ldap/l10n/fr.php1
-rw-r--r--apps/user_ldap/l10n/it.php1
-rw-r--r--apps/user_ldap/l10n/ja_JP.php1
-rw-r--r--apps/user_ldap/l10n/pl.php1
-rw-r--r--apps/user_ldap/l10n/ro.php1
-rw-r--r--apps/user_ldap/l10n/ru.php1
-rw-r--r--apps/user_ldap/l10n/sl.php1
-rw-r--r--apps/user_ldap/l10n/sv.php1
-rw-r--r--apps/user_ldap/l10n/th_TH.php1
-rw-r--r--apps/user_ldap/settings.php6
-rw-r--r--apps/user_ldap/templates/settings.php4
-rw-r--r--apps/user_ldap/tests/group_ldap.php4
-rw-r--r--apps/user_ldap/user_ldap.php10
-rwxr-xr-xapps/user_webdavauth/appinfo/app.php2
-rwxr-xr-xapps/user_webdavauth/settings.php4
-rwxr-xr-xapps/user_webdavauth/user_webdavauth.php6
158 files changed, 1675 insertions, 1249 deletions
diff --git a/apps/files/admin.php b/apps/files/admin.php
index b49c0f61a0c..a8f2deffc92 100644
--- a/apps/files/admin.php
+++ b/apps/files/admin.php
@@ -33,7 +33,7 @@ $upload_max_filesize = OCP\Util::computerFileSize(ini_get('upload_max_filesize')
$post_max_size = OCP\Util::computerFileSize(ini_get('post_max_size'));
$maxUploadFilesize = OCP\Util::humanFileSize(min($upload_max_filesize, $post_max_size));
if($_POST) {
- if(isset($_POST['maxUploadSize'])){
+ if(isset($_POST['maxUploadSize'])) {
if(($setMaxSize = OC_Files::setUploadLimit(OCP\Util::computerFileSize($_POST['maxUploadSize']))) !== false) {
$maxUploadFilesize = OCP\Util::humanFileSize($setMaxSize);
}
diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index 2254526231e..568fe754c02 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -17,7 +17,7 @@ $data = array();
if($doBreadcrumb) {
$breadcrumb = array();
$pathtohere = "/";
- foreach( explode( "/", $dir ) as $i ){
+ foreach( explode( "/", $dir ) as $i ) {
if( $i != "" ) {
$pathtohere .= "$i/";
$breadcrumb[] = array( "dir" => $pathtohere, "name" => $i );
@@ -32,7 +32,7 @@ if($doBreadcrumb) {
// make filelist
$files = array();
-foreach( OC_Files::getdirectorycontent( $dir ) as $i ){
+foreach( OC_Files::getdirectorycontent( $dir ) as $i ) {
$i["date"] = OCP\Util::formatDate($i["mtime"] );
$files[] = $i;
}
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index 813a6c67b5c..7709becc6a8 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -35,7 +35,7 @@ $dir = $_POST['dir'];
$error='';
$totalSize=0;
-foreach($files['size'] as $size){
+foreach($files['size'] as $size) {
$totalSize+=$size;
}
if($totalSize>OC_Filesystem::free_space('/')) {
@@ -46,7 +46,7 @@ if($totalSize>OC_Filesystem::free_space('/')) {
$result=array();
if(strpos($dir, '..') === false) {
$fileCount=count($files['name']);
- for($i=0;$i<$fileCount;$i++){
+ for($i=0;$i<$fileCount;$i++) {
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]);
if(is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) {
$meta=OC_FileCache_Cached::get($target);
diff --git a/apps/files/appinfo/filesync.php b/apps/files/appinfo/filesync.php
index 707ee2435c0..c1fe444cec7 100644
--- a/apps/files/appinfo/filesync.php
+++ b/apps/files/appinfo/filesync.php
@@ -23,14 +23,14 @@
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem','authentication');
OC_App::loadApps($RUNTIME_APPTYPES);
-if(!OC_User::isLoggedIn()){
- if(!isset($_SERVER['PHP_AUTH_USER'])){
+if(!OC_User::isLoggedIn()) {
+ if(!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="ownCloud Server"');
header('HTTP/1.0 401 Unauthorized');
echo 'Valid credentials must be supplied';
exit();
} else {
- if(!OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])){
+ if(!OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) {
exit();
}
}
diff --git a/apps/files/appinfo/update.php b/apps/files/appinfo/update.php
index 32ac89f0061..35008e345b9 100644
--- a/apps/files/appinfo/update.php
+++ b/apps/files/appinfo/update.php
@@ -5,7 +5,7 @@ $installedVersion=OCP\Config::getAppValue('files', 'installed_version');
if (version_compare($installedVersion, '1.1.4', '<')) {
$query = OC_DB::prepare( "SELECT `propertyname`, `propertypath`, `userid` FROM `*PREFIX*properties`" );
$result = $query->execute();
- while( $row = $result->fetchRow()){
+ while( $row = $result->fetchRow()) {
$query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertyname` = ? WHERE `userid` = ? AND `propertypath` = ?' );
$query->execute( array( preg_replace("/^{.*}/", "", $row["propertyname"]),$row["userid"], $row["propertypath"] ));
}
diff --git a/apps/files/download.php b/apps/files/download.php
index 44a328e25db..ff6aefbbe0f 100644
--- a/apps/files/download.php
+++ b/apps/files/download.php
@@ -29,7 +29,7 @@ OCP\User::checkLoggedIn();
$filename = $_GET["file"];
-if(!OC_Filesystem::file_exists($filename)){
+if(!OC_Filesystem::file_exists($filename)) {
header("HTTP/1.0 404 Not Found");
$tmpl = new OCP\Template( '', '404', 'guest' );
$tmpl->assign('file',$filename);
diff --git a/apps/files/index.php b/apps/files/index.php
index ea5192629b7..9e788bffef5 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -31,7 +31,7 @@ OCP\Util::addscript( 'files', 'jquery.fileupload' );
OCP\Util::addscript( 'files', 'files' );
OCP\Util::addscript( 'files', 'filelist' );
OCP\Util::addscript( 'files', 'fileactions' );
-if(!isset($_SESSION['timezone'])){
+if(!isset($_SESSION['timezone'])) {
OCP\Util::addscript( 'files', 'timezone' );
}
OCP\App::setActiveNavigationEntry( 'files_index' );
@@ -44,9 +44,9 @@ if(!OC_Filesystem::is_dir($dir.'/')) {
}
$files = array();
-foreach( OC_Files::getdirectorycontent( $dir ) as $i ){
+foreach( OC_Files::getdirectorycontent( $dir ) as $i ) {
$i['date'] = OCP\Util::formatDate($i['mtime'] );
- if($i['type']=='file'){
+ if($i['type']=='file') {
$fileinfo=pathinfo($i['name']);
$i['basename']=$fileinfo['filename'];
if (!empty($fileinfo['extension'])) {
@@ -56,7 +56,7 @@ foreach( OC_Files::getdirectorycontent( $dir ) as $i ){
$i['extension']='';
}
}
- if($i['directory']=='/'){
+ if($i['directory']=='/') {
$i['directory']='';
}
$files[] = $i;
@@ -65,8 +65,8 @@ foreach( OC_Files::getdirectorycontent( $dir ) as $i ){
// Make breadcrumb
$breadcrumb = array();
$pathtohere = '';
-foreach( explode( '/', $dir ) as $i ){
- if( $i != '' ){
+foreach( explode( '/', $dir ) as $i ) {
+ if( $i != '' ) {
$pathtohere .= '/'.str_replace('+','%20', urlencode($i));
$breadcrumb[] = array( 'dir' => $pathtohere, 'name' => $i );
}
@@ -89,11 +89,23 @@ $freeSpace=OC_Filesystem::free_space('/');
$freeSpace=max($freeSpace,0);
$maxUploadFilesize = min($maxUploadFilesize ,$freeSpace);
+$permissions = OCP\Share::PERMISSION_READ;
+if (OC_Filesystem::isUpdatable($dir.'/')) {
+ $permissions |= OCP\Share::PERMISSION_UPDATE;
+}
+if (OC_Filesystem::isDeletable($dir.'/')) {
+ $permissions |= OCP\Share::PERMISSION_DELETE;
+}
+if (OC_Filesystem::isSharable($dir.'/')) {
+ $permissions |= OCP\Share::PERMISSION_SHARE;
+}
+
$tmpl = new OCP\Template( 'files', 'index', 'user' );
$tmpl->assign( 'fileList', $list->fetchPage(), false );
$tmpl->assign( 'breadcrumb', $breadcrumbNav->fetchPage(), false );
$tmpl->assign( 'dir', OC_Filesystem::normalizePath($dir));
$tmpl->assign( 'isCreatable', OC_Filesystem::isCreatable($dir.'/'));
+$tmpl->assign('permissions', $permissions);
$tmpl->assign( 'files', $files );
$tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
$tmpl->assign( 'uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize));
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 44c04bf0d71..37e6c91ebe5 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -1,9 +1,4 @@
-FileActions={
- PERMISSION_CREATE:4,
- PERMISSION_READ:1,
- PERMISSION_UPDATE:2,
- PERMISSION_DELETE:8,
- PERMISSION_SHARE:16,
+var FileActions={
actions:{},
defaults:{},
icons:{},
@@ -25,20 +20,20 @@ FileActions={
get:function(mime,type,permissions){
var actions={};
if(FileActions.actions.all){
- actions=$.extend( actions, FileActions.actions.all )
+ actions=$.extend( actions, FileActions.actions.all );
}
if(mime){
if(FileActions.actions[mime]){
- actions=$.extend( actions, FileActions.actions[mime] )
+ actions=$.extend( actions, FileActions.actions[mime] );
}
var mimePart=mime.substr(0,mime.indexOf('/'));
if(FileActions.actions[mimePart]){
- actions=$.extend( actions, FileActions.actions[mimePart] )
+ actions=$.extend( actions, FileActions.actions[mimePart] );
}
}
if(type){//type is 'dir' or 'file'
if(FileActions.actions[type]){
- actions=$.extend( actions, FileActions.actions[type] )
+ actions=$.extend( actions, FileActions.actions[type] );
}
}
var filteredActions = {};
@@ -108,7 +103,12 @@ FileActions={
if(img.call){
img=img(file);
}
- var html='<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" style="display:none" />';
+ // NOTE: Temporary fix to allow unsharing of files in root of Shared folder
+ if ($('#dir').val() == '/Shared') {
+ var html = '<a href="#" original-title="' + t('files', 'Unshare') + '" class="action delete" style="display:none" />';
+ } else {
+ var html='<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" style="display:none" />';
+ }
var element=$(html);
if(img){
element.append($('<img src="'+img+'"/>'));
@@ -148,7 +148,7 @@ FileActions={
getCurrentPermissions:function() {
return FileActions.currentFile.parent().data('permissions');
}
-}
+};
$(document).ready(function(){
if($('#allowZipDownload').val() == 1){
@@ -156,12 +156,12 @@ $(document).ready(function(){
} else {
var downloadScope = 'file';
}
- FileActions.register(downloadScope,'Download', FileActions.PERMISSION_READ, function(){return OC.imagePath('core','actions/download')},function(filename){
+ FileActions.register(downloadScope,'Download', OC.PERMISSION_READ, function(){return OC.imagePath('core','actions/download');},function(filename){
window.location=OC.filePath('files', 'ajax', 'download.php') + encodeURIComponent('?files='+encodeURIComponent(filename)+'&dir='+encodeURIComponent($('#dir').val()));
});
});
-FileActions.register('all','Delete', FileActions.PERMISSION_DELETE, function(){return OC.imagePath('core','actions/delete')},function(filename){
+FileActions.register('all','Delete', OC.PERMISSION_DELETE, function(){return OC.imagePath('core','actions/delete');},function(filename){
if(Files.cancelUpload(filename)) {
if(filename.substr){
filename=[filename];
@@ -179,11 +179,11 @@ FileActions.register('all','Delete', FileActions.PERMISSION_DELETE, function(){r
$('.tipsy').remove();
});
-FileActions.register('all','Rename', FileActions.PERMISSION_UPDATE, function(){return OC.imagePath('core','actions/rename')},function(filename){
+FileActions.register('all','Rename', OC.PERMISSION_UPDATE, function(){return OC.imagePath('core','actions/rename');},function(filename){
FileList.rename(filename);
});
-FileActions.register('dir','Open', FileActions.PERMISSION_READ, '', function(filename){
+FileActions.register('dir','Open', OC.PERMISSION_READ, '', function(filename){
window.location=OC.linkTo('files', 'index.php') + '?dir='+encodeURIComponent($('#dir').val()).replace(/%2F/g, '/')+'/'+encodeURIComponent(filename);
});
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 7c97f82488d..7be4be0e944 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1,11 +1,11 @@
-FileList={
+var FileList={
useUndo:true,
update:function(fileListHtml) {
$('#fileList').empty().html(fileListHtml);
},
- addFile:function(name,size,lastModified,loading){
+ addFile:function(name,size,lastModified,loading,hidden){
var img=(loading)?OC.imagePath('core', 'loading.gif'):OC.imagePath('core', 'filetypes/file.png');
- var html='<tr data-type="file" data-size="'+size+'">';
+ var html='<tr data-type="file" data-size="'+size+'" data-permissions="'+$('#permissions').val()+'">';
if(name.indexOf('.')!=-1){
var basename=name.substr(0,name.lastIndexOf('.'));
var extension=name.substr(name.lastIndexOf('.'));
@@ -14,7 +14,7 @@ FileList={
var extension=false;
}
html+='<td class="filename" style="background-image:url('+img+')"><input type="checkbox" />';
- html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '&lt;').replace(/>/, '&gt;')+'/'+name+'"><span class="nametext">'+basename
+ html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '&lt;').replace(/>/, '&gt;')+'/'+name+'"><span class="nametext">'+basename;
if(extension){
html+='<span class="extension">'+extension+'</span>';
}
@@ -36,9 +36,12 @@ FileList={
}else{
$('tr').filterAttr('data-file',name).find('td.filename').draggable(dragOptions);
}
+ if (hidden) {
+ $('tr').filterAttr('data-file', name).hide();
+ }
},
- addDir:function(name,size,lastModified){
- html = $('<tr></tr>').attr({ "data-type": "dir", "data-size": size, "data-file": name});
+ addDir:function(name,size,lastModified,hidden){
+ html = $('<tr></tr>').attr({ "data-type": "dir", "data-size": size, "data-file": name, "data-permissions": $('#permissions').val()});
td = $('<td></td>').attr({"class": "filename", "style": 'background-image:url('+OC.imagePath('core', 'filetypes/folder.png')+')' });
td.append('<input type="checkbox" />');
var link_elem = $('<a></a>').attr({ "class": "name", "href": OC.linkTo('files', 'index.php')+"?dir="+ encodeURIComponent($('#dir').val()+'/'+name).replace(/%2F/g, '/') });
@@ -63,6 +66,9 @@ FileList={
FileList.insertElement(name,'dir',html);
$('tr').filterAttr('data-file',name).find('td.filename').draggable(dragOptions);
$('tr').filterAttr('data-file',name).find('td.filename').droppable(folderDropOptions);
+ if (hidden) {
+ $('tr').filterAttr('data-file', name).hide();
+ }
},
refresh:function(data) {
result = jQuery.parseJSON(data.responseText);
@@ -82,7 +88,7 @@ FileList={
},
insertElement:function(name,type,element){
//find the correct spot to insert the file or folder
- var fileElements=$('tr[data-file][data-type="'+type+'"]');
+ var fileElements=$('tr[data-file][data-type="'+type+'"]:visible');
var pos;
if(name.localeCompare($(fileElements[0]).attr('data-file'))<0){
pos=-1;
@@ -137,11 +143,7 @@ FileList={
event.preventDefault();
var newname=input.val();
if (newname != name) {
- if ($('tr').filterAttr('data-file', newname).length > 0) {
- $('#notification').html(newname+' '+t('files', 'already exists')+'<span class="replace">'+t('files', 'replace')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
- $('#notification').data('oldName', name);
- $('#notification').data('newName', newname);
- $('#notification').fadeIn();
+ if (FileList.checkName(name, newname, false)) {
newname = name;
} else {
$.get(OC.filePath('files','ajax','rename.php'), { dir : $('#dir').val(), newname: newname, file: name },function(result) {
@@ -151,7 +153,6 @@ FileList={
}
});
}
-
}
tr.attr('data-file', newname);
var path = td.children('a.name').attr('href');
@@ -179,58 +180,77 @@ FileList={
form.trigger('submit');
});
},
- replace:function(oldName, newName) {
+ checkName:function(oldName, newName, isNewFile) {
+ if (isNewFile || $('tr').filterAttr('data-file', newName).length > 0) {
+ if (isNewFile) {
+ $('#notification').html(newName+' '+t('files', 'already exists')+'<span class="replace">'+t('files', 'replace')+'</span><span class="suggest">'+t('files', 'suggest name')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
+ } else {
+ $('#notification').html(newName+' '+t('files', 'already exists')+'<span class="replace">'+t('files', 'replace')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
+ }
+ $('#notification').data('oldName', oldName);
+ $('#notification').data('newName', newName);
+ $('#notification').data('isNewFile', isNewFile);
+ $('#notification').fadeIn();
+ return true;
+ } else {
+ return false;
+ }
+ },
+ replace:function(oldName, newName, isNewFile) {
// Finish any existing actions
if (FileList.lastAction || !FileList.useUndo) {
FileList.lastAction();
}
- var tr = $('tr').filterAttr('data-file', oldName);
- tr.hide();
+ $('tr').filterAttr('data-file', oldName).hide();
+ $('tr').filterAttr('data-file', newName).hide();
+ var tr = $('tr').filterAttr('data-file', oldName).clone();
+ tr.attr('data-replace', 'true');
+ tr.attr('data-file', newName);
+ var td = tr.children('td.filename');
+ td.children('a.name .span').text(newName);
+ var path = td.children('a.name').attr('href');
+ td.children('a.name').attr('href', path.replace(encodeURIComponent(oldName), encodeURIComponent(newName)));
+ if (newName.indexOf('.') > 0) {
+ var basename = newName.substr(0, newName.lastIndexOf('.'));
+ } else {
+ var basename = newName;
+ }
+ td.children('a.name').empty();
+ var span = $('<span class="nametext"></span>');
+ span.text(basename);
+ td.children('a.name').append(span);
+ if (newName.indexOf('.') > 0) {
+ span.append($('<span class="extension">'+newName.substr(newName.lastIndexOf('.'))+'</span>'));
+ }
+ FileList.insertElement(newName, tr.data('type'), tr);
+ tr.show();
FileList.replaceCanceled = false;
FileList.replaceOldName = oldName;
FileList.replaceNewName = newName;
+ FileList.replaceIsNewFile = isNewFile;
FileList.lastAction = function() {
FileList.finishReplace();
};
- $('#notification').html(t('files', 'replaced')+' '+newName+' '+t('files', 'with')+' '+oldName+'<span class="undo">'+t('files', 'undo')+'</span>');
+ if (isNewFile) {
+ $('#notification').html(t('files', 'replaced')+' '+newName+'<span class="undo">'+t('files', 'undo')+'</span>');
+ } else {
+ $('#notification').html(t('files', 'replaced')+' '+newName+' '+t('files', 'with')+' '+oldName+'<span class="undo">'+t('files', 'undo')+'</span>');
+ }
$('#notification').fadeIn();
},
finishReplace:function() {
if (!FileList.replaceCanceled && FileList.replaceOldName && FileList.replaceNewName) {
- // Delete the file being replaced and rename the replacement
- FileList.deleteCanceled = false;
- FileList.deleteFiles = [FileList.replaceNewName];
- FileList.finishDelete(function() {
- $.ajax({url: OC.filePath('files', 'ajax', 'rename.php'), async: false, data: { dir: $('#dir').val(), newname: FileList.replaceNewName, file: FileList.replaceOldName }, success: function(result) {
- if (result && result.status == 'success') {
- var tr = $('tr').filterAttr('data-file', FileList.replaceOldName);
- tr.attr('data-file', FileList.replaceNewName);
- var td = tr.children('td.filename');
- td.children('a.name .span').text(FileList.replaceNewName);
- var path = td.children('a.name').attr('href');
- td.children('a.name').attr('href', path.replace(encodeURIComponent(FileList.replaceOldName), encodeURIComponent(FileList.replaceNewName)));
- if (FileList.replaceNewName.indexOf('.') > 0) {
- var basename = FileList.replaceNewName.substr(0, FileList.replaceNewName.lastIndexOf('.'));
- } else {
- var basename = FileList.replaceNewName;
- }
- td.children('a.name').empty();
- var span = $('<span class="nametext"></span>');
- span.text(basename);
- td.children('a.name').append(span);
- if (FileList.replaceNewName.indexOf('.') > 0) {
- span.append($('<span class="extension">'+FileList.replaceNewName.substr(FileList.replaceNewName.lastIndexOf('.'))+'</span>'));
- }
- tr.show();
- } else {
- OC.dialogs.alert(result.data.message, 'Error moving file');
- }
- FileList.replaceCanceled = true;
- FileList.replaceOldName = null;
- FileList.replaceNewName = null;
- FileList.lastAction = null;
- }});
- }, true);
+ $.ajax({url: OC.filePath('files', 'ajax', 'rename.php'), async: false, data: { dir: $('#dir').val(), newname: FileList.replaceNewName, file: FileList.replaceOldName }, success: function(result) {
+ if (result && result.status == 'success') {
+ $('tr').filterAttr('data-replace', 'true').removeAttr('data-replace');
+ } else {
+ OC.dialogs.alert(result.data.message, 'Error moving file');
+ }
+ FileList.replaceCanceled = true;
+ FileList.replaceOldName = null;
+ FileList.replaceNewName = null;
+ FileList.lastAction = null;
+ }});
}
},
do_delete:function(files){
@@ -243,7 +263,12 @@ FileList={
return;
}
FileList.prepareDeletion(files);
- $('#notification').html(t('files', 'deleted')+' '+files+'<span class="undo">'+t('files', 'undo')+'</span>');
+ // NOTE: Temporary fix to change the text to unshared for files in root of Shared folder
+ if ($('#dir').val() == '/Shared') {
+ $('#notification').html(t('files', 'unshared')+' '+files+'<span class="undo">'+t('files', 'undo')+'</span>');
+ } else {
+ $('#notification').html(t('files', 'deleted')+' '+files+'<span class="undo">'+t('files', 'undo')+'</span>');
+ }
$('#notification').fadeIn();
},
finishDelete:function(ready,sync){
@@ -255,7 +280,7 @@ FileList={
data: {dir:$('#dir').val(),files:fileNames},
complete: function(data){
boolOperationFinished(data, function(){
- $('#notification').fadeOut();
+ $('#notification').fadeOut('400');
$.each(FileList.deleteFiles,function(index,file){
FileList.remove(file);
});
@@ -299,21 +324,39 @@ $(document).ready(function(){
FileList.deleteCanceled=true;
FileList.deleteFiles=null;
} else if (FileList.replaceOldName && FileList.replaceNewName) {
- $('tr').filterAttr('data-file', FileList.replaceOldName).show();
+ if (FileList.replaceIsNewFile) {
+ // Delete the new uploaded file
+ FileList.deleteCanceled = false;
+ FileList.deleteFiles = [FileList.replaceOldName];
+ FileList.finishDelete(null, true);
+ } else {
+ $('tr').filterAttr('data-file', FileList.replaceOldName).show();
+ }
+ $('tr').filterAttr('data-replace', 'true').remove();
+ $('tr').filterAttr('data-file', FileList.replaceNewName).show();
FileList.replaceCanceled = true;
FileList.replaceOldName = null;
FileList.replaceNewName = null;
+ FileList.replaceIsNewFile = null;
}
FileList.lastAction = null;
- $('#notification').fadeOut();
+ $('#notification').fadeOut('400');
});
$('#notification .replace').live('click', function() {
$('#notification').fadeOut('400', function() {
- FileList.replace($('#notification').data('oldName'), $('#notification').data('newName'));
+ FileList.replace($('#notification').data('oldName'), $('#notification').data('newName'), $('#notification').data('isNewFile'));
});
});
+ $('#notification .suggest').live('click', function() {
+ $('tr').filterAttr('data-file', $('#notification').data('oldName')).show();
+ $('#notification').fadeOut('400');
+ });
$('#notification .cancel').live('click', function() {
- $('#notification').fadeOut();
+ if ($('#notification').data('isNewFile')) {
+ FileList.deleteCanceled = false;
+ FileList.deleteFiles = [$('#notification').data('oldName')];
+ FileList.finishDelete(null, true);
+ }
});
FileList.useUndo=('onbeforeunload' in window)
$(window).bind('beforeunload', function (){
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index b57e75c9004..101e2bad2e4 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -26,7 +26,7 @@ Files={
});
procesSelection();
}
-}
+};
$(document).ready(function() {
$('#fileList tr').each(function(){
//little hack to set unescape filenames in attribute
@@ -40,8 +40,16 @@ $(document).ready(function() {
$('#file_action_panel').attr('activeAction', false);
//drag/drop of files
- $('#fileList tr[data-write="true"] td.filename').draggable(dragOptions);
- $('#fileList tr[data-type="dir"][data-write="true"] td.filename').droppable(folderDropOptions);
+ $('#fileList tr td.filename').each(function(i,e){
+ if ($(e).parent().data('permissions') & OC.PERMISSION_DELETE) {
+ $(e).draggable(dragOptions);
+ }
+ });
+ $('#fileList tr[data-type="dir"] td.filename').each(function(i,e){
+ if ($(e).parent().data('permissions') & OC.PERMISSION_CREATE){
+ $(e).droppable(folderDropOptions);
+ }
+ });
$('div.crumb:not(.last)').droppable(crumbDropOptions);
$('ul#apps>li:first-child').data('dir','');
if($('div.crumb').length){
@@ -228,7 +236,14 @@ $(document).ready(function() {
var size=t('files','Pending');
}
if(files && !dirName){
- FileList.addFile(getUniqueName(files[i].name),size,date,true);
+ var uniqueName = getUniqueName(files[i].name);
+ if (uniqueName != files[i].name) {
+ FileList.checkName(uniqueName, files[i].name, true);
+ var hidden = true;
+ } else {
+ var hidden = false;
+ }
+ FileList.addFile(uniqueName,size,date,true,hidden);
} else if(dirName) {
var uploadtext = $('tr').filterAttr('data-type', 'dir').filterAttr('data-file', dirName).find('.uploadtext')
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
@@ -247,7 +262,14 @@ $(document).ready(function() {
}
}else{
var filename=this.value.split('\\').pop(); //ie prepends C:\fakepath\ in front of the filename
- FileList.addFile(getUniqueName(filename),'Pending',date,true);
+ var uniqueName = getUniqueName(filename);
+ if (uniqueName != filename) {
+ FileList.checkName(uniqueName, filename, true);
+ var hidden = true;
+ } else {
+ var hidden = false;
+ }
+ FileList.addFile(uniqueName,'Pending',date,true,hidden);
}
if($.support.xhrFileUpload) {
for(var i=0;i<files.length;i++){
@@ -386,6 +408,21 @@ $(document).ready(function() {
})
});
+ $.assocArraySize = function(obj) {
+ // http://stackoverflow.com/a/6700/11236
+ var size = 0, key;
+ for (key in obj) {
+ if (obj.hasOwnProperty(key)) size++;
+ }
+ return size;
+ };
+
+ // warn user not to leave the page while upload is in progress
+ $(window).bind('beforeunload', function(e) {
+ if ($.assocArraySize(uploadingFiles) > 0)
+ return t('files','File upload is in progress. Leaving the page now will cancel the upload.');
+ });
+
//add multiply file upload attribute to all browsers except konqueror (which crashes when it's used)
if(navigator.userAgent.search(/konqueror/i)==-1){
$('.file_upload_start').attr('multiple','multiple')
@@ -452,21 +489,27 @@ $(document).ready(function() {
$(this).append(input);
input.focus();
input.change(function(){
- var name=getUniqueName($(this).val());
- if(type != 'web' && name.indexOf('/')!=-1){
+ if(type != 'web' && $(this).val().indexOf('/')!=-1){
$('#notification').text(t('files','Invalid name, \'/\' is not allowed.'));
$('#notification').fadeIn();
return;
}
+ var name = getUniqueName($(this).val());
+ if (name != $(this).val()) {
+ FileList.checkName(name, $(this).val(), true);
+ var hidden = true;
+ } else {
+ var hidden = false;
+ }
switch(type){
case 'file':
$.post(
OC.filePath('files','ajax','newfile.php'),
- {dir:$('#dir').val(),filename:name,content:" \n"},
+ {dir:$('#dir').val(),filename:name},
function(result){
if (result.status == 'success') {
var date=new Date();
- FileList.addFile(name,0,date);
+ FileList.addFile(name,0,date,false,hidden);
var tr=$('tr').filterAttr('data-file',name);
tr.data('mime','text/plain');
getMimeIcon('text/plain',function(path){
@@ -485,7 +528,7 @@ $(document).ready(function() {
function(result){
if (result.status == 'success') {
var date=new Date();
- FileList.addDir(name,0,date);
+ FileList.addDir(name,0,date,hidden);
} else {
OC.dialogs.alert(result.data.message, 'Error');
}
@@ -516,7 +559,7 @@ $(document).ready(function() {
eventSource.listen('success',function(mime){
$('#uploadprogressbar').fadeOut();
var date=new Date();
- FileList.addFile(localName,0,date);
+ FileList.addFile(localName,0,date,false,hidden);
var tr=$('tr').filterAttr('data-file',localName);
tr.data('mime',mime);
getMimeIcon(mime,function(path){
diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php
index 81bbfe03a0c..336f59ae86d 100644
--- a/apps/files/l10n/ca.php
+++ b/apps/files/l10n/ca.php
@@ -10,16 +10,18 @@
"Delete" => "Suprimeix",
"already exists" => "ja existeix",
"replace" => "substitueix",
+"suggest name" => "sugereix un nom",
"cancel" => "cancel·la",
"replaced" => "substituït",
-"with" => "per",
"undo" => "desfés",
+"with" => "per",
"deleted" => "esborrat",
"generating ZIP-file, it may take some time." => "s'estan generant fitxers ZIP, pot trigar una estona.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes",
"Upload Error" => "Error en la pujada",
"Pending" => "Pendents",
"Upload cancelled." => "La pujada s'ha cancel·lat.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.",
"Invalid name, '/' is not allowed." => "El nom no és vàlid, no es permet '/'.",
"Size" => "Mida",
"Modified" => "Modificat",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "Activa la baixada ZIP",
"0 is unlimited" => "0 és sense límit",
"Maximum input size for ZIP files" => "Mida màxima d'entrada per fitxers ZIP",
+"Save" => "Desa",
"New" => "Nou",
"Text file" => "Fitxer de text",
"Folder" => "Carpeta",
diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php
index 4dc4b8b0cb1..f29df70ee68 100644
--- a/apps/files/l10n/cs_CZ.php
+++ b/apps/files/l10n/cs_CZ.php
@@ -1,51 +1,54 @@
<?php $TRANSLATIONS = array(
"There is no error, the file uploaded with success" => "Soubor byl odeslán úspěšně",
-"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Odeslaný soubor přesáhl velikostí parametr upload_max_filesize v php.ini",
-"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Odeslaný soubor přesáhl velikostí parametr MAX_FILE_SIZE specifikovaný v HTML formuláři",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Odeslaný soubor přesáhl svou velikostí parametr upload_max_filesize v php.ini",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný v formuláři HTML",
"The uploaded file was only partially uploaded" => "Soubor byl odeslán pouze částečně",
-"No file was uploaded" => "Soubor nebyl odeslán",
-"Missing a temporary folder" => "Chybí adresář pro sočasné soubory",
-"Failed to write to disk" => "Zápis na disk se nezdařil",
+"No file was uploaded" => "Žádný soubor nebyl odeslán",
+"Missing a temporary folder" => "Chybí adresář pro dočasné soubory",
+"Failed to write to disk" => "Zápis na disk selhal",
"Files" => "Soubory",
-"Delete" => "Vymazat",
+"Delete" => "Smazat",
"already exists" => "již existuje",
-"replace" => "zaměnit",
-"cancel" => "storno",
-"replaced" => "zaměněno",
-"with" => "s",
+"replace" => "nahradit",
+"suggest name" => "navrhnout název",
+"cancel" => "zrušit",
+"replaced" => "nahrazeno",
"undo" => "zpět",
+"with" => "s",
"deleted" => "smazáno",
-"generating ZIP-file, it may take some time." => "generuji ZIP soubor, může to chvíli trvat",
-"Unable to upload your file as it is a directory or has 0 bytes" => "Nemohu nahrát váš soubor neboť to je adresář a nebo má nulovou délku.",
-"Upload Error" => "Chyba při nahrávání",
-"Pending" => "Očekává se",
-"Upload cancelled." => "Nahrávání zrušeno",
-"Invalid name, '/' is not allowed." => "Špatné jméno, znak '/' není povolen",
+"generating ZIP-file, it may take some time." => "generuji ZIP soubor, může to nějakou dobu trvat.",
+"Unable to upload your file as it is a directory or has 0 bytes" => "Nelze odeslat Váš soubor, protože je to adresář nebo má velikost 0 bajtů",
+"Upload Error" => "Chyba odesílání",
+"Pending" => "Čekající",
+"Upload cancelled." => "Odesílání zrušeno.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Probíhá odesílání souboru. Opuštění stránky vyústí ve zrušení nahrávání.",
+"Invalid name, '/' is not allowed." => "Neplatný název, znak '/' není povolen",
"Size" => "Velikost",
"Modified" => "Změněno",
-"folder" => "adresář",
-"folders" => "adresáře",
+"folder" => "složka",
+"folders" => "složky",
"file" => "soubor",
"files" => "soubory",
-"File handling" => "Nastavení chování k souborům",
-"Maximum upload size" => "Maximální velikost ukládaných souborů",
-"max. possible: " => "největší možná:",
-"Needed for multi-file and folder downloads." => "Potřeba pro vícesoborvé stahování a stahování adresářů",
+"File handling" => "Zacházení se soubory",
+"Maximum upload size" => "Maximální velikost pro odesílání",
+"max. possible: " => "největší možná: ",
+"Needed for multi-file and folder downloads." => "Potřebné pro více-souborové stahování a stahování složek.",
"Enable ZIP-download" => "Povolit ZIP-stahování",
"0 is unlimited" => "0 znamená bez omezení",
"Maximum input size for ZIP files" => "Maximální velikost vstupu pro ZIP soubory",
+"Save" => "Uložit",
"New" => "Nový",
"Text file" => "Textový soubor",
-"Folder" => "Adresář",
+"Folder" => "Složka",
"From url" => "Z url",
-"Upload" => "Uložit",
-"Cancel upload" => "Zrušit upload",
-"Nothing in here. Upload something!" => "Žádný obsah. Uložte si něco!",
+"Upload" => "Odeslat",
+"Cancel upload" => "Zrušit odesílání",
+"Nothing in here. Upload something!" => "Žádný obsah. Nahrajte něco.",
"Name" => "Název",
"Share" => "Sdílet",
"Download" => "Stáhnout",
-"Upload too large" => "Příliš velký soubor",
-"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Soubory, které se snažíte uložit, překračují maximální velikosti uploadu na tomto serveru.",
+"Upload too large" => "Odeslaný soubor je příliš velký",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.",
"Files are being scanned, please wait." => "Soubory se prohledávají, prosím čekejte.",
"Current scanning" => "Aktuální prohledávání"
);
diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php
index 56af0fa61d7..020f6142ec6 100644
--- a/apps/files/l10n/da.php
+++ b/apps/files/l10n/da.php
@@ -12,14 +12,15 @@
"replace" => "erstat",
"cancel" => "fortryd",
"replaced" => "erstattet",
-"with" => "med",
"undo" => "fortryd",
+"with" => "med",
"deleted" => "Slettet",
"generating ZIP-file, it may take some time." => "genererer ZIP-fil, det kan tage lidt tid.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kunne ikke uploade din fil, da det enten er en mappe eller er tom",
"Upload Error" => "Fejl ved upload",
"Pending" => "Afventer",
"Upload cancelled." => "Upload afbrudt.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.",
"Invalid name, '/' is not allowed." => "Ugyldigt navn, '/' er ikke tilladt.",
"Size" => "Størrelse",
"Modified" => "Ændret",
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index 5da3a997213..3db6af8477d 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -1,7 +1,7 @@
<?php $TRANSLATIONS = array(
"There is no error, the file uploaded with success" => "Datei fehlerfrei hochgeladen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "Die Größe der hochzuladenden Datei überschreitet die upload_max_filesize-Richtlinie in php.ini",
-"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die größe der hochzuladenden Datei überschreitet die MAX_FILE_SIZE-Richtlinie, die im HTML-Formular angegeben wurde",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Größe der hochzuladenden Datei überschreitet die MAX_FILE_SIZE-Richtlinie, die im HTML-Formular angegeben wurde",
"The uploaded file was only partially uploaded" => "Die Datei wurde nur teilweise hochgeladen.",
"No file was uploaded" => "Es wurde keine Datei hochgeladen.",
"Missing a temporary folder" => "Temporärer Ordner fehlt.",
@@ -10,17 +10,19 @@
"Delete" => "Löschen",
"already exists" => "ist bereits vorhanden",
"replace" => "ersetzen",
+"suggest name" => "Name vorschlagen",
"cancel" => "abbrechen",
"replaced" => "ersetzt",
-"with" => "mit",
"undo" => "rückgängig machen",
+"with" => "mit",
"deleted" => "gelöscht",
"generating ZIP-file, it may take some time." => "Erstelle ZIP-Datei. Dies kann eine Weile dauern.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, da sie ein Verzeichnis ist oder 0 Bytes hat.",
"Upload Error" => "Fehler beim Hochladen",
"Pending" => "Ausstehend",
"Upload cancelled." => "Hochladen abgebrochen.",
-"Invalid name, '/' is not allowed." => "Ungültiger Name, \"/\" ist nicht erlaubt.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.",
+"Invalid name, '/' is not allowed." => "Ungültiger Name: \"/\" ist nicht erlaubt.",
"Size" => "Größe",
"Modified" => "Bearbeitet",
"folder" => "Ordner",
@@ -30,10 +32,11 @@
"File handling" => "Dateibehandlung",
"Maximum upload size" => "Maximale Upload-Größe",
"max. possible: " => "maximal möglich:",
-"Needed for multi-file and folder downloads." => "Für Mehrfachdateien- und Ordnerdownloads benötigt:",
+"Needed for multi-file and folder downloads." => "Für Mehrfachdatei- und Ordnerdownloads benötigt:",
"Enable ZIP-download" => "ZIP-Download aktivieren",
"0 is unlimited" => "0 bedeutet unbegrenzt",
-"Maximum input size for ZIP files" => "Maximale Größe für ZIP Dateien",
+"Maximum input size for ZIP files" => "Maximale Größe für ZIP-Dateien",
+"Save" => "Speichern",
"New" => "Neu",
"Text file" => "Textdatei",
"Folder" => "Ordner",
diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php
index 3ab4b120949..9f311c6b28e 100644
--- a/apps/files/l10n/el.php
+++ b/apps/files/l10n/el.php
@@ -12,8 +12,8 @@
"replace" => "αντικατέστησε",
"cancel" => "ακύρωση",
"replaced" => "αντικαταστάθηκε",
-"with" => "με",
"undo" => "αναίρεση",
+"with" => "με",
"deleted" => "διαγράφηκε",
"generating ZIP-file, it may take some time." => "παραγωγή αρχείου ZIP, ίσως διαρκέσει αρκετά.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Αδυναμία στην μεταφόρτωση του αρχείου σας αφού είναι φάκελος ή έχει 0 bytes",
diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php
index acaf06e830c..bf17b97244c 100644
--- a/apps/files/l10n/eo.php
+++ b/apps/files/l10n/eo.php
@@ -12,8 +12,8 @@
"replace" => "anstataŭigi",
"cancel" => "nuligi",
"replaced" => "anstataŭigita",
-"with" => "kun",
"undo" => "malfari",
+"with" => "kun",
"deleted" => "forigita",
"generating ZIP-file, it may take some time." => "generanta ZIP-dosiero, ĝi povas daŭri iom da tempo",
"Unable to upload your file as it is a directory or has 0 bytes" => "Ne eblis alŝuti vian dosieron ĉar ĝi estas dosierujo aŭ havas 0 duumokojn",
diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php
index 6cd51d60e27..0ba3c56aa1f 100644
--- a/apps/files/l10n/es.php
+++ b/apps/files/l10n/es.php
@@ -10,16 +10,18 @@
"Delete" => "Eliminado",
"already exists" => "ya existe",
"replace" => "reemplazar",
+"suggest name" => "sugerir nombre",
"cancel" => "cancelar",
"replaced" => "reemplazado",
-"with" => "con",
"undo" => "deshacer",
+"with" => "con",
"deleted" => "borrado",
"generating ZIP-file, it may take some time." => "generando un fichero ZIP, puede llevar un tiempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes",
"Upload Error" => "Error al subir el archivo",
"Pending" => "Pendiente",
"Upload cancelled." => "Subida cancelada.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida.",
"Invalid name, '/' is not allowed." => "Nombre no válido, '/' no está permitido.",
"Size" => "Tamaño",
"Modified" => "Modificado",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "Habilitar descarga en ZIP",
"0 is unlimited" => "0 es ilimitado",
"Maximum input size for ZIP files" => "Tamaño máximo para archivos ZIP de entrada",
+"Save" => "Guardar",
"New" => "Nuevo",
"Text file" => "Archivo de texto",
"Folder" => "Carpeta",
diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php
index 956c5cc9115..0763745788b 100644
--- a/apps/files/l10n/et_EE.php
+++ b/apps/files/l10n/et_EE.php
@@ -12,8 +12,8 @@
"replace" => "asenda",
"cancel" => "loobu",
"replaced" => "asendatud",
-"with" => "millega",
"undo" => "tagasi",
+"with" => "millega",
"deleted" => "kustutatud",
"generating ZIP-file, it may take some time." => "ZIP-faili loomine, see võib veidi aega võtta.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Sinu faili üleslaadimine ebaõnnestus, kuna see on kaust või selle suurus on 0 baiti",
diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php
index d9c2689d1cd..3897a5580f3 100644
--- a/apps/files/l10n/eu.php
+++ b/apps/files/l10n/eu.php
@@ -12,8 +12,8 @@
"replace" => "ordeztu",
"cancel" => "ezeztatu",
"replaced" => "ordeztua",
-"with" => "honekin",
"undo" => "desegin",
+"with" => "honekin",
"deleted" => "ezabatuta",
"generating ZIP-file, it may take some time." => "ZIP-fitxategia sortzen ari da, denbora har dezake",
"Unable to upload your file as it is a directory or has 0 bytes" => "Ezin da zure fitxategia igo, karpeta bat da edo 0 byt ditu",
diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php
index 4dac88fc542..e6ddd50f917 100644
--- a/apps/files/l10n/fa.php
+++ b/apps/files/l10n/fa.php
@@ -12,8 +12,8 @@
"replace" => "جایگزین",
"cancel" => "لغو",
"replaced" => "جایگزین‌شده",
-"with" => "همراه",
"undo" => "بازگشت",
+"with" => "همراه",
"deleted" => "حذف شده",
"generating ZIP-file, it may take some time." => "در حال ساخت فایل فشرده ممکن است زمان زیادی به طول بیانجامد",
"Unable to upload your file as it is a directory or has 0 bytes" => "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد",
diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php
index 902ea859a31..757d0594d30 100644
--- a/apps/files/l10n/fi_FI.php
+++ b/apps/files/l10n/fi_FI.php
@@ -10,16 +10,18 @@
"Delete" => "Poista",
"already exists" => "on jo olemassa",
"replace" => "korvaa",
+"suggest name" => "ehdota nimeä",
"cancel" => "peru",
"replaced" => "korvattu",
-"with" => "käyttäen",
"undo" => "kumoa",
+"with" => "käyttäen",
"deleted" => "poistettu",
"generating ZIP-file, it may take some time." => "luodaan ZIP-tiedostoa, tämä saattaa kestää hetken.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio",
"Upload Error" => "Lähetysvirhe.",
"Pending" => "Odottaa",
"Upload cancelled." => "Lähetys peruttu.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen.",
"Invalid name, '/' is not allowed." => "Virheellinen nimi, merkki '/' ei ole sallittu.",
"Size" => "Koko",
"Modified" => "Muutettu",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "Ota ZIP-paketin lataaminen käytöön",
"0 is unlimited" => "0 on rajoittamaton",
"Maximum input size for ZIP files" => "ZIP-tiedostojen enimmäiskoko",
+"Save" => "Tallenna",
"New" => "Uusi",
"Text file" => "Tekstitiedosto",
"Folder" => "Kansio",
@@ -46,5 +49,6 @@
"Download" => "Lataa",
"Upload too large" => "Lähetettävä tiedosto on liian suuri",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.",
-"Files are being scanned, please wait." => "Tiedostoja tarkistetaan, odota hetki."
+"Files are being scanned, please wait." => "Tiedostoja tarkistetaan, odota hetki.",
+"Current scanning" => "Tämänhetkinen tutkinta"
);
diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php
index 6eb4341bd6e..0b7d226de74 100644
--- a/apps/files/l10n/fr.php
+++ b/apps/files/l10n/fr.php
@@ -12,14 +12,15 @@
"replace" => "remplacer",
"cancel" => "annuler",
"replaced" => "remplacé",
-"with" => "avec",
"undo" => "annuler",
+"with" => "avec",
"deleted" => "supprimé",
-"generating ZIP-file, it may take some time." => "Générer un fichier ZIP, cela peut prendre du temps",
+"generating ZIP-file, it may take some time." => "Fichier ZIP en cours d'assemblage ; cela peut prendre du temps.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossible de charger vos fichiers car il s'agit d'un dossier ou le fichier fait 0 octet.",
"Upload Error" => "Erreur de chargement",
"Pending" => "En cours",
-"Upload cancelled." => "Chargement annulé",
+"Upload cancelled." => "Chargement annulé.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.",
"Invalid name, '/' is not allowed." => "Nom invalide, '/' n'est pas autorisé.",
"Size" => "Taille",
"Modified" => "Modifié",
@@ -34,18 +35,19 @@
"Enable ZIP-download" => "Activer le téléchargement ZIP",
"0 is unlimited" => "0 est illimité",
"Maximum input size for ZIP files" => "Taille maximale pour les fichiers ZIP",
+"Save" => "Sauvegarder",
"New" => "Nouveau",
"Text file" => "Fichier texte",
"Folder" => "Dossier",
"From url" => "Depuis URL",
"Upload" => "Envoyer",
-"Cancel upload" => "Annuler envoi",
+"Cancel upload" => "Annuler l'envoi",
"Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)",
"Name" => "Nom",
"Share" => "Partager",
"Download" => "Téléchargement",
"Upload too large" => "Fichier trop volumineux",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.",
-"Files are being scanned, please wait." => "Les fichiers sont analysés, patientez svp.",
+"Files are being scanned, please wait." => "Les fichiers sont en cours d'analyse, veuillez patienter.",
"Current scanning" => "Analyse en cours"
);
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index 3a36a23f0ca..67293de5cb7 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -12,8 +12,8 @@
"replace" => "substituír",
"cancel" => "cancelar",
"replaced" => "substituído",
-"with" => "con",
"undo" => "desfacer",
+"with" => "con",
"deleted" => "eliminado",
"generating ZIP-file, it may take some time." => "xerando ficheiro ZIP, pode levar un anaco.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Non se puido subir o ficheiro pois ou é un directorio ou ten 0 bytes",
diff --git a/apps/files/l10n/hr.php b/apps/files/l10n/hr.php
index cb8eb4033cf..b05b7c568b4 100644
--- a/apps/files/l10n/hr.php
+++ b/apps/files/l10n/hr.php
@@ -12,8 +12,8 @@
"replace" => "zamjeni",
"cancel" => "odustani",
"replaced" => "zamjenjeno",
-"with" => "sa",
"undo" => "vrati",
+"with" => "sa",
"deleted" => "izbrisano",
"generating ZIP-file, it may take some time." => "generiranje ZIP datoteke, ovo može potrajati.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nemoguće poslati datoteku jer je prazna ili je direktorij",
diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php
index 8d52765e93e..95b3c57ce11 100644
--- a/apps/files/l10n/hu_HU.php
+++ b/apps/files/l10n/hu_HU.php
@@ -12,8 +12,8 @@
"replace" => "cserél",
"cancel" => "mégse",
"replaced" => "kicserélve",
-"with" => "-val/-vel",
"undo" => "visszavon",
+"with" => "-val/-vel",
"deleted" => "törölve",
"generating ZIP-file, it may take some time." => "ZIP-fájl generálása, ez eltarthat egy ideig.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nem tölthető fel, mert mappa volt, vagy 0 byte méretű",
diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php
index 399056bf278..351d0641388 100644
--- a/apps/files/l10n/id.php
+++ b/apps/files/l10n/id.php
@@ -12,8 +12,8 @@
"replace" => "mengganti",
"cancel" => "batalkan",
"replaced" => "diganti",
-"with" => "dengan",
"undo" => "batal dikerjakan",
+"with" => "dengan",
"deleted" => "dihapus",
"generating ZIP-file, it may take some time." => "membuat berkas ZIP, ini mungkin memakan waktu.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Gagal mengunggah berkas anda karena berupa direktori atau mempunyai ukuran 0 byte",
diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php
index 6fda30a8f35..0df60832c5b 100644
--- a/apps/files/l10n/it.php
+++ b/apps/files/l10n/it.php
@@ -10,16 +10,18 @@
"Delete" => "Elimina",
"already exists" => "esiste già",
"replace" => "sostituisci",
+"suggest name" => "suggerisci nome",
"cancel" => "annulla",
"replaced" => "sostituito",
-"with" => "con",
"undo" => "annulla",
+"with" => "con",
"deleted" => "eliminati",
"generating ZIP-file, it may take some time." => "creazione file ZIP, potrebbe richiedere del tempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossibile inviare il file poiché è una cartella o ha dimensione 0 byte",
"Upload Error" => "Errore di invio",
"Pending" => "In corso",
"Upload cancelled." => "Invio annullato",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.",
"Invalid name, '/' is not allowed." => "Nome non valido",
"Size" => "Dimensione",
"Modified" => "Modificato",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "Abilita scaricamento ZIP",
"0 is unlimited" => "0 è illimitato",
"Maximum input size for ZIP files" => "Dimensione massima per i file ZIP",
+"Save" => "Salva",
"New" => "Nuovo",
"Text file" => "File di testo",
"Folder" => "Cartella",
diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php
index 8c19e455012..2de716fec8a 100644
--- a/apps/files/l10n/ja_JP.php
+++ b/apps/files/l10n/ja_JP.php
@@ -12,14 +12,15 @@
"replace" => "置き換え",
"cancel" => "キャンセル",
"replaced" => "置換:",
-"with" => "←",
"undo" => "元に戻す",
+"with" => "←",
"deleted" => "削除",
"generating ZIP-file, it may take some time." => "ZIPファイルを生成中です、しばらくお待ちください。",
"Unable to upload your file as it is a directory or has 0 bytes" => "アップロード使用としているファイルがディレクトリ、もしくはサイズが0バイトのため、アップロードできません。",
"Upload Error" => "アップロードエラー",
"Pending" => "保留",
"Upload cancelled." => "アップロードはキャンセルされました。",
+"File upload is in progress. Leaving the page now will cancel the upload." => "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
"Invalid name, '/' is not allowed." => "無効な名前、'/' は使用できません。",
"Size" => "サイズ",
"Modified" => "更新日時",
@@ -34,6 +35,7 @@
"Enable ZIP-download" => "ZIP形式のダウンロードを有効にする",
"0 is unlimited" => "0を指定した場合は無制限",
"Maximum input size for ZIP files" => "ZIPファイルへの最大入力サイズ",
+"Save" => "保存",
"New" => "新規",
"Text file" => "テキストファイル",
"Folder" => "フォルダ",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index 218dd0ea2d7..121be7d1abb 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -8,7 +8,15 @@
"Failed to write to disk" => "디스크에 쓰지 못했습니다",
"Files" => "파일",
"Delete" => "삭제",
+"already exists" => "이미 존재 합니다",
+"replace" => "대체",
+"cancel" => "취소",
+"replaced" => "대체됨",
+"undo" => "복구",
+"with" => "와",
+"deleted" => "삭제",
"generating ZIP-file, it may take some time." => "ZIP파일 생성에 시간이 걸릴 수 있습니다.",
+"Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉토리이거나 0 바이트이기 때문에 업로드 할 수 없습니다.",
"Upload Error" => "업로드 에러",
"Pending" => "보류 중",
"Upload cancelled." => "업로드 취소.",
diff --git a/apps/files/l10n/lb.php b/apps/files/l10n/lb.php
index f7a10fbc5cd..92acea1d117 100644
--- a/apps/files/l10n/lb.php
+++ b/apps/files/l10n/lb.php
@@ -8,8 +8,25 @@
"Failed to write to disk" => "Konnt net op den Disk schreiwen",
"Files" => "Dateien",
"Delete" => "Läschen",
+"already exists" => "existéiert schonn",
+"replace" => "ersetzen",
+"cancel" => "ofbriechen",
+"replaced" => "ersat",
+"undo" => "réckgängeg man",
+"with" => "mat",
+"deleted" => "geläscht",
+"generating ZIP-file, it may take some time." => "Et gëtt eng ZIP-File generéiert, dëst ka bëssen daueren.",
+"Unable to upload your file as it is a directory or has 0 bytes" => "Kann deng Datei net eroplueden well et en Dossier ass oder 0 byte grouss ass.",
+"Upload Error" => "Fehler beim eroplueden",
+"Upload cancelled." => "Upload ofgebrach.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "File Upload am gaang. Wann's de des Säit verléiss gëtt den Upload ofgebrach.",
+"Invalid name, '/' is not allowed." => "Ongültege Numm, '/' net erlaabt.",
"Size" => "Gréisst",
"Modified" => "Geännert",
+"folder" => "Dossier",
+"folders" => "Dossieren",
+"file" => "Datei",
+"files" => "Dateien",
"File handling" => "Fichier handling",
"Maximum upload size" => "Maximum Upload Gréisst ",
"max. possible: " => "max. méiglech:",
diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php
index 54bd79f5526..eedab2546c5 100644
--- a/apps/files/l10n/lv.php
+++ b/apps/files/l10n/lv.php
@@ -1,6 +1,17 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded" => "Neviens fails netika augšuplādēts",
+"Failed to write to disk" => "Nav iespējams saglabāt",
"Files" => "Faili",
"Delete" => "Izdzēst",
+"already exists" => "tāds fails jau eksistē",
+"replace" => "aizvietot",
+"cancel" => "atcelt",
+"replaced" => "aizvietots",
+"undo" => "vienu soli atpakaļ",
+"with" => "ar",
+"deleted" => "izdzests",
+"generating ZIP-file, it may take some time." => "lai uzģenerētu ZIP failu, kāds brīdis ir jāpagaida",
+"Unable to upload your file as it is a directory or has 0 bytes" => "Nav iespējams augšuplādēt jūsu failu, jo tāds jau eksistē vai arī failam nav izmēra (0 baiti)",
"Upload Error" => "Augšuplādēšanas laikā radās kļūda",
"Pending" => "Gaida savu kārtu",
"Upload cancelled." => "Augšuplāde ir atcelta",
@@ -12,9 +23,20 @@
"file" => "fails",
"files" => "faili",
"Maximum upload size" => "Maksimālais failu augšuplādes apjoms",
+"max. possible: " => "maksīmālais iespējamais:",
+"Enable ZIP-download" => "Iespējot ZIP lejuplādi",
+"0 is unlimited" => "0 ir neierobežots",
+"New" => "Jauns",
+"Text file" => "Teksta fails",
+"Folder" => "Mape",
+"From url" => "No URL saites",
"Upload" => "Augšuplādet",
+"Cancel upload" => "Atcelt augšuplādi",
"Nothing in here. Upload something!" => "Te vēl nekas nav. Rīkojies, sāc augšuplādēt",
"Name" => "Nosaukums",
+"Share" => "Līdzdalīt",
"Download" => "Lejuplādēt",
-"Upload too large" => "Fails ir par lielu lai to augšuplādetu"
+"Upload too large" => "Fails ir par lielu lai to augšuplādetu",
+"Files are being scanned, please wait." => "Faili šobrīd tiek caurskatīti, nedaudz jāpagaida.",
+"Current scanning" => "Šobrīd tiek pārbaudīti"
);
diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php
index 92d0c23bfd2..4a747af2f3a 100644
--- a/apps/files/l10n/nb_NO.php
+++ b/apps/files/l10n/nb_NO.php
@@ -12,8 +12,8 @@
"replace" => "erstatt",
"cancel" => "avbryt",
"replaced" => "erstattet",
-"with" => "med",
"undo" => "angre",
+"with" => "med",
"deleted" => "slettet",
"generating ZIP-file, it may take some time." => "opprettet ZIP-fil, dette kan ta litt tid",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes",
diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php
index fb7ea34b9b8..7acb15054c5 100644
--- a/apps/files/l10n/nl.php
+++ b/apps/files/l10n/nl.php
@@ -12,14 +12,15 @@
"replace" => "vervang",
"cancel" => "annuleren",
"replaced" => "vervangen",
-"with" => "door",
"undo" => "ongedaan maken",
+"with" => "door",
"deleted" => "verwijderd",
"generating ZIP-file, it may take some time." => "aanmaken ZIP-file, dit kan enige tijd duren.",
"Unable to upload your file as it is a directory or has 0 bytes" => "uploaden van de file mislukt, het is of een directory of de bestandsgrootte is 0 bytes",
"Upload Error" => "Upload Fout",
"Pending" => "Wachten",
"Upload cancelled." => "Uploaden geannuleerd.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Bestands upload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.",
"Invalid name, '/' is not allowed." => "Ongeldige naam, '/' is niet toegestaan.",
"Size" => "Bestandsgrootte",
"Modified" => "Laatst aangepast",
@@ -34,6 +35,7 @@
"Enable ZIP-download" => "Zet ZIP-download aan",
"0 is unlimited" => "0 is ongelimiteerd",
"Maximum input size for ZIP files" => "Maximale grootte voor ZIP bestanden",
+"Save" => "Opslaan",
"New" => "Nieuw",
"Text file" => "Tekstbestand",
"Folder" => "Map",
diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php
index eb791330bfd..d3814333aca 100644
--- a/apps/files/l10n/pl.php
+++ b/apps/files/l10n/pl.php
@@ -10,16 +10,18 @@
"Delete" => "Usuwa element",
"already exists" => "Już istnieje",
"replace" => "zastap",
+"suggest name" => "zasugeruj nazwę",
"cancel" => "anuluj",
"replaced" => "zastąpione",
-"with" => "z",
"undo" => "wróć",
+"with" => "z",
"deleted" => "skasuj",
"generating ZIP-file, it may take some time." => "Generowanie pliku ZIP, może potrwać pewien czas.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nie można wczytać pliku jeśli jest katalogiem lub ma 0 bajtów",
"Upload Error" => "Błąd wczytywania",
"Pending" => "Oczekujące",
"Upload cancelled." => "Wczytywanie anulowane.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Wysyłanie pliku jest w toku. Teraz opuszczając stronę wysyłanie zostanie anulowane.",
"Invalid name, '/' is not allowed." => "Nieprawidłowa nazwa '/' jest niedozwolone.",
"Size" => "Rozmiar",
"Modified" => "Czas modyfikacji",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "Włącz pobieranie ZIP-paczki",
"0 is unlimited" => "0 jest nielimitowane",
"Maximum input size for ZIP files" => "Maksymalna wielkość pliku wejściowego ZIP ",
+"Save" => "Zapisz",
"New" => "Nowy",
"Text file" => "Plik tekstowy",
"Folder" => "Katalog",
diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php
index 09c4f2b0267..e9fe7747c13 100644
--- a/apps/files/l10n/pt_BR.php
+++ b/apps/files/l10n/pt_BR.php
@@ -12,8 +12,8 @@
"replace" => "substituir",
"cancel" => "cancelar",
"replaced" => "substituido ",
-"with" => "com",
"undo" => "desfazer",
+"with" => "com",
"deleted" => "deletado",
"generating ZIP-file, it may take some time." => "gerando arquivo ZIP, isso pode levar um tempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossível enviar seus arquivo como diretório ou ele tem 0 bytes.",
diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php
index e413d7cbe74..998c494a695 100644
--- a/apps/files/l10n/pt_PT.php
+++ b/apps/files/l10n/pt_PT.php
@@ -12,8 +12,8 @@
"replace" => "substituir",
"cancel" => "cancelar",
"replaced" => "substituido",
-"with" => "com",
"undo" => "desfazer",
+"with" => "com",
"deleted" => "apagado",
"generating ZIP-file, it may take some time." => "a gerar o ficheiro ZIP, poderá demorar algum tempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Não é possivel fazer o upload do ficheiro devido a ser uma pasta ou ter 0 bytes",
diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php
index 71b30d22df4..6a76c254047 100644
--- a/apps/files/l10n/ru.php
+++ b/apps/files/l10n/ru.php
@@ -12,14 +12,15 @@
"replace" => "заменить",
"cancel" => "отмена",
"replaced" => "заменён",
-"with" => "с",
"undo" => "отмена",
+"with" => "с",
"deleted" => "удален",
"generating ZIP-file, it may take some time." => "создание ZIP-файла, это может занять некоторое время.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Не удается загрузить файл размером 0 байт в каталог",
"Upload Error" => "Ошибка загрузки",
"Pending" => "Ожидание",
"Upload cancelled." => "Загрузка отменена.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Файл в процессе загрузки. Покинув страницу вы прервёте загрузку.",
"Invalid name, '/' is not allowed." => "Неверное имя, '/' не допускается.",
"Size" => "Размер",
"Modified" => "Изменён",
diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php
index f6322b2507d..0d56a0c6476 100644
--- a/apps/files/l10n/sl.php
+++ b/apps/files/l10n/sl.php
@@ -10,16 +10,18 @@
"Delete" => "Izbriši",
"already exists" => "že obstaja",
"replace" => "nadomesti",
+"suggest name" => "predlagaj ime",
"cancel" => "ekliči",
"replaced" => "nadomeščen",
-"with" => "z",
"undo" => "razveljavi",
+"with" => "z",
"deleted" => "izbrisano",
"generating ZIP-file, it may take some time." => "Ustvarjam ZIP datoteko. To lahko traja nekaj časa.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nalaganje ni mogoče, saj gre za mapo, ali pa ima datoteka velikost 0 bajtov.",
"Upload Error" => "Napaka pri nalaganju",
"Pending" => "Na čakanju",
"Upload cancelled." => "Nalaganje je bilo preklicano.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Nalaganje datoteke je v teku. Če zapustite to stran zdaj, boste nalaganje preklicali.",
"Invalid name, '/' is not allowed." => "Neveljavno ime. Znak '/' ni dovoljen.",
"Size" => "Velikost",
"Modified" => "Spremenjeno",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "Omogoči ZIP-prejemanje",
"0 is unlimited" => "0 je neskončno",
"Maximum input size for ZIP files" => "Največja vhodna velikost za ZIP datoteke",
+"Save" => "Shrani",
"New" => "Nova",
"Text file" => "Besedilna datoteka",
"Folder" => "Mapa",
diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php
index a62b7522511..137222b4178 100644
--- a/apps/files/l10n/sv.php
+++ b/apps/files/l10n/sv.php
@@ -10,16 +10,18 @@
"Delete" => "Radera",
"already exists" => "finns redan",
"replace" => "ersätt",
+"suggest name" => "föreslå namn",
"cancel" => "avbryt",
"replaced" => "ersatt",
-"with" => "med",
"undo" => "ångra",
+"with" => "med",
"deleted" => "raderad",
"generating ZIP-file, it may take some time." => "genererar ZIP-fil, det kan ta lite tid.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kunde inte ladda upp dina filer eftersom det antingen är en mapp eller har 0 bytes.",
"Upload Error" => "Uppladdningsfel",
"Pending" => "Väntar",
"Upload cancelled." => "Uppladdning avbruten.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.",
"Invalid name, '/' is not allowed." => "Ogiltigt namn, '/' är inte tillåten.",
"Size" => "Storlek",
"Modified" => "Ändrad",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "Aktivera ZIP-nerladdning",
"0 is unlimited" => "0 är oändligt",
"Maximum input size for ZIP files" => "Största tillåtna storlek för ZIP-filer",
+"Save" => "Spara",
"New" => "Ny",
"Text file" => "Textfil",
"Folder" => "Mapp",
diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php
index eed9c36e132..5809ac1f098 100644
--- a/apps/files/l10n/th_TH.php
+++ b/apps/files/l10n/th_TH.php
@@ -10,16 +10,18 @@
"Delete" => "ลบ",
"already exists" => "มีอยู่แล้ว",
"replace" => "แทนที่",
+"suggest name" => "แนะนำชื่อ",
"cancel" => "ยกเลิก",
"replaced" => "แทนที่แล้ว",
-"with" => "กับ",
"undo" => "เลิกทำ",
+"with" => "กับ",
"deleted" => "ลบแล้ว",
"generating ZIP-file, it may take some time." => "กำลังสร้างไฟล์บีบอัด ZIP อาจใช้เวลาสักครู่",
"Unable to upload your file as it is a directory or has 0 bytes" => "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่หรือมีขนาด 0 ไบต์",
"Upload Error" => "เกิดข้อผิดพลาดในการอัพโหลด",
"Pending" => "อยู่ระหว่างดำเนินการ",
"Upload cancelled." => "การอัพโหลดถูกยกเลิก",
+"File upload is in progress. Leaving the page now will cancel the upload." => "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
"Invalid name, '/' is not allowed." => "ชื่อที่ใช้ไม่ถูกต้อง '/' ไม่อนุญาตให้ใช้งาน",
"Size" => "ขนาด",
"Modified" => "ปรับปรุงล่าสุด",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "อนุญาตให้ดาวน์โหลดเป็นไฟล์ ZIP ได้",
"0 is unlimited" => "0 หมายถึงไม่จำกัด",
"Maximum input size for ZIP files" => "ขนาดไฟล์ ZIP สูงสุด",
+"Save" => "บันทึก",
"New" => "อัพโหลดไฟล์ใหม่",
"Text file" => "ไฟล์ข้อความ",
"Folder" => "แฟ้มเอกสาร",
diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php
index 224322b24e0..72e0e1427d3 100644
--- a/apps/files/l10n/tr.php
+++ b/apps/files/l10n/tr.php
@@ -8,13 +8,19 @@
"Failed to write to disk" => "Diske yazılamadı",
"Files" => "Dosyalar",
"Delete" => "Sil",
+"already exists" => "zaten mevcut",
+"replace" => "değiştir",
+"cancel" => "iptal",
+"replaced" => "değiştirildi",
"undo" => "geri al",
+"with" => "ile",
"deleted" => "silindi",
"generating ZIP-file, it may take some time." => "ZIP dosyası oluşturuluyor, biraz sürebilir.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Dosyanızın boyutu 0 byte olduğundan veya bir dizin olduğundan yüklenemedi",
"Upload Error" => "Yükleme hatası",
"Pending" => "Bekliyor",
"Upload cancelled." => "Yükleme iptal edildi.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Dosya yükleme işlemi sürüyor. Şimdi sayfadan ayrılırsanız işleminiz iptal olur.",
"Invalid name, '/' is not allowed." => "Geçersiz isim, '/' işaretine izin verilmiyor.",
"Size" => "Boyut",
"Modified" => "Değiştirilme",
diff --git a/apps/files/l10n/zh_CN.GB2312.php b/apps/files/l10n/zh_CN.GB2312.php
index 6703e6f9088..42063712eac 100644
--- a/apps/files/l10n/zh_CN.GB2312.php
+++ b/apps/files/l10n/zh_CN.GB2312.php
@@ -12,8 +12,8 @@
"replace" => "替换",
"cancel" => "取消",
"replaced" => "替换过了",
-"with" => "随着",
"undo" => "撤销",
+"with" => "随着",
"deleted" => "删除",
"generating ZIP-file, it may take some time." => "正在生成ZIP文件,这可能需要点时间",
"Unable to upload your file as it is a directory or has 0 bytes" => "不能上传你指定的文件,可能因为它是个文件夹或者大小为0",
diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php
index dc783018848..3fdb5b6af3e 100644
--- a/apps/files/l10n/zh_CN.php
+++ b/apps/files/l10n/zh_CN.php
@@ -10,16 +10,18 @@
"Delete" => "删除",
"already exists" => "已经存在",
"replace" => "替换",
+"suggest name" => "建议名称",
"cancel" => "取消",
"replaced" => "已经替换",
-"with" => "随着",
"undo" => "撤销",
+"with" => "随着",
"deleted" => "已经删除",
"generating ZIP-file, it may take some time." => "正在生成 ZIP 文件,可能需要一些时间",
"Unable to upload your file as it is a directory or has 0 bytes" => "无法上传文件,因为它是一个目录或者大小为 0 字节",
"Upload Error" => "上传错误",
"Pending" => "操作等待中",
"Upload cancelled." => "上传已取消",
+"File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传中。现在离开此页会导致上传动作被取消。",
"Invalid name, '/' is not allowed." => "非法的名称,不允许使用‘/’。",
"Size" => "大小",
"Modified" => "修改日期",
@@ -34,6 +36,7 @@
"Enable ZIP-download" => "启用 ZIP 下载",
"0 is unlimited" => "0 为无限制",
"Maximum input size for ZIP files" => "ZIP 文件的最大输入大小",
+"Save" => "保存",
"New" => "新建",
"Text file" => "文本文件",
"Folder" => "文件夹",
diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php
index bc8aa4ff892..9652fb5a073 100644
--- a/apps/files/l10n/zh_TW.php
+++ b/apps/files/l10n/zh_TW.php
@@ -8,6 +8,15 @@
"Failed to write to disk" => "寫入硬碟失敗",
"Files" => "檔案",
"Delete" => "刪除",
+"already exists" => "已經存在",
+"replace" => "取代",
+"cancel" => "取消",
+"generating ZIP-file, it may take some time." => "產生壓縮檔, 它可能需要一段時間.",
+"Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0",
+"Upload Error" => "上傳發生錯誤",
+"Upload cancelled." => "上傳取消",
+"File upload is in progress. Leaving the page now will cancel the upload." => "檔案上傳中. 離開此頁面將會取消上傳.",
+"Invalid name, '/' is not allowed." => "無效的名稱, '/'是不被允許的",
"Size" => "大小",
"Modified" => "修改",
"File handling" => "檔案處理",
diff --git a/apps/files/settings.php b/apps/files/settings.php
index b02c3738c6e..52ec9fd0fe3 100644
--- a/apps/files/settings.php
+++ b/apps/files/settings.php
@@ -36,7 +36,7 @@ OCP\Util::addscript( "files", "files" );
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
$files = array();
-foreach( OC_Files::getdirectorycontent( $dir ) as $i ){
+foreach( OC_Files::getdirectorycontent( $dir ) as $i ) {
$i["date"] = date( $CONFIG_DATEFORMAT, $i["mtime"] );
$files[] = $i;
}
@@ -44,8 +44,8 @@ foreach( OC_Files::getdirectorycontent( $dir ) as $i ){
// Make breadcrumb
$breadcrumb = array();
$pathtohere = "/";
-foreach( explode( "/", $dir ) as $i ){
- if( $i != "" ){
+foreach( explode( "/", $dir ) as $i ) {
+ if( $i != "" ) {
$pathtohere .= "$i/";
$breadcrumb[] = array( "dir" => $pathtohere, "name" => $i );
}
diff --git a/apps/files/templates/admin.php b/apps/files/templates/admin.php
index 3ad0629750b..c4fe4c86569 100644
--- a/apps/files/templates/admin.php
+++ b/apps/files/templates/admin.php
@@ -11,6 +11,6 @@
<input name="maxZipInputSize" id="maxZipInputSize" style="width:180px;" value='<?php echo $_['maxZipInputSize'] ?>' title="<?php echo $l->t( '0 is unlimited' ); ?>"<?php if (!$_['allowZipDownload']) echo ' disabled="disabled"'; ?> />
<label for="maxZipInputSize"><?php echo $l->t( 'Maximum input size for ZIP files' ); ?> </label><br />
- <input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings" value="Save"/>
+ <input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings" value="<?php echo $l->t( 'Save' ); ?>"/>
</fieldset>
</form>
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index bcf683ae4a8..911a312fb9a 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -32,6 +32,7 @@
<?php else:?>
<input type="hidden" name="dir" value="<?php echo $_['dir'] ?>" id="dir">
<?php endif;?>
+ <input type="hidden" name="permissions" value="<?php echo $_['permissions']; ?>" id="permissions">
</div>
<div id='notification'></div>
@@ -53,7 +54,17 @@
</span>
</th>
<th id="headerSize"><?php echo $l->t( 'Size' ); ?></th>
- <th id="headerDate"><span id="modified"><?php echo $l->t( 'Modified' ); ?></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>
+ <th id="headerDate">
+ <span id="modified"><?php echo $l->t( 'Modified' ); ?></span>
+ <?php if ($_['permissions'] & OCP\Share::PERMISSION_DELETE): ?>
+<!-- NOTE: Temporary fix to allow unsharing of files in root of Shared folder -->
+ <?php if ($_['dir'] == '/Shared'): ?>
+ <span class="selectedActions"><a href="" class="delete"><?php echo $l->t('Unshare')?> <img class="svg" alt="<?php echo $l->t('Unshare')?>" src="<?php echo OCP\image_path("core", "actions/delete.svg"); ?>" /></a></span>
+ <?php else: ?>
+ <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>
+ <?php endif; ?>
+ <?php endif; ?>
+ </th>
</tr>
</thead>
<tbody id="fileList">
diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php
index 679d0b95edc..bb130a366be 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -10,7 +10,7 @@ OCP\Util::connectHook('OC_User','post_login','OC_Crypt','loginListener');
stream_wrapper_register('crypt','OC_CryptStream');
-if(!isset($_SESSION['enckey']) and OCP\User::isLoggedIn()){//force the user to re-loggin if the encryption key isn't unlocked (happens when a user is logged in before the encryption app is enabled)
+if(!isset($_SESSION['enckey']) and OCP\User::isLoggedIn()) {//force the user to re-loggin if the encryption key isn't unlocked (happens when a user is logged in before the encryption app is enabled)
OCP\User::logout();
header("Location: ".OC::$WEBROOT.'/');
exit();
diff --git a/apps/files_encryption/js/settings.js b/apps/files_encryption/js/settings.js
index a160b9e0e18..6fc70eba7f6 100644
--- a/apps/files_encryption/js/settings.js
+++ b/apps/files_encryption/js/settings.js
@@ -20,5 +20,5 @@ $(document).ready(function(){
$('#enable_encryption').change(function(){
var checked=$('#enable_encryption').is(':checked');
OC.AppConfig.setValue('files_encryption','enable_encryption',(checked)?'true':'false');
- })
-}) \ No newline at end of file
+ });
+});
diff --git a/apps/files_encryption/l10n/cs_CZ.php b/apps/files_encryption/l10n/cs_CZ.php
index 15cf7705709..9be2be98092 100644
--- a/apps/files_encryption/l10n/cs_CZ.php
+++ b/apps/files_encryption/l10n/cs_CZ.php
@@ -1,6 +1,6 @@
<?php $TRANSLATIONS = array(
-"Encryption" => "Kryptování",
-"Exclude the following file types from encryption" => "Při kryptování vynechat následující typy souborů",
-"None" => "Žádný",
-"Enable Encryption" => "Povolit kryptování"
+"Encryption" => "Šifrování",
+"Exclude the following file types from encryption" => "Při šifrování vynechat následující typy souborů",
+"None" => "Žádné",
+"Enable Encryption" => "Povolit šifrování"
);
diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php
new file mode 100644
index 00000000000..598f1294f6e
--- /dev/null
+++ b/apps/files_encryption/l10n/sk_SK.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "Šifrovanie",
+"Exclude the following file types from encryption" => "Vynechať nasledujúce súbory pri šifrovaní",
+"None" => "Žiadne",
+"Enable Encryption" => "Zapnúť šifrovanie"
+);
diff --git a/apps/files_encryption/l10n/zh_CN.php b/apps/files_encryption/l10n/zh_CN.php
new file mode 100644
index 00000000000..139ae909709
--- /dev/null
+++ b/apps/files_encryption/l10n/zh_CN.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "加密",
+"None" => "None",
+"Enable Encryption" => "开启加密"
+);
diff --git a/apps/files_encryption/l10n/zh_TW.php b/apps/files_encryption/l10n/zh_TW.php
new file mode 100644
index 00000000000..4c62130cf4f
--- /dev/null
+++ b/apps/files_encryption/l10n/zh_TW.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "加密",
+"Exclude the following file types from encryption" => "下列的檔案類型不加密",
+"None" => "無",
+"Enable Encryption" => "啟用加密"
+);
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php
index 0770bca018d..38d8edf28c3 100644
--- a/apps/files_encryption/lib/crypt.php
+++ b/apps/files_encryption/lib/crypt.php
@@ -31,7 +31,7 @@
// - IMPORTANT! Check if the block lenght of the encrypted data stays the same
-require_once('Crypt_Blowfish/Blowfish.php');
+require_once 'Crypt_Blowfish/Blowfish.php';
/**
* This class is for crypting and decrypting
@@ -39,18 +39,18 @@ require_once('Crypt_Blowfish/Blowfish.php');
class OC_Crypt {
static private $bf = null;
- public static function loginListener($params){
+ public static function loginListener($params) {
self::init($params['uid'],$params['password']);
}
public static function init($login,$password) {
$view=new OC_FilesystemView('/');
- if(!$view->file_exists('/'.$login)){
+ if(!$view->file_exists('/'.$login)) {
$view->mkdir('/'.$login);
}
OC_FileProxy::$enabled=false;
- if(!$view->file_exists('/'.$login.'/encryption.key')){// does key exist?
+ if(!$view->file_exists('/'.$login.'/encryption.key')) {// does key exist?
OC_Crypt::createkey($login,$password);
}
$key=$view->file_get_contents('/'.$login.'/encryption.key');
@@ -66,14 +66,14 @@ class OC_Crypt {
*
* if the key is left out, the default handeler will be used
*/
- public static function getBlowfish($key=''){
- if($key){
+ public static function getBlowfish($key='') {
+ if($key) {
return new Crypt_Blowfish($key);
}else{
- if(!isset($_SESSION['enckey'])){
+ if(!isset($_SESSION['enckey'])) {
return false;
}
- if(!self::$bf){
+ if(!self::$bf) {
self::$bf=new Crypt_Blowfish($_SESSION['enckey']);
}
return self::$bf;
@@ -96,7 +96,7 @@ class OC_Crypt {
}
public static function changekeypasscode($oldPassword, $newPassword) {
- if(OCP\User::isLoggedIn()){
+ if(OCP\User::isLoggedIn()) {
$username=OCP\USER::getUser();
$view=new OC_FilesystemView('/'.$username);
@@ -179,7 +179,7 @@ class OC_Crypt {
while (!feof($handleread)) {
$content = fread($handleread, 8192);
$enccontent=OC_CRYPT::decrypt( $content, $key);
- if(feof($handleread)){
+ if(feof($handleread)) {
$enccontent=rtrim($enccontent, "\0");
}
fwrite($handlewrite, $enccontent);
@@ -192,9 +192,9 @@ class OC_Crypt {
/**
* encrypt data in 8192b sized blocks
*/
- public static function blockEncrypt($data, $key=''){
+ public static function blockEncrypt($data, $key='') {
$result='';
- while(strlen($data)){
+ while(strlen($data)) {
$result.=self::encrypt(substr($data,0,8192),$key);
$data=substr($data,8192);
}
@@ -204,13 +204,13 @@ class OC_Crypt {
/**
* decrypt data in 8192b sized blocks
*/
- public static function blockDecrypt($data, $key='',$maxLength=0){
+ public static function blockDecrypt($data, $key='',$maxLength=0) {
$result='';
- while(strlen($data)){
+ while(strlen($data)) {
$result.=self::decrypt(substr($data,0,8192),$key);
$data=substr($data,8192);
}
- if($maxLength>0){
+ if($maxLength>0) {
return substr($result,0,$maxLength);
}else{
return rtrim($result, "\0");
diff --git a/apps/files_encryption/lib/cryptstream.php b/apps/files_encryption/lib/cryptstream.php
index 75ad62659d7..721a1b955df 100644
--- a/apps/files_encryption/lib/cryptstream.php
+++ b/apps/files_encryption/lib/cryptstream.php
@@ -36,18 +36,18 @@ class OC_CryptStream{
private $size;
private static $rootView;
- public function stream_open($path, $mode, $options, &$opened_path){
- if(!self::$rootView){
+ public function stream_open($path, $mode, $options, &$opened_path) {
+ if(!self::$rootView) {
self::$rootView=new OC_FilesystemView('');
}
$path=str_replace('crypt://','',$path);
- if(dirname($path)=='streams' and isset(self::$sourceStreams[basename($path)])){
+ if(dirname($path)=='streams' and isset(self::$sourceStreams[basename($path)])) {
$this->source=self::$sourceStreams[basename($path)]['stream'];
$this->path=self::$sourceStreams[basename($path)]['path'];
$this->size=self::$sourceStreams[basename($path)]['size'];
}else{
$this->path=$path;
- if($mode=='w' or $mode=='w+' or $mode=='wb' or $mode=='wb+'){
+ if($mode=='w' or $mode=='w+' or $mode=='wb' or $mode=='wb+') {
$this->size=0;
}else{
$this->size=self::$rootView->filesize($path,$mode);
@@ -55,55 +55,55 @@ class OC_CryptStream{
OC_FileProxy::$enabled=false;//disable fileproxies so we can open the source file
$this->source=self::$rootView->fopen($path,$mode);
OC_FileProxy::$enabled=true;
- if(!is_resource($this->source)){
+ if(!is_resource($this->source)) {
OCP\Util::writeLog('files_encryption','failed to open '.$path,OCP\Util::ERROR);
}
}
- if(is_resource($this->source)){
+ if(is_resource($this->source)) {
$this->meta=stream_get_meta_data($this->source);
}
return is_resource($this->source);
}
- public function stream_seek($offset, $whence=SEEK_SET){
+ public function stream_seek($offset, $whence=SEEK_SET) {
$this->flush();
fseek($this->source,$offset,$whence);
}
- public function stream_tell(){
+ public function stream_tell() {
return ftell($this->source);
}
- public function stream_read($count){
+ public function stream_read($count) {
//$count will always be 8192 https://bugs.php.net/bug.php?id=21641
//This makes this function a lot simpler but will breake everything the moment it's fixed
$this->writeCache='';
- if($count!=8192){
+ if($count!=8192) {
OCP\Util::writeLog('files_encryption','php bug 21641 no longer holds, decryption will not work',OCP\Util::FATAL);
die();
}
$pos=ftell($this->source);
$data=fread($this->source,8192);
- if(strlen($data)){
+ if(strlen($data)) {
$result=OC_Crypt::decrypt($data);
}else{
$result='';
}
$length=$this->size-$pos;
- if($length<8192){
+ if($length<8192) {
$result=substr($result,0,$length);
}
return $result;
}
- public function stream_write($data){
+ public function stream_write($data) {
$length=strlen($data);
$currentPos=ftell($this->source);
- if($this->writeCache){
+ if($this->writeCache) {
$data=$this->writeCache.$data;
$this->writeCache='';
}
- if($currentPos%8192!=0){
+ if($currentPos%8192!=0) {
//make sure we always start on a block start
fseek($this->source,-($currentPos%8192),SEEK_CUR);
$encryptedBlock=fread($this->source,8192);
@@ -113,8 +113,8 @@ class OC_CryptStream{
fseek($this->source,-($currentPos%8192),SEEK_CUR);
}
$currentPos=ftell($this->source);
- while($remainingLength=strlen($data)>0){
- if($remainingLength<8192){
+ while($remainingLength=strlen($data)>0) {
+ if($remainingLength<8192) {
$this->writeCache=$data;
$data='';
}else{
@@ -127,8 +127,8 @@ class OC_CryptStream{
return $length;
}
- public function stream_set_option($option,$arg1,$arg2){
- switch($option){
+ public function stream_set_option($option,$arg1,$arg2) {
+ switch($option) {
case STREAM_OPTION_BLOCKING:
stream_set_blocking($this->source,$arg1);
break;
@@ -140,33 +140,33 @@ class OC_CryptStream{
}
}
- public function stream_stat(){
+ public function stream_stat() {
return fstat($this->source);
}
- public function stream_lock($mode){
+ public function stream_lock($mode) {
flock($this->source,$mode);
}
- public function stream_flush(){
+ public function stream_flush() {
return fflush($this->source);
}
- public function stream_eof(){
+ public function stream_eof() {
return feof($this->source);
}
- private function flush(){
- if($this->writeCache){
+ private function flush() {
+ if($this->writeCache) {
$encrypted=OC_Crypt::encrypt($this->writeCache);
fwrite($this->source,$encrypted);
$this->writeCache='';
}
}
- public function stream_close(){
+ public function stream_close() {
$this->flush();
- if($this->meta['mode']!='r' and $this->meta['mode']!='rb'){
+ if($this->meta['mode']!='r' and $this->meta['mode']!='rb') {
OC_FileCache::put($this->path,array('encrypted'=>true,'size'=>$this->size),'');
}
return fclose($this->source);
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 247924b2aaf..f61cd1e3773 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -34,21 +34,21 @@ class OC_FileProxy_Encryption extends OC_FileProxy{
* @param string $path
* @return bool
*/
- private static function shouldEncrypt($path){
- if(is_null(self::$enableEncryption)){
+ private static function shouldEncrypt($path) {
+ if(is_null(self::$enableEncryption)) {
self::$enableEncryption=(OCP\Config::getAppValue('files_encryption','enable_encryption','true')=='true');
}
- if(!self::$enableEncryption){
+ if(!self::$enableEncryption) {
return false;
}
- if(is_null(self::$blackList)){
+ if(is_null(self::$blackList)) {
self::$blackList=explode(',',OCP\Config::getAppValue('files_encryption','type_blacklist','jpg,png,jpeg,avi,mpg,mpeg,mkv,mp3,oga,ogv,ogg'));
}
- if(self::isEncrypted($path)){
+ if(self::isEncrypted($path)) {
return true;
}
$extension=substr($path,strrpos($path,'.')+1);
- if(array_search($extension,self::$blackList)===false){
+ if(array_search($extension,self::$blackList)===false) {
return true;
}
}
@@ -58,13 +58,13 @@ class OC_FileProxy_Encryption extends OC_FileProxy{
* @param string $path
* @return bool
*/
- private static function isEncrypted($path){
+ private static function isEncrypted($path) {
$metadata=OC_FileCache_Cached::get($path,'');
return isset($metadata['encrypted']) and (bool)$metadata['encrypted'];
}
- public function preFile_put_contents($path,&$data){
- if(self::shouldEncrypt($path)){
+ public function preFile_put_contents($path,&$data) {
+ if(self::shouldEncrypt($path)) {
if (!is_resource($data)) {//stream put contents should have been converter to fopen
$size=strlen($data);
$data=OC_Crypt::blockEncrypt($data);
@@ -73,24 +73,24 @@ class OC_FileProxy_Encryption extends OC_FileProxy{
}
}
- public function postFile_get_contents($path,$data){
- if(self::isEncrypted($path)){
+ public function postFile_get_contents($path,$data) {
+ if(self::isEncrypted($path)) {
$cached=OC_FileCache_Cached::get($path,'');
$data=OC_Crypt::blockDecrypt($data,'',$cached['size']);
}
return $data;
}
- public function postFopen($path,&$result){
- if(!$result){
+ public function postFopen($path,&$result) {
+ if(!$result) {
return $result;
}
$meta=stream_get_meta_data($result);
- if(self::isEncrypted($path)){
+ if(self::isEncrypted($path)) {
fclose($result);
$result=fopen('crypt://'.$path,$meta['mode']);
- }elseif(self::shouldEncrypt($path) and $meta['mode']!='r' and $meta['mode']!='rb'){
- if(OC_Filesystem::file_exists($path) and OC_Filesystem::filesize($path)>0){
+ }elseif(self::shouldEncrypt($path) and $meta['mode']!='r' and $meta['mode']!='rb') {
+ if(OC_Filesystem::file_exists($path) and OC_Filesystem::filesize($path)>0) {
//first encrypt the target file so we don't end up with a half encrypted file
OCP\Util::writeLog('files_encryption','Decrypting '.$path.' before writing',OCP\Util::DEBUG);
$tmp=fopen('php://temp');
@@ -104,23 +104,23 @@ class OC_FileProxy_Encryption extends OC_FileProxy{
return $result;
}
- public function postGetMimeType($path,$mime){
- if(self::isEncrypted($path)){
+ public function postGetMimeType($path,$mime) {
+ if(self::isEncrypted($path)) {
$mime=OCP\Files::getMimeType('crypt://'.$path,'w');
}
return $mime;
}
- public function postStat($path,$data){
- if(self::isEncrypted($path)){
+ public function postStat($path,$data) {
+ if(self::isEncrypted($path)) {
$cached=OC_FileCache_Cached::get($path,'');
$data['size']=$cached['size'];
}
return $data;
}
- public function postFileSize($path,$size){
- if(self::isEncrypted($path)){
+ public function postFileSize($path,$size) {
+ if(self::isEncrypted($path)) {
$cached=OC_FileCache_Cached::get($path,'');
return $cached['size'];
}else{
diff --git a/apps/files_encryption/templates/settings.php b/apps/files_encryption/templates/settings.php
index 79780d694cf..55e8cf1542c 100644
--- a/apps/files_encryption/templates/settings.php
+++ b/apps/files_encryption/templates/settings.php
@@ -7,6 +7,6 @@
<option selected="selected" value="<?php echo $type;?>"><?php echo $type;?></option>
<?php endforeach;?>
</select>
- <input type='checkbox' id='enable_encryption' <?php if($_['encryption_enabled']){echo 'checked="checked"';} ?>></input><label for='enable_encryption'><?php echo $l->t('Enable Encryption')?></label>
+ <input type='checkbox' id='enable_encryption' <?php if($_['encryption_enabled']) {echo 'checked="checked"';} ?>></input><label for='enable_encryption'><?php echo $l->t('Enable Encryption')?></label>
</fieldset>
</form>
diff --git a/apps/files_encryption/tests/encryption.php b/apps/files_encryption/tests/encryption.php
index f70411ed63c..89397f6ef2c 100644
--- a/apps/files_encryption/tests/encryption.php
+++ b/apps/files_encryption/tests/encryption.php
@@ -7,7 +7,7 @@
*/
class Test_Encryption extends UnitTestCase {
- function testEncryption(){
+ function testEncryption() {
$key=uniqid();
$file=OC::$SERVERROOT.'/3rdparty/MDB2.php';
$source=file_get_contents($file); //nice large text file
@@ -54,7 +54,7 @@ class Test_Encryption extends UnitTestCase {
}
- function testBinary(){
+ function testBinary() {
$key=uniqid();
$file=__DIR__.'/binary';
diff --git a/apps/files_encryption/tests/proxy.php b/apps/files_encryption/tests/proxy.php
index c4952d13d39..042011a6c87 100644
--- a/apps/files_encryption/tests/proxy.php
+++ b/apps/files_encryption/tests/proxy.php
@@ -10,7 +10,7 @@ class Test_CryptProxy extends UnitTestCase {
private $oldConfig;
private $oldKey;
- public function setUp(){
+ public function setUp() {
$user=OC_User::getUser();
$this->oldConfig=OCP\Config::getAppValue('files_encryption','enable_encryption','true');
@@ -40,14 +40,14 @@ class Test_CryptProxy extends UnitTestCase {
$rootView->mkdir('/'.$user.'/files');
}
- public function tearDown(){
+ public function tearDown() {
OCP\Config::setAppValue('files_encryption','enable_encryption',$this->oldConfig);
- if(!is_null($this->oldKey)){
+ if(!is_null($this->oldKey)) {
$_SESSION['enckey']=$this->oldKey;
}
}
- public function testSimple(){
+ public function testSimple() {
$file=OC::$SERVERROOT.'/3rdparty/MDB2.php';
$original=file_get_contents($file);
@@ -64,7 +64,7 @@ class Test_CryptProxy extends UnitTestCase {
}
- public function testView(){
+ public function testView() {
$file=OC::$SERVERROOT.'/3rdparty/MDB2.php';
$original=file_get_contents($file);
@@ -86,7 +86,7 @@ class Test_CryptProxy extends UnitTestCase {
$this->assertEqual($original,$fromFile);
}
- public function testBinary(){
+ public function testBinary() {
$file=__DIR__.'/binary';
$original=file_get_contents($file);
diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php
index 517d497344e..39b13620782 100644
--- a/apps/files_encryption/tests/stream.php
+++ b/apps/files_encryption/tests/stream.php
@@ -9,7 +9,7 @@
class Test_CryptStream extends UnitTestCase {
private $tmpFiles=array();
- function testStream(){
+ function testStream() {
$stream=$this->getStream('test1','w',strlen('foobar'));
fwrite($stream,'foobar');
fclose($stream);
@@ -40,11 +40,11 @@ class Test_CryptStream extends UnitTestCase {
* @param int size
* @return resource
*/
- function getStream($id,$mode,$size){
- if($id===''){
+ function getStream($id,$mode,$size) {
+ if($id==='') {
$id=uniqid();
}
- if(!isset($this->tmpFiles[$id])){
+ if(!isset($this->tmpFiles[$id])) {
$file=OCP\Files::tmpFile();
$this->tmpFiles[$id]=$file;
}else{
@@ -55,7 +55,7 @@ class Test_CryptStream extends UnitTestCase {
return fopen('crypt://streams/'.$id,$mode);
}
- function testBinary(){
+ function testBinary() {
$file=__DIR__.'/binary';
$source=file_get_contents($file);
diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js
index 92194792f42..dd3a1cb1858 100644
--- a/apps/files_external/js/dropbox.js
+++ b/apps/files_external/js/dropbox.js
@@ -10,7 +10,7 @@ $(document).ready(function() {
var app_secret = $(this).find('.configuration [data-parameter="app_secret"]').val();
var config = $(this).find('.configuration');
if (app_key != '' && app_secret != '') {
- var pos = window.location.search.indexOf('oauth_token') + 12
+ var pos = window.location.search.indexOf('oauth_token') + 12;
var token = $(this).find('.configuration [data-parameter="token"]');
if (pos != -1 && window.location.search.substr(pos, $(token).val().length) == $(token).val()) {
var token_secret = $(this).find('.configuration [data-parameter="token_secret"]');
@@ -73,7 +73,7 @@ $(document).ready(function() {
}
});
} else {
- OC.dialogs.alert('Please provide a valid Dropbox app key and secret.', 'Error configuring Dropbox storage')
+ OC.dialogs.alert('Please provide a valid Dropbox app key and secret.', 'Error configuring Dropbox storage');
}
});
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index f3460070901..89f346574e2 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -66,7 +66,7 @@ OC.MountConfig={
return true;
}
}
-}
+};
$(document).ready(function() {
$('.chzn-select').chosen();
@@ -179,4 +179,4 @@ $(document).ready(function() {
}
});
-}); \ No newline at end of file
+});
diff --git a/apps/files_external/l10n/cs_CZ.php b/apps/files_external/l10n/cs_CZ.php
index e8a38d86619..75899603349 100644
--- a/apps/files_external/l10n/cs_CZ.php
+++ b/apps/files_external/l10n/cs_CZ.php
@@ -1,18 +1,18 @@
<?php $TRANSLATIONS = array(
"External Storage" => "Externí úložiště",
"Mount point" => "Přípojný bod",
-"Backend" => "Končící",
-"Configuration" => "Konfigurace",
-"Options" => "Nastavení",
+"Backend" => "Podpůrná vrstva",
+"Configuration" => "Nastavení",
+"Options" => "Možnosti",
"Applicable" => "Platný",
-"Add mount point" => "Přidat přípojný bod",
+"Add mount point" => "Přidat bod připojení",
"None set" => "Nenastaveno",
"All Users" => "Všichni uživatelé",
"Groups" => "Skupiny",
"Users" => "Uživatelé",
"Delete" => "Smazat",
-"SSL root certificates" => "Kořenové SSL certifikáty",
-"Import Root Certificate" => "Import kořenového certifikátu",
-"Enable User External Storage" => "Zapnout uživatelské externí úložiště",
-"Allow users to mount their own external storage" => "Povolit uživatelů připojit jejich vlastní externí úložiště"
+"SSL root certificates" => "Kořenové certifikáty SSL",
+"Import Root Certificate" => "Importovat kořenového certifikátu",
+"Enable User External Storage" => "Zapnout externí uživatelské úložiště",
+"Allow users to mount their own external storage" => "Povolit uživatelům připojení jejich vlastních externích úložišť"
);
diff --git a/apps/files_external/l10n/es.php b/apps/files_external/l10n/es.php
index c1c605735fe..004c352c199 100644
--- a/apps/files_external/l10n/es.php
+++ b/apps/files_external/l10n/es.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"External Storage" => "Almacenamiento externo",
+"Mount point" => "Punto de montaje",
"Backend" => "Motor",
"Configuration" => "Configuración",
"Options" => "Opciones",
@@ -9,5 +10,9 @@
"All Users" => "Todos los usuarios",
"Groups" => "Grupos",
"Users" => "Usuarios",
-"Delete" => "Eliiminar"
+"Delete" => "Eliiminar",
+"SSL root certificates" => "Raíz de certificados SSL ",
+"Import Root Certificate" => "Importar certificado raíz",
+"Enable User External Storage" => "Habilitar almacenamiento de usuario externo",
+"Allow users to mount their own external storage" => "Permitir a los usuarios montar su propio almacenamiento externo"
);
diff --git a/apps/files_external/l10n/eu.php b/apps/files_external/l10n/eu.php
index a594cdff1f2..d1028d2b9bb 100644
--- a/apps/files_external/l10n/eu.php
+++ b/apps/files_external/l10n/eu.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
"External Storage" => "Kanpoko Biltegiratzea",
"Mount point" => "Montatze puntua",
+"Backend" => "Motorra",
"Configuration" => "Konfigurazioa",
"Options" => "Aukerak",
"Add mount point" => "Gehitu muntatze puntua",
diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php
index 7dca49791e4..cea671368ed 100644
--- a/apps/files_external/l10n/fi_FI.php
+++ b/apps/files_external/l10n/fi_FI.php
@@ -4,6 +4,7 @@
"Backend" => "Taustaosa",
"Configuration" => "Asetukset",
"Options" => "Valinnat",
+"Applicable" => "Sovellettavissa",
"Add mount point" => "Lisää liitospiste",
"None set" => "Ei asetettu",
"All Users" => "Kaikki käyttäjät",
@@ -12,5 +13,6 @@
"Delete" => "Poista",
"SSL root certificates" => "SSL-juurivarmenteet",
"Import Root Certificate" => "Tuo juurivarmenne",
+"Enable User External Storage" => "Ota käyttöön ulkopuoliset tallennuspaikat",
"Allow users to mount their own external storage" => "Salli käyttäjien liittää omia erillisiä tallennusvälineitä"
);
diff --git a/apps/files_external/l10n/he.php b/apps/files_external/l10n/he.php
new file mode 100644
index 00000000000..edfa9aa85f0
--- /dev/null
+++ b/apps/files_external/l10n/he.php
@@ -0,0 +1,13 @@
+<?php $TRANSLATIONS = array(
+"External Storage" => "אחסון חיצוני",
+"Configuration" => "הגדרות",
+"Options" => "אפשרויות",
+"All Users" => "כל המשתמשים",
+"Groups" => "קבוצות",
+"Users" => "משתמשים",
+"Delete" => "מחיקה",
+"SSL root certificates" => "שורש אישורי אבטחת SSL ",
+"Import Root Certificate" => "ייבוא אישור אבטחת שורש",
+"Enable User External Storage" => "הפעלת אחסון חיצוני למשתמשים",
+"Allow users to mount their own external storage" => "יאפשר למשתמשים לעגן את האחסון החיצוני שלהם"
+);
diff --git a/apps/files_external/l10n/it.php b/apps/files_external/l10n/it.php
index 927499b0172..5c5d32b214c 100644
--- a/apps/files_external/l10n/it.php
+++ b/apps/files_external/l10n/it.php
@@ -11,8 +11,8 @@
"Groups" => "Gruppi",
"Users" => "Utenti",
"Delete" => "Elimina",
-"SSL root certificates" => "Certificato principale per SSL",
-"Import Root Certificate" => "Importa certificato principale",
+"SSL root certificates" => "Certificati SSL radice",
+"Import Root Certificate" => "Importa certificato radice",
"Enable User External Storage" => "Abilita la memoria esterna dell'utente",
-"Allow users to mount their own external storage" => "Consente agli utenti di montare la propria memoria esterna"
+"Allow users to mount their own external storage" => "Consenti agli utenti di montare la propria memoria esterna"
);
diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php
new file mode 100644
index 00000000000..24087ea7feb
--- /dev/null
+++ b/apps/files_external/l10n/sk_SK.php
@@ -0,0 +1,18 @@
+<?php $TRANSLATIONS = array(
+"External Storage" => "Externé úložisko",
+"Mount point" => "Prípojný bod",
+"Backend" => "Backend",
+"Configuration" => "Nastavenia",
+"Options" => "Možnosti",
+"Applicable" => "Aplikovateľné",
+"Add mount point" => "Pridať prípojný bod",
+"None set" => "Žiadne nastavené",
+"All Users" => "Všetci užívatelia",
+"Groups" => "Skupiny",
+"Users" => "Užívatelia",
+"Delete" => "Odstrániť",
+"SSL root certificates" => "Koreňové SSL certifikáty",
+"Import Root Certificate" => "Importovať koreňový certifikát",
+"Enable User External Storage" => "Povoliť externé úložisko",
+"Allow users to mount their own external storage" => "Povoliť užívateľom pripojiť ich vlastné externé úložisko"
+);
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index f1bc16e2537..eec31ec2ef9 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -1,283 +1,281 @@
-<?php
-/**
-* ownCloud
-*
-* @author Michael Gapczynski
-* @copyright 2012 Michael Gapczynski mtgap@owncloud.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
-* Class to configure the config/mount.php and data/$user/mount.php files
-*/
-class OC_Mount_Config {
-
- const MOUNT_TYPE_GLOBAL = 'global';
- const MOUNT_TYPE_GROUP = 'group';
- const MOUNT_TYPE_USER = 'user';
-
- /**
- * Get details on each of the external storage backends, used for the mount config UI
- * If a custom UI is needed, add the key 'custom' and a javascript file with that name will be loaded
- * If the configuration parameter should be secret, add a '*' to the beginning of the value
- * If the configuration parameter is a boolean, add a '!' to the beginning of the value
- * If the configuration parameter is optional, add a '&' to the beginning of the value
- * If the configuration parameter is hidden, add a '#' to the begining of the value
- * @return array
- */
- public static function getBackends() {
- return array(
- 'OC_Filestorage_Local' => array('backend' => 'Local', 'configuration' => array('datadir' => 'Location')),
- 'OC_Filestorage_AmazonS3' => array('backend' => 'Amazon S3', 'configuration' => array('key' => 'Key', 'secret' => '*Secret', 'bucket' => 'Bucket')),
- 'OC_Filestorage_Dropbox' => array('backend' => 'Dropbox', 'configuration' => array('configured' => '#configured','app_key' => 'App key', 'app_secret' => 'App secret', 'token' => '#token', 'token_secret' => '#token_secret'), 'custom' => 'dropbox'),
- 'OC_Filestorage_FTP' => array('backend' => 'FTP', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure ftps://')),
- 'OC_Filestorage_Google' => array('backend' => 'Google Drive', 'configuration' => array('configured' => '#configured', 'token' => '#token', 'token_secret' => '#token secret'), 'custom' => 'google'),
- 'OC_Filestorage_SWIFT' => array('backend' => 'OpenStack Swift', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'token' => '*Token', 'root' => '&Root', 'secure' => '!Secure ftps://')),
- 'OC_Filestorage_SMB' => array('backend' => 'SMB', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'share' => 'Share', 'root' => '&Root')),
- 'OC_Filestorage_DAV' => array('backend' => 'WebDAV', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure https://'))
- );
- }
-
- /**
- * Get the system mount points
- * The returned array is not in the same format as getUserMountPoints()
- * @return array
- */
- public static function getSystemMountPoints() {
- $mountPoints = self::readData(false);
- $backends = self::getBackends();
- $system = array();
- if (isset($mountPoints[self::MOUNT_TYPE_GROUP])) {
- foreach ($mountPoints[self::MOUNT_TYPE_GROUP] as $group => $mounts) {
- foreach ($mounts as $mountPoint => $mount) {
- // Remove '/$user/files/' from mount point
- $mountPoint = substr($mountPoint, 13);
- // Merge the mount point into the current mount points
- if (isset($system[$mountPoint]) && $system[$mountPoint]['configuration'] == $mount['options']) {
- $system[$mountPoint]['applicable']['groups'] = array_merge($system[$mountPoint]['applicable']['groups'], array($group));
- } else {
- $system[$mountPoint] = array('class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options'], 'applicable' => array('groups' => array($group), 'users' => array()));
- }
- }
- }
- }
- if (isset($mountPoints[self::MOUNT_TYPE_USER])) {
- foreach ($mountPoints[self::MOUNT_TYPE_USER] as $user => $mounts) {
- foreach ($mounts as $mountPoint => $mount) {
- // Remove '/$user/files/' from mount point
- $mountPoint = substr($mountPoint, 13);
- // Merge the mount point into the current mount points
- if (isset($system[$mountPoint]) && $system[$mountPoint]['configuration'] == $mount['options']) {
- $system[$mountPoint]['applicable']['users'] = array_merge($system[$mountPoint]['applicable']['users'], array($user));
- } else {
- $system[$mountPoint] = array('class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options'], 'applicable' => array('groups' => array(), 'users' => array($user)));
- }
- }
- }
- }
- return $system;
- }
-
- /**
- * Get the personal mount points of the current user
- * The returned array is not in the same format as getUserMountPoints()
- * @return array
- */
- public static function getPersonalMountPoints() {
- $mountPoints = self::readData(true);
- $backends = self::getBackends();
- $uid = OCP\User::getUser();
- $personal = array();
- if (isset($mountPoints[self::MOUNT_TYPE_USER][$uid])) {
- foreach ($mountPoints[self::MOUNT_TYPE_USER][$uid] as $mountPoint => $mount) {
- // Remove '/uid/files/' from mount point
- $personal[substr($mountPoint, strlen($uid) + 8)] = array('class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options']);
- }
- }
- return $personal;
- }
-
-
- /**
- * Add a mount point to the filesystem
- * @param string Mount point
- * @param string Backend class
- * @param array Backend parameters for the class
- * @param string MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
- * @param string User or group to apply mount to
- * @param bool Personal or system mount point i.e. is this being called from the personal or admin page
- * @return bool
- */
- public static function addMountPoint($mountPoint, $class, $classOptions, $mountType, $applicable, $isPersonal = false) {
- if ($isPersonal) {
- // Verify that the mount point applies for the current user
- // Prevent non-admin users from mounting local storage
- if ($applicable != OCP\User::getUser() || $class == 'OC_Filestorage_Local') {
- return false;
- }
- $mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
- } else {
- $mountPoint = '/$user/files/'.ltrim($mountPoint, '/');
- }
- $mount = array($applicable => array($mountPoint => array('class' => $class, 'options' => $classOptions)));
- $mountPoints = self::readData($isPersonal);
- // Merge the new mount point into the current mount points
- if (isset($mountPoints[$mountType])) {
- if (isset($mountPoints[$mountType][$applicable])) {
- $mountPoints[$mountType][$applicable] = array_merge($mountPoints[$mountType][$applicable], $mount[$applicable]);
- } else {
- $mountPoints[$mountType] = array_merge($mountPoints[$mountType], $mount);
- }
- } else {
- $mountPoints[$mountType] = $mount;
- }
- self::writeData($isPersonal, $mountPoints);
- return true;
- }
-
- /**
- *
- * @param string Mount point
- * @param string MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
- * @param string User or group to remove mount from
- * @param bool Personal or system mount point
- * @return bool
- */
- public static function removeMountPoint($mountPoint, $mountType, $applicable, $isPersonal = false) {
- // Verify that the mount point applies for the current user
- if ($isPersonal) {
- if ($applicable != OCP\User::getUser()) {
- return false;
- }
- $mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
- } else {
- $mountPoint = '/$user/files/'.ltrim($mountPoint, '/');
- }
- $mountPoints = self::readData($isPersonal);
- // Remove mount point
- unset($mountPoints[$mountType][$applicable][$mountPoint]);
- // Unset parent arrays if empty
- if (empty($mountPoints[$mountType][$applicable])) {
- unset($mountPoints[$mountType][$applicable]);
- if (empty($mountPoints[$mountType])) {
- unset($mountPoints[$mountType]);
- }
- }
- self::writeData($isPersonal, $mountPoints);
- return true;
- }
-
- /**
- * Read the mount points in the config file into an array
- * @param bool Personal or system config file
- * @return array
- */
- private static function readData($isPersonal) {
- if ($isPersonal) {
- $file = OC::$SERVERROOT.'/data/'.OCP\User::getUser().'/mount.php';
- } else {
- $file = OC::$SERVERROOT.'/config/mount.php';
- }
- if (is_file($file)) {
- $mountPoints = include($file);
- if (is_array($mountPoints)) {
- return $mountPoints;
- }
- }
- return array();
- }
-
- /**
- * Write the mount points to the config file
- * @param bool Personal or system config file
- * @param array Mount points
- */
- private static function writeData($isPersonal, $data) {
- if ($isPersonal) {
- $file = OC::$SERVERROOT.'/data/'.OCP\User::getUser().'/mount.php';
- } else {
- $file = OC::$SERVERROOT.'/config/mount.php';
- }
- $content = "<?php return array (\n";
- if (isset($data[self::MOUNT_TYPE_GROUP])) {
- $content .= "\t'group' => array (\n";
- foreach ($data[self::MOUNT_TYPE_GROUP] as $group => $mounts) {
- $content .= "\t\t'".$group."' => array (\n";
- foreach ($mounts as $mountPoint => $mount) {
- $content .= "\t\t\t'".$mountPoint."' => ".str_replace("\n", '', var_export($mount, true)).",\n";
-
- }
- $content .= "\t\t),\n";
- }
- $content .= "\t),\n";
- }
- if (isset($data[self::MOUNT_TYPE_USER])) {
- $content .= "\t'user' => array (\n";
- foreach ($data[self::MOUNT_TYPE_USER] as $user => $mounts) {
- $content .= "\t\t'".$user."' => array (\n";
- foreach ($mounts as $mountPoint => $mount) {
- $content .= "\t\t\t'".$mountPoint."' => ".str_replace("\n", '', var_export($mount, true)).",\n";
- }
- $content .= "\t\t),\n";
- }
- $content .= "\t),\n";
- }
- $content .= ");\n?>";
- @file_put_contents($file, $content);
- }
-
- /**
- * Returns all user uploaded ssl root certificates
- * @return array
- */
- public static function getCertificates() {
- $view = \OCP\Files::getStorage('files_external');
- $path=\OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath("").'uploads/';
- if (!is_dir($path)) mkdir($path);
- $result = array();
- $handle = opendir($path);
- while (false !== ($file = readdir($handle))) {
- if($file != '.' && $file != '..') $result[] = $file;
- }
- return $result;
- }
-
- /**
- * creates certificate bundle
- */
- public static function createCertificateBundle() {
- $view = \OCP\Files::getStorage("files_external");
- $path = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath("");
-
- $certs = OC_Mount_Config::getCertificates();
- $fh_certs = fopen($path."/rootcerts.crt", 'w');
- foreach ($certs as $cert) {
- $file=$path.'/uploads/'.$cert;
- $fh = fopen($file, "r");
- $data = fread($fh, filesize($file));
- fclose($fh);
- if (strpos($data, 'BEGIN CERTIFICATE')) {
- fwrite($fh_certs, $data);
- }
- }
-
- fclose($fh_certs);
-
- return true;
- }
-
-}
-
-?> \ No newline at end of file
+<?php
+/**
+* ownCloud
+*
+* @author Michael Gapczynski
+* @copyright 2012 Michael Gapczynski mtgap@owncloud.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/**
+* Class to configure the config/mount.php and data/$user/mount.php files
+*/
+class OC_Mount_Config {
+
+ const MOUNT_TYPE_GLOBAL = 'global';
+ const MOUNT_TYPE_GROUP = 'group';
+ const MOUNT_TYPE_USER = 'user';
+
+ /**
+ * Get details on each of the external storage backends, used for the mount config UI
+ * If a custom UI is needed, add the key 'custom' and a javascript file with that name will be loaded
+ * If the configuration parameter should be secret, add a '*' to the beginning of the value
+ * If the configuration parameter is a boolean, add a '!' to the beginning of the value
+ * If the configuration parameter is optional, add a '&' to the beginning of the value
+ * If the configuration parameter is hidden, add a '#' to the begining of the value
+ * @return array
+ */
+ public static function getBackends() {
+ return array(
+ 'OC_Filestorage_Local' => array('backend' => 'Local', 'configuration' => array('datadir' => 'Location')),
+ 'OC_Filestorage_AmazonS3' => array('backend' => 'Amazon S3', 'configuration' => array('key' => 'Key', 'secret' => '*Secret', 'bucket' => 'Bucket')),
+ 'OC_Filestorage_Dropbox' => array('backend' => 'Dropbox', 'configuration' => array('configured' => '#configured','app_key' => 'App key', 'app_secret' => 'App secret', 'token' => '#token', 'token_secret' => '#token_secret'), 'custom' => 'dropbox'),
+ 'OC_Filestorage_FTP' => array('backend' => 'FTP', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure ftps://')),
+ 'OC_Filestorage_Google' => array('backend' => 'Google Drive', 'configuration' => array('configured' => '#configured', 'token' => '#token', 'token_secret' => '#token secret'), 'custom' => 'google'),
+ 'OC_Filestorage_SWIFT' => array('backend' => 'OpenStack Swift', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'token' => '*Token', 'root' => '&Root', 'secure' => '!Secure ftps://')),
+ 'OC_Filestorage_SMB' => array('backend' => 'SMB', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'share' => 'Share', 'root' => '&Root')),
+ 'OC_Filestorage_DAV' => array('backend' => 'WebDAV', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure https://'))
+ );
+ }
+
+ /**
+ * Get the system mount points
+ * The returned array is not in the same format as getUserMountPoints()
+ * @return array
+ */
+ public static function getSystemMountPoints() {
+ $mountPoints = self::readData(false);
+ $backends = self::getBackends();
+ $system = array();
+ if (isset($mountPoints[self::MOUNT_TYPE_GROUP])) {
+ foreach ($mountPoints[self::MOUNT_TYPE_GROUP] as $group => $mounts) {
+ foreach ($mounts as $mountPoint => $mount) {
+ // Remove '/$user/files/' from mount point
+ $mountPoint = substr($mountPoint, 13);
+ // Merge the mount point into the current mount points
+ if (isset($system[$mountPoint]) && $system[$mountPoint]['configuration'] == $mount['options']) {
+ $system[$mountPoint]['applicable']['groups'] = array_merge($system[$mountPoint]['applicable']['groups'], array($group));
+ } else {
+ $system[$mountPoint] = array('class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options'], 'applicable' => array('groups' => array($group), 'users' => array()));
+ }
+ }
+ }
+ }
+ if (isset($mountPoints[self::MOUNT_TYPE_USER])) {
+ foreach ($mountPoints[self::MOUNT_TYPE_USER] as $user => $mounts) {
+ foreach ($mounts as $mountPoint => $mount) {
+ // Remove '/$user/files/' from mount point
+ $mountPoint = substr($mountPoint, 13);
+ // Merge the mount point into the current mount points
+ if (isset($system[$mountPoint]) && $system[$mountPoint]['configuration'] == $mount['options']) {
+ $system[$mountPoint]['applicable']['users'] = array_merge($system[$mountPoint]['applicable']['users'], array($user));
+ } else {
+ $system[$mountPoint] = array('class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options'], 'applicable' => array('groups' => array(), 'users' => array($user)));
+ }
+ }
+ }
+ }
+ return $system;
+ }
+
+ /**
+ * Get the personal mount points of the current user
+ * The returned array is not in the same format as getUserMountPoints()
+ * @return array
+ */
+ public static function getPersonalMountPoints() {
+ $mountPoints = self::readData(true);
+ $backends = self::getBackends();
+ $uid = OCP\User::getUser();
+ $personal = array();
+ if (isset($mountPoints[self::MOUNT_TYPE_USER][$uid])) {
+ foreach ($mountPoints[self::MOUNT_TYPE_USER][$uid] as $mountPoint => $mount) {
+ // Remove '/uid/files/' from mount point
+ $personal[substr($mountPoint, strlen($uid) + 8)] = array('class' => $mount['class'], 'backend' => $backends[$mount['class']]['backend'], 'configuration' => $mount['options']);
+ }
+ }
+ return $personal;
+ }
+
+
+ /**
+ * Add a mount point to the filesystem
+ * @param string Mount point
+ * @param string Backend class
+ * @param array Backend parameters for the class
+ * @param string MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
+ * @param string User or group to apply mount to
+ * @param bool Personal or system mount point i.e. is this being called from the personal or admin page
+ * @return bool
+ */
+ public static function addMountPoint($mountPoint, $class, $classOptions, $mountType, $applicable, $isPersonal = false) {
+ if ($isPersonal) {
+ // Verify that the mount point applies for the current user
+ // Prevent non-admin users from mounting local storage
+ if ($applicable != OCP\User::getUser() || $class == 'OC_Filestorage_Local') {
+ return false;
+ }
+ $mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
+ } else {
+ $mountPoint = '/$user/files/'.ltrim($mountPoint, '/');
+ }
+ $mount = array($applicable => array($mountPoint => array('class' => $class, 'options' => $classOptions)));
+ $mountPoints = self::readData($isPersonal);
+ // Merge the new mount point into the current mount points
+ if (isset($mountPoints[$mountType])) {
+ if (isset($mountPoints[$mountType][$applicable])) {
+ $mountPoints[$mountType][$applicable] = array_merge($mountPoints[$mountType][$applicable], $mount[$applicable]);
+ } else {
+ $mountPoints[$mountType] = array_merge($mountPoints[$mountType], $mount);
+ }
+ } else {
+ $mountPoints[$mountType] = $mount;
+ }
+ self::writeData($isPersonal, $mountPoints);
+ return true;
+ }
+
+ /**
+ *
+ * @param string Mount point
+ * @param string MOUNT_TYPE_GROUP | MOUNT_TYPE_USER
+ * @param string User or group to remove mount from
+ * @param bool Personal or system mount point
+ * @return bool
+ */
+ public static function removeMountPoint($mountPoint, $mountType, $applicable, $isPersonal = false) {
+ // Verify that the mount point applies for the current user
+ if ($isPersonal) {
+ if ($applicable != OCP\User::getUser()) {
+ return false;
+ }
+ $mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
+ } else {
+ $mountPoint = '/$user/files/'.ltrim($mountPoint, '/');
+ }
+ $mountPoints = self::readData($isPersonal);
+ // Remove mount point
+ unset($mountPoints[$mountType][$applicable][$mountPoint]);
+ // Unset parent arrays if empty
+ if (empty($mountPoints[$mountType][$applicable])) {
+ unset($mountPoints[$mountType][$applicable]);
+ if (empty($mountPoints[$mountType])) {
+ unset($mountPoints[$mountType]);
+ }
+ }
+ self::writeData($isPersonal, $mountPoints);
+ return true;
+ }
+
+ /**
+ * Read the mount points in the config file into an array
+ * @param bool Personal or system config file
+ * @return array
+ */
+ private static function readData($isPersonal) {
+ if ($isPersonal) {
+ $file = OC_User::getHome(OCP\User::getUser()).'/mount.php';
+ } else {
+ $file = OC::$SERVERROOT.'/config/mount.php';
+ }
+ if (is_file($file)) {
+ $mountPoints = include($file);
+ if (is_array($mountPoints)) {
+ return $mountPoints;
+ }
+ }
+ return array();
+ }
+
+ /**
+ * Write the mount points to the config file
+ * @param bool Personal or system config file
+ * @param array Mount points
+ */
+ private static function writeData($isPersonal, $data) {
+ if ($isPersonal) {
+ $file = OC_User::getHome(OCP\User::getUser()).'/mount.php';
+ } else {
+ $file = OC::$SERVERROOT.'/config/mount.php';
+ }
+ $content = "<?php return array (\n";
+ if (isset($data[self::MOUNT_TYPE_GROUP])) {
+ $content .= "\t'group' => array (\n";
+ foreach ($data[self::MOUNT_TYPE_GROUP] as $group => $mounts) {
+ $content .= "\t\t'".$group."' => array (\n";
+ foreach ($mounts as $mountPoint => $mount) {
+ $content .= "\t\t\t'".$mountPoint."' => ".str_replace("\n", '', var_export($mount, true)).",\n";
+
+ }
+ $content .= "\t\t),\n";
+ }
+ $content .= "\t),\n";
+ }
+ if (isset($data[self::MOUNT_TYPE_USER])) {
+ $content .= "\t'user' => array (\n";
+ foreach ($data[self::MOUNT_TYPE_USER] as $user => $mounts) {
+ $content .= "\t\t'".$user."' => array (\n";
+ foreach ($mounts as $mountPoint => $mount) {
+ $content .= "\t\t\t'".$mountPoint."' => ".str_replace("\n", '', var_export($mount, true)).",\n";
+ }
+ $content .= "\t\t),\n";
+ }
+ $content .= "\t),\n";
+ }
+ $content .= ");\n?>";
+ @file_put_contents($file, $content);
+ }
+
+ /**
+ * Returns all user uploaded ssl root certificates
+ * @return array
+ */
+ public static function getCertificates() {
+ $view = \OCP\Files::getStorage('files_external');
+ $path=\OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath("").'uploads/';
+ if (!is_dir($path)) mkdir($path);
+ $result = array();
+ $handle = opendir($path);
+ while (false !== ($file = readdir($handle))) {
+ if($file != '.' && $file != '..') $result[] = $file;
+ }
+ return $result;
+ }
+
+ /**
+ * creates certificate bundle
+ */
+ public static function createCertificateBundle() {
+ $view = \OCP\Files::getStorage("files_external");
+ $path = \OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath("");
+
+ $certs = OC_Mount_Config::getCertificates();
+ $fh_certs = fopen($path."/rootcerts.crt", 'w');
+ foreach ($certs as $cert) {
+ $file=$path.'/uploads/'.$cert;
+ $fh = fopen($file, "r");
+ $data = fread($fh, filesize($file));
+ fclose($fh);
+ if (strpos($data, 'BEGIN CERTIFICATE')) {
+ fwrite($fh_certs, $data);
+ }
+ }
+
+ fclose($fh_certs);
+
+ return true;
+ }
+
+}
diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php
index 818273f6c2d..261141455cc 100644
--- a/apps/files_external/lib/ftp.php
+++ b/apps/files_external/lib/ftp.php
@@ -15,13 +15,13 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{
private static $tempFiles=array();
- public function __construct($params){
+ public function __construct($params) {
$this->host=$params['host'];
$this->user=$params['user'];
$this->password=$params['password'];
$this->secure=isset($params['secure'])?(bool)$params['secure']:false;
$this->root=isset($params['root'])?$params['root']:'/';
- if(!$this->root || $this->root[0]!='/'){
+ if(!$this->root || $this->root[0]!='/') {
$this->root='/'.$this->root;
}
//create the root folder if necesary
@@ -35,16 +35,16 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{
* @param string path
* @return string
*/
- public function constructUrl($path){
+ public function constructUrl($path) {
$url='ftp';
- if($this->secure){
+ if($this->secure) {
$url.='s';
}
$url.='://'.$this->user.':'.$this->password.'@'.$this->host.$this->root.$path;
return $url;
}
- public function fopen($path,$mode){
- switch($mode){
+ public function fopen($path,$mode) {
+ switch($mode) {
case 'r':
case 'rb':
case 'w':
@@ -63,14 +63,14 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{
case 'c':
case 'c+':
//emulate these
- if(strrpos($path,'.')!==false){
+ if(strrpos($path,'.')!==false) {
$ext=substr($path,strrpos($path,'.'));
}else{
$ext='';
}
$tmpFile=OCP\Files::tmpFile($ext);
OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
- if($this->file_exists($path)){
+ if($this->file_exists($path)) {
$this->getFile($path,$tmpFile);
}
self::$tempFiles[$tmpFile]=$path;
@@ -78,8 +78,8 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{
}
}
- public function writeBack($tmpFile){
- if(isset(self::$tempFiles[$tmpFile])){
+ public function writeBack($tmpFile) {
+ if(isset(self::$tempFiles[$tmpFile])) {
$this->uploadFile($tmpFile,self::$tempFiles[$tmpFile]);
unlink($tmpFile);
}
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index 8a5e993b1d0..e5ba7a17743 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('smb4php/smb.php');
+require_once 'smb4php/smb.php';
class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
private $password;
@@ -15,40 +15,40 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
private $root;
private $share;
- public function __construct($params){
+ public function __construct($params) {
$this->host=$params['host'];
$this->user=$params['user'];
$this->password=$params['password'];
$this->share=$params['share'];
$this->root=isset($params['root'])?$params['root']:'/';
- if(!$this->root || $this->root[0]!='/'){
+ if(!$this->root || $this->root[0]!='/') {
$this->root='/'.$this->root;
}
- if(substr($this->root,-1,1)!='/'){
+ if(substr($this->root,-1,1)!='/') {
$this->root.='/';
}
- if(!$this->share || $this->share[0]!='/'){
+ if(!$this->share || $this->share[0]!='/') {
$this->share='/'.$this->share;
}
- if(substr($this->share,-1,1)=='/'){
+ if(substr($this->share,-1,1)=='/') {
$this->share=substr($this->share,0,-1);
}
//create the root folder if necesary
- if(!$this->is_dir('')){
+ if(!$this->is_dir('')) {
$this->mkdir('');
}
}
- public function constructUrl($path){
- if(substr($path,-1)=='/'){
+ public function constructUrl($path) {
+ if(substr($path,-1)=='/') {
$path=substr($path,0,-1);
}
return 'smb://'.$this->user.':'.$this->password.'@'.$this->host.$this->share.$this->root.$path;
}
- public function stat($path){
- if(!$path and $this->root=='/'){//mtime doesn't work for shares
+ public function stat($path) {
+ if(!$path and $this->root=='/') {//mtime doesn't work for shares
$mtime=$this->shareMTime();
$stat=stat($this->constructUrl($path));
$stat['mtime']=$mtime;
@@ -58,7 +58,7 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
}
}
- public function filetype($path){
+ public function filetype($path) {
return (bool)@$this->opendir($path);//using opendir causes the same amount of requests and caches the content of the folder in one go
}
@@ -67,8 +67,8 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
* @param int $time
* @return bool
*/
- public function hasUpdated($path,$time){
- if(!$path and $this->root=='/'){
+ public function hasUpdated($path,$time) {
+ if(!$path and $this->root=='/') {
//mtime doesn't work for shares, but giving the nature of the backend, doing a full update is still just fast enough
return true;
}else{
@@ -80,13 +80,13 @@ class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
/**
* get the best guess for the modification time of the share
*/
- private function shareMTime(){
+ private function shareMTime() {
$dh=$this->opendir('');
$lastCtime=0;
- while($file=readdir($dh)){
- if($file!='.' and $file!='..'){
+ while($file=readdir($dh)) {
+ if($file!='.' and $file!='..') {
$ctime=$this->filemtime($file);
- if($ctime>$lastCtime){
+ if($ctime>$lastCtime) {
$lastCtime=$ctime;
}
}
diff --git a/apps/files_external/lib/streamwrapper.php b/apps/files_external/lib/streamwrapper.php
index 467c5a5b845..7263ef23253 100644
--- a/apps/files_external/lib/streamwrapper.php
+++ b/apps/files_external/lib/streamwrapper.php
@@ -10,12 +10,12 @@
abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{
abstract public function constructUrl($path);
- public function mkdir($path){
+ public function mkdir($path) {
return mkdir($this->constructUrl($path));
}
- public function rmdir($path){
- if($this->file_exists($path)){
+ public function rmdir($path) {
+ if($this->file_exists($path)) {
$succes=rmdir($this->constructUrl($path));
clearstatcache();
return $succes;
@@ -24,42 +24,42 @@ abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{
}
}
- public function opendir($path){
+ public function opendir($path) {
return opendir($this->constructUrl($path));
}
- public function filetype($path){
+ public function filetype($path) {
return filetype($this->constructUrl($path));
}
- public function isReadable($path){
+ public function isReadable($path) {
return true;//not properly supported
}
- public function isUpdatable($path){
+ public function isUpdatable($path) {
return true;//not properly supported
}
- public function file_exists($path){
+ public function file_exists($path) {
return file_exists($this->constructUrl($path));
}
- public function unlink($path){
+ public function unlink($path) {
$succes=unlink($this->constructUrl($path));
clearstatcache();
return $succes;
}
- public function fopen($path,$mode){
+ public function fopen($path,$mode) {
return fopen($this->constructUrl($path),$mode);
}
- public function free_space($path){
+ public function free_space($path) {
return 0;
}
- public function touch($path,$mtime=null){
- if(is_null($mtime)){
+ public function touch($path,$mtime=null) {
+ if(is_null($mtime)) {
$fh=$this->fopen($path,'a');
fwrite($fh,'');
fclose($fh);
@@ -68,19 +68,19 @@ abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{
}
}
- public function getFile($path,$target){
+ public function getFile($path,$target) {
return copy($this->constructUrl($path),$target);
}
- public function uploadFile($path,$target){
+ public function uploadFile($path,$target) {
return copy($path,$this->constructUrl($target));
}
- public function rename($path1,$path2){
+ public function rename($path1,$path2) {
return rename($this->constructUrl($path1),$this->constructUrl($path2));
}
- public function stat($path){
+ public function stat($path) {
return stat($this->constructUrl($path));
}
diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php
index 1868bc4ba77..c29d28b44c1 100644
--- a/apps/files_external/lib/swift.php
+++ b/apps/files_external/lib/swift.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('php-cloudfiles/cloudfiles.php');
+require_once 'php-cloudfiles/cloudfiles.php';
class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
private $host;
@@ -38,7 +38,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string path
* @return string
*/
- private function getContainerName($path){
+ private function getContainerName($path) {
$path=trim($this->root.$path,'/');
return str_replace('/','\\',$path);
}
@@ -48,18 +48,18 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string path
* @return CF_Container
*/
- private function getContainer($path){
- if($path=='' or $path=='/'){
+ private function getContainer($path) {
+ if($path=='' or $path=='/') {
return $this->rootContainer;
}
- if(isset($this->containers[$path])){
+ if(isset($this->containers[$path])) {
return $this->containers[$path];
}
try{
$container=$this->conn->get_container($this->getContainerName($path));
$this->containers[$path]=$container;
return $container;
- }catch(NoSuchContainerException $e){
+ }catch(NoSuchContainerException $e) {
return null;
}
}
@@ -69,15 +69,15 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string path
* @return CF_Container
*/
- private function createContainer($path){
- if($path=='' or $path=='/'){
+ private function createContainer($path) {
+ if($path=='' or $path=='/') {
return $this->conn->create_container($this->getContainerName($path));
}
$parent=dirname($path);
- if($parent=='' or $parent=='/'){
+ if($parent=='' or $parent=='/') {
$parentContainer=$this->rootContainer;
}else{
- if(!$this->containerExists($parent)){
+ if(!$this->containerExists($parent)) {
$parentContainer=$this->createContainer($parent);
}else{
$parentContainer=$this->getContainer($parent);
@@ -92,19 +92,19 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string path
* @return CF_Object
*/
- private function getObject($path){
- if(isset($this->objects[$path])){
+ private function getObject($path) {
+ if(isset($this->objects[$path])) {
return $this->objects[$path];
}
$container=$this->getContainer(dirname($path));
- if(is_null($container)){
+ if(is_null($container)) {
return null;
}else{
try{
$obj=$container->get_object(basename($path));
$this->objects[$path]=$obj;
return $obj;
- }catch(NoSuchObjectException $e){
+ }catch(NoSuchObjectException $e) {
return null;
}
}
@@ -115,12 +115,12 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param CF_Container
* @return array
*/
- private function getObjects($container){
- if(is_null($container)){
+ private function getObjects($container) {
+ if(is_null($container)) {
return array();
}else{
$files=$container->get_objects();
- foreach($files as &$file){
+ foreach($files as &$file) {
$file=$file->name;
}
return $files;
@@ -132,9 +132,9 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string path
* @return CF_Object
*/
- private function createObject($path){
+ private function createObject($path) {
$container=$this->getContainer(dirname($path));
- if(!is_null($container)){
+ if(!is_null($container)) {
$container=$this->createContainer($path);
}
return $container->create_object(basename($path));
@@ -145,7 +145,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string
* @return bool
*/
- private function objectExists($path){
+ private function objectExists($path) {
return !is_null($this->getObject($path));
}
@@ -154,7 +154,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string path
* @return bool
*/
- private function containerExists($path){
+ private function containerExists($path) {
return !is_null($this->getContainer($path));
}
@@ -163,18 +163,18 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param CF_Container container
* @return array
*/
- private function getSubContainers($container){
+ private function getSubContainers($container) {
$tmpFile=OCP\Files::tmpFile();
$obj=$this->getSubContainerFile($container);
try{
$obj->save_to_filename($tmpFile);
- }catch(Exception $e){
+ }catch(Exception $e) {
return array();
}
$obj->save_to_filename($tmpFile);
$containers=file($tmpFile);
unlink($tmpFile);
- foreach($containers as &$sub){
+ foreach($containers as &$sub) {
$sub=trim($sub);
}
return $containers;
@@ -186,8 +186,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string name
* @return bool
*/
- private function addSubContainer($container,$name){
- if(!$name){
+ private function addSubContainer($container,$name) {
+ if(!$name) {
return false;
}
$tmpFile=OCP\Files::tmpFile();
@@ -195,17 +195,17 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
try{
$obj->save_to_filename($tmpFile);
$containers=file($tmpFile);
- foreach($containers as &$sub){
+ foreach($containers as &$sub) {
$sub=trim($sub);
}
- if(array_search($name,$containers)!==false){
+ if(array_search($name,$containers)!==false) {
unlink($tmpFile);
return false;
}else{
$fh=fopen($tmpFile,'a');
fwrite($fh,$name."\n");
}
- }catch(Exception $e){
+ }catch(Exception $e) {
$containers=array();
file_put_contents($tmpFile,$name."\n");
}
@@ -221,8 +221,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param string name
* @return bool
*/
- private function removeSubContainer($container,$name){
- if(!$name){
+ private function removeSubContainer($container,$name) {
+ if(!$name) {
return false;
}
$tmpFile=OCP\Files::tmpFile();
@@ -230,14 +230,14 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
try{
$obj->save_to_filename($tmpFile);
$containers=file($tmpFile);
- }catch(Exception $e){
+ }catch(Exception $e) {
return false;
}
- foreach($containers as &$sub){
+ foreach($containers as &$sub) {
$sub=trim($sub);
}
$i=array_search($name,$containers);
- if($i===false){
+ if($i===false) {
unlink($tmpFile);
return false;
}else{
@@ -255,21 +255,21 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* @param CF_Container container
* @return CF_Object
*/
- private function getSubContainerFile($container){
+ private function getSubContainerFile($container) {
try{
return $container->get_object(self::SUBCONTAINER_FILE);
- }catch(NoSuchObjectException $e){
+ }catch(NoSuchObjectException $e) {
return $container->create_object(self::SUBCONTAINER_FILE);
}
}
- public function __construct($params){
+ public function __construct($params) {
$this->token=$params['token'];
$this->host=$params['host'];
$this->user=$params['user'];
$this->root=isset($params['root'])?$params['root']:'/';
$this->secure=isset($params['secure'])?(bool)$params['secure']:true;
- if(!$this->root || $this->root[0]!='/'){
+ if(!$this->root || $this->root[0]!='/') {
$this->root='/'.$this->root;
}
$this->auth = new CF_Authentication($this->user, $this->token, null, $this->host);
@@ -277,7 +277,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
$this->conn = new CF_Connection($this->auth);
- if(!$this->containerExists($this->root)){
+ if(!$this->containerExists($this->root)) {
$this->rootContainer=$this->createContainer('/');
}else{
$this->rootContainer=$this->getContainer('/');
@@ -285,8 +285,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
}
- public function mkdir($path){
- if($this->containerExists($path)){
+ public function mkdir($path) {
+ if($this->containerExists($path)) {
return false;
}else{
$this->createContainer($path);
@@ -294,12 +294,12 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
}
}
- public function rmdir($path){
- if(!$this->containerExists($path)){
+ public function rmdir($path) {
+ if(!$this->containerExists($path)) {
return false;
}else{
$this->emptyContainer($path);
- if($path!='' and $path!='/'){
+ if($path!='' and $path!='/') {
$parentContainer=$this->getContainer(dirname($path));
$this->removeSubContainer($parentContainer,basename($path));
}
@@ -310,14 +310,14 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
}
}
- private function emptyContainer($path){
+ private function emptyContainer($path) {
$container=$this->getContainer($path);
- if(is_null($container)){
+ if(is_null($container)) {
return;
}
$subContainers=$this->getSubContainers($container);
- foreach($subContainers as $sub){
- if($sub){
+ foreach($subContainers as $sub) {
+ if($sub) {
$this->emptyContainer($path.'/'.$sub);
$this->conn->delete_container($this->getContainerName($path.'/'.$sub));
unset($this->containers[$path.'/'.$sub]);
@@ -325,17 +325,17 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
}
$objects=$this->getObjects($container);
- foreach($objects as $object){
+ foreach($objects as $object) {
$container->delete_object($object);
unset($this->objects[$path.'/'.$object]);
}
}
- public function opendir($path){
+ public function opendir($path) {
$container=$this->getContainer($path);
$files=$this->getObjects($container);
$i=array_search(self::SUBCONTAINER_FILE,$files);
- if($i!==false){
+ if($i!==false) {
unset($files[$i]);
}
$subContainers=$this->getSubContainers($container);
@@ -345,43 +345,43 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
return opendir('fakedir://'.$id);
}
- public function filetype($path){
- if($this->containerExists($path)){
+ public function filetype($path) {
+ if($this->containerExists($path)) {
return 'dir';
}else{
return 'file';
}
}
- public function isReadable($path){
+ public function isReadable($path) {
return true;
}
- public function isUpdatable($path){
+ public function isUpdatable($path) {
return true;
}
- public function file_exists($path){
- if($this->is_dir($path)){
+ public function file_exists($path) {
+ if($this->is_dir($path)) {
return true;
}else{
return $this->objectExists($path);
}
}
- public function file_get_contents($path){
+ public function file_get_contents($path) {
$obj=$this->getObject($path);
- if(is_null($obj)){
+ if(is_null($obj)) {
return false;
}
return $obj->read();
}
- public function file_put_contents($path,$content){
+ public function file_put_contents($path,$content) {
$obj=$this->getObject($path);
- if(is_null($obj)){
+ if(is_null($obj)) {
$container=$this->getContainer(dirname($path));
- if(is_null($container)){
+ if(is_null($container)) {
return false;
}
$obj=$container->create_object(basename($path));
@@ -390,8 +390,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
return $obj->write($content);
}
- public function unlink($path){
- if($this->objectExists($path)){
+ public function unlink($path) {
+ if($this->objectExists($path)) {
$container=$this->getContainer(dirname($path));
$container->delete_object(basename($path));
unset($this->objects[$path]);
@@ -400,12 +400,12 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
}
}
- public function fopen($path,$mode){
+ public function fopen($path,$mode) {
$obj=$this->getObject($path);
- if(is_null($obj)){
+ if(is_null($obj)) {
return false;
}
- switch($mode){
+ switch($mode) {
case 'r':
case 'rb':
$fp = fopen('php://temp', 'r+');
@@ -432,23 +432,23 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
}
}
- public function writeBack($tmpFile){
- if(isset(self::$tempFiles[$tmpFile])){
+ public function writeBack($tmpFile) {
+ if(isset(self::$tempFiles[$tmpFile])) {
$this->fromTmpFile($tmpFile,self::$tempFiles[$tmpFile]);
unlink($tmpFile);
}
}
- public function free_space($path){
+ public function free_space($path) {
return 0;
}
- public function touch($path,$mtime=null){
+ public function touch($path,$mtime=null) {
$obj=$this->getObject($path);
- if(is_null($obj)){
+ if(is_null($obj)) {
return false;
}
- if(is_null($mtime)){
+ if(is_null($mtime)) {
$mtime=time();
}
@@ -457,36 +457,36 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
$obj->sync_metadata();
}
- public function rename($path1,$path2){
+ public function rename($path1,$path2) {
$sourceContainer=$this->getContainer(dirname($path1));
$targetContainer=$this->getContainer(dirname($path2));
$result=$sourceContainer->move_object_to(basename($path1),$targetContainer,basename($path2));
unset($this->objects[$path1]);
- if($result){
+ if($result) {
$targetObj=$this->getObject($path2);
$this->resetMTime($targetObj);
}
return $result;
}
- public function copy($path1,$path2){
+ public function copy($path1,$path2) {
$sourceContainer=$this->getContainer(dirname($path1));
$targetContainer=$this->getContainer(dirname($path2));
$result=$sourceContainer->copy_object_to(basename($path1),$targetContainer,basename($path2));
- if($result){
+ if($result) {
$targetObj=$this->getObject($path2);
$this->resetMTime($targetObj);
}
return $result;
}
- public function stat($path){
+ public function stat($path) {
$obj=$this->getObject($path);
- if(is_null($obj)){
+ if(is_null($obj)) {
return false;
}
- if(isset($obj->metadata['Mtime']) and $obj->metadata['Mtime']>-1){
+ if(isset($obj->metadata['Mtime']) and $obj->metadata['Mtime']>-1) {
$mtime=$obj->metadata['Mtime'];
}else{
$mtime=strtotime($obj->last_modified);
@@ -498,9 +498,9 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
);
}
- private function getTmpFile($path){
+ private function getTmpFile($path) {
$obj=$this->getObject($path);
- if(!is_null($obj)){
+ if(!is_null($obj)) {
$tmpFile=OCP\Files::tmpFile();
$obj->save_to_filename($tmpFile);
return $tmpFile;
@@ -509,9 +509,9 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
}
}
- private function fromTmpFile($tmpFile,$path){
+ private function fromTmpFile($tmpFile,$path) {
$obj=$this->getObject($path);
- if(is_null($obj)){
+ if(is_null($obj)) {
$obj=$this->createObject($path);
}
$obj->load_from_filename($tmpFile);
@@ -522,8 +522,8 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
* remove custom mtime metadata
* @param CF_Object obj
*/
- private function resetMTime($obj){
- if(isset($obj->metadata['Mtime'])){
+ private function resetMTime($obj) {
+ if(isset($obj->metadata['Mtime'])) {
$obj->metadata['Mtime']=-1;
$obj->sync_metadata();
}
diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php
index 1b9c3e3333b..3c18b227fa6 100644
--- a/apps/files_external/lib/webdav.php
+++ b/apps/files_external/lib/webdav.php
@@ -19,7 +19,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
private static $tempFiles=array();
- public function __construct($params){
+ public function __construct($params) {
$host = $params['host'];
//remove leading http[s], will be generated in createBaseUri()
if (substr($host,0,8) == "https://") $host = substr($host, 8);
@@ -29,10 +29,10 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
$this->password=$params['password'];
$this->secure=(isset($params['secure']) && $params['secure'] == 'true')?true:false;
$this->root=isset($params['root'])?$params['root']:'/';
- if(!$this->root || $this->root[0]!='/'){
+ if(!$this->root || $this->root[0]!='/') {
$this->root='/'.$this->root;
}
- if(substr($this->root,-1,1)!='/'){
+ if(substr($this->root,-1,1)!='/') {
$this->root.='/';
}
@@ -54,26 +54,26 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
$this->mkdir('');
}
- private function createBaseUri(){
+ private function createBaseUri() {
$baseUri='http';
- if($this->secure){
+ if($this->secure) {
$baseUri.='s';
}
$baseUri.='://'.$this->host.$this->root;
return $baseUri;
}
- public function mkdir($path){
+ public function mkdir($path) {
$path=$this->cleanPath($path);
return $this->simpleResponse('MKCOL',$path,null,201);
}
- public function rmdir($path){
+ public function rmdir($path) {
$path=$this->cleanPath($path);
return $this->simpleResponse('DELETE',$path,null,204);
}
- public function opendir($path){
+ public function opendir($path) {
$path=$this->cleanPath($path);
try{
$response=$this->client->propfind($path, array(),1);
@@ -81,54 +81,54 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
OC_FakeDirStream::$dirs[$id]=array();
$files=array_keys($response);
array_shift($files);//the first entry is the current directory
- foreach($files as $file){
+ foreach($files as $file) {
$file = urldecode(basename($file));
OC_FakeDirStream::$dirs[$id][]=$file;
}
return opendir('fakedir://'.$id);
- }catch(Exception $e){
+ }catch(Exception $e) {
return false;
}
}
- public function filetype($path){
+ public function filetype($path) {
$path=$this->cleanPath($path);
try{
$response=$this->client->propfind($path, array('{DAV:}resourcetype'));
$responseType=$response["{DAV:}resourcetype"]->resourceType;
return (count($responseType)>0 and $responseType[0]=="{DAV:}collection")?'dir':'file';
- }catch(Exception $e){
+ }catch(Exception $e) {
error_log($e->getMessage());
\OCP\Util::writeLog("webdav client", \OCP\Util::sanitizeHTML($e->getMessage()), \OCP\Util::ERROR);
return false;
}
}
- public function isReadable($path){
+ public function isReadable($path) {
return true;//not properly supported
}
- public function isUpdatable($path){
+ public function isUpdatable($path) {
return true;//not properly supported
}
- public function file_exists($path){
+ public function file_exists($path) {
$path=$this->cleanPath($path);
try{
$this->client->propfind($path, array('{DAV:}resourcetype'));
return true;//no 404 exception
- }catch(Exception $e){
+ }catch(Exception $e) {
return false;
}
}
- public function unlink($path){
+ public function unlink($path) {
return $this->simpleResponse('DELETE',$path,null,204);
}
- public function fopen($path,$mode){
+ public function fopen($path,$mode) {
$path=$this->cleanPath($path);
- switch($mode){
+ switch($mode) {
case 'r':
case 'rb':
//straight up curl instead of sabredav here, sabredav put's the entire get result in memory
@@ -155,14 +155,14 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
case 'c':
case 'c+':
//emulate these
- if(strrpos($path,'.')!==false){
+ if(strrpos($path,'.')!==false) {
$ext=substr($path,strrpos($path,'.'));
}else{
$ext='';
}
$tmpFile=OCP\Files::tmpFile($ext);
OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
- if($this->file_exists($path)){
+ if($this->file_exists($path)) {
$this->getFile($path,$tmpFile);
}
self::$tempFiles[$tmpFile]=$path;
@@ -170,41 +170,41 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
}
}
- public function writeBack($tmpFile){
- if(isset(self::$tempFiles[$tmpFile])){
+ public function writeBack($tmpFile) {
+ if(isset(self::$tempFiles[$tmpFile])) {
$this->uploadFile($tmpFile,self::$tempFiles[$tmpFile]);
unlink($tmpFile);
}
}
- public function free_space($path){
+ public function free_space($path) {
$path=$this->cleanPath($path);
try{
$response=$this->client->propfind($path, array('{DAV:}quota-available-bytes'));
- if(isset($response['{DAV:}quota-available-bytes'])){
+ if(isset($response['{DAV:}quota-available-bytes'])) {
return (int)$response['{DAV:}quota-available-bytes'];
}else{
return 0;
}
- }catch(Exception $e){
+ }catch(Exception $e) {
return 0;
}
}
- public function touch($path,$mtime=null){
- if(is_null($mtime)){
+ public function touch($path,$mtime=null) {
+ if(is_null($mtime)) {
$mtime=time();
}
$path=$this->cleanPath($path);
$this->client->proppatch($path, array('{DAV:}lastmodified' => $mtime));
}
- public function getFile($path,$target){
+ public function getFile($path,$target) {
$source=$this->fopen($path,'r');
file_put_contents($target,$source);
}
- public function uploadFile($path,$target){
+ public function uploadFile($path,$target) {
$source=fopen($path,'r');
$curl = curl_init();
@@ -218,13 +218,13 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
curl_close ($curl);
}
- public function rename($path1,$path2){
+ public function rename($path1,$path2) {
$path1=$this->cleanPath($path1);
$path2=$this->root.$this->cleanPath($path2);
try{
$response=$this->client->request('MOVE',$path1,null,array('Destination'=>$path2));
return true;
- }catch(Exception $e){
+ }catch(Exception $e) {
echo $e;
echo 'fail';
var_dump($response);
@@ -232,13 +232,13 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
}
}
- public function copy($path1,$path2){
+ public function copy($path1,$path2) {
$path1=$this->cleanPath($path1);
$path2=$this->root.$this->cleanPath($path2);
try{
$response=$this->client->request('COPY',$path1,null,array('Destination'=>$path2));
return true;
- }catch(Exception $e){
+ }catch(Exception $e) {
echo $e;
echo 'fail';
var_dump($response);
@@ -246,7 +246,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
}
}
- public function stat($path){
+ public function stat($path) {
$path=$this->cleanPath($path);
try{
$response=$this->client->propfind($path, array('{DAV:}getlastmodified','{DAV:}getcontentlength'));
@@ -255,43 +255,43 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
'size'=>(int)isset($response['{DAV:}getcontentlength']) ? $response['{DAV:}getcontentlength'] : 0,
'ctime'=>-1,
);
- }catch(Exception $e){
+ }catch(Exception $e) {
return array();
}
}
- public function getMimeType($path){
+ public function getMimeType($path) {
$path=$this->cleanPath($path);
try{
$response=$this->client->propfind($path, array('{DAV:}getcontenttype','{DAV:}resourcetype'));
$responseType=$response["{DAV:}resourcetype"]->resourceType;
$type=(count($responseType)>0 and $responseType[0]=="{DAV:}collection")?'dir':'file';
- if($type=='dir'){
+ if($type=='dir') {
return 'httpd/unix-directory';
- }elseif(isset($response['{DAV:}getcontenttype'])){
+ }elseif(isset($response['{DAV:}getcontenttype'])) {
return $response['{DAV:}getcontenttype'];
}else{
return false;
}
- }catch(Exception $e){
+ }catch(Exception $e) {
return false;
}
}
- private function cleanPath($path){
- if(!$path || $path[0]=='/'){
+ private function cleanPath($path) {
+ if(!$path || $path[0]=='/') {
return substr($path,1);
}else{
return $path;
}
}
- private function simpleResponse($method,$path,$body,$expected){
+ private function simpleResponse($method,$path,$body,$expected) {
$path=$this->cleanPath($path);
try{
$response=$this->client->request($method,$path,$body);
return $response['statusCode']==$expected;
- }catch(Exception $e){
+ }catch(Exception $e) {
return false;
}
}
diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php
index 3548880e834..12f3ec3908d 100644
--- a/apps/files_external/tests/ftp.php
+++ b/apps/files_external/tests/ftp.php
@@ -7,21 +7,21 @@
*/
$config=include('apps/files_external/tests/config.php');
-if(!is_array($config) or !isset($config['ftp']) or !$config['ftp']['run']){
+if(!is_array($config) or !isset($config['ftp']) or !$config['ftp']['run']) {
abstract class Test_Filestorage_FTP extends Test_FileStorage{}
return;
}else{
class Test_Filestorage_FTP extends Test_FileStorage {
private $config;
- public function setUp(){
+ public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['ftp']['root'].='/'.$id;//make sure we have an new empty folder to work in
$this->instance=new OC_Filestorage_FTP($this->config['ftp']);
}
- public function tearDown(){
+ public function tearDown() {
OCP\Files::rmdirr($this->instance->constructUrl(''));
}
}
diff --git a/apps/files_external/tests/google.php b/apps/files_external/tests/google.php
index b0bd9cbbeaf..d2a6358ade4 100644
--- a/apps/files_external/tests/google.php
+++ b/apps/files_external/tests/google.php
@@ -21,7 +21,7 @@
*/
$config=include('apps/files_external/tests/config.php');
-if(!is_array($config) or !isset($config['google']) or !$config['google']['run']){
+if(!is_array($config) or !isset($config['google']) or !$config['google']['run']) {
abstract class Test_Filestorage_Google extends Test_FileStorage{}
return;
}else{
@@ -29,14 +29,14 @@ if(!is_array($config) or !isset($config['google']) or !$config['google']['run'])
private $config;
- public function setUp(){
+ public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['google']['root'].='/'.$id;//make sure we have an new empty folder to work in
$this->instance=new OC_Filestorage_Google($this->config['google']);
}
- public function tearDown(){
+ public function tearDown() {
$this->instance->rmdir('/');
}
}
diff --git a/apps/files_external/tests/smb.php b/apps/files_external/tests/smb.php
index 001ef842276..7de4fddbb34 100644
--- a/apps/files_external/tests/smb.php
+++ b/apps/files_external/tests/smb.php
@@ -8,21 +8,21 @@
$config=include('apps/files_external/tests/config.php');
-if(!is_array($config) or !isset($config['smb']) or !$config['smb']['run']){
+if(!is_array($config) or !isset($config['smb']) or !$config['smb']['run']) {
abstract class Test_Filestorage_SMB extends Test_FileStorage{}
return;
}else{
class Test_Filestorage_SMB extends Test_FileStorage {
private $config;
- public function setUp(){
+ public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['smb']['root'].=$id;//make sure we have an new empty folder to work in
$this->instance=new OC_Filestorage_SMB($this->config['smb']);
}
- public function tearDown(){
+ public function tearDown() {
OCP\Files::rmdirr($this->instance->constructUrl(''));
}
}
diff --git a/apps/files_external/tests/swift.php b/apps/files_external/tests/swift.php
index bfe7b77aac5..a6f5eace1c8 100644
--- a/apps/files_external/tests/swift.php
+++ b/apps/files_external/tests/swift.php
@@ -7,14 +7,14 @@
*/
$config=include('apps/files_external/tests/config.php');
-if(!is_array($config) or !isset($config['swift']) or !$config['swift']['run']){
+if(!is_array($config) or !isset($config['swift']) or !$config['swift']['run']) {
abstract class Test_Filestorage_SWIFT extends Test_FileStorage{}
return;
}else{
class Test_Filestorage_SWIFT extends Test_FileStorage {
private $config;
- public function setUp(){
+ public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['swift']['root'].='/'.$id;//make sure we have an new empty folder to work in
@@ -22,7 +22,7 @@ if(!is_array($config) or !isset($config['swift']) or !$config['swift']['run']){
}
- public function tearDown(){
+ public function tearDown() {
$this->instance->rmdir('');
}
diff --git a/apps/files_external/tests/test.php b/apps/files_external/tests/test.php
deleted file mode 100644
index 5387279fb07..00000000000
--- a/apps/files_external/tests/test.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-require_once 'files_external/lib/config.php';
-echo "<pre>";
-print_r(OC_Mount_Config::getSystemMountPoints());
-echo "</pre>";
-// OC_Mount_Config::addMountPoint('Photos', 'OC_Filestorage_SWIFT', array('host' => 'gapinthecloud.com', 'user' => 'Gap', 'token' => '23423afdasFJEW22', 'secure' => 'true', 'root' => ''), OC_Mount_Config::MOUNT_TYPE_GROUP, 'admin', false);
diff --git a/apps/files_external/tests/webdav.php b/apps/files_external/tests/webdav.php
index 49c44124f3c..74d980aa3f1 100644
--- a/apps/files_external/tests/webdav.php
+++ b/apps/files_external/tests/webdav.php
@@ -7,21 +7,21 @@
*/
$config=include('apps/files_external/tests/config.php');
-if(!is_array($config) or !isset($config['webdav']) or !$config['webdav']['run']){
+if(!is_array($config) or !isset($config['webdav']) or !$config['webdav']['run']) {
abstract class Test_Filestorage_DAV extends Test_FileStorage{}
return;
}else{
class Test_Filestorage_DAV extends Test_FileStorage {
private $config;
- public function setUp(){
+ public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['webdav']['root'].='/'.$id;//make sure we have an new empty folder to work in
$this->instance=new OC_Filestorage_DAV($this->config['webdav']);
}
- public function tearDown(){
+ public function tearDown() {
$this->instance->rmdir('/');
}
}
diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css
index f38afae3dd8..a700cc2169b 100644
--- a/apps/files_sharing/css/public.css
+++ b/apps/files_sharing/css/public.css
@@ -1,7 +1,8 @@
body { background:#ddd; }
#header { position:fixed; top:0; left:0; right:0; z-index:100; height:2.5em; line-height:2.5em; padding:.5em; background:#1d2d44; -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; }
#details { color:#fff; }
-#download { margin-left:2em; font-weight:bold; color:#fff; }
-#preview { min-height:30em; margin:50px auto; border-bottom:1px solid #f8f8f8; background:#eee; text-align:center; }
+#header #download { margin-left:2em; font-weight:bold; color:#fff; }
+#preview { min-height:30em; margin:50px auto; padding-top:2em; border-bottom:1px solid #f8f8f8; background:#eee; text-align:center; }
+#noPreview { display:none; padding-top:5em; }
p.info { width:22em; text-align: center; margin:2em auto; color:#777; text-shadow:#fff 0 1px 0; }
p.info a { font-weight:bold; color:#777; } \ No newline at end of file
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 755382e0736..92b626bba18 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -10,8 +10,12 @@ $(document).ready(function() {
// Show file preview if previewer is available, images are already handled by the template
if (mimetype.substr(0, mimetype.indexOf('/')) != 'image') {
// Trigger default action if not download TODO
- var action = FileActions.getDefault(mimetype, 'file', FileActions.PERMISSION_READ);
- action($('#filename').val());
+ var action = FileActions.getDefault(mimetype, 'file', OC.PERMISSION_READ);
+ if (typeof action === 'undefined') {
+ $('#noPreview').show();
+ } else {
+ action($('#filename').val());
+ }
}
}
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index 79ab4adebac..a171751589a 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -2,7 +2,7 @@ $(document).ready(function() {
if (typeof OC.Share !== 'undefined' && typeof FileActions !== 'undefined') {
OC.Share.loadIcons('file');
- FileActions.register('all', 'Share', FileActions.PERMISSION_READ, function(filename) {
+ FileActions.register('all', 'Share', OC.PERMISSION_READ, function(filename) {
// Return the correct sharing icon
if (scanFiles.scanning) { return; } // workaround to prevent additional http request block scanning feedback
if ($('#dir').val() == '/') {
diff --git a/apps/files_sharing/l10n/ca.php b/apps/files_sharing/l10n/ca.php
index 6931389b9c9..f00d0d72632 100644
--- a/apps/files_sharing/l10n/ca.php
+++ b/apps/files_sharing/l10n/ca.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Mida",
-"Modified" => "Modificat",
-"Delete all" => "Esborra-ho tot",
-"Delete" => "Elimina"
+"Password" => "Contrasenya",
+"Submit" => "Envia",
+"Download" => "Baixa",
+"No preview available for" => "No hi ha vista prèvia disponible per a",
+"web services under your control" => "controleu els vostres serveis web"
);
diff --git a/apps/files_sharing/l10n/cs_CZ.php b/apps/files_sharing/l10n/cs_CZ.php
index 7c5828a6136..e9185e979cd 100644
--- a/apps/files_sharing/l10n/cs_CZ.php
+++ b/apps/files_sharing/l10n/cs_CZ.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Velikost",
-"Modified" => "Upraveno",
-"Delete all" => "Smazat vše",
-"Delete" => "Smazat"
+"Password" => "Heslo",
+"Submit" => "Odeslat",
+"Download" => "Stáhnout",
+"No preview available for" => "Náhled není dostupný pro",
+"web services under your control" => "služby webu pod Vaší kontrolou"
);
diff --git a/apps/files_sharing/l10n/de.php b/apps/files_sharing/l10n/de.php
index d42383b43b0..90dce8ec623 100644
--- a/apps/files_sharing/l10n/de.php
+++ b/apps/files_sharing/l10n/de.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Größe",
-"Modified" => "Geändert",
-"Delete all" => "Alle löschen",
-"Delete" => "Löschen"
+"Password" => "Passwort",
+"Submit" => "Absenden",
+"Download" => "Download",
+"No preview available for" => "Es ist keine Vorschau verfügbar für",
+"web services under your control" => "Web-Services unter Ihrer Kontrolle"
);
diff --git a/apps/files_sharing/l10n/el.php b/apps/files_sharing/l10n/el.php
index 63f4c61204a..123a008e554 100644
--- a/apps/files_sharing/l10n/el.php
+++ b/apps/files_sharing/l10n/el.php
@@ -1,6 +1,4 @@
<?php $TRANSLATIONS = array(
-"Size" => "Μέγεθος",
-"Modified" => "Τροποποιήθηκε",
-"Delete all" => "Διαγραφή όλων",
-"Delete" => "Διαγραφή"
+"Password" => "Συνθηματικό",
+"Submit" => "Καταχώρηση"
);
diff --git a/apps/files_sharing/l10n/eo.php b/apps/files_sharing/l10n/eo.php
index 81a8dcb1525..5ef330a53e2 100644
--- a/apps/files_sharing/l10n/eo.php
+++ b/apps/files_sharing/l10n/eo.php
@@ -1,3 +1,4 @@
<?php $TRANSLATIONS = array(
-"Delete" => "Forigi"
+"Password" => "Pasvorto",
+"Submit" => "Sendi"
);
diff --git a/apps/files_sharing/l10n/es.php b/apps/files_sharing/l10n/es.php
index 85f880927d6..b1d44e5485e 100644
--- a/apps/files_sharing/l10n/es.php
+++ b/apps/files_sharing/l10n/es.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Tamaño",
-"Modified" => "Modificado",
-"Delete all" => "Eliminar todo",
-"Delete" => "Eliminar"
+"Password" => "Contraseña",
+"Submit" => "Enviar",
+"Download" => "Descargar",
+"No preview available for" => "No hay vista previa disponible para",
+"web services under your control" => "Servicios web bajo su control"
);
diff --git a/apps/files_sharing/l10n/eu.php b/apps/files_sharing/l10n/eu.php
index 916c3151dcf..70ff2e8876c 100644
--- a/apps/files_sharing/l10n/eu.php
+++ b/apps/files_sharing/l10n/eu.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Tamaina",
-"Modified" => "Aldatuta",
-"Delete all" => "Ezabatu dena",
-"Delete" => "Ezabatu"
+"Password" => "Pasahitza",
+"Submit" => "Bidali",
+"Download" => "Deskargatu",
+"No preview available for" => "Ez dago aurrebista eskuragarririk hauentzat ",
+"web services under your control" => "web zerbitzuak zure kontrolpean"
);
diff --git a/apps/files_sharing/l10n/fi_FI.php b/apps/files_sharing/l10n/fi_FI.php
index ca7928aeecb..85c6c7a7132 100644
--- a/apps/files_sharing/l10n/fi_FI.php
+++ b/apps/files_sharing/l10n/fi_FI.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Koko",
-"Modified" => "Muokattu",
-"Delete all" => "Poista kaikki",
-"Delete" => "Poista"
+"Password" => "Salasana",
+"Submit" => "Lähetä",
+"Download" => "Lataa",
+"No preview available for" => "Ei esikatselua kohteelle",
+"web services under your control" => "verkkopalvelut hallinnassasi"
);
diff --git a/apps/files_sharing/l10n/fr.php b/apps/files_sharing/l10n/fr.php
index 5a90331e422..54d9e9ec567 100644
--- a/apps/files_sharing/l10n/fr.php
+++ b/apps/files_sharing/l10n/fr.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Taille",
-"Modified" => "Modifié",
-"Delete all" => "Tout effacer",
-"Delete" => "Effacement"
+"Password" => "Mot de passe",
+"Submit" => "Envoyer",
+"Download" => "Télécharger",
+"No preview available for" => "Pas d'aperçu disponible pour",
+"web services under your control" => "services web sous votre contrôle"
);
diff --git a/apps/files_sharing/l10n/he.php b/apps/files_sharing/l10n/he.php
new file mode 100644
index 00000000000..68a337241da
--- /dev/null
+++ b/apps/files_sharing/l10n/he.php
@@ -0,0 +1,7 @@
+<?php $TRANSLATIONS = array(
+"Password" => "ססמה",
+"Submit" => "שליחה",
+"Download" => "הורדה",
+"No preview available for" => "אין תצוגה מקדימה זמינה עבור",
+"web services under your control" => "שירותי רשת תחת השליטה שלך"
+);
diff --git a/apps/files_sharing/l10n/it.php b/apps/files_sharing/l10n/it.php
index 7f91b856783..5bedabde9bb 100644
--- a/apps/files_sharing/l10n/it.php
+++ b/apps/files_sharing/l10n/it.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Dimensione",
-"Modified" => "Modificato",
-"Delete all" => "Elimina tutto",
-"Delete" => "Eliminazione"
+"Password" => "Password",
+"Submit" => "Invia",
+"Download" => "Scarica",
+"No preview available for" => "Nessuna anteprima disponibile per",
+"web services under your control" => "servizi web nelle tue mani"
);
diff --git a/apps/files_sharing/l10n/ja_JP.php b/apps/files_sharing/l10n/ja_JP.php
index 9fca88d0a33..5d63f371d56 100644
--- a/apps/files_sharing/l10n/ja_JP.php
+++ b/apps/files_sharing/l10n/ja_JP.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "サイズ",
-"Modified" => "変更",
-"Delete all" => "すべて削除",
-"Delete" => "削除"
+"Password" => "パスワード",
+"Submit" => "送信",
+"Download" => "ダウンロード",
+"No preview available for" => "プレビューはありません",
+"web services under your control" => "管理下のウェブサービス"
);
diff --git a/apps/files_sharing/l10n/nl.php b/apps/files_sharing/l10n/nl.php
index d357d66f674..2f732ed662f 100644
--- a/apps/files_sharing/l10n/nl.php
+++ b/apps/files_sharing/l10n/nl.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Grootte",
-"Modified" => "Aangepast",
-"Delete all" => "Verwijder alles",
-"Delete" => "Vewijder"
+"Password" => "Wachtwoord",
+"Submit" => "Verzenden",
+"Download" => "Downloaden",
+"No preview available for" => "Geen voorbeeldweergave beschikbaar voor",
+"web services under your control" => "Webdiensten in eigen beheer"
);
diff --git a/apps/files_sharing/l10n/pl.php b/apps/files_sharing/l10n/pl.php
index 7f612126b93..1d5e6261ef0 100644
--- a/apps/files_sharing/l10n/pl.php
+++ b/apps/files_sharing/l10n/pl.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Rozmiar",
-"Modified" => "Zmodyfikowane",
-"Delete all" => "Usuń wszystko",
-"Delete" => "Usuń"
+"Password" => "Hasło",
+"Submit" => "Wyślij",
+"Download" => "Pobierz",
+"No preview available for" => "Podgląd nie jest dostępny dla",
+"web services under your control" => "Kontrolowane serwisy"
);
diff --git a/apps/files_sharing/l10n/ru.php b/apps/files_sharing/l10n/ru.php
index 796403ae998..958ac1030d7 100644
--- a/apps/files_sharing/l10n/ru.php
+++ b/apps/files_sharing/l10n/ru.php
@@ -1,6 +1,6 @@
<?php $TRANSLATIONS = array(
-"Size" => "Размер",
-"Modified" => "Изменён",
-"Delete all" => "Удалить все",
-"Delete" => "Удалить"
+"Password" => "Пароль",
+"Submit" => "Отправить",
+"Download" => "Скачать",
+"web services under your control" => "веб-сервисы под вашим управлением"
);
diff --git a/apps/files_sharing/l10n/sk_SK.php b/apps/files_sharing/l10n/sk_SK.php
new file mode 100644
index 00000000000..ec9fc31c878
--- /dev/null
+++ b/apps/files_sharing/l10n/sk_SK.php
@@ -0,0 +1,7 @@
+<?php $TRANSLATIONS = array(
+"Password" => "Heslo",
+"Submit" => "Odoslať",
+"Download" => "Stiahnuť",
+"No preview available for" => "Žiaden náhľad k dispozícii pre",
+"web services under your control" => "webové služby pod Vašou kontrolou"
+);
diff --git a/apps/files_sharing/l10n/sl.php b/apps/files_sharing/l10n/sl.php
index a241c6e504f..5e7d2d5004b 100644
--- a/apps/files_sharing/l10n/sl.php
+++ b/apps/files_sharing/l10n/sl.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Velikost",
-"Modified" => "Spremenjeno",
-"Delete all" => "Izbriši vse",
-"Delete" => "Izbriši"
+"Password" => "Geslo",
+"Submit" => "Pošlji",
+"Download" => "Prenesi",
+"No preview available for" => "Predogled ni na voljo za",
+"web services under your control" => "spletne storitve pod vašim nadzorom"
);
diff --git a/apps/files_sharing/l10n/sv.php b/apps/files_sharing/l10n/sv.php
index 5a2cda43686..78b19836497 100644
--- a/apps/files_sharing/l10n/sv.php
+++ b/apps/files_sharing/l10n/sv.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "Storlek",
-"Modified" => "Ändrad",
-"Delete all" => "Radera alla",
-"Delete" => "Radera"
+"Password" => "Lösenord",
+"Submit" => "Skicka",
+"Download" => "Ladda ner",
+"No preview available for" => "Ingen förhandsgranskning tillgänglig för",
+"web services under your control" => "webbtjänster under din kontroll"
);
diff --git a/apps/files_sharing/l10n/th_TH.php b/apps/files_sharing/l10n/th_TH.php
index 3f8908a91a3..8a3f1207db4 100644
--- a/apps/files_sharing/l10n/th_TH.php
+++ b/apps/files_sharing/l10n/th_TH.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
-"Size" => "ขนาด",
-"Modified" => "แก้ไขแล้ว",
-"Delete all" => "ลบทั้งหมด",
-"Delete" => "ลบ"
+"Password" => "รหัสผ่าน",
+"Submit" => "ส่ง",
+"Download" => "ดาวน์โหลด",
+"No preview available for" => "ไม่สามารถดูตัวอย่างได้สำหรับ",
+"web services under your control" => "เว็บเซอร์วิสที่คุณควบคุมการใช้งานได้"
);
diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php
index b1e3ca8b48c..c8821ee0fe8 100644
--- a/apps/files_sharing/lib/share/file.php
+++ b/apps/files_sharing/lib/share/file.php
@@ -46,9 +46,25 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
return false;
}
- public function generateTarget($itemSource, $shareWith, $exclude = null) {
- // TODO Make sure target path doesn't exist already
- return $itemSource;
+ public function generateTarget($filePath, $shareWith, $exclude = null) {
+ $target = $filePath;
+ if (isset($exclude)) {
+ if ($pos = strrpos($target, '.')) {
+ $name = substr($target, 0, $pos);
+ $ext = substr($target, $pos);
+ } else {
+ $name = $filePath;
+ $ext = '';
+ }
+ $i = 2;
+ $append = '';
+ while (in_array($name.$append.$ext, $exclude)) {
+ $append = ' ('.$i.')';
+ $i++;
+ }
+ $target = $name.$append.$ext;
+ }
+ return $target;
}
public function formatItems($items, $format, $parameters = null) {
@@ -75,6 +91,8 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
// Remove Create permission if type is file
$file['permissions'] &= ~OCP\Share::PERMISSION_CREATE;
}
+ // NOTE: Temporary fix to allow unsharing of files in root of Shared directory
+ $file['permissions'] |= OCP\Share::PERMISSION_DELETE;
$files[] = $file;
}
return $files;
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 6a2905b52c9..6dba76955a0 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -209,7 +209,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public function isDeletable($path) {
if ($path == '') {
- return false;
+ return true;
}
return ($this->getPermissions($path) & OCP\Share::PERMISSION_DELETE);
}
@@ -306,9 +306,19 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public function unlink($path) {
// Delete the file if DELETE permission is granted
- if (($source = $this->getSourcePath($path)) && $this->isDeletable($path)) {
- $storage = OC_Filesystem::getStorage($source);
- return $storage->unlink($this->getInternalPath($source));
+ if ($source = $this->getSourcePath($path)) {
+ if ($this->isDeletable($path)) {
+ $storage = OC_Filesystem::getStorage($source);
+ return $storage->unlink($this->getInternalPath($source));
+ } else if (dirname($path) == '/' || dirname($path) == '.') {
+ // Unshare the file from the user if in the root of the Shared folder
+ if ($this->is_dir($path)) {
+ $itemType = 'folder';
+ } else {
+ $itemType = 'file';
+ }
+ return OCP\Share::unshareFromSelf($itemType, $path);
+ }
}
return false;
}
@@ -433,7 +443,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
* @param int $time
* @return bool
*/
- public function hasUpdated($path,$time){
+ public function hasUpdated($path,$time) {
//TODO
return false;
}
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index 7f72ef81bd3..010f6b9de18 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -6,9 +6,8 @@ if (isset($_GET['file'])) {
$uidOwner = substr($_GET['file'], 1, $pos - 1);
if (OCP\User::userExists($uidOwner)) {
OC_Util::setupFS($uidOwner);
- $file = substr($_GET['file'], $pos);
$fileSource = OC_Filecache::getId($_GET['file'], '');
- if ($linkItem = OCP\Share::getItemSharedWithByLink('file', $fileSource, $uidOwner)) {
+ if ($fileSource != -1 && ($linkItem = OCP\Share::getItemSharedWithByLink('file', $fileSource, $uidOwner))) {
if (isset($linkItem['share_with'])) {
// Check password
if (isset($_POST['password'])) {
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index 36e159dafee..ca48a35575e 100755
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -13,5 +13,13 @@
<?php if (substr($_['mimetype'], 0 , strpos($_['mimetype'], '/')) == 'image'): ?>
<img src="<?php echo $_['downloadURL']; ?>" />
<?php endif; ?>
+ <ul id="noPreview">
+ <li class="error">
+ <?php echo $l->t('No preview available for').' '.$_['filename']; ?><br />
+ <a href="<?php echo $_['downloadURL']; ?>" id="download"><img class="svg" alt="Download" src="<?php echo OCP\image_path("core", "actions/download.svg"); ?>" /><?php echo $l->t('Download')?></a>
+ </li>
+ </ul>
+ <div id="content"></div>
+ <table></table>
</div>
<footer><p class="info"><a href="http://owncloud.org/">ownCloud</a> &ndash; <?php echo $l->t('web services under your control'); ?></p></footer> \ No newline at end of file
diff --git a/apps/files_versions/ajax/expireAll.php b/apps/files_versions/ajax/expireAll.php
index f76da3da986..5c95885ffbd 100644
--- a/apps/files_versions/ajax/expireAll.php
+++ b/apps/files_versions/ajax/expireAll.php
@@ -31,7 +31,7 @@ OCP\JSON::callCheck();
$versions = new OCA_Versions\Storage();
-if( $versions->expireAll() ){
+if( $versions->expireAll() ) {
OCP\JSON::success();
die();
diff --git a/apps/files_versions/ajax/rollbackVersion.php b/apps/files_versions/ajax/rollbackVersion.php
index 24d71a914a4..f1b02eb4b92 100644
--- a/apps/files_versions/ajax/rollbackVersion.php
+++ b/apps/files_versions/ajax/rollbackVersion.php
@@ -9,7 +9,7 @@ $file = $_GET['file'];
$revision=(int)$_GET['revision'];
if( OCA_Versions\Storage::isversioned( $file ) ) {
- if(OCA_Versions\Storage::rollback( $file, $revision )){
+ if(OCA_Versions\Storage::rollback( $file, $revision )) {
OCP\JSON::success(array("data" => array( "revision" => $revision, "file" => $file )));
}else{
OCP\JSON::error(array("data" => array( "message" => "Could not revert:" . $file )));
diff --git a/apps/files_versions/appinfo/app.php b/apps/files_versions/appinfo/app.php
index 9ac7f6d5cde..746f89a8139 100644
--- a/apps/files_versions/appinfo/app.php
+++ b/apps/files_versions/appinfo/app.php
@@ -1,6 +1,6 @@
<?php
-//require_once('files_versions/versions.php');
+//require_once 'files_versions/versions.php';
OC::$CLASSPATH['OCA_Versions\Storage'] = 'apps/files_versions/lib/versions.php';
OC::$CLASSPATH['OCA_Versions\Hooks'] = 'apps/files_versions/lib/hooks.php';
diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js
index e34a6f50cac..1c8d083ea42 100644
--- a/apps/files_versions/js/versions.js
+++ b/apps/files_versions/js/versions.js
@@ -11,7 +11,7 @@ $(document).ready(function() {
$(document).ready(function(){
if (typeof FileActions !== 'undefined') {
// Add history button to files/index.php
- FileActions.register('file','History', FileActions.PERMISSION_UPDATE, function(){return OC.imagePath('core','actions/history')},function(filename){
+ FileActions.register('file','History', OC.PERMISSION_UPDATE, function(){return OC.imagePath('core','actions/history');},function(filename){
if (scanFiles.scanning){return;}//workaround to prevent additional http request block scanning feedback
@@ -76,7 +76,7 @@ function createVersionsDropdown(filename, files) {
$('#found_versions').change(function(){
var revision=parseInt($(this).val());
revertFile(files,revision);
- })
+ });
}
});
diff --git a/apps/files_versions/l10n/ca.php b/apps/files_versions/l10n/ca.php
index 8388556bec6..b6ddc6feecf 100644
--- a/apps/files_versions/l10n/ca.php
+++ b/apps/files_versions/l10n/ca.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Expira totes les versions",
+"Versions" => "Versions",
+"This will delete all existing backup versions of your files" => "Això eliminarà totes les versions de còpia de seguretat dels vostres fitxers",
"Enable Files Versioning" => "Habilita les versions de fitxers"
);
diff --git a/apps/files_versions/l10n/cs_CZ.php b/apps/files_versions/l10n/cs_CZ.php
index 3297648fa30..4f33c1915f2 100644
--- a/apps/files_versions/l10n/cs_CZ.php
+++ b/apps/files_versions/l10n/cs_CZ.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Vypršení všech verzí",
+"Expire all versions" => "Vypršet všechny verze",
+"Versions" => "Verze",
+"This will delete all existing backup versions of your files" => "Odstraní všechny existující zálohované verze Vašich souborů",
"Enable Files Versioning" => "Povolit verzování souborů"
);
diff --git a/apps/files_versions/l10n/de.php b/apps/files_versions/l10n/de.php
index 3d1a0a43f5e..2c15884d1b5 100644
--- a/apps/files_versions/l10n/de.php
+++ b/apps/files_versions/l10n/de.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Alle Versionen löschen",
+"Versions" => "Versionen",
+"This will delete all existing backup versions of your files" => "Dies löscht alle vorhandenen Sicherungsversionen Ihrer Dateien.",
"Enable Files Versioning" => "Datei-Versionierung aktivieren"
);
diff --git a/apps/files_versions/l10n/es.php b/apps/files_versions/l10n/es.php
index be416f5bfba..83d7ed0da2c 100644
--- a/apps/files_versions/l10n/es.php
+++ b/apps/files_versions/l10n/es.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Expirar todas las versiones",
+"Versions" => "Versiones",
+"This will delete all existing backup versions of your files" => "Esto eliminará todas las versiones guardadas como copia de seguridad de tus archivos",
"Enable Files Versioning" => "Habilitar versionamiento de archivos"
);
diff --git a/apps/files_versions/l10n/eu.php b/apps/files_versions/l10n/eu.php
index eacbdd09934..0f065c1e93c 100644
--- a/apps/files_versions/l10n/eu.php
+++ b/apps/files_versions/l10n/eu.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Iraungi bertsio guztiak",
+"Versions" => "Bertsioak",
+"This will delete all existing backup versions of your files" => "Honek zure fitxategien bertsio guztiak ezabatuko ditu",
"Enable Files Versioning" => "Gaitu fitxategien bertsioak"
);
diff --git a/apps/files_versions/l10n/fi_FI.php b/apps/files_versions/l10n/fi_FI.php
index c5092daf998..5cfcbf28bd4 100644
--- a/apps/files_versions/l10n/fi_FI.php
+++ b/apps/files_versions/l10n/fi_FI.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Vanhenna kaikki versiot",
+"Versions" => "Versiot",
+"This will delete all existing backup versions of your files" => "Tämä poistaa kaikki tiedostojesi olemassa olevat varmuuskopioversiot",
"Enable Files Versioning" => "Käytä tiedostojen versiointia"
);
diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php
index 02209f543b1..965fa02de98 100644
--- a/apps/files_versions/l10n/fr.php
+++ b/apps/files_versions/l10n/fr.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Supprimer les versions intermédiaires",
+"Versions" => "Versions",
+"This will delete all existing backup versions of your files" => "Cette opération va effacer toutes les versions intermédiaires de vos fichiers (et ne garder que la dernière version en date).",
"Enable Files Versioning" => "Activer le versionnage"
);
diff --git a/apps/files_versions/l10n/he.php b/apps/files_versions/l10n/he.php
new file mode 100644
index 00000000000..097169b2a49
--- /dev/null
+++ b/apps/files_versions/l10n/he.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Expire all versions" => "הפגת תוקף כל הגרסאות",
+"Versions" => "גרסאות",
+"This will delete all existing backup versions of your files" => "פעולה זו תמחק את כל גיבויי הגרסאות הקיימים של הקבצים שלך",
+"Enable Files Versioning" => "הפעלת ניהול גרסאות לקבצים"
+);
diff --git a/apps/files_versions/l10n/it.php b/apps/files_versions/l10n/it.php
index 9711ce18aa8..b7b0b9627b1 100644
--- a/apps/files_versions/l10n/it.php
+++ b/apps/files_versions/l10n/it.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Scadenza di tutte le versioni",
+"Versions" => "Versioni",
+"This will delete all existing backup versions of your files" => "Ciò eliminerà tutte le versioni esistenti dei tuoi file",
"Enable Files Versioning" => "Abilita controllo di versione"
);
diff --git a/apps/files_versions/l10n/ja_JP.php b/apps/files_versions/l10n/ja_JP.php
index ec5e32f3e29..81d17f56f8f 100644
--- a/apps/files_versions/l10n/ja_JP.php
+++ b/apps/files_versions/l10n/ja_JP.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "すべてのバージョンを削除する",
+"Versions" => "バージョン",
+"This will delete all existing backup versions of your files" => "これは、あなたのファイルのすべてのバックアップバージョンを削除します",
"Enable Files Versioning" => "ファイルのバージョン管理を有効にする"
);
diff --git a/apps/files_versions/l10n/nl.php b/apps/files_versions/l10n/nl.php
index 87e72a36202..da31603ff54 100644
--- a/apps/files_versions/l10n/nl.php
+++ b/apps/files_versions/l10n/nl.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Alle versies laten verlopen",
+"Versions" => "Versies",
+"This will delete all existing backup versions of your files" => "Dit zal alle bestaande backup versies van uw bestanden verwijderen",
"Enable Files Versioning" => "Activeer file versioning"
);
diff --git a/apps/files_versions/l10n/pl.php b/apps/files_versions/l10n/pl.php
index faf2d39e709..c25d37611a0 100644
--- a/apps/files_versions/l10n/pl.php
+++ b/apps/files_versions/l10n/pl.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Wygasają wszystkie wersje",
+"Versions" => "Wersje",
+"This will delete all existing backup versions of your files" => "Spowoduje to usunięcie wszystkich istniejących wersji kopii zapasowych plików",
"Enable Files Versioning" => "Włącz wersjonowanie plików"
);
diff --git a/apps/files_versions/l10n/sl.php b/apps/files_versions/l10n/sl.php
index e7db55930c1..aec6edb3c22 100644
--- a/apps/files_versions/l10n/sl.php
+++ b/apps/files_versions/l10n/sl.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Zastaraj vse različice",
+"Versions" => "Različice",
+"This will delete all existing backup versions of your files" => "To bo izbrisalo vse obstoječe različice varnostnih kopij vaših datotek",
"Enable Files Versioning" => "Omogoči sledenje različicam datotek"
);
diff --git a/apps/files_versions/l10n/sv.php b/apps/files_versions/l10n/sv.php
index 03d4d54d0b9..5788d8ae197 100644
--- a/apps/files_versions/l10n/sv.php
+++ b/apps/files_versions/l10n/sv.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Upphör alla versioner",
+"Versions" => "Versioner",
+"This will delete all existing backup versions of your files" => "Detta kommer att radera alla befintliga säkerhetskopior av dina filer",
"Enable Files Versioning" => "Aktivera versionshantering"
);
diff --git a/apps/files_versions/l10n/th_TH.php b/apps/files_versions/l10n/th_TH.php
index e880840f4b9..4f26e3bd035 100644
--- a/apps/files_versions/l10n/th_TH.php
+++ b/apps/files_versions/l10n/th_TH.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "หมดอายุทุกรุ่น",
+"Versions" => "รุ่น",
+"This will delete all existing backup versions of your files" => "นี่จะเป็นลบทิ้งไฟล์รุ่นที่ทำการสำรองข้อมูลทั้งหมดที่มีอยู่ของคุณทิ้งไป",
"Enable Files Versioning" => "เปิดใช้งานคุณสมบัติการแยกสถานะรุ่นหรือเวอร์ชั่นของไฟล์"
);
diff --git a/apps/files_versions/l10n/zh_CN.php b/apps/files_versions/l10n/zh_CN.php
new file mode 100644
index 00000000000..56a474be89a
--- /dev/null
+++ b/apps/files_versions/l10n/zh_CN.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Expire all versions" => "过期所有版本",
+"Versions" => "版本",
+"This will delete all existing backup versions of your files" => "将会删除您的文件的所有备份版本",
+"Enable Files Versioning" => "开启文件版本"
+);
diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php
index bfc8fd3a378..9ec0b01a7f9 100644
--- a/apps/files_versions/lib/hooks.php
+++ b/apps/files_versions/lib/hooks.php
@@ -9,7 +9,7 @@
/**
* This class contains all hooks.
*/
-
+
namespace OCA_Versions;
class Hooks {
@@ -18,58 +18,58 @@ class Hooks {
* listen to write event.
*/
public static function write_hook( $params ) {
-
+
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
-
+
$versions = new Storage( new \OC_FilesystemView('') );
-
+
$path = $params[\OC_Filesystem::signal_param_path];
-
+
if($path<>'') $versions->store( $path );
-
+
}
}
-
- /**
- * @brief Erase versions of deleted file
- * @param array
- *
- * This function is connected to the delete signal of OC_Filesystem
- * cleanup the versions directory if the actual file gets deleted
- */
+
+ /**
+ * @brief Erase versions of deleted file
+ * @param array
+ *
+ * This function is connected to the delete signal of OC_Filesystem
+ * cleanup the versions directory if the actual file gets deleted
+ */
public static function remove_hook($params) {
- $versions_fileview = \OCP\Files::getStorage('files_versions');
- $rel_path = $params['path'];
- $abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$rel_path.'.v';
- if(Storage::isversioned($rel_path)) {
- $versions = Storage::getVersions($rel_path);
- foreach ($versions as $v){
- unlink($abs_path . $v['version']);
- }
- }
- }
-
- /**
- * @brief rename/move versions of renamed/moved files
- * @param array with oldpath and newpath
- *
- * This function is connected to the rename signal of OC_Filesystem and adjust the name and location
- * of the stored versions along the actual file
- */
+ $versions_fileview = \OCP\Files::getStorage('files_versions');
+ $rel_path = $params['path'];
+ $abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$rel_path.'.v';
+ if(Storage::isversioned($rel_path)) {
+ $versions = Storage::getVersions($rel_path);
+ foreach ($versions as $v) {
+ unlink($abs_path . $v['version']);
+ }
+ }
+ }
+
+ /**
+ * @brief rename/move versions of renamed/moved files
+ * @param array with oldpath and newpath
+ *
+ * This function is connected to the rename signal of OC_Filesystem and adjust the name and location
+ * of the stored versions along the actual file
+ */
public static function rename_hook($params) {
- $versions_fileview = \OCP\Files::getStorage('files_versions');
- $rel_oldpath = $params['oldpath'];
- $abs_oldpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$rel_oldpath.'.v';
- $abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$params['newpath'].'.v';
+ $versions_fileview = \OCP\Files::getStorage('files_versions');
+ $rel_oldpath = $params['oldpath'];
+ $abs_oldpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$rel_oldpath.'.v';
+ $abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$params['newpath'].'.v';
if(Storage::isversioned($rel_oldpath)) {
- $info=pathinfo($abs_newpath);
- if(!file_exists($info['dirname'])) mkdir($info['dirname'],0700,true);
- $versions = Storage::getVersions($rel_oldpath);
- foreach ($versions as $v){
- rename($abs_oldpath.$v['version'], $abs_newpath.$v['version']);
- }
- }
+ $info=pathinfo($abs_newpath);
+ if(!file_exists($info['dirname'])) mkdir($info['dirname'],0700,true);
+ $versions = Storage::getVersions($rel_oldpath);
+ foreach ($versions as $v) {
+ rename($abs_oldpath.$v['version'], $abs_newpath.$v['version']);
+ }
+ }
}
-
+
}
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index 30f0b93a7ff..dedd83fc25a 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -1,311 +1,311 @@
-<?php
-/**
- * Copyright (c) 2012 Frank Karlitschek <frank@owncloud.org>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-/**
- * Versions
- *
- * A class to handle the versioning of files.
- */
-
-namespace OCA_Versions;
-
-class Storage {
-
-
- // config.php configuration:
- // - files_versions
- // - files_versionsfolder
- // - files_versionsblacklist
- // - files_versionsmaxfilesize
- // - files_versionsinterval
- // - files_versionmaxversions
- //
- // todo:
- // - finish porting to OC_FilesystemView to enable network transparency
- // - add transparent compression. first test if it´s worth it.
-
- const DEFAULTENABLED=true;
- const DEFAULTBLACKLIST='avi mp3 mpg mp4 ctmp';
- const DEFAULTMAXFILESIZE=1048576; // 10MB
- const DEFAULTMININTERVAL=60; // 1 min
- const DEFAULTMAXVERSIONS=50;
-
- private $view;
-
- function __construct() {
-
- $this->view = \OCP\Files::getStorage('files_versions');
-
- }
-
- /**
- * listen to write event.
- */
- public static function write_hook($params) {
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
- $path = $params[\OC_Filesystem::signal_param_path];
- if($path<>'') $this->store($path);
- }
- }
-
-
-
- /**
- * store a new version of a file.
- */
- public function store($filename) {
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
-
- $files_view = \OCP\Files::getStorage("files");
- $users_view = \OCP\Files::getStorage("files_versions");
- $users_view->chroot(\OCP\User::getUser().'/');
-
- //FIXME OC_Share no longer exists
- //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
- // $pos = strpos($source, '/files', 1);
- // $uid = substr($source, 1, $pos - 1);
- // $filename = substr($source, $pos + 6);
- //} else {
- $uid = \OCP\User::getUser();
- //}
-
- $versionsFolderName=\OCP\Config::getSystemValue('datadirectory') . $this->view->getAbsolutePath('');
-
- //check if source file already exist as version to avoid recursions.
- if ($users_view->file_exists($filename)) {
- return false;
- }
-
- // check if filename is a directory
- if($files_view->is_dir($filename)){
- return false;
- }
-
- // check filetype blacklist
- $blacklist=explode(' ',\OCP\Config::getSystemValue('files_versionsblacklist', Storage::DEFAULTBLACKLIST));
- foreach($blacklist as $bl) {
- $parts=explode('.', $filename);
- $ext=end($parts);
- if(strtolower($ext)==$bl) {
- return false;
- }
- }
-
- // check filesize
- if($files_view->filesize($filename)>\OCP\Config::getSystemValue('files_versionsmaxfilesize', Storage::DEFAULTMAXFILESIZE)){
- return false;
- }
-
-
- // check mininterval if the file is being modified by the owner (all shared files should be versioned despite mininterval)
- if ($uid == \OCP\User::getUser()) {
- $matches=glob($versionsFolderName.'/'.$filename.'.v*');
- sort($matches);
- $parts=explode('.v',end($matches));
- if((end($parts)+Storage::DEFAULTMININTERVAL)>time()){
- return false;
- }
- }
-
-
- // create all parent folders
- $info=pathinfo($filename);
- if(!file_exists($versionsFolderName.'/'.$info['dirname'])) mkdir($versionsFolderName.'/'.$info['dirname'],0700,true);
-
- // store a new version of a file
- @$users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.time());
-
- // expire old revisions if necessary
- Storage::expire($filename);
- }
- }
-
-
- /**
- * rollback to an old version of a file.
- */
- public static function rollback($filename,$revision) {
-
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
- $users_view = \OCP\Files::getStorage("files_versions");
- $users_view->chroot(\OCP\User::getUser().'/');
-
- //FIXME OC_Share no longer exists
- //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
- // $pos = strpos($source, '/files', 1);
- // $uid = substr($source, 1, $pos - 1);
- // $filename = substr($source, $pos + 6);
- //} else {
- $uid = \OCP\User::getUser();
- //}
-
- // rollback
- if( @$users_view->copy('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) {
-
- return true;
-
- }else{
-
- return false;
-
- }
-
- }
-
- }
-
- /**
- * check if old versions of a file exist.
- */
- public static function isversioned($filename) {
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
- $versions_fileview = \OCP\Files::getStorage("files_versions");
- //FIXME OC_Share no longer exists
- //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
- // $pos = strpos($source, '/files', 1);
- // $filename = substr($source, $pos + 6);
- //}
-
- $versionsFolderName=\OCP\Config::getSystemValue('datadirectory'). $versions_fileview->getAbsolutePath('');
-
- // check for old versions
- $matches=glob($versionsFolderName.$filename.'.v*');
- if(count($matches)>0){
- return true;
- }else{
- return false;
- }
- }else{
- return(false);
- }
- }
-
-
-
- /**
- * @brief get a list of all available versions of a file in descending chronological order
- * @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 ) {
-
- if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
-
- //FIXME OC_Share no longer exists
- //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
- // $pos = strpos($source, '/files', 1);
- // $uid = substr($source, 1, $pos - 1);
- // $filename = substr($source, $pos + 6);
- //} else {
- $uid = \OCP\User::getUser();
- //}
- $versions_fileview = \OCP\Files::getStorage('files_versions');
- $versionsFolderName = \OCP\Config::getSystemValue('datadirectory'). $versions_fileview->getAbsolutePath('');
- $versions = array();
-
- // fetch for old versions
- $matches = glob( $versionsFolderName.'/'.$filename.'.v*' );
-
- sort( $matches );
-
- $i = 0;
-
- $files_view = \OCP\Files::getStorage('files');
- $local_file = $files_view->getLocalFile($filename);
- foreach( $matches as $ma ) {
-
- $i++;
- $versions[$i]['cur'] = 0;
- $parts = explode( '.v', $ma );
- $versions[$i]['version'] = ( end( $parts ) );
-
- // if file with modified date exists, flag it in array as currently enabled version
- ( \md5_file( $ma ) == \md5_file( $local_file ) ? $versions[$i]['fileMatch'] = 1 : $versions[$i]['fileMatch'] = 0 );
-
- }
-
- $versions = array_reverse( $versions );
-
- foreach( $versions as $key => $value ) {
-
- // flag the first matched file in array (which will have latest modification date) as current version
- if ( $value['fileMatch'] ) {
-
- $value['cur'] = 1;
- break;
-
- }
-
- }
-
- $versions = array_reverse( $versions );
-
- // only show the newest commits
- if( $count != 0 and ( count( $versions )>$count ) ) {
-
- $versions = array_slice( $versions, count( $versions ) - $count );
-
- }
-
- return( $versions );
-
-
- } else {
-
- // if versioning isn't enabled then return an empty array
- return( array() );
-
- }
-
- }
-
- /**
- * @brief Erase a file's versions which exceed the set quota
- */
- public static function expire($filename) {
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
-
- //FIXME OC_Share no longer exists
- //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
- // $pos = strpos($source, '/files', 1);
- // $uid = substr($source, 1, $pos - 1);
- // $filename = substr($source, $pos + 6);
- //} else {
- $uid = \OCP\User::getUser();
- //}
- $versions_fileview = \OCP\Files::getStorage("files_versions");
- $versionsFolderName=\OCP\Config::getSystemValue('datadirectory'). $versions_fileview->getAbsolutePath('');
-
- // check for old versions
- $matches = glob( $versionsFolderName.'/'.$filename.'.v*' );
-
- if( count( $matches ) > \OCP\Config::getSystemValue( 'files_versionmaxversions', Storage::DEFAULTMAXVERSIONS ) ) {
-
- $numberToDelete = count( $matches-\OCP\Config::getSystemValue( 'files_versionmaxversions', Storage::DEFAULTMAXVERSIONS ) );
-
- // delete old versions of a file
- $deleteItems = array_slice( $matches, 0, $numberToDelete );
-
- foreach( $deleteItems as $de ) {
-
- unlink( $versionsFolderName.'/'.$filename.'.v'.$de );
-
- }
- }
- }
- }
-
- /**
- * @brief Erase all old versions of all user files
- * @return true/false
- */
- public function expireAll() {
- return $this->view->deleteAll('', true);
- }
-}
+<?php
+/**
+ * Copyright (c) 2012 Frank Karlitschek <frank@owncloud.org>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+/**
+ * Versions
+ *
+ * A class to handle the versioning of files.
+ */
+
+namespace OCA_Versions;
+
+class Storage {
+
+
+ // config.php configuration:
+ // - files_versions
+ // - files_versionsfolder
+ // - files_versionsblacklist
+ // - files_versionsmaxfilesize
+ // - files_versionsinterval
+ // - files_versionmaxversions
+ //
+ // todo:
+ // - finish porting to OC_FilesystemView to enable network transparency
+ // - add transparent compression. first test if it´s worth it.
+
+ const DEFAULTENABLED=true;
+ const DEFAULTBLACKLIST='avi mp3 mpg mp4 ctmp';
+ const DEFAULTMAXFILESIZE=1048576; // 10MB
+ const DEFAULTMININTERVAL=60; // 1 min
+ const DEFAULTMAXVERSIONS=50;
+
+ private $view;
+
+ function __construct() {
+
+ $this->view = \OCP\Files::getStorage('files_versions');
+
+ }
+
+ /**
+ * listen to write event.
+ */
+ public static function write_hook($params) {
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+ $path = $params[\OC_Filesystem::signal_param_path];
+ if($path<>'') $this->store($path);
+ }
+ }
+
+
+
+ /**
+ * store a new version of a file.
+ */
+ public function store($filename) {
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+
+ $files_view = \OCP\Files::getStorage("files");
+ $users_view = \OCP\Files::getStorage("files_versions");
+ $users_view->chroot(\OCP\User::getUser().'/');
+
+ //FIXME OC_Share no longer exists
+ //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
+ // $pos = strpos($source, '/files', 1);
+ // $uid = substr($source, 1, $pos - 1);
+ // $filename = substr($source, $pos + 6);
+ //} else {
+ $uid = \OCP\User::getUser();
+ //}
+
+ $versionsFolderName=\OCP\Config::getSystemValue('datadirectory') . $this->view->getAbsolutePath('');
+
+ //check if source file already exist as version to avoid recursions.
+ if ($users_view->file_exists($filename)) {
+ return false;
+ }
+
+ // check if filename is a directory
+ if($files_view->is_dir($filename)) {
+ return false;
+ }
+
+ // check filetype blacklist
+ $blacklist=explode(' ',\OCP\Config::getSystemValue('files_versionsblacklist', Storage::DEFAULTBLACKLIST));
+ foreach($blacklist as $bl) {
+ $parts=explode('.', $filename);
+ $ext=end($parts);
+ if(strtolower($ext)==$bl) {
+ return false;
+ }
+ }
+
+ // check filesize
+ if($files_view->filesize($filename)>\OCP\Config::getSystemValue('files_versionsmaxfilesize', Storage::DEFAULTMAXFILESIZE)) {
+ return false;
+ }
+
+
+ // check mininterval if the file is being modified by the owner (all shared files should be versioned despite mininterval)
+ if ($uid == \OCP\User::getUser()) {
+ $matches=glob($versionsFolderName.'/'.$filename.'.v*');
+ sort($matches);
+ $parts=explode('.v',end($matches));
+ if((end($parts)+Storage::DEFAULTMININTERVAL)>time()) {
+ return false;
+ }
+ }
+
+
+ // create all parent folders
+ $info=pathinfo($filename);
+ if(!file_exists($versionsFolderName.'/'.$info['dirname'])) mkdir($versionsFolderName.'/'.$info['dirname'],0700,true);
+
+ // store a new version of a file
+ @$users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.time());
+
+ // expire old revisions if necessary
+ Storage::expire($filename);
+ }
+ }
+
+
+ /**
+ * rollback to an old version of a file.
+ */
+ public static function rollback($filename,$revision) {
+
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+ $users_view = \OCP\Files::getStorage("files_versions");
+ $users_view->chroot(\OCP\User::getUser().'/');
+
+ //FIXME OC_Share no longer exists
+ //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
+ // $pos = strpos($source, '/files', 1);
+ // $uid = substr($source, 1, $pos - 1);
+ // $filename = substr($source, $pos + 6);
+ //} else {
+ $uid = \OCP\User::getUser();
+ //}
+
+ // rollback
+ if( @$users_view->copy('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) {
+
+ return true;
+
+ }else{
+
+ return false;
+
+ }
+
+ }
+
+ }
+
+ /**
+ * check if old versions of a file exist.
+ */
+ public static function isversioned($filename) {
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+ $versions_fileview = \OCP\Files::getStorage("files_versions");
+ //FIXME OC_Share no longer exists
+ //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
+ // $pos = strpos($source, '/files', 1);
+ // $filename = substr($source, $pos + 6);
+ //}
+
+ $versionsFolderName=\OCP\Config::getSystemValue('datadirectory'). $versions_fileview->getAbsolutePath('');
+
+ // check for old versions
+ $matches=glob($versionsFolderName.$filename.'.v*');
+ if(count($matches)>0) {
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return(false);
+ }
+ }
+
+
+
+ /**
+ * @brief get a list of all available versions of a file in descending chronological order
+ * @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 ) {
+
+ if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
+
+ //FIXME OC_Share no longer exists
+ //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
+ // $pos = strpos($source, '/files', 1);
+ // $uid = substr($source, 1, $pos - 1);
+ // $filename = substr($source, $pos + 6);
+ //} else {
+ $uid = \OCP\User::getUser();
+ //}
+ $versions_fileview = \OCP\Files::getStorage('files_versions');
+ $versionsFolderName = \OCP\Config::getSystemValue('datadirectory'). $versions_fileview->getAbsolutePath('');
+ $versions = array();
+
+ // fetch for old versions
+ $matches = glob( $versionsFolderName.'/'.$filename.'.v*' );
+
+ sort( $matches );
+
+ $i = 0;
+
+ $files_view = \OCP\Files::getStorage('files');
+ $local_file = $files_view->getLocalFile($filename);
+ foreach( $matches as $ma ) {
+
+ $i++;
+ $versions[$i]['cur'] = 0;
+ $parts = explode( '.v', $ma );
+ $versions[$i]['version'] = ( end( $parts ) );
+
+ // if file with modified date exists, flag it in array as currently enabled version
+ ( \md5_file( $ma ) == \md5_file( $local_file ) ? $versions[$i]['fileMatch'] = 1 : $versions[$i]['fileMatch'] = 0 );
+
+ }
+
+ $versions = array_reverse( $versions );
+
+ foreach( $versions as $key => $value ) {
+
+ // flag the first matched file in array (which will have latest modification date) as current version
+ if ( $value['fileMatch'] ) {
+
+ $value['cur'] = 1;
+ break;
+
+ }
+
+ }
+
+ $versions = array_reverse( $versions );
+
+ // only show the newest commits
+ if( $count != 0 and ( count( $versions )>$count ) ) {
+
+ $versions = array_slice( $versions, count( $versions ) - $count );
+
+ }
+
+ return( $versions );
+
+
+ } else {
+
+ // if versioning isn't enabled then return an empty array
+ return( array() );
+
+ }
+
+ }
+
+ /**
+ * @brief Erase a file's versions which exceed the set quota
+ */
+ public static function expire($filename) {
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+
+ //FIXME OC_Share no longer exists
+ //if (\OCP\App::isEnabled('files_sharing') && $source = \OC_Share::getSource('/'.\OCP\User::getUser().'/files'.$filename)) {
+ // $pos = strpos($source, '/files', 1);
+ // $uid = substr($source, 1, $pos - 1);
+ // $filename = substr($source, $pos + 6);
+ //} else {
+ $uid = \OCP\User::getUser();
+ //}
+ $versions_fileview = \OCP\Files::getStorage("files_versions");
+ $versionsFolderName=\OCP\Config::getSystemValue('datadirectory'). $versions_fileview->getAbsolutePath('');
+
+ // check for old versions
+ $matches = glob( $versionsFolderName.'/'.$filename.'.v*' );
+
+ if( count( $matches ) > \OCP\Config::getSystemValue( 'files_versionmaxversions', Storage::DEFAULTMAXVERSIONS ) ) {
+
+ $numberToDelete = count( $matches-\OCP\Config::getSystemValue( 'files_versionmaxversions', Storage::DEFAULTMAXVERSIONS ) );
+
+ // delete old versions of a file
+ $deleteItems = array_slice( $matches, 0, $numberToDelete );
+
+ foreach( $deleteItems as $de ) {
+
+ unlink( $versionsFolderName.'/'.$filename.'.v'.$de );
+
+ }
+ }
+ }
+ }
+
+ /**
+ * @brief Erase all old versions of all user files
+ * @return true/false
+ */
+ public function expireAll() {
+ return $this->view->deleteAll('', true);
+ }
+}
diff --git a/apps/files_versions/templates/history.php b/apps/files_versions/templates/history.php
index d4f875a36e8..99bc153a816 100644
--- a/apps/files_versions/templates/history.php
+++ b/apps/files_versions/templates/history.php
@@ -22,7 +22,7 @@ if( isset( $_['message'] ) ) {
foreach ( $_['versions'] as $v ) {
echo ' ';
echo OCP\Util::formatDate( doubleval($v['version']) );
- echo ' <a href="'.OCP\Util::linkTo('files_versions', 'history.php').'?path='.urlencode( $_['path'] ).'&revert='. $v['version'] .'" class="button">Revert</a><br /><br />';
+ echo ' <a href="'.OCP\Util::linkTo('files_versions', 'history.php', array('path' => urlencode( $_['path'] ), 'revert' => $v['version'])) .'" class="button">Revert</a><br /><br />';
if ( $v['cur'] ) { echo ' (<b>Current</b>)'; }
echo '<br /><br />';
}
diff --git a/apps/files_versions/templates/settings-personal.php b/apps/files_versions/templates/settings-personal.php
index fe9ba381e58..6d97cea46c3 100644
--- a/apps/files_versions/templates/settings-personal.php
+++ b/apps/files_versions/templates/settings-personal.php
@@ -1,9 +1,14 @@
<form id="versions">
<fieldset class="personalblock">
<legend>
- <strong>Versions</strong><!-- translate using echo $l->t('foo'); -->
+ <strong><?php echo $l->t('Versions'); ?></strong>
</legend>
- <p>This will delete all existing backup versions of your files</p><!-- translate using echo $l->t('foo'); -->
- <button id="expireAllBtn">Expire all versions<img style="display: none;" class="expireAllLoading" src="<?php echo OCP\Util::imagePath('core', 'loading.gif'); ?>" /></button>
+ <p>
+ <?php echo $l->t('This will delete all existing backup versions of your files'); ?>
+ </p>
+ <button id="expireAllBtn">
+ <?php echo $l->t('Expire all versions'); ?>
+ <img style="display: none;" class="expireAllLoading" src="<?php echo OCP\Util::imagePath('core', 'loading.gif'); ?>" />
+ </button>
</fieldset>
</form>
diff --git a/apps/user_ldap/appinfo/install.php b/apps/user_ldap/appinfo/install.php
index 9efc3bb24d2..378957ec409 100644
--- a/apps/user_ldap/appinfo/install.php
+++ b/apps/user_ldap/appinfo/install.php
@@ -1,6 +1,6 @@
<?php
$state = OCP\Config::getSystemValue('ldapIgnoreNamingRules', 'doSet');
-if($state == 'doSet'){
+if($state == 'doSet') {
OCP\Config::setSystemValue('ldapIgnoreNamingRules', false);
}
diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php
index f06655c1dc1..f23285a0dc6 100644
--- a/apps/user_ldap/appinfo/update.php
+++ b/apps/user_ldap/appinfo/update.php
@@ -18,7 +18,7 @@ if(!is_null($pw)) {
//detect if we can switch on naming guidelines. We won't do it on conflicts.
//it's a bit spaghetti, but hey.
$state = OCP\Config::getSystemValue('ldapIgnoreNamingRules', 'unset');
-if($state == 'unset'){
+if($state == 'unset') {
OCP\Config::setSystemValue('ldapIgnoreNamingRules', false);
}
@@ -34,7 +34,7 @@ $groupBE = new \OCA\user_ldap\GROUP_LDAP();
$groupBE->setConnector($connector);
foreach($objects as $object) {
- $fetchDNSql = 'SELECT `ldap_dn` FROM `*PREFIX*ldap_'.$object.'_mapping`';
+ $fetchDNSql = 'SELECT `ldap_dn`, `owncloud_name` FROM `*PREFIX*ldap_'.$object.'_mapping` WHERE `directory_uuid` = ""';
$updateSql = 'UPDATE `*PREFIX*ldap_'.$object.'_mapping` SET `ldap_DN` = ?, `directory_uuid` = ? WHERE `ldap_dn` = ?';
$query = OCP\DB::prepare($fetchDNSql);
@@ -45,6 +45,8 @@ foreach($objects as $object) {
$newDN = mb_strtolower($dn['ldap_dn'], 'UTF-8');
if($object == 'user') {
$uuid = $userBE->getUUID($newDN);
+ //fix home folder to avoid new ones depending on the configuration
+ $userBE->getHome($dn['owncloud_name']);
} else {
$uuid = $groupBE->getUUID($newDN);
}
diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version
index e689e4949ef..444b3e8a75a 100644
--- a/apps/user_ldap/appinfo/version
+++ b/apps/user_ldap/appinfo/version
@@ -1 +1 @@
-0.2.0.26 \ No newline at end of file
+0.2.0.30 \ No newline at end of file
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index aac3ed78917..5ec259f6c47 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -231,7 +231,7 @@ class GROUP_LDAP extends lib\Access implements \OCP\GroupInterface {
* @param string $gid
* @return bool
*/
- public function groupExists($gid){
+ public function groupExists($gid) {
if($this->connection->isCached('groupExists'.$gid)) {
return $this->connection->getFromCache('groupExists'.$gid);
}
diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php
index 04b0f8997db..be72912040d 100644
--- a/apps/user_ldap/l10n/ca.php
+++ b/apps/user_ldap/l10n/ca.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP a usar per generar el nom de grup ownCloud.",
"in bytes" => "en bytes",
"in seconds. A change empties the cache." => "en segons. Un canvi buidarà la memòria de cau.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD.",
"Help" => "Ajuda"
);
diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php
index 6c0f227fa7a..c90dc9ed568 100644
--- a/apps/user_ldap/l10n/cs_CZ.php
+++ b/apps/user_ldap/l10n/cs_CZ.php
@@ -1,36 +1,37 @@
<?php $TRANSLATIONS = array(
-"Host" => "Hostitel",
-"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Nelze vynechat protokol vyžadující SSL. Začněte s ldaps://",
-"Base DN" => "Base DN",
-"You can specify Base DN for users and groups in the Advanced tab" => "V Rozšířeném nastavení můžete specifikovat pro své uživatele a skupiny element Base DN",
-"User DN" => "DN uživatele",
+"Host" => "Počítač",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://",
+"Base DN" => "Základní DN",
+"You can specify Base DN for users and groups in the Advanced tab" => "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny",
+"User DN" => "Uživatelské DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN klentského uživatele ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte údaje DN and Heslo prázdné.",
"Password" => "Heslo",
-"For anonymous access, leave DN and Password empty." => "Pro anonymní přístup ponechte údaje DN and Heslo prázdné.",
-"User Login Filter" => "Filtr uživatelských loginů",
-"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Definuje filtr, který je aplikován v průběhu logování. %%uid nahrazuje uživatelské jméno během logování.",
-"use %%uid placeholder, e.g. \"uid=%%uid\"" => "použijte %%uid pro rezervované místo, např. \"uid=%%uid\"",
-"User List Filter" => "Filtr uživateslkých seznamů",
-"Defines the filter to apply, when retrieving users." => "Defunije filtr, který je plaikován při návratu uživatelů.",
-"without any placeholder, e.g. \"objectClass=person\"." => "bez rezervace místa, např. \"objectClass=person\".",
-"Group Filter" => "Filtr skupiny",
-"Defines the filter to apply, when retrieving groups." => "Definuje filtr, který je aplikován při návratu skupin",
-"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez rezervace místa, např. \"objectClass=posixGroup\".",
+"For anonymous access, leave DN and Password empty." => "Pro anonymní přístup, ponechte údaje DN and heslo prázdné.",
+"User Login Filter" => "Filtr přihlášení uživatelů",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Určuje použitý filtr, při pokusu o přihlášení. %%uid nahrazuje uživatelské jméno v činnosti přihlášení.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "použijte zástupný vzor %%uid, např. \"uid=%%uid\"",
+"User List Filter" => "Filtr uživatelských seznamů",
+"Defines the filter to apply, when retrieving users." => "Určuje použitý filtr, pro získávaní uživatelů.",
+"without any placeholder, e.g. \"objectClass=person\"." => "bez zástupných znaků, např. \"objectClass=person\".",
+"Group Filter" => "Filtr skupin",
+"Defines the filter to apply, when retrieving groups." => "Určuje použitý filtr, pro získávaní skupin.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez zástupných znaků, např. \"objectClass=posixGroup\".",
"Port" => "Port",
"Base User Tree" => "Základní uživatelský strom",
"Base Group Tree" => "Základní skupinový strom",
"Group-Member association" => "Asociace člena skupiny",
-"Use TLS" => "Použijte TLS",
-"Do not use it for SSL connections, it will fail." => "Nepoužívejte pro SSL připojení, připojení selže.",
+"Use TLS" => "Použít TLS",
+"Do not use it for SSL connections, it will fail." => "Nepoužívejte pro připojení pomocí SSL, připojení selže.",
"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)",
-"Turn off SSL certificate validation." => "Vypněte ověřování SSL certifikátu",
-"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "pokud pracuje připojení pouze pokud je teto volba aktivní, importujte SSL certifikát LDAP serveru do Vašeho serveru ownCloud.",
-"Not recommended, use for testing only." => "Není doporučeno, pouze pro účely testování.",
+"Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud",
+"Not recommended, use for testing only." => "Není doporučeno, pouze pro testovací účely.",
"User Display Name Field" => "Pole pro zobrazované jméno uživatele",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP použitý k vytvoření jména uživatele ownCloud",
"Group Display Name Field" => "Pole pro zobrazení jména skupiny",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribut LDAP použitý k vytvoření jména skupiny ownCloud",
-"in bytes" => "v bytech",
-"in seconds. A change empties the cache." => "ve vteřinách. Změna vyprázdní dočasnou paměť.",
+"in bytes" => "v bajtech",
+"in seconds. A change empties the cache." => "ve vteřinách. Změna vyprázdní vyrovnávací paměť.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.",
"Help" => "Nápověda"
);
diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php
index 9f917f277c4..2c178d0b4fd 100644
--- a/apps/user_ldap/l10n/de.php
+++ b/apps/user_ldap/l10n/de.php
@@ -23,7 +23,7 @@
"Use TLS" => "Nutze TLS",
"Do not use it for SSL connections, it will fail." => "Verwenden Sie es nicht für SSL-Verbindungen, es wird fehlschlagen.",
"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
-"Turn off SSL certificate validation." => "Schalte die SSL Zertifikatsprüfung aus.",
+"Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, wird das SSL-Zertifikat des LDAP-Server importiert werden.",
"Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.",
"User Display Name Field" => "Feld für den Anzeigenamen des Benutzers",
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ",
"in bytes" => "in Bytes",
"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfalls geben Sie ein LDAP/AD-Attribut an.",
"Help" => "Hilfe"
);
diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php
index 6f18506b095..683c60ef840 100644
--- a/apps/user_ldap/l10n/eo.php
+++ b/apps/user_ldap/l10n/eo.php
@@ -17,6 +17,7 @@
"Port" => "Pordo",
"Base User Tree" => "Baza uzantarbo",
"Base Group Tree" => "Baza gruparbo",
+"Group-Member association" => "Asocio de grupo kaj membro",
"Use TLS" => "Uzi TLS-on",
"Do not use it for SSL connections, it will fail." => "Ne uzu ĝin por SSL-konektoj, ĝi malsukcesos.",
"Case insensitve LDAP server (Windows)" => "LDAP-servilo blinda je litergrandeco (Vindozo)",
@@ -28,5 +29,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "La atributo de LDAP uzota por generi la ownCloud-an nomon de la grupo.",
"in bytes" => "duumoke",
"in seconds. A change empties the cache." => "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.",
"Help" => "Helpo"
);
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index 55abf7b88e0..c89ceb8eee2 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -1,7 +1,37 @@
<?php $TRANSLATIONS = array(
+"Host" => "Servidor",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://",
+"Base DN" => "DN base",
+"You can specify Base DN for users and groups in the Advanced tab" => "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado",
+"User DN" => "DN usuario",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.",
"Password" => "Contraseña",
+"For anonymous access, leave DN and Password empty." => "Para acceso anónimo, deje DN y contraseña vacíos.",
+"User Login Filter" => "Filtro de inicio de sesión de usuario",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Define el filtro a aplicar cuando se ha realizado un login. %%uid remplazrá el nombre de usuario en el proceso de login.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "usar %%uid como placeholder, ej: \"uid=%%uid\"",
+"User List Filter" => "Lista de filtros de usuario",
+"Defines the filter to apply, when retrieving users." => "Define el filtro a aplicar, cuando se obtienen usuarios.",
+"without any placeholder, e.g. \"objectClass=person\"." => "Sin placeholder, ej: \"objectClass=person\".",
+"Group Filter" => "Filtro de grupo",
+"Defines the filter to apply, when retrieving groups." => "Define el filtro a aplicar, cuando se obtienen grupos.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Con cualquier placeholder, ej: \"objectClass=posixGroup\".",
"Port" => "Puerto",
+"Base User Tree" => "Árbol base de usuario",
+"Base Group Tree" => "Árbol base de grupo",
+"Group-Member association" => "Asociación Grupo-Miembro",
"Use TLS" => "Usar TLS",
+"Do not use it for SSL connections, it will fail." => "No usarlo para SSL, habrá error.",
+"Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)",
+"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud.",
+"Not recommended, use for testing only." => "No recomendado, sólo para pruebas.",
+"User Display Name Field" => "Campo de nombre de usuario a mostrar",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.",
+"Group Display Name Field" => "Campo de nombre de grupo a mostrar",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud.",
"in bytes" => "en bytes",
+"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la cache.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD.",
"Help" => "Ayuda"
);
diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php
index cc042b13892..35dacef3f2f 100644
--- a/apps/user_ldap/l10n/eu.php
+++ b/apps/user_ldap/l10n/eu.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "ownCloud taldearen izena sortzeko erabiliko den LDAP atributua",
"in bytes" => "bytetan",
"in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.",
"Help" => "Laguntza"
);
diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php
index f6d16f3acc1..24195649a64 100644
--- a/apps/user_ldap/l10n/fi_FI.php
+++ b/apps/user_ldap/l10n/fi_FI.php
@@ -1,13 +1,14 @@
<?php $TRANSLATIONS = array(
"Host" => "Isäntä",
-"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Voit jättää protokollan määrittämättä, paitsi kun käytät SSL:ää. Aloita silloin ldaps://",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Voit jättää protokollan määrittämättä, paitsi kun vaadit SSL:ää. Aloita silloin ldaps://",
"Base DN" => "Oletus DN",
-"You can specify Base DN for users and groups in the Advanced tab" => "Voit määrittää käyttäjien ja ryhmien oletus DN:n (distinguished name) 'tarkemmat asetukset' välilehdeltä ",
+"You can specify Base DN for users and groups in the Advanced tab" => "Voit määrittää käyttäjien ja ryhmien oletus DN:n (distinguished name) 'tarkemmat asetukset'-välilehdeltä ",
"User DN" => "Käyttäjän DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Asiakasohjelman DN, jolla yhdistäminen tehdään, ts. uid=agent,dc=example,dc=com. Mahdollistaaksesi anonyymin yhteyden, jätä DN ja salasana tyhjäksi.",
"Password" => "Salasana",
"For anonymous access, leave DN and Password empty." => "Jos haluat mahdollistaa anonyymin pääsyn, jätä DN ja Salasana tyhjäksi ",
"User Login Filter" => "Login suodatus",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Määrittelee käytettävän suodattimen, kun sisäänkirjautumista yritetään. %%uid korvaa sisäänkirjautumisessa käyttäjätunnuksen.",
"use %%uid placeholder, e.g. \"uid=%%uid\"" => "käytä %%uid paikanvaraajaa, ts. \"uid=%%uid\"",
"User List Filter" => "Käyttäjien suodatus",
"Defines the filter to apply, when retrieving users." => "Määrittelee käytettävän suodattimen, kun käyttäjiä haetaan. ",
@@ -16,16 +17,21 @@
"Defines the filter to apply, when retrieving groups." => "Määrittelee käytettävän suodattimen, kun ryhmiä haetaan. ",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\".",
"Port" => "Portti",
-"Base User Tree" => "Oletus käyttäjäpuu",
+"Base User Tree" => "Oletuskäyttäjäpuu",
"Base Group Tree" => "Ryhmien juuri",
-"Group-Member association" => "Ryhmä-jäsen assosiaatio (yhteys)",
+"Group-Member association" => "Ryhmän ja jäsenen assosiaatio (yhteys)",
"Use TLS" => "Käytä TLS:ää",
-"Do not use it for SSL connections, it will fail." => "Älä käytä SSL yhteyttä varten, se epäonnistuu. ",
+"Do not use it for SSL connections, it will fail." => "Älä käytä SSL-yhteyttä varten, se epäonnistuu. ",
"Case insensitve LDAP server (Windows)" => "Kirjainkoosta piittamaton LDAP-palvelin (Windows)",
-"Turn off SSL certificate validation." => "Sulje SSL sertifikaatin käyttö",
-"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jos yhteys toimii vain tällä optiolla, siirrä LDAP palvelimen SSL sertifikaatti onwCloud palvelimellesi. ",
+"Turn off SSL certificate validation." => "Poista käytöstä SSL-varmenteen vahvistus",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jos yhteys toimii vain tällä valinnalla, siirrä LDAP-palvelimen SSL-varmenne ownCloud-palvelimellesi.",
"Not recommended, use for testing only." => "Ei suositella, käytä vain testausta varten.",
+"User Display Name Field" => "Käyttäjän näytettävän nimen kenttä",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP-attribuutti, jota käytetään käyttäjän ownCloud-käyttäjänimenä ",
+"Group Display Name Field" => "Ryhmän \"näytettävä nimi\"-kenttä",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP-attribuutti, jota käytetään luomaan ryhmän ownCloud-nimi",
"in bytes" => "tavuissa",
"in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Jätä tyhjäksi käyttäjänimi (oletusasetus). Muutoin anna LDAP/AD-atribuutti.",
"Help" => "Ohje"
);
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index 0754aa01de8..a0b1c6b7d9c 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "L'attribut LDAP utilisé pour générer les noms de groupes d'ownCloud.",
"in bytes" => "en octets",
"in seconds. A change empties the cache." => "en secondes. Tout changement vide le cache.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laisser vide ",
"Help" => "Aide"
);
diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php
index c86b4ea2a57..f07f0aa5a42 100644
--- a/apps/user_ldap/l10n/it.php
+++ b/apps/user_ldap/l10n/it.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "L'attributo LDAP da usare per generare il nome del gruppo ownCloud.",
"in bytes" => "in byte",
"in seconds. A change empties the cache." => "in secondi. Il cambio svuota la cache.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lascia vuoto per il nome utente (predefinito). Altrimenti, specifica un attributo LDAP/AD.",
"Help" => "Aiuto"
);
diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php
index 8d4473b4e28..c8599f56362 100644
--- a/apps/user_ldap/l10n/ja_JP.php
+++ b/apps/user_ldap/l10n/ja_JP.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "グループのownCloud名の生成に利用するLDAP属性。",
"in bytes" => "バイト",
"in seconds. A change empties the cache." => "秒。変更後にキャッシュがクリアされます。",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください.",
"Help" => "ヘルプ"
);
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index fa7618d68dc..7ebebe1e073 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atrybut LDAP służy do generowania nazwy grup ownCloud.",
"in bytes" => "w bajtach",
"in seconds. A change empties the cache." => "w sekundach. Zmiana opróżnia pamięć podręczną.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pozostaw puste dla user name (domyślnie). W przeciwnym razie podaj atrybut LDAP/AD.",
"Help" => "Pomoc"
);
diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php
index 326e47f96fe..beeed857455 100644
--- a/apps/user_ldap/l10n/ro.php
+++ b/apps/user_ldap/l10n/ro.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atributul LDAP folosit pentru a genera numele grupurilor din ownCloud",
"in bytes" => "în octeți",
"in seconds. A change empties the cache." => "în secunde. O schimbare curăță memoria tampon.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lăsați gol pentru numele de utilizator (implicit). În caz contrar, specificați un atribut LDAP / AD.",
"Help" => "Ajutor"
);
diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php
index 65ef8f47f42..92982d868b8 100644
--- a/apps/user_ldap/l10n/ru.php
+++ b/apps/user_ldap/l10n/ru.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP для генерации имени группы ownCloud.",
"in bytes" => "в байтах",
"in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD.",
"Help" => "Помощь"
);
diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php
index 312346958be..fd28b640156 100644
--- a/apps/user_ldap/l10n/sl.php
+++ b/apps/user_ldap/l10n/sl.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP atribut uporabljen pri ustvarjanju ownCloud imen skupin.",
"in bytes" => "v bajtih",
"in seconds. A change empties the cache." => "v sekundah. Sprememba izprazni predpomnilnik.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pustite prazno za uporabniško ime (privzeto). V nasprotnem primeru navedite LDAP/AD atribut.",
"Help" => "Pomoč"
);
diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php
index a23cc094b4d..2a0abb92967 100644
--- a/apps/user_ldap/l10n/sv.php
+++ b/apps/user_ldap/l10n/sv.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Attribut som används för att generera gruppnamn i ownCloud.",
"in bytes" => "i bytes",
"in seconds. A change empties the cache." => "i sekunder. En förändring tömmer cache.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lämnas tomt för användarnamn (standard). Ange annars ett LDAP/AD-attribut.",
"Help" => "Hjälp"
);
diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php
index a1baa648135..acc7a4936bc 100644
--- a/apps/user_ldap/l10n/th_TH.php
+++ b/apps/user_ldap/l10n/th_TH.php
@@ -32,5 +32,6 @@
"The LDAP attribute to use to generate the groups`s ownCloud name." => "คุณลักษณะ LDAP ที่ต้องการใช้สร้างชื่อกลุ่มของ ownCloud",
"in bytes" => "ในหน่วยไบต์",
"in seconds. A change empties the cache." => "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD",
"Help" => "ช่วยเหลือ"
);
diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php
index 23018890eac..f765151456a 100644
--- a/apps/user_ldap/settings.php
+++ b/apps/user_ldap/settings.php
@@ -26,8 +26,8 @@ OCP\Util::addscript('user_ldap', 'settings');
OCP\Util::addstyle('user_ldap', 'settings');
if ($_POST) {
- foreach($params as $param){
- if(isset($_POST[$param])){
+ foreach($params as $param) {
+ if(isset($_POST[$param])) {
if('ldap_agent_password' == $param) {
OCP\Config::setAppValue('user_ldap', $param, base64_encode($_POST[$param]));
} elseif('ldap_cache_ttl' == $param) {
@@ -58,7 +58,7 @@ if ($_POST) {
// fill template
$tmpl = new OCP\Template( 'user_ldap', 'settings');
-foreach($params as $param){
+foreach($params as $param) {
$value = OCP\Config::getAppValue('user_ldap', $param,'');
$tmpl->assign($param, $value);
}
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index d1aaeedbdf9..3a653ad7208 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -23,8 +23,8 @@
<p><label for="ldap_turn_off_cert_check"><?php echo $l->t('Turn off SSL certificate validation.');?></label><input type="checkbox" id="ldap_turn_off_cert_check" name="ldap_turn_off_cert_check" title="<?php echo $l->t('If connection only works with this option, import the LDAP server\'s SSL certificate in your ownCloud server.');?>" value="1"<?php if ($_['ldap_turn_off_cert_check']) echo ' checked'; ?>><br/><small><?php echo $l->t('Not recommended, use for testing only.');?></small></p>
<p><label for="ldap_display_name"><?php echo $l->t('User Display Name Field');?></label><input type="text" id="ldap_display_name" name="ldap_display_name" value="<?php echo $_['ldap_display_name']; ?>" title="<?php echo $l->t('The LDAP attribute to use to generate the user`s ownCloud name.');?>" /></p>
<p><label for="ldap_group_display_name"><?php echo $l->t('Group Display Name Field');?></label><input type="text" id="ldap_group_display_name" name="ldap_group_display_name" value="<?php echo $_['ldap_group_display_name']; ?>" title="<?php echo $l->t('The LDAP attribute to use to generate the groups`s ownCloud name.');?>" /></p>
- <p><label for="ldap_quota_attr">Quota Field</label><input type="text" id="ldap_quota_attr" name="ldap_quota_attr" value="<?php echo $_['ldap_quota_attr']; ?>" />
- <label for="ldap_quota_def">Quota Default</label><input type="text" id="ldap_quota_def" name="ldap_quota_def" value="<?php if (isset($_['ldap_quota_def'])) echo $_['ldap_quota_def']; ?>" title="<?php echo $l->t('in bytes');?>" /></p>
+ <p><label for="ldap_quota_attr">Quota Field</label><input type="text" id="ldap_quota_attr" name="ldap_quota_attr" value="<?php echo $_['ldap_quota_attr']; ?>" /></p>
+ <p><label for="ldap_quota_def">Quota Default</label><input type="text" id="ldap_quota_def" name="ldap_quota_def" value="<?php if (isset($_['ldap_quota_def'])) echo $_['ldap_quota_def']; ?>" title="<?php echo $l->t('in bytes');?>" /></p>
<p><label for="ldap_email_attr">Email Field</label><input type="text" id="ldap_email_attr" name="ldap_email_attr" value="<?php echo $_['ldap_email_attr']; ?>" /></p>
<p><label for="ldap_cache_ttl">Cache Time-To-Live</label><input type="text" id="ldap_cache_ttl" name="ldap_cache_ttl" value="<?php echo $_['ldap_cache_ttl']; ?>" title="<?php echo $l->t('in seconds. A change empties the cache.');?>" /></p>
<p><label for="home_folder_naming_rule">User Home Folder Naming Rule</label><input type="text" id="home_folder_naming_rule" name="home_folder_naming_rule" value="<?php echo $_['home_folder_naming_rule']; ?>" title="<?php echo $l->t('Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute.');?>" /></p>
diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php
index ac66a608b76..b953127d86e 100644
--- a/apps/user_ldap/tests/group_ldap.php
+++ b/apps/user_ldap/tests/group_ldap.php
@@ -21,11 +21,11 @@
*/
class Test_Group_Ldap extends UnitTestCase {
- function setUp(){
+ function setUp() {
OC_Group::clearBackends();
}
- function testSingleBackend(){
+ function testSingleBackend() {
OC_Group::useBackend(new OCA\user_ldap\GROUP_LDAP());
$group_ldap = new OCA\user_ldap\GROUP_LDAP();
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index d297374600a..bacdb8b9ae1 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -65,7 +65,7 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
*
* Check if the password is correct without logging in the user
*/
- public function checkPassword($uid, $password){
+ public function checkPassword($uid, $password) {
//find out dn of the user name
$filter = \OCP\Util::mb_str_replace('%uid', $uid, $this->connection->ldapLoginFilter, 'UTF-8');
$ldap_users = $this->fetchListOfUsers($filter, 'dn');
@@ -82,7 +82,7 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
//do we have a username for him/her?
$ocname = $this->dn2username($dn);
- if($ocname){
+ if($ocname) {
//update some settings, if necessary
$this->updateQuota($dn);
$this->updateEmail($dn);
@@ -100,7 +100,7 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
*
* Get a list of all users.
*/
- public function getUsers($search = '', $limit = 10, $offset = 0){
+ public function getUsers($search = '', $limit = 10, $offset = 0) {
$ldap_users = $this->connection->getFromCache('getUsers');
if(is_null($ldap_users)) {
$ldap_users = $this->fetchListOfUsers($this->connection->ldapUserFilter, array($this->connection->ldapUserDisplayName, 'dn'));
@@ -126,7 +126,7 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
* @param string $uid the username
* @return boolean
*/
- public function userExists($uid){
+ public function userExists($uid) {
if($this->connection->isCached('userExists'.$uid)) {
return $this->connection->getFromCache('userExists'.$uid);
}
@@ -187,7 +187,7 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
* @param string $uid the username
* @return boolean
*/
- public function getHome($uid){
+ public function getHome($uid) {
if($this->userExists($uid)) {
$homedir = \OCP\Config::getUserValue($uid, 'user_ldap', 'homedir', false);
if(!$homedir) {
diff --git a/apps/user_webdavauth/appinfo/app.php b/apps/user_webdavauth/appinfo/app.php
index ebadcf30b6c..3ab323becce 100755
--- a/apps/user_webdavauth/appinfo/app.php
+++ b/apps/user_webdavauth/appinfo/app.php
@@ -21,7 +21,7 @@
*
*/
-require_once('apps/user_webdavauth/user_webdavauth.php');
+require_once 'apps/user_webdavauth/user_webdavauth.php';
OC_APP::registerAdmin('user_webdavauth','settings');
diff --git a/apps/user_webdavauth/settings.php b/apps/user_webdavauth/settings.php
index 1b80b1bba34..4f1ddbbefda 100755
--- a/apps/user_webdavauth/settings.php
+++ b/apps/user_webdavauth/settings.php
@@ -22,9 +22,9 @@
*/
print_r($_POST);
-if($_POST){
+if($_POST) {
- if(isset($_POST['webdav_url'])){
+ if(isset($_POST['webdav_url'])) {
OC_CONFIG::setValue('user_webdavauth_url', strip_tags($_POST['webdav_url']));
}
}
diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php
index 571aca2f70f..c36d37c1fa2 100755
--- a/apps/user_webdavauth/user_webdavauth.php
+++ b/apps/user_webdavauth/user_webdavauth.php
@@ -50,7 +50,7 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend {
$url= 'http://'.urlencode($uid).':'.urlencode($password).'@'.$this->webdavauth_url;
$headers = get_headers($url);
- if($headers==false){
+ if($headers==false) {
OC_Log::write('OC_USER_WEBDAVAUTH', 'Not possible to connect to WebDAV Url: "'.$this->webdavauth_url.'" ' ,3);
return false;
@@ -68,14 +68,14 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend {
/*
* we don´t know if a user exists without the password. so we have to return false all the time
*/
- public function userExists( $uid ){
+ public function userExists( $uid ) {
return false;
}
/*
* we don´t know the users so all we can do it return an empty array here
*/
- public function getUsers(){
+ public function getUsers() {
$returnArray = array();
return $returnArray;