summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2013-11-26 00:03:54 +0100
committerBjoern Schiessle <schiessle@owncloud.com>2013-11-26 00:03:54 +0100
commit46dff0677d3eff1aa4da94865e82698229dd71e0 (patch)
tree91b96385b6a5725592bf68169f9d862b007bf14c /apps
parentacf74b24f24e1c2ea9e454a1c09f6bcf404f6627 (diff)
parent5310a5924b18849c85b482819c350d72a6d0c67c (diff)
downloadnextcloud-server-46dff0677d3eff1aa4da94865e82698229dd71e0.tar.gz
nextcloud-server-46dff0677d3eff1aa4da94865e82698229dd71e0.zip
Merge branch 'master' into calc_version_size
Diffstat (limited to 'apps')
-rw-r--r--apps/files/css/files.css3
-rw-r--r--apps/files/js/filelist.js17
-rw-r--r--apps/files/l10n/de.php1
-rw-r--r--apps/files/l10n/de_DE.php13
-rw-r--r--apps/files/l10n/en_GB.php1
-rw-r--r--apps/files/l10n/et_EE.php1
-rw-r--r--apps/files/l10n/fi_FI.php2
-rw-r--r--apps/files/l10n/gl.php3
-rw-r--r--apps/files/l10n/it.php1
-rw-r--r--apps/files/l10n/pl.php14
-rw-r--r--apps/files/l10n/pt_BR.php1
-rw-r--r--apps/files/l10n/ru_RU.php4
-rw-r--r--apps/files/l10n/sl.php19
-rw-r--r--apps/files/l10n/tr.php3
-rw-r--r--apps/files/templates/index.php5
-rw-r--r--apps/files/tests/ajax_rename.php15
-rw-r--r--apps/files_encryption/l10n/el.php23
-rw-r--r--apps/files_encryption/l10n/pl.php1
-rw-r--r--apps/files_encryption/l10n/sl.php43
-rwxr-xr-xapps/files_encryption/lib/keymanager.php3
-rw-r--r--apps/files_encryption/lib/proxy.php3
-rw-r--r--apps/files_encryption/lib/stream.php5
-rw-r--r--apps/files_encryption/lib/util.php29
-rwxr-xr-xapps/files_encryption/tests/crypt.php14
-rw-r--r--apps/files_external/l10n/ar.php1
-rw-r--r--apps/files_external/l10n/ru_RU.php6
-rw-r--r--apps/files_external/lib/amazons3.php8
-rwxr-xr-xapps/files_external/lib/config.php5
-rwxr-xr-xapps/files_external/lib/dropbox.php14
-rw-r--r--apps/files_external/lib/google.php4
-rw-r--r--apps/files_external/lib/sftp.php22
-rw-r--r--apps/files_external/lib/smb.php19
-rw-r--r--apps/files_external/lib/streamwrapper.php8
-rw-r--r--apps/files_external/lib/swift.php12
-rw-r--r--apps/files_external/lib/webdav.php21
-rw-r--r--apps/files_external/tests/ftp.php8
-rw-r--r--apps/files_external/tests/mountconfig.php51
-rw-r--r--apps/files_external/tests/smbfunctions.php41
-rw-r--r--apps/files_sharing/l10n/el.php4
-rw-r--r--apps/files_sharing/public.php7
-rw-r--r--apps/files_trashbin/ajax/delete.php39
-rw-r--r--apps/files_trashbin/appinfo/info.xml2
-rw-r--r--apps/files_trashbin/js/filelist.js7
-rw-r--r--apps/files_trashbin/js/trash.js48
-rw-r--r--apps/files_trashbin/l10n/ru_RU.php3
-rw-r--r--apps/files_trashbin/templates/index.php4
-rw-r--r--apps/user_ldap/l10n/ca.php3
-rw-r--r--apps/user_ldap/l10n/de.php3
-rw-r--r--apps/user_ldap/l10n/de_DE.php3
-rw-r--r--apps/user_ldap/l10n/el.php7
-rw-r--r--apps/user_ldap/l10n/en_GB.php3
-rw-r--r--apps/user_ldap/l10n/es.php3
-rw-r--r--apps/user_ldap/l10n/et_EE.php3
-rw-r--r--apps/user_ldap/l10n/fr.php3
-rw-r--r--apps/user_ldap/l10n/gl.php3
-rw-r--r--apps/user_ldap/l10n/it.php3
-rw-r--r--apps/user_ldap/l10n/nl.php3
-rw-r--r--apps/user_ldap/l10n/pt_BR.php3
-rw-r--r--apps/user_ldap/l10n/ru.php3
-rw-r--r--apps/user_ldap/l10n/sl.php70
-rw-r--r--apps/user_ldap/l10n/tr.php3
-rw-r--r--apps/user_ldap/lib/wizard.php2
62 files changed, 489 insertions, 187 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 5ad9e389c0a..e96fa648157 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -65,6 +65,9 @@
top: 44px;
width: 100%;
}
+#filestable, #controls {
+ min-width: 680px;
+}
#filestable tbody tr { background-color:#fff; height:2.5em; }
#filestable tbody tr:hover, tbody tr:active {
background-color: rgb(240,240,240);
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index f20d9429271..66453740f5d 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -569,8 +569,18 @@ var FileList={
FileList.updateEmptyContent();
Files.updateStorageStatistics();
} else {
+ if (result.status === 'error' && result.data.message) {
+ OC.Notification.show(result.data.message);
+ }
+ else {
+ OC.Notification.show(t('files', 'Error deleting file.'));
+ }
+ // hide notification after 10 sec
+ setTimeout(function() {
+ OC.Notification.hide();
+ }, 10000);
$.each(files,function(index,file) {
- var deleteAction = $('tr[data-file="'+files[i]+'"]').children("td.date").children(".action.delete");
+ var deleteAction = $('tr[data-file="' + file + '"] .action.delete');
deleteAction.removeClass('progress-icon').addClass('delete-icon');
});
}
@@ -681,8 +691,9 @@ var FileList={
var $fileList = $('#fileList');
var permissions = $('#permissions').val();
var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0;
- $('#emptycontent').toggleClass('hidden', !isCreatable || $fileList.find('tr').exists());
- $('#filestable th').toggleClass('hidden', $fileList.find('tr').exists() === false);
+ var exists = $fileList.find('tr:first').exists();
+ $('#emptycontent').toggleClass('hidden', !isCreatable || exists);
+ $('#filestable th').toggleClass('hidden', !exists);
},
showMask: function() {
// in case one was shown before
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index 725b69c5cb2..a4924295a19 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Die Datei konnte nicht umbenannt werden",
"replaced {new_name} with {old_name}" => "{old_name} ersetzt durch {new_name}",
"undo" => "rückgängig machen",
+"Error deleting file." => "Fehler beim Löschen der Datei.",
"_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"),
"_%n file_::_%n files_" => array("%n Datei","%n Dateien"),
"{dirs} and {files}" => "{dirs} und {files}",
diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php
index ebfe0084575..cda2cb272a6 100644
--- a/apps/files/l10n/de_DE.php
+++ b/apps/files/l10n/de_DE.php
@@ -22,11 +22,11 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Kein temporärer Ordner vorhanden",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
"Not enough storage available" => "Nicht genug Speicher vorhanden.",
-"Upload failed. Could not get file info." => "Hochladen fehlgeschlagen. Dateiinformationen konnten nicht abgerufen werden.",
-"Upload failed. Could not find uploaded file" => "Hochladen fehlgeschlagen. Hochgeladene Datei konnte nicht gefunden werden.",
+"Upload failed. Could not get file info." => "Hochladen fehlgeschlagen. Die Dateiinformationen konnten nicht abgerufen werden.",
+"Upload failed. Could not find uploaded file" => "Hochladen fehlgeschlagen. Die hochgeladene Datei konnte nicht gefunden werden.",
"Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien",
-"Unable to upload {filename} as it is a directory or has 0 bytes" => "Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist",
+"Unable to upload {filename} as it is a directory or has 0 bytes" => "Die Datei {filename} kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist",
"Not enough space available" => "Nicht genügend Speicherplatz verfügbar",
"Upload cancelled." => "Upload abgebrochen.",
"Could not get result from server." => "Ergebnis konnte nicht vom Server abgerufen werden.",
@@ -34,7 +34,7 @@ $TRANSLATIONS = array(
"URL cannot be empty" => "Die URL darf nicht leer sein",
"In the home folder 'Shared' is a reserved filename" => "Das Benutzerverzeichnis 'Shared' ist ein reservierter Dateiname",
"{new_name} already exists" => "{new_name} existiert bereits",
-"Could not create file" => "Datei konnte nicht erstellt werden",
+"Could not create file" => "Die Datei konnte nicht erstellt werden",
"Could not create folder" => "Der Ordner konnte nicht erstellt werden",
"Share" => "Teilen",
"Delete permanently" => "Endgültig löschen",
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Die Datei konnte nicht umbenannt werden",
"replaced {new_name} with {old_name}" => "{old_name} wurde ersetzt durch {new_name}",
"undo" => "rückgängig machen",
+"Error deleting file." => "Fehler beim Löschen der Datei.",
"_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"),
"_%n file_::_%n files_" => array("%n Datei","%n Dateien"),
"{dirs} and {files}" => "{dirs} und {files}",
@@ -51,8 +52,8 @@ $TRANSLATIONS = array(
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.",
"Your storage is full, files can not be updated or synced anymore!" => "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
"Your storage is almost full ({usedSpacePercent}%)" => "Ihr Speicher ist fast voll ({usedSpacePercent}%)",
-"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Verschlüsselung-App ist aktiviert aber Ihre Schlüssel sind nicht initialisiert. Bitte melden sich nochmals ab und wieder an.",
-"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisieren Sie Ihr privates Schlüssel-Passwort um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden sich nochmals ab und wieder an.",
+"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisieren Sie Ihr privates Schlüssel-Passwort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Die Verschlüsselung wurde deaktiviert, jedoch sind Ihre Dateien nach wie vor verschlüsselt. Bitte gehen Sie zu Ihren persönlichen Einstellungen, um Ihre Dateien zu entschlüsseln.",
"Your download is being prepared. This might take some time if the files are big." => "Ihr Download wird vorbereitet. Dies kann bei größeren Dateien etwas dauern.",
"Error moving file" => "Fehler beim Verschieben der Datei",
diff --git a/apps/files/l10n/en_GB.php b/apps/files/l10n/en_GB.php
index 454d623a4d7..b613723ff75 100644
--- a/apps/files/l10n/en_GB.php
+++ b/apps/files/l10n/en_GB.php
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Could not rename file",
"replaced {new_name} with {old_name}" => "replaced {new_name} with {old_name}",
"undo" => "undo",
+"Error deleting file." => "Error deleting file.",
"_%n folder_::_%n folders_" => array("%n folder","%n folders"),
"_%n file_::_%n files_" => array("%n file","%n files"),
"{dirs} and {files}" => "{dirs} and {files}",
diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php
index 83a8adf052c..29a5771c9fc 100644
--- a/apps/files/l10n/et_EE.php
+++ b/apps/files/l10n/et_EE.php
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Ei suuda faili ümber nimetada",
"replaced {new_name} with {old_name}" => "asendas nime {old_name} nimega {new_name}",
"undo" => "tagasi",
+"Error deleting file." => "Viga faili kustutamisel.",
"_%n folder_::_%n folders_" => array("%n kataloog","%n kataloogi"),
"_%n file_::_%n files_" => array("%n fail","%n faili"),
"{dirs} and {files}" => "{dirs} ja {files}",
diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php
index 93d29aba677..dfce39bae8e 100644
--- a/apps/files/l10n/fi_FI.php
+++ b/apps/files/l10n/fi_FI.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Tiedoston nimessä ei saa olla merkkiä \"/\". Valitse toinen nimi.",
"The name %s is already used in the folder %s. Please choose a different name." => "Nimi %s on jo käytössä kansiossa %s. Valitse toinen nimi.",
"Not a valid source" => "Virheellinen lähde",
+"Error while downloading %s to %s" => "Virhe ladatessa kohdetta %s sijaintiin %s",
"Error when creating the file" => "Virhe tiedostoa luotaessa",
"Folder name cannot be empty." => "Kansion nimi ei voi olla tyhjä.",
"Folder name must not contain \"/\". Please choose a different name." => "Kansion nimessä ei saa olla merkkiä \"/\". Valitse toinen nimi.",
@@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"Pending" => "Odottaa",
"Could not rename file" => "Tiedoston nimeäminen uudelleen epäonnistui",
"undo" => "kumoa",
+"Error deleting file." => "Virhe tiedostoa poistaessa.",
"_%n folder_::_%n folders_" => array("%n kansio","%n kansiota"),
"_%n file_::_%n files_" => array("%n tiedosto","%n tiedostoa"),
"{dirs} and {files}" => "{dirs} ja {files}",
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index 4edb889bb4d..d76aad46b42 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -1,6 +1,6 @@
<?php
$TRANSLATIONS = array(
-"Could not move %s - File with this name already exists" => "Non se moveu %s - Xa existe un ficheiro con ese nome.",
+"Could not move %s - File with this name already exists" => "Non foi posíbel mover %s; Xa existe un ficheiro con ese nome.",
"Could not move %s" => "Non foi posíbel mover %s",
"File name cannot be empty." => "O nome de ficheiro non pode estar baleiro",
"File name must not contain \"/\". Please choose a different name." => "O nome do ficheiro non pode conter «/». Escolla outro nome.",
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Non foi posíbel renomear o ficheiro",
"replaced {new_name} with {old_name}" => "substituír {new_name} por {old_name}",
"undo" => "desfacer",
+"Error deleting file." => "Produciuse un erro ao eliminar o ficheiro.",
"_%n folder_::_%n folders_" => array("%n cartafol","%n cartafoles"),
"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"),
"{dirs} and {files}" => "{dirs} e {files}",
diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php
index 48d52653d51..eb8dab70093 100644
--- a/apps/files/l10n/it.php
+++ b/apps/files/l10n/it.php
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Impossibile rinominare il file",
"replaced {new_name} with {old_name}" => "sostituito {new_name} con {old_name}",
"undo" => "annulla",
+"Error deleting file." => "Errore durante l'eliminazione del file.",
"_%n folder_::_%n folders_" => array("%n cartella","%n cartelle"),
"_%n file_::_%n files_" => array("%n file","%n file"),
"{dirs} and {files}" => "{dirs} e {files}",
diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php
index 8140bac46bb..dbb49b4649a 100644
--- a/apps/files/l10n/pl.php
+++ b/apps/files/l10n/pl.php
@@ -3,7 +3,14 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Nie można było przenieść %s - Plik o takiej nazwie już istnieje",
"Could not move %s" => "Nie można było przenieść %s",
"File name cannot be empty." => "Nazwa pliku nie może być pusta.",
+"File name must not contain \"/\". Please choose a different name." => "Nazwa pliku nie może zawierać \"/\". Proszę wybrać inną nazwę.",
+"The name %s is already used in the folder %s. Please choose a different name." => "Nazwa %s jest już używana w folderze %s. Proszę wybrać inną nazwę.",
+"Not a valid source" => "Niepoprawne źródło",
+"Error while downloading %s to %s" => "Błąd podczas pobierania %s do %S",
+"Error when creating the file" => "Błąd przy tworzeniu pliku",
"Folder name cannot be empty." => "Nazwa folderu nie może być pusta.",
+"Folder name must not contain \"/\". Please choose a different name." => "Nazwa folderu nie może zawierać \"/\". Proszę wybrać inną nazwę.",
+"Error when creating the folder" => "Błąd przy tworzeniu folderu",
"Unable to set upload directory." => "Nie można ustawić katalog wczytywania.",
"Invalid Token" => "Nieprawidłowy Token",
"No file was uploaded. Unknown error" => "Żaden plik nie został załadowany. Nieznany błąd",
@@ -24,11 +31,16 @@ $TRANSLATIONS = array(
"Upload cancelled." => "Wczytywanie anulowane.",
"Could not get result from server." => "Nie można uzyskać wyniku z serwera.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane.",
+"URL cannot be empty" => "URL nie może być pusty",
+"In the home folder 'Shared' is a reserved filename" => "W katalogu domowym \"Shared\" jest zarezerwowana nazwa pliku",
"{new_name} already exists" => "{new_name} już istnieje",
+"Could not create file" => "Nie można utworzyć pliku",
+"Could not create folder" => "Nie można utworzyć folderu",
"Share" => "Udostępnij",
"Delete permanently" => "Trwale usuń",
"Rename" => "Zmień nazwę",
"Pending" => "Oczekujące",
+"Could not rename file" => "Nie można zmienić nazwy pliku",
"replaced {new_name} with {old_name}" => "zastąpiono {new_name} przez {old_name}",
"undo" => "cofnij",
"_%n folder_::_%n folders_" => array("%n katalog","%n katalogi","%n katalogów"),
@@ -48,6 +60,7 @@ $TRANSLATIONS = array(
"Name" => "Nazwa",
"Size" => "Rozmiar",
"Modified" => "Modyfikacja",
+"Invalid folder name. Usage of 'Shared' is reserved." => "Niepoprawna nazwa folderu. Wykorzystanie \"Shared\" jest zarezerwowane.",
"%s could not be renamed" => "%s nie można zmienić nazwy",
"Upload" => "Wyślij",
"File handling" => "Zarządzanie plikami",
@@ -64,6 +77,7 @@ $TRANSLATIONS = array(
"From link" => "Z odnośnika",
"Deleted files" => "Pliki usunięte",
"Cancel upload" => "Anuluj wysyłanie",
+"You don’t have permission to upload or create files here" => "Nie masz uprawnień do wczytywania lub tworzenia plików w tym miejscu",
"Nothing in here. Upload something!" => "Pusto. Wyślij coś!",
"Download" => "Pobierz",
"Unshare" => "Zatrzymaj współdzielenie",
diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php
index 217e9f4599c..1bc612af776 100644
--- a/apps/files/l10n/pt_BR.php
+++ b/apps/files/l10n/pt_BR.php
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Não foi possível renomear o arquivo",
"replaced {new_name} with {old_name}" => "Substituído {old_name} por {new_name} ",
"undo" => "desfazer",
+"Error deleting file." => "Erro eliminando o arquivo.",
"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"),
"_%n file_::_%n files_" => array("%n arquivo","%n arquivos"),
"{dirs} and {files}" => "{dirs} e {files}",
diff --git a/apps/files/l10n/ru_RU.php b/apps/files/l10n/ru_RU.php
index 3660b300c2b..649ec594cd5 100644
--- a/apps/files/l10n/ru_RU.php
+++ b/apps/files/l10n/ru_RU.php
@@ -7,9 +7,11 @@ $TRANSLATIONS = array(
"_%n file_::_%n files_" => array("","",""),
"_Uploading %n file_::_Uploading %n files_" => array("","",""),
"Error" => "Ошибка",
+"Size" => "Размер",
"Upload" => "Загрузка",
"Save" => "Сохранить",
"Cancel upload" => "Отмена загрузки",
-"Download" => "Загрузка"
+"Download" => "Загрузка",
+"Delete" => "Удалить"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php
index 3f5e3e625bb..819fb632d14 100644
--- a/apps/files/l10n/sl.php
+++ b/apps/files/l10n/sl.php
@@ -1,14 +1,14 @@
<?php
$TRANSLATIONS = array(
-"Could not move %s - File with this name already exists" => "%s ni mogoče premakniti - datoteka s tem imenom že obstaja",
-"Could not move %s" => "Ni mogoče premakniti %s",
+"Could not move %s - File with this name already exists" => "Datoteke %s ni mogoče premakniti - datoteka s tem imenom že obstaja.",
+"Could not move %s" => "Datoteke %s ni mogoče premakniti",
"File name cannot be empty." => "Ime datoteke ne sme biti prazno polje.",
"File name must not contain \"/\". Please choose a different name." => "Ime datoteke ne sme vsebovati znaka \"/\". Določiti je treba drugo ime.",
"The name %s is already used in the folder %s. Please choose a different name." => "Ime %s je že v mapi %s že v uporabi. Izbrati je treba drugo ime.",
"Not a valid source" => "Vir ni veljaven",
"Error while downloading %s to %s" => "Napaka med prejemanjem %s v mapo %s",
"Error when creating the file" => "Napaka med ustvarjanjem datoteke",
-"Folder name cannot be empty." => "Ime mape ne more biti prazna vrednost",
+"Folder name cannot be empty." => "Ime mape ne more biti prazna vrednost.",
"Folder name must not contain \"/\". Please choose a different name." => "Ime mape ne sme vsebovati znaka \"/\". Določiti je treba drugo ime.",
"Error when creating the folder" => "Napaka med ustvarjanjem mape",
"Unable to set upload directory." => "Mapo, v katero boste prenašali dokumente, ni mogoče določiti",
@@ -26,6 +26,7 @@ $TRANSLATIONS = array(
"Upload failed. Could not find uploaded file" => "Pošiljanje je spodletelo. Ni mogoče najti poslane datoteke.",
"Invalid directory." => "Neveljavna mapa.",
"Files" => "Datoteke",
+"Unable to upload {filename} as it is a directory or has 0 bytes" => "Ni mogoče poslati datoteke {filename}, saj je to ali mapa ali pa je velikost datoteke 0 bajtov.",
"Not enough space available" => "Na voljo ni dovolj prostora.",
"Upload cancelled." => "Pošiljanje je preklicano.",
"Could not get result from server." => "Ni mogoče pridobiti podatkov s strežnika.",
@@ -42,22 +43,26 @@ $TRANSLATIONS = array(
"Could not rename file" => "Ni mogoče preimenovati datoteke",
"replaced {new_name} with {old_name}" => "preimenovano ime {new_name} z imenom {old_name}",
"undo" => "razveljavi",
+"Error deleting file." => "Napaka brisanja datoteke.",
"_%n folder_::_%n folders_" => array("%n mapa","%n mapi","%n mape","%n map"),
"_%n file_::_%n files_" => array("%n datoteka","%n datoteki","%n datoteke","%n datotek"),
"{dirs} and {files}" => "{dirs} in {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Posodabljanje %n datoteke","Posodabljanje %n datotek","Posodabljanje %n datotek","Posodabljanje %n datotek"),
"'.' is an invalid file name." => "'.' je neveljavno ime datoteke.",
-"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neveljavno ime, znaki '\\', '/', '<', '>', ':', '\"', '|', '?' in '*' niso dovoljeni.",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neveljavno ime; znaki '\\', '/', '<', '>', ':', '\"', '|', '?' in '*' niso dovoljeni.",
"Your storage is full, files can not be updated or synced anymore!" => "Shramba je povsem napolnjena. Datotek ni več mogoče posodabljati in usklajevati!",
-"Your storage is almost full ({usedSpacePercent}%)" => "Mesto za shranjevanje je skoraj polno ({usedSpacePercent}%)",
-"Your download is being prepared. This might take some time if the files are big." => "Postopek priprave datoteke za prejem je lahko dolgotrajen, če je datoteka zelo velika.",
+"Your storage is almost full ({usedSpacePercent}%)" => "Prostor za shranjevanje je skoraj do konca zaseden ({usedSpacePercent}%)",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.",
+"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Šifriranje je onemogočeno, datoteke pa so še vedno šifrirane. Odšifrirajte jih med nastavitvami.",
+"Your download is being prepared. This might take some time if the files are big." => "Postopek priprave datoteke za prejem je lahko dolgotrajen, kadar je datoteka zelo velika.",
"Error moving file" => "Napaka premikanja datoteke",
"Error" => "Napaka",
"Name" => "Ime",
"Size" => "Velikost",
"Modified" => "Spremenjeno",
"Invalid folder name. Usage of 'Shared' is reserved." => "Neveljavno ime mape. Ime 'Souporaba' je zadržana za javno mapo.",
-"%s could not be renamed" => "%s ni bilo mogoče preimenovati",
+"%s could not be renamed" => "%s ni mogoče preimenovati",
"Upload" => "Pošlji",
"File handling" => "Upravljanje z datotekami",
"Maximum upload size" => "Največja velikost za pošiljanja",
diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php
index 1faa3547fb2..f8441251121 100644
--- a/apps/files/l10n/tr.php
+++ b/apps/files/l10n/tr.php
@@ -1,6 +1,6 @@
<?php
$TRANSLATIONS = array(
-"Could not move %s - File with this name already exists" => "%s taşınamadı. Bu isimde dosya zaten var.",
+"Could not move %s - File with this name already exists" => "%s taşınamadı - Bu isimde dosya zaten var",
"Could not move %s" => "%s taşınamadı",
"File name cannot be empty." => "Dosya adı boş olamaz.",
"File name must not contain \"/\". Please choose a different name." => "Dosya adı \"/\" içermemelidir. Lütfen farklı bir isim seçin.",
@@ -43,6 +43,7 @@ $TRANSLATIONS = array(
"Could not rename file" => "Dosya adlandırılamadı",
"replaced {new_name} with {old_name}" => "{new_name} ismi {old_name} ile değiştirildi",
"undo" => "geri al",
+"Error deleting file." => "Dosya silinirken hata.",
"_%n folder_::_%n folders_" => array("%n dizin","%n dizin"),
"_%n file_::_%n files_" => array("%n dosya","%n dosya"),
"{dirs} and {files}" => "{dirs} ve {files}",
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 6dd28532ccb..4f8623573cb 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -25,7 +25,7 @@
data-url="<?php print_unescaped(OCP\Util::linkTo('files', 'ajax/upload.php')); ?>" />
<a href="#" class="svg"></a>
</div>
- <?php if ($_['trash'] ): ?>
+ <?php if ($_['trash']): ?>
<input id="trash" type="button" value="<?php p($l->t('Deleted files'));?>" class="button" <?php $_['trashEmpty'] ? p('disabled') : '' ?>></input>
<?php endif; ?>
<div id="uploadprogresswrapper">
@@ -111,8 +111,9 @@
<input type="hidden" name="ajaxLoad" id="ajaxLoad" value="<?php p($_['ajaxLoad']); ?>" />
<input type="hidden" name="allowZipDownload" id="allowZipDownload" value="<?php p($_['allowZipDownload']); ?>" />
<input type="hidden" name="usedSpacePercent" id="usedSpacePercent" value="<?php p($_['usedSpacePercent']); ?>" />
+<?php if (!$_['isPublic']) :?>
<input type="hidden" name="encryptedFiles" id="encryptedFiles" value="<?php $_['encryptedFiles'] ? p('1') : p('0'); ?>" />
<input type="hidden" name="encryptedInitStatus" id="encryptionInitStatus" value="<?php p($_['encryptionInitStatus']) ?>" />
<input type="hidden" name="mailNotificationEnabled" id="mailNotificationEnabled" value="<?php p($_['mailNotificationEnabled']) ?>" />
<input type="hidden" name="allowShareWithLink" id="allowShareWithLink" value="<?php p($_['allowShareWithLink']) ?>" />
-
+<?php endif;
diff --git a/apps/files/tests/ajax_rename.php b/apps/files/tests/ajax_rename.php
index e654255c407..3735b0a49c8 100644
--- a/apps/files/tests/ajax_rename.php
+++ b/apps/files/tests/ajax_rename.php
@@ -22,9 +22,18 @@
*/
class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
+ private static $user;
function setUp() {
// mock OC_L10n
+ if (!self::$user) {
+ self::$user = uniqid();
+ }
+ \OC_User::createUser(self::$user, 'password');
+ \OC_User::setUserId(self::$user);
+
+ \OC\Files\Filesystem::init(self::$user, '/' . self::$user . '/files');
+
$l10nMock = $this->getMock('\OC_L10N', array('t'), array(), '', false);
$l10nMock->expects($this->any())
->method('t')
@@ -39,6 +48,12 @@ class Test_OC_Files_App_Rename extends \PHPUnit_Framework_TestCase {
$this->files = new \OCA\Files\App($viewMock, $l10nMock);
}
+ function tearDown() {
+ $result = \OC_User::deleteUser(self::$user);
+ $this->assertTrue($result);
+ \OC\Files\Filesystem::tearDown();
+ }
+
/**
* @brief test rename of file/folder named "Shared"
*/
diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php
index 70f778f0a50..6b21122027a 100644
--- a/apps/files_encryption/l10n/el.php
+++ b/apps/files_encryption/l10n/el.php
@@ -1,13 +1,34 @@
<?php
$TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Επιτυχής ενεργοποίηση κλειδιού ανάκτησης",
+"Could not enable recovery key. Please check your recovery key password!" => "Αποτυχία ενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
+"Recovery key successfully disabled" => "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης",
+"Could not disable recovery key. Please check your recovery key password!" => "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
"Password successfully changed." => "Ο κωδικός αλλάχτηκε επιτυχώς.",
"Could not change the password. Maybe the old password was not correct." => "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
+"Private key password successfully updated." => "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
+"Could not update the private key password. Maybe the old password was not correct." => "Αποτυχία ενημέρωσης του κωδικού για το προσωπικό κλειδί. Ενδεχομένως ο παλιός κωδικός δεν ήταν σωστός.",
+"Unknown error please check your system settings or contact your administrator" => "Άγνωστο σφάλμα, παρακαλώ ελέγξτε τις ρυθμίσεις συστήματος ή επικοινωνήστε με τον διαχειριστή σας ",
+"Missing requirements." => "Προαπαιτούμενα που απουσιάζουν.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Παρακαλώ επιβεβαιώστε ότι η PHP 5.3.3 ή νεότερη είναι εγκατεστημένη και ότι το OpenSSL μαζί με το PHP extension είναι ενεργοποιήμένο και έχει ρυθμιστεί σωστά. Προς το παρόν, η εφαρμογή κρυπτογράφησης είναι απενεργοποιημένη.",
+"Following users are not set up for encryption:" => "Οι κάτωθι χρήστες δεν έχουν ρυθμιστεί για κρυπογράφηση:",
"Saving..." => "Γίνεται αποθήκευση...",
+"Go directly to your " => "Πηγαίνε απευθείας στο ",
"personal settings" => "προσωπικές ρυθμίσεις",
"Encryption" => "Κρυπτογράφηση",
+"Recovery key password" => "Επαναφορά κωδικού κλειδιού",
"Enabled" => "Ενεργοποιημένο",
"Disabled" => "Απενεργοποιημένο",
+"New Recovery key password" => "Νέο κλειδί επαναφοράς κωδικού",
"Change Password" => "Αλλαγή Κωδικού Πρόσβασης",
-"File recovery settings updated" => "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν"
+"Your private key password no longer match your log-in password:" => "Ο κωδικός του προσωπικού κλειδιού δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας:",
+" If you don't remember your old password you can ask your administrator to recover your files." => "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.",
+"Old log-in password" => "Παλαιό συνθηματικό εισόδου",
+"Current log-in password" => "Τρέχον συνθηματικό πρόσβασης",
+"Update Private Key Password" => "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης",
+"Enable password recovery:" => "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης",
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας",
+"File recovery settings updated" => "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν",
+"Could not update file recovery" => "Αποτυχία ενημέρωσης ανάκτησης αρχείων"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php
index 615951eecc8..5d1a48d1246 100644
--- a/apps/files_encryption/l10n/pl.php
+++ b/apps/files_encryption/l10n/pl.php
@@ -9,6 +9,7 @@ $TRANSLATIONS = array(
"Private key password successfully updated." => "Pomyślnie zaktualizowano hasło klucza prywatnego.",
"Could not update the private key password. Maybe the old password was not correct." => "Nie można zmienić prywatnego hasła. Może stare hasło nie było poprawne.",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Szyfrowanie aplikacja nie została zainicjowane! Może szyfrowanie aplikacji zostało ponownie włączone podczas tej sesji. Spróbuj się wylogować i zalogować ponownie aby zainicjować szyfrowanie aplikacji.",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Klucz prywatny nie jest poprawny! Prawdopodobnie Twoje hasło zostało zmienione poza %s (np. w katalogu firmy). Aby odzyskać dostęp do zaszyfrowanych plików można zaktualizować hasło klucza prywatnego w ustawieniach osobistych.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.",
"Unknown error please check your system settings or contact your administrator" => "Nieznany błąd proszę sprawdzić ustawienia systemu lub skontaktuj się z administratorem",
"Missing requirements." => "Brak wymagań.",
diff --git a/apps/files_encryption/l10n/sl.php b/apps/files_encryption/l10n/sl.php
index d4d881d3d0d..be814558f52 100644
--- a/apps/files_encryption/l10n/sl.php
+++ b/apps/files_encryption/l10n/sl.php
@@ -1,36 +1,43 @@
<?php
$TRANSLATIONS = array(
-"Recovery key successfully enabled" => "Ključ za obnovitev gesla je bil uspešno nastavljen",
-"Could not enable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni bilo mogoče nastaviti. Preverite ključ!",
-"Recovery key successfully disabled" => "Ključ za obnovitev gesla je bil uspešno onemogočen",
-"Could not disable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni bilo mogoče onemogočiti. Preverite ključ!",
-"Password successfully changed." => "Geslo je bilo uspešno spremenjeno.",
-"Could not change the password. Maybe the old password was not correct." => "Gesla ni bilo mogoče spremeniti. Morda vnos starega gesla ni bil pravilen.",
-"Private key password successfully updated." => "Zasebni ključ za geslo je bil uspešno posodobljen.",
-"Could not update the private key password. Maybe the old password was not correct." => "Zasebnega ključa za geslo ni bilo mogoče posodobiti. Morda vnos starega gesla ni bil pravilen.",
+"Recovery key successfully enabled" => "Ključ za obnovitev gesla je uspešno nastavljen",
+"Could not enable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni mogoče nastaviti. Preverite ključ!",
+"Recovery key successfully disabled" => "Ključ za obnovitev gesla je uspešno onemogočen",
+"Could not disable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni mogoče onemogočiti. Preverite ključ!",
+"Password successfully changed." => "Geslo je uspešno spremenjeno.",
+"Could not change the password. Maybe the old password was not correct." => "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.",
+"Private key password successfully updated." => "Zasebni ključ za geslo je uspešno posodobljen.",
+"Could not update the private key password. Maybe the old password was not correct." => "Zasebnega ključa za geslo ni mogoče posodobiti. Morda vnos starega gesla ni bil pravilen.",
+"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Program za šifriranje ni začet. Morda je bil program ponovno omogočen šele med zagonom trenutne seje. Odjavite se in se nato prijavite nazaj. S tem morda razrešite napako.",
+"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Zasebni ključ ni veljaven. Najverjetneje je bilo geslo spremenjeno izven %s (najverjetneje je to poslovna mapa). Geslo lahko posodobite med osebnimi nastavitvami in s tem obnovite dostop do šifriranih datotek.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.",
+"Unknown error please check your system settings or contact your administrator" => "Prišlo je do neznane napake. Preverite nastavitve sistema ali pa stopite v stik s skrbnikom sistema.",
"Missing requirements." => "Manjkajoče zahteve",
-"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Preverite, da imate na strežniku nameščen paket PHP 5.3.3 ali novejši in da je omogočen in pravilno nastavljen PHP OpenSSL . Zaenkrat je šifriranje onemogočeno.",
-"Following users are not set up for encryption:" => "Naslednji uporabniki še nimajo nastavljenega šifriranja:",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Preverite, ali je na strežniku nameščen paket PHP 5.3.3 ali novejši, da je omogočen in pravilno nastavljen PHP OpenSSL. Z obstoječimi možnostmi šifriranje ni mogoče.",
+"Following users are not set up for encryption:" => "Navedeni uporabniki še nimajo nastavljenega šifriranja:",
"Saving..." => "Poteka shranjevanje ...",
+"Go directly to your " => "Skočite neposredno na",
"personal settings" => "osebne nastavitve",
"Encryption" => "Šifriranje",
-"Enable recovery key (allow to recover users files in case of password loss):" => "Omogoči ključ za obnovitev datotek (v primeru izgube gesla)",
+"Enable recovery key (allow to recover users files in case of password loss):" => "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):",
"Recovery key password" => "Ključ za obnovitev gesla",
+"Repeat Recovery key password" => "Ponovi ključ za obnovitev gesla",
"Enabled" => "Omogočeno",
"Disabled" => "Onemogočeno",
"Change recovery key password:" => "Spremeni ključ za obnovitev gesla:",
"Old Recovery key password" => "Stari ključ za obnovitev gesla",
-"New Recovery key password" => "Nov ključ za obnovitev gesla",
+"New Recovery key password" => "Novi ključ za obnovitev gesla",
+"Repeat New Recovery key password" => "Ponovi novi ključ za obnovitev gesla",
"Change Password" => "Spremeni geslo",
-"Your private key password no longer match your log-in password:" => "Vaš zasebni ključ za geslo se ne ujema z vnešenim geslom ob prijavi:",
-"Set your old private key password to your current log-in password." => "Nastavite svoj star zasebni ključ v geslo, vnešeno ob prijavi.",
-" If you don't remember your old password you can ask your administrator to recover your files." => "Če ste svoje geslo pozabili, lahko vaše datoteke obnovi skrbnik sistema.",
+"Your private key password no longer match your log-in password:" => "Vaš zasebni ključ za geslo se ne ujema z geslom, vnesenim ob prijavi:",
+"Set your old private key password to your current log-in password." => "Nastavite svoj star zasebni ključ v geslo, vneseno ob prijavi.",
+" If you don't remember your old password you can ask your administrator to recover your files." => "Če ste pozabili svoje geslo, lahko vaše datoteke obnovi le skrbnik sistema.",
"Old log-in password" => "Staro geslo",
"Current log-in password" => "Trenutno geslo",
"Update Private Key Password" => "Posodobi zasebni ključ",
"Enable password recovery:" => "Omogoči obnovitev gesla:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru da boste geslo pozabili.",
-"File recovery settings updated" => "Nastavitve obnavljanja dokumentov so bile posodobljene",
-"Could not update file recovery" => "Nastavitev za obnavljanje dokumentov ni bilo mogoče posodobiti"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili.",
+"File recovery settings updated" => "Nastavitve obnavljanja dokumentov so posodobljene",
+"Could not update file recovery" => "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti"
);
$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);";
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index 6dadd12a62e..3427e8a963a 100755
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -172,14 +172,13 @@ class Keymanager {
/**
* @brief retrieve keyfile for an encrypted file
* @param \OC_FilesystemView $view
- * @param $userId
* @param $filePath
* @internal param \OCA\Encryption\file $string name
* @return string file key or false
* @note The keyfile returned is asymmetrically encrypted. Decryption
* of the keyfile must be performed by client code
*/
- public static function getFileKey(\OC_FilesystemView $view, $userId, $filePath) {
+ public static function getFileKey(\OC_FilesystemView $view, $filePath) {
$util = new Util($view, \OCP\User::getUser());
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 54c3b9caa15..a8c74bd9dd4 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -349,7 +349,10 @@ class Proxy extends \OC_FileProxy {
$fileInfo = false;
// get file info from database/cache if not .part file
if (!Helper::isPartialFilePath($path)) {
+ $proxyState = \OC_FileProxy::$enabled;
+ \OC_FileProxy::$enabled = false;
$fileInfo = $view->getFileInfo($path);
+ \OC_FileProxy::$enabled = $proxyState;
}
// if file is encrypted return real file size
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index 1738955d1aa..1186a5f1d8d 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -250,7 +250,7 @@ class Stream {
// Fetch and decrypt keyfile
// Fetch existing keyfile
- $this->encKeyfile = Keymanager::getFileKey($this->rootView, $this->userId, $this->relPath);
+ $this->encKeyfile = Keymanager::getFileKey($this->rootView, $this->relPath);
// If a keyfile already exists
if ($this->encKeyfile) {
@@ -491,7 +491,8 @@ class Stream {
if (
$this->meta['mode'] !== 'r' &&
$this->meta['mode'] !== 'rb' &&
- $this->size > 0
+ $this->size > 0 &&
+ $this->unencryptedSize > 0
) {
// only write keyfiles if it was a new file
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 1af5e56e10b..b208a808bac 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -84,6 +84,8 @@ class Util {
$this->privateKeyPath =
'/owncloud_private_key/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key
$this->isPublic = true;
+ // make sure that the owners home is mounted
+ \OC\Files\Filesystem::initMountPoints($GLOBALS['fileOwner']);
}
} else {
@@ -99,6 +101,8 @@ class Util {
$this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key
$this->privateKeyPath =
$this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key
+ // make sure that the owners home is mounted
+ \OC\Files\Filesystem::initMountPoints($this->userId);
}
}
@@ -363,7 +367,7 @@ class Util {
// scanning every file like this
// will eat server resources :(
if (
- Keymanager::getFileKey($this->view, $this->userId, $relPath)
+ Keymanager::getFileKey($this->view, $relPath)
&& $isEncryptedPath
) {
@@ -468,22 +472,19 @@ class Util {
*/
public function isEncryptedPath($path) {
- // Disable encryption proxy so data retrieved is in its
- // original form
- $proxyStatus = \OC_FileProxy::$enabled;
- \OC_FileProxy::$enabled = false;
+ $relPath = Helper::getPathToRealFile($path);
- // we only need 24 byte from the last chunk
- $data = '';
- $handle = $this->view->fopen($path, 'r');
- if (is_resource($handle) && !fseek($handle, -24, SEEK_END)) {
- $data = fgets($handle);
+ if ($relPath === false) {
+ $relPath = Helper::stripUserFilesPath($path);
}
- // re-enable proxy
- \OC_FileProxy::$enabled = $proxyStatus;
+ $fileKey = Keymanager::getFileKey($this->view, $relPath);
- return Crypt::isCatfileContent($data);
+ if ($fileKey === false) {
+ return false;
+ }
+
+ return true;
}
@@ -1055,7 +1056,7 @@ class Util {
private function decryptKeyfile($filePath, $privateKey) {
// Get the encrypted keyfile
- $encKeyfile = Keymanager::getFileKey($this->view, $this->userId, $filePath);
+ $encKeyfile = Keymanager::getFileKey($this->view, $filePath);
// The file has a shareKey and must use it for decryption
$shareKey = Keymanager::getShareKey($this->view, $this->userId, $filePath);
diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php
index 5146613e252..9c32ee06453 100755
--- a/apps/files_encryption/tests/crypt.php
+++ b/apps/files_encryption/tests/crypt.php
@@ -176,7 +176,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$this->assertNotEquals($this->dataShort, $retreivedCryptedFile);
// Get the encrypted keyfile
- $encKeyfile = Encryption\Keymanager::getFileKey($this->view, $this->userId, $filename);
+ $encKeyfile = Encryption\Keymanager::getFileKey($this->view, $filename);
// Attempt to fetch the user's shareKey
$shareKey = Encryption\Keymanager::getShareKey($this->view, $this->userId, $filename);
@@ -244,13 +244,13 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$i = 0;
while ($i < count($r)-1) {
$e[] = $r[$i] . $r[$i+1];
- $i = $i + 2;
+ $i = $i + 2;
}
//print_r($e);
// Get the encrypted keyfile
- $encKeyfile = Encryption\Keymanager::getFileKey($this->view, $this->userId, $filename);
+ $encKeyfile = Encryption\Keymanager::getFileKey($this->view, $filename);
// Attempt to fetch the user's shareKey
$shareKey = Encryption\Keymanager::getShareKey($this->view, $this->userId, $filename);
@@ -387,7 +387,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
* @brief test decryption using legacy blowfish method
*/
function testLegacyDecryptShort() {
-
+
$crypted = $this->legacyEncrypt($this->dataShort, $this->pass);
$decrypted = Encryption\Crypt::legacyBlockDecrypt($crypted, $this->pass);
@@ -401,7 +401,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
* @brief test decryption using legacy blowfish method
*/
function testLegacyDecryptLong() {
-
+
$crypted = $this->legacyEncrypt($this->dataLong, $this->pass);
$decrypted = Encryption\Crypt::legacyBlockDecrypt($crypted, $this->pass);
@@ -653,8 +653,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
// tear down
$view->unlink($filename);
}
-
-
+
+
/**
* @brief encryption using legacy blowfish method
* @param $data string data to encrypt
diff --git a/apps/files_external/l10n/ar.php b/apps/files_external/l10n/ar.php
index 055c6895823..338526d2afd 100644
--- a/apps/files_external/l10n/ar.php
+++ b/apps/files_external/l10n/ar.php
@@ -1,6 +1,7 @@
<?php
$TRANSLATIONS = array(
"Folder name" => "اسم المجلد",
+"Options" => "خيارات",
"All Users" => "كل المستخدمين",
"Groups" => "مجموعات",
"Users" => "المستخدمين",
diff --git a/apps/files_external/l10n/ru_RU.php b/apps/files_external/l10n/ru_RU.php
new file mode 100644
index 00000000000..d517597f59c
--- /dev/null
+++ b/apps/files_external/l10n/ru_RU.php
@@ -0,0 +1,6 @@
+<?php
+$TRANSLATIONS = array(
+"Options" => "Опции",
+"Delete" => "Удалить"
+);
+$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php
index c08a266b48c..9a682fb2d48 100644
--- a/apps/files_external/lib/amazons3.php
+++ b/apps/files_external/lib/amazons3.php
@@ -300,14 +300,6 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return false;
}
- public function isReadable($path) {
- return true;
- }
-
- public function isUpdatable($path) {
- return true;
- }
-
public function unlink($path) {
$path = $this->normalizePath($path);
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 43643076519..aaa6c5be1a0 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -266,6 +266,11 @@ class OC_Mount_Config {
$mountType,
$applicable,
$isPersonal = false) {
+ $mountPoint = OC\Files\Filesystem::normalizePath($mountPoint);
+ if ($mountPoint === '' || $mountPoint === '/' || $mountPoint == '/Shared') {
+ // can't mount at root or "Shared" folder
+ return false;
+ }
if ($isPersonal) {
// Verify that the mount point applies for the current user
// Prevent non-admin users from mounting local storage
diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index b6deab6e5a7..5f603b7fe43 100755
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -146,14 +146,6 @@ class Dropbox extends \OC\Files\Storage\Common {
return false;
}
- public function isReadable($path) {
- return $this->file_exists($path);
- }
-
- public function isUpdatable($path) {
- return $this->file_exists($path);
- }
-
public function file_exists($path) {
if ($path == '' || $path == '/') {
return true;
@@ -277,7 +269,11 @@ class Dropbox extends \OC\Files\Storage\Common {
}
public function touch($path, $mtime = null) {
- return false;
+ if ($this->file_exists($path)) {
+ return false;
+ } else {
+ $this->file_put_contents($path, '');
+ }
}
}
diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php
index b63b5885de1..426caf008ec 100644
--- a/apps/files_external/lib/google.php
+++ b/apps/files_external/lib/google.php
@@ -317,10 +317,6 @@ class Google extends \OC\Files\Storage\Common {
}
}
- public function isReadable($path) {
- return $this->file_exists($path);
- }
-
public function isUpdatable($path) {
$file = $this->getDriveFile($path);
if ($file) {
diff --git a/apps/files_external/lib/sftp.php b/apps/files_external/lib/sftp.php
index fb1ecd54635..bcc4c5eafd5 100644
--- a/apps/files_external/lib/sftp.php
+++ b/apps/files_external/lib/sftp.php
@@ -94,15 +94,17 @@ class SFTP extends \OC\Files\Storage\Common {
private function writeHostKeys($keys) {
try {
$keyPath = $this->hostKeysPath();
- $fp = fopen($keyPath, 'w');
- foreach ($keys as $host => $key) {
- fwrite($fp, $host . '::' . $key . "\n");
+ if ($keyPath && file_exists($keyPath)) {
+ $fp = fopen($keyPath, 'w');
+ foreach ($keys as $host => $key) {
+ fwrite($fp, $host . '::' . $key . "\n");
+ }
+ fclose($fp);
+ return true;
}
- fclose($fp);
- return true;
} catch (\Exception $e) {
- return false;
}
+ return false;
}
private function readHostKeys() {
@@ -178,14 +180,6 @@ class SFTP extends \OC\Files\Storage\Common {
return false;
}
- public function isReadable($path) {
- return true;
- }
-
- public function isUpdatable($path) {
- return true;
- }
-
public function file_exists($path) {
try {
return $this->client->stat($this->absPath($path)) !== false;
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index ecd4dae0484..5bff597fdca 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -47,8 +47,13 @@ class SMB extends \OC\Files\Storage\StreamWrapper{
public function constructUrl($path) {
if (substr($path, -1)=='/') {
- $path=substr($path, 0, -1);
+ $path = substr($path, 0, -1);
}
+ if (substr($path, 0, 1)=='/') {
+ $path = substr($path, 1);
+ }
+ // remove trailing dots which some versions of samba don't seem to like
+ $path = rtrim($path, '.');
$path = urlencode($path);
$user = urlencode($this->user);
$pass = urlencode($this->password);
@@ -77,6 +82,18 @@ class SMB extends \OC\Files\Storage\StreamWrapper{
}
/**
+ * Unlinks file
+ * @param string @path
+ */
+ public function unlink($path) {
+ unlink($this->constructUrl($path));
+ clearstatcache();
+ // smb4php still returns false even on success so
+ // check here whether file was really deleted
+ return !file_exists($path);
+ }
+
+ /**
* check if a file or folder has been updated since $time
* @param string $path
* @param int $time
diff --git a/apps/files_external/lib/streamwrapper.php b/apps/files_external/lib/streamwrapper.php
index 4a63dfb6e02..23c5f91a2f3 100644
--- a/apps/files_external/lib/streamwrapper.php
+++ b/apps/files_external/lib/streamwrapper.php
@@ -41,14 +41,6 @@ abstract class StreamWrapper extends Common {
return filetype($this->constructUrl($path));
}
- public function isReadable($path) {
- return true; //not properly supported
- }
-
- public function isUpdatable($path) {
- return true; //not properly supported
- }
-
public function file_exists($path) {
return file_exists($this->constructUrl($path));
}
diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php
index bb650dacc7b..b615d24ce76 100644
--- a/apps/files_external/lib/swift.php
+++ b/apps/files_external/lib/swift.php
@@ -268,14 +268,6 @@ class Swift extends \OC\Files\Storage\Common {
}
}
- public function isReadable($path) {
- return true;
- }
-
- public function isUpdatable($path) {
- return true;
- }
-
public function unlink($path) {
$path = $this->normalizePath($path);
@@ -372,7 +364,7 @@ class Swift extends \OC\Files\Storage\Common {
'X-Object-Meta-Timestamp' => $mtime
)
);
- $object->Update($settings);
+ return $object->Update($settings);
} else {
$object = $this->container->DataObject();
if (is_null($mtime)) {
@@ -385,7 +377,7 @@ class Swift extends \OC\Files\Storage\Common {
'X-Object-Meta-Timestamp' => $mtime
)
);
- $object->Create($settings);
+ return $object->Create($settings);
}
}
diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php
index 66920fc9f64..02f6cb5fc4f 100644
--- a/apps/files_external/lib/webdav.php
+++ b/apps/files_external/lib/webdav.php
@@ -134,14 +134,6 @@ class DAV extends \OC\Files\Storage\Common{
}
}
- public function isReadable($path) {
- return true;//not properly supported
- }
-
- public function isUpdatable($path) {
- return true;//not properly supported
- }
-
public function file_exists($path) {
$this->init();
$path=$this->cleanPath($path);
@@ -242,6 +234,7 @@ class DAV extends \OC\Files\Storage\Common{
} else {
$this->file_put_contents($path, '');
}
+ return true;
}
public function getFile($path, $target) {
@@ -268,7 +261,7 @@ class DAV extends \OC\Files\Storage\Common{
public function rename($path1, $path2) {
$this->init();
$path1=$this->cleanPath($path1);
- $path2=$this->root.$this->cleanPath($path2);
+ $path2=$this->createBaseUri().$this->cleanPath($path2);
try {
$this->client->request('MOVE', $path1, null, array('Destination'=>$path2));
return true;
@@ -280,7 +273,7 @@ class DAV extends \OC\Files\Storage\Common{
public function copy($path1, $path2) {
$this->init();
$path1=$this->cleanPath($path1);
- $path2=$this->root.$this->cleanPath($path2);
+ $path2=$this->createBaseUri().$this->cleanPath($path2);
try {
$this->client->request('COPY', $path1, null, array('Destination'=>$path2));
return true;
@@ -323,11 +316,9 @@ class DAV extends \OC\Files\Storage\Common{
}
public function cleanPath($path) {
- if ( ! $path || $path[0]=='/') {
- return substr($path, 1);
- } else {
- return $path;
- }
+ $path = \OC\Files\Filesystem::normalizePath($path);
+ // remove leading slash
+ return substr($path, 1);
}
private function simpleResponse($method, $path, $body, $expected) {
diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php
index e146725473a..94ed5630d91 100644
--- a/apps/files_external/tests/ftp.php
+++ b/apps/files_external/tests/ftp.php
@@ -34,19 +34,19 @@ class FTP extends Storage {
'password' => 'ftp',
'root' => '/',
'secure' => false );
- $instance = new OC_Filestorage_FTP($config);
+ $instance = new \OC\Files\Storage\FTP($config);
$this->assertEquals('ftp://ftp:ftp@localhost/', $instance->constructUrl(''));
$config['secure'] = true;
- $instance = new OC_Filestorage_FTP($config);
+ $instance = new \OC\Files\Storage\FTP($config);
$this->assertEquals('ftps://ftp:ftp@localhost/', $instance->constructUrl(''));
$config['secure'] = 'false';
- $instance = new OC_Filestorage_FTP($config);
+ $instance = new \OC\Files\Storage\FTP($config);
$this->assertEquals('ftp://ftp:ftp@localhost/', $instance->constructUrl(''));
$config['secure'] = 'true';
- $instance = new OC_Filestorage_FTP($config);
+ $instance = new \OC\Files\Storage\FTP($config);
$this->assertEquals('ftps://ftp:ftp@localhost/', $instance->constructUrl(''));
}
}
diff --git a/apps/files_external/tests/mountconfig.php b/apps/files_external/tests/mountconfig.php
new file mode 100644
index 00000000000..941aec680bb
--- /dev/null
+++ b/apps/files_external/tests/mountconfig.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Vincent Petry
+ * Copyright (c) 2013 Vincent Petry <pvince81@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/>.
+ *
+ */
+
+require_once __DIR__ . '/../../../lib/base.php';
+
+require __DIR__ . '/../lib/config.php';
+
+class Test_Mount_Config_Dummy_Storage {
+ public function test() {
+ return true;
+ }
+}
+
+/**
+ * Class Test_Mount_Config
+ */
+class Test_Mount_Config extends \PHPUnit_Framework_TestCase {
+ /**
+ * Test mount point validation
+ */
+ public function testAddMountPointValidation() {
+ $storageClass = 'Test_Mount_Config_Dummy_Storage';
+ $mountType = 'user';
+ $applicable = 'all';
+ $isPersonal = false;
+ $this->assertEquals(false, OC_Mount_Config::addMountPoint('', $storageClass, array(), $mountType, $applicable, $isPersonal));
+ $this->assertEquals(false, OC_Mount_Config::addMountPoint('/', $storageClass, array(), $mountType, $applicable, $isPersonal));
+ $this->assertEquals(false, OC_Mount_Config::addMountPoint('Shared', $storageClass, array(), $mountType, $applicable, $isPersonal));
+ $this->assertEquals(false, OC_Mount_Config::addMountPoint('/Shared', $storageClass, array(), $mountType, $applicable, $isPersonal));
+
+ }
+}
diff --git a/apps/files_external/tests/smbfunctions.php b/apps/files_external/tests/smbfunctions.php
new file mode 100644
index 00000000000..749906d0136
--- /dev/null
+++ b/apps/files_external/tests/smbfunctions.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Copyright (c) 2013 Vincent Petry <pvince81@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Files\Storage;
+
+class SMBFunctions extends \PHPUnit_Framework_TestCase {
+
+ public function setUp() {
+ $id = uniqid();
+ // dummy config
+ $this->config = array(
+ 'run'=>false,
+ 'user'=>'test',
+ 'password'=>'testpassword',
+ 'host'=>'smbhost',
+ 'share'=>'/sharename',
+ 'root'=>'/rootdir/',
+ );
+
+ $this->instance = new \OC\Files\Storage\SMB($this->config);
+ }
+
+ public function tearDown() {
+ }
+
+ public function testGetId() {
+ $this->assertEquals('smb::test@smbhost//sharename//rootdir/', $this->instance->getId());
+ }
+
+ public function testConstructUrl() {
+ $this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc", $this->instance->constructUrl('/abc'));
+ $this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc", $this->instance->constructUrl('/abc/'));
+ $this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc%2F", $this->instance->constructUrl('/abc/.'));
+ $this->assertEquals("smb://test:testpassword@smbhost/sharename/rootdir/abc%2Fdef", $this->instance->constructUrl('/abc/def'));
+ }
+}
diff --git a/apps/files_sharing/l10n/el.php b/apps/files_sharing/l10n/el.php
index 4584e261b01..79387a91472 100644
--- a/apps/files_sharing/l10n/el.php
+++ b/apps/files_sharing/l10n/el.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"This share is password-protected" => "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό",
"The password is wrong. Try again." => "Εσφαλμένο συνθηματικό. Προσπαθήστε ξανά.",
"Password" => "Συνθηματικό",
"Sorry, this link doesn’t seem to work anymore." => "Συγγνώμη, αυτός ο σύνδεσμος μοιάζει να μην ισχύει πια.",
@@ -13,6 +14,7 @@ $TRANSLATIONS = array(
"Download" => "Λήψη",
"Upload" => "Μεταφόρτωση",
"Cancel upload" => "Ακύρωση αποστολής",
-"No preview available for" => "Δεν υπάρχει διαθέσιμη προεπισκόπηση για"
+"No preview available for" => "Δεν υπάρχει διαθέσιμη προεπισκόπηση για",
+"Direct link" => "Άμεσος σύνδεσμος"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index d59f9b7401a..3c902ea9a3a 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -221,6 +221,8 @@ if (isset($path)) {
$breadcrumbNav->assign('breadcrumb', $breadcrumb);
$breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&path=');
$maxUploadFilesize=OCP\Util::maxUploadFilesize($path);
+ $fileHeader = (!isset($files) or count($files) > 0);
+ $emptyContent = ($allowPublicUploadEnabled and !$fileHeader);
$folder = new OCP\Template('files', 'index', '');
$folder->assign('fileList', $list->fetchPage());
$folder->assign('breadcrumb', $breadcrumbNav->fetchPage());
@@ -234,6 +236,11 @@ if (isset($path)) {
$folder->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize));
$folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$folder->assign('usedSpacePercent', 0);
+ $folder->assign('fileHeader', $fileHeader);
+ $folder->assign('disableSharing', true);
+ $folder->assign('trash', false);
+ $folder->assign('emptyContent', $emptyContent);
+ $folder->assign('ajaxLoad', false);
$tmpl->assign('folder', $folder->fetchPage());
$maxInputFileSize = OCP\Config::getSystemValue('maxZipInputSize', OCP\Util::computerFileSize('800 MB'));
$allowZip = OCP\Config::getSystemValue('allowZipDownload', true)
diff --git a/apps/files_trashbin/ajax/delete.php b/apps/files_trashbin/ajax/delete.php
index 92361b65f63..5498250dbf5 100644
--- a/apps/files_trashbin/ajax/delete.php
+++ b/apps/files_trashbin/ajax/delete.php
@@ -3,10 +3,19 @@
OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
-$files = $_POST['files'];
-$dirlisting = $_POST['dirlisting'];
-$list = json_decode($files);
-
+// "empty trash" command
+$deleteAll = false;
+if (isset($_POST['allfiles']) and $_POST['allfiles'] === 'true'){
+ $user = \OCP\User::getUser();
+ $list = OCA\Files_Trashbin\Helper::getTrashFiles('/');
+ $deleteAll = true;
+ $dirlisting = '0';
+}
+else {
+ $files = $_POST['files'];
+ $dirlisting = $_POST['dirlisting'];
+ $list = json_decode($files);
+}
$error = array();
$success = array();
@@ -14,22 +23,30 @@ $success = array();
$i = 0;
foreach ($list as $file) {
if ( $dirlisting === '0') {
- $delimiter = strrpos($file, '.d');
- $filename = substr($file, 0, $delimiter);
- $timestamp = substr($file, $delimiter+2);
+ if ($deleteAll) {
+ $filename = $file['name'];
+ $timestamp = $file['timestamp'];
+ }
+ else {
+ $delimiter = strrpos($file, '.d');
+ $filename = substr($file, 0, $delimiter);
+ $timestamp = substr($file, $delimiter+2);
+ }
} else {
$filename = $file;
$timestamp = null;
}
OCA\Files_Trashbin\Trashbin::delete($filename, $timestamp);
- if (!OCA\Files_Trashbin\Trashbin::file_exists($filename, $timestamp)) {
+ if (OCA\Files_Trashbin\Trashbin::file_exists($filename, $timestamp)) {
+ $error[] = $filename;
+ OC_Log::write('trashbin','can\'t delete ' . $filename . ' permanently.', OC_Log::ERROR);
+ }
+ // only list deleted files if not deleting everything
+ else if (!$deleteAll) {
$success[$i]['filename'] = $file;
$success[$i]['timestamp'] = $timestamp;
$i++;
- } else {
- $error[] = $filename;
- OC_Log::write('trashbin','can\'t delete ' . $filename . ' permanently.', OC_Log::ERROR);
}
}
diff --git a/apps/files_trashbin/appinfo/info.xml b/apps/files_trashbin/appinfo/info.xml
index e9cbdafc1cd..2cc7d9a7ac3 100644
--- a/apps/files_trashbin/appinfo/info.xml
+++ b/apps/files_trashbin/appinfo/info.xml
@@ -6,7 +6,7 @@
ownCloud keeps a copy of your deleted files in case you need them again.
To make sure that the user doesn't run out of memory the deleted files app
manages the size of the deleted files for the user. By default deleted files
- stay in the trash bin for 180 days. ownCloud checks the age of the files
+ stay in the trash bin for 90 days. ownCloud checks the age of the files
every time a new files gets moved to the deleted files and remove all files
older than 180 days. The user can adjust this value in the config.php by
setting the "trashbin_retention_obligation" value.
diff --git a/apps/files_trashbin/js/filelist.js b/apps/files_trashbin/js/filelist.js
index cd5a67ddfe0..f42abb6d029 100644
--- a/apps/files_trashbin/js/filelist.js
+++ b/apps/files_trashbin/js/filelist.js
@@ -22,3 +22,10 @@ FileList.reload = function(){
FileList.linkTo = function(dir){
return OC.linkTo('files_trashbin', 'index.php')+"?dir="+ encodeURIComponent(dir).replace(/%2F/g, '/');
}
+
+FileList.updateEmptyContent = function(){
+ var $fileList = $('#fileList');
+ var exists = $fileList.find('tr:first').exists();
+ $('#emptycontent').toggleClass('hidden', exists);
+ $('#filestable th').toggleClass('hidden', !exists);
+}
diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js
index 4e6a1e93fa4..84c23d66992 100644
--- a/apps/files_trashbin/js/trash.js
+++ b/apps/files_trashbin/js/trash.js
@@ -19,6 +19,7 @@ $(document).ready(function() {
}
enableActions();
FileList.updateFileSummary();
+ FileList.updateEmptyContent();
}
);
@@ -45,6 +46,7 @@ $(document).ready(function() {
}
enableActions();
FileList.updateFileSummary();
+ FileList.updateEmptyContent();
}
);
@@ -122,34 +124,60 @@ $(document).ready(function() {
}
enableActions();
FileList.updateFileSummary();
+ FileList.updateEmptyContent();
}
);
});
$('.delete').click('click', function(event) {
event.preventDefault();
- var files = getSelectedFiles('file');
- var fileslist = JSON.stringify(files);
- var dirlisting = getSelectedFiles('dirlisting')[0];
+ var allFiles = $('#select_all').is(':checked');
+ var files = [];
+ var params = {};
+ if (allFiles) {
+ params = {
+ allfiles: true
+ };
+ }
+ else {
+ files = getSelectedFiles('file');
+ params = {
+ files: JSON.stringify(files),
+ dirlisting: getSelectedFiles('dirlisting')[0]
+ };
+ };
disableActions();
- for (var i = 0; i < files.length; i++) {
- var deleteAction = $('tr').filterAttr('data-file', files[i]).children("td.date").children(".action.delete");
- deleteAction.removeClass('delete-icon').addClass('progress-icon');
+ if (allFiles) {
+ FileList.showMask();
+ }
+ else {
+ for (var i = 0; i < files.length; i++) {
+ var deleteAction = $('tr').filterAttr('data-file', files[i]).children("td.date").children(".action.delete");
+ deleteAction.removeClass('delete-icon').addClass('progress-icon');
+ }
}
$.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'),
- {files: fileslist, dirlisting: dirlisting},
+ params,
function(result) {
- for (var i = 0; i < result.data.success.length; i++) {
- var row = document.getElementById(result.data.success[i].filename);
- row.parentNode.removeChild(row);
+ if (allFiles) {
+ FileList.hideMask();
+ // simply remove all files
+ $('#fileList').empty();
+ }
+ else {
+ for (var i = 0; i < result.data.success.length; i++) {
+ var row = document.getElementById(result.data.success[i].filename);
+ row.parentNode.removeChild(row);
+ }
}
if (result.status !== 'success') {
OC.dialogs.alert(result.data.message, t('core', 'Error'));
}
enableActions();
FileList.updateFileSummary();
+ FileList.updateEmptyContent();
}
);
diff --git a/apps/files_trashbin/l10n/ru_RU.php b/apps/files_trashbin/l10n/ru_RU.php
index 3129ff95eb4..dfc99f594fd 100644
--- a/apps/files_trashbin/l10n/ru_RU.php
+++ b/apps/files_trashbin/l10n/ru_RU.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
-"Error" => "Ошибка"
+"Error" => "Ошибка",
+"Delete" => "Удалить"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php
index 15ba074e45e..f9264d4352c 100644
--- a/apps/files_trashbin/templates/index.php
+++ b/apps/files_trashbin/templates/index.php
@@ -4,9 +4,7 @@
</div>
<div id='notification'></div>
-<?php if (isset($_['files']) && count($_['files']) === 0 && $_['dirlisting'] === false && !$_['ajaxLoad']):?>
- <div id="emptycontent"><?php p($l->t('Nothing in here. Your trash bin is empty!'))?></div>
-<?php endif; ?>
+<div id="emptycontent" <?php if (!(isset($_['files']) && count($_['files']) === 0 && $_['dirlisting'] === false && !$_['ajaxLoad'])):?>class="hidden"<?php endif; ?>><?php p($l->t('Nothing in here. Your trash bin is empty!'))?></div>
<input type="hidden" name="ajaxLoad" id="ajaxLoad" value="<?php p($_['ajaxLoad']); ?>" />
<input type="hidden" id="disableSharing" data-status="<?php p($_['disableSharing']); ?>"></input>
diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php
index 2c5358d6c77..bcc0a6ed872 100644
--- a/apps/user_ldap/l10n/ca.php
+++ b/apps/user_ldap/l10n/ca.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "s'han eliminat els mapatges",
"Success" => "Èxit",
"Error" => "Error",
+"Configuration OK" => "Configuració correcte",
+"Configuration incorrect" => "Configuració incorrecte",
+"Configuration incomplete" => "Configuració incompleta",
"Select groups" => "Selecciona els grups",
"Select object classes" => "Seleccioneu les classes dels objectes",
"Select attributes" => "Seleccioneu els atributs",
diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php
index 15eefd842c2..2aeb5e595bc 100644
--- a/apps/user_ldap/l10n/de.php
+++ b/apps/user_ldap/l10n/de.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "Zuordnungen gelöscht",
"Success" => "Erfolgreich",
"Error" => "Fehler",
+"Configuration OK" => "Konfiguration OK",
+"Configuration incorrect" => "Konfiguration nicht korrekt",
+"Configuration incomplete" => "Konfiguration nicht vollständig",
"Select groups" => "Wähle Gruppen aus",
"Select object classes" => "Objekt-Klassen auswählen",
"Select attributes" => "Attribute auswählen",
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index 0da5307d935..b43ac9048c1 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "Zuordnungen gelöscht",
"Success" => "Erfolg",
"Error" => "Fehler",
+"Configuration OK" => "Konfiguration OK",
+"Configuration incorrect" => "Konfiguration nicht korrekt",
+"Configuration incomplete" => "Konfiguration nicht vollständig",
"Select groups" => "Wähle Gruppen",
"Select object classes" => "Objekt-Klassen auswählen",
"Select attributes" => "Attribute auswählen",
diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php
index 2cd93a4f07f..6a0fc107cff 100644
--- a/apps/user_ldap/l10n/el.php
+++ b/apps/user_ldap/l10n/el.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Failed to clear the mappings." => "Αποτυχία εκκαθάρισης των αντιστοιχιών.",
"Failed to delete the server configuration" => "Αποτυχία διαγραφής ρυθμίσεων διακομιστή",
"The configuration is valid and the connection could be established!" => "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια.",
@@ -7,6 +8,7 @@ $TRANSLATIONS = array(
"Take over settings from recent server configuration?" => "Πάρτε πάνω από τις πρόσφατες ρυθμίσεις διαμόρφωσης του διακομιστή?",
"Keep settings?" => "Διατήρηση ρυθμίσεων;",
"Cannot add server configuration" => "Αδυναμία προσθήκης ρυθμίσεων διακομιστή",
+"mappings cleared" => "αντιστοιχίες εκκαθαρίστηκαν",
"Success" => "Επιτυχία",
"Error" => "Σφάλμα",
"Select groups" => "Επιλέξτε ομάδες",
@@ -31,6 +33,7 @@ $TRANSLATIONS = array(
"You can specify Base DN for users and groups in the Advanced tab" => "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις",
"Back" => "Επιστροφή",
"Continue" => "Συνέχεια",
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Προσοχή:</b> Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Προσοχή:</b> Το άρθρωμα PHP LDAP δεν είναι εγκατεστημένο και το σύστημα υποστήριξης δεν θα δουλέψει. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να το εγκαταστήσει.",
"Connection Settings" => "Ρυθμίσεις Σύνδεσης",
"Configuration Active" => "Ενεργοποιηση ρυθμισεων",
@@ -61,6 +64,8 @@ $TRANSLATIONS = array(
"in bytes" => "σε bytes",
"Email Field" => "Email τυπος",
"User Home Folder Naming Rule" => "Χρήστης Προσωπικόςφάκελος Ονομασία Κανόνας ",
-"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD."
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD.",
+"Internal Username" => "Εσωτερικό Όνομα Χρήστη",
+"Internal Username Attribute:" => "Ιδιότητα Εσωτερικού Ονόματος Χρήστη:"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/en_GB.php b/apps/user_ldap/l10n/en_GB.php
index 325256bc8c2..fb54dcb1b13 100644
--- a/apps/user_ldap/l10n/en_GB.php
+++ b/apps/user_ldap/l10n/en_GB.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "mappings cleared",
"Success" => "Success",
"Error" => "Error",
+"Configuration OK" => "Configuration OK",
+"Configuration incorrect" => "Configuration incorrect",
+"Configuration incomplete" => "Configuration incomplete",
"Select groups" => "Select groups",
"Select object classes" => "Select object classes",
"Select attributes" => "Select attributes",
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index 804cc9e4f16..ab219e73d8b 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "Asignaciones borradas",
"Success" => "Éxito",
"Error" => "Error",
+"Configuration OK" => "Configuración OK",
+"Configuration incorrect" => "Configuración Incorrecta",
+"Configuration incomplete" => "Configuración incompleta",
"Select groups" => "Seleccionar grupos",
"Select object classes" => "Seleccionar la clase de objeto",
"Select attributes" => "Seleccionar atributos",
diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php
index cf19b062dff..9dda17c3b78 100644
--- a/apps/user_ldap/l10n/et_EE.php
+++ b/apps/user_ldap/l10n/et_EE.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "vastendused puhastatud",
"Success" => "Korras",
"Error" => "Viga",
+"Configuration OK" => "Seadistus on korras",
+"Configuration incorrect" => "Seadistus on vigane",
+"Configuration incomplete" => "Seadistus on puudulik",
"Select groups" => "Vali grupid",
"Select object classes" => "Vali objekti klassid",
"Select attributes" => "Vali atribuudid",
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index d53f78eb36f..64d9dcc47cc 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "associations supprimées",
"Success" => "Succès",
"Error" => "Erreur",
+"Configuration OK" => "Configuration OK",
+"Configuration incorrect" => "Configuration incorrecte",
+"Configuration incomplete" => "Configuration incomplète",
"Select groups" => "Sélectionnez les groupes",
"Select object classes" => "Sélectionner les classes d'objet",
"Select attributes" => "Sélectionner les attributs",
diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php
index 6d7f8e334be..3f19b0cf223 100644
--- a/apps/user_ldap/l10n/gl.php
+++ b/apps/user_ldap/l10n/gl.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "limpadas as asignacións",
"Success" => "Correcto",
"Error" => "Erro",
+"Configuration OK" => "Configuración correcta",
+"Configuration incorrect" => "Configuración incorrecta",
+"Configuration incomplete" => "Configuración incompleta",
"Select groups" => "Seleccionar grupos",
"Select object classes" => "Seleccione as clases de obxectos",
"Select attributes" => "Seleccione os atributos",
diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php
index 97ca14e0a85..599a6da48a4 100644
--- a/apps/user_ldap/l10n/it.php
+++ b/apps/user_ldap/l10n/it.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "associazioni cancellate",
"Success" => "Riuscito",
"Error" => "Errore",
+"Configuration OK" => "Configurazione corretta",
+"Configuration incorrect" => "Configurazione non corretta",
+"Configuration incomplete" => "Configurazione incompleta",
"Select groups" => "Seleziona i gruppi",
"Select object classes" => "Seleziona le classi di oggetti",
"Select attributes" => "Seleziona gli attributi",
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index 9acd9c088c8..b2e8f173673 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "vertaaltabel leeggemaakt",
"Success" => "Succes",
"Error" => "Fout",
+"Configuration OK" => "Configuratie OK",
+"Configuration incorrect" => "Configuratie onjuist",
+"Configuration incomplete" => "Configuratie incompleet",
"Select groups" => "Selecteer groepen",
"Select object classes" => "Selecteer objectklasse",
"Select attributes" => "Selecteer attributen",
diff --git a/apps/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php
index cf047b2c88c..940a55489a9 100644
--- a/apps/user_ldap/l10n/pt_BR.php
+++ b/apps/user_ldap/l10n/pt_BR.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "mapeamentos limpos",
"Success" => "Sucesso",
"Error" => "Erro",
+"Configuration OK" => "Configuração OK",
+"Configuration incorrect" => "Configuração incorreta",
+"Configuration incomplete" => "Configuração incompleta",
"Select groups" => "Selecionar grupos",
"Select object classes" => "Selecione classes de objetos",
"Select attributes" => "Selecione os atributos",
diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php
index f908fa3cc70..f70ecdcf1f5 100644
--- a/apps/user_ldap/l10n/ru.php
+++ b/apps/user_ldap/l10n/ru.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "Соответствия очищены",
"Success" => "Успешно",
"Error" => "Ошибка",
+"Configuration OK" => "Конфигурация в порядке",
+"Configuration incorrect" => "Конфигурация неправильна",
+"Configuration incomplete" => "Конфигурация не завершена",
"Select groups" => "Выберите группы",
"Select object classes" => "Выберите объектные классы",
"Select attributes" => "Выберите атрибуты",
diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php
index 81bc8c9b70c..616be979d06 100644
--- a/apps/user_ldap/l10n/sl.php
+++ b/apps/user_ldap/l10n/sl.php
@@ -1,48 +1,74 @@
<?php
$TRANSLATIONS = array(
-"Failed to clear the mappings." => "Preslikav ni bilo mogoče izbrisati",
+"Failed to clear the mappings." => "Čiščenje preslikav je spodletelo.",
"Failed to delete the server configuration" => "Brisanje nastavitev strežnika je spodletelo.",
"The configuration is valid and the connection could be established!" => "Nastavitev je veljavna, zato je povezavo mogoče vzpostaviti!",
-"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavitev je veljavna, vendar pa je vez Bind spodletela. Preveriti je treba nastavitve strežnika in ustreznost poveril.",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavitev je veljavna, vendar pa je vez spodletela. Preveriti je treba nastavitve strežnika in ustreznost poveril.",
+"The configuration is invalid. Please have a look at the logs for further details." => "Nastavitev ni veljavna. Več podrobnosti o napaki je zabeleženih v dnevniku.",
+"No action specified" => "Ni določenega dejanja",
+"No configuration specified" => "Ni določenih nastavitev",
+"No data specified" => "Ni navedenih podatkov",
+" Could not set configuration %s" => "Ni mogoče uveljaviti nastavitev %s",
"Deletion failed" => "Brisanje je spodletelo.",
-"Take over settings from recent server configuration?" => "Ali naj se prevzame nastavitve nedavne nastavitve strežnika?",
-"Keep settings?" => "Ali nas se nastavitve ohranijo?",
+"Take over settings from recent server configuration?" => "Ali naj bodo prevzete nedavne nastavitve strežnika?",
+"Keep settings?" => "Ali naj se nastavitve ohranijo?",
"Cannot add server configuration" => "Ni mogoče dodati nastavitev strežnika",
-"mappings cleared" => "Preslikave so izbrisane",
+"mappings cleared" => "preslikave so izbrisane",
"Success" => "Uspešno končano.",
"Error" => "Napaka",
+"Configuration OK" => "Nastavitev je ustrezna",
+"Configuration incorrect" => "Nastavitev ni ustrezna",
+"Configuration incomplete" => "Nastavitev je nepopolna",
"Select groups" => "Izberi skupine",
+"Select object classes" => "Izbor razredov predmeta",
"Select attributes" => "Izbor atributov",
"Connection test succeeded" => "Preizkus povezave je uspešno končan.",
"Connection test failed" => "Preizkus povezave je spodletel.",
"Do you really want to delete the current Server Configuration?" => "Ali res želite izbrisati trenutne nastavitve strežnika?",
"Confirm Deletion" => "Potrdi brisanje",
-"_%s group found_::_%s groups found_" => array("","","",""),
-"_%s user found_::_%s users found_" => array("","","",""),
+"_%s group found_::_%s groups found_" => array("%s najdena skupina","%s najdeni skupini","%s najdene skupine","%s najdenih skupin"),
+"_%s user found_::_%s users found_" => array("%s najden uporabnik","%s najdena uporabnika","%s najdeni uporabniki","%s najdenih uporabnikov"),
"Invalid Host" => "Neveljaven gostitelj",
+"Could not find the desired feature" => "Želene zmožnosti ni mogoče najti",
"Save" => "Shrani",
"Test Configuration" => "Preizkusne nastavitve",
"Help" => "Pomoč",
+"Limit the access to %s to groups meeting this criteria:" => "Omeji dostop %s do skupin glede na kriterij:",
+"only those object classes:" => "le razredi predmeta:",
+"only from those groups:" => "le iz skupin:",
+"Edit raw filter instead" => "Uredi surov filter",
+"Raw LDAP filter" => "Surovi filter LDAP",
+"The filter specifies which LDAP groups shall have access to the %s instance." => "Filter določa, katere skupine LDAP bodo imele dostop do %s.",
+"groups found" => "najdenih skupin",
+"What attribute shall be used as login name:" => "Kateri atribut naj bo uporabljen kot prijavno ime:",
+"LDAP Username:" => "Uporabniško ime LDAP:",
+"LDAP Email Address:" => "Elektronski naslov LDAP:",
+"Other Attributes:" => "Drugi atributi:",
"Add Server Configuration" => "Dodaj nastavitve strežnika",
"Host" => "Gostitelj",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol je lahko izpuščen, če ni posebej zahtevan SSL. V tem primeru se mora naslov začeti z ldaps://",
"Port" => "Vrata",
-"User DN" => "Uporabnik 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 uporabnikovega odjemalca, s katerim naj se opravi vezava, npr. uid=agent,dc=example,dc=com. Za brezimni dostop sta polji DN in geslo prazni.",
+"User DN" => "Uporabnikovo enolično ime",
+"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." => "Enolično ime uporabnikovega odjemalca, s katerim naj se opravi vezava, npr. uid=agent,dc=example,dc=com. Za brezimni dostop sta polji prikaznega imena in gesla prazni.",
"Password" => "Geslo",
-"For anonymous access, leave DN and Password empty." => "Za brezimni dostop sta polji DN in geslo prazni.",
-"One Base DN per line" => "En osnovni DN na vrstico",
-"You can specify Base DN for users and groups in the Advanced tab" => "Osnovni DN za uporabnike in skupine lahko določite v zavihku naprednih možnosti.",
+"For anonymous access, leave DN and Password empty." => "Za brezimni dostop naj bosta polji imena in gesla prazni.",
+"One Base DN per line" => "Eno osnovno enolično ime na vrstico",
+"You can specify Base DN for users and groups in the Advanced tab" => "Osnovno enolično ime za uporabnike in skupine lahko določite v zavihku naprednih možnosti.",
+"Limit the access to %s to users meeting this criteria:" => "Omeji dostop do %s uporabnikom, za katere velja kriterij:",
+"The filter specifies which LDAP users shall have access to the %s instance." => "Filter določa, kateri uporabniki LDAP bodo imeli dostop do %s.",
+"users found" => "najdenih uporabnikov",
"Back" => "Nazaj",
"Continue" => "Nadaljuj",
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Opozorilo:</b> določili user_ldap in user_webdavauth sta neskladni, kar lahko vpliva na delovanje sistema. O napaki pošljite poročilo skrbniku sistema in opozorite, da je treba eno izmed možnosti onemogočiti.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Opozorilo:</b> modul PHP LDAP mora biti nameščen, sicer vmesnik ne bo deloval. Paket je treba namestiti.",
"Connection Settings" => "Nastavitve povezave",
"Configuration Active" => "Dejavna nastavitev",
"When unchecked, this configuration will be skipped." => "Neizbrana možnost preskoči nastavitev.",
"User Login Filter" => "Filter prijav uporabnikov",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Določi filter, ki bo uveljavljen ob poskusu prijave. %%uid zamenja uporabniško ime pri prijavi, na primer: \"uid=%%uid\"",
"Backup (Replica) Host" => "Varnostna kopija (replika) podatkov gostitelja",
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Podati je treba izbirno varnostno kopijo gostitelja. Ta mora biti natančna replika strežnika LDAP/AD.",
-"Backup (Replica) Port" => "Varnostna kopija (replika) podatka vrat",
+"Backup (Replica) Port" => "Vrata varnostne kopije (replike)",
"Disable Main Server" => "Onemogoči glavni strežnik",
"Case insensitve LDAP server (Windows)" => "Strežnik LDAP ne upošteva velikosti črk (Windows)",
"Turn off SSL certificate validation." => "Onemogoči določanje veljavnosti potrdila SSL.",
@@ -50,14 +76,16 @@ $TRANSLATIONS = array(
"in seconds. A change empties the cache." => "v sekundah. Sprememba izprazni predpomnilnik.",
"Directory Settings" => "Nastavitve mape",
"User Display Name Field" => "Polje za uporabnikovo prikazano ime",
+"The LDAP attribute to use to generate the user's display name." => "Atribut LDAP za uporabo pri ustvarjanju prikaznega imena uporabnika.",
"Base User Tree" => "Osnovno uporabniško drevo",
-"One User Base DN per line" => "Eno osnovno uporabniško ime DN na vrstico",
-"User Search Attributes" => "Uporabi atribute iskanja",
+"One User Base DN per line" => "Eno osnovno uporabniško ime na vrstico",
+"User Search Attributes" => "Uporabnikovi atributi iskanja",
"Optional; one attribute per line" => "Izbirno; en atribut na vrstico",
"Group Display Name Field" => "Polje za prikazano ime skupine",
+"The LDAP attribute to use to generate the groups's display name." => "Atribut LDAP za uporabo pri ustvarjanju prikaznega imena skupine.",
"Base Group Tree" => "Osnovno drevo skupine",
-"One Group Base DN per line" => "Eno osnovno ime skupine DN na vrstico",
-"Group Search Attributes" => "Atributi iskanja skupine",
+"One Group Base DN per line" => "Eno osnovno ime skupine na vrstico",
+"Group Search Attributes" => "Skupinski atributi iskanja",
"Group-Member association" => "Povezava član-skupina",
"Special Attributes" => "Posebni atributi",
"Quota Field" => "Polje količinske omejitve",
@@ -66,10 +94,12 @@ $TRANSLATIONS = array(
"Email Field" => "Polje elektronske pošte",
"User Home Folder Naming Rule" => "Pravila poimenovanja uporabniške osebne mape",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pustite prazno za uporabniško ime (privzeto), sicer navedite atribut LDAP/AD.",
-"Internal Username" => "Interno uporabniško ime",
-"Internal Username Attribute:" => "Atribut Interno uporabniško ime",
+"Internal Username" => "Programsko uporabniško ime",
+"Internal Username Attribute:" => "Programski atribut uporabniškega imena:",
"Override UUID detection" => "Prezri zaznavo UUID",
-"Username-LDAP User Mapping" => "Preslikava uporabniško ime - LDAP-uporabnik",
+"UUID Attribute for Users:" => "Atribut UUID za uporabnike:",
+"UUID Attribute for Groups:" => "Atribut UUID za skupine:",
+"Username-LDAP User Mapping" => "Uporabniška preslikava Uporabniško_ime-LDAP",
"Clear Username-LDAP User Mapping" => "Izbriši preslikavo Uporabniškega imena in LDAP-uporabnika",
"Clear Groupname-LDAP Group Mapping" => "Izbriši preslikavo Skupine in LDAP-skupine"
);
diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php
index 80fd5705772..040c707cc46 100644
--- a/apps/user_ldap/l10n/tr.php
+++ b/apps/user_ldap/l10n/tr.php
@@ -16,6 +16,9 @@ $TRANSLATIONS = array(
"mappings cleared" => "Dönüşümler temizlendi",
"Success" => "Başarılı",
"Error" => "Hata",
+"Configuration OK" => "Yapılandırma tamam",
+"Configuration incorrect" => "Yapılandırma geçersiz",
+"Configuration incomplete" => "Yapılandırma tamamlanmamış",
"Select groups" => "Grupları seç",
"Select object classes" => "Nesne sınıflarını seç",
"Select attributes" => "Nitelikleri seç",
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index fb6aca9e961..9286af46bea 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -215,7 +215,7 @@ class Wizard extends LDAPUtility {
throw new \Exception('Could not connect to LDAP');
}
- $obclasses = array('posixGroup', 'group', '*');
+ $obclasses = array('posixGroup', 'group', 'zimbraDistributionList', '*');
$this->determineFeature($obclasses, 'cn', $dbkey, $confkey);
if($testMemberOf) {