diff options
417 files changed, 2343 insertions, 2243 deletions
diff --git a/3rdparty b/3rdparty -Subproject 182a1040823e45b0c5664818711dc783a2ca57a +Subproject 16f2894332848adba757cc7add9d21a4ff1a6d1 diff --git a/apps/comments/activity/extension.php b/apps/comments/activity/extension.php index 6bf7cae5882..ef800e88abc 100644 --- a/apps/comments/activity/extension.php +++ b/apps/comments/activity/extension.php @@ -80,7 +80,10 @@ class Extension implements IExtension { $l = $this->getL10N($languageCode); return array( - self::APP_NAME => (string) $l->t('<strong>Comments</strong> for files'), + self::APP_NAME => [ + 'desc' => (string) $l->t('<strong>Comments</strong> for files <em>(always listed in stream)</em>'), + 'methods' => [self::METHOD_MAIL], // self::METHOD_STREAM is forced true by the default value + ], ); } @@ -274,7 +277,11 @@ class Extension implements IExtension { */ public function filterNotificationTypes($types, $filter) { if ($filter === self::APP_NAME) { - return array_intersect($types, [self::APP_NAME]); + return [self::APP_NAME]; + } + if (in_array($filter, ['all', 'by', 'self', 'filter'])) { + $types[] = self::APP_NAME; + return $types; } return false; } diff --git a/apps/comments/l10n/cs_CZ.js b/apps/comments/l10n/cs_CZ.js index 73190bcb567..872020eee66 100644 --- a/apps/comments/l10n/cs_CZ.js +++ b/apps/comments/l10n/cs_CZ.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů", "You commented" : "Okomentoval(a) jsi", "%1$s commented" : "%1$s okomentován", "You commented on %2$s" : "Okomentoval(a) jsi %2$s", diff --git a/apps/comments/l10n/cs_CZ.json b/apps/comments/l10n/cs_CZ.json index ca6f727bb0f..ab470d98989 100644 --- a/apps/comments/l10n/cs_CZ.json +++ b/apps/comments/l10n/cs_CZ.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů", "You commented" : "Okomentoval(a) jsi", "%1$s commented" : "%1$s okomentován", "You commented on %2$s" : "Okomentoval(a) jsi %2$s", diff --git a/apps/comments/l10n/da.js b/apps/comments/l10n/da.js index 5725a7b57c6..196a298a61a 100644 --- a/apps/comments/l10n/da.js +++ b/apps/comments/l10n/da.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> til filer", "You commented" : "Du kommenterede", "%1$s commented" : "%1$s kommenterede", "You commented on %2$s" : "Du kommenterede %2$s", diff --git a/apps/comments/l10n/da.json b/apps/comments/l10n/da.json index a7b12851157..f9ce94f7d70 100644 --- a/apps/comments/l10n/da.json +++ b/apps/comments/l10n/da.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> til filer", "You commented" : "Du kommenterede", "%1$s commented" : "%1$s kommenterede", "You commented on %2$s" : "Du kommenterede %2$s", diff --git a/apps/comments/l10n/de.js b/apps/comments/l10n/de.js index 0e51b02662a..afb262cbc82 100644 --- a/apps/comments/l10n/de.js +++ b/apps/comments/l10n/de.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien", "You commented" : "Du hast kommentiert", "%1$s commented" : "%1$s kommentierte", "You commented on %2$s" : "Du hast %2$s kommentiert", diff --git a/apps/comments/l10n/de.json b/apps/comments/l10n/de.json index 8dc0bdb0427..2dbcd94f1c7 100644 --- a/apps/comments/l10n/de.json +++ b/apps/comments/l10n/de.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien", "You commented" : "Du hast kommentiert", "%1$s commented" : "%1$s kommentierte", "You commented on %2$s" : "Du hast %2$s kommentiert", diff --git a/apps/comments/l10n/de_DE.js b/apps/comments/l10n/de_DE.js index 424ae79e10e..ecb40a76771 100644 --- a/apps/comments/l10n/de_DE.js +++ b/apps/comments/l10n/de_DE.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien", "You commented" : "Durch dich kommentiert", "%1$s commented" : "%1$s kommentiert", "You commented on %2$s" : "Sie haben %2$s kommentiert", diff --git a/apps/comments/l10n/de_DE.json b/apps/comments/l10n/de_DE.json index 4fd810c7006..167a480824a 100644 --- a/apps/comments/l10n/de_DE.json +++ b/apps/comments/l10n/de_DE.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien", "You commented" : "Durch dich kommentiert", "%1$s commented" : "%1$s kommentiert", "You commented on %2$s" : "Sie haben %2$s kommentiert", diff --git a/apps/comments/l10n/el.js b/apps/comments/l10n/el.js index 1ca7886fdc5..c88bf2c2ecc 100644 --- a/apps/comments/l10n/el.js +++ b/apps/comments/l10n/el.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία", "You commented" : "Σχολιάσατε", "%1$s commented" : "%1$s σχολίασε", "You commented on %2$s" : "Σχολιάσατε στο %2$s", diff --git a/apps/comments/l10n/el.json b/apps/comments/l10n/el.json index 234f6b79045..30c1fb9de34 100644 --- a/apps/comments/l10n/el.json +++ b/apps/comments/l10n/el.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία", "You commented" : "Σχολιάσατε", "%1$s commented" : "%1$s σχολίασε", "You commented on %2$s" : "Σχολιάσατε στο %2$s", diff --git a/apps/comments/l10n/en_GB.js b/apps/comments/l10n/en_GB.js index 04a366a4f6d..cabce50d16d 100644 --- a/apps/comments/l10n/en_GB.js +++ b/apps/comments/l10n/en_GB.js @@ -1,8 +1,9 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Comments</strong> for files", + "You commented" : "You commented", "%1$s commented" : "%1$s commented", + "You commented on %2$s" : "You commented on %2$s", "%1$s commented on %2$s" : "%1$s commented on %2$s", "Comments" : "Comments", "Type in a new comment..." : "Type in a new comment...", diff --git a/apps/comments/l10n/en_GB.json b/apps/comments/l10n/en_GB.json index c43c1f4a629..2b4e51ccd80 100644 --- a/apps/comments/l10n/en_GB.json +++ b/apps/comments/l10n/en_GB.json @@ -1,6 +1,7 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Comments</strong> for files", + "You commented" : "You commented", "%1$s commented" : "%1$s commented", + "You commented on %2$s" : "You commented on %2$s", "%1$s commented on %2$s" : "%1$s commented on %2$s", "Comments" : "Comments", "Type in a new comment..." : "Type in a new comment...", diff --git a/apps/comments/l10n/eo.js b/apps/comments/l10n/eo.js index 515156d663b..2843625bc5b 100644 --- a/apps/comments/l10n/eo.js +++ b/apps/comments/l10n/eo.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Komentoj</strong> por dosieroj", "%1$s commented" : "%1$s komentis", "%1$s commented on %2$s" : "%1$s komentis %2$s", "Comments" : "Komentoj", diff --git a/apps/comments/l10n/eo.json b/apps/comments/l10n/eo.json index 33b8109abb9..3fcecdd4e34 100644 --- a/apps/comments/l10n/eo.json +++ b/apps/comments/l10n/eo.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Komentoj</strong> por dosieroj", "%1$s commented" : "%1$s komentis", "%1$s commented on %2$s" : "%1$s komentis %2$s", "Comments" : "Komentoj", diff --git a/apps/comments/l10n/es.js b/apps/comments/l10n/es.js index 02e45762e09..906b5643f04 100644 --- a/apps/comments/l10n/es.js +++ b/apps/comments/l10n/es.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos", "You commented" : "Has comentado", "%1$s commented" : "%1$s comentados", "You commented on %2$s" : "Has comentado en %2$s", diff --git a/apps/comments/l10n/es.json b/apps/comments/l10n/es.json index 232fea3a18b..7eeade965d2 100644 --- a/apps/comments/l10n/es.json +++ b/apps/comments/l10n/es.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos", "You commented" : "Has comentado", "%1$s commented" : "%1$s comentados", "You commented on %2$s" : "Has comentado en %2$s", diff --git a/apps/comments/l10n/et_EE.js b/apps/comments/l10n/et_EE.js index e950b52a14e..cba33642bfa 100644 --- a/apps/comments/l10n/et_EE.js +++ b/apps/comments/l10n/et_EE.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Kommentaarid</strong> failidele", "You commented" : "Sa kommenteerisid", "%1$s commented" : "%1$s kommenteeris", "You commented on %2$s" : "Sa kommenteerisid %2$s", diff --git a/apps/comments/l10n/et_EE.json b/apps/comments/l10n/et_EE.json index 6a983fd5191..be23a869c28 100644 --- a/apps/comments/l10n/et_EE.json +++ b/apps/comments/l10n/et_EE.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Kommentaarid</strong> failidele", "You commented" : "Sa kommenteerisid", "%1$s commented" : "%1$s kommenteeris", "You commented on %2$s" : "Sa kommenteerisid %2$s", diff --git a/apps/comments/l10n/fi_FI.js b/apps/comments/l10n/fi_FI.js index 741dea8252b..5a7f03ca229 100644 --- a/apps/comments/l10n/fi_FI.js +++ b/apps/comments/l10n/fi_FI.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Kommentit</strong> tiedostoille", "You commented" : "Kommentoit", "%1$s commented" : "%1$s kommentoi", "You commented on %2$s" : "Kommentoit %2$s", diff --git a/apps/comments/l10n/fi_FI.json b/apps/comments/l10n/fi_FI.json index 52a9f1955ef..71f7a2314f7 100644 --- a/apps/comments/l10n/fi_FI.json +++ b/apps/comments/l10n/fi_FI.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Kommentit</strong> tiedostoille", "You commented" : "Kommentoit", "%1$s commented" : "%1$s kommentoi", "You commented on %2$s" : "Kommentoit %2$s", diff --git a/apps/comments/l10n/fr.js b/apps/comments/l10n/fr.js index fc065bd0db0..64f95662029 100644 --- a/apps/comments/l10n/fr.js +++ b/apps/comments/l10n/fr.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Commentaires</strong> pour les fichiers", "You commented" : "Vous avez commenté", "%1$s commented" : "%1$s a commenté", "You commented on %2$s" : "Vous avez commenté %2$s", diff --git a/apps/comments/l10n/fr.json b/apps/comments/l10n/fr.json index d69887540f9..5d1c1895447 100644 --- a/apps/comments/l10n/fr.json +++ b/apps/comments/l10n/fr.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Commentaires</strong> pour les fichiers", "You commented" : "Vous avez commenté", "%1$s commented" : "%1$s a commenté", "You commented on %2$s" : "Vous avez commenté %2$s", diff --git a/apps/comments/l10n/he.js b/apps/comments/l10n/he.js index 640ec297dd3..e8b5e22222f 100644 --- a/apps/comments/l10n/he.js +++ b/apps/comments/l10n/he.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>תגובות</strong> לקבצים", "You commented" : "הערות שלך", "%1$s commented" : "התקבלו תגובות %1$s", "You commented on %2$s" : "הערות שלך ב- %2$s", diff --git a/apps/comments/l10n/he.json b/apps/comments/l10n/he.json index 0f79918c472..8e38f34839e 100644 --- a/apps/comments/l10n/he.json +++ b/apps/comments/l10n/he.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>תגובות</strong> לקבצים", "You commented" : "הערות שלך", "%1$s commented" : "התקבלו תגובות %1$s", "You commented on %2$s" : "הערות שלך ב- %2$s", diff --git a/apps/comments/l10n/hu_HU.js b/apps/comments/l10n/hu_HU.js index cae1ae5e46f..37f36e8bd7d 100644 --- a/apps/comments/l10n/hu_HU.js +++ b/apps/comments/l10n/hu_HU.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Hozzászólások</strong> a fájlokhoz", "You commented" : "Hozzászólt", "%1$s commented" : "%1$s hozzászólt", "You commented on %2$s" : "Hozzászólt ehhez: %2$s", diff --git a/apps/comments/l10n/hu_HU.json b/apps/comments/l10n/hu_HU.json index 268bb7dd3d8..720fe62d447 100644 --- a/apps/comments/l10n/hu_HU.json +++ b/apps/comments/l10n/hu_HU.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Hozzászólások</strong> a fájlokhoz", "You commented" : "Hozzászólt", "%1$s commented" : "%1$s hozzászólt", "You commented on %2$s" : "Hozzászólt ehhez: %2$s", diff --git a/apps/comments/l10n/id.js b/apps/comments/l10n/id.js index 28965c9e91e..87a17367b11 100644 --- a/apps/comments/l10n/id.js +++ b/apps/comments/l10n/id.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Komentar</strong> untuk berkas", "%1$s commented" : "%1$s dikomentari", "%1$s commented on %2$s" : "%1$s dikomentari pada %2$s", "Comments" : "Komentar", diff --git a/apps/comments/l10n/id.json b/apps/comments/l10n/id.json index f66594eca16..601e88987a8 100644 --- a/apps/comments/l10n/id.json +++ b/apps/comments/l10n/id.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Komentar</strong> untuk berkas", "%1$s commented" : "%1$s dikomentari", "%1$s commented on %2$s" : "%1$s dikomentari pada %2$s", "Comments" : "Komentar", diff --git a/apps/comments/l10n/is.js b/apps/comments/l10n/is.js index c55ebf7ef85..2330e6fe10b 100644 --- a/apps/comments/l10n/is.js +++ b/apps/comments/l10n/is.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Athugasemdir</strong> við skrár", "You commented" : "Þú settir inn athugasemd", "%1$s commented" : "%1$s setti inn athugasemd", "You commented on %2$s" : "Þú settir inn athugasemd við %2$s", diff --git a/apps/comments/l10n/is.json b/apps/comments/l10n/is.json index 1a73471addf..1fbd21f55dd 100644 --- a/apps/comments/l10n/is.json +++ b/apps/comments/l10n/is.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Athugasemdir</strong> við skrár", "You commented" : "Þú settir inn athugasemd", "%1$s commented" : "%1$s setti inn athugasemd", "You commented on %2$s" : "Þú settir inn athugasemd við %2$s", diff --git a/apps/comments/l10n/it.js b/apps/comments/l10n/it.js index 56660b5a779..304262bfbcf 100644 --- a/apps/comments/l10n/it.js +++ b/apps/comments/l10n/it.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Commenti</strong> sui file", "You commented" : "Hai commentato", "%1$s commented" : "%1$s ha commentato", "You commented on %2$s" : "Hai commentato su %2$s", diff --git a/apps/comments/l10n/it.json b/apps/comments/l10n/it.json index 8d113baa6e4..6bd508c0b11 100644 --- a/apps/comments/l10n/it.json +++ b/apps/comments/l10n/it.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Commenti</strong> sui file", "You commented" : "Hai commentato", "%1$s commented" : "%1$s ha commentato", "You commented on %2$s" : "Hai commentato su %2$s", diff --git a/apps/comments/l10n/ja.js b/apps/comments/l10n/ja.js index ff20dcedbc6..2a8cc5fb352 100644 --- a/apps/comments/l10n/ja.js +++ b/apps/comments/l10n/ja.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "ファイルについての<strong>コメント</strong>", "%1$s commented" : "%1$s がコメントを追加", "%1$s commented on %2$s" : "%2$s について、%1$s がコメントしました", "Comments" : "コメント", diff --git a/apps/comments/l10n/ja.json b/apps/comments/l10n/ja.json index 603d2e3d49b..d27a4b66160 100644 --- a/apps/comments/l10n/ja.json +++ b/apps/comments/l10n/ja.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "ファイルについての<strong>コメント</strong>", "%1$s commented" : "%1$s がコメントを追加", "%1$s commented on %2$s" : "%2$s について、%1$s がコメントしました", "Comments" : "コメント", diff --git a/apps/comments/l10n/ko.js b/apps/comments/l10n/ko.js index c1aafb01d9c..ac1ed9310cb 100644 --- a/apps/comments/l10n/ko.js +++ b/apps/comments/l10n/ko.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "파일에 <strong>댓글</strong> 남기기", "%1$s commented" : "%1$s 님의 댓글", "%1$s commented on %2$s" : "%2$s에 %1$s 님이 댓글 남김", "Comments" : "댓글", diff --git a/apps/comments/l10n/ko.json b/apps/comments/l10n/ko.json index 5ccd0dc52eb..08356aaf9fa 100644 --- a/apps/comments/l10n/ko.json +++ b/apps/comments/l10n/ko.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "파일에 <strong>댓글</strong> 남기기", "%1$s commented" : "%1$s 님의 댓글", "%1$s commented on %2$s" : "%2$s에 %1$s 님이 댓글 남김", "Comments" : "댓글", diff --git a/apps/comments/l10n/nb_NO.js b/apps/comments/l10n/nb_NO.js index 5d3732da827..fd1dc3c6508 100644 --- a/apps/comments/l10n/nb_NO.js +++ b/apps/comments/l10n/nb_NO.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer", "%1$s commented" : "%1$s kommentert", "%1$s commented on %2$s" : "%1$s kommenterte %2$s", "Comments" : "Kommentarer", diff --git a/apps/comments/l10n/nb_NO.json b/apps/comments/l10n/nb_NO.json index 80724fff6de..151bac73e15 100644 --- a/apps/comments/l10n/nb_NO.json +++ b/apps/comments/l10n/nb_NO.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer", "%1$s commented" : "%1$s kommentert", "%1$s commented on %2$s" : "%1$s kommenterte %2$s", "Comments" : "Kommentarer", diff --git a/apps/comments/l10n/nl.js b/apps/comments/l10n/nl.js index eb9faf55e1a..8c0d8960ddc 100644 --- a/apps/comments/l10n/nl.js +++ b/apps/comments/l10n/nl.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden", "You commented" : "U heeft gereageerd", "%1$s commented" : "%1$s heeft gereageerd", "You commented on %2$s" : "U heeft gereageerd op %2$s", diff --git a/apps/comments/l10n/nl.json b/apps/comments/l10n/nl.json index d2a811207f6..e5b9e8e88ba 100644 --- a/apps/comments/l10n/nl.json +++ b/apps/comments/l10n/nl.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden", "You commented" : "U heeft gereageerd", "%1$s commented" : "%1$s heeft gereageerd", "You commented on %2$s" : "U heeft gereageerd op %2$s", diff --git a/apps/comments/l10n/pl.js b/apps/comments/l10n/pl.js index 09142286773..c0183e817d5 100644 --- a/apps/comments/l10n/pl.js +++ b/apps/comments/l10n/pl.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Komentarze</strong> dla plików", "%1$s commented" : "%1$s skomentował", "%1$s commented on %2$s" : "%1$s skomentował %2$s", "Comments" : "Komentarze", diff --git a/apps/comments/l10n/pl.json b/apps/comments/l10n/pl.json index 92b9f66bf1c..e2f70b11d90 100644 --- a/apps/comments/l10n/pl.json +++ b/apps/comments/l10n/pl.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Komentarze</strong> dla plików", "%1$s commented" : "%1$s skomentował", "%1$s commented on %2$s" : "%1$s skomentował %2$s", "Comments" : "Komentarze", diff --git a/apps/comments/l10n/pt_BR.js b/apps/comments/l10n/pt_BR.js index 9d143822a99..84c774a2a8c 100644 --- a/apps/comments/l10n/pt_BR.js +++ b/apps/comments/l10n/pt_BR.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Comentários</strong> por arquivos", "You commented" : "Você comentou", "%1$s commented" : "%1$s comentado", "You commented on %2$s" : "Você comentou em %2$s", diff --git a/apps/comments/l10n/pt_BR.json b/apps/comments/l10n/pt_BR.json index 10b32799a54..ce68be38af9 100644 --- a/apps/comments/l10n/pt_BR.json +++ b/apps/comments/l10n/pt_BR.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Comentários</strong> por arquivos", "You commented" : "Você comentou", "%1$s commented" : "%1$s comentado", "You commented on %2$s" : "Você comentou em %2$s", diff --git a/apps/comments/l10n/pt_PT.js b/apps/comments/l10n/pt_PT.js index 5c874329fcd..b661ac7b73e 100644 --- a/apps/comments/l10n/pt_PT.js +++ b/apps/comments/l10n/pt_PT.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Comentários</strong> para ficheiros", "You commented" : "Comentou", "%1$s commented" : "%1$s comentou", "You commented on %2$s" : "Comentou %2$s", diff --git a/apps/comments/l10n/pt_PT.json b/apps/comments/l10n/pt_PT.json index f5fc1d7070b..fe4198cae45 100644 --- a/apps/comments/l10n/pt_PT.json +++ b/apps/comments/l10n/pt_PT.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Comentários</strong> para ficheiros", "You commented" : "Comentou", "%1$s commented" : "%1$s comentou", "You commented on %2$s" : "Comentou %2$s", diff --git a/apps/comments/l10n/ru.js b/apps/comments/l10n/ru.js index 755ca9e5d58..a7c2fbc1411 100644 --- a/apps/comments/l10n/ru.js +++ b/apps/comments/l10n/ru.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Комментарии</strong> к файлам", "You commented" : "Вы откомментировали", "%1$s commented" : "%1$s откомментировано", "You commented on %2$s" : "Вы откомментировали в %2$s", diff --git a/apps/comments/l10n/ru.json b/apps/comments/l10n/ru.json index 7c5d8aa10cc..eea01451765 100644 --- a/apps/comments/l10n/ru.json +++ b/apps/comments/l10n/ru.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Комментарии</strong> к файлам", "You commented" : "Вы откомментировали", "%1$s commented" : "%1$s откомментировано", "You commented on %2$s" : "Вы откомментировали в %2$s", diff --git a/apps/comments/l10n/sl.js b/apps/comments/l10n/sl.js index 79d8fc8e977..95d3b4ab591 100644 --- a/apps/comments/l10n/sl.js +++ b/apps/comments/l10n/sl.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Opombe</strong> datotek", "You commented" : "Vaša opomba", "%1$s commented" : "%1$s opomb", "You commented on %2$s" : "Napisali ste opombo na %2$s", diff --git a/apps/comments/l10n/sl.json b/apps/comments/l10n/sl.json index 1e71acbec39..770da087867 100644 --- a/apps/comments/l10n/sl.json +++ b/apps/comments/l10n/sl.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Opombe</strong> datotek", "You commented" : "Vaša opomba", "%1$s commented" : "%1$s opomb", "You commented on %2$s" : "Napisali ste opombo na %2$s", diff --git a/apps/comments/l10n/sq.js b/apps/comments/l10n/sq.js index fdb47e2425a..60fda55c550 100644 --- a/apps/comments/l10n/sq.js +++ b/apps/comments/l10n/sq.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Komente</strong> për kartela", "You commented" : "Komentuat", "%1$s commented" : "%1$s komentoi", "You commented on %2$s" : "Komentuat te %2$s", diff --git a/apps/comments/l10n/sq.json b/apps/comments/l10n/sq.json index deaeceac8ce..78c9f392c9f 100644 --- a/apps/comments/l10n/sq.json +++ b/apps/comments/l10n/sq.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Komente</strong> për kartela", "You commented" : "Komentuat", "%1$s commented" : "%1$s komentoi", "You commented on %2$s" : "Komentuat te %2$s", diff --git a/apps/comments/l10n/sr.js b/apps/comments/l10n/sr.js index aae126ef40f..230f79c9214 100644 --- a/apps/comments/l10n/sr.js +++ b/apps/comments/l10n/sr.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Коментари</strong> фајлова", "%1$s commented" : "%1$s коментариса", "%1$s commented on %2$s" : "%1$s коментариса на %2$s", "Comments" : "Коментари", diff --git a/apps/comments/l10n/sr.json b/apps/comments/l10n/sr.json index 12cdb29deb5..a9940b644e1 100644 --- a/apps/comments/l10n/sr.json +++ b/apps/comments/l10n/sr.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Коментари</strong> фајлова", "%1$s commented" : "%1$s коментариса", "%1$s commented on %2$s" : "%1$s коментариса на %2$s", "Comments" : "Коментари", diff --git a/apps/comments/l10n/sv.js b/apps/comments/l10n/sv.js index 6c3b17555bc..b64ad9e8173 100644 --- a/apps/comments/l10n/sv.js +++ b/apps/comments/l10n/sv.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> till filer", "You commented" : "Du kommenterade", "%1$s commented" : "%1$s har kommenterat", "You commented on %2$s" : "Du kommenterade %2$s", diff --git a/apps/comments/l10n/sv.json b/apps/comments/l10n/sv.json index 6b2e9b7b71d..f7c9db11cf6 100644 --- a/apps/comments/l10n/sv.json +++ b/apps/comments/l10n/sv.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> till filer", "You commented" : "Du kommenterade", "%1$s commented" : "%1$s har kommenterat", "You commented on %2$s" : "Du kommenterade %2$s", diff --git a/apps/comments/l10n/th_TH.js b/apps/comments/l10n/th_TH.js index ba0e9aa812c..3f5b61c805d 100644 --- a/apps/comments/l10n/th_TH.js +++ b/apps/comments/l10n/th_TH.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>แสดงความคิดเห็น</strong> สำหรับไฟล์", "%1$s commented" : "%1$s ได้ถูกแสดงความคิดเห็น", "%1$s commented on %2$s" : "%1$s ได้ถูกแสดงความคิดเห็นบน %2$s", "Comments" : "ความคิดเห็น", diff --git a/apps/comments/l10n/th_TH.json b/apps/comments/l10n/th_TH.json index 02ce39195c7..dfcfee58d69 100644 --- a/apps/comments/l10n/th_TH.json +++ b/apps/comments/l10n/th_TH.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>แสดงความคิดเห็น</strong> สำหรับไฟล์", "%1$s commented" : "%1$s ได้ถูกแสดงความคิดเห็น", "%1$s commented on %2$s" : "%1$s ได้ถูกแสดงความคิดเห็นบน %2$s", "Comments" : "ความคิดเห็น", diff --git a/apps/comments/l10n/tr.js b/apps/comments/l10n/tr.js index ff5bbca4081..558684161cf 100644 --- a/apps/comments/l10n/tr.js +++ b/apps/comments/l10n/tr.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "Dosyalar için <strong>yorumlar</strong>", "You commented" : "Yorum yaptınız", "%1$s commented" : "%1$s yorumlanmış", "You commented on %2$s" : "%2$s için yorum yaptınız", diff --git a/apps/comments/l10n/tr.json b/apps/comments/l10n/tr.json index 724670c53ae..25d539e57e3 100644 --- a/apps/comments/l10n/tr.json +++ b/apps/comments/l10n/tr.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "Dosyalar için <strong>yorumlar</strong>", "You commented" : "Yorum yaptınız", "%1$s commented" : "%1$s yorumlanmış", "You commented on %2$s" : "%2$s için yorum yaptınız", diff --git a/apps/comments/l10n/uk.js b/apps/comments/l10n/uk.js index a7e1cbad958..e958597b40e 100644 --- a/apps/comments/l10n/uk.js +++ b/apps/comments/l10n/uk.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>Коментарі</strong> до файлів", "%1$s commented" : "%1$s прокоментовано", "%1$s commented on %2$s" : "%1$s прокоментовано у %2$s", "Comments" : "Коментарі", diff --git a/apps/comments/l10n/uk.json b/apps/comments/l10n/uk.json index ff3f3b7dc64..59fb9f7eb76 100644 --- a/apps/comments/l10n/uk.json +++ b/apps/comments/l10n/uk.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>Коментарі</strong> до файлів", "%1$s commented" : "%1$s прокоментовано", "%1$s commented on %2$s" : "%1$s прокоментовано у %2$s", "Comments" : "Коментарі", diff --git a/apps/comments/l10n/zh_CN.js b/apps/comments/l10n/zh_CN.js index edfd32a9926..79d12423208 100644 --- a/apps/comments/l10n/zh_CN.js +++ b/apps/comments/l10n/zh_CN.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "<strong>评论文件</strong>", "%1$s commented" : "%1$s 已评论", "%1$s commented on %2$s" : "%1$s 评论了 %2$s", "Comments" : "评论", diff --git a/apps/comments/l10n/zh_CN.json b/apps/comments/l10n/zh_CN.json index 0eaefb409b1..b27364e4638 100644 --- a/apps/comments/l10n/zh_CN.json +++ b/apps/comments/l10n/zh_CN.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "<strong>评论文件</strong>", "%1$s commented" : "%1$s 已评论", "%1$s commented on %2$s" : "%1$s 评论了 %2$s", "Comments" : "评论", diff --git a/apps/comments/l10n/zh_TW.js b/apps/comments/l10n/zh_TW.js index 41c0dd4b0f2..251752fedb8 100644 --- a/apps/comments/l10n/zh_TW.js +++ b/apps/comments/l10n/zh_TW.js @@ -1,7 +1,6 @@ OC.L10N.register( "comments", { - "<strong>Comments</strong> for files" : "檔案的<strong>留言</strong>", "You commented" : "您留言", "%1$s commented" : "%1$s 留言", "You commented on %2$s" : "您對 %2$s 留言", diff --git a/apps/comments/l10n/zh_TW.json b/apps/comments/l10n/zh_TW.json index 7fe1b0fb1fa..d75f11523b9 100644 --- a/apps/comments/l10n/zh_TW.json +++ b/apps/comments/l10n/zh_TW.json @@ -1,5 +1,4 @@ { "translations": { - "<strong>Comments</strong> for files" : "檔案的<strong>留言</strong>", "You commented" : "您留言", "%1$s commented" : "%1$s 留言", "You commented on %2$s" : "您對 %2$s 留言", diff --git a/apps/dav/lib/connector/sabre/node.php b/apps/dav/lib/connector/sabre/node.php index eaba6713992..979149fc937 100644 --- a/apps/dav/lib/connector/sabre/node.php +++ b/apps/dav/lib/connector/sabre/node.php @@ -224,7 +224,7 @@ abstract class Node implements \Sabre\DAV\INode { if ($storage->instanceOfStorage('\OC\Files\Storage\Shared')) { /** @var \OC\Files\Storage\Shared $storage */ - $permissions = (int)$storage->getShare()['permissions']; + $permissions = (int)$storage->getShare()->getPermissions(); } else { $permissions = $storage->getPermissions($path); } diff --git a/apps/encryption/appinfo/application.php b/apps/encryption/appinfo/application.php index 6d01d3e8353..6080a29d5f4 100644 --- a/apps/encryption/appinfo/application.php +++ b/apps/encryption/appinfo/application.php @@ -66,6 +66,11 @@ class Application extends \OCP\AppFramework\App { $session = $this->getContainer()->query('Session'); $session->setStatus(Session::RUN_MIGRATION); } + if ($this->encryptionManager->isEnabled() && $encryptionSystemReady) { + /** @var Setup $setup */ + $setup = $this->getContainer()->query('UserSetup'); + $setup->setupSystem(); + } } /** diff --git a/apps/encryption/hooks/userhooks.php b/apps/encryption/hooks/userhooks.php index 62acd168909..136a1832101 100644 --- a/apps/encryption/hooks/userhooks.php +++ b/apps/encryption/hooks/userhooks.php @@ -24,6 +24,7 @@ namespace OCA\Encryption\Hooks; +use OC\Files\Filesystem; use OCP\IUserManager; use OCP\Util as OCUtil; use OCA\Encryption\Hooks\Contracts\IHook; @@ -117,22 +118,29 @@ class UserHooks implements IHook { public function addHooks() { OCUtil::connectHook('OC_User', 'post_login', $this, 'login'); OCUtil::connectHook('OC_User', 'logout', $this, 'logout'); - OCUtil::connectHook('OC_User', - 'post_setPassword', - $this, - 'setPassphrase'); - OCUtil::connectHook('OC_User', - 'pre_setPassword', - $this, - 'preSetPassphrase'); - OCUtil::connectHook('OC_User', - 'post_createUser', - $this, - 'postCreateUser'); - OCUtil::connectHook('OC_User', - 'post_deleteUser', - $this, - 'postDeleteUser'); + + // this hooks only make sense if no master key is used + if ($this->util->isMasterKeyEnabled() === false) { + OCUtil::connectHook('OC_User', + 'post_setPassword', + $this, + 'setPassphrase'); + + OCUtil::connectHook('OC_User', + 'pre_setPassword', + $this, + 'preSetPassphrase'); + + OCUtil::connectHook('OC_User', + 'post_createUser', + $this, + 'postCreateUser'); + + OCUtil::connectHook('OC_User', + 'post_deleteUser', + $this, + 'postDeleteUser'); + } } @@ -151,12 +159,10 @@ class UserHooks implements IHook { // ensure filesystem is loaded if (!\OC\Files\Filesystem::$loaded) { - \OC_Util::setupFS($params['uid']); + $this->setupFS($params['uid']); } - - // setup user, if user not ready force relogin - if (!$this->userSetup->setupUser($params['uid'], $params['password'])) { - return false; + if ($this->util->isMasterKeyEnabled() === false) { + $this->userSetup->setupUser($params['uid'], $params['password']); } $this->keyManager->init($params['uid'], $params['password']); @@ -243,6 +249,7 @@ class UserHooks implements IHook { // used to decrypt it has changed } else { // admin changed the password for a different user, create new keys and re-encrypt file keys $user = $params['uid']; + $this->initMountPoints($user); $recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null; // we generate new keys if... @@ -281,6 +288,15 @@ class UserHooks implements IHook { } } + /** + * init mount points for given user + * + * @param string $user + * @throws \OC\User\NoUserException + */ + protected function initMountPoints($user) { + Filesystem::initMountPoints($user); + } /** @@ -291,7 +307,16 @@ class UserHooks implements IHook { public function postPasswordReset($params) { $password = $params['password']; - $this->keyManager->replaceUserKeys($params['uid']); - $this->userSetup->setupServerSide($params['uid'], $password); + $this->keyManager->deleteUserKeys($params['uid']); + $this->userSetup->setupUser($params['uid'], $password); + } + + /** + * setup file system for user + * + * @param string $uid user id + */ + protected function setupFS($uid) { + \OC_Util::setupFS($uid); } } diff --git a/apps/encryption/lib/keymanager.php b/apps/encryption/lib/keymanager.php index 0accfb7900a..5cce760fa59 100644 --- a/apps/encryption/lib/keymanager.php +++ b/apps/encryption/lib/keymanager.php @@ -174,6 +174,11 @@ class KeyManager { * check if a key pair for the master key exists, if not we create one */ public function validateMasterKey() { + + if ($this->util->isMasterKeyEnabled() === false) { + return; + } + $masterKey = $this->getPublicMasterKey(); if (empty($masterKey)) { $keyPair = $this->crypt->createKeyPair(); @@ -334,7 +339,7 @@ class KeyManager { /** * Decrypt private key and store it * - * @param string $uid userid + * @param string $uid user id * @param string $passPhrase users password * @return boolean */ @@ -342,7 +347,6 @@ class KeyManager { $this->session->setStatus(Session::INIT_EXECUTED); - try { if($this->util->isMasterKeyEnabled()) { $uid = $this->getMasterKeyId(); @@ -554,9 +558,11 @@ class KeyManager { } /** + * creat a backup of the users private and public key and then delete it + * * @param string $uid */ - public function replaceUserKeys($uid) { + public function deleteUserKeys($uid) { $this->backupAllKeys('password_reset'); $this->deletePublicKey($uid); $this->deletePrivateKey($uid); diff --git a/apps/encryption/lib/users/setup.php b/apps/encryption/lib/users/setup.php index 0b5fb351aca..e59340c4ce2 100644 --- a/apps/encryption/lib/users/setup.php +++ b/apps/encryption/lib/users/setup.php @@ -66,29 +66,23 @@ class Setup { } /** - * @param string $uid userid + * @param string $uid user id * @param string $password user password * @return bool */ public function setupUser($uid, $password) { - return $this->setupServerSide($uid, $password); + if (!$this->keyManager->userHasKeys($uid)) { + return $this->keyManager->storeKeyPair($uid, $password, + $this->crypt->createKeyPair()); + } + return true; } /** - * check if user has a key pair, if not we create one - * - * @param string $uid userid - * @param string $password user password - * @return bool + * make sure that all system keys exists */ - public function setupServerSide($uid, $password) { + public function setupSystem() { $this->keyManager->validateShareKey(); $this->keyManager->validateMasterKey(); - // Check if user already has keys - if (!$this->keyManager->userHasKeys($uid)) { - return $this->keyManager->storeKeyPair($uid, $password, - $this->crypt->createKeyPair()); - } - return true; } } diff --git a/apps/encryption/tests/hooks/UserHooksTest.php b/apps/encryption/tests/hooks/UserHooksTest.php index 08d1981266c..df3d12b3401 100644 --- a/apps/encryption/tests/hooks/UserHooksTest.php +++ b/apps/encryption/tests/hooks/UserHooksTest.php @@ -29,6 +29,12 @@ use OCA\Encryption\Crypto\Crypt; use OCA\Encryption\Hooks\UserHooks; use Test\TestCase; +/** + * Class UserHooksTest + * + * @group DB + * @package OCA\Encryption\Tests\Hooks + */ class UserHooksTest extends TestCase { /** * @var \PHPUnit_Framework_MockObject_MockObject @@ -71,7 +77,7 @@ class UserHooksTest extends TestCase { private $params = ['uid' => 'testUser', 'password' => 'password']; public function testLogin() { - $this->userSetupMock->expects($this->exactly(2)) + $this->userSetupMock->expects($this->once()) ->method('setupUser') ->willReturnOnConsecutiveCalls(true, false); @@ -80,7 +86,6 @@ class UserHooksTest extends TestCase { ->with('testUser', 'password'); $this->assertNull($this->instance->login($this->params)); - $this->assertFalse($this->instance->login($this->params)); } public function testLogout() { @@ -190,6 +195,23 @@ class UserHooksTest extends TestCase { ->willReturnOnConsecutiveCalls(true, false); + $this->instance = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks') + ->setConstructorArgs( + [ + $this->keyManagerMock, + $this->userManagerMock, + $this->loggerMock, + $this->userSetupMock, + $this->userSessionMock, + $this->utilMock, + $this->sessionMock, + $this->cryptMock, + $this->recoveryMock + ] + )->setMethods(['initMountPoints'])->getMock(); + + $this->instance->expects($this->exactly(3))->method('initMountPoints'); + // Test first if statement $this->assertNull($this->instance->setPassphrase($this->params)); @@ -236,27 +258,31 @@ class UserHooksTest extends TestCase { ->with('testUser') ->willReturn(false); - $userHooks = new UserHooks($this->keyManagerMock, - $this->userManagerMock, - $this->loggerMock, - $this->userSetupMock, - $userSessionMock, - $this->utilMock, - $this->sessionMock, - $this->cryptMock, - $this->recoveryMock - ); + $userHooks = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks') + ->setConstructorArgs( + [ + $this->keyManagerMock, + $this->userManagerMock, + $this->loggerMock, + $this->userSetupMock, + $userSessionMock, + $this->utilMock, + $this->sessionMock, + $this->cryptMock, + $this->recoveryMock + ] + )->setMethods(['initMountPoints'])->getMock(); $this->assertNull($userHooks->setPassphrase($this->params)); } public function testPostPasswordReset() { $this->keyManagerMock->expects($this->once()) - ->method('replaceUserKeys') + ->method('deleteUserKeys') ->with('testUser'); $this->userSetupMock->expects($this->once()) - ->method('setupServerSide') + ->method('setupUser') ->with('testUser', 'password'); $this->assertNull($this->instance->postPasswordReset($this->params)); @@ -312,16 +338,22 @@ class UserHooksTest extends TestCase { $this->sessionMock = $sessionMock; $this->recoveryMock = $recoveryMock; $this->utilMock = $utilMock; - $this->instance = new UserHooks($this->keyManagerMock, - $this->userManagerMock, - $this->loggerMock, - $this->userSetupMock, - $this->userSessionMock, - $this->utilMock, - $this->sessionMock, - $this->cryptMock, - $this->recoveryMock - ); + $this->utilMock->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false); + + $this->instance = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks') + ->setConstructorArgs( + [ + $this->keyManagerMock, + $this->userManagerMock, + $this->loggerMock, + $this->userSetupMock, + $this->userSessionMock, + $this->utilMock, + $this->sessionMock, + $this->cryptMock, + $this->recoveryMock + ] + )->setMethods(['setupFS'])->getMock(); } diff --git a/apps/encryption/tests/lib/users/SetupTest.php b/apps/encryption/tests/lib/users/SetupTest.php index 0cc59384b16..e7d8afbb102 100644 --- a/apps/encryption/tests/lib/users/SetupTest.php +++ b/apps/encryption/tests/lib/users/SetupTest.php @@ -41,26 +41,6 @@ class SetupTest extends TestCase { */ private $instance; - public function testSetupServerSide() { - $this->keyManagerMock->expects($this->exactly(2))->method('validateShareKey'); - $this->keyManagerMock->expects($this->exactly(2))->method('validateMasterKey'); - $this->keyManagerMock->expects($this->exactly(2)) - ->method('userHasKeys') - ->with('admin') - ->willReturnOnConsecutiveCalls(true, false); - - $this->assertTrue($this->instance->setupServerSide('admin', - 'password')); - - $this->keyManagerMock->expects($this->once()) - ->method('storeKeyPair') - ->with('admin', 'password') - ->willReturn(false); - - $this->assertFalse($this->instance->setupServerSide('admin', - 'password')); - } - protected function setUp() { parent::setUp(); $logMock = $this->getMock('OCP\ILogger'); @@ -81,4 +61,43 @@ class SetupTest extends TestCase { $this->keyManagerMock); } + + public function testSetupSystem() { + $this->keyManagerMock->expects($this->once())->method('validateShareKey'); + $this->keyManagerMock->expects($this->once())->method('validateMasterKey'); + + $this->instance->setupSystem(); + } + + /** + * @dataProvider dataTestSetupUser + * + * @param bool $hasKeys + * @param bool $expected + */ + public function testSetupUser($hasKeys, $expected) { + + $this->keyManagerMock->expects($this->once())->method('userHasKeys') + ->with('uid')->willReturn($hasKeys); + + if ($hasKeys) { + $this->keyManagerMock->expects($this->never())->method('storeKeyPair'); + } else { + $this->cryptMock->expects($this->once())->method('createKeyPair')->willReturn('keyPair'); + $this->keyManagerMock->expects($this->once())->method('storeKeyPair') + ->with('uid', 'password', 'keyPair')->willReturn(true); + } + + $this->assertSame($expected, + $this->instance->setupUser('uid', 'password') + ); + } + + public function dataTestSetupUser() { + return [ + [true, true], + [false, true] + ]; + } + } diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php index 6ad938101a2..2291b48e3c5 100644 --- a/apps/files/appinfo/routes.php +++ b/apps/files/appinfo/routes.php @@ -54,6 +54,11 @@ $application->registerRoutes( 'url' => '/api/v1/sorting', 'verb' => 'POST' ), + array( + 'name' => 'API#showHiddenFiles', + 'url' => '/api/v1/showhidden', + 'verb' => 'POST' + ), [ 'name' => 'view#index', 'url' => '/', diff --git a/apps/files/controller/apicontroller.php b/apps/files/controller/apicontroller.php index 43d426476fe..072498c7b5f 100644 --- a/apps/files/controller/apicontroller.php +++ b/apps/files/controller/apicontroller.php @@ -224,4 +224,16 @@ class ApiController extends Controller { return new Response(); } + /** + * Toggle default for showing/hiding hidden files + * + * @NoAdminRequired + * + * @param bool $show + */ + public function showHiddenFiles($show) { + $this->config->setUserValue($this->userSession->getUser()->getUID(), 'files', 'show_hidden', (int) $show); + return new Response(); + } + } diff --git a/apps/files/controller/viewcontroller.php b/apps/files/controller/viewcontroller.php index 6c5f4c6d2a0..ded6fd555df 100644 --- a/apps/files/controller/viewcontroller.php +++ b/apps/files/controller/viewcontroller.php @@ -67,6 +67,7 @@ class ViewController extends Controller { * @param IL10N $l10n * @param IConfig $config * @param EventDispatcherInterface $eventDispatcherInterface + * @param IUserSession $userSession */ public function __construct($appName, IRequest $request, @@ -136,7 +137,6 @@ class ViewController extends Controller { \OCP\Util::addscript('files', 'app'); \OCP\Util::addscript('files', 'file-upload'); \OCP\Util::addscript('files', 'newfilemenu'); - \OCP\Util::addscript('files', 'jquery.iframe-transport'); \OCP\Util::addscript('files', 'jquery.fileupload'); \OCP\Util::addscript('files', 'jquery-visibility'); \OCP\Util::addscript('files', 'fileinfomodel'); @@ -222,6 +222,8 @@ class ViewController extends Controller { $user = $this->userSession->getUser()->getUID(); $params['defaultFileSorting'] = $this->config->getUserValue($user, 'files', 'file_sorting', 'name'); $params['defaultFileSortingDirection'] = $this->config->getUserValue($user, 'files', 'file_sorting_direction', 'asc'); + $showHidden = (bool) $this->config->getUserValue($this->userSession->getUser()->getUID(), 'files', 'show_hidden', false); + $params['showHiddenFiles'] = $showHidden ? 1 : 0; $params['appNavigation'] = $nav; $params['appContents'] = $contentItems; $this->navigationManager->setActiveEntry('files_index'); diff --git a/apps/files/css/files.css b/apps/files/css/files.css index d20ab102ba5..373739071e9 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -2,6 +2,11 @@ This file is licensed under the Affero General Public License version 3 or later. See the COPYING-README file. */ +/* SETTINGS */ +#files-setting-showhidden { + padding-bottom: 8px; +} + /* FILE MENU */ .actions { padding:5px; height:32px; display: inline-block; float: left; } .actions input, .actions button, .actions .button { margin:0; float:left; } diff --git a/apps/files/js/app.js b/apps/files/js/app.js index 4ed805d2681..eac080a009d 100644 --- a/apps/files/js/app.js +++ b/apps/files/js/app.js @@ -11,7 +11,7 @@ * */ -/* global dragOptions, folderDropOptions */ +/* global dragOptions, folderDropOptions, OC */ (function() { if (!OCA.Files) { @@ -41,10 +41,22 @@ fileList: null, /** + * Backbone model for storing files preferences + */ + _filesConfig: null, + + /** * Initializes the files app */ initialize: function() { this.navigation = new OCA.Files.Navigation($('#app-navigation')); + this.$showHiddenFiles = $('input#showhiddenfilesToggle'); + var showHidden = $('#showHiddenFiles').val() === "1"; + this.$showHiddenFiles.prop('checked', showHidden); + + this._filesConfig = new OC.Backbone.Model({ + showhidden: showHidden + }); var urlParams = OC.Util.History.parseUrlQuery(); var fileActions = new OCA.Files.FileActions(); @@ -76,7 +88,8 @@ sorting: { mode: $('#defaultFileSorting').val(), direction: $('#defaultFileSortingDirection').val() - } + }, + config: this._filesConfig, } ); this.files.initialize(); @@ -90,6 +103,8 @@ this._setupEvents(); // trigger URL change event handlers this._onPopState(urlParams); + + this._debouncedPersistShowHiddenFilesState = _.debounce(this._persistShowHiddenFilesState, 1200); }, /** @@ -144,6 +159,14 @@ }, /** + * + * @returns {Backbone.Model} + */ + getFilesConfig: function() { + return this._filesConfig; + }, + + /** * Setup events based on URL changes */ _setupEvents: function() { @@ -154,6 +177,30 @@ $('#app-content').delegate('>div', 'changeViewerMode', _.bind(this._onChangeViewerMode, this)); $('#app-navigation').on('itemChanged', _.bind(this._onNavigationChanged, this)); + this.$showHiddenFiles.on('change', _.bind(this._onShowHiddenFilesChange, this)); + }, + + /** + * Toggle showing hidden files according to the settings checkbox + * + * @returns {undefined} + */ + _onShowHiddenFilesChange: function() { + var show = this.$showHiddenFiles.is(':checked'); + this._filesConfig.set('showhidden', show); + this._debouncedPersistShowHiddenFilesState(); + }, + + /** + * Persist show hidden preference on ther server + * + * @returns {undefined} + */ + _persistShowHiddenFilesState: function() { + var show = this._filesConfig.get('showhidden'); + $.post(OC.generateUrl('/apps/files/api/v1/showhidden'), { + show: show + }); }, /** diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index fca69064cde..b88a7031dba 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -504,7 +504,7 @@ OC.Upload = { //fetch response from iframe response = data.result[0].body.innerText; } - var result = $.parseJSON(response); + var result = JSON.parse(response); delete data.jqXHR; diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 7de64f8ade3..ea0f0666b4a 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -145,6 +145,11 @@ _filter: '', /** + * @type Backbone.Model + */ + _filesConfig: null, + + /** * Sort attribute * @type String */ @@ -198,6 +203,15 @@ return; } + if (options.config) { + this._filesConfig = options.config; + } else { + this._filesConfig = OCA.Files.App.getFilesConfig(); + } + this._filesConfig.on('change:showhidden', function() { + self.setFiles(self.files); + }); + if (options.dragOptions) { this._dragOptions = options.dragOptions; } @@ -847,6 +861,10 @@ * @return array of DOM elements of the newly added files */ _nextPage: function(animate) { + // Save full files list while rendering + var allFiles = this.files; + this.files = this._filterHiddenFiles(this.files); + var index = this.$fileList.children().length, count = this.pageSize(), hidden, @@ -893,6 +911,10 @@ } }, 0); } + + // Restore full files list after rendering + this.files = allFiles; + return newTrs; }, @@ -930,18 +952,25 @@ // clear "Select all" checkbox this.$el.find('.select-all').prop('checked', false); + // Save full files list while rendering + var allFiles = this.files; + this.files = this._filterHiddenFiles(this.files); + this.isEmpty = this.files.length === 0; this._nextPage(); this.updateEmptyContent(); - this.fileSummary.calculate(filesArray); + this.fileSummary.calculate(this.files); this._selectedFiles = {}; this._selectionSummary.clear(); this.updateSelectionSummary(); $(window).scrollTop(0); + // Restore full files list after rendering + this.files = allFiles; + this.$fileList.trigger(jQuery.Event('updated')); _.defer(function() { self.$el.closest('#app-content').trigger(jQuery.Event('apprendered')); @@ -949,6 +978,21 @@ }, /** + * Filter hidden files of the given filesArray (dot-files) + * + * @param filesArray files to be filtered + * @returns {array} + */ + _filterHiddenFiles: function(files) { + if (this._filesConfig.get('showhidden')) { + return files; + } + return _.filter(files, function(file) { + return file.name.indexOf('.') !== 0; + }); + }, + + /** * Returns the icon URL matching the given file info * * @param {OC.Files.FileInfo} fileInfo file info @@ -2549,7 +2593,7 @@ // fetch response from iframe response = data.result[0].body.innerText; } - var result=$.parseJSON(response); + var result = JSON.parse(response); if (typeof result[0] !== 'undefined' && result[0].status === 'success') { var file = result[0]; @@ -2862,7 +2906,7 @@ $(document).ready(function() { OCA.Files.FileList.lastAction(); } }); - $(window).unload(function () { + $(window).on('unload', function () { $(window).trigger('beforeunload'); }); diff --git a/apps/files/js/jquery.iframe-transport.js b/apps/files/js/jquery.iframe-transport.js deleted file mode 100644 index 5c9df77976b..00000000000 --- a/apps/files/js/jquery.iframe-transport.js +++ /dev/null @@ -1,205 +0,0 @@ -/* - * jQuery Iframe Transport Plugin 1.7 - * https://github.com/blueimp/jQuery-File-Upload - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * http://www.opensource.org/licenses/MIT - */ - -/*jslint unparam: true, nomen: true */ -/*global define, window, document */ - -(function (factory) { - 'use strict'; - if (typeof define === 'function' && define.amd) { - // Register as an anonymous AMD module: - define(['jquery'], factory); - } else { - // Browser globals: - factory(window.jQuery); - } -}(function ($) { - 'use strict'; - - // Helper variable to create unique names for the transport iframes: - var counter = 0; - - // The iframe transport accepts three additional options: - // options.fileInput: a jQuery collection of file input fields - // options.paramName: the parameter name for the file form data, - // overrides the name property of the file input field(s), - // can be a string or an array of strings. - // options.formData: an array of objects with name and value properties, - // equivalent to the return data of .serializeArray(), e.g.: - // [{name: 'a', value: 1}, {name: 'b', value: 2}] - $.ajaxTransport('iframe', function (options) { - if (options.async) { - var form, - iframe, - addParamChar; - return { - send: function (_, completeCallback) { - form = $('<form style="display:none;"></form>'); - form.attr('accept-charset', options.formAcceptCharset); - addParamChar = /\?/.test(options.url) ? '&' : '?'; - // XDomainRequest only supports GET and POST: - if (options.type === 'DELETE') { - options.url = options.url + addParamChar + '_method=DELETE'; - options.type = 'POST'; - } else if (options.type === 'PUT') { - options.url = options.url + addParamChar + '_method=PUT'; - options.type = 'POST'; - } else if (options.type === 'PATCH') { - options.url = options.url + addParamChar + '_method=PATCH'; - options.type = 'POST'; - } - // javascript:false as initial iframe src - // prevents warning popups on HTTPS in IE6. - // IE versions below IE8 cannot set the name property of - // elements that have already been added to the DOM, - // so we set the name along with the iframe HTML markup: - counter += 1; - iframe = $( - '<iframe src="javascript:false;" name="iframe-transport-' + - counter + '"></iframe>' - ).bind('load', function () { - var fileInputClones, - paramNames = $.isArray(options.paramName) ? - options.paramName : [options.paramName]; - iframe - .unbind('load') - .bind('load', function () { - var response; - // Wrap in a try/catch block to catch exceptions thrown - // when trying to access cross-domain iframe contents: - try { - response = iframe.contents(); - // Google Chrome and Firefox do not throw an - // exception when calling iframe.contents() on - // cross-domain requests, so we unify the response: - if (!response.length || !response[0].firstChild) { - throw new Error(); - } - } catch (e) { - response = undefined; - } - // The complete callback returns the - // iframe content document as response object: - completeCallback( - 200, - 'success', - {'iframe': response} - ); - // Fix for IE endless progress bar activity bug - // (happens on form submits to iframe targets): - $('<iframe src="javascript:false;"></iframe>') - .appendTo(form); - window.setTimeout(function () { - // Removing the form in a setTimeout call - // allows Chrome's developer tools to display - // the response result - form.remove(); - }, 0); - }); - form - .prop('target', iframe.prop('name')) - .prop('action', options.url) - .prop('method', options.type); - if (options.formData) { - $.each(options.formData, function (index, field) { - $('<input type="hidden"/>') - .prop('name', field.name) - .val(field.value) - .appendTo(form); - }); - } - if (options.fileInput && options.fileInput.length && - options.type === 'POST') { - fileInputClones = options.fileInput.clone(); - // Insert a clone for each file input field: - options.fileInput.after(function (index) { - return fileInputClones[index]; - }); - if (options.paramName) { - options.fileInput.each(function (index) { - $(this).prop( - 'name', - paramNames[index] || options.paramName - ); - }); - } - // Appending the file input fields to the hidden form - // removes them from their original location: - form - .append(options.fileInput) - .prop('enctype', 'multipart/form-data') - // enctype must be set as encoding for IE: - .prop('encoding', 'multipart/form-data'); - } - form.submit(); - // Insert the file input fields at their original location - // by replacing the clones with the originals: - if (fileInputClones && fileInputClones.length) { - options.fileInput.each(function (index, input) { - var clone = $(fileInputClones[index]); - $(input).prop('name', clone.prop('name')); - clone.replaceWith(input); - }); - } - }); - form.append(iframe).appendTo(document.body); - }, - abort: function () { - if (iframe) { - // javascript:false as iframe src aborts the request - // and prevents warning popups on HTTPS in IE6. - // concat is used to avoid the "Script URL" JSLint error: - iframe - .unbind('load') - .prop('src', 'javascript'.concat(':false;')); - } - if (form) { - form.remove(); - } - } - }; - } - }); - - // The iframe transport returns the iframe content document as response. - // The following adds converters from iframe to text, json, html, xml - // and script. - // Please note that the Content-Type for JSON responses has to be text/plain - // or text/html, if the browser doesn't include application/json in the - // Accept header, else IE will show a download dialog. - // The Content-Type for XML responses on the other hand has to be always - // application/xml or text/xml, so IE properly parses the XML response. - // See also - // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation - $.ajaxSetup({ - converters: { - 'iframe text': function (iframe) { - return iframe && $(iframe[0].body).text(); - }, - 'iframe json': function (iframe) { - return iframe && $.parseJSON($(iframe[0].body).text()); - }, - 'iframe html': function (iframe) { - return iframe && $(iframe[0].body).html(); - }, - 'iframe xml': function (iframe) { - var xmlDoc = iframe && iframe[0]; - return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : - $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || - $(xmlDoc.body).html()); - }, - 'iframe script': function (iframe) { - return iframe && $.globalEval($(iframe[0].body).text()); - } - } - }); - -}));
\ No newline at end of file diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index c9fd96ea507..a15c67400b7 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -106,6 +106,7 @@ OC.L10N.register( "Missing permissions to edit from here." : "Missing permissions to edit from here.", "Settings" : "Settings", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>", "Cancel upload" : "Cancel upload", "No files in here" : "No files in here", "Upload some content or sync with your devices!" : "Upload some content or sync with your devices!", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 172f49cfc38..46a71fdf049 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -104,6 +104,7 @@ "Missing permissions to edit from here." : "Missing permissions to edit from here.", "Settings" : "Settings", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>", "Cancel upload" : "Cancel upload", "No files in here" : "No files in here", "Upload some content or sync with your devices!" : "Upload some content or sync with your devices!", diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php index 39a5875f3d0..9c79f806713 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -16,9 +16,13 @@ </button> </div> <div id="app-settings-content"> - <label for="webdavurl"><?php p($l->t('WebDAV'));?></label> - <input id="webdavurl" type="text" readonly="readonly" value="<?php p(\OCP\Util::linkToRemote('webdav')); ?>" /> - <em><?php print_unescaped($l->t('Use this address to <a href="%s" target="_blank" rel="noreferrer">access your Files via WebDAV</a>', array(link_to_docs('user-webdav'))));?></em> + <div id="files-setting-showhidden"> + <input class="checkbox" id="showhiddenfilesToggle" checked="checked" type="checkbox"> + <label for="showhiddenfilesToggle"><?php p($l->t('Show hidden files')); ?></label> + </div> + <label for="webdavurl"><?php p($l->t('WebDAV'));?></label> + <input id="webdavurl" type="text" readonly="readonly" value="<?php p(\OCP\Util::linkToRemote('webdav')); ?>" /> + <em><?php print_unescaped($l->t('Use this address to <a href="%s" target="_blank" rel="noreferrer">access your Files via WebDAV</a>', array(link_to_docs('user-webdav'))));?></em> </div> </div> </div> diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index db464ad2eca..7281edd3aec 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -20,4 +20,5 @@ <input type="hidden" name="allowShareWithLink" id="allowShareWithLink" value="<?php p($_['allowShareWithLink']) ?>" /> <input type="hidden" name="defaultFileSorting" id="defaultFileSorting" value="<?php p($_['defaultFileSorting']) ?>" /> <input type="hidden" name="defaultFileSortingDirection" id="defaultFileSortingDirection" value="<?php p($_['defaultFileSortingDirection']) ?>" /> +<input type="hidden" name="showHiddenFiles" id="showHiddenFiles" value="<?php p($_['showHiddenFiles']); ?>" /> <?php endif; diff --git a/apps/files/tests/controller/ViewControllerTest.php b/apps/files/tests/controller/ViewControllerTest.php index 0446cc8982c..420e635b4b9 100644 --- a/apps/files/tests/controller/ViewControllerTest.php +++ b/apps/files/tests/controller/ViewControllerTest.php @@ -155,11 +155,12 @@ class ViewControllerTest extends TestCase { 'owner' => 'MyName', 'ownerDisplayName' => 'MyDisplayName', ])); - $this->config->expects($this->exactly(2)) + $this->config->expects($this->exactly(3)) ->method('getUserValue') ->will($this->returnValueMap([ [$this->user->getUID(), 'files', 'file_sorting', 'name', 'name'], - [$this->user->getUID(), 'files', 'file_sorting_direction', 'asc', 'asc'] + [$this->user->getUID(), 'files', 'file_sorting_direction', 'asc', 'asc'], + [$this->user->getUID(), 'files', 'show_hidden', false, false], ])); $this->config @@ -244,6 +245,7 @@ class ViewControllerTest extends TestCase { 'isPublic' => false, 'defaultFileSorting' => 'name', 'defaultFileSortingDirection' => 'asc', + 'showHiddenFiles' => false, 'mailNotificationEnabled' => 'no', 'mailPublicNotificationEnabled' => 'no', 'allowShareWithLink' => 'yes', diff --git a/apps/files/tests/controller/apicontrollertest.php b/apps/files/tests/controller/apicontrollertest.php index 59f53e8ee81..2eba7d62feb 100644 --- a/apps/files/tests/controller/apicontrollertest.php +++ b/apps/files/tests/controller/apicontrollertest.php @@ -1,4 +1,5 @@ <?php + /** * @author Christoph Wurst <christoph@winzerhof-wurst.at> * @author Lukas Reschke <lukas@owncloud.com> @@ -382,4 +383,17 @@ class ApiControllerTest extends TestCase { $this->assertEquals($expected, $result); } + public function testShowHiddenFiles() { + $show = false; + + $this->config->expects($this->once()) + ->method('setUserValue') + ->with($this->user->getUID(), 'files', 'show_hidden', $show); + + $expected = new Http\Response(); + $actual = $this->apiController->showHiddenFiles($show); + + $this->assertEquals($expected, $actual); + } + } diff --git a/apps/files_sharing/appinfo/application.php b/apps/files_sharing/appinfo/application.php index 64c7517456d..5233b343830 100644 --- a/apps/files_sharing/appinfo/application.php +++ b/apps/files_sharing/appinfo/application.php @@ -111,7 +111,8 @@ class Application extends App { /** @var \OCP\IServerContainer $server */ $server = $c->query('ServerContainer'); return new MountProvider( - $server->getConfig() + $server->getConfig(), + $server->getShareManager() ); }); diff --git a/apps/files_sharing/js/app.js b/apps/files_sharing/js/app.js index af198208de2..6f12b3d4456 100644 --- a/apps/files_sharing/js/app.js +++ b/apps/files_sharing/js/app.js @@ -33,7 +33,8 @@ OCA.Sharing.App = { id: 'shares.self', scrollContainer: $('#app-content'), sharedWithUser: true, - fileActions: this._createFileActions() + fileActions: this._createFileActions(), + config: OCA.Files.App.getFilesConfig() } ); @@ -55,7 +56,8 @@ OCA.Sharing.App = { id: 'shares.others', scrollContainer: $('#app-content'), sharedWithUser: false, - fileActions: this._createFileActions() + fileActions: this._createFileActions(), + config: OCA.Files.App.getFilesConfig() } ); @@ -77,7 +79,8 @@ OCA.Sharing.App = { id: 'shares.link', scrollContainer: $('#app-content'), linksOnly: true, - fileActions: this._createFileActions() + fileActions: this._createFileActions(), + config: OCA.Files.App.getFilesConfig() } ); diff --git a/apps/files_sharing/lib/mountprovider.php b/apps/files_sharing/lib/mountprovider.php index 6c8bbb62ee7..8e133951293 100644 --- a/apps/files_sharing/lib/mountprovider.php +++ b/apps/files_sharing/lib/mountprovider.php @@ -22,12 +22,11 @@ namespace OCA\Files_Sharing; -use OC\Files\Filesystem; -use OC\User\NoUserException; use OCP\Files\Config\IMountProvider; use OCP\Files\Storage\IStorageFactory; use OCP\IConfig; use OCP\IUser; +use OCP\Share\IManager; class MountProvider implements IMountProvider { /** @@ -36,10 +35,17 @@ class MountProvider implements IMountProvider { protected $config; /** + * @var IManager + */ + protected $shareManager; + + /** * @param \OCP\IConfig $config + * @param IManager $shareManager */ - public function __construct(IConfig $config) { + public function __construct(IConfig $config, IManager $shareManager) { $this->config = $config; + $this->shareManager = $shareManager; } @@ -51,18 +57,21 @@ class MountProvider implements IMountProvider { * @return \OCP\Files\Mount\IMountPoint[] */ public function getMountsForUser(IUser $user, IStorageFactory $storageFactory) { - $shares = \OCP\Share::getItemsSharedWithUser('file', $user->getUID()); - $shares = array_filter($shares, function ($share) { - return $share['permissions'] > 0; + $shares = $this->shareManager->getSharedWith($user->getUID(), \OCP\Share::SHARE_TYPE_USER, null, -1); + $shares = array_merge($shares, $this->shareManager->getSharedWith($user->getUID(), \OCP\Share::SHARE_TYPE_GROUP, null, -1)); + $shares = array_filter($shares, function (\OCP\Share\IShare $share) { + return $share->getPermissions() > 0; }); + $mounts = []; foreach ($shares as $share) { + $mounts[] = new SharedMount( '\OC\Files\Storage\Shared', $mounts, [ - 'share' => $share, - 'user' => $user->getUID() + 'user' => $user->getUID(), + 'newShare' => $share, ], $storageFactory ); diff --git a/apps/files_sharing/lib/scanner.php b/apps/files_sharing/lib/scanner.php index 8b32d014a08..2e951423aa2 100644 --- a/apps/files_sharing/lib/scanner.php +++ b/apps/files_sharing/lib/scanner.php @@ -42,8 +42,10 @@ class SharedScanner extends Scanner { */ public function getData($path) { $data = parent::getData($path); - $sourcePath = $this->storage->getSourcePath($path); - list($sourceStorage, $internalPath) = \OC\Files\Filesystem::resolvePath($sourcePath); + if ($data === null) { + return null; + } + list($sourceStorage, $internalPath) = $this->storage->resolvePath($path); $data['permissions'] = $sourceStorage->getPermissions($internalPath); return $data; } diff --git a/apps/files_sharing/lib/sharedmount.php b/apps/files_sharing/lib/sharedmount.php index 311e81269db..4aed80b12b2 100644 --- a/apps/files_sharing/lib/sharedmount.php +++ b/apps/files_sharing/lib/sharedmount.php @@ -49,6 +49,9 @@ class SharedMount extends MountPoint implements MoveableMount { */ private $user; + /** @var \OCP\Share\IShare */ + private $share; + /** * @param string $storage * @param SharedMount[] $mountpoints @@ -58,23 +61,24 @@ class SharedMount extends MountPoint implements MoveableMount { public function __construct($storage, array $mountpoints, $arguments = null, $loader = null) { $this->user = $arguments['user']; $this->recipientView = new View('/' . $this->user . '/files'); - $newMountPoint = $this->verifyMountPoint($arguments['share'], $mountpoints); + $this->share = $arguments['newShare']; + $newMountPoint = $this->verifyMountPoint($this->share, $mountpoints); $absMountPoint = '/' . $this->user . '/files' . $newMountPoint; - $arguments['ownerView'] = new View('/' . $arguments['share']['uid_owner'] . '/files'); + $arguments['ownerView'] = new View('/' . $this->share->getShareOwner() . '/files'); parent::__construct($storage, $absMountPoint, $arguments, $loader); } /** * check if the parent folder exists otherwise move the mount point up * - * @param array $share + * @param \OCP\Share\IShare $share * @param SharedMount[] $mountpoints * @return string */ - private function verifyMountPoint(&$share, array $mountpoints) { + private function verifyMountPoint(\OCP\Share\IShare $share, array $mountpoints) { - $mountPoint = basename($share['file_target']); - $parent = dirname($share['file_target']); + $mountPoint = basename($share->getTarget()); + $parent = dirname($share->getTarget()); if (!$this->recipientView->is_dir($parent)) { $parent = Helper::getShareFolder(); @@ -86,16 +90,27 @@ class SharedMount extends MountPoint implements MoveableMount { $mountpoints ); - if ($newMountPoint !== $share['file_target']) { + if ($newMountPoint !== $share->getTarget()) { $this->updateFileTarget($newMountPoint, $share); - $share['file_target'] = $newMountPoint; - $share['unique_name'] = true; } return $newMountPoint; } /** + * update fileTarget in the database if the mount point changed + * + * @param string $newPath + * @param \OCP\Share\IShare $share + * @return bool + */ + private function updateFileTarget($newPath, &$share) { + $share->setTarget($newPath); + \OC::$server->getShareManager()->moveShare($share, $this->user); + } + + + /** * @param string $path * @param View $view * @param SharedMount[] $mountpoints @@ -110,7 +125,7 @@ class SharedMount extends MountPoint implements MoveableMount { // Helper function to find existing mount points $mountpointExists = function($path) use ($mountpoints) { foreach ($mountpoints as $mountpoint) { - if ($mountpoint->getShare()['file_target'] === $path) { + if ($mountpoint->getShare()->getTarget() === $path) { return true; } } @@ -127,38 +142,6 @@ class SharedMount extends MountPoint implements MoveableMount { } /** - * update fileTarget in the database if the mount point changed - * - * @param string $newPath - * @param array $share reference to the share which should be modified - * @return bool - */ - private function updateFileTarget($newPath, &$share) { - // if the user renames a mount point from a group share we need to create a new db entry - // for the unique name - if ($share['share_type'] === \OCP\Share::SHARE_TYPE_GROUP && empty($share['unique_name'])) { - $query = \OCP\DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`,' - .' `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`,' - .' `file_target`, `token`, `parent`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)'); - $arguments = array($share['item_type'], $share['item_source'], $share['item_target'], - 2, $this->user, $share['uid_owner'], $share['permissions'], $share['stime'], $share['file_source'], - $newPath, $share['token'], $share['id']); - } else { - // rename mount point - $query = \OCP\DB::prepare( - 'Update `*PREFIX*share` - SET `file_target` = ? - WHERE `id` = ?' - ); - $arguments = array($newPath, $share['id']); - } - - $result = $query->execute($arguments); - - return $result === 1 ? true : false; - } - - /** * Format a path to be relative to the /user/files/ directory * * @param string $path the absolute path @@ -197,20 +180,11 @@ class SharedMount extends MountPoint implements MoveableMount { $result = true; - if (!empty($share['grouped'])) { - foreach ($share['grouped'] as $s) { - $result = $this->updateFileTarget($relTargetPath, $s) && $result; - } - } else { - $result = $this->updateFileTarget($relTargetPath, $share) && $result; - } - - if ($result) { + try { + $this->updateFileTarget($relTargetPath, $share); $this->setMountPoint($target); - $this->storage->setUniqueName(); $this->storage->setMountPoint($relTargetPath); - - } else { + } catch (\Exception $e) { \OCP\Util::writeLog('file sharing', 'Could not rename mount point for shared folder "' . $this->getMountPoint() . '" to "' . $target . '"', \OCP\Util::ERROR); @@ -235,11 +209,18 @@ class SharedMount extends MountPoint implements MoveableMount { } /** - * @return array + * @return \OCP\Share\IShare */ public function getShare() { - /** @var $storage \OC\Files\Storage\Shared */ - $storage = $this->getStorage(); - return $storage->getShare(); + return $this->share; + } + + /** + * Get the file id of the root of the storage + * + * @return int + */ + public function getStorageRootId() { + return $this->share->getNodeId(); } } diff --git a/apps/files_sharing/lib/sharedpropagator.php b/apps/files_sharing/lib/sharedpropagator.php index 29735934499..8de90b9552b 100644 --- a/apps/files_sharing/lib/sharedpropagator.php +++ b/apps/files_sharing/lib/sharedpropagator.php @@ -36,9 +36,8 @@ class SharedPropagator extends Propagator { * @return \array[] all propagated entries */ public function propagateChange($internalPath, $time, $sizeDifference = 0) { - $source = $this->storage->getSourcePath($internalPath); /** @var \OC\Files\Storage\Storage $storage */ - list($storage, $sourceInternalPath) = \OC\Files\Filesystem::resolvePath($source); + list($storage, $sourceInternalPath) = $this->storage->resolvePath($internalPath); return $storage->getPropagator()->propagateChange($sourceInternalPath, $time, $sizeDifference); } } diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index 8f4888d20e2..48ab3fad5f6 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -41,21 +41,18 @@ use OCP\Lock\ILockingProvider; /** * Convert target path to source path and pass the function call to the correct storage provider */ -class Shared extends \OC\Files\Storage\Common implements ISharedStorage { +class Shared extends \OC\Files\Storage\Wrapper\Jail implements ISharedStorage { private $share; // the shared resource - private $files = array(); + + /** @var \OCP\Share\IShare */ + private $newShare; /** * @var \OC\Files\View */ private $ownerView; - /** - * @var string - */ - private $user; - private $initialized = false; /** @@ -68,16 +65,28 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { */ private $sourceStorage; + /** @var string */ + private $user; + /** * @var \OCP\ILogger */ private $logger; public function __construct($arguments) { - $this->share = $arguments['share']; $this->ownerView = $arguments['ownerView']; - $this->user = $arguments['user']; $this->logger = \OC::$server->getLogger(); + $this->newShare = $arguments['newShare']; + $this->user = $arguments['user']; + + Filesystem::initMountPoints($this->newShare->getShareOwner()); + $sourcePath = $this->ownerView->getPath($this->newShare->getNodeId()); + list($storage, $internalPath) = $this->ownerView->resolvePath($sourcePath); + + parent::__construct([ + 'storage' => $storage, + 'root' => $internalPath, + ]); } private function init() { @@ -86,8 +95,8 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { } $this->initialized = true; try { - Filesystem::initMountPoints($this->share['uid_owner']); - $sourcePath = $this->ownerView->getPath($this->share['file_source']); + Filesystem::initMountPoints($this->newShare->getShareOwner()); + $sourcePath = $this->ownerView->getPath($this->newShare->getNodeId()); list($this->sourceStorage, $sourceInternalPath) = $this->ownerView->resolvePath($sourcePath); $this->sourceRootInfo = $this->sourceStorage->getCache()->get($sourceInternalPath); } catch (\Exception $e) { @@ -115,59 +124,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { * @return int */ public function getSourceId() { - return (int)$this->share['file_source']; - } - - /** - * Get the source file path, permissions, and owner for a shared file - * - * @param string $target Shared target file path - * @return array Returns array with the keys path, permissions, and owner or false if not found - */ - public function getFile($target) { - $this->init(); - if (!isset($this->files[$target])) { - // Check for partial files - if (pathinfo($target, PATHINFO_EXTENSION) === 'part') { - $source = \OC_Share_Backend_File::getSource(substr($target, 0, -5), $this->getShare()); - if ($source) { - $source['path'] .= '.part'; - // All partial files have delete permission - $source['permissions'] |= \OCP\Constants::PERMISSION_DELETE; - } - } else { - $source = \OC_Share_Backend_File::getSource($target, $this->getShare()); - } - $this->files[$target] = $source; - } - return $this->files[$target]; - } - - /** - * Get the source file path for a shared file - * - * @param string $target Shared target file path - * @return string|false source file path or false if not found - */ - public function getSourcePath($target) { - if (!$this->isValid()){ - return false; - } - $source = $this->getFile($target); - if ($source) { - if (!isset($source['fullPath'])) { - \OC\Files\Filesystem::initMountPoints($source['fileOwner']); - $mount = \OC\Files\Filesystem::getMountByNumericId($source['storage']); - if (is_array($mount) && !empty($mount)) { - $this->files[$target]['fullPath'] = $mount[key($mount)]->getMountPoint() . $source['path']; - } else { - $this->files[$target]['fullPath'] = false; - \OCP\Util::writeLog('files_sharing', "Unable to get mount for shared storage '" . $source['storage'] . "' user '" . $source['fileOwner'] . "'", \OCP\Util::ERROR); - } - } - return $this->files[$target]['fullPath']; - } - return false; + return $this->newShare->getNodeId(); } /** @@ -180,7 +137,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { if (!$this->isValid()) { return 0; } - $permissions = $this->share['permissions']; + $permissions = $this->newShare->getPermissions(); // part files and the mount point always have delete permissions if ($target === '' || pathinfo($target, PATHINFO_EXTENSION) === 'part') { $permissions |= \OCP\Constants::PERMISSION_DELETE; @@ -193,84 +150,6 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { return $permissions; } - public function mkdir($path) { - if ($path == '' || $path == '/' || !$this->isCreatable(dirname($path))) { - return false; - } else if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->mkdir($internalPath); - } - return false; - } - - /** - * Delete the directory if DELETE permission is granted - * - * @param string $path - * @return boolean - */ - public function rmdir($path) { - - // never delete a share mount point - if (empty($path)) { - return false; - } - - if (($source = $this->getSourcePath($path)) && $this->isDeletable($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->rmdir($internalPath); - } - return false; - } - - public function opendir($path) { - $source = $this->getSourcePath($path); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->opendir($internalPath); - } - - public function is_dir($path) { - $source = $this->getSourcePath($path); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->is_dir($internalPath); - } - - public function is_file($path) { - if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->is_file($internalPath); - } - return false; - } - - public function stat($path) { - if ($path == '' || $path == '/') { - $stat['size'] = $this->filesize($path); - $stat['mtime'] = $this->filemtime($path); - return $stat; - } else if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->stat($internalPath); - } - return false; - } - - public function filetype($path) { - if ($path == '' || $path == '/') { - return 'dir'; - } else if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->filetype($internalPath); - } - return false; - } - - public function filesize($path) { - $source = $this->getSourcePath($path); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->filesize($internalPath); - } - public function isCreatable($path) { return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_CREATE); } @@ -301,127 +180,6 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { return ($this->getPermissions($path) & \OCP\Constants::PERMISSION_SHARE); } - public function file_exists($path) { - if ($path == '' || $path == '/') { - return true; - } else if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->file_exists($internalPath); - } - return false; - } - - public function filemtime($path) { - $source = $this->getSourcePath($path); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->filemtime($internalPath); - } - - public function file_get_contents($path) { - $source = $this->getSourcePath($path); - if ($source) { - $info = array( - 'target' => $this->getMountPoint() . $path, - 'source' => $source, - ); - \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->file_get_contents($internalPath); - } - } - - public function file_put_contents($path, $data) { - if ($source = $this->getSourcePath($path)) { - // Check if permission is granted - if (($this->file_exists($path) && !$this->isUpdatable($path)) - || ($this->is_dir($path) && !$this->isCreatable($path)) - ) { - return false; - } - $info = array( - 'target' => $this->getMountPoint() . '/' . $path, - 'source' => $source, - ); - \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - $result = $storage->file_put_contents($internalPath, $data); - return $result; - } - return false; - } - - /** - * Delete the file if DELETE permission is granted - * - * @param string $path - * @return boolean - */ - public function unlink($path) { - - // never delete a share mount point - if (empty($path)) { - return false; - } - if ($source = $this->getSourcePath($path)) { - if ($this->isDeletable($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->unlink($internalPath); - } - } - return false; - } - - public function rename($path1, $path2) { - $this->init(); - // we need the paths relative to data/user/files - $relPath1 = $this->getMountPoint() . '/' . $path1; - $relPath2 = $this->getMountPoint() . '/' . $path2; - $pathinfo = pathinfo($relPath1); - - $isPartFile = (isset($pathinfo['extension']) && $pathinfo['extension'] === 'part'); - $targetExists = $this->file_exists($path2); - $sameFolder = (dirname($relPath1) === dirname($relPath2)); - if ($targetExists || ($sameFolder && !$isPartFile)) { - // note that renaming a share mount point is always allowed - if (!$this->isUpdatable('')) { - return false; - } - } else { - if (!$this->isCreatable('')) { - return false; - } - } - - - /** - * @var \OC\Files\Storage\Storage $sourceStorage - */ - list($sourceStorage, $sourceInternalPath) = $this->resolvePath($path1); - /** - * @var \OC\Files\Storage\Storage $targetStorage - */ - list($targetStorage, $targetInternalPath) = $this->resolvePath($path2); - - return $targetStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); - } - - public function copy($path1, $path2) { - // Copy the file if CREATE permission is granted - if ($this->isCreatable(dirname($path2))) { - /** - * @var \OC\Files\Storage\Storage $sourceStorage - */ - list($sourceStorage, $sourceInternalPath) = $this->resolvePath($path1); - /** - * @var \OC\Files\Storage\Storage $targetStorage - */ - list($targetStorage, $targetInternalPath) = $this->resolvePath($path2); - - return $targetStorage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); - } - return false; - } - public function fopen($path, $mode) { if ($source = $this->getSourcePath($path)) { switch ($mode) { @@ -465,43 +223,34 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { 'mode' => $mode, ); \OCP\Util::emitHook('\OC\Files\Storage\Shared', 'fopen', $info); - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->fopen($internalPath, $mode); + return parent::fopen($path, $mode); } return false; } - public function getMimeType($path) { - if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->getMimeType($internalPath); - } - return false; - } - - public function free_space($path) { - $source = $this->getSourcePath($path); - if ($source) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->free_space($internalPath); - } - return \OCP\Files\FileInfo::SPACE_UNKNOWN; - } + /** + * see http://php.net/manual/en/function.rename.php + * + * @param string $path1 + * @param string $path2 + * @return bool + */ + public function rename($path1, $path2) { + $isPartFile = pathinfo($path1, PATHINFO_EXTENSION) === 'part'; + $targetExists = $this->file_exists($path2); + $sameFodler = dirname($path1) === dirname($path2); - public function getLocalFile($path) { - if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->getLocalFile($internalPath); + if ($targetExists || ($sameFodler && !$isPartFile)) { + if (!$this->isUpdatable('')) { + return false; + } + } else { + if (!$this->isCreatable('')) { + return false; + } } - return false; - } - public function touch($path, $mtime = null) { - if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->touch($internalPath, $mtime); - } - return false; + return parent::rename($path1, $path2); } /** @@ -510,33 +259,21 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { * @return string */ public function getMountPoint() { - return $this->share['file_target']; - } - - public function setMountPoint($path) { - $this->share['file_target'] = $path; - } - - public function getShareType() { - return $this->share['share_type']; + return $this->newShare->getTarget(); } /** - * does the group share already has a user specific unique name - * - * @return bool + * @param string $path */ - public function uniqueNameSet() { - return (isset($this->share['unique_name']) && $this->share['unique_name']); + public function setMountPoint($path) { + $this->newShare->setTarget($path); } /** - * the share now uses a unique name of this user - * - * @brief the share now uses a unique name of this user + * @return int */ - public function setUniqueName() { - $this->share['unique_name'] = true; + public function getShareType() { + return $this->newShare->getShareType(); } /** @@ -545,7 +282,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { * @return integer unique share ID */ public function getShareId() { - return $this->share['id']; + return $this->newShare->getId(); } /** @@ -554,14 +291,14 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { * @return string */ public function getSharedFrom() { - return $this->share['uid_owner']; + return $this->newShare->getShareOwner(); } /** - * @return array + * @return \OCP\Share\IShare */ public function getShare() { - return $this->share; + return $this->newShare; } /** @@ -570,11 +307,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { * @return string */ public function getItemType() { - return $this->share['item_type']; - } - - public function hasUpdated($path, $time) { - return $this->filemtime($path) > $time; + return $this->newShare->getNodeType(); } public function getCache($path = '', $storage = null) { @@ -603,22 +336,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { } public function getOwner($path) { - if ($path == '') { - $path = $this->getMountPoint(); - } - $source = $this->getFile($path); - if ($source) { - return $source['fileOwner']; - } - return false; - } - - public function getETag($path) { - if ($source = $this->getSourcePath($path)) { - list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source); - return $storage->getETag($internalPath); - } - return null; + return $this->newShare->getShareOwner(); } /** @@ -627,50 +345,8 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { * @return bool */ public function unshareStorage() { - $result = true; - if (!empty($this->share['grouped'])) { - foreach ($this->share['grouped'] as $share) { - $result = $result && \OCP\Share::unshareFromSelf($share['item_type'], $share['file_target']); - } - } - $result = $result && \OCP\Share::unshareFromSelf($this->getItemType(), $this->getMountPoint()); - - return $result; - } - - /** - * Resolve the path for the source of the share - * - * @param string $path - * @return array - */ - public function resolvePath($path) { - $source = $this->getSourcePath($path); - return \OC\Files\Filesystem::resolvePath($source); - } - - /** - * @param \OCP\Files\Storage $sourceStorage - * @param string $sourceInternalPath - * @param string $targetInternalPath - * @return bool - */ - public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { - /** @var \OCP\Files\Storage $targetStorage */ - list($targetStorage, $targetInternalPath) = $this->resolvePath($targetInternalPath); - return $targetStorage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); - } - - /** - * @param \OCP\Files\Storage $sourceStorage - * @param string $sourceInternalPath - * @param string $targetInternalPath - * @return bool - */ - public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { - /** @var \OCP\Files\Storage $targetStorage */ - list($targetStorage, $targetInternalPath) = $this->resolvePath($targetInternalPath); - return $targetStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); + \OC::$server->getShareManager()->deleteFromSelf($this->newShare, $this->user); + return true; } /** @@ -685,7 +361,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { $targetStorage->acquireLock($targetInternalPath, $type, $provider); // lock the parent folders of the owner when locking the share as recipient if ($path === '') { - $sourcePath = $this->ownerView->getPath($this->share['file_source']); + $sourcePath = $this->ownerView->getPath($this->newShare->getNodeId()); $this->ownerView->lockFile(dirname($sourcePath), ILockingProvider::LOCK_SHARED, true); } } @@ -701,7 +377,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { $targetStorage->releaseLock($targetInternalPath, $type, $provider); // unlock the parent folders of the owner when unlocking the share as recipient if ($path === '') { - $sourcePath = $this->ownerView->getPath($this->share['file_source']); + $sourcePath = $this->ownerView->getPath($this->newShare->getNodeId()); $this->ownerView->unlockFile(dirname($sourcePath), ILockingProvider::LOCK_SHARED, true); } } @@ -735,14 +411,8 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { // shares do not participate in availability logic } - public function isLocal() { - $this->init(); - $ownerPath = $this->ownerView->getPath($this->share['item_source']); - list($targetStorage) = $this->ownerView->resolvePath($ownerPath); - return $targetStorage->isLocal(); - } - public function getSourceStorage() { return $this->sourceStorage; } + } diff --git a/apps/files_sharing/lib/updater.php b/apps/files_sharing/lib/updater.php index 10da2462807..0e6433b1122 100644 --- a/apps/files_sharing/lib/updater.php +++ b/apps/files_sharing/lib/updater.php @@ -81,8 +81,10 @@ class Shared_Updater { $src = $userFolder->get($path); - $type = $src instanceof \OCP\Files\File ? 'file' : 'folder'; - $shares = \OCP\Share::getItemShared($type, $src->getId()); + $shareManager = \OC::$server->getShareManager(); + + $shares = $shareManager->getSharesBy($userFolder->getOwner()->getUID(), \OCP\Share::SHARE_TYPE_USER, $src, false, -1); + $shares = array_merge($shares, $shareManager->getSharesBy($userFolder->getOwner()->getUID(), \OCP\Share::SHARE_TYPE_GROUP, $src, false, -1)); // If the path we move is not a share we don't care if (empty($shares)) { @@ -96,14 +98,13 @@ class Shared_Updater { return; } - $parenShare = $dstMount->getShare(); + $newOwner = $dstMount->getShare()->getShareOwner(); + //Ownership is moved over foreach ($shares as $share) { - $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); - $qb->update('share') - ->set('parent', $qb->createNamedParameter($parenShare['id'])) - ->where($qb->expr()->eq('id', $qb->createNamedParameter($share['id']))) - ->execute(); + /** @var \OCP\Share\IShare $share */ + $share->setShareOwner($newOwner); + $shareManager->updateShare($share); } } diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index ae00b01dca2..cb7fe1103b5 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -8,7 +8,6 @@ OCP\Util::addStyle('files_sharing', 'mobile'); OCP\Util::addScript('files_sharing', 'public'); OCP\Util::addScript('files', 'fileactions'); OCP\Util::addScript('files', 'fileactionsmenu'); -OCP\Util::addScript('files', 'jquery.iframe-transport'); OCP\Util::addScript('files', 'jquery.fileupload'); // JS required for folders diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php index 08f8b6f243d..0a61e9a9fa2 100644 --- a/apps/files_sharing/tests/api.php +++ b/apps/files_sharing/tests/api.php @@ -40,9 +40,6 @@ class Test_Files_Sharing_Api extends TestCase { private static $tempStorage; - /** @var \OCP\Share\IManager */ - private $shareManager; - /** @var \OCP\Files\Folder */ private $userFolder; @@ -66,7 +63,6 @@ class Test_Files_Sharing_Api extends TestCase { $this->view->file_put_contents($this->folder.$this->filename, $this->data); $this->view->file_put_contents($this->folder . $this->subfolder . $this->filename, $this->data); - $this->shareManager = \OC::$server->getShareManager(); $this->userFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1); } @@ -1195,10 +1191,13 @@ class Test_Files_Sharing_Api extends TestCase { $fileInfo = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31); - - $this->assertTrue($result); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); // user2 shares a file from the folder as link \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); @@ -1215,14 +1214,20 @@ class Test_Files_Sharing_Api extends TestCase { $this->assertTrue($fileInfo2 instanceof \OC\Files\FileInfo); + $pass = true; try { - $result2 = \OCP\Share::shareItem('folder', $fileInfo2['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER3, 31); + $this->share( + \OCP\Share::SHARE_TYPE_USER, + 'localDir', + self::TEST_FILES_SHARING_API_USER2, + self::TEST_FILES_SHARING_API_USER3, + \OCP\Constants::PERMISSION_ALL + ); } catch (\Exception $e) { - $result2 = false; + $pass = false; } - $this->assertFalse($result2); + $this->assertFalse($pass); //cleanup @@ -1232,8 +1237,7 @@ class Test_Files_Sharing_Api extends TestCase { \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1); - \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); + $this->shareManager->deleteShare($share); } /** @@ -1264,10 +1268,13 @@ class Test_Files_Sharing_Api extends TestCase { $fileInfo = $this->view->getFileInfo($this->folder); // user 1 shares the mount point folder with user2 - $result = \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31); - - $this->assertTrue($result); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); // user2: check that mount point name appears correctly \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); @@ -1279,8 +1286,7 @@ class Test_Files_Sharing_Api extends TestCase { \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1); - \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); + $this->shareManager->deleteShare($share); \OC_Hook::clear('OC_Filesystem', 'post_initMountPoints', '\Test_Files_Sharing_Api', 'initTestMountPointsHook'); } diff --git a/apps/files_sharing/tests/cache.php b/apps/files_sharing/tests/cache.php index fcc5a343a03..dd727c1c6f2 100644 --- a/apps/files_sharing/tests/cache.php +++ b/apps/files_sharing/tests/cache.php @@ -26,27 +26,6 @@ */ use OCA\Files_sharing\Tests\TestCase; -/** - * ownCloud - * - * @author Vincent Petry, Bjoern Schiessle - * @copyright 2014 Vincent Petry <pvince81@owncloud.com> - * 2014 Bjoern Schiessle <schiessle@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 Test_Files_Sharing_Cache @@ -72,9 +51,14 @@ class Test_Files_Sharing_Cache extends TestCase { /** @var \OC\Files\Storage\Storage */ protected $sharedStorage; + /** @var \OCP\Share\IManager */ + protected $shareManager; + protected function setUp() { parent::setUp(); + $this->shareManager = \OC::$server->getShareManager(); + \OC_User::setDisplayName(self::TEST_FILES_SHARING_API_USER1, 'User One'); \OC_User::setDisplayName(self::TEST_FILES_SHARING_API_USER2, 'User Two'); @@ -101,13 +85,25 @@ class Test_Files_Sharing_Cache extends TestCase { $this->ownerStorage->getScanner()->scan(''); // share "shareddir" with user2 - $fileinfo = $this->view->getFileInfo('container/shareddir'); - \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - - $fileinfo = $this->view->getFileInfo('container/shared single file.txt'); - \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); + $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1); + + $node = $rootFolder->get('container/shareddir'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $this->shareManager->createShare($share); + + $node = $rootFolder->get('container/shared single file.txt'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL & ~(\OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_DELETE)); + $this->shareManager->createShare($share); // login as user2 self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -125,13 +121,10 @@ class Test_Files_Sharing_Cache extends TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $fileinfo = $this->view->getFileInfo('container/shareddir'); - \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - - $fileinfo = $this->view->getFileInfo('container/shared single file.txt'); - \OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); + $shares = $this->shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, \OCP\Share::SHARE_TYPE_USER); + foreach ($shares as $share) { + $this->shareManager->deleteShare($share); + } $this->view->deleteAll('container'); @@ -392,9 +385,15 @@ class Test_Files_Sharing_Cache extends TestCase { function testGetFolderContentsWhenSubSubdirShared() { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $fileinfo = $this->view->getFileInfo('container/shareddir/subdir'); - \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER3, 31); + $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1); + $node = $rootFolder->get('container/shareddir/subdir'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER3) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $share = $this->shareManager->createShare($share); self::loginHelper(self::TEST_FILES_SHARING_API_USER3); @@ -430,8 +429,7 @@ class Test_Files_Sharing_Cache extends TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER3); + $this->shareManager->deleteShare($share); } /** @@ -470,7 +468,17 @@ class Test_Files_Sharing_Cache extends TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); \OC\Files\Filesystem::file_put_contents('test.txt', 'foo'); $info = \OC\Files\Filesystem::getFileInfo('test.txt'); - \OCP\Share::shareItem('file', $info->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_ALL); + + $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1); + $node = $rootFolder->get('test.txt'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE); + $this->shareManager->createShare($share); + \OC_Util::tearDownFS(); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -491,7 +499,16 @@ class Test_Files_Sharing_Cache extends TestCase { \OC\Files\Filesystem::touch('foo/bar/test.txt'); $folderInfo = \OC\Files\Filesystem::getFileInfo('foo'); $fileInfo = \OC\Files\Filesystem::getFileInfo('foo/bar/test.txt'); - \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_ALL); + + $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1); + $node = $rootFolder->get('foo'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $this->shareManager->createShare($share); \OC_Util::tearDownFS(); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); diff --git a/apps/files_sharing/tests/etagpropagation.php b/apps/files_sharing/tests/etagpropagation.php index 55972dd9221..2f3604e63cd 100644 --- a/apps/files_sharing/tests/etagpropagation.php +++ b/apps/files_sharing/tests/etagpropagation.php @@ -50,13 +50,15 @@ class EtagPropagation extends PropagationTestCase { $this->fileIds[self::TEST_FILES_SHARING_API_USER3] = []; $this->fileIds[self::TEST_FILES_SHARING_API_USER4] = []; + $rootFolder = \OC::$server->getRootFolder(); + $shareManager = \OC::$server->getShareManager(); + $this->rootView = new View(''); $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1); $view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files'); $view1->mkdir('/sub1/sub2/folder/inside'); $view1->mkdir('/directReshare'); $view1->mkdir('/sub1/sub2/folder/other'); - $view1->mkdir('/sub1/sub2/folder/other'); $view1->file_put_contents('/foo.txt', 'foobar'); $view1->file_put_contents('/sub1/sub2/folder/file.txt', 'foobar'); $view1->file_put_contents('/sub1/sub2/folder/inside/file.txt', 'foobar'); @@ -64,30 +66,90 @@ class EtagPropagation extends PropagationTestCase { $this->assertInstanceOf('\OC\Files\FileInfo', $folderInfo); $fileInfo = $view1->getFileInfo('/foo.txt'); $this->assertInstanceOf('\OC\Files\FileInfo', $fileInfo); - \OCP\Share::shareItem('file', $fileInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); - \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); - \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER3, 31); + + $node = $rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER1) + ->get('/foo.txt'); + $share = $shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE); + $shareManager->createShare($share); + $node = $rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER1) + ->get('/sub1/sub2/folder'); + $share = $shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $shareManager->createShare($share); + $share = $shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER3) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $shareManager->createShare($share); + $folderInfo = $view1->getFileInfo('/directReshare'); $this->assertInstanceOf('\OC\Files\FileInfo', $folderInfo); - \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); + + $node = $rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER1) + ->get('/directReshare'); + $share = $shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $shareManager->createShare($share); + $this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1'] = $view1->getFileInfo('sub1')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1/sub2'] = $view1->getFileInfo('sub1/sub2')->getId(); + /* + * User 2 + */ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2); $view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); $view2->mkdir('/sub1/sub2'); $view2->rename('/folder', '/sub1/sub2/folder'); $insideInfo = $view2->getFileInfo('/sub1/sub2/folder/inside'); $this->assertInstanceOf('\OC\Files\FileInfo', $insideInfo); - \OCP\Share::shareItem('folder', $insideInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER4, 31); + + $node = $rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER2) + ->get('/sub1/sub2/folder/inside'); + $share = $shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER4) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $shareManager->createShare($share); + $folderInfo = $view2->getFileInfo('/directReshare'); $this->assertInstanceOf('\OC\Files\FileInfo', $folderInfo); - \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER4, 31); + + $node = $rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER2) + ->get('/directReshare'); + $share = $shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER4) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $shareManager->createShare($share); + $this->fileIds[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1'] = $view2->getFileInfo('sub1')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1/sub2'] = $view2->getFileInfo('sub1/sub2')->getId(); + /* + * User 3 + */ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER3); $view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files'); $view3->mkdir('/sub1/sub2'); @@ -96,6 +158,9 @@ class EtagPropagation extends PropagationTestCase { $this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1'] = $view3->getFileInfo('sub1')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1/sub2'] = $view3->getFileInfo('sub1/sub2')->getId(); + /* + * User 4 + */ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER4); $view4 = new View('/' . self::TEST_FILES_SHARING_API_USER4 . '/files'); $view4->mkdir('/sub1/sub2'); @@ -108,6 +173,7 @@ class EtagPropagation extends PropagationTestCase { $this->loginAsUser($user); foreach ($ids as $id) { $path = $this->rootView->getPath($id); + $ls = $this->rootView->getDirectoryContent($path); $this->fileEtags[$id] = $this->rootView->getFileInfo($path)->getEtag(); } } @@ -202,19 +268,40 @@ class EtagPropagation extends PropagationTestCase { $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1); $folderInfo = $this->rootView->getFileInfo('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/sub1/sub2/folder'); $this->assertInstanceOf('\OC\Files\FileInfo', $folderInfo); - $folderId = $folderInfo->getId(); - $this->assertTrue( - \OCP\Share::unshare( - 'folder', - $folderId, - \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2 - ) - ); + + $node = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1)->get('/sub1/sub2/folder'); + $shareManager = \OC::$server->getShareManager(); + $shares = $shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, \OCP\Share::SHARE_TYPE_USER, $node, true); + + foreach ($shares as $share) { + if ($share->getSharedWith() === self::TEST_FILES_SHARING_API_USER2) { + $shareManager->deleteShare($share); + } + } + $this->assertEtagsForFoldersChanged([ // direct recipient affected self::TEST_FILES_SHARING_API_USER2, - // reshare recipient affected + ]); + + $this->assertAllUnchanged(); + } + + public function testOwnerUnsharesFlatReshares() { + $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1); + $folderInfo = $this->rootView->getFileInfo('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/sub1/sub2/folder/inside'); + $this->assertInstanceOf('\OC\Files\FileInfo', $folderInfo); + + $node = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1)->get('/sub1/sub2/folder/inside'); + $shareManager = \OC::$server->getShareManager(); + $shares = $shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, \OCP\Share::SHARE_TYPE_USER, $node, true); + + foreach ($shares as $share) { + $shareManager->deleteShare($share); + } + + $this->assertEtagsForFoldersChanged([ + // direct recipient affected self::TEST_FILES_SHARING_API_USER4, ]); @@ -223,14 +310,13 @@ class EtagPropagation extends PropagationTestCase { public function testRecipientUnsharesFromSelf() { $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2); + $ls = $this->rootView->getDirectoryContent('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub1/sub2/'); $this->assertTrue( $this->rootView->unlink('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub1/sub2/folder') ); $this->assertEtagsForFoldersChanged([ // direct recipient affected self::TEST_FILES_SHARING_API_USER2, - // reshare recipient affected - self::TEST_FILES_SHARING_API_USER4, ]); $this->assertAllUnchanged(); @@ -240,8 +326,11 @@ class EtagPropagation extends PropagationTestCase { $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2); Filesystem::file_put_contents('/sub1/sub2/folder/asd.txt', 'bar'); $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]); - $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2, - self::TEST_FILES_SHARING_API_USER3]); + $this->assertEtagsForFoldersChanged([ + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + self::TEST_FILES_SHARING_API_USER3 + ]); $this->assertAllUnchanged(); } @@ -350,14 +439,21 @@ class EtagPropagation extends PropagationTestCase { } public function testEtagChangeOnPermissionsChange() { - $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1); + $userFolder = $this->rootFolder->getUserFolder(self::TEST_FILES_SHARING_API_USER1); + $node = $userFolder->get('/sub1/sub2/folder'); - $view = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files'); - $folderInfo = $view->getFileInfo('/sub1/sub2/folder'); + $shares = $this->shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, \OCP\Share::SHARE_TYPE_USER, $node); + /** @var \OCP\Share\IShare[] $shares */ + $shares = array_filter($shares, function(\OCP\Share\IShare $share) { + return $share->getSharedWith() === self::TEST_FILES_SHARING_API_USER2; + }); + $this->assertCount(1, $shares); - \OCP\Share::setPermissions('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 17); + $share = $shares[0]; + $share->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE); + $this->shareManager->updateShare($share); - $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_USER4]); + $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER2]); $this->assertAllUnchanged(); } diff --git a/apps/files_sharing/tests/groupetagpropagation.php b/apps/files_sharing/tests/groupetagpropagation.php index 9f6b1e2f720..aaa81135279 100644 --- a/apps/files_sharing/tests/groupetagpropagation.php +++ b/apps/files_sharing/tests/groupetagpropagation.php @@ -46,18 +46,36 @@ class GroupEtagPropagation extends PropagationTestCase { $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1); $view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files'); $view1->mkdir('/test/sub'); - $folderInfo = $view1->getFileInfo('/test'); - \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_GROUP, 'group1', 31); + + $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + '/test', + self::TEST_FILES_SHARING_API_USER1, + 'group1', + \OCP\Constants::PERMISSION_ALL + ); $this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER1]['test'] = $view1->getFileInfo('test')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER1]['test/sub'] = $view1->getFileInfo('test/sub')->getId(); $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2); $view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); - $folderInfo = $view2->getFileInfo('/test'); - $subFolderInfo = $view2->getFileInfo('/test/sub'); - \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_GROUP, 'group2', 31); - \OCP\Share::shareItem('folder', $subFolderInfo->getId(), \OCP\Share::SHARE_TYPE_GROUP, 'group3', 31); + + $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + '/test', + self::TEST_FILES_SHARING_API_USER2, + 'group2', + \OCP\Constants::PERMISSION_ALL + ); + $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + '/test/sub', + self::TEST_FILES_SHARING_API_USER2, + 'group3', + \OCP\Constants::PERMISSION_ALL + ); + $this->fileIds[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER2]['test'] = $view2->getFileInfo('test')->getId(); $this->fileIds[self::TEST_FILES_SHARING_API_USER2]['test/sub'] = $view2->getFileInfo('test/sub')->getId(); diff --git a/apps/files_sharing/tests/locking.php b/apps/files_sharing/tests/locking.php index ef8b2bb1cd4..932afe006f9 100644 --- a/apps/files_sharing/tests/locking.php +++ b/apps/files_sharing/tests/locking.php @@ -59,7 +59,13 @@ class Locking extends TestCase { Filesystem::file_put_contents('/foo/bar.txt', 'asd'); $fileId = Filesystem::getFileInfo('/foo/bar.txt')->getId(); - \OCP\Share::shareItem('file', $fileId, \OCP\Share::SHARE_TYPE_USER, $this->recipientUid, 31); + $this->share( + \OCP\Share::SHARE_TYPE_USER, + '/foo/bar.txt', + $this->ownerUid, + $this->recipientUid, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); $this->loginAsUser($this->recipientUid); $this->assertTrue(Filesystem::file_exists('bar.txt')); diff --git a/apps/files_sharing/tests/permissions.php b/apps/files_sharing/tests/permissions.php index 43a57266851..c1568ceab0a 100644 --- a/apps/files_sharing/tests/permissions.php +++ b/apps/files_sharing/tests/permissions.php @@ -33,39 +33,25 @@ use OC\Files\View; */ class Test_Files_Sharing_Permissions extends OCA\Files_sharing\Tests\TestCase { - /** - * @var Storage - */ + /** @var Storage */ private $sharedStorageRestrictedShare; - /** - * @var Storage - */ + /** @var Storage */ private $sharedCacheRestrictedShare; - /** - * @var View - */ + /** @var View */ private $secondView; - /** - * @var Storage - */ + /** @var Storage */ private $ownerStorage; - /** - * @var Storage - */ + /** @var Storage */ private $sharedStorage; - /** - * @var Cache - */ + /** @var Cache */ private $sharedCache; - /** - * @var Cache - */ + /** @var Cache */ private $ownerCache; protected function setUp() { @@ -88,12 +74,25 @@ class Test_Files_Sharing_Permissions extends OCA\Files_sharing\Tests\TestCase { $this->ownerStorage->getScanner()->scan(''); // share "shareddir" with user2 - $fileinfo = $this->view->getFileInfo('container/shareddir'); - \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - $fileinfo2 = $this->view->getFileInfo('container/shareddirrestricted'); - \OCP\Share::shareItem('folder', $fileinfo2['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 7); + $rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1); + + $node = $rootFolder->get('container/shareddir'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $this->shareManager->createShare($share); + + $node = $rootFolder->get('container/shareddirrestricted'); + $share = $this->shareManager->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedWith(self::TEST_FILES_SHARING_API_USER2) + ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) + ->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE); + $this->shareManager->createShare($share); // login as user2 self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -113,12 +112,10 @@ class Test_Files_Sharing_Permissions extends OCA\Files_sharing\Tests\TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $fileinfo = $this->view->getFileInfo('container/shareddir'); - \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - $fileinfo2 = $this->view->getFileInfo('container/shareddirrestricted'); - \OCP\Share::unshare('folder', $fileinfo2['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); + $shares = $this->shareManager->getSharesBy(self::TEST_FILES_SHARING_API_USER1, \OCP\Share::SHARE_TYPE_USER); + foreach ($shares as $share) { + $this->shareManager->deleteShare($share); + } $this->view->deleteAll('container'); diff --git a/apps/files_sharing/tests/share.php b/apps/files_sharing/tests/share.php index aad698bcdba..7707cca190f 100644 --- a/apps/files_sharing/tests/share.php +++ b/apps/files_sharing/tests/share.php @@ -75,17 +75,21 @@ class Test_Files_Sharing extends OCA\Files_sharing\Tests\TestCase { \OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup'); \OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER3, 'testGroup'); - $fileinfo = $this->view->getFileInfo($this->filename); - - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing::TEST_FILES_SHARING_API_USER2, 31); - - $this->assertTrue($result); - - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, - 'testGroup', 31); + $share1 = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); - $this->assertTrue($result); + $share2 = $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + 'testGroup', + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); @@ -102,123 +106,9 @@ class Test_Files_Sharing extends OCA\Files_sharing\Tests\TestCase { // for user3 nothing should change self::loginHelper(self::TEST_FILES_SHARING_API_USER3); $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); - } - - /** - * if a file was shared as group share and as individual share they should be grouped - */ - public function testGroupingOfShares() { - - $fileinfo = $this->view->getFileInfo($this->filename); - - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, - \Test_Files_Sharing::TEST_FILES_SHARING_API_GROUP1, \OCP\Constants::PERMISSION_READ); - - $this->assertTrue($result); - - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_UPDATE); - - $this->assertTrue($result); - - self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - - $result = \OCP\Share::getItemSharedWith('file', null); - - $this->assertTrue(is_array($result)); - - // test should return exactly one shares created from testCreateShare() - $this->assertSame(1, count($result)); - - $share = reset($result); - $this->assertSame(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE, $share['permissions']); - - \OC\Files\Filesystem::rename($this->filename, $this->filename . '-renamed'); - - $result = \OCP\Share::getItemSharedWith('file', null); - - $this->assertTrue(is_array($result)); - - // test should return exactly one shares created from testCreateShare() - $this->assertSame(1, count($result)); - - $share = reset($result); - $this->assertSame(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE, $share['permissions']); - $this->assertSame($this->filename . '-renamed', $share['file_target']); - - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - - // unshare user share - $result = \OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); - - self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - - $result = \OCP\Share::getItemSharedWith('file', null); - - $this->assertTrue(is_array($result)); - - // test should return the remaining group share - $this->assertSame(1, count($result)); - - $share = reset($result); - // only the group share permissions should be available now - $this->assertSame(\OCP\Constants::PERMISSION_READ, $share['permissions']); - $this->assertSame($this->filename . '-renamed', $share['file_target']); - - } - - /** - * user1 share file to a group and to a user2 in the same group. Then user2 - * unshares the file from self. Afterwards user1 should no longer see the - * single user share to user2. If he re-shares the file to user2 the same target - * then the group share should be used to group the item - */ - public function testShareAndUnshareFromSelf() { - $fileinfo = $this->view->getFileInfo($this->filename); - - // share the file to group1 (user2 is a member of this group) and explicitely to user2 - \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1, \OCP\Constants::PERMISSION_ALL); - \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_ALL); - - // user1 should have to shared files - $shares = \OCP\Share::getItemsShared('file'); - $this->assertSame(2, count($shares)); - - // user2 should have two files "welcome.txt" and the shared file, - // both the group share and the single share of the same file should be - // grouped to one file - \Test_Files_Sharing::loginHelper(self::TEST_FILES_SHARING_API_USER2); - $dirContent = \OC\Files\Filesystem::getDirectoryContent('/'); - $this->assertSame(2, count($dirContent)); - $this->verifyDirContent($dirContent, array('welcome.txt', ltrim($this->filename, '/'))); - - // now user2 deletes the share (= unshare from self) - \OC\Files\Filesystem::unlink($this->filename); - - // only welcome.txt should exists - $dirContent = \OC\Files\Filesystem::getDirectoryContent('/'); - $this->assertSame(1, count($dirContent)); - $this->verifyDirContent($dirContent, array('welcome.txt')); - - // login as user1... - \Test_Files_Sharing::loginHelper(self::TEST_FILES_SHARING_API_USER1); - - // ... now user1 should have only one shared file, the group share - $shares = \OCP\Share::getItemsShared('file'); - $this->assertSame(1, count($shares)); - - // user1 shares a gain the file directly to user2 - \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_ALL); - - // user2 should see again welcome.txt and the shared file - \Test_Files_Sharing::loginHelper(self::TEST_FILES_SHARING_API_USER2); - $dirContent = \OC\Files\Filesystem::getDirectoryContent('/'); - $this->assertSame(2, count($dirContent)); - $this->verifyDirContent($dirContent, array('welcome.txt', ltrim($this->filename, '/'))); - + $this->shareManager->deleteShare($share1); + $this->shareManager->deleteShare($share2); } /** @@ -238,15 +128,23 @@ class Test_Files_Sharing extends OCA\Files_sharing\Tests\TestCase { $fileinfo = $this->view->getFileInfo($this->filename); $folderinfo = $this->view->getFileInfo($this->folder); - $fileShare = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($fileShare); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); \OCA\Files_Sharing\Helper::setShareFolder('/Shared/subfolder'); - $folderShare = \OCP\Share::shareItem('folder', $folderinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($folderShare); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -261,56 +159,59 @@ class Test_Files_Sharing extends OCA\Files_sharing\Tests\TestCase { $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); \OC\Files\Filesystem::file_put_contents('test.txt', 'test'); - $fileInfo = \OC\Files\Filesystem::getFileInfo('test.txt'); - - $this->assertTrue( - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, self::TEST_FILES_SHARING_API_GROUP1, 23) + $share = $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + 'test.txt', + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_GROUP1, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE ); $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); - $items = \OCP\Share::getItemsSharedWith('file'); - $this->assertSame('/test.txt' ,$items[0]['file_target']); - $this->assertSame(23, $items[0]['permissions']); + $shares = $this->shareManager->getSharedWith(self::TEST_FILES_SHARING_API_USER2, \OCP\Share::SHARE_TYPE_GROUP); + $share = $shares[0]; + $this->assertSame('/test.txt' ,$share->getTarget()); + $this->assertSame(19, $share->getPermissions()); \OC\Files\Filesystem::rename('test.txt', 'new test.txt'); - $items = \OCP\Share::getItemsSharedWith('file'); - $this->assertSame('/new test.txt' ,$items[0]['file_target']); - $this->assertSame(23, $items[0]['permissions']); + $shares = $this->shareManager->getSharedWith(self::TEST_FILES_SHARING_API_USER2, \OCP\Share::SHARE_TYPE_GROUP); + $share = $shares[0]; + $this->assertSame('/new test.txt' ,$share->getTarget()); + $this->assertSame(19, $share->getPermissions()); - $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); - \OCP\Share::setPermissions('file', $items[0]['item_source'], $items[0]['share_type'], $items[0]['share_with'], 3); + $share->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE); + $this->shareManager->updateShare($share); $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); - $items = \OCP\Share::getItemsSharedWith('file'); + $shares = $this->shareManager->getSharedWith(self::TEST_FILES_SHARING_API_USER2, \OCP\Share::SHARE_TYPE_GROUP); + $share = $shares[0]; - $this->assertSame('/new test.txt' ,$items[0]['file_target']); - $this->assertSame(3, $items[0]['permissions']); + $this->assertSame('/new test.txt' ,$share->getTarget()); + $this->assertSame(3, $share->getPermissions()); } /** * shared files should never have delete permissions * @dataProvider dataProviderTestFileSharePermissions */ - public function testFileSharePermissions($permission, $expectedPermissions) { - - $fileinfo = $this->view->getFileInfo($this->filename); - - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing::TEST_FILES_SHARING_API_USER2, $permission); - - $this->assertTrue($result); - - $result = \OCP\Share::getItemShared('file', null); - - $this->assertTrue(is_array($result)); - - // test should return exactly one shares created from testCreateShare() - $this->assertSame(1, count($result), 'more then one share found'); + public function testFileSharePermissions($permission, $expectedvalid) { + + $pass = true; + try { + $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + $permission + ); + } catch (\Exception $e) { + $pass = false; + } - $share = reset($result); - $this->assertSame($expectedPermissions, $share['permissions']); + $this->assertEquals($expectedvalid, $pass); } public function dataProviderTestFileSharePermissions() { @@ -321,22 +222,23 @@ class Test_Files_Sharing extends OCA\Files_sharing\Tests\TestCase { $permission6 = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE; return array( - array($permission1, \OCP\Constants::PERMISSION_ALL & ~\OCP\Constants::PERMISSION_DELETE), - array($permission3, $permission3), - array($permission4, $permission4), - array($permission5, $permission3), - array($permission6, $permission4), + array($permission1, false), + array($permission3, true), + array($permission4, true), + array($permission5, false), + array($permission6, false), ); } public function testFileOwner() { - $fileinfo = $this->view->getFileInfo($this->filename); - - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - \Test_Files_Sharing::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_ALL); - - $this->assertTrue($result); + $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ + ); $this->loginHelper(\Test_Files_Sharing::TEST_FILES_SHARING_API_USER2); @@ -344,135 +246,4 @@ class Test_Files_Sharing extends OCA\Files_sharing\Tests\TestCase { $this->assertSame(\Test_Files_Sharing::TEST_FILES_SHARING_API_USER1, $info->getOwner()->getUID()); } - - /** - * @dataProvider dataProviderGetUsersSharingFile - * - * @param string $groupName name of group to share with - * @param bool $includeOwner whether to include the owner in the result - * @param bool $includePaths whether to include paths in the result - * @param array $expectedResult expected result of the API call - */ - public function testGetUsersSharingFile($groupName, $includeOwner, $includePaths, $expectedResult) { - - $fileinfo = $this->view->getFileInfo($this->folder); - - $result = \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, - $groupName, \OCP\Constants::PERMISSION_READ); - $this->assertTrue($result); - - // public share - $result = \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, - null, \OCP\Constants::PERMISSION_READ); - $this->assertNotNull($result); // returns the token! - - // owner renames after sharing - $this->view->rename($this->folder, $this->folder . '_owner_renamed'); - - self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - - $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); - $user2View->rename($this->folder, $this->folder . '_renamed'); - - $ownerPath = $this->folder . '_owner_renamed'; - $owner = self::TEST_FILES_SHARING_API_USER1; - - $result = \OCP\Share::getUsersSharingFile($ownerPath, $owner, $includeOwner, $includePaths); - - // sort users to make sure it matches - if ($includePaths) { - ksort($result); - } else { - sort($result['users']); - } - - $this->assertEquals( - $expectedResult, - $result - ); - } - - public function dataProviderGetUsersSharingFile() { - // note: "group" contains user1 (the owner), user2 and user3 - // and self::TEST_FILES_SHARING_API_GROUP1 contains only user2 - return [ - // share with group that contains owner - [ - 'group', - false, - false, - [ - 'users' => - [ - // because user1 was in group - self::TEST_FILES_SHARING_API_USER1, - self::TEST_FILES_SHARING_API_USER2, - self::TEST_FILES_SHARING_API_USER3, - ], - 'public' => true, - 'remote' => false, - ], - ], - // share with group that does not contain owner - [ - self::TEST_FILES_SHARING_API_GROUP1, - false, - false, - [ - 'users' => - [ - self::TEST_FILES_SHARING_API_USER2, - ], - 'public' => true, - 'remote' => false, - ], - ], - // share with group that does not contain owner, include owner - [ - self::TEST_FILES_SHARING_API_GROUP1, - true, - false, - [ - 'users' => - [ - self::TEST_FILES_SHARING_API_USER1, - self::TEST_FILES_SHARING_API_USER2, - ], - 'public' => true, - 'remote' => false, - ], - ], - // include paths, with owner - [ - 'group', - true, - true, - [ - self::TEST_FILES_SHARING_API_USER1 => self::TEST_FOLDER_NAME . '_owner_renamed', - self::TEST_FILES_SHARING_API_USER2 => self::TEST_FOLDER_NAME . '_renamed', - self::TEST_FILES_SHARING_API_USER3 => self::TEST_FOLDER_NAME, - ], - ], - // include paths, group without owner - [ - self::TEST_FILES_SHARING_API_GROUP1, - false, - true, - [ - self::TEST_FILES_SHARING_API_USER2 => self::TEST_FOLDER_NAME. '_renamed', - ], - ], - // include paths, include owner, group without owner - [ - self::TEST_FILES_SHARING_API_GROUP1, - true, - true, - [ - self::TEST_FILES_SHARING_API_USER1 => self::TEST_FOLDER_NAME . '_owner_renamed', - self::TEST_FILES_SHARING_API_USER2 => self::TEST_FOLDER_NAME . '_renamed', - ], - ], - ]; - } - } diff --git a/apps/files_sharing/tests/sharedmount.php b/apps/files_sharing/tests/sharedmount.php index e01deeb60f4..48040ab8dc9 100644 --- a/apps/files_sharing/tests/sharedmount.php +++ b/apps/files_sharing/tests/sharedmount.php @@ -49,8 +49,12 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { protected function tearDown() { if ($this->view) { - $this->view->unlink($this->folder); - $this->view->unlink($this->filename); + if ($this->view->file_exists($this->folder)) { + $this->view->unlink($this->folder); + } + if ($this->view->file_exists($this->filename)) { + $this->view->unlink($this->filename); + } } parent::tearDown(); @@ -59,59 +63,46 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { /** * test if the mount point moves up if the parent folder no longer exists */ - function testShareMountLoseParentFolder() { + public function testShareMountLoseParentFolder() { // share to user - $fileinfo = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - - $statement = "UPDATE `*PREFIX*share` SET `file_target` = ? where `share_with` = ?"; - $query = \OCP\DB::prepare($statement); - $arguments = array('/foo/bar' . $this->folder, self::TEST_FILES_SHARING_API_USER2); - $query->execute($arguments); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL); - $query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share`'); - $result = $query->execute(); + $share->setTarget('/foo/bar' . $this->folder); + $this->shareManager->moveShare($share, self::TEST_FILES_SHARING_API_USER2); - $shares = $result->fetchAll(); - - $this->assertSame(1, count($shares)); - - $share = reset($shares); - $this->assertSame('/foo/bar' . $this->folder, $share['file_target']); + $share = $this->shareManager->getShareById($share->getFullId()); + $this->assertSame('/foo/bar' . $this->folder, $share->getTarget()); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - // share should have moved up - $query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share`'); - $result = $query->execute(); - - $shares = $result->fetchAll(); - - $this->assertSame(1, count($shares)); - - $share = reset($shares); - $this->assertSame($this->folder, $share['file_target']); + $share = $this->shareManager->getShareById($share->getFullId()); + $this->assertSame($this->folder, $share->getTarget()); //cleanup self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2); + $this->shareManager->deleteShare($share); $this->view->unlink($this->folder); } /** * @medium */ - function testDeleteParentOfMountPoint() { - + public function testDeleteParentOfMountPoint() { // share to user - $fileinfo = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - - $this->assertTrue($result); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -143,10 +134,14 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { $this->view->unlink($this->folder); } - function testMoveSharedFile() { - $fileinfo = $this->view->getFileInfo($this->filename); - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); + public function testMoveSharedFile() { + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -166,22 +161,27 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { $this->assertTrue(\OC\Files\Filesystem::file_exists($this->filename)); //cleanup - \OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2); + $this->shareManager->deleteShare($share); } /** * share file with a group if a user renames the file the filename should not change * for the other users */ - function testMoveGroupShare () { + public function testMoveGroupShare () { \OC_Group::createGroup('testGroup'); \OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER1, 'testGroup'); \OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup'); \OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER3, 'testGroup'); $fileinfo = $this->view->getFileInfo($this->filename); - $result = \OCP\Share::shareItem('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, - "testGroup", 31); + $share = $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + 'testGroup', + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -202,7 +202,7 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { //cleanup self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - \OCP\Share::unshare('file', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'testGroup'); + $this->shareManager->deleteShare($share); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER1, 'testGroup'); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup'); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER3, 'testGroup'); @@ -214,7 +214,7 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { * @param string $expectedResult * @param bool $exception if a exception is expected */ - function testStripUserFilesPath($path, $expectedResult, $exception) { + public function testStripUserFilesPath($path, $expectedResult, $exception) { $testClass = new DummyTestClassSharedMount(null, null); try { $result = $testClass->stripUserFilesPathDummy($path); @@ -228,7 +228,7 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { } } - function dataProviderTestStripUserFilesPath() { + public function dataProviderTestStripUserFilesPath() { return array( array('/user/files/foo.txt', '/foo.txt', false), array('/user/files/folder/foo.txt', '/folder/foo.txt', false), @@ -239,7 +239,7 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { ); } - function dataPermissionMovedGroupShare() { + public function dataPermissionMovedGroupShare() { $data = []; $powerset = function($permissions) { @@ -256,7 +256,6 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { //Generate file permissions $permissions = [ \OCP\Constants::PERMISSION_UPDATE, - \OCP\Constants::PERMISSION_CREATE, \OCP\Constants::PERMISSION_SHARE, ]; @@ -321,54 +320,45 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { \OC_Group::addToGroup(self::TEST_FILES_SHARING_API_USER3, 'testGroup'); // Share item with group - $fileinfo = $this->view->getFileInfo($path); - $this->assertTrue( - \OCP\Share::shareItem($type, $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, "testGroup", $beforePerm) + $share = $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + $path, + self::TEST_FILES_SHARING_API_USER1, + 'testGroup', + $beforePerm ); // Login as user 2 and verify the item exists self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $this->assertTrue(\OC\Files\Filesystem::file_exists($path)); - $result = \OCP\Share::getItemSharedWithBySource($type, $fileinfo['fileid']); - $this->assertNotEmpty($result); - $this->assertEquals($beforePerm, $result['permissions']); + $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); + $this->assertEquals($beforePerm, $result->getPermissions()); // Now move the item forcing a new entry in the share table \OC\Files\Filesystem::rename($path, "newPath"); $this->assertTrue(\OC\Files\Filesystem::file_exists('newPath')); $this->assertFalse(\OC\Files\Filesystem::file_exists($path)); - // Login as user 1 again and change permissions - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $this->assertTrue( - \OCP\Share::setPermissions($type, $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, "testGroup", $afterPerm) - ); + // change permissions + $share->setPermissions($afterPerm); + $this->shareManager->updateShare($share); // Login as user 3 and verify that the permissions are changed self::loginHelper(self::TEST_FILES_SHARING_API_USER3); - $result = \OCP\Share::getItemSharedWithBySource($type, $fileinfo['fileid']); + $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER3); $this->assertNotEmpty($result); - $this->assertEquals($afterPerm, $result['permissions']); - $groupShareId = $result['id']; + $this->assertEquals($afterPerm, $result->getPermissions()); // Login as user 2 and verify that the permissions are changed self::loginHelper(self::TEST_FILES_SHARING_API_USER2); - $result = \OCP\Share::getItemSharedWithBySource($type, $fileinfo['fileid']); + $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); $this->assertNotEmpty($result); - $this->assertEquals($afterPerm, $result['permissions']); - $this->assertNotEquals($groupShareId, $result['id']); - - // Also verify in the DB - $statement = "SELECT `permissions` FROM `*PREFIX*share` WHERE `id`=?"; - $query = \OCP\DB::prepare($statement); - $result = $query->execute([$result['id']]); - $shares = $result->fetchAll(); - $this->assertCount(1, $shares); - $this->assertEquals($afterPerm, $shares[0]['permissions']); + $this->assertEquals($afterPerm, $result->getPermissions()); + $this->assertEquals('/newPath', $result->getTarget()); //cleanup self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - \OCP\Share::unshare($type, $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'testGroup'); + $this->shareManager->deleteShare($share); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER1, 'testGroup'); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup'); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER3, 'testGroup'); @@ -388,66 +378,44 @@ class Test_Files_Sharing_Mount extends OCA\Files_sharing\Tests\TestCase { // Share item with group $fileinfo = $this->view->getFileInfo($this->folder); - $this->assertTrue( - \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, "testGroup", \OCP\Constants::PERMISSION_READ) + $share = $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + 'testGroup', + \OCP\Constants::PERMISSION_READ ); // Login as user 2 and verify the item exists self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $this->assertTrue(\OC\Files\Filesystem::file_exists($this->folder)); - $result = \OCP\Share::getItemSharedWithBySource('folder', $fileinfo['fileid']); + $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); $this->assertNotEmpty($result); - $this->assertEquals(\OCP\Constants::PERMISSION_READ, $result['permissions']); + $this->assertEquals(\OCP\Constants::PERMISSION_READ, $result->getPermissions()); // Delete the share $this->assertTrue(\OC\Files\Filesystem::rmdir($this->folder)); $this->assertFalse(\OC\Files\Filesystem::file_exists($this->folder)); // Verify we do not get a share - $result = \OCP\Share::getItemSharedWithBySource('folder', $fileinfo['fileid']); - $this->assertEmpty($result); - - // Verify that the permission is correct in the DB - $qb = $connection->getQueryBuilder(); - $qb->select('*') - ->from('share') - ->where($qb->expr()->eq('file_source', $qb->createParameter('fileSource'))) - ->andWhere($qb->expr()->eq('share_type', $qb->createParameter('shareType'))) - ->setParameter(':fileSource', $fileinfo['fileid']) - ->setParameter(':shareType', 2); - $res = $qb->execute()->fetchAll(); - - $this->assertCount(1, $res); - $this->assertEquals(0, $res[0]['permissions']); + $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); + $this->assertEquals(0, $result->getPermissions()); // Login as user 1 again and change permissions self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $this->assertTrue( - \OCP\Share::setPermissions('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, "testGroup", \OCP\Constants::PERMISSION_ALL) - ); + $share->setPermissions(\OCP\Constants::PERMISSION_ALL); + $share = $this->shareManager->updateShare($share); // Login as user 2 and verify self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $this->assertFalse(\OC\Files\Filesystem::file_exists($this->folder)); - $result = \OCP\Share::getItemSharedWithBySource('folder', $fileinfo['fileid']); - $this->assertEmpty($result); + $result = $this->shareManager->getShareById($share->getFullId(), self::TEST_FILES_SHARING_API_USER2); + $this->assertEquals(0, $result->getPermissions()); - $connection = \OC::$server->getDatabaseConnection(); - $qb = $connection->getQueryBuilder(); - $qb->select('*') - ->from('share') - ->where($qb->expr()->eq('file_source', $qb->createParameter('fileSource'))) - ->andWhere($qb->expr()->eq('share_type', $qb->createParameter('shareType'))) - ->setParameter(':fileSource', $fileinfo['fileid']) - ->setParameter(':shareType', 2); - $res = $qb->execute()->fetchAll(); - - $this->assertCount(1, $res); - $this->assertEquals(0, $res[0]['permissions']); + $this->shareManager->deleteShare($share); //cleanup self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'testGroup'); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER1, 'testGroup'); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER2, 'testGroup'); \OC_Group::removeFromGroup(self::TEST_FILES_SHARING_API_USER3, 'testGroup'); diff --git a/apps/files_sharing/tests/sharedstorage.php b/apps/files_sharing/tests/sharedstorage.php index 63f4334103f..19edc44f9b4 100644 --- a/apps/files_sharing/tests/sharedstorage.php +++ b/apps/files_sharing/tests/sharedstorage.php @@ -50,8 +50,12 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { protected function tearDown() { if ($this->view) { - $this->view->unlink($this->folder); - $this->view->unlink($this->filename); + if ($this->view->file_exists($this->folder)) { + $this->view->unlink($this->folder); + } + if ($this->view->file_exists($this->filename)) { + $this->view->unlink($this->filename); + } } \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin'); @@ -64,14 +68,16 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { * * @medium */ - function testParentOfMountPointIsGone() { + public function testParentOfMountPointIsGone() { // share to user - $fileinfo = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - - $this->assertTrue($result); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -107,14 +113,17 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { /** * @medium */ - function testRenamePartFile() { + public function testRenamePartFile() { // share to user - $fileinfo = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); - $this->assertTrue($result); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -139,26 +148,30 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { $this->assertTrue($this->view->file_exists($this->folder . '/foo.txt')); //cleanup - \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); + $this->shareManager->deleteShare($share); } public function testFilesize() { - - $fileinfoFolder = $this->view->getFileInfo($this->folder); - $fileinfoFile = $this->view->getFileInfo($this->filename); - $folderSize = $this->view->filesize($this->folder); $file1Size = $this->view->filesize($this->folder . $this->filename); $file2Size = $this->view->filesize($this->filename); - $result = \OCP\Share::shareItem('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($result); + $share1 = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); + + $share2 = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); - $result = \OCP\Share::shareItem('file', $fileinfoFile['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($result); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -168,21 +181,19 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { $this->assertSame($file2Size, \OC\Files\Filesystem::filesize($this->filename)); //cleanup - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); - $result = \OCP\Share::unshare('file', $fileinfoFile['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); + $this->shareManager->deleteShare($share1); + $this->shareManager->deleteShare($share2); } - function testGetPermissions() { - $fileinfoFolder = $this->view->getFileInfo($this->folder); + public function testGetPermissions() { + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ + ); - $result = \OCP\Share::shareItem('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 1); - $this->assertTrue($result); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -201,18 +212,19 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { //cleanup - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); + $this->shareManager->deleteShare($share); } public function testFopenWithReadOnlyPermission() { $this->view->file_put_contents($this->folder . '/existing.txt', 'foo'); - $fileinfoFolder = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_READ); - $this->assertTrue($result); + + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -232,18 +244,20 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { $this->assertFalse($user2View->unlink($this->folder . '/existing.txt')); //cleanup - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); + $this->shareManager->deleteShare($share); } public function testFopenWithCreateOnlyPermission() { $this->view->file_put_contents($this->folder . '/existing.txt', 'foo'); $fileinfoFolder = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE); - $this->assertTrue($result); + + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -284,11 +298,14 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { public function testFopenWithUpdateOnlyPermission() { $this->view->file_put_contents($this->folder . '/existing.txt', 'foo'); - $fileinfoFolder = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE); - $this->assertTrue($result); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -322,18 +339,19 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { $this->assertFalse($user2View->unlink($this->folder . '/existing-renamed.txt')); //cleanup - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); + $this->shareManager->deleteShare($share); } public function testFopenWithDeleteOnlyPermission() { $this->view->file_put_contents($this->folder . '/existing.txt', 'foo'); - $fileinfoFolder = $this->view->getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_DELETE); - $this->assertTrue($result); + + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_DELETE + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -353,23 +371,28 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { $this->assertTrue($user2View->unlink($this->folder . '/existing.txt')); //cleanup - self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfoFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); + $this->shareManager->deleteShare($share); } - function testMountSharesOtherUser() { - $folderInfo = $this->view->getFileInfo($this->folder); - $fileInfo = $this->view->getFileInfo($this->filename); + public function testMountSharesOtherUser() { $rootView = new \OC\Files\View(''); self::loginHelper(self::TEST_FILES_SHARING_API_USER1); // share 2 different files with 2 different users - \OCP\Share::shareItem('folder', $folderInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER3, 31); + $share1 = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); + $share2 = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->filename, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER3, + \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $this->assertTrue($rootView->file_exists('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/' . $this->folder)); @@ -387,15 +410,21 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { //cleanup self::loginHelper(self::TEST_FILES_SHARING_API_USER1); $this->view->unlink($this->folder); + + $this->shareManager->deleteShare($share1); + $this->shareManager->deleteShare($share2); } public function testCopyFromStorage() { - $folderInfo = $this->view->getFileInfo($this->folder); self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - // share 2 different files with 2 different users - \OCP\Share::shareItem('folder', $folderInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -416,15 +445,19 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); $this->view->unlink($this->folder); + $this->shareManager->deleteShare($share); } public function testMoveFromStorage() { - $folderInfo = $this->view->getFileInfo($this->folder); self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - // share 2 different files with 2 different users - \OCP\Share::shareItem('folder', $folderInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -445,31 +478,40 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); $this->view->unlink($this->folder); + $this->shareManager->deleteShare($share); } public function testNameConflict() { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); $view1 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files'); $view1->mkdir('foo'); - $folderInfo1 = $view1->getFileInfo('foo'); self::loginHelper(self::TEST_FILES_SHARING_API_USER3); $view3 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files'); $view3->mkdir('foo'); - $folderInfo2 = $view3->getFileInfo('foo'); // share a folder with the same name from two different users to the same user self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - \OCP\Share::shareItem('folder', $folderInfo1['fileid'], \OCP\Share::SHARE_TYPE_GROUP, - self::TEST_FILES_SHARING_API_GROUP1, 31); + $share1 = $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + 'foo', + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_GROUP1, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); self::loginHelper(self::TEST_FILES_SHARING_API_USER3); - \OCP\Share::shareItem('folder', $folderInfo2['fileid'], \OCP\Share::SHARE_TYPE_GROUP, - self::TEST_FILES_SHARING_API_GROUP1, 31); + $share2 = $this->share( + \OCP\Share::SHARE_TYPE_GROUP, + 'foo', + self::TEST_FILES_SHARING_API_USER3, + self::TEST_FILES_SHARING_API_GROUP1, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); $view2 = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -482,7 +524,9 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase { /** @var \OC\Files\Storage\Shared $storage */ $storage = $mount->getStorage(); - $source = $storage->getFile(''); - $this->assertEquals(self::TEST_FILES_SHARING_API_USER1, $source['uid_owner']); + $this->assertEquals(self::TEST_FILES_SHARING_API_USER1, $storage->getOwner('')); + + $this->shareManager->deleteShare($share1); + $this->shareManager->deleteShare($share2); } } diff --git a/apps/files_sharing/tests/sizepropagation.php b/apps/files_sharing/tests/sizepropagation.php index 7b7884f3f96..d4062e3a38c 100644 --- a/apps/files_sharing/tests/sizepropagation.php +++ b/apps/files_sharing/tests/sizepropagation.php @@ -43,9 +43,13 @@ class SizePropagation extends TestCase { $ownerView->mkdir('/sharedfolder/subfolder'); $ownerView->file_put_contents('/sharedfolder/subfolder/foo.txt', 'bar'); - $sharedFolderInfo = $ownerView->getFileInfo('/sharedfolder', false); - $this->assertInstanceOf('\OC\Files\FileInfo', $sharedFolderInfo); - \OCP\Share::shareItem('folder', $sharedFolderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER1, 31); + $this->share( + \OCP\Share::SHARE_TYPE_USER, + '/sharedfolder', + self::TEST_FILES_SHARING_API_USER2, + self::TEST_FILES_SHARING_API_USER1, + \OCP\Constants::PERMISSION_ALL + ); $ownerRootInfo = $ownerView->getFileInfo('', false); $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); @@ -76,9 +80,13 @@ class SizePropagation extends TestCase { $ownerView->mkdir('/sharedfolder/subfolder'); $ownerView->file_put_contents('/sharedfolder/subfolder/foo.txt', 'bar'); - $sharedFolderInfo = $ownerView->getFileInfo('/sharedfolder', false); - $this->assertInstanceOf('\OC\Files\FileInfo', $sharedFolderInfo); - \OCP\Share::shareItem('folder', $sharedFolderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER1, 31); + $this->share( + \OCP\Share::SHARE_TYPE_USER, + '/sharedfolder', + self::TEST_FILES_SHARING_API_USER2, + self::TEST_FILES_SHARING_API_USER1, + \OCP\Constants::PERMISSION_ALL + ); $ownerRootInfo = $ownerView->getFileInfo('', false); $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); diff --git a/apps/files_sharing/tests/testcase.php b/apps/files_sharing/tests/testcase.php index ce0a8beeec8..0950c2a62f5 100644 --- a/apps/files_sharing/tests/testcase.php +++ b/apps/files_sharing/tests/testcase.php @@ -59,6 +59,11 @@ abstract class TestCase extends \Test\TestCase { public $folder; public $subfolder; + /** @var \OCP\Share\IManager */ + protected $shareManager; + /** @var \OCP\Files\IRootFolder */ + protected $rootFolder; + public static function setUpBeforeClass() { parent::setUpBeforeClass(); @@ -82,7 +87,7 @@ abstract class TestCase extends \Test\TestCase { $backend->createUser(self::TEST_FILES_SHARING_API_USER4, self::TEST_FILES_SHARING_API_USER4); // create group - $groupBackend = new \OC_Group_Dummy(); + $groupBackend = new \Test\Util\Group\Dummy(); $groupBackend->createGroup(self::TEST_FILES_SHARING_API_GROUP1); $groupBackend->createGroup('group'); $groupBackend->createGroup('group1'); @@ -96,7 +101,6 @@ abstract class TestCase extends \Test\TestCase { $groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER4, 'group3'); $groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_GROUP1); \OC_Group::useBackend($groupBackend); - } protected function setUp() { @@ -107,6 +111,9 @@ abstract class TestCase extends \Test\TestCase { $this->data = 'foobar'; $this->view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files'); + + $this->shareManager = \OC::$server->getShareManager(); + $this->rootFolder = \OC::$server->getRootFolder(); } protected function tearDown() { @@ -201,4 +208,26 @@ abstract class TestCase extends \Test\TestCase { } + /** + * @param int $type The share type + * @param string $path The path to share relative to $initiators root + * @param string $initiator + * @param string $recipient + * @param int $permissions + * @return \OCP\Share\IShare + */ + protected function share($type, $path, $initiator, $recipient, $permissions) { + $userFolder = $this->rootFolder->getUserFolder($initiator); + $node = $userFolder->get($path); + + $share = $this->shareManager->newShare(); + $share->setShareType($type) + ->setSharedWith($recipient) + ->setSharedBy($initiator) + ->setNode($node) + ->setPermissions($permissions); + $share = $this->shareManager->createShare($share); + + return $share; + } } diff --git a/apps/files_sharing/tests/unsharechildren.php b/apps/files_sharing/tests/unsharechildren.php index 1968007be4e..6104dc98080 100644 --- a/apps/files_sharing/tests/unsharechildren.php +++ b/apps/files_sharing/tests/unsharechildren.php @@ -78,14 +78,19 @@ class UnshareChildren extends TestCase { $fileInfo2 = \OC\Files\Filesystem::getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileInfo2->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($result); + $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); self::loginHelper(self::TEST_FILES_SHARING_API_USER2); // one folder should be shared with the user - $sharedFolders = \OCP\Share::getItemsSharedWith('folder'); - $this->assertSame(1, count($sharedFolders)); + $shares = $this->shareManager->getSharedWith(self::TEST_FILES_SHARING_API_USER2, \OCP\Share::SHARE_TYPE_USER); + $this->assertCount(1, $shares); // move shared folder to 'localDir' \OC\Files\Filesystem::mkdir('localDir'); @@ -97,8 +102,8 @@ class UnshareChildren extends TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER2); // after the parent directory was deleted the share should be unshared - $sharedFolders = \OCP\Share::getItemsSharedWith('folder'); - $this->assertTrue(empty($sharedFolders)); + $shares = $this->shareManager->getSharedWith(self::TEST_FILES_SHARING_API_USER2, \OCP\Share::SHARE_TYPE_USER); + $this->assertEmpty($shares); self::loginHelper(self::TEST_FILES_SHARING_API_USER1); diff --git a/apps/files_sharing/tests/updater.php b/apps/files_sharing/tests/updater.php index 67c1642cdd0..53e7fc47665 100644 --- a/apps/files_sharing/tests/updater.php +++ b/apps/files_sharing/tests/updater.php @@ -75,7 +75,13 @@ class Test_Files_Sharing_Updater extends OCA\Files_Sharing\Tests\TestCase { $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder); $this->assertTrue($fileinfo instanceof \OC\Files\FileInfo); - \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); + $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); $view = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); @@ -152,9 +158,14 @@ class Test_Files_Sharing_Updater extends OCA\Files_Sharing\Tests\TestCase { $etagBeforeShareDir = $beforeShareDir->getEtag(); $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); - $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($result); + + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -173,8 +184,7 @@ class Test_Files_Sharing_Updater extends OCA\Files_Sharing\Tests\TestCase { // cleanup $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); + $this->shareManager->deleteShare($share); $config->setSystemValue('share_folder', $oldShareFolder); } @@ -185,8 +195,14 @@ class Test_Files_Sharing_Updater extends OCA\Files_Sharing\Tests\TestCase { function testRename() { $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder); - $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31); - $this->assertTrue($result); + + $share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + $this->folder, + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); $this->loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -210,9 +226,7 @@ class Test_Files_Sharing_Updater extends OCA\Files_Sharing\Tests\TestCase { $this->assertTrue(\OC\Files\Filesystem::file_exists('/newTarget/oldTarget/subfolder/' . $this->folder)); // cleanup - $this->loginHelper(self::TEST_FILES_SHARING_API_USER1); - $result = \OCP\Share::unshare('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2); - $this->assertTrue($result); + $this->shareManager->deleteShare($share); } } diff --git a/apps/files_sharing/tests/watcher.php b/apps/files_sharing/tests/watcher.php index 247fb59f351..19e1bc0b615 100644 --- a/apps/files_sharing/tests/watcher.php +++ b/apps/files_sharing/tests/watcher.php @@ -32,33 +32,27 @@ */ class Test_Files_Sharing_Watcher extends OCA\Files_sharing\Tests\TestCase { - /** - * @var \OC\Files\Storage\Storage - */ + /** @var \OC\Files\Storage\Storage */ private $ownerStorage; - /** - * @var \OC\Files\Cache\Cache - */ + /** @var \OC\Files\Cache\Cache */ private $ownerCache; - /** - * @var \OC\Files\Storage\Storage - */ + /** @var \OC\Files\Storage\Storage */ private $sharedStorage; - /** - * @var \OC\Files\Cache\Cache - */ + /** @var \OC\Files\Cache\Cache */ private $sharedCache; + /** @var \OCP\Share\IShare */ + private $_share; + protected function setUp() { parent::setUp(); self::loginHelper(self::TEST_FILES_SHARING_API_USER1); // prepare user1's dir structure - $textData = "dummy file data\n"; $this->view->mkdir('container'); $this->view->mkdir('container/shareddir'); $this->view->mkdir('container/shareddir/subdir'); @@ -68,9 +62,13 @@ class Test_Files_Sharing_Watcher extends OCA\Files_sharing\Tests\TestCase { $this->ownerStorage->getScanner()->scan(''); // share "shareddir" with user2 - $fileinfo = $this->view->getFileInfo('container/shareddir'); - \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2, 31); + $this->_share = $this->share( + \OCP\Share::SHARE_TYPE_USER, + 'container/shareddir', + self::TEST_FILES_SHARING_API_USER1, + self::TEST_FILES_SHARING_API_USER2, + \OCP\Constants::PERMISSION_ALL + ); // login as user2 self::loginHelper(self::TEST_FILES_SHARING_API_USER2); @@ -89,9 +87,7 @@ class Test_Files_Sharing_Watcher extends OCA\Files_sharing\Tests\TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); if ($this->view) { - $fileinfo = $this->view->getFileInfo('container/shareddir'); - \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - self::TEST_FILES_SHARING_API_USER2); + $this->shareManager->deleteShare($this->_share); $this->view->deleteAll('container'); diff --git a/apps/files_trashbin/js/app.js b/apps/files_trashbin/js/app.js index 771ea90bc16..fd3d5db32ff 100644 --- a/apps/files_trashbin/js/app.js +++ b/apps/files_trashbin/js/app.js @@ -29,7 +29,8 @@ OCA.Trashbin.App = { scrollContainer: $('#app-content'), fileActions: this._createFileActions(), detailsViewEnabled: false, - scrollTo: urlParams.scrollto + scrollTo: urlParams.scrollto, + config: OCA.Files.App.getFilesConfig() } ); }, diff --git a/apps/files_trashbin/tests/storage.php b/apps/files_trashbin/tests/storage.php index afc07ff36c8..5c631770da3 100644 --- a/apps/files_trashbin/tests/storage.php +++ b/apps/files_trashbin/tests/storage.php @@ -261,9 +261,14 @@ class Storage extends \Test\TestCase { $recipientUser = $this->getUniqueId('recipient_'); \OC::$server->getUserManager()->createUser($recipientUser, $recipientUser); - $fileinfo = $this->userView->getFileInfo('share'); - $this->assertTrue(\OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - $recipientUser, 31)); + $node = \OC::$server->getUserFolder($this->user)->get('share'); + $share = \OC::$server->getShareManager()->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedBy($this->user) + ->setSharedWith($recipientUser) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + \OC::$server->getShareManager()->createShare($share); $this->loginAsUser($recipientUser); @@ -309,9 +314,14 @@ class Storage extends \Test\TestCase { $recipientUser = $this->getUniqueId('recipient_'); \OC::$server->getUserManager()->createUser($recipientUser, $recipientUser); - $fileinfo = $this->userView->getFileInfo('share'); - $this->assertTrue(\OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, - $recipientUser, 31)); + $node = \OC::$server->getUserFolder($this->user)->get('share'); + $share = \OC::$server->getShareManager()->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedBy($this->user) + ->setSharedWith($recipientUser) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + \OC::$server->getShareManager()->createShare($share); $this->loginAsUser($recipientUser); diff --git a/apps/files_trashbin/tests/trashbin.php b/apps/files_trashbin/tests/trashbin.php index 8d616b6e8e2..7087da37266 100644 --- a/apps/files_trashbin/tests/trashbin.php +++ b/apps/files_trashbin/tests/trashbin.php @@ -211,9 +211,14 @@ class Test_Trashbin extends \Test\TestCase { \OC\Files\Filesystem::file_put_contents($folder . 'user1-4.txt', 'file4'); //share user1-4.txt with user2 - $fileInfo = \OC\Files\Filesystem::getFileInfo($folder); - $result = \OCP\Share::shareItem('folder', $fileInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_TRASHBIN_USER2, 31); - $this->assertTrue($result); + $node = \OC::$server->getUserFolder(self::TEST_TRASHBIN_USER1)->get($folder); + $share = \OC::$server->getShareManager()->newShare(); + $share->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setNode($node) + ->setSharedBy(self::TEST_TRASHBIN_USER1) + ->setSharedWith(self::TEST_TRASHBIN_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + \OC::$server->getShareManager()->createShare($share); // delete them so that they end up in the trash bin \OC\Files\Filesystem::unlink($folder . 'user1-1.txt'); diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php index 9d0ffb87946..b8e68cfadf7 100644 --- a/apps/files_versions/tests/versions.php +++ b/apps/files_versions/tests/versions.php @@ -297,8 +297,6 @@ class Test_Files_Versioning extends \Test\TestCase { \OC\Files\Filesystem::mkdir('folder1/folder2'); \OC\Files\Filesystem::file_put_contents("folder1/test.txt", "test file"); - $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1'); - $t1 = time(); // second version is two weeks older, this way we make sure that no // version will be expired @@ -314,7 +312,14 @@ class Test_Files_Versioning extends \Test\TestCase { $this->rootView->file_put_contents($v1, 'version1'); $this->rootView->file_put_contents($v2, 'version2'); - \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_VERSIONS_USER2, \OCP\Constants::PERMISSION_ALL); + $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder1'); + $share = \OC::$server->getShareManager()->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedBy(self::TEST_VERSIONS_USER) + ->setSharedWith(self::TEST_VERSIONS_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $share = \OC::$server->getShareManager()->createShare($share); self::loginHelper(self::TEST_VERSIONS_USER2); @@ -332,6 +337,8 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed)); $this->assertTrue($this->rootView->file_exists($v2Renamed)); + + \OC::$server->getShareManager()->deleteShare($share); } public function testMoveFolder() { @@ -373,13 +380,14 @@ class Test_Files_Versioning extends \Test\TestCase { \OC\Files\Filesystem::mkdir('folder1'); $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1'); - \OCP\Share::shareItem( - 'folder', - $fileInfo['fileid'], - \OCP\Share::SHARE_TYPE_USER, - self::TEST_VERSIONS_USER2, - \OCP\Constants::PERMISSION_ALL - ); + $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder1'); + $share = \OC::$server->getShareManager()->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedBy(self::TEST_VERSIONS_USER) + ->setSharedWith(self::TEST_VERSIONS_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $share = \OC::$server->getShareManager()->createShare($share); self::loginHelper(self::TEST_VERSIONS_USER2); $versionsFolder2 = '/' . self::TEST_VERSIONS_USER2 . '/files_versions'; @@ -413,20 +421,22 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed)); $this->assertTrue($this->rootView->file_exists($v2Renamed)); + + \OC::$server->getShareManager()->deleteShare($share); } public function testMoveFolderIntoSharedFolderAsRecipient() { \OC\Files\Filesystem::mkdir('folder1'); - $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1'); - \OCP\Share::shareItem( - 'folder', - $fileInfo['fileid'], - \OCP\Share::SHARE_TYPE_USER, - self::TEST_VERSIONS_USER2, - \OCP\Constants::PERMISSION_ALL - ); + $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder1'); + $share = \OC::$server->getShareManager()->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedBy(self::TEST_VERSIONS_USER) + ->setSharedWith(self::TEST_VERSIONS_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $share = \OC::$server->getShareManager()->createShare($share); self::loginHelper(self::TEST_VERSIONS_USER2); $versionsFolder2 = '/' . self::TEST_VERSIONS_USER2 . '/files_versions'; @@ -462,14 +472,14 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertTrue($this->rootView->file_exists($v1Renamed)); $this->assertTrue($this->rootView->file_exists($v2Renamed)); + + \OC::$server->getShareManager()->deleteShare($share); } public function testRenameSharedFile() { \OC\Files\Filesystem::file_put_contents("test.txt", "test file"); - $fileInfo = \OC\Files\Filesystem::getFileInfo('test.txt'); - $t1 = time(); // second version is two weeks older, this way we make sure that no // version will be expired @@ -486,7 +496,14 @@ class Test_Files_Versioning extends \Test\TestCase { $this->rootView->file_put_contents($v1, 'version1'); $this->rootView->file_put_contents($v2, 'version2'); - \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_VERSIONS_USER2, \OCP\Constants::PERMISSION_ALL); + $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('test.txt'); + $share = \OC::$server->getShareManager()->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedBy(self::TEST_VERSIONS_USER) + ->setSharedWith(self::TEST_VERSIONS_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE); + $share = \OC::$server->getShareManager()->createShare($share); self::loginHelper(self::TEST_VERSIONS_USER2); @@ -504,6 +521,8 @@ class Test_Files_Versioning extends \Test\TestCase { $this->assertFalse($this->rootView->file_exists($v1Renamed)); $this->assertFalse($this->rootView->file_exists($v2Renamed)); + + \OC::$server->getShareManager()->deleteShare($share); } public function testCopy() { @@ -744,15 +763,15 @@ class Test_Files_Versioning extends \Test\TestCase { \OC\Files\Filesystem::mkdir('folder'); \OC\Files\Filesystem::file_put_contents('folder/test.txt', 'test file'); - $fileInfo = \OC\Files\Filesystem::getFileInfo('folder'); - - \OCP\Share::shareItem( - 'folder', - $fileInfo['fileid'], - \OCP\Share::SHARE_TYPE_USER, - self::TEST_VERSIONS_USER2, - \OCP\Constants::PERMISSION_ALL - ); + + $node = \OC::$server->getUserFolder(self::TEST_VERSIONS_USER)->get('folder'); + $share = \OC::$server->getShareManager()->newShare(); + $share->setNode($node) + ->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setSharedBy(self::TEST_VERSIONS_USER) + ->setSharedWith(self::TEST_VERSIONS_USER2) + ->setPermissions(\OCP\Constants::PERMISSION_ALL); + $share = \OC::$server->getShareManager()->createShare($share); $this->loginAsUser(self::TEST_VERSIONS_USER2); @@ -760,6 +779,8 @@ class Test_Files_Versioning extends \Test\TestCase { \OC\Files\Filesystem::getView(), 'folder/test.txt' ); + + \OC::$server->getShareManager()->deleteShare($share); } /** diff --git a/apps/systemtags/js/app.js b/apps/systemtags/js/app.js index d28514358c1..e027c0be123 100644 --- a/apps/systemtags/js/app.js +++ b/apps/systemtags/js/app.js @@ -28,7 +28,8 @@ { id: 'systemtags', scrollContainer: $('#app-content'), - fileActions: this._createFileActions() + fileActions: this._createFileActions(), + config: OCA.Files.App.getFilesConfig() } ); diff --git a/apps/user_ldap/js/wizard/wizardTabGeneric.js b/apps/user_ldap/js/wizard/wizardTabGeneric.js index 21085e3a584..4415172a18c 100644 --- a/apps/user_ldap/js/wizard/wizardTabGeneric.js +++ b/apps/user_ldap/js/wizard/wizardTabGeneric.js @@ -391,7 +391,7 @@ OCA = OCA || {}; */ _setCheckBox: function($element, value) { if(parseInt(value, 10) === 1) { - $element.attr('checked', 'checked'); + $element.prop('checked', 'checked'); } else { $element.removeAttr('checked'); } diff --git a/console.php b/console.php index fc571b03f1e..559c1778f1d 100644 --- a/console.php +++ b/console.php @@ -42,6 +42,11 @@ if (version_compare(PHP_VERSION, '5.4.0') === -1) { return; } +function exceptionHandler($exception) { + echo "An unhandled exception has been thrown:" . PHP_EOL; + echo $exception; + exit(1); +} try { require_once 'lib/base.php'; @@ -53,6 +58,8 @@ try { exit(0); } + set_exception_handler('exceptionHandler'); + if (!OC_Util::runningOnWindows()) { if (!function_exists('posix_getuid')) { echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL; @@ -87,7 +94,7 @@ try { $application->loadCommands(new ArgvInput(), new ConsoleOutput()); $application->run(); } catch (Exception $ex) { - echo "An unhandled exception has been thrown:" . PHP_EOL; - echo $ex; - exit(1); + exceptionHandler($ex); +} catch (Error $ex) { + exceptionHandler($ex); } diff --git a/core/ajax/update.php b/core/ajax/update.php index 4bc1f4faa45..0e6c1176ac1 100644 --- a/core/ajax/update.php +++ b/core/ajax/update.php @@ -37,13 +37,13 @@ $eventSource = \OC::$server->createEventSource(); // need to send an initial message to force-init the event source, // which will then trigger its own CSRF check and produces its own CSRF error // message -//$eventSource->send('success', (string)$l->t('Preparing update')); +$eventSource->send('success', (string)$l->t('Preparing update')); if (OC::checkUpgrade(false)) { $config = \OC::$server->getSystemConfig(); - if ($config->getValue('upgrade.disable-web', true)) { - $eventSource->send('failure', (string)$l->t('Updates need to be installed. Please use the command line updater.')); + if ($config->getValue('upgrade.disable-web', false)) { + $eventSource->send('failure', (string)$l->t('Please use the command line updater because automatic updating is disabled in the config.php.')); $eventSource->close(); exit(); } diff --git a/core/css/tooltip.css b/core/css/tooltip.css index 3c3582e30ef..34d0ec6c70f 100644 --- a/core/css/tooltip.css +++ b/core/css/tooltip.css @@ -53,7 +53,6 @@ text-align: center; background-color: #000000; border-radius: 4px; - word-break: break-all; } .tooltip-arrow { position: absolute; diff --git a/core/js/core.json b/core/js/core.json index 555c683f6f7..03c72e9b3ff 100644 --- a/core/js/core.json +++ b/core/js/core.json @@ -32,6 +32,7 @@ "sharedialogview.js", "sharedialogexpirationview.js", "sharedialoglinkshareview.js", + "sharedialogmailview.js", "sharedialogresharerinfoview.js", "sharedialogshareelistview.js", "octemplate.js", diff --git a/core/js/js.js b/core/js/js.js index 188c15c5db5..1d3ec6ec778 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -1337,9 +1337,6 @@ if(typeof localStorage !=='undefined' && localStorage !== null){ var item = localStorage.getItem(OC.localStorage.namespace+name); if(item === null) { return null; - } else if (typeof JSON === 'undefined') { - //fallback to jquery for IE6/7/8 - return $.parseJSON(item); } else { return JSON.parse(item); } @@ -1439,11 +1436,15 @@ function initCore() { */ moment.locale(OC.getLocale()); - if ($.browser.msie || !!navigator.userAgent.match(/Trident\/7\./)) { - // for IE10+ that don't have conditional comments - // and IE11 doesn't identify as MSIE any more... + var userAgent = window.navigator.userAgent; + var msie = userAgent.indexOf('MSIE '); + var trident = userAgent.indexOf('Trident/'); + var edge = userAgent.indexOf('Edge/'); + + if (msie > 0 || trident > 0) { + // (IE 10 or older) || IE 11 $('html').addClass('ie'); - } else if (!!navigator.userAgent.match(/Edge\/12/)) { + } else if (edge > 0) { // for edge $('html').addClass('edge'); } @@ -1498,9 +1499,15 @@ function initCore() { interval = maxInterval; } var url = OC.generateUrl('/heartbeat'); - setInterval(function(){ - $.post(url); - }, interval * 1000); + var heartBeatTimeout = null; + var heartBeat = function() { + clearTimeout(heartBeatTimeout); + heartBeatTimeout = setInterval(function() { + $.post(url); + }, interval * 1000); + }; + $(document).ajaxComplete(heartBeat); + heartBeat(); } // session heartbeat (defaults to enabled) diff --git a/core/js/lostpassword.js b/core/js/lostpassword.js index df28c2308cb..30d7b98f4e8 100644 --- a/core/js/lostpassword.js +++ b/core/js/lostpassword.js @@ -81,12 +81,12 @@ OC.Lostpassword = { $('#password').parents('form').attr('action'), { password : $('#password').val(), - proceed: $('#encrypted-continue').attr('checked') ? 'true' : 'false' + proceed: $('#encrypted-continue').is(':checked') ? 'true' : 'false' }, OC.Lostpassword.resetDone ); } - if($('#encrypted-continue').attr('checked')) { + if($('#encrypted-continue').is(':checked')) { $('#reset-password #submit').hide(); $('#reset-password #float-spinner').removeClass('hidden'); } diff --git a/core/js/multiselect.js b/core/js/multiselect.js index 6d5c54ac0f5..71cf3e10a69 100644 --- a/core/js/multiselect.js +++ b/core/js/multiselect.js @@ -120,7 +120,7 @@ label.text(element.text() || item); label.attr('title', element.text() || item); if(settings.checked.indexOf(item) !== -1 || checked) { - input.attr('checked', true); + input.prop('checked', true); } if(checked){ if(settings.singleSelect) { @@ -145,7 +145,7 @@ element.attr('selected','selected'); if(typeof settings.oncheck === 'function') { if(settings.oncheck(value)===false) { - $(this).attr('checked', false); + $(this).prop('checked', false); return; } } @@ -157,7 +157,7 @@ element.attr('selected',null); if(typeof settings.onuncheck === 'function') { if(settings.onuncheck(value)===false) { - $(this).attr('checked',true); + $(this).prop('checked',true); return; } } diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js index 1d158ccec16..2fc6f657b02 100644 --- a/core/js/sharedialoglinkshareview.js +++ b/core/js/sharedialoglinkshareview.js @@ -40,12 +40,6 @@ '<label for="sharingDialogAllowPublicUpload-{{cid}}">{{publicUploadLabel}}</label>' + '</div>' + ' {{/if}}' + - ' {{#if mailPublicNotificationEnabled}}' + - '<form id="emailPrivateLink" class="emailPrivateLinkForm">' + - ' <input id="email" class="emailField" value="" placeholder="{{mailPrivatePlaceholder}}" type="text" />' + - ' <input id="emailButton" class="emailButton" type="submit" value="{{mailButtonText}}" />' + - '</form>' + - ' {{/if}}' + '{{else}}' + // FIXME: this doesn't belong in this view '{{#if noSharingPlaceholder}}<input id="shareWith-{{cid}}" class="shareWithField" type="text" placeholder="{{noSharingPlaceholder}}" disabled="disabled"/>{{/if}}' + @@ -76,7 +70,6 @@ showLink: true, events: { - 'submit .emailPrivateLinkForm': '_onEmailPrivateLink', 'focusout input.linkPassText': 'onPasswordEntered', 'keyup input.linkPassText': 'onPasswordKeyUp', 'click .linkCheckbox': 'onLinkCheckBoxChange', @@ -112,7 +105,6 @@ _.bindAll( this, - '_onEmailPrivateLink', 'onLinkCheckBoxChange', 'onPasswordEntered', 'onPasswordKeyUp', @@ -218,34 +210,6 @@ }); }, - _onEmailPrivateLink: function(event) { - event.preventDefault(); - - var $emailField = this.$el.find('.emailField'); - var $emailButton = this.$el.find('.emailButton'); - var email = $emailField.val(); - if (email !== '') { - $emailField.prop('disabled', true); - $emailButton.prop('disabled', true); - $emailField.val(t('core', 'Sending ...')); - this.model.sendEmailPrivateLink(email).done(function() { - $emailField.css('font-weight', 'bold').val(t('core','Email sent')); - setTimeout(function() { - $emailField.val(''); - $emailField.css('font-weight', 'normal'); - $emailField.prop('disabled', false); - $emailButton.prop('disabled', false); - }, 2000); - }).fail(function() { - $emailField.val(email); - $emailField.css('font-weight', 'normal'); - $emailField.prop('disabled', false); - $emailButton.prop('disabled', false); - }); - } - return false; - }, - render: function() { var linkShareTemplate = this.template(); var resharingAllowed = this.model.sharePermissionPossible(); @@ -299,39 +263,6 @@ mailButtonText: t('core', 'Send') })); - var $emailField = this.$el.find('.emailField'); - if (isLinkShare && $emailField.length !== 0) { - $emailField.autocomplete({ - minLength: 1, - source: function (search, response) { - $.get( - OC.generateUrl('core/ajax/share.php'), { - fetch: 'getShareWithEmail', - search: search.term - }, function(result) { - if (result.status == 'success' && result.data.length > 0) { - response(result.data); - } - }); - }, - select: function( event, item ) { - $emailField.val(item.item.email); - return false; - } - }) - .data("ui-autocomplete")._renderItem = function( ul, item ) { - return $('<li>') - .append('<a>' + escapeHTML(item.displayname) + "<br>" + escapeHTML(item.email) + '</a>' ) - .appendTo( ul ); - }; - } - - // TODO drop with IE8 drop - if($('html').hasClass('ie8')) { - this.$el.find('#linkPassText').removeAttr('placeholder'); - this.$el.find('#linkPassText').val(''); - } - this.delegateEvents(); return this; diff --git a/core/js/sharedialogmailview.js b/core/js/sharedialogmailview.js new file mode 100644 index 00000000000..84e3f3242ad --- /dev/null +++ b/core/js/sharedialogmailview.js @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2016 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +(function() { + if (!OC.Share) { + OC.Share = {}; + } + + var TEMPLATE = + '{{#if shareAllowed}}' + + ' {{#if mailPublicNotificationEnabled}}' + + '<form id="emailPrivateLink" class="emailPrivateLinkForm">' + + ' <input id="email" class="emailField" value="{{email}}" placeholder="{{mailPrivatePlaceholder}}" type="text" />' + + ' <input id="emailButton" class="emailButton" type="submit" value="{{mailButtonText}}" />' + + '</form>' + + ' {{/if}}' + + '{{/if}}' + ; + + /** + * @class OCA.Share.ShareDialogMailView + * @member {OC.Share.ShareItemModel} model + * @member {jQuery} $el + * @memberof OCA.Sharing + * @classdesc + * + * Represents the GUI of the share dialogue + * + */ + var ShareDialogMailView = OC.Backbone.View.extend({ + /** @type {string} **/ + id: 'shareDialogMailView', + + /** @type {OC.Share.ShareConfigModel} **/ + configModel: undefined, + + /** @type {Function} **/ + _template: undefined, + + /** @type {boolean} **/ + showLink: true, + + events: { + 'submit .emailPrivateLinkForm': '_onEmailPrivateLink' + }, + + initialize: function(options) { + var view = this; + + this.model.on('change:linkShare', function() { + view.render(); + }); + + if(!_.isUndefined(options.configModel)) { + this.configModel = options.configModel; + } else { + throw 'missing OC.Share.ShareConfigModel'; + } + + _.bindAll( + this, + '_onEmailPrivateLink' + ); + }, + + _onEmailPrivateLink: function(event) { + event.preventDefault(); + + var $emailField = this.$el.find('.emailField'); + var $emailButton = this.$el.find('.emailButton'); + var email = $emailField.val(); + if (email !== '') { + $emailField.prop('disabled', true); + $emailButton.prop('disabled', true); + $emailField.val(t('core', 'Sending ...')); + this.model.sendEmailPrivateLink(email).done(function() { + $emailField.css('font-weight', 'bold').val(t('core','Email sent')); + setTimeout(function() { + $emailField.val(''); + $emailField.css('font-weight', 'normal'); + $emailField.prop('disabled', false); + $emailButton.prop('disabled', false); + }, 2000); + }).fail(function() { + $emailField.val(email); + $emailField.css('font-weight', 'normal'); + $emailField.prop('disabled', false); + $emailButton.prop('disabled', false); + }); + } + return false; + }, + + render: function() { + var linkShareTemplate = this.template(); + var resharingAllowed = this.model.sharePermissionPossible(); + var email = this.$el.find('.emailField').val(); + + if(!resharingAllowed + || !this.showLink + || !this.configModel.isShareWithLinkAllowed()) + { + var templateData = {shareAllowed: false}; + if (!resharingAllowed) { + // add message + templateData.noSharingPlaceholder = t('core', 'Resharing is not allowed'); + } + this.$el.html(linkShareTemplate(templateData)); + return this; + } + + var isLinkShare = this.model.get('linkShare').isLinkShare; + + this.$el.html(linkShareTemplate({ + cid: this.cid, + shareAllowed: true, + mailPublicNotificationEnabled: isLinkShare && this.configModel.isMailPublicNotificationEnabled(), + mailPrivatePlaceholder: t('core', 'Email link to person'), + mailButtonText: t('core', 'Send link via email'), + email: email + })); + + var $emailField = this.$el.find('.emailField'); + if (isLinkShare && $emailField.length !== 0) { + $emailField.autocomplete({ + minLength: 1, + source: function (search, response) { + $.get( + OC.generateUrl('core/ajax/share.php'), { + fetch: 'getShareWithEmail', + search: search.term + }, function(result) { + if (result.status == 'success' && result.data.length > 0) { + response(result.data); + } + }); + }, + select: function( event, item ) { + $emailField.val(item.item.email); + return false; + } + }) + .data("ui-autocomplete")._renderItem = function( ul, item ) { + return $('<li>') + .append('<a>' + escapeHTML(item.displayname) + "<br>" + escapeHTML(item.email) + '</a>' ) + .appendTo( ul ); + }; + } + this.delegateEvents(); + + return this; + }, + + /** + * @returns {Function} from Handlebars + * @private + */ + template: function () { + if (!this._template) { + this._template = Handlebars.compile(TEMPLATE); + } + return this._template; + } + + }); + + OC.Share.ShareDialogMailView = ShareDialogMailView; + +})();
\ No newline at end of file diff --git a/core/js/sharedialogshareelistview.js b/core/js/sharedialogshareelistview.js index e4edbf24c08..fd0b6d9d1bd 100644 --- a/core/js/sharedialogshareelistview.js +++ b/core/js/sharedialogshareelistview.js @@ -268,11 +268,11 @@ if ($element.attr('name') === 'edit') { checked = $element.is(':checked'); // Check/uncheck Create, Update, and Delete checkboxes if Edit is checked/unck - $($checkboxes).attr('checked', checked); + $($checkboxes).prop('checked', checked); } else { var numberChecked = $checkboxes.filter(':checked').length; checked = numberChecked > 0; - $('input[name="edit"]', $li).attr('checked', checked); + $('input[name="edit"]', $li).prop('checked', checked); } var permissions = OC.PERMISSION_READ; diff --git a/core/js/sharedialogview.js b/core/js/sharedialogview.js index 56f53caddae..a4bfde1777b 100644 --- a/core/js/sharedialogview.js +++ b/core/js/sharedialogview.js @@ -26,6 +26,7 @@ '<div class="shareeListView subView"></div>' + '<div class="linkShareView subView"></div>' + '<div class="expirationView subView"></div>' + + '<div class="mailView subView"></div>' + '<div class="loading hidden" style="height: 50px"></div>'; var TEMPLATE_REMOTE_SHARE_INFO = @@ -67,6 +68,9 @@ /** @type {object} **/ shareeListView: undefined, + /** @type {object} **/ + mailView: undefined, + events: { 'input .shareWithField': 'onShareWithFieldChanged' }, @@ -103,7 +107,8 @@ resharerInfoView: 'ShareDialogResharerInfoView', linkShareView: 'ShareDialogLinkShareView', expirationView: 'ShareDialogExpirationView', - shareeListView: 'ShareDialogShareeListView' + shareeListView: 'ShareDialogShareeListView', + mailView: 'ShareDialogMailView' }; for(var name in subViews) { @@ -360,6 +365,9 @@ this.shareeListView.$el = this.$el.find('.shareeListView'); this.shareeListView.render(); + this.mailView.$el = this.$el.find('.mailView'); + this.mailView.render(); + this.$el.find('.hasTooltip').tooltip(); return this; diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js index 83441104289..02eb1b95c1d 100644 --- a/core/js/tests/specs/coreSpec.js +++ b/core/js/tests/specs/coreSpec.js @@ -305,6 +305,7 @@ describe('Core base tests', function() { counter++; xhr.respond(200, {'Content-Type': 'application/json'}, '{}'); }); + $(document).off('ajaxComplete'); // ignore previously registered heartbeats }); afterEach(function() { clock.restore(); @@ -312,6 +313,7 @@ describe('Core base tests', function() { window.oc_config = oldConfig; routeStub.restore(); $(document).off('ajaxError'); + $(document).off('ajaxComplete'); }); it('sends heartbeat half the session lifetime when heartbeat enabled', function() { /* jshint camelcase: false */ @@ -340,7 +342,7 @@ describe('Core base tests', function() { clock.tick(20 * 1000); expect(counter).toEqual(2); }); - it('does no send heartbeat when heartbeat disabled', function() { + it('does not send heartbeat when heartbeat disabled', function() { /* jshint camelcase: false */ window.oc_config = { session_keepalive: false, diff --git a/core/l10n/af_ZA.js b/core/l10n/af_ZA.js index 6df3f73078b..33fa93394a3 100644 --- a/core/l10n/af_ZA.js +++ b/core/l10n/af_ZA.js @@ -64,13 +64,13 @@ OC.L10N.register( "Error setting expiration date" : "Fout met opstel van verval datum", "Set expiration date" : "Stel verval datum", "Expiration date" : "Verval datum", - "Sending ..." : "Stuur ...", - "Email sent" : "E-pos gestuur", "Resharing is not allowed" : "Herdeling is nie toegelaat nie ", "Password protect" : "Beskerm met Wagwoord", "Password" : "Wagwoord", "Email link to person" : "E-pos aan persoon", "Send" : "Stuur", + "Sending ..." : "Stuur ...", + "Email sent" : "E-pos gestuur", "Shared with you and the group {group} by {owner}" : "Met jou en die groep {group} gedeel deur {owner}", "Shared with you by {owner}" : "Met jou gedeel deur {owner}", "group" : "groep", diff --git a/core/l10n/af_ZA.json b/core/l10n/af_ZA.json index f43703ab3f9..a22c1480a65 100644 --- a/core/l10n/af_ZA.json +++ b/core/l10n/af_ZA.json @@ -62,13 +62,13 @@ "Error setting expiration date" : "Fout met opstel van verval datum", "Set expiration date" : "Stel verval datum", "Expiration date" : "Verval datum", - "Sending ..." : "Stuur ...", - "Email sent" : "E-pos gestuur", "Resharing is not allowed" : "Herdeling is nie toegelaat nie ", "Password protect" : "Beskerm met Wagwoord", "Password" : "Wagwoord", "Email link to person" : "E-pos aan persoon", "Send" : "Stuur", + "Sending ..." : "Stuur ...", + "Email sent" : "E-pos gestuur", "Shared with you and the group {group} by {owner}" : "Met jou en die groep {group} gedeel deur {owner}", "Shared with you by {owner}" : "Met jou gedeel deur {owner}", "group" : "groep", diff --git a/core/l10n/ar.js b/core/l10n/ar.js index 6ef54aca7ad..4a7e4f059f1 100644 --- a/core/l10n/ar.js +++ b/core/l10n/ar.js @@ -75,8 +75,6 @@ OC.L10N.register( "Expiration" : "إنتهاء", "Expiration date" : "تاريخ إنتهاء الصلاحية", "Choose a password for the public link" : "اختر كلمة مرور للرابط العام", - "Sending ..." : "جاري الارسال ...", - "Email sent" : "تم ارسال البريد الالكتروني", "Resharing is not allowed" : "لا يسمح بعملية إعادة المشاركة", "Share link" : "شارك الرابط", "Link" : "الرابط", @@ -85,6 +83,8 @@ OC.L10N.register( "Allow editing" : "السماح بالتعديلات", "Email link to person" : "ارسل الرابط بالبريد الى صديق", "Send" : "أرسل", + "Sending ..." : "جاري الارسال ...", + "Email sent" : "تم ارسال البريد الالكتروني", "Shared with you and the group {group} by {owner}" : "شورك معك ومع المجموعة {group} من قبل {owner}", "Shared with you by {owner}" : "شورك معك من قبل {owner}", "group" : "مجموعة", diff --git a/core/l10n/ar.json b/core/l10n/ar.json index a9ceb76aeb0..e92d5ef8c30 100644 --- a/core/l10n/ar.json +++ b/core/l10n/ar.json @@ -73,8 +73,6 @@ "Expiration" : "إنتهاء", "Expiration date" : "تاريخ إنتهاء الصلاحية", "Choose a password for the public link" : "اختر كلمة مرور للرابط العام", - "Sending ..." : "جاري الارسال ...", - "Email sent" : "تم ارسال البريد الالكتروني", "Resharing is not allowed" : "لا يسمح بعملية إعادة المشاركة", "Share link" : "شارك الرابط", "Link" : "الرابط", @@ -83,6 +81,8 @@ "Allow editing" : "السماح بالتعديلات", "Email link to person" : "ارسل الرابط بالبريد الى صديق", "Send" : "أرسل", + "Sending ..." : "جاري الارسال ...", + "Email sent" : "تم ارسال البريد الالكتروني", "Shared with you and the group {group} by {owner}" : "شورك معك ومع المجموعة {group} من قبل {owner}", "Shared with you by {owner}" : "شورك معك من قبل {owner}", "group" : "مجموعة", diff --git a/core/l10n/ast.js b/core/l10n/ast.js index c7a0f566f07..9cbd176e5e5 100644 --- a/core/l10n/ast.js +++ b/core/l10n/ast.js @@ -103,8 +103,6 @@ OC.L10N.register( "Expiration" : "Caducidá", "Expiration date" : "Data de caducidá", "Choose a password for the public link" : "Escueyi una contraseña pal enllaz públicu", - "Sending ..." : "Unviando ...", - "Email sent" : "Corréu unviáu", "Resharing is not allowed" : "Recompartir nun ta permitíu", "Share link" : "Compartir enllaz", "Link" : "Enllaz", @@ -113,6 +111,8 @@ OC.L10N.register( "Allow editing" : "Permitir edición", "Email link to person" : "Enllaz de corréu-e a la persona", "Send" : "Unviar", + "Sending ..." : "Unviando ...", + "Email sent" : "Corréu unviáu", "Shared with you and the group {group} by {owner}" : "Compartíu contigo y col grupu {group} por {owner}", "Shared with you by {owner}" : "Compartíu contigo por {owner}", "group" : "grupu", diff --git a/core/l10n/ast.json b/core/l10n/ast.json index 8ac9feca564..123201074a7 100644 --- a/core/l10n/ast.json +++ b/core/l10n/ast.json @@ -101,8 +101,6 @@ "Expiration" : "Caducidá", "Expiration date" : "Data de caducidá", "Choose a password for the public link" : "Escueyi una contraseña pal enllaz públicu", - "Sending ..." : "Unviando ...", - "Email sent" : "Corréu unviáu", "Resharing is not allowed" : "Recompartir nun ta permitíu", "Share link" : "Compartir enllaz", "Link" : "Enllaz", @@ -111,6 +109,8 @@ "Allow editing" : "Permitir edición", "Email link to person" : "Enllaz de corréu-e a la persona", "Send" : "Unviar", + "Sending ..." : "Unviando ...", + "Email sent" : "Corréu unviáu", "Shared with you and the group {group} by {owner}" : "Compartíu contigo y col grupu {group} por {owner}", "Shared with you by {owner}" : "Compartíu contigo por {owner}", "group" : "grupu", diff --git a/core/l10n/az.js b/core/l10n/az.js index 7f3d1731116..9db5ae4cbbd 100644 --- a/core/l10n/az.js +++ b/core/l10n/az.js @@ -62,10 +62,10 @@ OC.L10N.register( "Strong password" : "Çətin şifrə", "Error" : "Səhv", "Expiration" : "Vaxtın bitməsi", - "Email sent" : "Məktub göndərildi", "Share link" : "Linki yayımla", "Password" : "Şifrə", "Send" : "Göndər", + "Email sent" : "Məktub göndərildi", "group" : "qrup", "Unshare" : "Paylaşımı durdur", "can share" : "yayımlaya bilərsiniz", diff --git a/core/l10n/az.json b/core/l10n/az.json index 80d218c5396..b3c3c113bc4 100644 --- a/core/l10n/az.json +++ b/core/l10n/az.json @@ -60,10 +60,10 @@ "Strong password" : "Çətin şifrə", "Error" : "Səhv", "Expiration" : "Vaxtın bitməsi", - "Email sent" : "Məktub göndərildi", "Share link" : "Linki yayımla", "Password" : "Şifrə", "Send" : "Göndər", + "Email sent" : "Məktub göndərildi", "group" : "qrup", "Unshare" : "Paylaşımı durdur", "can share" : "yayımlaya bilərsiniz", diff --git a/core/l10n/bg_BG.js b/core/l10n/bg_BG.js index 00f7d00ba6b..db1a0601a95 100644 --- a/core/l10n/bg_BG.js +++ b/core/l10n/bg_BG.js @@ -111,8 +111,6 @@ OC.L10N.register( "Expiration" : "Изтичане", "Expiration date" : "Дата на изтичане", "Choose a password for the public link" : "Изберете парола за общодостъпната връзка", - "Sending ..." : "Изпращане ...", - "Email sent" : "Електронната поща е изпратена", "Resharing is not allowed" : "Повторно споделяне не е разрешено.", "Share link" : "Връзка за споделяне", "Link" : "Връзка", @@ -121,6 +119,8 @@ OC.L10N.register( "Allow editing" : "Позволяване на редактиране", "Email link to person" : "Имейл връзка към човек", "Send" : "Изпращане", + "Sending ..." : "Изпращане ...", + "Email sent" : "Електронната поща е изпратена", "Shared with you and the group {group} by {owner}" : "Споделено от {owner} с Вас и групата {group} .", "Shared with you by {owner}" : "Споделено с Вас от {owner}.", "group" : "група", diff --git a/core/l10n/bg_BG.json b/core/l10n/bg_BG.json index e5debe80699..b1f1759152f 100644 --- a/core/l10n/bg_BG.json +++ b/core/l10n/bg_BG.json @@ -109,8 +109,6 @@ "Expiration" : "Изтичане", "Expiration date" : "Дата на изтичане", "Choose a password for the public link" : "Изберете парола за общодостъпната връзка", - "Sending ..." : "Изпращане ...", - "Email sent" : "Електронната поща е изпратена", "Resharing is not allowed" : "Повторно споделяне не е разрешено.", "Share link" : "Връзка за споделяне", "Link" : "Връзка", @@ -119,6 +117,8 @@ "Allow editing" : "Позволяване на редактиране", "Email link to person" : "Имейл връзка към човек", "Send" : "Изпращане", + "Sending ..." : "Изпращане ...", + "Email sent" : "Електронната поща е изпратена", "Shared with you and the group {group} by {owner}" : "Споделено от {owner} с Вас и групата {group} .", "Shared with you by {owner}" : "Споделено с Вас от {owner}.", "group" : "група", diff --git a/core/l10n/bn_BD.js b/core/l10n/bn_BD.js index a2bfeeebc24..d6a2ab7c74d 100644 --- a/core/l10n/bn_BD.js +++ b/core/l10n/bn_BD.js @@ -72,14 +72,14 @@ OC.L10N.register( "Error setting expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করতে সমস্যা দেখা দিয়েছে", "Set expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করুন", "Expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ", - "Sending ..." : "পাঠানো হচ্ছে......", - "Email sent" : "ই-মেইল পাঠানো হয়েছে", "Resharing is not allowed" : "পূনঃরায় ভাগাভাগি অনুমোদিত নয়", "Share link" : "লিংক ভাগাভাগি করেন", "Password protect" : "কূটশব্দ সুরক্ষিত", "Password" : "কূটশব্দ", "Email link to person" : "ব্যক্তির সাথে ই-মেইল যুক্ত কর", "Send" : "পাঠাও", + "Sending ..." : "পাঠানো হচ্ছে......", + "Email sent" : "ই-মেইল পাঠানো হয়েছে", "Shared with you and the group {group} by {owner}" : "{owner} আপনার এবং {group} গোষ্ঠীর সাথে ভাগাভাগি করেছেন", "Shared with you by {owner}" : "{owner} আপনার সাথে ভাগাভাগি করেছেন", "group" : "দল", diff --git a/core/l10n/bn_BD.json b/core/l10n/bn_BD.json index 7eff82b0833..fd50f12db7d 100644 --- a/core/l10n/bn_BD.json +++ b/core/l10n/bn_BD.json @@ -70,14 +70,14 @@ "Error setting expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করতে সমস্যা দেখা দিয়েছে", "Set expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করুন", "Expiration date" : "মেয়াদোত্তীর্ণ হওয়ার তারিখ", - "Sending ..." : "পাঠানো হচ্ছে......", - "Email sent" : "ই-মেইল পাঠানো হয়েছে", "Resharing is not allowed" : "পূনঃরায় ভাগাভাগি অনুমোদিত নয়", "Share link" : "লিংক ভাগাভাগি করেন", "Password protect" : "কূটশব্দ সুরক্ষিত", "Password" : "কূটশব্দ", "Email link to person" : "ব্যক্তির সাথে ই-মেইল যুক্ত কর", "Send" : "পাঠাও", + "Sending ..." : "পাঠানো হচ্ছে......", + "Email sent" : "ই-মেইল পাঠানো হয়েছে", "Shared with you and the group {group} by {owner}" : "{owner} আপনার এবং {group} গোষ্ঠীর সাথে ভাগাভাগি করেছেন", "Shared with you by {owner}" : "{owner} আপনার সাথে ভাগাভাগি করেছেন", "group" : "দল", diff --git a/core/l10n/bs.js b/core/l10n/bs.js index 0ba85de64db..65e1ad654b0 100644 --- a/core/l10n/bs.js +++ b/core/l10n/bs.js @@ -101,8 +101,6 @@ OC.L10N.register( "Expiration" : "Istek", "Expiration date" : "Datum isteka", "Choose a password for the public link" : "Izaberite lozinku za javnu vezu", - "Sending ..." : "Slanje...", - "Email sent" : "E-pošta poslana", "Resharing is not allowed" : "Ponovno dijeljenje nije dopušteno", "Share link" : "Podijelite vezu", "Link" : "Veza", @@ -111,6 +109,8 @@ OC.L10N.register( "Allow editing" : "Dozvolite izmjenu", "Email link to person" : "Pošaljite osobi vezu e-poštom", "Send" : "Pošalji", + "Sending ..." : "Slanje...", + "Email sent" : "E-pošta poslana", "Shared with you and the group {group} by {owner}" : "Dijeljeno s vama i grupom {group} vlasnika {owner}", "Shared with you by {owner}" : "Podijeljeno sa vama od {owner}", "group" : "grupa", diff --git a/core/l10n/bs.json b/core/l10n/bs.json index 96f23f07859..d91ac7ecd58 100644 --- a/core/l10n/bs.json +++ b/core/l10n/bs.json @@ -99,8 +99,6 @@ "Expiration" : "Istek", "Expiration date" : "Datum isteka", "Choose a password for the public link" : "Izaberite lozinku za javnu vezu", - "Sending ..." : "Slanje...", - "Email sent" : "E-pošta poslana", "Resharing is not allowed" : "Ponovno dijeljenje nije dopušteno", "Share link" : "Podijelite vezu", "Link" : "Veza", @@ -109,6 +107,8 @@ "Allow editing" : "Dozvolite izmjenu", "Email link to person" : "Pošaljite osobi vezu e-poštom", "Send" : "Pošalji", + "Sending ..." : "Slanje...", + "Email sent" : "E-pošta poslana", "Shared with you and the group {group} by {owner}" : "Dijeljeno s vama i grupom {group} vlasnika {owner}", "Shared with you by {owner}" : "Podijeljeno sa vama od {owner}", "group" : "grupa", diff --git a/core/l10n/ca.js b/core/l10n/ca.js index 0498ed3e3fb..0290a8fb318 100644 --- a/core/l10n/ca.js +++ b/core/l10n/ca.js @@ -23,6 +23,7 @@ OC.L10N.register( "Error favoriting" : "Error en posar a preferits", "Error unfavoriting" : "Error en treure de preferits", "Couldn't send mail to following users: %s " : "No s'ha pogut enviar correu als usuaris següents: %s", + "Preparing update" : "Preparant l'actualització", "Turned on maintenance mode" : "Activat el mode de manteniment", "Turned off maintenance mode" : "Desactivat el mode de manteniment", "Maintenance mode is kept active" : "El mode de manteniment es manté activat", @@ -125,8 +126,6 @@ OC.L10N.register( "Expiration" : "Expiració", "Expiration date" : "Data de venciment", "Choose a password for the public link" : "Escolliu una contrasenya per l'enllaç públic", - "Sending ..." : "Enviant...", - "Email sent" : "El correu electrónic s'ha enviat", "Resharing is not allowed" : "No es permet compartir de nou", "Share link" : "Enllaç de compartició", "Link" : "Enllaç", @@ -135,6 +134,8 @@ OC.L10N.register( "Allow editing" : "Permetre edició", "Email link to person" : "Enllaç per correu electrónic amb la persona", "Send" : "Envia", + "Sending ..." : "Enviant...", + "Email sent" : "El correu electrónic s'ha enviat", "Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}", "Shared with you by {owner}" : "Compartit amb vos per {owner}", "group" : "grup", diff --git a/core/l10n/ca.json b/core/l10n/ca.json index d809d6ea26b..3cc62e36222 100644 --- a/core/l10n/ca.json +++ b/core/l10n/ca.json @@ -21,6 +21,7 @@ "Error favoriting" : "Error en posar a preferits", "Error unfavoriting" : "Error en treure de preferits", "Couldn't send mail to following users: %s " : "No s'ha pogut enviar correu als usuaris següents: %s", + "Preparing update" : "Preparant l'actualització", "Turned on maintenance mode" : "Activat el mode de manteniment", "Turned off maintenance mode" : "Desactivat el mode de manteniment", "Maintenance mode is kept active" : "El mode de manteniment es manté activat", @@ -123,8 +124,6 @@ "Expiration" : "Expiració", "Expiration date" : "Data de venciment", "Choose a password for the public link" : "Escolliu una contrasenya per l'enllaç públic", - "Sending ..." : "Enviant...", - "Email sent" : "El correu electrónic s'ha enviat", "Resharing is not allowed" : "No es permet compartir de nou", "Share link" : "Enllaç de compartició", "Link" : "Enllaç", @@ -133,6 +132,8 @@ "Allow editing" : "Permetre edició", "Email link to person" : "Enllaç per correu electrónic amb la persona", "Send" : "Envia", + "Sending ..." : "Enviant...", + "Email sent" : "El correu electrónic s'ha enviat", "Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}", "Shared with you by {owner}" : "Compartit amb vos per {owner}", "group" : "grup", diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js index 7e5bd1621ea..32010954af5 100644 --- a/core/l10n/cs_CZ.js +++ b/core/l10n/cs_CZ.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Chyba při označování jako oblíbené", "Error unfavoriting" : "Chyba při odznačování jako oblíbené", "Couldn't send mail to following users: %s " : "Nebylo možné odeslat email následujícím uživatelům: %s", + "Preparing update" : "Příprava na aktualizaci", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrola tabulky %s", "Turned on maintenance mode" : "Zapnut režim údržby", @@ -151,8 +152,6 @@ OC.L10N.register( "Expiration" : "Konec platnosti", "Expiration date" : "Datum vypršení platnosti", "Choose a password for the public link" : "Zadej heslo pro tento veřejný odkaz", - "Sending ..." : "Odesílám ...", - "Email sent" : "Email odeslán", "Resharing is not allowed" : "Sdílení již sdílené položky není povoleno", "Share link" : "Sdílet odkaz", "Link" : "Odkaz", @@ -161,6 +160,8 @@ OC.L10N.register( "Allow editing" : "Povolit úpravy", "Email link to person" : "Odeslat osobě odkaz emailem", "Send" : "Odeslat", + "Sending ..." : "Odesílám ...", + "Email sent" : "Email odeslán", "Shared with you and the group {group} by {owner}" : "S Vámi a skupinou {group} sdílí {owner}", "Shared with you by {owner}" : "S Vámi sdílí {owner}", "group" : "skupina", diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json index 88882c61809..38bfde74a0c 100644 --- a/core/l10n/cs_CZ.json +++ b/core/l10n/cs_CZ.json @@ -24,6 +24,7 @@ "Error favoriting" : "Chyba při označování jako oblíbené", "Error unfavoriting" : "Chyba při odznačování jako oblíbené", "Couldn't send mail to following users: %s " : "Nebylo možné odeslat email následujícím uživatelům: %s", + "Preparing update" : "Příprava na aktualizaci", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrola tabulky %s", "Turned on maintenance mode" : "Zapnut režim údržby", @@ -149,8 +150,6 @@ "Expiration" : "Konec platnosti", "Expiration date" : "Datum vypršení platnosti", "Choose a password for the public link" : "Zadej heslo pro tento veřejný odkaz", - "Sending ..." : "Odesílám ...", - "Email sent" : "Email odeslán", "Resharing is not allowed" : "Sdílení již sdílené položky není povoleno", "Share link" : "Sdílet odkaz", "Link" : "Odkaz", @@ -159,6 +158,8 @@ "Allow editing" : "Povolit úpravy", "Email link to person" : "Odeslat osobě odkaz emailem", "Send" : "Odeslat", + "Sending ..." : "Odesílám ...", + "Email sent" : "Email odeslán", "Shared with you and the group {group} by {owner}" : "S Vámi a skupinou {group} sdílí {owner}", "Shared with you by {owner}" : "S Vámi sdílí {owner}", "group" : "skupina", diff --git a/core/l10n/cy_GB.js b/core/l10n/cy_GB.js index d8fdf1ce707..cad7e66ed0d 100644 --- a/core/l10n/cy_GB.js +++ b/core/l10n/cy_GB.js @@ -54,13 +54,13 @@ OC.L10N.register( "Error setting expiration date" : "Gwall wrth osod dyddiad dod i ben", "Set expiration date" : "Gosod dyddiad dod i ben", "Expiration date" : "Dyddiad dod i ben", - "Sending ..." : "Yn anfon ...", - "Email sent" : "Anfonwyd yr e-bost", "Resharing is not allowed" : "Does dim hawl ail-rannu", "Password protect" : "Diogelu cyfrinair", "Password" : "Cyfrinair", "Email link to person" : "E-bostio dolen at berson", "Send" : "Anfon", + "Sending ..." : "Yn anfon ...", + "Email sent" : "Anfonwyd yr e-bost", "Shared with you and the group {group} by {owner}" : "Rhannwyd â chi a'r grŵp {group} gan {owner}", "Shared with you by {owner}" : "Rhannwyd â chi gan {owner}", "group" : "grŵp", diff --git a/core/l10n/cy_GB.json b/core/l10n/cy_GB.json index 50274c6d05f..964755b2bd1 100644 --- a/core/l10n/cy_GB.json +++ b/core/l10n/cy_GB.json @@ -52,13 +52,13 @@ "Error setting expiration date" : "Gwall wrth osod dyddiad dod i ben", "Set expiration date" : "Gosod dyddiad dod i ben", "Expiration date" : "Dyddiad dod i ben", - "Sending ..." : "Yn anfon ...", - "Email sent" : "Anfonwyd yr e-bost", "Resharing is not allowed" : "Does dim hawl ail-rannu", "Password protect" : "Diogelu cyfrinair", "Password" : "Cyfrinair", "Email link to person" : "E-bostio dolen at berson", "Send" : "Anfon", + "Sending ..." : "Yn anfon ...", + "Email sent" : "Anfonwyd yr e-bost", "Shared with you and the group {group} by {owner}" : "Rhannwyd â chi a'r grŵp {group} gan {owner}", "Shared with you by {owner}" : "Rhannwyd â chi gan {owner}", "group" : "grŵp", diff --git a/core/l10n/da.js b/core/l10n/da.js index 055f8f51ad1..6bbd72f3922 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Fejl ved omdannelse til foretrukken", "Error unfavoriting" : "Fejl ved fjernelse fra foretrukken.", "Couldn't send mail to following users: %s " : "Kunne ikke sende mail til følgende brugere: %s", + "Preparing update" : "Forbereder opdatering", "Turned on maintenance mode" : "Startede vedligeholdelsestilstand", "Turned off maintenance mode" : "standsede vedligeholdelsestilstand", "Maintenance mode is kept active" : "Vedligeholdelsestilstanden holdes kørende", @@ -140,8 +141,6 @@ OC.L10N.register( "Expiration" : "Udløb", "Expiration date" : "Udløbsdato", "Choose a password for the public link" : "Vælg et kodeord til det offentlige link", - "Sending ..." : "Sender ...", - "Email sent" : "E-mail afsendt", "Resharing is not allowed" : "Videredeling ikke tilladt", "Share link" : "Del link", "Link" : "Link", @@ -150,6 +149,8 @@ OC.L10N.register( "Allow editing" : "Tillad redigering", "Email link to person" : "E-mail link til person", "Send" : "Send", + "Sending ..." : "Sender ...", + "Email sent" : "E-mail afsendt", "Shared with you and the group {group} by {owner}" : "Delt med dig og gruppen {group} af {owner}", "Shared with you by {owner}" : "Delt med dig af {owner}", "group" : "gruppe", diff --git a/core/l10n/da.json b/core/l10n/da.json index 9682a19cc6e..a70047077e3 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -24,6 +24,7 @@ "Error favoriting" : "Fejl ved omdannelse til foretrukken", "Error unfavoriting" : "Fejl ved fjernelse fra foretrukken.", "Couldn't send mail to following users: %s " : "Kunne ikke sende mail til følgende brugere: %s", + "Preparing update" : "Forbereder opdatering", "Turned on maintenance mode" : "Startede vedligeholdelsestilstand", "Turned off maintenance mode" : "standsede vedligeholdelsestilstand", "Maintenance mode is kept active" : "Vedligeholdelsestilstanden holdes kørende", @@ -138,8 +139,6 @@ "Expiration" : "Udløb", "Expiration date" : "Udløbsdato", "Choose a password for the public link" : "Vælg et kodeord til det offentlige link", - "Sending ..." : "Sender ...", - "Email sent" : "E-mail afsendt", "Resharing is not allowed" : "Videredeling ikke tilladt", "Share link" : "Del link", "Link" : "Link", @@ -148,6 +147,8 @@ "Allow editing" : "Tillad redigering", "Email link to person" : "E-mail link til person", "Send" : "Send", + "Sending ..." : "Sender ...", + "Email sent" : "E-mail afsendt", "Shared with you and the group {group} by {owner}" : "Delt med dig og gruppen {group} af {owner}", "Shared with you by {owner}" : "Delt med dig af {owner}", "group" : "gruppe", diff --git a/core/l10n/de.js b/core/l10n/de.js index a4a81239e40..9a5fe75bf40 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -26,7 +26,8 @@ OC.L10N.register( "Error favoriting" : "Fehler beim Favorisieren", "Error unfavoriting" : "Fehler beim Entfernen aus den Favoriten", "Couldn't send mail to following users: %s " : "Die E-Mail konnte nicht an folgende Benutzer gesendet werden: %s", - "Updates need to be installed. Please use the command line updater." : "Updates müssen installiert werden. Bitte nutze den Updater über die Kommandozeile.", + "Preparing update" : "Update vorbereiten", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutze bitte den Updater über die Kommandozeile.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Überprüfe Tabelle %s", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", @@ -152,8 +153,6 @@ OC.L10N.register( "Expiration" : "Ablaufdatum", "Expiration date" : "Ablaufdatum", "Choose a password for the public link" : "Wählen Sie ein Passwort für den öffentlichen Link", - "Sending ..." : "Senden…", - "Email sent" : "E-Mail wurde verschickt", "Resharing is not allowed" : "Weiterverteilen ist nicht erlaubt", "Share link" : "Link teilen", "Link" : "Link", @@ -162,6 +161,8 @@ OC.L10N.register( "Allow editing" : "Bearbeitung erlauben", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Sending ..." : "Senden…", + "Email sent" : "E-Mail wurde verschickt", "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Dir und der Gruppe {group} geteilt", "Shared with you by {owner}" : "{owner} hat dies mit Dir geteilt", "group" : "Gruppe", @@ -307,7 +308,6 @@ OC.L10N.register( "Detailed logs" : "Detaillierte Fehlermeldungen", "Update needed" : "Update wird benötigt", "Please use the command line updater because you have a big instance." : "Da du eine große Instanz von Owncloud besitzt, nutze bitte den Updater über die Kommandozeile.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutze bitte den Updater über die Kommandozeile.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Für weitere Hilfen, schaue bitte in die <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">Dokumentation</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Diese %s-Instanz befindet sich gerade im Wartungsmodus, was eine Weile dauern kann.", "This page will refresh itself when the %s instance is available again." : "Diese Seite aktualisiert sich automatisch, wenn die %s-Instanz wieder verfügbar ist." diff --git a/core/l10n/de.json b/core/l10n/de.json index d5657e1b851..1c2e8363f3c 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -24,7 +24,8 @@ "Error favoriting" : "Fehler beim Favorisieren", "Error unfavoriting" : "Fehler beim Entfernen aus den Favoriten", "Couldn't send mail to following users: %s " : "Die E-Mail konnte nicht an folgende Benutzer gesendet werden: %s", - "Updates need to be installed. Please use the command line updater." : "Updates müssen installiert werden. Bitte nutze den Updater über die Kommandozeile.", + "Preparing update" : "Update vorbereiten", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutze bitte den Updater über die Kommandozeile.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Überprüfe Tabelle %s", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", @@ -150,8 +151,6 @@ "Expiration" : "Ablaufdatum", "Expiration date" : "Ablaufdatum", "Choose a password for the public link" : "Wählen Sie ein Passwort für den öffentlichen Link", - "Sending ..." : "Senden…", - "Email sent" : "E-Mail wurde verschickt", "Resharing is not allowed" : "Weiterverteilen ist nicht erlaubt", "Share link" : "Link teilen", "Link" : "Link", @@ -160,6 +159,8 @@ "Allow editing" : "Bearbeitung erlauben", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Sending ..." : "Senden…", + "Email sent" : "E-Mail wurde verschickt", "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Dir und der Gruppe {group} geteilt", "Shared with you by {owner}" : "{owner} hat dies mit Dir geteilt", "group" : "Gruppe", @@ -305,7 +306,6 @@ "Detailed logs" : "Detaillierte Fehlermeldungen", "Update needed" : "Update wird benötigt", "Please use the command line updater because you have a big instance." : "Da du eine große Instanz von Owncloud besitzt, nutze bitte den Updater über die Kommandozeile.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutze bitte den Updater über die Kommandozeile.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Für weitere Hilfen, schaue bitte in die <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">Dokumentation</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Diese %s-Instanz befindet sich gerade im Wartungsmodus, was eine Weile dauern kann.", "This page will refresh itself when the %s instance is available again." : "Diese Seite aktualisiert sich automatisch, wenn die %s-Instanz wieder verfügbar ist." diff --git a/core/l10n/de_AT.js b/core/l10n/de_AT.js index b7c3e2d419f..756bc057121 100644 --- a/core/l10n/de_AT.js +++ b/core/l10n/de_AT.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Fehler beim Favorisieren", "Error unfavoriting" : "Fehler beim Entfernen aus den Favoriten", "Couldn't send mail to following users: %s " : "Die E-Mail konnte nicht an folgende Benutzer gesendet werden: %s", + "Preparing update" : "Update vorbereiten", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Überprüfe Tabelle %s", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", @@ -151,8 +152,6 @@ OC.L10N.register( "Expiration" : "Ablaufdatum", "Expiration date" : "Ablaufdatum", "Choose a password for the public link" : "Wählen Sie ein Passwort für den öffentlichen Link", - "Sending ..." : "Senden…", - "Email sent" : "E-Mail wurde verschickt", "Resharing is not allowed" : "Weiterverteilen ist nicht erlaubt", "Share link" : "Link teilen", "Link" : "Link", @@ -161,6 +160,8 @@ OC.L10N.register( "Allow editing" : "Bearbeitung erlauben", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Sending ..." : "Senden…", + "Email sent" : "E-Mail wurde verschickt", "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Dir und der Gruppe {group} geteilt", "Shared with you by {owner}" : "{owner} hat dies mit Dir geteilt", "group" : "Gruppe", diff --git a/core/l10n/de_AT.json b/core/l10n/de_AT.json index 70151c619c7..ff097ed0ba2 100644 --- a/core/l10n/de_AT.json +++ b/core/l10n/de_AT.json @@ -24,6 +24,7 @@ "Error favoriting" : "Fehler beim Favorisieren", "Error unfavoriting" : "Fehler beim Entfernen aus den Favoriten", "Couldn't send mail to following users: %s " : "Die E-Mail konnte nicht an folgende Benutzer gesendet werden: %s", + "Preparing update" : "Update vorbereiten", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Überprüfe Tabelle %s", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", @@ -149,8 +150,6 @@ "Expiration" : "Ablaufdatum", "Expiration date" : "Ablaufdatum", "Choose a password for the public link" : "Wählen Sie ein Passwort für den öffentlichen Link", - "Sending ..." : "Senden…", - "Email sent" : "E-Mail wurde verschickt", "Resharing is not allowed" : "Weiterverteilen ist nicht erlaubt", "Share link" : "Link teilen", "Link" : "Link", @@ -159,6 +158,8 @@ "Allow editing" : "Bearbeitung erlauben", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Sending ..." : "Senden…", + "Email sent" : "E-Mail wurde verschickt", "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Dir und der Gruppe {group} geteilt", "Shared with you by {owner}" : "{owner} hat dies mit Dir geteilt", "group" : "Gruppe", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 6100e4eb93a..6b01e6c9627 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -26,7 +26,8 @@ OC.L10N.register( "Error favoriting" : "Fehler beim Hinzufügen zu den Favoriten", "Error unfavoriting" : "Fehler beim Entfernen aus den Favoriten", "Couldn't send mail to following users: %s " : "An folgende Benutzer konnte keine E-Mail gesendet werden: %s", - "Updates need to be installed. Please use the command line updater." : "Updates müssen installiert werden. Bitte nutzen Sie den Updater über die Kommandozeile.", + "Preparing update" : "Update vorbereiten", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutzen Sie bitte den Updater über die Kommandozeile.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Überprüfe Tabelle %s", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet ", @@ -152,8 +153,6 @@ OC.L10N.register( "Expiration" : "Ablaufdatum", "Expiration date" : "Ablaufdatum", "Choose a password for the public link" : "Wählen Sie ein Passwort für den öffentlichen Link", - "Sending ..." : "Senden…", - "Email sent" : "E-Mail gesendet", "Resharing is not allowed" : "Das Weiterverteilen ist nicht erlaubt", "Share link" : "Link teilen", "Link" : "Link", @@ -162,6 +161,8 @@ OC.L10N.register( "Allow editing" : "Bearbeitung erlauben", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Sending ..." : "Senden…", + "Email sent" : "E-Mail gesendet", "Shared with you and the group {group} by {owner}" : "Von {owner} mit Ihnen und der Gruppe {group} geteilt.", "Shared with you by {owner}" : "Von {owner} mit Ihnen geteilt.", "group" : "Gruppe", @@ -307,7 +308,6 @@ OC.L10N.register( "Detailed logs" : "Detaillierte Fehlermeldungen", "Update needed" : "Update erforderlich", "Please use the command line updater because you have a big instance." : "Da Sie eine große Instanz von Owncloud besitzt, nutzen Sie bitte den Updater über die Kommandozeile.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutzen Sie bitte den Updater über die Kommandozeile.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Für weitere Hilfen, schauen Sie bitte in die <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">Dokumentation</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Diese %s-Instanz befindet sich gerade im Wartungsmodus, was eine Weile dauern kann.", "This page will refresh itself when the %s instance is available again." : "Diese Seite aktualisiert sich automatisch, wenn die %s-Instanz wieder verfügbar ist." diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index c9731d285c7..f3ff97e3de3 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -24,7 +24,8 @@ "Error favoriting" : "Fehler beim Hinzufügen zu den Favoriten", "Error unfavoriting" : "Fehler beim Entfernen aus den Favoriten", "Couldn't send mail to following users: %s " : "An folgende Benutzer konnte keine E-Mail gesendet werden: %s", - "Updates need to be installed. Please use the command line updater." : "Updates müssen installiert werden. Bitte nutzen Sie den Updater über die Kommandozeile.", + "Preparing update" : "Update vorbereiten", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutzen Sie bitte den Updater über die Kommandozeile.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Überprüfe Tabelle %s", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet ", @@ -150,8 +151,6 @@ "Expiration" : "Ablaufdatum", "Expiration date" : "Ablaufdatum", "Choose a password for the public link" : "Wählen Sie ein Passwort für den öffentlichen Link", - "Sending ..." : "Senden…", - "Email sent" : "E-Mail gesendet", "Resharing is not allowed" : "Das Weiterverteilen ist nicht erlaubt", "Share link" : "Link teilen", "Link" : "Link", @@ -160,6 +159,8 @@ "Allow editing" : "Bearbeitung erlauben", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Sending ..." : "Senden…", + "Email sent" : "E-Mail gesendet", "Shared with you and the group {group} by {owner}" : "Von {owner} mit Ihnen und der Gruppe {group} geteilt.", "Shared with you by {owner}" : "Von {owner} mit Ihnen geteilt.", "group" : "Gruppe", @@ -305,7 +306,6 @@ "Detailed logs" : "Detaillierte Fehlermeldungen", "Update needed" : "Update erforderlich", "Please use the command line updater because you have a big instance." : "Da Sie eine große Instanz von Owncloud besitzt, nutzen Sie bitte den Updater über die Kommandozeile.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Da automatische Updates in der config.php deaktivert sind, nutzen Sie bitte den Updater über die Kommandozeile.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Für weitere Hilfen, schauen Sie bitte in die <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">Dokumentation</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Diese %s-Instanz befindet sich gerade im Wartungsmodus, was eine Weile dauern kann.", "This page will refresh itself when the %s instance is available again." : "Diese Seite aktualisiert sich automatisch, wenn die %s-Instanz wieder verfügbar ist." diff --git a/core/l10n/el.js b/core/l10n/el.js index 1ac724612ed..285b8f796ae 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -25,6 +25,7 @@ OC.L10N.register( "Error favoriting" : "Σφάλμα προσθήκης στα αγαπημένα", "Error unfavoriting" : "Σφάλμα αφαίρεσης από τα αγαπημένα", "Couldn't send mail to following users: %s " : "Αδυναμία αποστολής μηνύματος στους ακόλουθους χρήστες: %s", + "Preparing update" : "Προετοιμασία ενημέρωσης", "Turned on maintenance mode" : "Η κατάσταση συντήρησης ενεργοποιήθηκε", "Turned off maintenance mode" : "Η κατάσταση συντήρησης απενεργοποιήθηκε", "Maintenance mode is kept active" : "Η λειτουργία συντήρησης διατηρήθηκε ενεργή", @@ -135,8 +136,6 @@ OC.L10N.register( "Expiration" : "Λήξη", "Expiration date" : "Ημερομηνία λήξης", "Choose a password for the public link" : "Επιλέξτε κωδικό για τον δημόσιο σύνδεσμο", - "Sending ..." : "Αποστολή...", - "Email sent" : "Το Email απεστάλη ", "Resharing is not allowed" : "Ξαναμοιρασμός δεν επιτρέπεται", "Share link" : "Διαμοιρασμός συνδέσμου", "Link" : "Σύνδεσμος", @@ -145,6 +144,8 @@ OC.L10N.register( "Allow editing" : "Επιτρέπεται η επεξεργασία", "Email link to person" : "Αποστολή συνδέσμου με email ", "Send" : "Αποστολή", + "Sending ..." : "Αποστολή...", + "Email sent" : "Το Email απεστάλη ", "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}", "Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}", "group" : "ομάδα", diff --git a/core/l10n/el.json b/core/l10n/el.json index 932cdabd608..d0dc62c2a85 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -23,6 +23,7 @@ "Error favoriting" : "Σφάλμα προσθήκης στα αγαπημένα", "Error unfavoriting" : "Σφάλμα αφαίρεσης από τα αγαπημένα", "Couldn't send mail to following users: %s " : "Αδυναμία αποστολής μηνύματος στους ακόλουθους χρήστες: %s", + "Preparing update" : "Προετοιμασία ενημέρωσης", "Turned on maintenance mode" : "Η κατάσταση συντήρησης ενεργοποιήθηκε", "Turned off maintenance mode" : "Η κατάσταση συντήρησης απενεργοποιήθηκε", "Maintenance mode is kept active" : "Η λειτουργία συντήρησης διατηρήθηκε ενεργή", @@ -133,8 +134,6 @@ "Expiration" : "Λήξη", "Expiration date" : "Ημερομηνία λήξης", "Choose a password for the public link" : "Επιλέξτε κωδικό για τον δημόσιο σύνδεσμο", - "Sending ..." : "Αποστολή...", - "Email sent" : "Το Email απεστάλη ", "Resharing is not allowed" : "Ξαναμοιρασμός δεν επιτρέπεται", "Share link" : "Διαμοιρασμός συνδέσμου", "Link" : "Σύνδεσμος", @@ -143,6 +142,8 @@ "Allow editing" : "Επιτρέπεται η επεξεργασία", "Email link to person" : "Αποστολή συνδέσμου με email ", "Send" : "Αποστολή", + "Sending ..." : "Αποστολή...", + "Email sent" : "Το Email απεστάλη ", "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}", "Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}", "group" : "ομάδα", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index b5be1b2243d..1781670a7f6 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Error favouriting", "Error unfavoriting" : "Error unfavouriting", "Couldn't send mail to following users: %s " : "Couldn't send mail to following users: %s ", + "Preparing update" : "Preparing update", "Turned on maintenance mode" : "Turned on maintenance mode", "Turned off maintenance mode" : "Turned off maintenance mode", "Maintenance mode is kept active" : "Maintenance mode is kept active", @@ -141,8 +142,6 @@ OC.L10N.register( "Expiration" : "Expiration", "Expiration date" : "Expiration date", "Choose a password for the public link" : "Choose a password for the public link", - "Sending ..." : "Sending ...", - "Email sent" : "Email sent", "Resharing is not allowed" : "Resharing is not allowed", "Share link" : "Share link", "Link" : "Link", @@ -151,6 +150,8 @@ OC.L10N.register( "Allow editing" : "Allow editing", "Email link to person" : "Email link to person", "Send" : "Send", + "Sending ..." : "Sending ...", + "Email sent" : "Email sent", "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}", "Shared with you by {owner}" : "Shared with you by {owner}", "group" : "group", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 66ca31f4c3e..51eabe6fe60 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -24,6 +24,7 @@ "Error favoriting" : "Error favouriting", "Error unfavoriting" : "Error unfavouriting", "Couldn't send mail to following users: %s " : "Couldn't send mail to following users: %s ", + "Preparing update" : "Preparing update", "Turned on maintenance mode" : "Turned on maintenance mode", "Turned off maintenance mode" : "Turned off maintenance mode", "Maintenance mode is kept active" : "Maintenance mode is kept active", @@ -139,8 +140,6 @@ "Expiration" : "Expiration", "Expiration date" : "Expiration date", "Choose a password for the public link" : "Choose a password for the public link", - "Sending ..." : "Sending ...", - "Email sent" : "Email sent", "Resharing is not allowed" : "Resharing is not allowed", "Share link" : "Share link", "Link" : "Link", @@ -149,6 +148,8 @@ "Allow editing" : "Allow editing", "Email link to person" : "Email link to person", "Send" : "Send", + "Sending ..." : "Sending ...", + "Email sent" : "Email sent", "Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}", "Shared with you by {owner}" : "Shared with you by {owner}", "group" : "group", diff --git a/core/l10n/eo.js b/core/l10n/eo.js index 38d5e87f2fb..45ee7db15bf 100644 --- a/core/l10n/eo.js +++ b/core/l10n/eo.js @@ -100,8 +100,6 @@ OC.L10N.register( "Expiration" : "Eksvalidiĝo", "Expiration date" : "Limdato", "Choose a password for the public link" : "Elektu pasvorton por la publika ligilo", - "Sending ..." : "Sendante...", - "Email sent" : "La retpoŝtaĵo sendiĝis", "Resharing is not allowed" : "Rekunhavigo ne permesatas", "Share link" : "Konhavigi ligilon", "Link" : "Ligilo", @@ -110,6 +108,8 @@ OC.L10N.register( "Allow editing" : "Permesi redakton", "Email link to person" : "Retpoŝti la ligilon al ulo", "Send" : "Sendi", + "Sending ..." : "Sendante...", + "Email sent" : "La retpoŝtaĵo sendiĝis", "Shared with you and the group {group} by {owner}" : "Kunhavigita kun vi kaj la grupo {group} de {owner}", "Shared with you by {owner}" : "Kunhavigita kun vi de {owner}", "group" : "grupo", diff --git a/core/l10n/eo.json b/core/l10n/eo.json index 200bb72f7fd..fafe6301225 100644 --- a/core/l10n/eo.json +++ b/core/l10n/eo.json @@ -98,8 +98,6 @@ "Expiration" : "Eksvalidiĝo", "Expiration date" : "Limdato", "Choose a password for the public link" : "Elektu pasvorton por la publika ligilo", - "Sending ..." : "Sendante...", - "Email sent" : "La retpoŝtaĵo sendiĝis", "Resharing is not allowed" : "Rekunhavigo ne permesatas", "Share link" : "Konhavigi ligilon", "Link" : "Ligilo", @@ -108,6 +106,8 @@ "Allow editing" : "Permesi redakton", "Email link to person" : "Retpoŝti la ligilon al ulo", "Send" : "Sendi", + "Sending ..." : "Sendante...", + "Email sent" : "La retpoŝtaĵo sendiĝis", "Shared with you and the group {group} by {owner}" : "Kunhavigita kun vi kaj la grupo {group} de {owner}", "Shared with you by {owner}" : "Kunhavigita kun vi de {owner}", "group" : "grupo", diff --git a/core/l10n/es.js b/core/l10n/es.js index c1edf10fa5d..faa1a1aceb9 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Error al marcar como favorito", "Error unfavoriting" : "Error al quitar como favorito", "Couldn't send mail to following users: %s " : "No se pudo enviar el mensaje a los siguientes usuarios: %s", + "Preparing update" : "Preparando la actualización", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Comprobando cuadro %s", "Turned on maintenance mode" : "Modo mantenimiento activado", @@ -143,8 +144,6 @@ OC.L10N.register( "Expiration" : "Expira en:", "Expiration date" : "Fecha de caducidad", "Choose a password for the public link" : "Elija una contraseña para el enlace publico", - "Sending ..." : "Enviando...", - "Email sent" : "Correo electrónico enviado", "Resharing is not allowed" : "No se permite compartir de nuevo", "Share link" : "Enlace compartido", "Link" : "Enlace", @@ -153,6 +152,8 @@ OC.L10N.register( "Allow editing" : "Permitir edición", "Email link to person" : "Enviar enlace por correo electrónico a una persona", "Send" : "Enviar", + "Sending ..." : "Enviando...", + "Email sent" : "Correo electrónico enviado", "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido contigo por {owner}", "group" : "grupo", diff --git a/core/l10n/es.json b/core/l10n/es.json index 167c4578cb0..49bc8c2e91d 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -24,6 +24,7 @@ "Error favoriting" : "Error al marcar como favorito", "Error unfavoriting" : "Error al quitar como favorito", "Couldn't send mail to following users: %s " : "No se pudo enviar el mensaje a los siguientes usuarios: %s", + "Preparing update" : "Preparando la actualización", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Comprobando cuadro %s", "Turned on maintenance mode" : "Modo mantenimiento activado", @@ -141,8 +142,6 @@ "Expiration" : "Expira en:", "Expiration date" : "Fecha de caducidad", "Choose a password for the public link" : "Elija una contraseña para el enlace publico", - "Sending ..." : "Enviando...", - "Email sent" : "Correo electrónico enviado", "Resharing is not allowed" : "No se permite compartir de nuevo", "Share link" : "Enlace compartido", "Link" : "Enlace", @@ -151,6 +150,8 @@ "Allow editing" : "Permitir edición", "Email link to person" : "Enviar enlace por correo electrónico a una persona", "Send" : "Enviar", + "Sending ..." : "Enviando...", + "Email sent" : "Correo electrónico enviado", "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido contigo por {owner}", "group" : "grupo", diff --git a/core/l10n/es_AR.js b/core/l10n/es_AR.js index cab16cb5553..c03dd6e04a2 100644 --- a/core/l10n/es_AR.js +++ b/core/l10n/es_AR.js @@ -88,14 +88,14 @@ OC.L10N.register( "Set expiration date" : "Asignar fecha de vencimiento", "Expiration" : "Vencimiento", "Expiration date" : "Fecha de vencimiento", - "Sending ..." : "Mandando...", - "Email sent" : "e-mail mandado", "Resharing is not allowed" : "No se permite volver a compartir", "Share link" : "Compartir vínculo", "Password protect" : "Proteger con contraseña ", "Password" : "Contraseña", "Email link to person" : "Enviar el enlace por e-mail.", "Send" : "Mandar", + "Sending ..." : "Mandando...", + "Email sent" : "e-mail mandado", "Shared with you and the group {group} by {owner}" : "Compartido con vos y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido con vos por {owner}", "group" : "grupo", diff --git a/core/l10n/es_AR.json b/core/l10n/es_AR.json index 44ba2344a16..53897d2e631 100644 --- a/core/l10n/es_AR.json +++ b/core/l10n/es_AR.json @@ -86,14 +86,14 @@ "Set expiration date" : "Asignar fecha de vencimiento", "Expiration" : "Vencimiento", "Expiration date" : "Fecha de vencimiento", - "Sending ..." : "Mandando...", - "Email sent" : "e-mail mandado", "Resharing is not allowed" : "No se permite volver a compartir", "Share link" : "Compartir vínculo", "Password protect" : "Proteger con contraseña ", "Password" : "Contraseña", "Email link to person" : "Enviar el enlace por e-mail.", "Send" : "Mandar", + "Sending ..." : "Mandando...", + "Email sent" : "e-mail mandado", "Shared with you and the group {group} by {owner}" : "Compartido con vos y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido con vos por {owner}", "group" : "grupo", diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js index 1764f8e78d0..91229d3bb01 100644 --- a/core/l10n/es_MX.js +++ b/core/l10n/es_MX.js @@ -82,14 +82,14 @@ OC.L10N.register( "Set expiration date" : "Establecer fecha de caducidad", "Expiration" : "Caducidad", "Expiration date" : "Fecha de caducidad", - "Sending ..." : "Enviando...", - "Email sent" : "Correo electrónico enviado", "Resharing is not allowed" : "No se permite compartir de nuevo", "Share link" : "Enlace compartido", "Password protect" : "Protección con contraseña", "Password" : "Contraseña", "Email link to person" : "Enviar enlace por correo electrónico a una persona", "Send" : "Enviar", + "Sending ..." : "Enviando...", + "Email sent" : "Correo electrónico enviado", "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido contigo por {owner}", "group" : "grupo", diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json index 7e981ab9862..916cc8a8dd2 100644 --- a/core/l10n/es_MX.json +++ b/core/l10n/es_MX.json @@ -80,14 +80,14 @@ "Set expiration date" : "Establecer fecha de caducidad", "Expiration" : "Caducidad", "Expiration date" : "Fecha de caducidad", - "Sending ..." : "Enviando...", - "Email sent" : "Correo electrónico enviado", "Resharing is not allowed" : "No se permite compartir de nuevo", "Share link" : "Enlace compartido", "Password protect" : "Protección con contraseña", "Password" : "Contraseña", "Email link to person" : "Enviar enlace por correo electrónico a una persona", "Send" : "Enviar", + "Sending ..." : "Enviando...", + "Email sent" : "Correo electrónico enviado", "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido contigo por {owner}", "group" : "grupo", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index 4a863f57e07..59e899751cf 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -23,6 +23,7 @@ OC.L10N.register( "Error favoriting" : "Viga lemmikuks lisamisel", "Error unfavoriting" : "Viga lemmikutest eemaldamisel", "Couldn't send mail to following users: %s " : "Kirja saatmine järgnevatele kasutajatele ebaõnnestus: %s ", + "Preparing update" : "Uuendamise ettevalmistamine", "[%d / %d]: %s" : "[%d / %d]: %s", "Turned on maintenance mode" : "Haldusrežiimis sisse lülitatud", "Turned off maintenance mode" : "Haldusrežiimis välja lülitatud", @@ -127,8 +128,6 @@ OC.L10N.register( "Expiration" : "Aegumine", "Expiration date" : "Aegumise kuupäev", "Choose a password for the public link" : "Vali avaliku lingi jaoks parool", - "Sending ..." : "Saatmine ...", - "Email sent" : "E-kiri on saadetud", "Resharing is not allowed" : "Edasijagamine pole lubatud", "Share link" : "Jaga linki", "Link" : "Link", @@ -137,6 +136,8 @@ OC.L10N.register( "Allow editing" : "Luba muutmine", "Email link to person" : "Saada link isikule e-postiga", "Send" : "Saada", + "Sending ..." : "Saatmine ...", + "Email sent" : "E-kiri on saadetud", "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja {group} grupiga {owner} poolt", "Shared with you by {owner}" : "Sinuga jagas {owner}", "group" : "grupp", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index dbf7eaeb9d6..800fd9aa492 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -21,6 +21,7 @@ "Error favoriting" : "Viga lemmikuks lisamisel", "Error unfavoriting" : "Viga lemmikutest eemaldamisel", "Couldn't send mail to following users: %s " : "Kirja saatmine järgnevatele kasutajatele ebaõnnestus: %s ", + "Preparing update" : "Uuendamise ettevalmistamine", "[%d / %d]: %s" : "[%d / %d]: %s", "Turned on maintenance mode" : "Haldusrežiimis sisse lülitatud", "Turned off maintenance mode" : "Haldusrežiimis välja lülitatud", @@ -125,8 +126,6 @@ "Expiration" : "Aegumine", "Expiration date" : "Aegumise kuupäev", "Choose a password for the public link" : "Vali avaliku lingi jaoks parool", - "Sending ..." : "Saatmine ...", - "Email sent" : "E-kiri on saadetud", "Resharing is not allowed" : "Edasijagamine pole lubatud", "Share link" : "Jaga linki", "Link" : "Link", @@ -135,6 +134,8 @@ "Allow editing" : "Luba muutmine", "Email link to person" : "Saada link isikule e-postiga", "Send" : "Saada", + "Sending ..." : "Saatmine ...", + "Email sent" : "E-kiri on saadetud", "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja {group} grupiga {owner} poolt", "Shared with you by {owner}" : "Sinuga jagas {owner}", "group" : "grupp", diff --git a/core/l10n/eu.js b/core/l10n/eu.js index 2b6ab7d5c8f..05b0077ed5c 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -106,8 +106,6 @@ OC.L10N.register( "Expiration" : "Iraungitzea", "Expiration date" : "Muga data", "Choose a password for the public link" : "Aukeratu pasahitz bat esteka publikorako", - "Sending ..." : "Bidaltzen ...", - "Email sent" : "Eposta bidalia", "Resharing is not allowed" : "Berriz elkarbanatzea ez dago baimendua", "Share link" : "Elkarbanatu lotura", "Link" : "Esteka", @@ -116,6 +114,8 @@ OC.L10N.register( "Allow editing" : "Baimendu editatzea", "Email link to person" : "Postaz bidali lotura ", "Send" : "Bidali", + "Sending ..." : "Bidaltzen ...", + "Email sent" : "Eposta bidalia", "Shared with you and the group {group} by {owner}" : "{owner}-k zu eta {group} taldearekin elkarbanatuta", "Shared with you by {owner}" : "{owner}-k zurekin elkarbanatuta", "group" : "taldea", diff --git a/core/l10n/eu.json b/core/l10n/eu.json index 712b41544f6..0e24727650f 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -104,8 +104,6 @@ "Expiration" : "Iraungitzea", "Expiration date" : "Muga data", "Choose a password for the public link" : "Aukeratu pasahitz bat esteka publikorako", - "Sending ..." : "Bidaltzen ...", - "Email sent" : "Eposta bidalia", "Resharing is not allowed" : "Berriz elkarbanatzea ez dago baimendua", "Share link" : "Elkarbanatu lotura", "Link" : "Esteka", @@ -114,6 +112,8 @@ "Allow editing" : "Baimendu editatzea", "Email link to person" : "Postaz bidali lotura ", "Send" : "Bidali", + "Sending ..." : "Bidaltzen ...", + "Email sent" : "Eposta bidalia", "Shared with you and the group {group} by {owner}" : "{owner}-k zu eta {group} taldearekin elkarbanatuta", "Shared with you by {owner}" : "{owner}-k zurekin elkarbanatuta", "group" : "taldea", diff --git a/core/l10n/fa.js b/core/l10n/fa.js index 9a56ef7782b..c7b65e617d0 100644 --- a/core/l10n/fa.js +++ b/core/l10n/fa.js @@ -19,6 +19,7 @@ OC.L10N.register( "Error favoriting" : "خطا هنگام افزودن به موارد محبوب", "Error unfavoriting" : "خطا هنگام حذف از موارد محبوب", "Couldn't send mail to following users: %s " : "ارسال ایمیل برای کاربران روبرو با شکست مواجه شد : %s", + "Preparing update" : "آمادهسازی به روز رسانی", "Turned on maintenance mode" : "حالت \" در دست تعمیر \" فعال شد .", "Turned off maintenance mode" : "حالت \" در دست تعمیر \" غیرفعال شد .", "Maintenance mode is kept active" : "حالت تعمیرات فعال نگهداشته شده است", @@ -113,8 +114,6 @@ OC.L10N.register( "Expiration" : "تاریخ انقضا", "Expiration date" : "تاریخ انقضا", "Choose a password for the public link" : "انتخاب رمز برای لینک عمومی", - "Sending ..." : "درحال ارسال ...", - "Email sent" : "ایمیل ارسال شد", "Resharing is not allowed" : "اشتراک گذاری مجدد مجاز نمی باشد", "Share link" : "اشتراک گذاشتن لینک", "Link" : "لینک", @@ -123,6 +122,8 @@ OC.L10N.register( "Allow editing" : "اجازهی ویرایش", "Email link to person" : "پیوند ایمیل برای شخص.", "Send" : "ارسال", + "Sending ..." : "درحال ارسال ...", + "Email sent" : "ایمیل ارسال شد", "Shared with you and the group {group} by {owner}" : "به اشتراک گذاشته شده با شما و گروه {گروه} توسط {دارنده}", "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط { دارنده}", "group" : "گروه", diff --git a/core/l10n/fa.json b/core/l10n/fa.json index 26afac6aa40..c31b48ee42f 100644 --- a/core/l10n/fa.json +++ b/core/l10n/fa.json @@ -17,6 +17,7 @@ "Error favoriting" : "خطا هنگام افزودن به موارد محبوب", "Error unfavoriting" : "خطا هنگام حذف از موارد محبوب", "Couldn't send mail to following users: %s " : "ارسال ایمیل برای کاربران روبرو با شکست مواجه شد : %s", + "Preparing update" : "آمادهسازی به روز رسانی", "Turned on maintenance mode" : "حالت \" در دست تعمیر \" فعال شد .", "Turned off maintenance mode" : "حالت \" در دست تعمیر \" غیرفعال شد .", "Maintenance mode is kept active" : "حالت تعمیرات فعال نگهداشته شده است", @@ -111,8 +112,6 @@ "Expiration" : "تاریخ انقضا", "Expiration date" : "تاریخ انقضا", "Choose a password for the public link" : "انتخاب رمز برای لینک عمومی", - "Sending ..." : "درحال ارسال ...", - "Email sent" : "ایمیل ارسال شد", "Resharing is not allowed" : "اشتراک گذاری مجدد مجاز نمی باشد", "Share link" : "اشتراک گذاشتن لینک", "Link" : "لینک", @@ -121,6 +120,8 @@ "Allow editing" : "اجازهی ویرایش", "Email link to person" : "پیوند ایمیل برای شخص.", "Send" : "ارسال", + "Sending ..." : "درحال ارسال ...", + "Email sent" : "ایمیل ارسال شد", "Shared with you and the group {group} by {owner}" : "به اشتراک گذاشته شده با شما و گروه {گروه} توسط {دارنده}", "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط { دارنده}", "group" : "گروه", diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js index 9763d90fe5c..1f1d15a9f60 100644 --- a/core/l10n/fi_FI.js +++ b/core/l10n/fi_FI.js @@ -26,7 +26,7 @@ OC.L10N.register( "Error favoriting" : "Suosituksen kirjoitusvirhe", "Error unfavoriting" : "Suosituksen poisto virhe", "Couldn't send mail to following users: %s " : "Sähköpostin lähetys seuraaville käyttäjille epäonnistui: %s", - "Updates need to be installed. Please use the command line updater." : "Päivitykset tulee asentaa. Käytä komentorivipäivitintä.", + "Preparing update" : "Valmistellaan päivitystä", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Tarkistetaan taulua %s", "Turned on maintenance mode" : "Siirrytty huoltotilaan", @@ -144,8 +144,6 @@ OC.L10N.register( "Expiration" : "Erääntyminen", "Expiration date" : "Päättymispäivä", "Choose a password for the public link" : "Valitse salasana julkiselle linkille", - "Sending ..." : "Lähetetään...", - "Email sent" : "Sähköposti lähetetty", "Resharing is not allowed" : "Jakaminen uudelleen ei ole salittu", "Share link" : "Jaa linkki", "Link" : "Linkki", @@ -154,6 +152,8 @@ OC.L10N.register( "Allow editing" : "Salli muokkaus", "Email link to person" : "Lähetä linkki sähköpostitse", "Send" : "Lähetä", + "Sending ..." : "Lähetetään...", + "Email sent" : "Sähköposti lähetetty", "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjän {owner} toimesta", "Shared with you by {owner}" : "Jaettu kanssasi käyttäjän {owner} toimesta", "group" : "ryhmä", diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json index 0253a823fd9..c1529fda98f 100644 --- a/core/l10n/fi_FI.json +++ b/core/l10n/fi_FI.json @@ -24,7 +24,7 @@ "Error favoriting" : "Suosituksen kirjoitusvirhe", "Error unfavoriting" : "Suosituksen poisto virhe", "Couldn't send mail to following users: %s " : "Sähköpostin lähetys seuraaville käyttäjille epäonnistui: %s", - "Updates need to be installed. Please use the command line updater." : "Päivitykset tulee asentaa. Käytä komentorivipäivitintä.", + "Preparing update" : "Valmistellaan päivitystä", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Tarkistetaan taulua %s", "Turned on maintenance mode" : "Siirrytty huoltotilaan", @@ -142,8 +142,6 @@ "Expiration" : "Erääntyminen", "Expiration date" : "Päättymispäivä", "Choose a password for the public link" : "Valitse salasana julkiselle linkille", - "Sending ..." : "Lähetetään...", - "Email sent" : "Sähköposti lähetetty", "Resharing is not allowed" : "Jakaminen uudelleen ei ole salittu", "Share link" : "Jaa linkki", "Link" : "Linkki", @@ -152,6 +150,8 @@ "Allow editing" : "Salli muokkaus", "Email link to person" : "Lähetä linkki sähköpostitse", "Send" : "Lähetä", + "Sending ..." : "Lähetetään...", + "Email sent" : "Sähköposti lähetetty", "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjän {owner} toimesta", "Shared with you by {owner}" : "Jaettu kanssasi käyttäjän {owner} toimesta", "group" : "ryhmä", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index 978e7411354..cc2d853e5a3 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Erreur lors de la mise en favori", "Error unfavoriting" : "Erreur lors de la suppression des favoris", "Couldn't send mail to following users: %s " : "Impossible d'envoyer un courriel aux utilisateurs suivants : %s", + "Preparing update" : "Préparation de la mise à jour", "Turned on maintenance mode" : "Mode de maintenance activé", "Turned off maintenance mode" : "Mode de maintenance désactivé", "Maintenance mode is kept active" : "Le mode de maintenance est laissé actif", @@ -149,8 +150,6 @@ OC.L10N.register( "Expiration" : "Expiration", "Expiration date" : "Date d'expiration", "Choose a password for the public link" : "Choisissez un mot de passe pour le lien public", - "Sending ..." : "Envoi…", - "Email sent" : "Courriel envoyé", "Resharing is not allowed" : "Le repartage n'est pas autorisé", "Share link" : "Partager par lien public", "Link" : "Lien", @@ -159,6 +158,8 @@ OC.L10N.register( "Allow editing" : "Permettre la modification", "Email link to person" : "Envoyer le lien par courriel", "Send" : "Envoyer", + "Sending ..." : "Envoi…", + "Email sent" : "Courriel envoyé", "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", "Shared with you by {owner}" : "Partagé avec vous par {owner}", "group" : "groupe", @@ -302,6 +303,7 @@ OC.L10N.register( "Start update" : "Démarrer la mise à jour", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Afin d'éviter les timeouts avec les installations de volume conséquent, vous pouvez exécuter la commande suivante depuis le répertoire d'installation :", "Detailed logs" : "Journaux détaillés", + "Update needed" : "Mise à jour nécessaire", "This %s instance is currently in maintenance mode, which may take a while." : "Cette instance de %s est en cours de maintenance, cela peut prendre du temps.", "This page will refresh itself when the %s instance is available again." : "Cette page se rafraîchira d'elle-même lorsque l'instance %s sera à nouveau disponible." }, diff --git a/core/l10n/fr.json b/core/l10n/fr.json index d8d1f32bd30..c37fca44e35 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -24,6 +24,7 @@ "Error favoriting" : "Erreur lors de la mise en favori", "Error unfavoriting" : "Erreur lors de la suppression des favoris", "Couldn't send mail to following users: %s " : "Impossible d'envoyer un courriel aux utilisateurs suivants : %s", + "Preparing update" : "Préparation de la mise à jour", "Turned on maintenance mode" : "Mode de maintenance activé", "Turned off maintenance mode" : "Mode de maintenance désactivé", "Maintenance mode is kept active" : "Le mode de maintenance est laissé actif", @@ -147,8 +148,6 @@ "Expiration" : "Expiration", "Expiration date" : "Date d'expiration", "Choose a password for the public link" : "Choisissez un mot de passe pour le lien public", - "Sending ..." : "Envoi…", - "Email sent" : "Courriel envoyé", "Resharing is not allowed" : "Le repartage n'est pas autorisé", "Share link" : "Partager par lien public", "Link" : "Lien", @@ -157,6 +156,8 @@ "Allow editing" : "Permettre la modification", "Email link to person" : "Envoyer le lien par courriel", "Send" : "Envoyer", + "Sending ..." : "Envoi…", + "Email sent" : "Courriel envoyé", "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", "Shared with you by {owner}" : "Partagé avec vous par {owner}", "group" : "groupe", @@ -300,6 +301,7 @@ "Start update" : "Démarrer la mise à jour", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Afin d'éviter les timeouts avec les installations de volume conséquent, vous pouvez exécuter la commande suivante depuis le répertoire d'installation :", "Detailed logs" : "Journaux détaillés", + "Update needed" : "Mise à jour nécessaire", "This %s instance is currently in maintenance mode, which may take a while." : "Cette instance de %s est en cours de maintenance, cela peut prendre du temps.", "This page will refresh itself when the %s instance is available again." : "Cette page se rafraîchira d'elle-même lorsque l'instance %s sera à nouveau disponible." },"pluralForm" :"nplurals=2; plural=(n > 1);" diff --git a/core/l10n/gl.js b/core/l10n/gl.js index af7f1fdc32b..f6c7ee96918 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -125,8 +125,6 @@ OC.L10N.register( "Expiration" : "Caducidade", "Expiration date" : "Data de caducidade", "Choose a password for the public link" : "Escolla un contrasinal para a ligazón pública", - "Sending ..." : "Enviando...", - "Email sent" : "Correo enviado", "Resharing is not allowed" : "Non se permite volver compartir", "Share link" : "Ligazón para compartir", "Link" : "Ligazón", @@ -135,6 +133,8 @@ OC.L10N.register( "Allow editing" : "Permitir a edición", "Email link to person" : "Enviar ligazón por correo", "Send" : "Enviar", + "Sending ..." : "Enviando...", + "Email sent" : "Correo enviado", "Shared with you and the group {group} by {owner}" : "Compartido con vostede e co grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido con vostede por {owner}", "group" : "grupo", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index aee11d6f7f5..38fae1bf521 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -123,8 +123,6 @@ "Expiration" : "Caducidade", "Expiration date" : "Data de caducidade", "Choose a password for the public link" : "Escolla un contrasinal para a ligazón pública", - "Sending ..." : "Enviando...", - "Email sent" : "Correo enviado", "Resharing is not allowed" : "Non se permite volver compartir", "Share link" : "Ligazón para compartir", "Link" : "Ligazón", @@ -133,6 +131,8 @@ "Allow editing" : "Permitir a edición", "Email link to person" : "Enviar ligazón por correo", "Send" : "Enviar", + "Sending ..." : "Enviando...", + "Email sent" : "Correo enviado", "Shared with you and the group {group} by {owner}" : "Compartido con vostede e co grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido con vostede por {owner}", "group" : "grupo", diff --git a/core/l10n/he.js b/core/l10n/he.js index f4ff27b1ac4..317cd79a835 100644 --- a/core/l10n/he.js +++ b/core/l10n/he.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "שגיאה בקביעת מועדפים", "Error unfavoriting" : "שגיאה בהסרת מועדפים", "Couldn't send mail to following users: %s " : "לא ניתן היה לשלוח דואר אלקטרוני למשתמשים הבאים %s ", + "Preparing update" : "מכין עדכון", "Turned on maintenance mode" : "הפעלת מצב אחזקה", "Turned off maintenance mode" : "כיבוי מצב אחזקה", "Maintenance mode is kept active" : "מצב אחזקה נשמר פעיל", @@ -141,8 +142,6 @@ OC.L10N.register( "Expiration" : "תפוגה", "Expiration date" : "תאריך התפוגה", "Choose a password for the public link" : "בחירת סיסמא לקישור ציבורי", - "Sending ..." : "מתבצעת שליחה ...", - "Email sent" : "הודעת הדוא״ל נשלחה", "Resharing is not allowed" : "אסור לעשות שיתוף מחדש", "Share link" : "קישור לשיתוף", "Link" : "קישור", @@ -151,6 +150,8 @@ OC.L10N.register( "Allow editing" : "אישור עריכה", "Email link to person" : "שליחת קישור בדוא״ל למשתמש", "Send" : "שליחה", + "Sending ..." : "מתבצעת שליחה ...", + "Email sent" : "הודעת הדוא״ל נשלחה", "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} שבבעלות {owner}", "Shared with you by {owner}" : "שותף אתך על ידי {owner}", "group" : "קבוצה", diff --git a/core/l10n/he.json b/core/l10n/he.json index 8715b59ab6c..f94421b3553 100644 --- a/core/l10n/he.json +++ b/core/l10n/he.json @@ -24,6 +24,7 @@ "Error favoriting" : "שגיאה בקביעת מועדפים", "Error unfavoriting" : "שגיאה בהסרת מועדפים", "Couldn't send mail to following users: %s " : "לא ניתן היה לשלוח דואר אלקטרוני למשתמשים הבאים %s ", + "Preparing update" : "מכין עדכון", "Turned on maintenance mode" : "הפעלת מצב אחזקה", "Turned off maintenance mode" : "כיבוי מצב אחזקה", "Maintenance mode is kept active" : "מצב אחזקה נשמר פעיל", @@ -139,8 +140,6 @@ "Expiration" : "תפוגה", "Expiration date" : "תאריך התפוגה", "Choose a password for the public link" : "בחירת סיסמא לקישור ציבורי", - "Sending ..." : "מתבצעת שליחה ...", - "Email sent" : "הודעת הדוא״ל נשלחה", "Resharing is not allowed" : "אסור לעשות שיתוף מחדש", "Share link" : "קישור לשיתוף", "Link" : "קישור", @@ -149,6 +148,8 @@ "Allow editing" : "אישור עריכה", "Email link to person" : "שליחת קישור בדוא״ל למשתמש", "Send" : "שליחה", + "Sending ..." : "מתבצעת שליחה ...", + "Email sent" : "הודעת הדוא״ל נשלחה", "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} שבבעלות {owner}", "Shared with you by {owner}" : "שותף אתך על ידי {owner}", "group" : "קבוצה", diff --git a/core/l10n/hi.js b/core/l10n/hi.js index df717fd1ac5..ee8f248c4e6 100644 --- a/core/l10n/hi.js +++ b/core/l10n/hi.js @@ -24,10 +24,10 @@ OC.L10N.register( "Saving..." : "सहेज रहे हैं...", "Cancel" : "रद्द करें ", "Error" : "त्रुटि", - "Sending ..." : "भेजा जा रहा है", - "Email sent" : "ईमेल भेज दिया गया है ", "Password" : "पासवर्ड", "Send" : "भेजें", + "Sending ..." : "भेजा जा रहा है", + "Email sent" : "ईमेल भेज दिया गया है ", "Share" : "साझा करें", "Warning" : "चेतावनी ", "Add" : "डाले", diff --git a/core/l10n/hi.json b/core/l10n/hi.json index 877b65381a7..49231ad0df9 100644 --- a/core/l10n/hi.json +++ b/core/l10n/hi.json @@ -22,10 +22,10 @@ "Saving..." : "सहेज रहे हैं...", "Cancel" : "रद्द करें ", "Error" : "त्रुटि", - "Sending ..." : "भेजा जा रहा है", - "Email sent" : "ईमेल भेज दिया गया है ", "Password" : "पासवर्ड", "Send" : "भेजें", + "Sending ..." : "भेजा जा रहा है", + "Email sent" : "ईमेल भेज दिया गया है ", "Share" : "साझा करें", "Warning" : "चेतावनी ", "Add" : "डाले", diff --git a/core/l10n/hr.js b/core/l10n/hr.js index ff1e220ae68..d2c6c1757f2 100644 --- a/core/l10n/hr.js +++ b/core/l10n/hr.js @@ -105,8 +105,6 @@ OC.L10N.register( "Expiration" : "Istjeće", "Expiration date" : "Datum isteka", "Choose a password for the public link" : "Odaberite lozinku za javnu vezu", - "Sending ..." : "Slanje...", - "Email sent" : "E-pošta poslana", "Resharing is not allowed" : "Ponovno dijeljenje nije dopušteno", "Share link" : "Podijelite vezu", "Link" : "Poveznica", @@ -115,6 +113,8 @@ OC.L10N.register( "Allow editing" : "Omogući uređivanje", "Email link to person" : "Pošaljite osobi vezu e-poštom", "Send" : "Pošaljite", + "Sending ..." : "Slanje...", + "Email sent" : "E-pošta poslana", "Shared with you and the group {group} by {owner}" : "Dijeljeno s vama i grupom {group} vlasnika {owner}", "Shared with you by {owner}" : "S vama podijelio {owner}", "group" : "Grupa", diff --git a/core/l10n/hr.json b/core/l10n/hr.json index a42d7c797b0..6b1196c1c08 100644 --- a/core/l10n/hr.json +++ b/core/l10n/hr.json @@ -103,8 +103,6 @@ "Expiration" : "Istjeće", "Expiration date" : "Datum isteka", "Choose a password for the public link" : "Odaberite lozinku za javnu vezu", - "Sending ..." : "Slanje...", - "Email sent" : "E-pošta poslana", "Resharing is not allowed" : "Ponovno dijeljenje nije dopušteno", "Share link" : "Podijelite vezu", "Link" : "Poveznica", @@ -113,6 +111,8 @@ "Allow editing" : "Omogući uređivanje", "Email link to person" : "Pošaljite osobi vezu e-poštom", "Send" : "Pošaljite", + "Sending ..." : "Slanje...", + "Email sent" : "E-pošta poslana", "Shared with you and the group {group} by {owner}" : "Dijeljeno s vama i grupom {group} vlasnika {owner}", "Shared with you by {owner}" : "S vama podijelio {owner}", "group" : "Grupa", diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js index aa561e3249e..ddade19d500 100644 --- a/core/l10n/hu_HU.js +++ b/core/l10n/hu_HU.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Hiba a kedvencekhez adáskor", "Error unfavoriting" : "Hiba a kedvencekből törléskor", "Couldn't send mail to following users: %s " : "Nem sikerült e-mailt küldeni a következő felhasználóknak: %s", + "Preparing update" : "Felkészülés a frissítésre", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Tábla ellenőrzése: %s", "Turned on maintenance mode" : "A karbantartási mód bekapcsolva", @@ -151,8 +152,6 @@ OC.L10N.register( "Expiration" : "Lejárat", "Expiration date" : "Lejárati idő", "Choose a password for the public link" : "Válasszon egy jelszót a nyilvános linkhez", - "Sending ..." : "Küldés ...", - "Email sent" : "Az e-mailt elküldtük!", "Resharing is not allowed" : "Ezt az állományt csak a tulajdonosa oszthatja meg másokkal", "Share link" : "Megosztás hivatkozással", "Link" : "Hivatkozás", @@ -161,6 +160,8 @@ OC.L10N.register( "Allow editing" : "Szerkesztés engedélyezése", "Email link to person" : "Hivatkozás elküldése e-mail címre", "Send" : "Küldés", + "Sending ..." : "Küldés ...", + "Email sent" : "Az e-mailt elküldtük!", "Shared with you and the group {group} by {owner}" : "{owner} megosztotta Önnel és a(z) {group} csoporttal", "Shared with you by {owner}" : "{owner} megosztotta Önnel", "group" : "csoport", diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json index 6640d0999c7..a8c47387366 100644 --- a/core/l10n/hu_HU.json +++ b/core/l10n/hu_HU.json @@ -24,6 +24,7 @@ "Error favoriting" : "Hiba a kedvencekhez adáskor", "Error unfavoriting" : "Hiba a kedvencekből törléskor", "Couldn't send mail to following users: %s " : "Nem sikerült e-mailt küldeni a következő felhasználóknak: %s", + "Preparing update" : "Felkészülés a frissítésre", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Tábla ellenőrzése: %s", "Turned on maintenance mode" : "A karbantartási mód bekapcsolva", @@ -149,8 +150,6 @@ "Expiration" : "Lejárat", "Expiration date" : "Lejárati idő", "Choose a password for the public link" : "Válasszon egy jelszót a nyilvános linkhez", - "Sending ..." : "Küldés ...", - "Email sent" : "Az e-mailt elküldtük!", "Resharing is not allowed" : "Ezt az állományt csak a tulajdonosa oszthatja meg másokkal", "Share link" : "Megosztás hivatkozással", "Link" : "Hivatkozás", @@ -159,6 +158,8 @@ "Allow editing" : "Szerkesztés engedélyezése", "Email link to person" : "Hivatkozás elküldése e-mail címre", "Send" : "Küldés", + "Sending ..." : "Küldés ...", + "Email sent" : "Az e-mailt elküldtük!", "Shared with you and the group {group} by {owner}" : "{owner} megosztotta Önnel és a(z) {group} csoporttal", "Shared with you by {owner}" : "{owner} megosztotta Önnel", "group" : "csoport", diff --git a/core/l10n/ia.js b/core/l10n/ia.js index 28bc78f8dfc..a300c477831 100644 --- a/core/l10n/ia.js +++ b/core/l10n/ia.js @@ -86,14 +86,14 @@ OC.L10N.register( "Set expiration date" : "Fixa data de expiration", "Expiration date" : "Data de expiration", "Choose a password for the public link" : "Selige un contrasigno pro le ligamine public", - "Sending ..." : "Inviante ...", - "Email sent" : "Message de e-posta inviate", "Resharing is not allowed" : "Il non es permittite compartir plus que un vice", "Share link" : "Compartir ligamine", "Password protect" : "Protegite per contrasigno", "Password" : "Contrasigno", "Email link to person" : "Ligamine de e-posta a persona", "Send" : "Invia", + "Sending ..." : "Inviante ...", + "Email sent" : "Message de e-posta inviate", "Shared with you and the group {group} by {owner}" : "Compartite con te e le gruppo {group} per {owner}", "Shared with you by {owner}" : "Compartite con te per {owner} ", "group" : "gruppo", diff --git a/core/l10n/ia.json b/core/l10n/ia.json index ea546d0bdcd..9874e125665 100644 --- a/core/l10n/ia.json +++ b/core/l10n/ia.json @@ -84,14 +84,14 @@ "Set expiration date" : "Fixa data de expiration", "Expiration date" : "Data de expiration", "Choose a password for the public link" : "Selige un contrasigno pro le ligamine public", - "Sending ..." : "Inviante ...", - "Email sent" : "Message de e-posta inviate", "Resharing is not allowed" : "Il non es permittite compartir plus que un vice", "Share link" : "Compartir ligamine", "Password protect" : "Protegite per contrasigno", "Password" : "Contrasigno", "Email link to person" : "Ligamine de e-posta a persona", "Send" : "Invia", + "Sending ..." : "Inviante ...", + "Email sent" : "Message de e-posta inviate", "Shared with you and the group {group} by {owner}" : "Compartite con te e le gruppo {group} per {owner}", "Shared with you by {owner}" : "Compartite con te per {owner} ", "group" : "gruppo", diff --git a/core/l10n/id.js b/core/l10n/id.js index 31c6cf46b11..76d0fff6006 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -24,6 +24,7 @@ OC.L10N.register( "Error favoriting" : "Kesalahan saat memberikan sebagai favorit", "Error unfavoriting" : "Kesalahan saat menghapus sebagai favorit", "Couldn't send mail to following users: %s " : "Tidak dapat mengirim Email ke pengguna berikut: %s", + "Preparing update" : "Mempersiapkan pembaruan", "Turned on maintenance mode" : "Hidupkan mode perawatan", "Turned off maintenance mode" : "Matikan mode perawatan", "Maintenance mode is kept active" : "Mode Pemeliharaan masih aktif", @@ -134,8 +135,6 @@ OC.L10N.register( "Expiration" : "Kedaluwarsa", "Expiration date" : "Tanggal kedaluwarsa", "Choose a password for the public link" : "Tetapkan sandi untuk tautan publik", - "Sending ..." : "Mengirim ...", - "Email sent" : "Email terkirim", "Resharing is not allowed" : "Berbagi ulang tidak diizinkan", "Share link" : "Bagikan tautan", "Link" : "Tautan", @@ -144,6 +143,8 @@ OC.L10N.register( "Allow editing" : "Izinkan penyuntingan", "Email link to person" : "Emailkan tautan ini ke orang", "Send" : "Kirim", + "Sending ..." : "Mengirim ...", + "Email sent" : "Email terkirim", "Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}", "Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}", "group" : "grup", diff --git a/core/l10n/id.json b/core/l10n/id.json index 68df5413b2f..50a03100353 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -22,6 +22,7 @@ "Error favoriting" : "Kesalahan saat memberikan sebagai favorit", "Error unfavoriting" : "Kesalahan saat menghapus sebagai favorit", "Couldn't send mail to following users: %s " : "Tidak dapat mengirim Email ke pengguna berikut: %s", + "Preparing update" : "Mempersiapkan pembaruan", "Turned on maintenance mode" : "Hidupkan mode perawatan", "Turned off maintenance mode" : "Matikan mode perawatan", "Maintenance mode is kept active" : "Mode Pemeliharaan masih aktif", @@ -132,8 +133,6 @@ "Expiration" : "Kedaluwarsa", "Expiration date" : "Tanggal kedaluwarsa", "Choose a password for the public link" : "Tetapkan sandi untuk tautan publik", - "Sending ..." : "Mengirim ...", - "Email sent" : "Email terkirim", "Resharing is not allowed" : "Berbagi ulang tidak diizinkan", "Share link" : "Bagikan tautan", "Link" : "Tautan", @@ -142,6 +141,8 @@ "Allow editing" : "Izinkan penyuntingan", "Email link to person" : "Emailkan tautan ini ke orang", "Send" : "Kirim", + "Sending ..." : "Mengirim ...", + "Email sent" : "Email terkirim", "Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}", "Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}", "group" : "grup", diff --git a/core/l10n/is.js b/core/l10n/is.js index e08103ab610..5e4ac4fec5d 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Villa við bókmerkingu ", "Error unfavoriting" : "Villa við afmá bókmerkingu", "Couldn't send mail to following users: %s " : "Gat ekki sent póst á eftirfarandi notendur: %s", + "Preparing update" : "Undirbý uppfærslu", "Turned on maintenance mode" : "Kveikt á viðhaldsham", "Turned off maintenance mode" : "Slökkt á viðhaldsham", "Maintenance mode is kept active" : "Viðhaldsham er haldið virkum", @@ -141,8 +142,6 @@ OC.L10N.register( "Expiration" : "Rennur út", "Expiration date" : "Gildir til", "Choose a password for the public link" : "Veldu þér lykilorð fyrir almenningstengil", - "Sending ..." : "Sendi ...", - "Email sent" : "Tölvupóstur sendur", "Resharing is not allowed" : "Endurdeiling er ekki leyfð", "Share link" : "Deila tengli", "Link" : "Tengill", @@ -151,6 +150,8 @@ OC.L10N.register( "Allow editing" : "Leyfa breytingar", "Email link to person" : "Senda veftengil í tölvupósti til notanda", "Send" : "Senda", + "Sending ..." : "Sendi ...", + "Email sent" : "Tölvupóstur sendur", "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}", "Shared with you by {owner}" : "Deilt með þér af {owner}", "group" : "hópur", diff --git a/core/l10n/is.json b/core/l10n/is.json index f49963583f4..7fae2146d13 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -24,6 +24,7 @@ "Error favoriting" : "Villa við bókmerkingu ", "Error unfavoriting" : "Villa við afmá bókmerkingu", "Couldn't send mail to following users: %s " : "Gat ekki sent póst á eftirfarandi notendur: %s", + "Preparing update" : "Undirbý uppfærslu", "Turned on maintenance mode" : "Kveikt á viðhaldsham", "Turned off maintenance mode" : "Slökkt á viðhaldsham", "Maintenance mode is kept active" : "Viðhaldsham er haldið virkum", @@ -139,8 +140,6 @@ "Expiration" : "Rennur út", "Expiration date" : "Gildir til", "Choose a password for the public link" : "Veldu þér lykilorð fyrir almenningstengil", - "Sending ..." : "Sendi ...", - "Email sent" : "Tölvupóstur sendur", "Resharing is not allowed" : "Endurdeiling er ekki leyfð", "Share link" : "Deila tengli", "Link" : "Tengill", @@ -149,6 +148,8 @@ "Allow editing" : "Leyfa breytingar", "Email link to person" : "Senda veftengil í tölvupósti til notanda", "Send" : "Senda", + "Sending ..." : "Sendi ...", + "Email sent" : "Tölvupóstur sendur", "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}", "Shared with you by {owner}" : "Deilt með þér af {owner}", "group" : "hópur", diff --git a/core/l10n/it.js b/core/l10n/it.js index 808155cc3d8..ac3f7f0a73a 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -26,6 +26,8 @@ OC.L10N.register( "Error favoriting" : "Errore di creazione dei preferiti", "Error unfavoriting" : "Errore di rimozione dai preferiti", "Couldn't send mail to following users: %s " : "Impossibile inviare email ai seguenti utenti: %s", + "Preparing update" : "Preparazione aggiornamento", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Utilizza lo strumento da riga di comando poiché l'aggiornamento automatico è disabilitato nel file config.php.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: controllo della tabella %s", "Turned on maintenance mode" : "Modalità di manutenzione attivata", @@ -151,8 +153,6 @@ OC.L10N.register( "Expiration" : "Scadenza", "Expiration date" : "Data di scadenza", "Choose a password for the public link" : "Scegli una password per il collegamento pubblico", - "Sending ..." : "Invio in corso...", - "Email sent" : "Messaggio inviato", "Resharing is not allowed" : "La ri-condivisione non è consentita", "Share link" : "Condividi collegamento", "Link" : "Collegamento", @@ -161,6 +161,8 @@ OC.L10N.register( "Allow editing" : "Consenti la modifica", "Email link to person" : "Invia collegamento via email", "Send" : "Invia", + "Sending ..." : "Invio in corso...", + "Email sent" : "Messaggio inviato", "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}", "Shared with you by {owner}" : "Condiviso con te da {owner}", "group" : "gruppo", @@ -304,6 +306,9 @@ OC.L10N.register( "Start update" : "Avvia l'aggiornamento", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Per evitare timeout con installazioni di grandi dimensioni, puoi eseguire il comando che segue dalla cartella di installazione:", "Detailed logs" : "Log dettagliati", + "Update needed" : "Aggiornamento necessario", + "Please use the command line updater because you have a big instance." : "Utilizza lo strumento da riga di comando per la grandezza della tua istanza.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Per la guida, vedi la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentazione</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Questa istanza di %s è attualmente in manutenzione, potrebbe richiedere del tempo.", "This page will refresh itself when the %s instance is available again." : "Questa pagina si aggiornerà quando l'istanza di %s sarà nuovamente disponibile." }, diff --git a/core/l10n/it.json b/core/l10n/it.json index aaa41816b69..0615c94505e 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -24,6 +24,8 @@ "Error favoriting" : "Errore di creazione dei preferiti", "Error unfavoriting" : "Errore di rimozione dai preferiti", "Couldn't send mail to following users: %s " : "Impossibile inviare email ai seguenti utenti: %s", + "Preparing update" : "Preparazione aggiornamento", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Utilizza lo strumento da riga di comando poiché l'aggiornamento automatico è disabilitato nel file config.php.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: controllo della tabella %s", "Turned on maintenance mode" : "Modalità di manutenzione attivata", @@ -149,8 +151,6 @@ "Expiration" : "Scadenza", "Expiration date" : "Data di scadenza", "Choose a password for the public link" : "Scegli una password per il collegamento pubblico", - "Sending ..." : "Invio in corso...", - "Email sent" : "Messaggio inviato", "Resharing is not allowed" : "La ri-condivisione non è consentita", "Share link" : "Condividi collegamento", "Link" : "Collegamento", @@ -159,6 +159,8 @@ "Allow editing" : "Consenti la modifica", "Email link to person" : "Invia collegamento via email", "Send" : "Invia", + "Sending ..." : "Invio in corso...", + "Email sent" : "Messaggio inviato", "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}", "Shared with you by {owner}" : "Condiviso con te da {owner}", "group" : "gruppo", @@ -302,6 +304,9 @@ "Start update" : "Avvia l'aggiornamento", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Per evitare timeout con installazioni di grandi dimensioni, puoi eseguire il comando che segue dalla cartella di installazione:", "Detailed logs" : "Log dettagliati", + "Update needed" : "Aggiornamento necessario", + "Please use the command line updater because you have a big instance." : "Utilizza lo strumento da riga di comando per la grandezza della tua istanza.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Per la guida, vedi la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentazione</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Questa istanza di %s è attualmente in manutenzione, potrebbe richiedere del tempo.", "This page will refresh itself when the %s instance is available again." : "Questa pagina si aggiornerà quando l'istanza di %s sarà nuovamente disponibile." },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/core/l10n/ja.js b/core/l10n/ja.js index ef86a76c7d8..ae390b14bed 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "お気に入りに追加エラー", "Error unfavoriting" : "お気に入りから削除エラー", "Couldn't send mail to following users: %s " : "次のユーザーにメールを送信できませんでした: %s", + "Preparing update" : "アップデートの準備中", "Turned on maintenance mode" : "メンテナンスモードがオンになりました", "Turned off maintenance mode" : "メンテナンスモードがオフになりました", "Maintenance mode is kept active" : "メンテナンスモードが継続中です", @@ -141,8 +142,6 @@ OC.L10N.register( "Expiration" : "期限切れ", "Expiration date" : "有効期限", "Choose a password for the public link" : "URLによる共有のパスワードを入力", - "Sending ..." : "送信中...", - "Email sent" : "メールを送信しました", "Resharing is not allowed" : "再共有は許可されていません", "Share link" : "URLで共有", "Link" : "リンク", @@ -151,6 +150,8 @@ OC.L10N.register( "Allow editing" : "編集を許可", "Email link to person" : "メールリンク", "Send" : "送信", + "Sending ..." : "送信中...", + "Email sent" : "メールを送信しました", "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中", "Shared with you by {owner}" : "{owner} と共有中", "group" : "グループ", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index 361bc109353..000069bedbc 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -24,6 +24,7 @@ "Error favoriting" : "お気に入りに追加エラー", "Error unfavoriting" : "お気に入りから削除エラー", "Couldn't send mail to following users: %s " : "次のユーザーにメールを送信できませんでした: %s", + "Preparing update" : "アップデートの準備中", "Turned on maintenance mode" : "メンテナンスモードがオンになりました", "Turned off maintenance mode" : "メンテナンスモードがオフになりました", "Maintenance mode is kept active" : "メンテナンスモードが継続中です", @@ -139,8 +140,6 @@ "Expiration" : "期限切れ", "Expiration date" : "有効期限", "Choose a password for the public link" : "URLによる共有のパスワードを入力", - "Sending ..." : "送信中...", - "Email sent" : "メールを送信しました", "Resharing is not allowed" : "再共有は許可されていません", "Share link" : "URLで共有", "Link" : "リンク", @@ -149,6 +148,8 @@ "Allow editing" : "編集を許可", "Email link to person" : "メールリンク", "Send" : "送信", + "Sending ..." : "送信中...", + "Email sent" : "メールを送信しました", "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中", "Shared with you by {owner}" : "{owner} と共有中", "group" : "グループ", diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js index 34f6870ced1..4b2fb1c322c 100644 --- a/core/l10n/ka_GE.js +++ b/core/l10n/ka_GE.js @@ -56,13 +56,13 @@ OC.L10N.register( "Set expiration date" : "მიუთითე ვადის გასვლის დრო", "Expiration" : "ვადის გასვლის დრო", "Expiration date" : "ვადის გასვლის დრო", - "Sending ..." : "გაგზავნა ....", - "Email sent" : "იმეილი გაიგზავნა", "Resharing is not allowed" : "მეორეჯერ გაზიარება არ არის დაშვებული", "Password protect" : "პაროლით დაცვა", "Password" : "პაროლი", "Email link to person" : "ლინკის პიროვნების იმეილზე გაგზავნა", "Send" : "გაგზავნა", + "Sending ..." : "გაგზავნა ....", + "Email sent" : "იმეილი გაიგზავნა", "Shared with you and the group {group} by {owner}" : "გაზიარდა თქვენთვის და ჯგუფისთვის {group}, {owner}–ის მიერ", "Shared with you by {owner}" : "გაზიარდა თქვენთვის {owner}–ის მიერ", "group" : "ჯგუფი", diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json index 30572fd1353..cce256a0c97 100644 --- a/core/l10n/ka_GE.json +++ b/core/l10n/ka_GE.json @@ -54,13 +54,13 @@ "Set expiration date" : "მიუთითე ვადის გასვლის დრო", "Expiration" : "ვადის გასვლის დრო", "Expiration date" : "ვადის გასვლის დრო", - "Sending ..." : "გაგზავნა ....", - "Email sent" : "იმეილი გაიგზავნა", "Resharing is not allowed" : "მეორეჯერ გაზიარება არ არის დაშვებული", "Password protect" : "პაროლით დაცვა", "Password" : "პაროლი", "Email link to person" : "ლინკის პიროვნების იმეილზე გაგზავნა", "Send" : "გაგზავნა", + "Sending ..." : "გაგზავნა ....", + "Email sent" : "იმეილი გაიგზავნა", "Shared with you and the group {group} by {owner}" : "გაზიარდა თქვენთვის და ჯგუფისთვის {group}, {owner}–ის მიერ", "Shared with you by {owner}" : "გაზიარდა თქვენთვის {owner}–ის მიერ", "group" : "ჯგუფი", diff --git a/core/l10n/km.js b/core/l10n/km.js index de686fb77f1..c3f65dc9db1 100644 --- a/core/l10n/km.js +++ b/core/l10n/km.js @@ -65,12 +65,12 @@ OC.L10N.register( "Error while unsharing" : "កំពុងពេលលែងចែករំលែក", "Set expiration date" : "កំណត់ពេលផុតកំណត់", "Expiration date" : "ពេលផុតកំណត់", - "Sending ..." : "កំពុងផ្ញើ ...", - "Email sent" : "បានផ្ញើអ៊ីមែល", "Resharing is not allowed" : "មិនអនុញ្ញាតឲ្យមានការចែករំលែកឡើងវិញ", "Password protect" : "ការពារដោយពាក្យសម្ងាត់", "Password" : "ពាក្យសម្ងាត់", "Send" : "ផ្ញើ", + "Sending ..." : "កំពុងផ្ញើ ...", + "Email sent" : "បានផ្ញើអ៊ីមែល", "Shared with you and the group {group} by {owner}" : "បានចែករំលែកជាមួយអ្នក និងក្រុម {group} ដោយ {owner}", "Shared with you by {owner}" : "បានចែករំលែកជាមួយអ្នកដោយ {owner}", "group" : "ក្រុម", diff --git a/core/l10n/km.json b/core/l10n/km.json index 4c8a72f6864..4705382cc04 100644 --- a/core/l10n/km.json +++ b/core/l10n/km.json @@ -63,12 +63,12 @@ "Error while unsharing" : "កំពុងពេលលែងចែករំលែក", "Set expiration date" : "កំណត់ពេលផុតកំណត់", "Expiration date" : "ពេលផុតកំណត់", - "Sending ..." : "កំពុងផ្ញើ ...", - "Email sent" : "បានផ្ញើអ៊ីមែល", "Resharing is not allowed" : "មិនអនុញ្ញាតឲ្យមានការចែករំលែកឡើងវិញ", "Password protect" : "ការពារដោយពាក្យសម្ងាត់", "Password" : "ពាក្យសម្ងាត់", "Send" : "ផ្ញើ", + "Sending ..." : "កំពុងផ្ញើ ...", + "Email sent" : "បានផ្ញើអ៊ីមែល", "Shared with you and the group {group} by {owner}" : "បានចែករំលែកជាមួយអ្នក និងក្រុម {group} ដោយ {owner}", "Shared with you by {owner}" : "បានចែករំលែកជាមួយអ្នកដោយ {owner}", "group" : "ក្រុម", diff --git a/core/l10n/kn.js b/core/l10n/kn.js index 7c056b79098..16031e94317 100644 --- a/core/l10n/kn.js +++ b/core/l10n/kn.js @@ -80,8 +80,6 @@ OC.L10N.register( "Expiration" : "ಮುಕ್ತಾಯ", "Expiration date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ", "Choose a password for the public link" : "ಸಾರ್ವಜನಿಕ ಸಂಪರ್ಕ ಕೊಂಡಿಗೆ ಗುಪ್ತಪದ ಆಯ್ಕೆಮಾಡಿ", - "Sending ..." : "ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ ...", - "Email sent" : "ಇ-ಅಂಚೆ ಕಳುಹಿಸಲಾಗಿದೆ", "Resharing is not allowed" : "ಮರುಹಂಚಿಕೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ", "Share link" : "ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು", "Link" : "ಸಂಪರ್ಕ ಕೊಂಡಿ", @@ -90,6 +88,8 @@ OC.L10N.register( "Allow editing" : "ಸಂಪಾದನೆಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡಿ", "Email link to person" : "ಬಳಕೆದಾರನ ಇ-ಅಂಚೆಯ ಸಂಪರ್ಕಕೊಂಡಿ", "Send" : "ಕಳುಹಿಸಿ", + "Sending ..." : "ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ ...", + "Email sent" : "ಇ-ಅಂಚೆ ಕಳುಹಿಸಲಾಗಿದೆ", "Shared with you and the group {group} by {owner}" : "ನಿಮಗೆ ಮತ್ತು {group} ಗುಂಪಿನೂಂದಿಗೆ {owner} ಹಂಚಿಕೊಂಡಿದ್ದಾರೆ", "Shared with you by {owner}" : "ನಿಮ್ಮೊಂದಿಗೆ {owner} ಹಂಚಿಕೊಂಡಿದ್ದಾರೆ", "group" : "ಗುಂಪು", diff --git a/core/l10n/kn.json b/core/l10n/kn.json index eb525427661..c4d48a9323a 100644 --- a/core/l10n/kn.json +++ b/core/l10n/kn.json @@ -78,8 +78,6 @@ "Expiration" : "ಮುಕ್ತಾಯ", "Expiration date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ", "Choose a password for the public link" : "ಸಾರ್ವಜನಿಕ ಸಂಪರ್ಕ ಕೊಂಡಿಗೆ ಗುಪ್ತಪದ ಆಯ್ಕೆಮಾಡಿ", - "Sending ..." : "ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ ...", - "Email sent" : "ಇ-ಅಂಚೆ ಕಳುಹಿಸಲಾಗಿದೆ", "Resharing is not allowed" : "ಮರುಹಂಚಿಕೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ", "Share link" : "ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು", "Link" : "ಸಂಪರ್ಕ ಕೊಂಡಿ", @@ -88,6 +86,8 @@ "Allow editing" : "ಸಂಪಾದನೆಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡಿ", "Email link to person" : "ಬಳಕೆದಾರನ ಇ-ಅಂಚೆಯ ಸಂಪರ್ಕಕೊಂಡಿ", "Send" : "ಕಳುಹಿಸಿ", + "Sending ..." : "ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ ...", + "Email sent" : "ಇ-ಅಂಚೆ ಕಳುಹಿಸಲಾಗಿದೆ", "Shared with you and the group {group} by {owner}" : "ನಿಮಗೆ ಮತ್ತು {group} ಗುಂಪಿನೂಂದಿಗೆ {owner} ಹಂಚಿಕೊಂಡಿದ್ದಾರೆ", "Shared with you by {owner}" : "ನಿಮ್ಮೊಂದಿಗೆ {owner} ಹಂಚಿಕೊಂಡಿದ್ದಾರೆ", "group" : "ಗುಂಪು", diff --git a/core/l10n/ko.js b/core/l10n/ko.js index fd09fa3ae1d..94c65dd13ad 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "즐겨찾기 추가 오류", "Error unfavoriting" : "즐겨찾기 삭제 오류", "Couldn't send mail to following users: %s " : "%s 님에게 메일을 보낼 수 없습니다.", + "Preparing update" : "업데이트 준비 중", "Turned on maintenance mode" : "유지 보수 모드 켜짐", "Turned off maintenance mode" : "유지 보수 모드 꺼짐", "Maintenance mode is kept active" : "유지 보수 모드가 켜져 있음", @@ -141,8 +142,6 @@ OC.L10N.register( "Expiration" : "만료", "Expiration date" : "만료 날짜", "Choose a password for the public link" : "공개 링크 암호를 입력하십시오", - "Sending ..." : "전송 중...", - "Email sent" : "이메일 발송됨", "Resharing is not allowed" : "다시 공유할 수 없습니다", "Share link" : "링크 공유", "Link" : "링크", @@ -151,6 +150,8 @@ OC.L10N.register( "Allow editing" : "편집 허용", "Email link to person" : "이메일 주소", "Send" : "전송", + "Sending ..." : "전송 중...", + "Email sent" : "이메일 발송됨", "Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중", "Shared with you by {owner}" : "{owner} 님이 공유 중", "group" : "그룹", diff --git a/core/l10n/ko.json b/core/l10n/ko.json index 3cd1fa719a1..5e6364fb711 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -24,6 +24,7 @@ "Error favoriting" : "즐겨찾기 추가 오류", "Error unfavoriting" : "즐겨찾기 삭제 오류", "Couldn't send mail to following users: %s " : "%s 님에게 메일을 보낼 수 없습니다.", + "Preparing update" : "업데이트 준비 중", "Turned on maintenance mode" : "유지 보수 모드 켜짐", "Turned off maintenance mode" : "유지 보수 모드 꺼짐", "Maintenance mode is kept active" : "유지 보수 모드가 켜져 있음", @@ -139,8 +140,6 @@ "Expiration" : "만료", "Expiration date" : "만료 날짜", "Choose a password for the public link" : "공개 링크 암호를 입력하십시오", - "Sending ..." : "전송 중...", - "Email sent" : "이메일 발송됨", "Resharing is not allowed" : "다시 공유할 수 없습니다", "Share link" : "링크 공유", "Link" : "링크", @@ -149,6 +148,8 @@ "Allow editing" : "편집 허용", "Email link to person" : "이메일 주소", "Send" : "전송", + "Sending ..." : "전송 중...", + "Email sent" : "이메일 발송됨", "Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중", "Shared with you by {owner}" : "{owner} 님이 공유 중", "group" : "그룹", diff --git a/core/l10n/lb.js b/core/l10n/lb.js index e0db4908c68..92d10ed3661 100644 --- a/core/l10n/lb.js +++ b/core/l10n/lb.js @@ -67,14 +67,14 @@ OC.L10N.register( "Error setting expiration date" : "Feeler beim Setze vum Verfallsdatum", "Set expiration date" : "Verfallsdatum setzen", "Expiration date" : "Verfallsdatum", - "Sending ..." : "Gëtt geschéckt...", - "Email sent" : "Email geschéckt", "Resharing is not allowed" : "Weiderdeelen ass net erlaabt", "Share link" : "Link deelen", "Password protect" : "Passwuertgeschützt", "Password" : "Passwuert", "Email link to person" : "Link enger Persoun mailen", "Send" : "Schécken", + "Sending ..." : "Gëtt geschéckt...", + "Email sent" : "Email geschéckt", "Shared with you and the group {group} by {owner}" : "Gedeelt mat dir an der Grupp {group} vum {owner}", "Shared with you by {owner}" : "Gedeelt mat dir vum {owner}", "group" : "Grupp", diff --git a/core/l10n/lb.json b/core/l10n/lb.json index 652930cab89..382da7f58d2 100644 --- a/core/l10n/lb.json +++ b/core/l10n/lb.json @@ -65,14 +65,14 @@ "Error setting expiration date" : "Feeler beim Setze vum Verfallsdatum", "Set expiration date" : "Verfallsdatum setzen", "Expiration date" : "Verfallsdatum", - "Sending ..." : "Gëtt geschéckt...", - "Email sent" : "Email geschéckt", "Resharing is not allowed" : "Weiderdeelen ass net erlaabt", "Share link" : "Link deelen", "Password protect" : "Passwuertgeschützt", "Password" : "Passwuert", "Email link to person" : "Link enger Persoun mailen", "Send" : "Schécken", + "Sending ..." : "Gëtt geschéckt...", + "Email sent" : "Email geschéckt", "Shared with you and the group {group} by {owner}" : "Gedeelt mat dir an der Grupp {group} vum {owner}", "Shared with you by {owner}" : "Gedeelt mat dir vum {owner}", "group" : "Grupp", diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js index 8b3cd0cc45e..e2cd5f4af4b 100644 --- a/core/l10n/lt_LT.js +++ b/core/l10n/lt_LT.js @@ -18,6 +18,7 @@ OC.L10N.register( "Error favoriting" : "Klaida įtraukiant į mėgstamus.", "Error unfavoriting" : "Klaida pašalinant iš mėgstamų.", "Couldn't send mail to following users: %s " : "Nepavyko nusiųsti el. pašto šiems naudotojams: %s ", + "Preparing update" : "Ruošiamasi atnaujinimui", "Turned on maintenance mode" : "Įjungta priežiūros veiksena", "Turned off maintenance mode" : "Išjungta priežiūros veiksena", "Maintenance mode is kept active" : "Priežiūros veiksena yra aktyvi", @@ -113,8 +114,6 @@ OC.L10N.register( "Expiration" : "Galiojimo laikas", "Expiration date" : "Galiojimo laikas", "Choose a password for the public link" : "Viešos nuorodos slaptažodis", - "Sending ..." : "Siunčiama...", - "Email sent" : "Laiškas išsiųstas", "Resharing is not allowed" : "Dalijinasis išnaujo negalimas", "Share link" : "Dalintis nuoroda", "Link" : "Nuoroda", @@ -123,6 +122,8 @@ OC.L10N.register( "Allow editing" : "Leisti redaguoti", "Email link to person" : "Nusiųsti nuorodą paštu", "Send" : "Siųsti", + "Sending ..." : "Siunčiama...", + "Email sent" : "Laiškas išsiųstas", "Shared with you and the group {group} by {owner}" : "Pasidalino su Jumis ir {group} grupe {owner}", "Shared with you by {owner}" : "Pasidalino su Jumis {owner}", "group" : "grupė", diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json index 634451ac4cf..8051b7b338c 100644 --- a/core/l10n/lt_LT.json +++ b/core/l10n/lt_LT.json @@ -16,6 +16,7 @@ "Error favoriting" : "Klaida įtraukiant į mėgstamus.", "Error unfavoriting" : "Klaida pašalinant iš mėgstamų.", "Couldn't send mail to following users: %s " : "Nepavyko nusiųsti el. pašto šiems naudotojams: %s ", + "Preparing update" : "Ruošiamasi atnaujinimui", "Turned on maintenance mode" : "Įjungta priežiūros veiksena", "Turned off maintenance mode" : "Išjungta priežiūros veiksena", "Maintenance mode is kept active" : "Priežiūros veiksena yra aktyvi", @@ -111,8 +112,6 @@ "Expiration" : "Galiojimo laikas", "Expiration date" : "Galiojimo laikas", "Choose a password for the public link" : "Viešos nuorodos slaptažodis", - "Sending ..." : "Siunčiama...", - "Email sent" : "Laiškas išsiųstas", "Resharing is not allowed" : "Dalijinasis išnaujo negalimas", "Share link" : "Dalintis nuoroda", "Link" : "Nuoroda", @@ -121,6 +120,8 @@ "Allow editing" : "Leisti redaguoti", "Email link to person" : "Nusiųsti nuorodą paštu", "Send" : "Siųsti", + "Sending ..." : "Siunčiama...", + "Email sent" : "Laiškas išsiųstas", "Shared with you and the group {group} by {owner}" : "Pasidalino su Jumis ir {group} grupe {owner}", "Shared with you by {owner}" : "Pasidalino su Jumis {owner}", "group" : "grupė", diff --git a/core/l10n/lv.js b/core/l10n/lv.js index 409d14a6bd2..71fa7f8ce40 100644 --- a/core/l10n/lv.js +++ b/core/l10n/lv.js @@ -71,14 +71,14 @@ OC.L10N.register( "Error setting expiration date" : "Kļūda, iestatot termiņa datumu", "Set expiration date" : "Iestaties termiņa datumu", "Expiration date" : "Termiņa datums", - "Sending ..." : "Sūta...", - "Email sent" : "Vēstule nosūtīta", "Resharing is not allowed" : "Atkārtota dalīšanās nav atļauta", "Share link" : "Dalīt saiti", "Password protect" : "Aizsargāt ar paroli", "Password" : "Parole", "Email link to person" : "Sūtīt saiti personai pa e-pastu", "Send" : "Sūtīt", + "Sending ..." : "Sūta...", + "Email sent" : "Vēstule nosūtīta", "Shared with you and the group {group} by {owner}" : "{owner} dalījās ar jums un grupu {group}", "Shared with you by {owner}" : "{owner} dalījās ar jums", "group" : "grupa", diff --git a/core/l10n/lv.json b/core/l10n/lv.json index 1d343f9f5f5..f6befe4ba84 100644 --- a/core/l10n/lv.json +++ b/core/l10n/lv.json @@ -69,14 +69,14 @@ "Error setting expiration date" : "Kļūda, iestatot termiņa datumu", "Set expiration date" : "Iestaties termiņa datumu", "Expiration date" : "Termiņa datums", - "Sending ..." : "Sūta...", - "Email sent" : "Vēstule nosūtīta", "Resharing is not allowed" : "Atkārtota dalīšanās nav atļauta", "Share link" : "Dalīt saiti", "Password protect" : "Aizsargāt ar paroli", "Password" : "Parole", "Email link to person" : "Sūtīt saiti personai pa e-pastu", "Send" : "Sūtīt", + "Sending ..." : "Sūta...", + "Email sent" : "Vēstule nosūtīta", "Shared with you and the group {group} by {owner}" : "{owner} dalījās ar jums un grupu {group}", "Shared with you by {owner}" : "{owner} dalījās ar jums", "group" : "grupa", diff --git a/core/l10n/mk.js b/core/l10n/mk.js index afe4df48fc0..37ddb9b5043 100644 --- a/core/l10n/mk.js +++ b/core/l10n/mk.js @@ -19,6 +19,7 @@ OC.L10N.register( "Error untagging" : "Грешка при отстранување на таговите", "Error favoriting" : "Грешка при ", "Couldn't send mail to following users: %s " : "Не можев да пратам порака на следниве корисници: %s", + "Preparing update" : "Ја подготвувам надградбата", "Turned on maintenance mode" : "Вклучен е модот за одржување", "Turned off maintenance mode" : "Ислкучен е модот за одржување", "Maintenance mode is kept active" : "Модот за одржување е уште активен", @@ -121,8 +122,6 @@ OC.L10N.register( "Expiration" : "Истекување", "Expiration date" : "Рок на траење", "Choose a password for the public link" : "Одбери лозинка за јавниот линк", - "Sending ..." : "Праќање...", - "Email sent" : "Е-порака пратена", "Resharing is not allowed" : "Повторно споделување не е дозволено", "Share link" : "Сподели ја врската", "Link" : "Линк", @@ -131,6 +130,8 @@ OC.L10N.register( "Allow editing" : "Овозможи уредување", "Email link to person" : "Прати врска по е-пошта на личност", "Send" : "Прати", + "Sending ..." : "Праќање...", + "Email sent" : "Е-порака пратена", "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}", "Shared with you by {owner}" : "Споделено со Вас од {owner}", "group" : "група", diff --git a/core/l10n/mk.json b/core/l10n/mk.json index 3800b04b9d5..d0cae443944 100644 --- a/core/l10n/mk.json +++ b/core/l10n/mk.json @@ -17,6 +17,7 @@ "Error untagging" : "Грешка при отстранување на таговите", "Error favoriting" : "Грешка при ", "Couldn't send mail to following users: %s " : "Не можев да пратам порака на следниве корисници: %s", + "Preparing update" : "Ја подготвувам надградбата", "Turned on maintenance mode" : "Вклучен е модот за одржување", "Turned off maintenance mode" : "Ислкучен е модот за одржување", "Maintenance mode is kept active" : "Модот за одржување е уште активен", @@ -119,8 +120,6 @@ "Expiration" : "Истекување", "Expiration date" : "Рок на траење", "Choose a password for the public link" : "Одбери лозинка за јавниот линк", - "Sending ..." : "Праќање...", - "Email sent" : "Е-порака пратена", "Resharing is not allowed" : "Повторно споделување не е дозволено", "Share link" : "Сподели ја врската", "Link" : "Линк", @@ -129,6 +128,8 @@ "Allow editing" : "Овозможи уредување", "Email link to person" : "Прати врска по е-пошта на личност", "Send" : "Прати", + "Sending ..." : "Праќање...", + "Email sent" : "Е-порака пратена", "Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}", "Shared with you by {owner}" : "Споделено со Вас од {owner}", "group" : "група", diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js index 0096fe87c11..001f8b041f6 100644 --- a/core/l10n/nb_NO.js +++ b/core/l10n/nb_NO.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Feil ved favorittmerking", "Error unfavoriting" : "Feil ved fjerning av favorittmerking", "Couldn't send mail to following users: %s " : "Klarte ikke å sende mail til følgende brukere: %s", + "Preparing update" : "Forbereder oppdatering", "Turned on maintenance mode" : "Slo på vedlikeholdsmodus", "Turned off maintenance mode" : "Slo av vedlikeholdsmodus", "Maintenance mode is kept active" : "Vedlikeholdsmodus blir beholdt aktiv", @@ -141,8 +142,6 @@ OC.L10N.register( "Expiration" : "Utløpsdato", "Expiration date" : "Utløpsdato", "Choose a password for the public link" : "Velg et passord for den offentlige lenken", - "Sending ..." : "Sender...", - "Email sent" : "E-post sendt", "Resharing is not allowed" : "Videre deling er ikke tillatt", "Share link" : "Del lenke", "Link" : "Lenke", @@ -151,6 +150,8 @@ OC.L10N.register( "Allow editing" : "Tillat redigering", "Email link to person" : "Email lenke til person", "Send" : "Send", + "Sending ..." : "Sender...", + "Email sent" : "E-post sendt", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", "group" : "gruppe", diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json index 1a8d198e6bb..34f8a76f7a2 100644 --- a/core/l10n/nb_NO.json +++ b/core/l10n/nb_NO.json @@ -24,6 +24,7 @@ "Error favoriting" : "Feil ved favorittmerking", "Error unfavoriting" : "Feil ved fjerning av favorittmerking", "Couldn't send mail to following users: %s " : "Klarte ikke å sende mail til følgende brukere: %s", + "Preparing update" : "Forbereder oppdatering", "Turned on maintenance mode" : "Slo på vedlikeholdsmodus", "Turned off maintenance mode" : "Slo av vedlikeholdsmodus", "Maintenance mode is kept active" : "Vedlikeholdsmodus blir beholdt aktiv", @@ -139,8 +140,6 @@ "Expiration" : "Utløpsdato", "Expiration date" : "Utløpsdato", "Choose a password for the public link" : "Velg et passord for den offentlige lenken", - "Sending ..." : "Sender...", - "Email sent" : "E-post sendt", "Resharing is not allowed" : "Videre deling er ikke tillatt", "Share link" : "Del lenke", "Link" : "Lenke", @@ -149,6 +148,8 @@ "Allow editing" : "Tillat redigering", "Email link to person" : "Email lenke til person", "Send" : "Send", + "Sending ..." : "Sender...", + "Email sent" : "E-post sendt", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", "group" : "gruppe", diff --git a/core/l10n/nds.js b/core/l10n/nds.js index 981faa7ec51..5584b6421a3 100644 --- a/core/l10n/nds.js +++ b/core/l10n/nds.js @@ -12,6 +12,7 @@ OC.L10N.register( "Crop is not square" : "Zuschnitt ist nicht quadratisch", "Couldn't send reset email. Please contact your administrator." : "E-Mail zum Zurücksetzen konnte nicht gesendet werden. Bitte wende Dich an Deinem Administrator.", "Couldn't send mail to following users: %s " : "Senden der E-Mail an folgende Benutzer fehlgeschlagen: %s", + "Preparing update" : "Bereite Aktualisierung vor", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", "Turned off maintenance mode" : "Wartungsmodus ausgeschaltet", "Maintenance mode is kept active" : "Wartungsmodus wird fortgeführt", diff --git a/core/l10n/nds.json b/core/l10n/nds.json index 4bbdbe6ad09..83e1be211b0 100644 --- a/core/l10n/nds.json +++ b/core/l10n/nds.json @@ -10,6 +10,7 @@ "Crop is not square" : "Zuschnitt ist nicht quadratisch", "Couldn't send reset email. Please contact your administrator." : "E-Mail zum Zurücksetzen konnte nicht gesendet werden. Bitte wende Dich an Deinem Administrator.", "Couldn't send mail to following users: %s " : "Senden der E-Mail an folgende Benutzer fehlgeschlagen: %s", + "Preparing update" : "Bereite Aktualisierung vor", "Turned on maintenance mode" : "Wartungsmodus eingeschaltet", "Turned off maintenance mode" : "Wartungsmodus ausgeschaltet", "Maintenance mode is kept active" : "Wartungsmodus wird fortgeführt", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index c94d585eee9..2971f7706b3 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Fout bij favoriet maken", "Error unfavoriting" : "Fout bij verwijderen favorietstatus", "Couldn't send mail to following users: %s " : "Kon geen e-mail sturen aan de volgende gebruikers: %s", + "Preparing update" : "Update voorbereiden", "Turned on maintenance mode" : "Onderhoudsmodus ingeschakeld", "Turned off maintenance mode" : "Onderhoudsmodus uitgeschakeld", "Maintenance mode is kept active" : "Onderhoudsmodus blijft actief", @@ -149,8 +150,6 @@ OC.L10N.register( "Expiration" : "Vervaltermijn", "Expiration date" : "Vervaldatum", "Choose a password for the public link" : "Kies een wachtwoord voor de openbare link", - "Sending ..." : "Versturen ...", - "Email sent" : "E-mail verzonden", "Resharing is not allowed" : "Verder delen is niet toegestaan", "Share link" : "Deel link", "Link" : "Link", @@ -159,6 +158,8 @@ OC.L10N.register( "Allow editing" : "Toestaan bewerken", "Email link to person" : "E-mail link naar persoon", "Send" : "Versturen", + "Sending ..." : "Versturen ...", + "Email sent" : "E-mail verzonden", "Shared with you and the group {group} by {owner}" : "Gedeeld met u en de groep {group} door {owner}", "Shared with you by {owner}" : "Gedeeld met u door {owner}", "group" : "groep", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index f0d1c248684..6b01fd1f52e 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -24,6 +24,7 @@ "Error favoriting" : "Fout bij favoriet maken", "Error unfavoriting" : "Fout bij verwijderen favorietstatus", "Couldn't send mail to following users: %s " : "Kon geen e-mail sturen aan de volgende gebruikers: %s", + "Preparing update" : "Update voorbereiden", "Turned on maintenance mode" : "Onderhoudsmodus ingeschakeld", "Turned off maintenance mode" : "Onderhoudsmodus uitgeschakeld", "Maintenance mode is kept active" : "Onderhoudsmodus blijft actief", @@ -147,8 +148,6 @@ "Expiration" : "Vervaltermijn", "Expiration date" : "Vervaldatum", "Choose a password for the public link" : "Kies een wachtwoord voor de openbare link", - "Sending ..." : "Versturen ...", - "Email sent" : "E-mail verzonden", "Resharing is not allowed" : "Verder delen is niet toegestaan", "Share link" : "Deel link", "Link" : "Link", @@ -157,6 +156,8 @@ "Allow editing" : "Toestaan bewerken", "Email link to person" : "E-mail link naar persoon", "Send" : "Versturen", + "Sending ..." : "Versturen ...", + "Email sent" : "E-mail verzonden", "Shared with you and the group {group} by {owner}" : "Gedeeld met u en de groep {group} door {owner}", "Shared with you by {owner}" : "Gedeeld met u door {owner}", "group" : "groep", diff --git a/core/l10n/nn_NO.js b/core/l10n/nn_NO.js index 380bf6088b1..20fccbc4f0d 100644 --- a/core/l10n/nn_NO.js +++ b/core/l10n/nn_NO.js @@ -78,14 +78,14 @@ OC.L10N.register( "Set expiration date" : "Set utløpsdato", "Expiration date" : "Utløpsdato", "Choose a password for the public link" : "Vel eit passord for den offentlege lenkja", - "Sending ..." : "Sender …", - "Email sent" : "E-post sendt", "Resharing is not allowed" : "Vidaredeling er ikkje tillate", "Share link" : "Del lenkje", "Password protect" : "Passordvern", "Password" : "Passord", "Email link to person" : "Send lenkja over e-post", "Send" : "Send", + "Sending ..." : "Sender …", + "Email sent" : "E-post sendt", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppa {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", "group" : "gruppe", diff --git a/core/l10n/nn_NO.json b/core/l10n/nn_NO.json index d3b42300831..d4cc54bfc09 100644 --- a/core/l10n/nn_NO.json +++ b/core/l10n/nn_NO.json @@ -76,14 +76,14 @@ "Set expiration date" : "Set utløpsdato", "Expiration date" : "Utløpsdato", "Choose a password for the public link" : "Vel eit passord for den offentlege lenkja", - "Sending ..." : "Sender …", - "Email sent" : "E-post sendt", "Resharing is not allowed" : "Vidaredeling er ikkje tillate", "Share link" : "Del lenkje", "Password protect" : "Passordvern", "Password" : "Passord", "Email link to person" : "Send lenkja over e-post", "Send" : "Send", + "Sending ..." : "Sender …", + "Email sent" : "E-post sendt", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppa {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", "group" : "gruppe", diff --git a/core/l10n/oc.js b/core/l10n/oc.js index 0410e2ca466..53fca9a0acf 100644 --- a/core/l10n/oc.js +++ b/core/l10n/oc.js @@ -24,6 +24,7 @@ OC.L10N.register( "Error favoriting" : "Error al moment de la mesa en favorit", "Error unfavoriting" : "Error al moment de la supression dels favorits", "Couldn't send mail to following users: %s " : "Impossible de mandar un corrièl als utilizaires seguents : %s", + "Preparing update" : "Preparacion de la mesa a jorn", "Turned on maintenance mode" : "Mòde de mantenença activat", "Turned off maintenance mode" : "Mòde de mantenença desactivat", "Maintenance mode is kept active" : "Lo mòde de mantenença es daissat actiu", @@ -134,8 +135,6 @@ OC.L10N.register( "Expiration" : "Expiracion", "Expiration date" : "Data d'expiracion", "Choose a password for the public link" : "Causissètz un senhal pel ligam public", - "Sending ..." : "Mandadís…", - "Email sent" : "Corrièl mandat", "Resharing is not allowed" : "Lo repartiment es pas autorizat", "Share link" : "Partejar per ligam public", "Link" : "Ligam", @@ -144,6 +143,8 @@ OC.L10N.register( "Allow editing" : "Permetre la modificacion", "Email link to person" : "Mandar lo ligam per corrièl", "Send" : "Mandar", + "Sending ..." : "Mandadís…", + "Email sent" : "Corrièl mandat", "Shared with you and the group {group} by {owner}" : "Partejat amb vos e lo grop {group} per {owner}", "Shared with you by {owner}" : "Partejat amb vos per {owner}", "group" : "grop", diff --git a/core/l10n/oc.json b/core/l10n/oc.json index a086b90bc1b..6b19614320e 100644 --- a/core/l10n/oc.json +++ b/core/l10n/oc.json @@ -22,6 +22,7 @@ "Error favoriting" : "Error al moment de la mesa en favorit", "Error unfavoriting" : "Error al moment de la supression dels favorits", "Couldn't send mail to following users: %s " : "Impossible de mandar un corrièl als utilizaires seguents : %s", + "Preparing update" : "Preparacion de la mesa a jorn", "Turned on maintenance mode" : "Mòde de mantenença activat", "Turned off maintenance mode" : "Mòde de mantenença desactivat", "Maintenance mode is kept active" : "Lo mòde de mantenença es daissat actiu", @@ -132,8 +133,6 @@ "Expiration" : "Expiracion", "Expiration date" : "Data d'expiracion", "Choose a password for the public link" : "Causissètz un senhal pel ligam public", - "Sending ..." : "Mandadís…", - "Email sent" : "Corrièl mandat", "Resharing is not allowed" : "Lo repartiment es pas autorizat", "Share link" : "Partejar per ligam public", "Link" : "Ligam", @@ -142,6 +141,8 @@ "Allow editing" : "Permetre la modificacion", "Email link to person" : "Mandar lo ligam per corrièl", "Send" : "Mandar", + "Sending ..." : "Mandadís…", + "Email sent" : "Corrièl mandat", "Shared with you and the group {group} by {owner}" : "Partejat amb vos e lo grop {group} per {owner}", "Shared with you by {owner}" : "Partejat amb vos per {owner}", "group" : "grop", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index 78de8614a6f..31319a97dbd 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -24,6 +24,7 @@ OC.L10N.register( "Error favoriting" : "Błąd podczas dodawania do ulubionch", "Error unfavoriting" : "Błąd przy usuwaniu z ulubionych", "Couldn't send mail to following users: %s " : "Nie można było wysłać wiadomości do następujących użytkowników: %s", + "Preparing update" : "Przygotowuję aktualizację", "Turned on maintenance mode" : "Włączony tryb konserwacji", "Turned off maintenance mode" : "Wyłączony tryb konserwacji", "Maintenance mode is kept active" : "Tryb konserwacji pozostaje aktywny", @@ -133,8 +134,6 @@ OC.L10N.register( "Expiration" : "Wygaśnięcie", "Expiration date" : "Data wygaśnięcia", "Choose a password for the public link" : "Wybierz hasło dla linku publicznego", - "Sending ..." : "Wysyłanie...", - "Email sent" : "E-mail wysłany", "Resharing is not allowed" : "Współdzielenie nie jest możliwe", "Share link" : "Udostępnij link", "Link" : "Odnośnik", @@ -143,6 +142,8 @@ OC.L10N.register( "Allow editing" : "Pozwól na edycję", "Email link to person" : "Wyślij osobie odnośnik poprzez e-mail", "Send" : "Wyślij", + "Sending ..." : "Wysyłanie...", + "Email sent" : "E-mail wysłany", "Shared with you and the group {group} by {owner}" : "Udostępnione tobie i grupie {group} przez {owner}", "Shared with you by {owner}" : "Udostępnione tobie przez {owner}", "group" : "grupa", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 6fbb26da214..1b4e4aed8e8 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -22,6 +22,7 @@ "Error favoriting" : "Błąd podczas dodawania do ulubionch", "Error unfavoriting" : "Błąd przy usuwaniu z ulubionych", "Couldn't send mail to following users: %s " : "Nie można było wysłać wiadomości do następujących użytkowników: %s", + "Preparing update" : "Przygotowuję aktualizację", "Turned on maintenance mode" : "Włączony tryb konserwacji", "Turned off maintenance mode" : "Wyłączony tryb konserwacji", "Maintenance mode is kept active" : "Tryb konserwacji pozostaje aktywny", @@ -131,8 +132,6 @@ "Expiration" : "Wygaśnięcie", "Expiration date" : "Data wygaśnięcia", "Choose a password for the public link" : "Wybierz hasło dla linku publicznego", - "Sending ..." : "Wysyłanie...", - "Email sent" : "E-mail wysłany", "Resharing is not allowed" : "Współdzielenie nie jest możliwe", "Share link" : "Udostępnij link", "Link" : "Odnośnik", @@ -141,6 +140,8 @@ "Allow editing" : "Pozwól na edycję", "Email link to person" : "Wyślij osobie odnośnik poprzez e-mail", "Send" : "Wyślij", + "Sending ..." : "Wysyłanie...", + "Email sent" : "E-mail wysłany", "Shared with you and the group {group} by {owner}" : "Udostępnione tobie i grupie {group} przez {owner}", "Shared with you by {owner}" : "Udostępnione tobie przez {owner}", "group" : "grupa", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 387d16b850b..40d266081b1 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -26,7 +26,8 @@ OC.L10N.register( "Error favoriting" : "Erro colocando nos favoritos", "Error unfavoriting" : "Erro retirando do favoritos", "Couldn't send mail to following users: %s " : "Não foi possível enviar e-mail para os seguintes usuários: %s", - "Updates need to be installed. Please use the command line updater." : "Atualizações precisam ser instaladas. Por favor, use a atualização de linha de comando.", + "Preparing update" : "Preparando atualização", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor, use a atualização de linha de comando, porque a atualização automática está desativado no config.php.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Verificando tabela %s", "Turned on maintenance mode" : "Ativar modo de manutenção", @@ -152,8 +153,6 @@ OC.L10N.register( "Expiration" : "Expiração", "Expiration date" : "Data de expiração", "Choose a password for the public link" : "Escolha uma senha para o link público", - "Sending ..." : "Enviando ...", - "Email sent" : "E-mail enviado", "Resharing is not allowed" : "Não é permitido re-compartilhar", "Share link" : "Compartilhar link", "Link" : "Link", @@ -162,6 +161,8 @@ OC.L10N.register( "Allow editing" : "Permitir edição", "Email link to person" : "Enviar link por e-mail", "Send" : "Enviar", + "Sending ..." : "Enviando ...", + "Email sent" : "E-mail enviado", "Shared with you and the group {group} by {owner}" : "Compartilhado com você e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Compartilhado com você por {owner}", "group" : "grupo", @@ -307,7 +308,6 @@ OC.L10N.register( "Detailed logs" : "Logs detalhados", "Update needed" : "Atualização necessária", "Please use the command line updater because you have a big instance." : "Por favor, use a atualização de linha de comando, porque você tem um grande exemplo.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor, use a atualização de linha de comando, porque a atualização automática está desativado no config.php.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para obter ajuda, consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instância %s está em modo de manutenção, o que pode demorar um pouco.", "This page will refresh itself when the %s instance is available again." : "Esta página será atualizada automaticamente quando esta instância %s estiver disponível novamente." diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index cb865b13ac8..77bb55d024a 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -24,7 +24,8 @@ "Error favoriting" : "Erro colocando nos favoritos", "Error unfavoriting" : "Erro retirando do favoritos", "Couldn't send mail to following users: %s " : "Não foi possível enviar e-mail para os seguintes usuários: %s", - "Updates need to be installed. Please use the command line updater." : "Atualizações precisam ser instaladas. Por favor, use a atualização de linha de comando.", + "Preparing update" : "Preparando atualização", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor, use a atualização de linha de comando, porque a atualização automática está desativado no config.php.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Verificando tabela %s", "Turned on maintenance mode" : "Ativar modo de manutenção", @@ -150,8 +151,6 @@ "Expiration" : "Expiração", "Expiration date" : "Data de expiração", "Choose a password for the public link" : "Escolha uma senha para o link público", - "Sending ..." : "Enviando ...", - "Email sent" : "E-mail enviado", "Resharing is not allowed" : "Não é permitido re-compartilhar", "Share link" : "Compartilhar link", "Link" : "Link", @@ -160,6 +159,8 @@ "Allow editing" : "Permitir edição", "Email link to person" : "Enviar link por e-mail", "Send" : "Enviar", + "Sending ..." : "Enviando ...", + "Email sent" : "E-mail enviado", "Shared with you and the group {group} by {owner}" : "Compartilhado com você e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Compartilhado com você por {owner}", "group" : "grupo", @@ -305,7 +306,6 @@ "Detailed logs" : "Logs detalhados", "Update needed" : "Atualização necessária", "Please use the command line updater because you have a big instance." : "Por favor, use a atualização de linha de comando, porque você tem um grande exemplo.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor, use a atualização de linha de comando, porque a atualização automática está desativado no config.php.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para obter ajuda, consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instância %s está em modo de manutenção, o que pode demorar um pouco.", "This page will refresh itself when the %s instance is available again." : "Esta página será atualizada automaticamente quando esta instância %s estiver disponível novamente." diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index 3a80a2e41ff..36618e4c884 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Erro a definir como favorito", "Error unfavoriting" : "Erro a remover como favorito", "Couldn't send mail to following users: %s " : "Não foi possível enviar a mensagem para os seguintes utilizadores: %s", + "Preparing update" : "A preparar atualização", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: A verificar a tabela %s", "Turned on maintenance mode" : "Ativado o modo de manutenção", @@ -151,8 +152,6 @@ OC.L10N.register( "Expiration" : "Data de expiração", "Expiration date" : "Data de expiração", "Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública", - "Sending ..." : "A Enviar...", - "Email sent" : "Mensagem enviada", "Resharing is not allowed" : "Não é permitido partilhar de novo", "Share link" : "Compartilhar hiperligação", "Link" : "Hiperligação", @@ -161,6 +160,8 @@ OC.L10N.register( "Allow editing" : "Permitir edição", "Email link to person" : "Enviar a hiperligação para a pessoa", "Send" : "Enviar", + "Sending ..." : "A Enviar...", + "Email sent" : "Mensagem enviada", "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Partilhado consigo por {owner}", "group" : "grupo", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index 6b90d03807e..b0124cf484f 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -24,6 +24,7 @@ "Error favoriting" : "Erro a definir como favorito", "Error unfavoriting" : "Erro a remover como favorito", "Couldn't send mail to following users: %s " : "Não foi possível enviar a mensagem para os seguintes utilizadores: %s", + "Preparing update" : "A preparar atualização", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: A verificar a tabela %s", "Turned on maintenance mode" : "Ativado o modo de manutenção", @@ -149,8 +150,6 @@ "Expiration" : "Data de expiração", "Expiration date" : "Data de expiração", "Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública", - "Sending ..." : "A Enviar...", - "Email sent" : "Mensagem enviada", "Resharing is not allowed" : "Não é permitido partilhar de novo", "Share link" : "Compartilhar hiperligação", "Link" : "Hiperligação", @@ -159,6 +158,8 @@ "Allow editing" : "Permitir edição", "Email link to person" : "Enviar a hiperligação para a pessoa", "Send" : "Enviar", + "Sending ..." : "A Enviar...", + "Email sent" : "Mensagem enviada", "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Partilhado consigo por {owner}", "group" : "grupo", diff --git a/core/l10n/ro.js b/core/l10n/ro.js index b89c81e905e..7de876d6446 100644 --- a/core/l10n/ro.js +++ b/core/l10n/ro.js @@ -88,8 +88,6 @@ OC.L10N.register( "Set expiration date" : "Specifică data expirării", "Expiration" : "Expira", "Expiration date" : "Data expirării", - "Sending ..." : "Se expediază...", - "Email sent" : "Mesajul a fost expediat", "Resharing is not allowed" : "Repartajarea nu este permisă", "Share link" : "Share link", "Link" : "Legătură", @@ -98,6 +96,8 @@ OC.L10N.register( "Allow editing" : "Permite editarea", "Email link to person" : "Expediază legătura prin poșta electronică", "Send" : "Expediază", + "Sending ..." : "Se expediază...", + "Email sent" : "Mesajul a fost expediat", "Shared with you and the group {group} by {owner}" : "Distribuie cu tine si grupul {group} de {owner}", "Shared with you by {owner}" : "Distribuie cu tine de {owner}", "group" : "grup", diff --git a/core/l10n/ro.json b/core/l10n/ro.json index 390c693821b..0493ca016fc 100644 --- a/core/l10n/ro.json +++ b/core/l10n/ro.json @@ -86,8 +86,6 @@ "Set expiration date" : "Specifică data expirării", "Expiration" : "Expira", "Expiration date" : "Data expirării", - "Sending ..." : "Se expediază...", - "Email sent" : "Mesajul a fost expediat", "Resharing is not allowed" : "Repartajarea nu este permisă", "Share link" : "Share link", "Link" : "Legătură", @@ -96,6 +94,8 @@ "Allow editing" : "Permite editarea", "Email link to person" : "Expediază legătura prin poșta electronică", "Send" : "Expediază", + "Sending ..." : "Se expediază...", + "Email sent" : "Mesajul a fost expediat", "Shared with you and the group {group} by {owner}" : "Distribuie cu tine si grupul {group} de {owner}", "Shared with you by {owner}" : "Distribuie cu tine de {owner}", "group" : "grup", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index f8a39807491..d52a9b6a4e3 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Ошибка добавления в избранные", "Error unfavoriting" : "Ошибка удаления из избранного", "Couldn't send mail to following users: %s " : "Невозможно отправить письмо следующим пользователям: %s", + "Preparing update" : "Подготовка к обновлению", "Turned on maintenance mode" : "Режим отладки включён", "Turned off maintenance mode" : "Режим отладки отключён", "Maintenance mode is kept active" : "Режим обслуживания оставлен включенным", @@ -143,8 +144,6 @@ OC.L10N.register( "Expiration" : "Срок действия", "Expiration date" : "Дата окончания", "Choose a password for the public link" : "Укажите пароль для публичной ссылки", - "Sending ..." : "Отправляется ...", - "Email sent" : "Письмо отправлено", "Resharing is not allowed" : "Повторное открытие доступа запрещено", "Share link" : "Поделиться ссылкой", "Link" : "Ссылка", @@ -153,6 +152,8 @@ OC.L10N.register( "Allow editing" : "Разрешить редактирование", "Email link to person" : "Отправить ссылку по электронной почте", "Send" : "Отправить", + "Sending ..." : "Отправляется ...", + "Email sent" : "Письмо отправлено", "Shared with you and the group {group} by {owner}" : "{owner} поделился с вами и группой {group} ", "Shared with you by {owner}" : "С вами поделился {owner} ", "group" : "группа", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index 15fc2b4b0db..36e5a2ab8a5 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -24,6 +24,7 @@ "Error favoriting" : "Ошибка добавления в избранные", "Error unfavoriting" : "Ошибка удаления из избранного", "Couldn't send mail to following users: %s " : "Невозможно отправить письмо следующим пользователям: %s", + "Preparing update" : "Подготовка к обновлению", "Turned on maintenance mode" : "Режим отладки включён", "Turned off maintenance mode" : "Режим отладки отключён", "Maintenance mode is kept active" : "Режим обслуживания оставлен включенным", @@ -141,8 +142,6 @@ "Expiration" : "Срок действия", "Expiration date" : "Дата окончания", "Choose a password for the public link" : "Укажите пароль для публичной ссылки", - "Sending ..." : "Отправляется ...", - "Email sent" : "Письмо отправлено", "Resharing is not allowed" : "Повторное открытие доступа запрещено", "Share link" : "Поделиться ссылкой", "Link" : "Ссылка", @@ -151,6 +150,8 @@ "Allow editing" : "Разрешить редактирование", "Email link to person" : "Отправить ссылку по электронной почте", "Send" : "Отправить", + "Sending ..." : "Отправляется ...", + "Email sent" : "Письмо отправлено", "Shared with you and the group {group} by {owner}" : "{owner} поделился с вами и группой {group} ", "Shared with you by {owner}" : "С вами поделился {owner} ", "group" : "группа", diff --git a/core/l10n/sk_SK.js b/core/l10n/sk_SK.js index 92ea372e8bd..71eb52bead2 100644 --- a/core/l10n/sk_SK.js +++ b/core/l10n/sk_SK.js @@ -25,6 +25,7 @@ OC.L10N.register( "Error favoriting" : "Chyba pri pridaní do obľúbených", "Error unfavoriting" : "Chyba pri odobratí z obľúbených", "Couldn't send mail to following users: %s " : "Nebolo možné odoslať email týmto používateľom: %s ", + "Preparing update" : "Pripravuje sa aktualizácia", "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrola tabuľky %s", "Turned on maintenance mode" : "Mód údržby je zapnutý", "Turned off maintenance mode" : "Mód údržby je vypnutý", @@ -142,8 +143,6 @@ OC.L10N.register( "Expiration" : "Koniec platnosti", "Expiration date" : "Dátum expirácie", "Choose a password for the public link" : "Zadajte heslo pre tento verejný odkaz", - "Sending ..." : "Odosielam ...", - "Email sent" : "Email odoslaný", "Resharing is not allowed" : "Zdieľanie už zdieľanej položky nie je povolené", "Share link" : "Zdieľať linku", "Link" : "Odkaz", @@ -152,6 +151,8 @@ OC.L10N.register( "Allow editing" : "Povoliť úpravy", "Email link to person" : "Odoslať odkaz emailom", "Send" : "Odoslať", + "Sending ..." : "Odosielam ...", + "Email sent" : "Email odoslaný", "Shared with you and the group {group} by {owner}" : "Zdieľané s vami a so skupinou {group} používateľom {owner}", "Shared with you by {owner}" : "Zdieľané s vami používateľom {owner}", "group" : "skupina", diff --git a/core/l10n/sk_SK.json b/core/l10n/sk_SK.json index 94e6d57267b..7391f62e301 100644 --- a/core/l10n/sk_SK.json +++ b/core/l10n/sk_SK.json @@ -23,6 +23,7 @@ "Error favoriting" : "Chyba pri pridaní do obľúbených", "Error unfavoriting" : "Chyba pri odobratí z obľúbených", "Couldn't send mail to following users: %s " : "Nebolo možné odoslať email týmto používateľom: %s ", + "Preparing update" : "Pripravuje sa aktualizácia", "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrola tabuľky %s", "Turned on maintenance mode" : "Mód údržby je zapnutý", "Turned off maintenance mode" : "Mód údržby je vypnutý", @@ -140,8 +141,6 @@ "Expiration" : "Koniec platnosti", "Expiration date" : "Dátum expirácie", "Choose a password for the public link" : "Zadajte heslo pre tento verejný odkaz", - "Sending ..." : "Odosielam ...", - "Email sent" : "Email odoslaný", "Resharing is not allowed" : "Zdieľanie už zdieľanej položky nie je povolené", "Share link" : "Zdieľať linku", "Link" : "Odkaz", @@ -150,6 +149,8 @@ "Allow editing" : "Povoliť úpravy", "Email link to person" : "Odoslať odkaz emailom", "Send" : "Odoslať", + "Sending ..." : "Odosielam ...", + "Email sent" : "Email odoslaný", "Shared with you and the group {group} by {owner}" : "Zdieľané s vami a so skupinou {group} používateľom {owner}", "Shared with you by {owner}" : "Zdieľané s vami používateľom {owner}", "group" : "skupina", diff --git a/core/l10n/sl.js b/core/l10n/sl.js index 45eaa680b44..54e8cc5b89f 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Napaka označevanja priljubljenosti", "Error unfavoriting" : "Napaka odstranjevanja oznake priljubljenosti", "Couldn't send mail to following users: %s " : "Ni mogoče poslati sporočila za: %s", + "Preparing update" : "Pripravljanje posodobitve", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Poteka preverjanje razpredelnice %s", "Turned on maintenance mode" : "Vzdrževalni način je omogočen", @@ -138,8 +139,6 @@ OC.L10N.register( "Expiration" : "Datum preteka", "Expiration date" : "Datum preteka", "Choose a password for the public link" : "Izberite geslo za javno povezavo", - "Sending ..." : "Pošiljanje ...", - "Email sent" : "Elektronska pošta je poslana", "Resharing is not allowed" : "Nadaljnja souporaba ni dovoljena", "Share link" : "Povezava za prejem", "Link" : "Povezava", @@ -148,6 +147,8 @@ OC.L10N.register( "Allow editing" : "Dovoli urejanje", "Email link to person" : "Posreduj povezavo po elektronski pošti", "Send" : "Pošlji", + "Sending ..." : "Pošiljanje ...", + "Email sent" : "Elektronska pošta je poslana", "Shared with you and the group {group} by {owner}" : "V souporabi z vami in skupino {group}. Lastnik je {owner}.", "Shared with you by {owner}" : "V souporabi z vami. Lastnik je {owner}.", "group" : "skupina", diff --git a/core/l10n/sl.json b/core/l10n/sl.json index ffc32c69bf7..f3dfb5434d9 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -24,6 +24,7 @@ "Error favoriting" : "Napaka označevanja priljubljenosti", "Error unfavoriting" : "Napaka odstranjevanja oznake priljubljenosti", "Couldn't send mail to following users: %s " : "Ni mogoče poslati sporočila za: %s", + "Preparing update" : "Pripravljanje posodobitve", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Poteka preverjanje razpredelnice %s", "Turned on maintenance mode" : "Vzdrževalni način je omogočen", @@ -136,8 +137,6 @@ "Expiration" : "Datum preteka", "Expiration date" : "Datum preteka", "Choose a password for the public link" : "Izberite geslo za javno povezavo", - "Sending ..." : "Pošiljanje ...", - "Email sent" : "Elektronska pošta je poslana", "Resharing is not allowed" : "Nadaljnja souporaba ni dovoljena", "Share link" : "Povezava za prejem", "Link" : "Povezava", @@ -146,6 +145,8 @@ "Allow editing" : "Dovoli urejanje", "Email link to person" : "Posreduj povezavo po elektronski pošti", "Send" : "Pošlji", + "Sending ..." : "Pošiljanje ...", + "Email sent" : "Elektronska pošta je poslana", "Shared with you and the group {group} by {owner}" : "V souporabi z vami in skupino {group}. Lastnik je {owner}.", "Shared with you by {owner}" : "V souporabi z vami. Lastnik je {owner}.", "group" : "skupina", diff --git a/core/l10n/sq.js b/core/l10n/sq.js index 788070d5f9a..dfe8ea14333 100644 --- a/core/l10n/sq.js +++ b/core/l10n/sq.js @@ -26,7 +26,8 @@ OC.L10N.register( "Error favoriting" : "Gabim në ruajtjen si të parapëlqyer", "Error unfavoriting" : "Gabim në heqjen nga të parapëlqyerat", "Couldn't send mail to following users: %s " : "S’u dërgua dot e-mail përdoruesve vijues: %s ", - "Updates need to be installed. Please use the command line updater." : "Lypset të instalohen përditësime. Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave.", + "Preparing update" : "Po përgatitet përditësimi", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave, sepse përditësimi i vetvetishëm është i çaktivizuar te config.php.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Po kontrollohet tabela %s", "Turned on maintenance mode" : "Mënyra e mirëmbajtjes u aktivizua", @@ -152,8 +153,6 @@ OC.L10N.register( "Expiration" : "Skadim", "Expiration date" : "Datë skadimi", "Choose a password for the public link" : "Zgjidhni një fjalëkalim për lidhjen publike", - "Sending ..." : "Po dërgohet …", - "Email sent" : "Email-i u dërgua", "Resharing is not allowed" : "Nuk lejohen rindarjet", "Share link" : "Lidhje ndarjeje", "Link" : "Lidhje", @@ -162,6 +161,8 @@ OC.L10N.register( "Allow editing" : "Lejo përpunim", "Email link to person" : "Dërgoja personit lidhjen me email", "Send" : "Dërgoje", + "Sending ..." : "Po dërgohet …", + "Email sent" : "Email-i u dërgua", "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}", "Shared with you by {owner}" : "Ndarë me ju nga {owner}", "group" : "grup", @@ -306,7 +307,6 @@ OC.L10N.register( "Detailed logs" : "Regjistrime të hollësishme", "Update needed" : "Lyp përditësim", "Please use the command line updater because you have a big instance." : "Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave, sepse keni një instalim të madh.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave, sepse përditësimi i vetvetishëm është i çaktivizuar te config.php.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Për ndihmë, shihni <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentimin</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Kjo instancë %s hëpërhë gjendet nën mënyrën mirëmbajtje, çka mund të zgjasë ca.", "This page will refresh itself when the %s instance is available again." : "Kjo faqe do të rifreskohet vetiu, sapo instanca %s të jetë sërish gati." diff --git a/core/l10n/sq.json b/core/l10n/sq.json index ed725ab7330..c655321755a 100644 --- a/core/l10n/sq.json +++ b/core/l10n/sq.json @@ -24,7 +24,8 @@ "Error favoriting" : "Gabim në ruajtjen si të parapëlqyer", "Error unfavoriting" : "Gabim në heqjen nga të parapëlqyerat", "Couldn't send mail to following users: %s " : "S’u dërgua dot e-mail përdoruesve vijues: %s ", - "Updates need to be installed. Please use the command line updater." : "Lypset të instalohen përditësime. Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave.", + "Preparing update" : "Po përgatitet përditësimi", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave, sepse përditësimi i vetvetishëm është i çaktivizuar te config.php.", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Po kontrollohet tabela %s", "Turned on maintenance mode" : "Mënyra e mirëmbajtjes u aktivizua", @@ -150,8 +151,6 @@ "Expiration" : "Skadim", "Expiration date" : "Datë skadimi", "Choose a password for the public link" : "Zgjidhni një fjalëkalim për lidhjen publike", - "Sending ..." : "Po dërgohet …", - "Email sent" : "Email-i u dërgua", "Resharing is not allowed" : "Nuk lejohen rindarjet", "Share link" : "Lidhje ndarjeje", "Link" : "Lidhje", @@ -160,6 +159,8 @@ "Allow editing" : "Lejo përpunim", "Email link to person" : "Dërgoja personit lidhjen me email", "Send" : "Dërgoje", + "Sending ..." : "Po dërgohet …", + "Email sent" : "Email-i u dërgua", "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}", "Shared with you by {owner}" : "Ndarë me ju nga {owner}", "group" : "grup", @@ -304,7 +305,6 @@ "Detailed logs" : "Regjistrime të hollësishme", "Update needed" : "Lyp përditësim", "Please use the command line updater because you have a big instance." : "Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave, sepse keni një instalim të madh.", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Ju lutemi, përdorni përditësuesin e rreshtit të urdhrave, sepse përditësimi i vetvetishëm është i çaktivizuar te config.php.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Për ndihmë, shihni <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentimin</a>.", "This %s instance is currently in maintenance mode, which may take a while." : "Kjo instancë %s hëpërhë gjendet nën mënyrën mirëmbajtje, çka mund të zgjasë ca.", "This page will refresh itself when the %s instance is available again." : "Kjo faqe do të rifreskohet vetiu, sapo instanca %s të jetë sërish gati." diff --git a/core/l10n/sr.js b/core/l10n/sr.js index f4a5e01a5ce..566acba710d 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -22,6 +22,7 @@ OC.L10N.register( "Error favoriting" : "Грешка при постављању омиљеног", "Error unfavoriting" : "Грешка при укидању омиљеног", "Couldn't send mail to following users: %s " : "Не могу да пошаљем е-пошту следећим корисницима: %s ", + "Preparing update" : "Припремам надоградњу", "Turned on maintenance mode" : "Режим одржавања укључен", "Turned off maintenance mode" : "Режим одржавања искључен", "Maintenance mode is kept active" : "Режим одржавања се држи активним", @@ -124,8 +125,6 @@ OC.L10N.register( "Expiration" : "Истиче", "Expiration date" : "Датум истека", "Choose a password for the public link" : "Одредите лозинку за јавну везу", - "Sending ..." : "Шаљем...", - "Email sent" : "Порука је послата", "Resharing is not allowed" : "Поновно дељење није дозвољено", "Share link" : "Веза дељења", "Link" : "Веза", @@ -134,6 +133,8 @@ OC.L10N.register( "Allow editing" : "Дозволи уређивање", "Email link to person" : "Пошаљи е-поштом", "Send" : "Пошаљи", + "Sending ..." : "Шаљем...", + "Email sent" : "Порука је послата", "Shared with you and the group {group} by {owner}" : "{owner} дели са вама и са групом {group}.", "Shared with you by {owner}" : "{owner} дели са вама", "group" : "група", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index fe7cbbfa6eb..3089fac3896 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -20,6 +20,7 @@ "Error favoriting" : "Грешка при постављању омиљеног", "Error unfavoriting" : "Грешка при укидању омиљеног", "Couldn't send mail to following users: %s " : "Не могу да пошаљем е-пошту следећим корисницима: %s ", + "Preparing update" : "Припремам надоградњу", "Turned on maintenance mode" : "Режим одржавања укључен", "Turned off maintenance mode" : "Режим одржавања искључен", "Maintenance mode is kept active" : "Режим одржавања се држи активним", @@ -122,8 +123,6 @@ "Expiration" : "Истиче", "Expiration date" : "Датум истека", "Choose a password for the public link" : "Одредите лозинку за јавну везу", - "Sending ..." : "Шаљем...", - "Email sent" : "Порука је послата", "Resharing is not allowed" : "Поновно дељење није дозвољено", "Share link" : "Веза дељења", "Link" : "Веза", @@ -132,6 +131,8 @@ "Allow editing" : "Дозволи уређивање", "Email link to person" : "Пошаљи е-поштом", "Send" : "Пошаљи", + "Sending ..." : "Шаљем...", + "Email sent" : "Порука је послата", "Shared with you and the group {group} by {owner}" : "{owner} дели са вама и са групом {group}.", "Shared with you by {owner}" : "{owner} дели са вама", "group" : "група", diff --git a/core/l10n/sr@latin.js b/core/l10n/sr@latin.js index c2ef304038b..498b569b9ad 100644 --- a/core/l10n/sr@latin.js +++ b/core/l10n/sr@latin.js @@ -104,8 +104,6 @@ OC.L10N.register( "Expiration" : "Isticanje", "Expiration date" : "Datum isteka", "Choose a password for the public link" : "Izaberite lozinku za javnu prečicu", - "Sending ..." : "Slanje...", - "Email sent" : "Email poslat", "Resharing is not allowed" : "Dalje deljenje nije dozvoljeno", "Share link" : "Podeli prečicu", "Link" : "Prečica", @@ -114,6 +112,8 @@ OC.L10N.register( "Allow editing" : "Dozvoli uređivanje", "Email link to person" : "Pošalji link e-mailom", "Send" : "Pošalji", + "Sending ..." : "Slanje...", + "Email sent" : "Email poslat", "Shared with you and the group {group} by {owner}" : "{owner} podelio sa Vama i grupom {group} ", "Shared with you by {owner}" : "Sa vama podelio {owner}", "group" : "grupa", diff --git a/core/l10n/sr@latin.json b/core/l10n/sr@latin.json index 262b98b3605..0062e4da477 100644 --- a/core/l10n/sr@latin.json +++ b/core/l10n/sr@latin.json @@ -102,8 +102,6 @@ "Expiration" : "Isticanje", "Expiration date" : "Datum isteka", "Choose a password for the public link" : "Izaberite lozinku za javnu prečicu", - "Sending ..." : "Slanje...", - "Email sent" : "Email poslat", "Resharing is not allowed" : "Dalje deljenje nije dozvoljeno", "Share link" : "Podeli prečicu", "Link" : "Prečica", @@ -112,6 +110,8 @@ "Allow editing" : "Dozvoli uređivanje", "Email link to person" : "Pošalji link e-mailom", "Send" : "Pošalji", + "Sending ..." : "Slanje...", + "Email sent" : "Email poslat", "Shared with you and the group {group} by {owner}" : "{owner} podelio sa Vama i grupom {group} ", "Shared with you by {owner}" : "Sa vama podelio {owner}", "group" : "grupa", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index 0183ccfe8f1..01f8174e89a 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Fel vid favorisering", "Error unfavoriting" : "Fel vid avfavorisering ", "Couldn't send mail to following users: %s " : "Gick inte att skicka e-post till följande användare: %s", + "Preparing update" : "Förbereder uppdatering", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrollerar tabell %s", "Turned on maintenance mode" : "Aktiverade underhållsläge", @@ -151,8 +152,6 @@ OC.L10N.register( "Expiration" : "Upphör", "Expiration date" : "Utgångsdatum", "Choose a password for the public link" : "Välj ett lösenord för den publika länken", - "Sending ..." : "Skickar ...", - "Email sent" : "E-post skickat", "Resharing is not allowed" : "Dela vidare är inte tillåtet", "Share link" : "Dela länk", "Link" : "Länk", @@ -161,6 +160,8 @@ OC.L10N.register( "Allow editing" : "Tillåt redigering", "Email link to person" : "E-posta länk till person", "Send" : "Skicka", + "Sending ..." : "Skickar ...", + "Email sent" : "E-post skickat", "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}", "Shared with you by {owner}" : "Delad med dig av {owner}", "group" : "Grupp", diff --git a/core/l10n/sv.json b/core/l10n/sv.json index 05c1ad87c00..7d197d9139f 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -24,6 +24,7 @@ "Error favoriting" : "Fel vid favorisering", "Error unfavoriting" : "Fel vid avfavorisering ", "Couldn't send mail to following users: %s " : "Gick inte att skicka e-post till följande användare: %s", + "Preparing update" : "Förbereder uppdatering", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrollerar tabell %s", "Turned on maintenance mode" : "Aktiverade underhållsläge", @@ -149,8 +150,6 @@ "Expiration" : "Upphör", "Expiration date" : "Utgångsdatum", "Choose a password for the public link" : "Välj ett lösenord för den publika länken", - "Sending ..." : "Skickar ...", - "Email sent" : "E-post skickat", "Resharing is not allowed" : "Dela vidare är inte tillåtet", "Share link" : "Dela länk", "Link" : "Länk", @@ -159,6 +158,8 @@ "Allow editing" : "Tillåt redigering", "Email link to person" : "E-posta länk till person", "Send" : "Skicka", + "Sending ..." : "Skickar ...", + "Email sent" : "E-post skickat", "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}", "Shared with you by {owner}" : "Delad med dig av {owner}", "group" : "Grupp", diff --git a/core/l10n/th_TH.js b/core/l10n/th_TH.js index dbaa40da3e6..1ddea81a86a 100644 --- a/core/l10n/th_TH.js +++ b/core/l10n/th_TH.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "เกิดข้อผิดพลาดขณะเลือกที่ชื่นชอบ", "Error unfavoriting" : "เกิดข้อผิดพลาดขณะยกเลิกการเลือกที่ชื่นชอบ", "Couldn't send mail to following users: %s " : "ไม่สามารถส่งอีเมลไปยังผู้ใช้: %s", + "Preparing update" : "เตรียมอัพเดท", "Turned on maintenance mode" : "เปิดโหมดการบำรุงรักษา", "Turned off maintenance mode" : "ปิดโหมดการบำรุงรักษา", "Maintenance mode is kept active" : "โหมดการบำรุงรักษาจะถูกเก็บไว้ใช้งาน", @@ -141,8 +142,6 @@ OC.L10N.register( "Expiration" : "การหมดอายุ", "Expiration date" : "วันที่หมดอายุ", "Choose a password for the public link" : "เลือกรหัสผ่านสำหรับลิงค์สาธารณะ", - "Sending ..." : "กำลังส่ง...", - "Email sent" : "ส่งอีเมล์แล้ว", "Resharing is not allowed" : "ไม่อนุญาตให้แชร์ข้อมูลที่ซ้ำกัน", "Share link" : "แชร์ลิงค์", "Link" : "ลิงค์", @@ -151,6 +150,8 @@ OC.L10N.register( "Allow editing" : "อนุญาตให้แก้ไข", "Email link to person" : "ส่งลิงก์ให้ทางอีเมล", "Send" : "ส่ง", + "Sending ..." : "กำลังส่ง...", + "Email sent" : "ส่งอีเมล์แล้ว", "Shared with you and the group {group} by {owner}" : "ได้แชร์ให้กับคุณ และกลุ่ม {group} โดย {owner}", "Shared with you by {owner}" : "ถูกแชร์ให้กับคุณโดย {owner}", "group" : "กลุ่มผู้ใช้งาน", diff --git a/core/l10n/th_TH.json b/core/l10n/th_TH.json index b0063ad770e..fd0f8226654 100644 --- a/core/l10n/th_TH.json +++ b/core/l10n/th_TH.json @@ -24,6 +24,7 @@ "Error favoriting" : "เกิดข้อผิดพลาดขณะเลือกที่ชื่นชอบ", "Error unfavoriting" : "เกิดข้อผิดพลาดขณะยกเลิกการเลือกที่ชื่นชอบ", "Couldn't send mail to following users: %s " : "ไม่สามารถส่งอีเมลไปยังผู้ใช้: %s", + "Preparing update" : "เตรียมอัพเดท", "Turned on maintenance mode" : "เปิดโหมดการบำรุงรักษา", "Turned off maintenance mode" : "ปิดโหมดการบำรุงรักษา", "Maintenance mode is kept active" : "โหมดการบำรุงรักษาจะถูกเก็บไว้ใช้งาน", @@ -139,8 +140,6 @@ "Expiration" : "การหมดอายุ", "Expiration date" : "วันที่หมดอายุ", "Choose a password for the public link" : "เลือกรหัสผ่านสำหรับลิงค์สาธารณะ", - "Sending ..." : "กำลังส่ง...", - "Email sent" : "ส่งอีเมล์แล้ว", "Resharing is not allowed" : "ไม่อนุญาตให้แชร์ข้อมูลที่ซ้ำกัน", "Share link" : "แชร์ลิงค์", "Link" : "ลิงค์", @@ -149,6 +148,8 @@ "Allow editing" : "อนุญาตให้แก้ไข", "Email link to person" : "ส่งลิงก์ให้ทางอีเมล", "Send" : "ส่ง", + "Sending ..." : "กำลังส่ง...", + "Email sent" : "ส่งอีเมล์แล้ว", "Shared with you and the group {group} by {owner}" : "ได้แชร์ให้กับคุณ และกลุ่ม {group} โดย {owner}", "Shared with you by {owner}" : "ถูกแชร์ให้กับคุณโดย {owner}", "group" : "กลุ่มผู้ใช้งาน", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index a2edc2565f9..5b56cf39d45 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "Beğenilirken hata", "Error unfavoriting" : "Beğeniden kaldırılırken hata", "Couldn't send mail to following users: %s " : "Şu kullanıcılara posta gönderilemedi: %s", + "Preparing update" : "Güncelleme hazırlanıyor", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Tablo kontroi ediliyor %s", "Turned on maintenance mode" : "Bakım kipi etkinleştirildi", @@ -143,8 +144,6 @@ OC.L10N.register( "Expiration" : "Bitiş", "Expiration date" : "Son kullanım tarihi", "Choose a password for the public link" : "Herkese açık bağlantı için bir parola seçin", - "Sending ..." : "Gönderiliyor...", - "Email sent" : "E-posta gönderildi", "Resharing is not allowed" : "Tekrar paylaşmaya izin verilmiyor", "Share link" : "Paylaşma bağlantısı", "Link" : "Bağlantı", @@ -153,6 +152,8 @@ OC.L10N.register( "Allow editing" : "Düzenlemeye izin ver", "Email link to person" : "Bağlantıyı e-posta ile gönder", "Send" : "Gönder", + "Sending ..." : "Gönderiliyor...", + "Email sent" : "E-posta gönderildi", "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış", "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı", "group" : "grup", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index ee4be500b7b..d268c1c4f63 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -24,6 +24,7 @@ "Error favoriting" : "Beğenilirken hata", "Error unfavoriting" : "Beğeniden kaldırılırken hata", "Couldn't send mail to following users: %s " : "Şu kullanıcılara posta gönderilemedi: %s", + "Preparing update" : "Güncelleme hazırlanıyor", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: Tablo kontroi ediliyor %s", "Turned on maintenance mode" : "Bakım kipi etkinleştirildi", @@ -141,8 +142,6 @@ "Expiration" : "Bitiş", "Expiration date" : "Son kullanım tarihi", "Choose a password for the public link" : "Herkese açık bağlantı için bir parola seçin", - "Sending ..." : "Gönderiliyor...", - "Email sent" : "E-posta gönderildi", "Resharing is not allowed" : "Tekrar paylaşmaya izin verilmiyor", "Share link" : "Paylaşma bağlantısı", "Link" : "Bağlantı", @@ -151,6 +150,8 @@ "Allow editing" : "Düzenlemeye izin ver", "Email link to person" : "Bağlantıyı e-posta ile gönder", "Send" : "Gönder", + "Sending ..." : "Gönderiliyor...", + "Email sent" : "E-posta gönderildi", "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış", "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı", "group" : "grup", diff --git a/core/l10n/uk.js b/core/l10n/uk.js index f11176e56cf..0278766dfaa 100644 --- a/core/l10n/uk.js +++ b/core/l10n/uk.js @@ -25,6 +25,7 @@ OC.L10N.register( "Error favoriting" : "Помилка додавання в улюблені", "Error unfavoriting" : "Помилка видалення з улюбленого", "Couldn't send mail to following users: %s " : "Неможливо надіслати листа наступним користувачам: %s ", + "Preparing update" : "Підготовка до оновлення", "Turned on maintenance mode" : "Увімкнено режим технічного обслуговування", "Turned off maintenance mode" : "Вимкнено режим технічного обслуговування", "Maintenance mode is kept active" : "Режим обслуговування залишається активним", @@ -136,8 +137,6 @@ OC.L10N.register( "Expiration" : "Закінчення", "Expiration date" : "Термін дії", "Choose a password for the public link" : "Вкажіть пароль для публічного посилання", - "Sending ..." : "Надсилання...", - "Email sent" : "Лист надіслано", "Resharing is not allowed" : "Пере-публікація не дозволяється", "Share link" : "Поділитись посиланням", "Link" : "Посилання", @@ -146,6 +145,8 @@ OC.L10N.register( "Allow editing" : "Дозволити редагування", "Email link to person" : "Надіслати посилання електронною поштою", "Send" : "Надіслати", + "Sending ..." : "Надсилання...", + "Email sent" : "Лист надіслано", "Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}", "Shared with you by {owner}" : "{owner} опублікував для Вас", "group" : "група", diff --git a/core/l10n/uk.json b/core/l10n/uk.json index e8ccbae2c96..81cc19a624e 100644 --- a/core/l10n/uk.json +++ b/core/l10n/uk.json @@ -23,6 +23,7 @@ "Error favoriting" : "Помилка додавання в улюблені", "Error unfavoriting" : "Помилка видалення з улюбленого", "Couldn't send mail to following users: %s " : "Неможливо надіслати листа наступним користувачам: %s ", + "Preparing update" : "Підготовка до оновлення", "Turned on maintenance mode" : "Увімкнено режим технічного обслуговування", "Turned off maintenance mode" : "Вимкнено режим технічного обслуговування", "Maintenance mode is kept active" : "Режим обслуговування залишається активним", @@ -134,8 +135,6 @@ "Expiration" : "Закінчення", "Expiration date" : "Термін дії", "Choose a password for the public link" : "Вкажіть пароль для публічного посилання", - "Sending ..." : "Надсилання...", - "Email sent" : "Лист надіслано", "Resharing is not allowed" : "Пере-публікація не дозволяється", "Share link" : "Поділитись посиланням", "Link" : "Посилання", @@ -144,6 +143,8 @@ "Allow editing" : "Дозволити редагування", "Email link to person" : "Надіслати посилання електронною поштою", "Send" : "Надіслати", + "Sending ..." : "Надсилання...", + "Email sent" : "Лист надіслано", "Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}", "Shared with you by {owner}" : "{owner} опублікував для Вас", "group" : "група", diff --git a/core/l10n/ur_PK.js b/core/l10n/ur_PK.js index 474f9b6a844..53f2a0d5469 100644 --- a/core/l10n/ur_PK.js +++ b/core/l10n/ur_PK.js @@ -56,14 +56,14 @@ OC.L10N.register( "Set expiration date" : "تاریخ معیاد سیٹ کریں", "Expiration date" : "تاریخ معیاد", "Choose a password for the public link" : "عوامی لنک کے لئےپاس ورڈ منتخب کریں", - "Sending ..." : "ارسال ہو رہا ھے", - "Email sent" : "ارسال شدہ ای میل ", "Resharing is not allowed" : "دوبارہ اشتراک کی اجازت نہیں", "Share link" : "اشتراک لنک", "Password protect" : "محفوظ پاسورڈ", "Password" : "پاسورڈ", "Email link to person" : "شحص کے لیے ای میل لنک", "Send" : "بھجیں", + "Sending ..." : "ارسال ہو رہا ھے", + "Email sent" : "ارسال شدہ ای میل ", "Shared with you and the group {group} by {owner}" : "آپ اور گروہ سے مشترق شدہ {گروہ } سے {مالک}", "Shared with you by {owner}" : "اشتراک شدہ آپ سے{مالک}", "group" : "مجموعہ", diff --git a/core/l10n/ur_PK.json b/core/l10n/ur_PK.json index 41c54450fbd..5a94bf34661 100644 --- a/core/l10n/ur_PK.json +++ b/core/l10n/ur_PK.json @@ -54,14 +54,14 @@ "Set expiration date" : "تاریخ معیاد سیٹ کریں", "Expiration date" : "تاریخ معیاد", "Choose a password for the public link" : "عوامی لنک کے لئےپاس ورڈ منتخب کریں", - "Sending ..." : "ارسال ہو رہا ھے", - "Email sent" : "ارسال شدہ ای میل ", "Resharing is not allowed" : "دوبارہ اشتراک کی اجازت نہیں", "Share link" : "اشتراک لنک", "Password protect" : "محفوظ پاسورڈ", "Password" : "پاسورڈ", "Email link to person" : "شحص کے لیے ای میل لنک", "Send" : "بھجیں", + "Sending ..." : "ارسال ہو رہا ھے", + "Email sent" : "ارسال شدہ ای میل ", "Shared with you and the group {group} by {owner}" : "آپ اور گروہ سے مشترق شدہ {گروہ } سے {مالک}", "Shared with you by {owner}" : "اشتراک شدہ آپ سے{مالک}", "group" : "مجموعہ", diff --git a/core/l10n/vi.js b/core/l10n/vi.js index 91fa2ceb474..5fabd2e6940 100644 --- a/core/l10n/vi.js +++ b/core/l10n/vi.js @@ -80,14 +80,14 @@ OC.L10N.register( "Error setting expiration date" : "Lỗi cấu hình ngày kết thúc", "Set expiration date" : "Đặt ngày kết thúc", "Expiration date" : "Ngày kết thúc", - "Sending ..." : "Đang gởi ...", - "Email sent" : "Email đã được gửi", "Resharing is not allowed" : "Chia sẻ lại không được cho phép", "Share link" : "Chia sẻ liên kết", "Password protect" : "Mật khẩu bảo vệ", "Password" : "Mật khẩu", "Email link to person" : "Liên kết email tới cá nhân", "Send" : "Gởi", + "Sending ..." : "Đang gởi ...", + "Email sent" : "Email đã được gửi", "Shared with you and the group {group} by {owner}" : "Đã được chia sẽ với bạn và nhóm {group} bởi {owner}", "Shared with you by {owner}" : "Đã được chia sẽ bởi {owner}", "group" : "nhóm", diff --git a/core/l10n/vi.json b/core/l10n/vi.json index dd0a3a0fa9d..ca107dd661e 100644 --- a/core/l10n/vi.json +++ b/core/l10n/vi.json @@ -78,14 +78,14 @@ "Error setting expiration date" : "Lỗi cấu hình ngày kết thúc", "Set expiration date" : "Đặt ngày kết thúc", "Expiration date" : "Ngày kết thúc", - "Sending ..." : "Đang gởi ...", - "Email sent" : "Email đã được gửi", "Resharing is not allowed" : "Chia sẻ lại không được cho phép", "Share link" : "Chia sẻ liên kết", "Password protect" : "Mật khẩu bảo vệ", "Password" : "Mật khẩu", "Email link to person" : "Liên kết email tới cá nhân", "Send" : "Gởi", + "Sending ..." : "Đang gởi ...", + "Email sent" : "Email đã được gửi", "Shared with you and the group {group} by {owner}" : "Đã được chia sẽ với bạn và nhóm {group} bởi {owner}", "Shared with you by {owner}" : "Đã được chia sẽ bởi {owner}", "group" : "nhóm", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index b417644eb15..b95f25a2223 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "收藏时出错", "Error unfavoriting" : "删除收藏时出错", "Couldn't send mail to following users: %s " : "无法发送邮件到用户: %s ", + "Preparing update" : "正在准备更新", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: 检查数据表 %s", "Turned on maintenance mode" : "启用维护模式", @@ -144,8 +145,6 @@ OC.L10N.register( "Expiration" : "过期", "Expiration date" : "过期日期", "Choose a password for the public link" : "为共享链接设置密码", - "Sending ..." : "正在发送...", - "Email sent" : "邮件已发送", "Resharing is not allowed" : "不允许二次共享", "Share link" : "分享链接", "Link" : "链接", @@ -154,6 +153,8 @@ OC.L10N.register( "Allow editing" : "允许编辑", "Email link to person" : "发送链接到个人", "Send" : "发送", + "Sending ..." : "正在发送...", + "Email sent" : "邮件已发送", "Shared with you and the group {group} by {owner}" : "{owner} 共享给您及 {group} 组", "Shared with you by {owner}" : "{owner} 与您共享", "group" : "群组", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index 45eef49512d..ecc89844f17 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -24,6 +24,7 @@ "Error favoriting" : "收藏时出错", "Error unfavoriting" : "删除收藏时出错", "Couldn't send mail to following users: %s " : "无法发送邮件到用户: %s ", + "Preparing update" : "正在准备更新", "[%d / %d]: %s" : "[%d / %d]: %s", "[%d / %d]: Checking table %s" : "[%d / %d]: 检查数据表 %s", "Turned on maintenance mode" : "启用维护模式", @@ -142,8 +143,6 @@ "Expiration" : "过期", "Expiration date" : "过期日期", "Choose a password for the public link" : "为共享链接设置密码", - "Sending ..." : "正在发送...", - "Email sent" : "邮件已发送", "Resharing is not allowed" : "不允许二次共享", "Share link" : "分享链接", "Link" : "链接", @@ -152,6 +151,8 @@ "Allow editing" : "允许编辑", "Email link to person" : "发送链接到个人", "Send" : "发送", + "Sending ..." : "正在发送...", + "Email sent" : "邮件已发送", "Shared with you and the group {group} by {owner}" : "{owner} 共享给您及 {group} 组", "Shared with you by {owner}" : "{owner} 与您共享", "group" : "群组", diff --git a/core/l10n/zh_HK.js b/core/l10n/zh_HK.js index 1e03d908948..de0b4673318 100644 --- a/core/l10n/zh_HK.js +++ b/core/l10n/zh_HK.js @@ -34,12 +34,12 @@ OC.L10N.register( "Error while unsharing" : "取消分享時發生錯誤", "Set expiration date" : "設定分享期限", "Expiration date" : "分享期限", - "Sending ..." : "發送中...", - "Email sent" : "郵件已傳", "Share link" : "分享連結", "Password protect" : "密碼保護", "Password" : "密碼", "Send" : "傳送", + "Sending ..." : "發送中...", + "Email sent" : "郵件已傳", "Shared with you and the group {group} by {owner}" : "{owner}與你及群組的分享", "Shared with you by {owner}" : "{owner}與你的分享", "Unshare" : "取消分享", diff --git a/core/l10n/zh_HK.json b/core/l10n/zh_HK.json index cbb721c6b4b..78735e6045b 100644 --- a/core/l10n/zh_HK.json +++ b/core/l10n/zh_HK.json @@ -32,12 +32,12 @@ "Error while unsharing" : "取消分享時發生錯誤", "Set expiration date" : "設定分享期限", "Expiration date" : "分享期限", - "Sending ..." : "發送中...", - "Email sent" : "郵件已傳", "Share link" : "分享連結", "Password protect" : "密碼保護", "Password" : "密碼", "Send" : "傳送", + "Sending ..." : "發送中...", + "Email sent" : "郵件已傳", "Shared with you and the group {group} by {owner}" : "{owner}與你及群組的分享", "Shared with you by {owner}" : "{owner}與你的分享", "Unshare" : "取消分享", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index aec881a4c7a..154e868a49f 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -26,6 +26,7 @@ OC.L10N.register( "Error favoriting" : "加入最愛時出錯", "Error unfavoriting" : "從最愛移除出錯", "Couldn't send mail to following users: %s " : "無法寄送郵件給這些使用者:%s", + "Preparing update" : "準備更新", "Turned on maintenance mode" : "已啓用維護模式", "Turned off maintenance mode" : "已停用維護模式", "Maintenance mode is kept active" : "維護模式維持在開啟狀態", @@ -140,8 +141,6 @@ OC.L10N.register( "Expiration" : "過期", "Expiration date" : "到期日", "Choose a password for the public link" : "為公開連結選一個密碼", - "Sending ..." : "正在傳送…", - "Email sent" : "Email 已寄出", "Resharing is not allowed" : "不允許重新分享", "Share link" : "分享連結", "Link" : "連結", @@ -150,6 +149,8 @@ OC.L10N.register( "Allow editing" : "允許編輯", "Email link to person" : "將連結 email 給別人", "Send" : "寄出", + "Sending ..." : "正在傳送…", + "Email sent" : "Email 已寄出", "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}", "Shared with you by {owner}" : "{owner} 已經和您分享", "group" : "群組", diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 2e40782bf1b..6548d7831af 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -24,6 +24,7 @@ "Error favoriting" : "加入最愛時出錯", "Error unfavoriting" : "從最愛移除出錯", "Couldn't send mail to following users: %s " : "無法寄送郵件給這些使用者:%s", + "Preparing update" : "準備更新", "Turned on maintenance mode" : "已啓用維護模式", "Turned off maintenance mode" : "已停用維護模式", "Maintenance mode is kept active" : "維護模式維持在開啟狀態", @@ -138,8 +139,6 @@ "Expiration" : "過期", "Expiration date" : "到期日", "Choose a password for the public link" : "為公開連結選一個密碼", - "Sending ..." : "正在傳送…", - "Email sent" : "Email 已寄出", "Resharing is not allowed" : "不允許重新分享", "Share link" : "分享連結", "Link" : "連結", @@ -148,6 +147,8 @@ "Allow editing" : "允許編輯", "Email link to person" : "將連結 email 給別人", "Send" : "寄出", + "Sending ..." : "正在傳送…", + "Email sent" : "Email 已寄出", "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}", "Shared with you by {owner}" : "{owner} 已經和您分享", "group" : "群組", @@ -175,4 +175,6 @@ try { } catch (Exception $ex) { \OCP\Util::writeLog('cron', $ex->getMessage(), \OCP\Util::FATAL); +} catch (Error $ex) { + \OCP\Util::writeLog('cron', $ex->getMessage(), \OCP\Util::FATAL); } diff --git a/index.php b/index.php index f3bf699f3c1..2acf81ab6d7 100644 --- a/index.php +++ b/index.php @@ -39,7 +39,7 @@ try { OC::handleRequest(); } catch(\OC\ServiceUnavailableException $ex) { - \OCP\Util::logException('index', $ex); + \OC::$server->getLogger()->logException($ex, ['app' => 'index']); //show the user a detailed error page OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE); @@ -48,9 +48,13 @@ try { OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE); OC_Template::printErrorPage($ex->getMessage(), $ex->getHint()); } catch (Exception $ex) { - \OCP\Util::logException('index', $ex); + \OC::$server->getLogger()->logException($ex, ['app' => 'index']); //show the user a detailed error page OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR); OC_Template::printExceptionErrorPage($ex); +} catch (Error $ex) { + \OC::$server->getLogger()->logException($ex, ['app' => 'index']); + OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR); + OC_Template::printExceptionErrorPage($ex); } diff --git a/lib/base.php b/lib/base.php index 26be1161ba3..8ea164a5007 100644 --- a/lib/base.php +++ b/lib/base.php @@ -545,14 +545,9 @@ class OC { OC_Util::isSetLocaleWorking(); if (!defined('PHPUNIT_RUN')) { - $logger = \OC::$server->getLogger(); - OC\Log\ErrorHandler::setLogger($logger); - if (\OC::$server->getConfig()->getSystemValue('debug', false)) { - OC\Log\ErrorHandler::register(true); - set_exception_handler(array('OC_Template', 'printExceptionErrorPage')); - } else { - OC\Log\ErrorHandler::register(); - } + OC\Log\ErrorHandler::setLogger(\OC::$server->getLogger()); + $debug = \OC::$server->getConfig()->getSystemValue('debug', false); + OC\Log\ErrorHandler::register($debug); } // register the stream wrappers diff --git a/lib/l10n/ast.js b/lib/l10n/ast.js index 1bc7d036530..a807dab7190 100644 --- a/lib/l10n/ast.js +++ b/lib/l10n/ast.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Davezu esto pue iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu de configuración%s.", "Sample configuration detected" : "Configuración d'amuesa detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detectose que la configuración d'amuesa copiose. Esto pue encaboxar la instalación y dexala ensín soporte. Llee la documentación enantes de facer cambéos en config.php", - "You are not allowed to share %s" : "Nun tienes permisu pa compartir %s", "PHP %s or higher is required." : "Necesítase PHP %s o superior", "PHP with a version lower than %s is required." : "Necesítase una versión PHP anterior a %s", "Following databases are supported: %s" : "Les siguientes bases de datos tan sofitaes: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Les siguientes plataformes tan sofitaes: %s", "ownCloud %s or higher is required." : "Necesítase ownCloud %s o superior.", "ownCloud %s or lower is required." : "Necesítase ownCloud %s o anterior.", + "You are not allowed to share %s" : "Nun tienes permisu pa compartir %s", "Help" : "Ayuda", "Personal" : "Personal", "Users" : "Usuarios", diff --git a/lib/l10n/ast.json b/lib/l10n/ast.json index 845674462a6..61161c633a8 100644 --- a/lib/l10n/ast.json +++ b/lib/l10n/ast.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Davezu esto pue iguase %sdándo-y al sirvidor web accesu d'escritura al direutoriu de configuración%s.", "Sample configuration detected" : "Configuración d'amuesa detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detectose que la configuración d'amuesa copiose. Esto pue encaboxar la instalación y dexala ensín soporte. Llee la documentación enantes de facer cambéos en config.php", - "You are not allowed to share %s" : "Nun tienes permisu pa compartir %s", "PHP %s or higher is required." : "Necesítase PHP %s o superior", "PHP with a version lower than %s is required." : "Necesítase una versión PHP anterior a %s", "Following databases are supported: %s" : "Les siguientes bases de datos tan sofitaes: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Les siguientes plataformes tan sofitaes: %s", "ownCloud %s or higher is required." : "Necesítase ownCloud %s o superior.", "ownCloud %s or lower is required." : "Necesítase ownCloud %s o anterior.", + "You are not allowed to share %s" : "Nun tienes permisu pa compartir %s", "Help" : "Ayuda", "Personal" : "Personal", "Users" : "Usuarios", diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js index ee5258e5514..394e72d544e 100644 --- a/lib/l10n/bg_BG.js +++ b/lib/l10n/bg_BG.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в config папката %s.", "Sample configuration detected" : "Открита е примерна конфигурация", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Усетено беше че примерната конфигурация е копирана. Това може да развли инсталацията ти и не се поддържа. Моля, прочети документацията преди да правиш промени на config.php", - "You are not allowed to share %s" : "Не ти е разрешено да споделяш %s.", "PHP %s or higher is required." : "Изисква се PHP %s или по-нова.", "PHP with a version lower than %s is required." : "Необходим е PHP с версия по-ниска от %s.", "Following databases are supported: %s" : "Следните бази данни са поддържани: %s", @@ -17,6 +16,7 @@ OC.L10N.register( "Library %s with a version lower than %s is required - available version %s." : "Необходима е библиотеката %s с версия по-ниска от %s - налична версия %s. ", "Following platforms are supported: %s" : "Поддържани са следните платформи: %s", "ownCloud %s or higher is required." : "Необходим е ownCloud %s или по-висока версия.", + "You are not allowed to share %s" : "Не ти е разрешено да споделяш %s.", "Help" : "Помощ", "Personal" : "Лични", "Users" : "Потребители", diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json index f5259d70946..4f6a9c52a32 100644 --- a/lib/l10n/bg_BG.json +++ b/lib/l10n/bg_BG.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в config папката %s.", "Sample configuration detected" : "Открита е примерна конфигурация", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Усетено беше че примерната конфигурация е копирана. Това може да развли инсталацията ти и не се поддържа. Моля, прочети документацията преди да правиш промени на config.php", - "You are not allowed to share %s" : "Не ти е разрешено да споделяш %s.", "PHP %s or higher is required." : "Изисква се PHP %s или по-нова.", "PHP with a version lower than %s is required." : "Необходим е PHP с версия по-ниска от %s.", "Following databases are supported: %s" : "Следните бази данни са поддържани: %s", @@ -15,6 +14,7 @@ "Library %s with a version lower than %s is required - available version %s." : "Необходима е библиотеката %s с версия по-ниска от %s - налична версия %s. ", "Following platforms are supported: %s" : "Поддържани са следните платформи: %s", "ownCloud %s or higher is required." : "Необходим е ownCloud %s или по-висока версия.", + "You are not allowed to share %s" : "Не ти е разрешено да споделяш %s.", "Help" : "Помощ", "Personal" : "Лични", "Users" : "Потребители", diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js index 83f81441f14..763e742f3b4 100644 --- a/lib/l10n/ca.js +++ b/lib/l10n/ca.js @@ -7,8 +7,8 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s", "Sample configuration detected" : "Configuració d'exemple detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "S'ha detectat que la configuració d'exemple ha estat copiada. Això no està suportat, i podria corrompre la vostra instalació. Siusplau, llegiu la documentació abans de realitzar canvis a config.php", - "You are not allowed to share %s" : "No se us permet compartir %s", "PHP %s or higher is required." : "Es requereix PHP %s o superior.", + "You are not allowed to share %s" : "No se us permet compartir %s", "Help" : "Ajuda", "Personal" : "Personal", "Users" : "Usuaris", diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json index 8a32487cbe4..49dbe1ac3c3 100644 --- a/lib/l10n/ca.json +++ b/lib/l10n/ca.json @@ -5,8 +5,8 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s", "Sample configuration detected" : "Configuració d'exemple detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "S'ha detectat que la configuració d'exemple ha estat copiada. Això no està suportat, i podria corrompre la vostra instalació. Siusplau, llegiu la documentació abans de realitzar canvis a config.php", - "You are not allowed to share %s" : "No se us permet compartir %s", "PHP %s or higher is required." : "Es requereix PHP %s o superior.", + "You are not allowed to share %s" : "No se us permet compartir %s", "Help" : "Ajuda", "Personal" : "Personal", "Users" : "Usuaris", diff --git a/lib/l10n/da.js b/lib/l10n/da.js index 6fced6db37e..c96ea1ae8f8 100644 --- a/lib/l10n/da.js +++ b/lib/l10n/da.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til config-mappen%s.", "Sample configuration detected" : "Eksempel for konfiguration registreret", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Der er registreret at eksempel for konfiguration er blevet kopieret. Dette kan ødelægge din installation og understøttes ikke. Læs venligst dokumentationen før der foretages ændringer i config.php", - "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s", - "Cannot increase permissions of %s" : "Kan give yderigere rettigheder til %s", - "Expiration date is in the past" : "Udløbsdatoen ligger tilbage i tid", - "Cannot set expiration date more than %s days in the future" : "Udløbsdato kan ikke sættes mere end %s dage ud i fremtiden", "PHP %s or higher is required." : "Der kræves PHP %s eller nyere.", "PHP with a version lower than %s is required." : "Der kræves PHP %s eller ældre.", "Following databases are supported: %s" : "Følgende databaser understøttes: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Følgende platforme understøttes: %s", "ownCloud %s or higher is required." : "Der kræves ownCloud %s eller højere.", "ownCloud %s or lower is required." : "ownCloud %s eller lavere er påkrævet.", + "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s", + "Cannot increase permissions of %s" : "Kan give yderigere rettigheder til %s", + "Expiration date is in the past" : "Udløbsdatoen ligger tilbage i tid", + "Cannot set expiration date more than %s days in the future" : "Udløbsdato kan ikke sættes mere end %s dage ud i fremtiden", "Help" : "Hjælp", "Personal" : "Personligt", "Users" : "Brugere", diff --git a/lib/l10n/da.json b/lib/l10n/da.json index 7a4a273e337..9577c26c628 100644 --- a/lib/l10n/da.json +++ b/lib/l10n/da.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan som regel rettes ved at %sgive webserveren skriveadgang til config-mappen%s.", "Sample configuration detected" : "Eksempel for konfiguration registreret", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Der er registreret at eksempel for konfiguration er blevet kopieret. Dette kan ødelægge din installation og understøttes ikke. Læs venligst dokumentationen før der foretages ændringer i config.php", - "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s", - "Cannot increase permissions of %s" : "Kan give yderigere rettigheder til %s", - "Expiration date is in the past" : "Udløbsdatoen ligger tilbage i tid", - "Cannot set expiration date more than %s days in the future" : "Udløbsdato kan ikke sættes mere end %s dage ud i fremtiden", "PHP %s or higher is required." : "Der kræves PHP %s eller nyere.", "PHP with a version lower than %s is required." : "Der kræves PHP %s eller ældre.", "Following databases are supported: %s" : "Følgende databaser understøttes: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Følgende platforme understøttes: %s", "ownCloud %s or higher is required." : "Der kræves ownCloud %s eller højere.", "ownCloud %s or lower is required." : "ownCloud %s eller lavere er påkrævet.", + "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s", + "Cannot increase permissions of %s" : "Kan give yderigere rettigheder til %s", + "Expiration date is in the past" : "Udløbsdatoen ligger tilbage i tid", + "Cannot set expiration date more than %s days in the future" : "Udløbsdato kan ikke sættes mere end %s dage ud i fremtiden", "Help" : "Hjælp", "Personal" : "Personligt", "Users" : "Brugere", diff --git a/lib/l10n/de.js b/lib/l10n/de.js index 64250641b77..cb53a9f7812 100644 --- a/lib/l10n/de.js +++ b/lib/l10n/de.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise behoben werden, %sindem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis gegeben wird%s.", "Sample configuration detected" : "Beispielkonfiguration gefunden", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies kann Deine Installation zerstören und wird nicht unterstützt. Bitte lies die Dokumentation, bevor Du Änderungen an der config.php vornimmst.", - "You are not allowed to share %s" : "Die Freigabe von %s ist Dir nicht erlaubt", - "Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen", - "Expiration date is in the past" : "Ablaufdatum ist in der Vergangenheit", - "Cannot set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in die Zukunft liegen", "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.", "PHP with a version lower than %s is required." : "PHP wird in einer früheren Version als %s benötigt.", "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "ownCloud %s or higher is required." : "ownCloud %s oder höher wird benötigt.", "ownCloud %s or lower is required." : "ownCloud %s oder niedriger wird benötigt.", + "You are not allowed to share %s" : "Die Freigabe von %s ist Dir nicht erlaubt", + "Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen", + "Expiration date is in the past" : "Ablaufdatum ist in der Vergangenheit", + "Cannot set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in die Zukunft liegen", "Help" : "Hilfe", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/lib/l10n/de.json b/lib/l10n/de.json index 633ab47d9de..9f9849cdda1 100644 --- a/lib/l10n/de.json +++ b/lib/l10n/de.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise behoben werden, %sindem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis gegeben wird%s.", "Sample configuration detected" : "Beispielkonfiguration gefunden", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies kann Deine Installation zerstören und wird nicht unterstützt. Bitte lies die Dokumentation, bevor Du Änderungen an der config.php vornimmst.", - "You are not allowed to share %s" : "Die Freigabe von %s ist Dir nicht erlaubt", - "Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen", - "Expiration date is in the past" : "Ablaufdatum ist in der Vergangenheit", - "Cannot set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in die Zukunft liegen", "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.", "PHP with a version lower than %s is required." : "PHP wird in einer früheren Version als %s benötigt.", "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "ownCloud %s or higher is required." : "ownCloud %s oder höher wird benötigt.", "ownCloud %s or lower is required." : "ownCloud %s oder niedriger wird benötigt.", + "You are not allowed to share %s" : "Die Freigabe von %s ist Dir nicht erlaubt", + "Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen", + "Expiration date is in the past" : "Ablaufdatum ist in der Vergangenheit", + "Cannot set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in die Zukunft liegen", "Help" : "Hilfe", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index 54270493749..7a73396c469 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise behoben werden, %sindem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis gegeben wird%s.", "Sample configuration detected" : "Beispielkonfiguration gefunden", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies kann Ihre Installation zerstören und wird nicht unterstützt. Bitte lesen Sie die Dokumentation, bevor Sie Änderungen an der config.php vornehmen.", - "You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt", - "Cannot increase permissions of %s" : "Konnte die Berechtigung von %s nicht anpassen", - "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", - "Cannot set expiration date more than %s days in the future" : "Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.", "PHP with a version lower than %s is required." : "PHP wird in einer früheren Version als %s benötigt.", "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "ownCloud %s or higher is required." : "ownCloud %s oder höher wird benötigt.", "ownCloud %s or lower is required." : "ownCloud %s oder niedriger wird benötigt.", + "You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt", + "Cannot increase permissions of %s" : "Konnte die Berechtigung von %s nicht anpassen", + "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", + "Cannot set expiration date more than %s days in the future" : "Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", "Help" : "Hilfe", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index 49abf03a567..2b0c29cacdb 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dies kann normalerweise behoben werden, %sindem dem Webserver Schreibzugriff auf das Konfigurationsverzeichnis gegeben wird%s.", "Sample configuration detected" : "Beispielkonfiguration gefunden", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es wurde festgestellt, dass die Beispielkonfiguration kopiert wurde. Dies kann Ihre Installation zerstören und wird nicht unterstützt. Bitte lesen Sie die Dokumentation, bevor Sie Änderungen an der config.php vornehmen.", - "You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt", - "Cannot increase permissions of %s" : "Konnte die Berechtigung von %s nicht anpassen", - "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", - "Cannot set expiration date more than %s days in the future" : "Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", "PHP %s or higher is required." : "PHP %s oder höher wird benötigt.", "PHP with a version lower than %s is required." : "PHP wird in einer früheren Version als %s benötigt.", "Following databases are supported: %s" : "Die folgenden Datenbanken werden unterstützt: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "ownCloud %s or higher is required." : "ownCloud %s oder höher wird benötigt.", "ownCloud %s or lower is required." : "ownCloud %s oder niedriger wird benötigt.", + "You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt", + "Cannot increase permissions of %s" : "Konnte die Berechtigung von %s nicht anpassen", + "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", + "Cannot set expiration date more than %s days in the future" : "Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", "Help" : "Hilfe", "Personal" : "Persönlich", "Users" : "Benutzer", diff --git a/lib/l10n/el.js b/lib/l10n/el.js index c8af11fbcd7..1b6a874abae 100644 --- a/lib/l10n/el.js +++ b/lib/l10n/el.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Αυτό μπορεί συνήθως να διορθωθεί %sπαρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου%s.", "Sample configuration detected" : "Ανιχνεύθηκε δείγμα εγκατάστασης", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Έχει ανιχνευθεί ότι το δείγμα εγκατάστασης έχει αντιγραφεί. Αυτό μπορεί να σπάσει την εγκατάστασή σας και δεν υποστηρίζεται. Παρακαλώ διαβάστε την τεκμηρίωση πριν εκτελέσετε αλλαγές στο config.php", - "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s", "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.", "PHP with a version lower than %s is required." : "Απαιτείται PHP παλαιότερη από την έκδοση %s.", "Following databases are supported: %s" : " Υποστηρίζονται οι ακόλουθες βάσεις δεδομένων: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Οι ακόλουθες πλατφόρμες υποστηρίζονται: %s", "ownCloud %s or higher is required." : "Απαιτείται ownCloud %s ή νεότερο", "ownCloud %s or lower is required." : "Απαιτείται έκδοση του ownCloud παλαιότερη από την %s.", + "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s", "Help" : "Βοήθεια", "Personal" : "Προσωπικά", "Users" : "Χρήστες", diff --git a/lib/l10n/el.json b/lib/l10n/el.json index 932113e5dd7..0c9bfca41d9 100644 --- a/lib/l10n/el.json +++ b/lib/l10n/el.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Αυτό μπορεί συνήθως να διορθωθεί %sπαρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου%s.", "Sample configuration detected" : "Ανιχνεύθηκε δείγμα εγκατάστασης", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Έχει ανιχνευθεί ότι το δείγμα εγκατάστασης έχει αντιγραφεί. Αυτό μπορεί να σπάσει την εγκατάστασή σας και δεν υποστηρίζεται. Παρακαλώ διαβάστε την τεκμηρίωση πριν εκτελέσετε αλλαγές στο config.php", - "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s", "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.", "PHP with a version lower than %s is required." : "Απαιτείται PHP παλαιότερη από την έκδοση %s.", "Following databases are supported: %s" : " Υποστηρίζονται οι ακόλουθες βάσεις δεδομένων: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Οι ακόλουθες πλατφόρμες υποστηρίζονται: %s", "ownCloud %s or higher is required." : "Απαιτείται ownCloud %s ή νεότερο", "ownCloud %s or lower is required." : "Απαιτείται έκδοση του ownCloud παλαιότερη από την %s.", + "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s", "Help" : "Βοήθεια", "Personal" : "Προσωπικά", "Users" : "Χρήστες", diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index 1d507fd4c7a..fc17a32c99c 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -26,6 +26,7 @@ OC.L10N.register( "Users" : "Users", "Admin" : "Admin", "Recommended" : "Recommended", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "App \"%s\" cannot be installed because appinfo file cannot be read.", "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud." : "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud.", "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s", "No app name specified" : "No app name specified", @@ -60,6 +61,7 @@ OC.L10N.register( "Archives of type %s are not supported" : "Archives of type %s are not supported", "Failed to open archive when installing app" : "Failed to open archive when installing app", "App does not provide an info.xml file" : "App does not provide an info.xml file", + "App cannot be installed because appinfo file cannot be read." : "App cannot be installed because appinfo file cannot be read.", "Signature could not get checked. Please contact the app developer and check your admin screen." : "Signature could not get checked. Please contact the app developer and check your admin screen.", "App can't be installed because of not allowed code in the App" : "App can't be installed because of unallowed code in the App", "App can't be installed because it is not compatible with this version of ownCloud" : "App can't be installed because it is not compatible with this version of ownCloud", @@ -131,6 +133,7 @@ OC.L10N.register( "Cannot write into \"apps\" directory" : "Cannot write into \"apps\" directory", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file.", "Cannot create \"data\" directory (%s)" : "Cannot create \"data\" directory (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>.", "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s.", "Setting locale to %s failed" : "Setting locale to %s failed", "Please install one of these locales on your system and restart your webserver." : "Please install one of these locales on your system and restart your webserver.", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index f2b42ea045c..9275dd4e111 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -24,6 +24,7 @@ "Users" : "Users", "Admin" : "Admin", "Recommended" : "Recommended", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "App \"%s\" cannot be installed because appinfo file cannot be read.", "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud." : "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud.", "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s", "No app name specified" : "No app name specified", @@ -58,6 +59,7 @@ "Archives of type %s are not supported" : "Archives of type %s are not supported", "Failed to open archive when installing app" : "Failed to open archive when installing app", "App does not provide an info.xml file" : "App does not provide an info.xml file", + "App cannot be installed because appinfo file cannot be read." : "App cannot be installed because appinfo file cannot be read.", "Signature could not get checked. Please contact the app developer and check your admin screen." : "Signature could not get checked. Please contact the app developer and check your admin screen.", "App can't be installed because of not allowed code in the App" : "App can't be installed because of unallowed code in the App", "App can't be installed because it is not compatible with this version of ownCloud" : "App can't be installed because it is not compatible with this version of ownCloud", @@ -129,6 +131,7 @@ "Cannot write into \"apps\" directory" : "Cannot write into \"apps\" directory", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file.", "Cannot create \"data\" directory (%s)" : "Cannot create \"data\" directory (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>.", "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s.", "Setting locale to %s failed" : "Setting locale to %s failed", "Please install one of these locales on your system and restart your webserver." : "Please install one of these locales on your system and restart your webserver.", diff --git a/lib/l10n/eo.js b/lib/l10n/eo.js index a4c82a25dc6..ac3a83ace78 100644 --- a/lib/l10n/eo.js +++ b/lib/l10n/eo.js @@ -3,15 +3,15 @@ OC.L10N.register( { "Cannot write into \"config\" directory!" : "Ne skribeblas la dosierujo “config”!", "See %s" : "Vidi %s", - "You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s", - "Cannot increase permissions of %s" : "Ne eblas pliigi permesojn de %s", - "Expiration date is in the past" : "Senvalidiĝa dato estintas", "PHP %s or higher is required." : "PHP %s aŭ pli alta necesas.", "PHP with a version lower than %s is required." : "Necesas pli malalta eldono de PHP ol %s.", "Following databases are supported: %s" : "La jenan datumbazoj kongruas: %s", "The command line tool %s could not be found" : "La komandolinia ilo %s ne troviĝis", "The library %s is not available." : "La biblioteko %s ne haveblas.", "ownCloud %s or higher is required." : "ownCloud %s aŭ pli alta necesas.", + "You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s", + "Cannot increase permissions of %s" : "Ne eblas pliigi permesojn de %s", + "Expiration date is in the past" : "Senvalidiĝa dato estintas", "Help" : "Helpo", "Personal" : "Persona", "Users" : "Uzantoj", diff --git a/lib/l10n/eo.json b/lib/l10n/eo.json index 818772e4af5..1443fe388a0 100644 --- a/lib/l10n/eo.json +++ b/lib/l10n/eo.json @@ -1,15 +1,15 @@ { "translations": { "Cannot write into \"config\" directory!" : "Ne skribeblas la dosierujo “config”!", "See %s" : "Vidi %s", - "You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s", - "Cannot increase permissions of %s" : "Ne eblas pliigi permesojn de %s", - "Expiration date is in the past" : "Senvalidiĝa dato estintas", "PHP %s or higher is required." : "PHP %s aŭ pli alta necesas.", "PHP with a version lower than %s is required." : "Necesas pli malalta eldono de PHP ol %s.", "Following databases are supported: %s" : "La jenan datumbazoj kongruas: %s", "The command line tool %s could not be found" : "La komandolinia ilo %s ne troviĝis", "The library %s is not available." : "La biblioteko %s ne haveblas.", "ownCloud %s or higher is required." : "ownCloud %s aŭ pli alta necesas.", + "You are not allowed to share %s" : "Vi ne permesatas kunhavigi %s", + "Cannot increase permissions of %s" : "Ne eblas pliigi permesojn de %s", + "Expiration date is in the past" : "Senvalidiĝa dato estintas", "Help" : "Helpo", "Personal" : "Persona", "Users" : "Uzantoj", diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js index 15c89e580ec..38a1036e50d 100644 --- a/lib/l10n/et_EE.js +++ b/lib/l10n/et_EE.js @@ -7,8 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tavaliselt saab selle lahendada %s andes veebiserverile seadete kataloogile \"config\" kirjutusõigused %s", "Sample configuration detected" : "Tuvastati näidisseaded", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni", - "You are not allowed to share %s" : "Sul pole lubatud %s jagada", - "Expiration date is in the past" : "Aegumise kuupäev on minevikus", "PHP %s or higher is required." : "PHP %s või uuem on nõutav.", "PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.", "Following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s", @@ -17,6 +15,8 @@ OC.L10N.register( "Following platforms are supported: %s" : "Toetatud on järgnevad platformid: %s", "ownCloud %s or higher is required." : "ownCloud %s või uuem on nõutav.", "ownCloud %s or lower is required." : "ownCloud %s või vanem on nõutav.", + "You are not allowed to share %s" : "Sul pole lubatud %s jagada", + "Expiration date is in the past" : "Aegumise kuupäev on minevikus", "Help" : "Abiinfo", "Personal" : "Isiklik", "Users" : "Kasutajad", diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json index 2e8e06265e6..00db79e2251 100644 --- a/lib/l10n/et_EE.json +++ b/lib/l10n/et_EE.json @@ -5,8 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tavaliselt saab selle lahendada %s andes veebiserverile seadete kataloogile \"config\" kirjutusõigused %s", "Sample configuration detected" : "Tuvastati näidisseaded", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni", - "You are not allowed to share %s" : "Sul pole lubatud %s jagada", - "Expiration date is in the past" : "Aegumise kuupäev on minevikus", "PHP %s or higher is required." : "PHP %s või uuem on nõutav.", "PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.", "Following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s", @@ -15,6 +13,8 @@ "Following platforms are supported: %s" : "Toetatud on järgnevad platformid: %s", "ownCloud %s or higher is required." : "ownCloud %s või uuem on nõutav.", "ownCloud %s or lower is required." : "ownCloud %s või vanem on nõutav.", + "You are not allowed to share %s" : "Sul pole lubatud %s jagada", + "Expiration date is in the past" : "Aegumise kuupäev on minevikus", "Help" : "Abiinfo", "Personal" : "Isiklik", "Users" : "Kasutajad", diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js index 05c7eb4eae9..ef4b3f4c0a9 100644 --- a/lib/l10n/eu.js +++ b/lib/l10n/eu.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hau normalean konpondu daiteke %sweb zerbitzarira config karpetan idazteko baimenak emanez%s.", "Sample configuration detected" : "Adibide-ezarpena detektatua", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detektatu da adibide-ezarpena kopiatu dela. Honek zure instalazioa apur dezake eta ez da onartzen. Irakurri dokumentazioa config.php fitxategia aldatu aurretik.", - "You are not allowed to share %s" : "Ez zadue %s elkarbanatzeko baimendua", "PHP %s or higher is required." : "PHP %s edo berriagoa behar da.", "PHP with a version lower than %s is required." : "PHPren bertsioa %s baino txikiagoa izan behar da.", "Following databases are supported: %s" : "Hurrengo datubaseak onartzen dira: %s", @@ -17,6 +16,7 @@ OC.L10N.register( "Library %s with a version lower than %s is required - available version %s." : "%s liburutegiak %s baino bertsio txikiagoa izan behar du - dagoen bertsioa %s.", "Following platforms are supported: %s" : "Hurrengo plataformak onartzen dira: %s", "ownCloud %s or higher is required." : "ownCloud %s edo haundiagoa behar da.", + "You are not allowed to share %s" : "Ez zadue %s elkarbanatzeko baimendua", "Help" : "Laguntza", "Personal" : "Pertsonala", "Users" : "Erabiltzaileak", diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json index 2efeab539da..7559f2eb8e8 100644 --- a/lib/l10n/eu.json +++ b/lib/l10n/eu.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hau normalean konpondu daiteke %sweb zerbitzarira config karpetan idazteko baimenak emanez%s.", "Sample configuration detected" : "Adibide-ezarpena detektatua", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detektatu da adibide-ezarpena kopiatu dela. Honek zure instalazioa apur dezake eta ez da onartzen. Irakurri dokumentazioa config.php fitxategia aldatu aurretik.", - "You are not allowed to share %s" : "Ez zadue %s elkarbanatzeko baimendua", "PHP %s or higher is required." : "PHP %s edo berriagoa behar da.", "PHP with a version lower than %s is required." : "PHPren bertsioa %s baino txikiagoa izan behar da.", "Following databases are supported: %s" : "Hurrengo datubaseak onartzen dira: %s", @@ -15,6 +14,7 @@ "Library %s with a version lower than %s is required - available version %s." : "%s liburutegiak %s baino bertsio txikiagoa izan behar du - dagoen bertsioa %s.", "Following platforms are supported: %s" : "Hurrengo plataformak onartzen dira: %s", "ownCloud %s or higher is required." : "ownCloud %s edo haundiagoa behar da.", + "You are not allowed to share %s" : "Ez zadue %s elkarbanatzeko baimendua", "Help" : "Laguntza", "Personal" : "Pertsonala", "Users" : "Erabiltzaileak", diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js index a7a35b1ea1d..0ad89e020fc 100644 --- a/lib/l10n/fi_FI.js +++ b/lib/l10n/fi_FI.js @@ -6,10 +6,6 @@ OC.L10N.register( "See %s" : "Katso %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tämän voi yleensä korjata antamalla %shttp-palvelimelle kirjoitusoikeuden asetushakemistoon%s.", "Sample configuration detected" : "Esimerkkimääritykset havaittu", - "You are not allowed to share %s" : "Oikeutesi eivät riitä kohteen %s jakamiseen.", - "Cannot increase permissions of %s" : "Kohteen %s käyttöoikeuksien lisääminen ei onnistu", - "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", - "Cannot set expiration date more than %s days in the future" : "Vanhenemispäivä voi olla korkeintaan %s päivän päässä tulevaisuudessa", "PHP %s or higher is required." : "PHP %s tai sitä uudempi vaaditaan.", "PHP with a version lower than %s is required." : "PHP versiota %s alempi tarvitaan.", "Following databases are supported: %s" : "Seuraavat tietokannat ovat tuettuja: %s", @@ -20,6 +16,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Seuraavat alustat ovat tuettuja: %s", "ownCloud %s or higher is required." : "ownCloud %s tai uudempi vaaditaan.", "ownCloud %s or lower is required." : "ownCloud %s tai aiempi vaaditaan.", + "You are not allowed to share %s" : "Oikeutesi eivät riitä kohteen %s jakamiseen.", + "Cannot increase permissions of %s" : "Kohteen %s käyttöoikeuksien lisääminen ei onnistu", + "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", + "Cannot set expiration date more than %s days in the future" : "Vanhenemispäivä voi olla korkeintaan %s päivän päässä tulevaisuudessa", "Help" : "Ohje", "Personal" : "Henkilökohtainen", "Users" : "Käyttäjät", diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json index 1267b344f78..79cc08e4f82 100644 --- a/lib/l10n/fi_FI.json +++ b/lib/l10n/fi_FI.json @@ -4,10 +4,6 @@ "See %s" : "Katso %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tämän voi yleensä korjata antamalla %shttp-palvelimelle kirjoitusoikeuden asetushakemistoon%s.", "Sample configuration detected" : "Esimerkkimääritykset havaittu", - "You are not allowed to share %s" : "Oikeutesi eivät riitä kohteen %s jakamiseen.", - "Cannot increase permissions of %s" : "Kohteen %s käyttöoikeuksien lisääminen ei onnistu", - "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", - "Cannot set expiration date more than %s days in the future" : "Vanhenemispäivä voi olla korkeintaan %s päivän päässä tulevaisuudessa", "PHP %s or higher is required." : "PHP %s tai sitä uudempi vaaditaan.", "PHP with a version lower than %s is required." : "PHP versiota %s alempi tarvitaan.", "Following databases are supported: %s" : "Seuraavat tietokannat ovat tuettuja: %s", @@ -18,6 +14,10 @@ "Following platforms are supported: %s" : "Seuraavat alustat ovat tuettuja: %s", "ownCloud %s or higher is required." : "ownCloud %s tai uudempi vaaditaan.", "ownCloud %s or lower is required." : "ownCloud %s tai aiempi vaaditaan.", + "You are not allowed to share %s" : "Oikeutesi eivät riitä kohteen %s jakamiseen.", + "Cannot increase permissions of %s" : "Kohteen %s käyttöoikeuksien lisääminen ei onnistu", + "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", + "Cannot set expiration date more than %s days in the future" : "Vanhenemispäivä voi olla korkeintaan %s päivän päässä tulevaisuudessa", "Help" : "Ohje", "Personal" : "Henkilökohtainen", "Users" : "Käyttäjät", diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js index 51f22a711a4..ee92b5af7f7 100644 --- a/lib/l10n/fr.js +++ b/lib/l10n/fr.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire de configuration%s.", "Sample configuration detected" : "Configuration d'exemple détectée", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Il a été détecté que la configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas pris en charge. Veuillez lire la documentation avant d'effectuer des modifications dans config.php", - "You are not allowed to share %s" : "Vous n'êtes pas autorisé à partager %s", - "Cannot increase permissions of %s" : "Impossible d'augmenter les permissions de %s", - "Expiration date is in the past" : "La date d'expiration est dans le passé", - "Cannot set expiration date more than %s days in the future" : "Impossible de définir la date d'expiration à plus de %s jours dans le futur", "PHP %s or higher is required." : "PHP %s ou supérieur est requis.", "PHP with a version lower than %s is required." : "PHP avec une version antérieure à %s est requis.", "Following databases are supported: %s" : "Les bases de données suivantes sont supportées : %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Les plateformes suivantes sont prises en charge : %s", "ownCloud %s or higher is required." : "ownCloud %s ou supérieur est requis.", "ownCloud %s or lower is required." : "ownCloud %s ou inférieur est requis.", + "You are not allowed to share %s" : "Vous n'êtes pas autorisé à partager %s", + "Cannot increase permissions of %s" : "Impossible d'augmenter les permissions de %s", + "Expiration date is in the past" : "La date d'expiration est dans le passé", + "Cannot set expiration date more than %s days in the future" : "Impossible de définir la date d'expiration à plus de %s jours dans le futur", "Help" : "Aide", "Personal" : "Personnel", "Users" : "Utilisateurs", diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json index d7351b2d422..5ebb4438e53 100644 --- a/lib/l10n/fr.json +++ b/lib/l10n/fr.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire de configuration%s.", "Sample configuration detected" : "Configuration d'exemple détectée", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Il a été détecté que la configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas pris en charge. Veuillez lire la documentation avant d'effectuer des modifications dans config.php", - "You are not allowed to share %s" : "Vous n'êtes pas autorisé à partager %s", - "Cannot increase permissions of %s" : "Impossible d'augmenter les permissions de %s", - "Expiration date is in the past" : "La date d'expiration est dans le passé", - "Cannot set expiration date more than %s days in the future" : "Impossible de définir la date d'expiration à plus de %s jours dans le futur", "PHP %s or higher is required." : "PHP %s ou supérieur est requis.", "PHP with a version lower than %s is required." : "PHP avec une version antérieure à %s est requis.", "Following databases are supported: %s" : "Les bases de données suivantes sont supportées : %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Les plateformes suivantes sont prises en charge : %s", "ownCloud %s or higher is required." : "ownCloud %s ou supérieur est requis.", "ownCloud %s or lower is required." : "ownCloud %s ou inférieur est requis.", + "You are not allowed to share %s" : "Vous n'êtes pas autorisé à partager %s", + "Cannot increase permissions of %s" : "Impossible d'augmenter les permissions de %s", + "Expiration date is in the past" : "La date d'expiration est dans le passé", + "Cannot set expiration date more than %s days in the future" : "Impossible de définir la date d'expiration à plus de %s jours dans le futur", "Help" : "Aide", "Personal" : "Personnel", "Users" : "Utilisateurs", diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js index 47a41687c3e..e51717224d1 100644 --- a/lib/l10n/gl.js +++ b/lib/l10n/gl.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «config»%s.", "Sample configuration detected" : "Detectouse a configuración de exemplo", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detectouse que foi copiada a configuración de exemplo. Isto pode rachar a súa instalación e non é compatíbel. Lea a documentación antes de facer cambios en config.php", - "You are not allowed to share %s" : "Non ten permiso para compartir %s", "PHP %s or higher is required." : "Requirese PHP %s ou superior.", "PHP with a version lower than %s is required." : "Requírese PHP cunha versión inferior a %s.", "Following databases are supported: %s" : "Admítense as seguintes bases de datos: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Admítense as seguintes plataformas: %s", "ownCloud %s or higher is required." : "Requírese ownCloud %s ou superior.", "ownCloud %s or lower is required." : "Requírese ownCloud %s ou inferior.", + "You are not allowed to share %s" : "Non ten permiso para compartir %s", "Help" : "Axuda", "Personal" : "Persoal", "Users" : "Usuarios", diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json index e401047b21b..bee95609bf1 100644 --- a/lib/l10n/gl.json +++ b/lib/l10n/gl.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Polo xeral, isto pode ser fixado para %spermitirlle ao servidor web acceso de escritura ao directorio «config»%s.", "Sample configuration detected" : "Detectouse a configuración de exemplo", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Detectouse que foi copiada a configuración de exemplo. Isto pode rachar a súa instalación e non é compatíbel. Lea a documentación antes de facer cambios en config.php", - "You are not allowed to share %s" : "Non ten permiso para compartir %s", "PHP %s or higher is required." : "Requirese PHP %s ou superior.", "PHP with a version lower than %s is required." : "Requírese PHP cunha versión inferior a %s.", "Following databases are supported: %s" : "Admítense as seguintes bases de datos: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Admítense as seguintes plataformas: %s", "ownCloud %s or higher is required." : "Requírese ownCloud %s ou superior.", "ownCloud %s or lower is required." : "Requírese ownCloud %s ou inferior.", + "You are not allowed to share %s" : "Non ten permiso para compartir %s", "Help" : "Axuda", "Personal" : "Persoal", "Users" : "Usuarios", diff --git a/lib/l10n/he.js b/lib/l10n/he.js index 2b171ae887a..2e0f988e1c9 100644 --- a/lib/l10n/he.js +++ b/lib/l10n/he.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "בדרך כלל ניתן לפתור את הבעיה על ידי כך ש- %s נותן ל- webserver הרשאות כניסה לתיקיית config %s.", "Sample configuration detected" : "התגלתה דוגמת תצורה", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "התגלה שדוגמת התצורה הועתקה. דבר זה עלול לשבור את ההתקנה ולא נתמך.יש לקרוא את מסמכי התיעוד לפני שמבצעים שינויים ב- config.php", - "You are not allowed to share %s" : "אינך רשאי/ת לשתף %s", - "Cannot increase permissions of %s" : "לא ניתן להגדיל את ההיתרים של %s", - "Expiration date is in the past" : "תאריך תפוגה הנו בעבר", - "Cannot set expiration date more than %s days in the future" : "לא ניתן להגדיר את תאריך התפוגה מעל %s ימים בעתיד", "PHP %s or higher is required." : "נדרש PHP בגרסת %s ומעלה.", "PHP with a version lower than %s is required." : "נדרש PHP בגרסה נמוכה מ- %s.", "Following databases are supported: %s" : "מסדי הנתונים הבאים נתמכים: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "הפלטפורמות הבאות נתמכות: %s", "ownCloud %s or higher is required." : "נדרש ownCloud %s ומעלה.", "ownCloud %s or lower is required." : "נדרש ownCloud %s ומטה.", + "You are not allowed to share %s" : "אינך רשאי/ת לשתף %s", + "Cannot increase permissions of %s" : "לא ניתן להגדיל את ההיתרים של %s", + "Expiration date is in the past" : "תאריך תפוגה הנו בעבר", + "Cannot set expiration date more than %s days in the future" : "לא ניתן להגדיר את תאריך התפוגה מעל %s ימים בעתיד", "Help" : "עזרה", "Personal" : "אישי", "Users" : "משתמשים", diff --git a/lib/l10n/he.json b/lib/l10n/he.json index 97812942d56..c9592003d38 100644 --- a/lib/l10n/he.json +++ b/lib/l10n/he.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "בדרך כלל ניתן לפתור את הבעיה על ידי כך ש- %s נותן ל- webserver הרשאות כניסה לתיקיית config %s.", "Sample configuration detected" : "התגלתה דוגמת תצורה", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "התגלה שדוגמת התצורה הועתקה. דבר זה עלול לשבור את ההתקנה ולא נתמך.יש לקרוא את מסמכי התיעוד לפני שמבצעים שינויים ב- config.php", - "You are not allowed to share %s" : "אינך רשאי/ת לשתף %s", - "Cannot increase permissions of %s" : "לא ניתן להגדיל את ההיתרים של %s", - "Expiration date is in the past" : "תאריך תפוגה הנו בעבר", - "Cannot set expiration date more than %s days in the future" : "לא ניתן להגדיר את תאריך התפוגה מעל %s ימים בעתיד", "PHP %s or higher is required." : "נדרש PHP בגרסת %s ומעלה.", "PHP with a version lower than %s is required." : "נדרש PHP בגרסה נמוכה מ- %s.", "Following databases are supported: %s" : "מסדי הנתונים הבאים נתמכים: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "הפלטפורמות הבאות נתמכות: %s", "ownCloud %s or higher is required." : "נדרש ownCloud %s ומעלה.", "ownCloud %s or lower is required." : "נדרש ownCloud %s ומטה.", + "You are not allowed to share %s" : "אינך רשאי/ת לשתף %s", + "Cannot increase permissions of %s" : "לא ניתן להגדיל את ההיתרים של %s", + "Expiration date is in the past" : "תאריך תפוגה הנו בעבר", + "Cannot set expiration date more than %s days in the future" : "לא ניתן להגדיר את תאריך התפוגה מעל %s ימים בעתיד", "Help" : "עזרה", "Personal" : "אישי", "Users" : "משתמשים", diff --git a/lib/l10n/hr.js b/lib/l10n/hr.js index 3ce3d9098da..fd1e44c51b6 100644 --- a/lib/l10n/hr.js +++ b/lib/l10n/hr.js @@ -7,13 +7,13 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u config direktoriju%s.", "Sample configuration detected" : "Nađena ogledna konfiguracija", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Otkriveno je da je ogledna konfiguracija kopirana. To može vašu instalaciju prekinuti i nije podržano.Molimo pročitajte dokumentaciju prije nego li izvršite promjene na config.php", - "You are not allowed to share %s" : "Nije vam dopušteno dijeliti %s", "PHP %s or higher is required." : "PHP verzija treba biti %s ili viša.", "PHP with a version lower than %s is required." : "PHP sa verzijom manjom od %s je potrebna.", "Following databases are supported: %s" : "Sljedece baza podataka je podrzana: %s", "The library %s is not available." : "Knjiznica %s nije dostupna.", "Following platforms are supported: %s" : "Sljedece platforme su podrzane: %s", "ownCloud %s or higher is required." : "ownCloud %s ili visi je potreban.", + "You are not allowed to share %s" : "Nije vam dopušteno dijeliti %s", "Help" : "Pomoć", "Personal" : "Osobno", "Users" : "Korisnici", diff --git a/lib/l10n/hr.json b/lib/l10n/hr.json index 6651f7dda1a..1c02e4859eb 100644 --- a/lib/l10n/hr.json +++ b/lib/l10n/hr.json @@ -5,13 +5,13 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ovo se obično može popraviti %sdavanjem pristupa web poslužitelju za pisanje u config direktoriju%s.", "Sample configuration detected" : "Nađena ogledna konfiguracija", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Otkriveno je da je ogledna konfiguracija kopirana. To može vašu instalaciju prekinuti i nije podržano.Molimo pročitajte dokumentaciju prije nego li izvršite promjene na config.php", - "You are not allowed to share %s" : "Nije vam dopušteno dijeliti %s", "PHP %s or higher is required." : "PHP verzija treba biti %s ili viša.", "PHP with a version lower than %s is required." : "PHP sa verzijom manjom od %s je potrebna.", "Following databases are supported: %s" : "Sljedece baza podataka je podrzana: %s", "The library %s is not available." : "Knjiznica %s nije dostupna.", "Following platforms are supported: %s" : "Sljedece platforme su podrzane: %s", "ownCloud %s or higher is required." : "ownCloud %s ili visi je potreban.", + "You are not allowed to share %s" : "Nije vam dopušteno dijeliti %s", "Help" : "Pomoć", "Personal" : "Osobno", "Users" : "Korisnici", diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js index b704ce1e536..f59c457e5ff 100644 --- a/lib/l10n/hu_HU.js +++ b/lib/l10n/hu_HU.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek a config könyvtárra%s.", "Sample configuration detected" : "A példabeállítások vannak beállítva", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik a példakonfigurációt próbálja ténylegesen használni. Ez nem támogatott, és működésképtelenné teheti a telepítést. Kérjük olvassa el a dokumentációt és azt követően változtasson a config.php-n!", - "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására", "PHP %s or higher is required." : "PHP %s vagy ennél újabb szükséges.", "PHP with a version lower than %s is required." : "Ennél régebbi PHP szükséges: %s.", "Following databases are supported: %s" : "A következő adatbázisok támogatottak: %s", @@ -15,6 +14,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Ezek a platformok támogatottak: %s", "ownCloud %s or higher is required." : "ownCoud %s vagy ennél újabb szükséges.", "ownCloud %s or lower is required." : "ownCoud %s vagy ennél régebbi szükséges.", + "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására", "Help" : "Súgó", "Personal" : "Személyes", "Users" : "Felhasználók", diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json index 10c28c20c8c..5e980ac90d2 100644 --- a/lib/l10n/hu_HU.json +++ b/lib/l10n/hu_HU.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ez rendszerint úgy oldható meg, hogy %sírási jogot adunk a webszervernek a config könyvtárra%s.", "Sample configuration detected" : "A példabeállítások vannak beállítva", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Úgy tűnik a példakonfigurációt próbálja ténylegesen használni. Ez nem támogatott, és működésképtelenné teheti a telepítést. Kérjük olvassa el a dokumentációt és azt követően változtasson a config.php-n!", - "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására", "PHP %s or higher is required." : "PHP %s vagy ennél újabb szükséges.", "PHP with a version lower than %s is required." : "Ennél régebbi PHP szükséges: %s.", "Following databases are supported: %s" : "A következő adatbázisok támogatottak: %s", @@ -13,6 +12,7 @@ "Following platforms are supported: %s" : "Ezek a platformok támogatottak: %s", "ownCloud %s or higher is required." : "ownCoud %s vagy ennél újabb szükséges.", "ownCloud %s or lower is required." : "ownCoud %s vagy ennél régebbi szükséges.", + "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására", "Help" : "Súgó", "Personal" : "Személyes", "Users" : "Felhasználók", diff --git a/lib/l10n/id.js b/lib/l10n/id.js index 612a34ddee0..1b18e494c88 100644 --- a/lib/l10n/id.js +++ b/lib/l10n/id.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hal ini biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori config.", "Sample configuration detected" : "Konfigurasi sampel ditemukan", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Ditemukan bahwa konfigurasi sampel telah disalin. Hal ini dapat merusak instalasi Anda dan tidak didukung. Silahkan baca dokumentasi sebelum melakukan perubahan pada config.php", - "You are not allowed to share %s" : "Anda tidak diizinkan untuk membagikan %s", "PHP %s or higher is required." : "Diperlukan PHP %s atau yang lebih tinggi.", "PHP with a version lower than %s is required." : "Diperlukan PHP dengan versi yang lebh rendah dari %s.", "Following databases are supported: %s" : "Berikut adalah basis data yang didukung: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Berikut adalah platform yang didukung: %s", "ownCloud %s or higher is required." : "Diperlukan ownCloud %s atau yang lebih tinggi.", "ownCloud %s or lower is required." : "ownCloud %s atau yang lebih rendah diperlukan.", + "You are not allowed to share %s" : "Anda tidak diizinkan untuk membagikan %s", "Help" : "Bantuan", "Personal" : "Pribadi", "Users" : "Pengguna", diff --git a/lib/l10n/id.json b/lib/l10n/id.json index 464f00c6cd2..d04c6b589e3 100644 --- a/lib/l10n/id.json +++ b/lib/l10n/id.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Hal ini biasanya dapat diperbaiki dengan %s memberikan akses tulis bagi situs web ke %s direktori config.", "Sample configuration detected" : "Konfigurasi sampel ditemukan", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Ditemukan bahwa konfigurasi sampel telah disalin. Hal ini dapat merusak instalasi Anda dan tidak didukung. Silahkan baca dokumentasi sebelum melakukan perubahan pada config.php", - "You are not allowed to share %s" : "Anda tidak diizinkan untuk membagikan %s", "PHP %s or higher is required." : "Diperlukan PHP %s atau yang lebih tinggi.", "PHP with a version lower than %s is required." : "Diperlukan PHP dengan versi yang lebh rendah dari %s.", "Following databases are supported: %s" : "Berikut adalah basis data yang didukung: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Berikut adalah platform yang didukung: %s", "ownCloud %s or higher is required." : "Diperlukan ownCloud %s atau yang lebih tinggi.", "ownCloud %s or lower is required." : "ownCloud %s atau yang lebih rendah diperlukan.", + "You are not allowed to share %s" : "Anda tidak diizinkan untuk membagikan %s", "Help" : "Bantuan", "Personal" : "Pribadi", "Users" : "Pengguna", diff --git a/lib/l10n/it.js b/lib/l10n/it.js index ad0b50d3fc5..84056759b21 100644 --- a/lib/l10n/it.js +++ b/lib/l10n/it.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"config\"%s", "Sample configuration detected" : "Configurazione di esempio rilevata", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "È stato rilevato che la configurazione di esempio è stata copiata. Ciò può compromettere la tua installazione e non è supportato. Leggi la documentazione prima di modificare il file config.php", - "You are not allowed to share %s" : "Non ti è consentito condividere %s", - "Cannot increase permissions of %s" : "Impossibile aumentare i permessi di %s", - "Expiration date is in the past" : "La data di scadenza è nel passato", - "Cannot set expiration date more than %s days in the future" : "Impossibile impostare la data di scadenza a più di %s giorni nel futuro", "PHP %s or higher is required." : "Richiesto PHP %s o superiore", "PHP with a version lower than %s is required." : "Richiesta una versione di PHP minore di %s.", "Following databases are supported: %s" : "I seguenti database sono supportati: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Sono supportate le seguenti piattaforme: %s", "ownCloud %s or higher is required." : "Richiesto ownCloud %s o superiore.", "ownCloud %s or lower is required." : "Richiesto ownCloud %s o inferiore.", + "You are not allowed to share %s" : "Non ti è consentito condividere %s", + "Cannot increase permissions of %s" : "Impossibile aumentare i permessi di %s", + "Expiration date is in the past" : "La data di scadenza è nel passato", + "Cannot set expiration date more than %s days in the future" : "Impossibile impostare la data di scadenza a più di %s giorni nel futuro", "Help" : "Aiuto", "Personal" : "Personale", "Users" : "Utenti", diff --git a/lib/l10n/it.json b/lib/l10n/it.json index 93acead882f..618036df4a0 100644 --- a/lib/l10n/it.json +++ b/lib/l10n/it.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ciò può essere normalmente corretto %sfornendo al server web accesso in scrittura alla cartella \"config\"%s", "Sample configuration detected" : "Configurazione di esempio rilevata", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "È stato rilevato che la configurazione di esempio è stata copiata. Ciò può compromettere la tua installazione e non è supportato. Leggi la documentazione prima di modificare il file config.php", - "You are not allowed to share %s" : "Non ti è consentito condividere %s", - "Cannot increase permissions of %s" : "Impossibile aumentare i permessi di %s", - "Expiration date is in the past" : "La data di scadenza è nel passato", - "Cannot set expiration date more than %s days in the future" : "Impossibile impostare la data di scadenza a più di %s giorni nel futuro", "PHP %s or higher is required." : "Richiesto PHP %s o superiore", "PHP with a version lower than %s is required." : "Richiesta una versione di PHP minore di %s.", "Following databases are supported: %s" : "I seguenti database sono supportati: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Sono supportate le seguenti piattaforme: %s", "ownCloud %s or higher is required." : "Richiesto ownCloud %s o superiore.", "ownCloud %s or lower is required." : "Richiesto ownCloud %s o inferiore.", + "You are not allowed to share %s" : "Non ti è consentito condividere %s", + "Cannot increase permissions of %s" : "Impossibile aumentare i permessi di %s", + "Expiration date is in the past" : "La data di scadenza è nel passato", + "Cannot set expiration date more than %s days in the future" : "Impossibile impostare la data di scadenza a più di %s giorni nel futuro", "Help" : "Aiuto", "Personal" : "Personale", "Users" : "Utenti", diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js index d2b0e3eb8a3..2f4d02bb2b7 100644 --- a/lib/l10n/ja.js +++ b/lib/l10n/ja.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "多くの場合、これは %s Webサーバーにconfigディレクトリ %s への書き込み権限を与えることで解決できます。", "Sample configuration detected" : "サンプル設定が見つかりました。", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。", - "You are not allowed to share %s" : "%s を共有することを許可されていません。", - "Cannot increase permissions of %s" : "%s の権限を強化できません", - "Expiration date is in the past" : "有効期限が切れています", - "Cannot set expiration date more than %s days in the future" : "有効期限を%s日以降に設定できません。", "PHP %s or higher is required." : "PHP %s 以上が必要です。", "PHP with a version lower than %s is required." : "%s 以前のバージョンのPHPが必要です。", "Following databases are supported: %s" : "次のデータベースをサポートしています: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "次のプラットフォームをサポートしています: %s", "ownCloud %s or higher is required." : "ownCloud %s 以上が必要です。", "ownCloud %s or lower is required." : "ownCloud %s 以下が必要です。", + "You are not allowed to share %s" : "%s を共有することを許可されていません。", + "Cannot increase permissions of %s" : "%s の権限を強化できません", + "Expiration date is in the past" : "有効期限が切れています", + "Cannot set expiration date more than %s days in the future" : "有効期限を%s日以降に設定できません。", "Help" : "ヘルプ", "Personal" : "個人", "Users" : "ユーザー", diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json index 892091d0648..1e3a1956428 100644 --- a/lib/l10n/ja.json +++ b/lib/l10n/ja.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "多くの場合、これは %s Webサーバーにconfigディレクトリ %s への書き込み権限を与えることで解決できます。", "Sample configuration detected" : "サンプル設定が見つかりました。", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "サンプル設定がコピーされてそのままです。このままではインストールが失敗し、サポート対象外になります。config.phpを変更する前にドキュメントを確認してください。", - "You are not allowed to share %s" : "%s を共有することを許可されていません。", - "Cannot increase permissions of %s" : "%s の権限を強化できません", - "Expiration date is in the past" : "有効期限が切れています", - "Cannot set expiration date more than %s days in the future" : "有効期限を%s日以降に設定できません。", "PHP %s or higher is required." : "PHP %s 以上が必要です。", "PHP with a version lower than %s is required." : "%s 以前のバージョンのPHPが必要です。", "Following databases are supported: %s" : "次のデータベースをサポートしています: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "次のプラットフォームをサポートしています: %s", "ownCloud %s or higher is required." : "ownCloud %s 以上が必要です。", "ownCloud %s or lower is required." : "ownCloud %s 以下が必要です。", + "You are not allowed to share %s" : "%s を共有することを許可されていません。", + "Cannot increase permissions of %s" : "%s の権限を強化できません", + "Expiration date is in the past" : "有効期限が切れています", + "Cannot set expiration date more than %s days in the future" : "有効期限を%s日以降に設定できません。", "Help" : "ヘルプ", "Personal" : "個人", "Users" : "ユーザー", diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js index be8f55ff83a..3c0722aa756 100644 --- a/lib/l10n/ko.js +++ b/lib/l10n/ko.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%sconfig 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", "Sample configuration detected" : "예제 설정 감지됨", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "예제 설정이 복사된 것 같습니다. 올바르게 작동하지 않을 수도 있기 때문에 지원되지 않습니다. config.php를 변경하기 전 문서를 읽어 보십시오", - "You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다", "PHP %s or higher is required." : "PHP 버전 %s 이상이 필요합니다.", "PHP with a version lower than %s is required." : "PHP 버전 %s 미만이 필요합니다.", "Following databases are supported: %s" : "다음 데이터베이스를 지원합니다: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "다음 플랫폼을 지원합니다: %s", "ownCloud %s or higher is required." : "ownCloud 버전 %s 이상이 필요합니다.", "ownCloud %s or lower is required." : "ownCloud %s 이하가 필요합니다.", + "You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다", "Help" : "도움말", "Personal" : "개인", "Users" : "사용자", diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json index ff183b6d4b7..d07d2abb861 100644 --- a/lib/l10n/ko.json +++ b/lib/l10n/ko.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%sconfig 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", "Sample configuration detected" : "예제 설정 감지됨", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "예제 설정이 복사된 것 같습니다. 올바르게 작동하지 않을 수도 있기 때문에 지원되지 않습니다. config.php를 변경하기 전 문서를 읽어 보십시오", - "You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다", "PHP %s or higher is required." : "PHP 버전 %s 이상이 필요합니다.", "PHP with a version lower than %s is required." : "PHP 버전 %s 미만이 필요합니다.", "Following databases are supported: %s" : "다음 데이터베이스를 지원합니다: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "다음 플랫폼을 지원합니다: %s", "ownCloud %s or higher is required." : "ownCloud 버전 %s 이상이 필요합니다.", "ownCloud %s or lower is required." : "ownCloud %s 이하가 필요합니다.", + "You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다", "Help" : "도움말", "Personal" : "개인", "Users" : "사용자", diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js index 7e1899464fc..bf36288b2c3 100644 --- a/lib/l10n/nb_NO.js +++ b/lib/l10n/nb_NO.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til config-mappen%s.", "Sample configuration detected" : "Eksempelkonfigurasjon oppdaget", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det ble oppdaget at eksempelkonfigurasjonen er blitt kopiert. Dette kan ødelegge installasjonen din og støttes ikke. Les dokumentasjonen før du gjør endringer i config.php", - "You are not allowed to share %s" : "Du har ikke lov til å dele %s", - "Cannot increase permissions of %s" : "Kan ikke øke tillatelser for %s", - "Expiration date is in the past" : "Utløpsdato er tilbake i tid", - "Cannot set expiration date more than %s days in the future" : "Kan ikke sette utløpsdato mer enn %s dager fram i tid", "PHP %s or higher is required." : "PHP %s eller nyere kreves.", "PHP with a version lower than %s is required." : "PHP med en versjon lavere enn %s kreves.", "Following databases are supported: %s" : "Følgende databaser støttes: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Følgende plattformer støttes: %s", "ownCloud %s or higher is required." : "ownCloud %s eller høyere kreves.", "ownCloud %s or lower is required." : "ownCloud %s eller lavere kreves.", + "You are not allowed to share %s" : "Du har ikke lov til å dele %s", + "Cannot increase permissions of %s" : "Kan ikke øke tillatelser for %s", + "Expiration date is in the past" : "Utløpsdato er tilbake i tid", + "Cannot set expiration date more than %s days in the future" : "Kan ikke sette utløpsdato mer enn %s dager fram i tid", "Help" : "Hjelp", "Personal" : "Personlig", "Users" : "Brukere", diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json index e198e9ffb34..f5ec1571e8e 100644 --- a/lib/l10n/nb_NO.json +++ b/lib/l10n/nb_NO.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til config-mappen%s.", "Sample configuration detected" : "Eksempelkonfigurasjon oppdaget", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det ble oppdaget at eksempelkonfigurasjonen er blitt kopiert. Dette kan ødelegge installasjonen din og støttes ikke. Les dokumentasjonen før du gjør endringer i config.php", - "You are not allowed to share %s" : "Du har ikke lov til å dele %s", - "Cannot increase permissions of %s" : "Kan ikke øke tillatelser for %s", - "Expiration date is in the past" : "Utløpsdato er tilbake i tid", - "Cannot set expiration date more than %s days in the future" : "Kan ikke sette utløpsdato mer enn %s dager fram i tid", "PHP %s or higher is required." : "PHP %s eller nyere kreves.", "PHP with a version lower than %s is required." : "PHP med en versjon lavere enn %s kreves.", "Following databases are supported: %s" : "Følgende databaser støttes: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Følgende plattformer støttes: %s", "ownCloud %s or higher is required." : "ownCloud %s eller høyere kreves.", "ownCloud %s or lower is required." : "ownCloud %s eller lavere kreves.", + "You are not allowed to share %s" : "Du har ikke lov til å dele %s", + "Cannot increase permissions of %s" : "Kan ikke øke tillatelser for %s", + "Expiration date is in the past" : "Utløpsdato er tilbake i tid", + "Cannot set expiration date more than %s days in the future" : "Kan ikke sette utløpsdato mer enn %s dager fram i tid", "Help" : "Hjelp", "Personal" : "Personlig", "Users" : "Brukere", diff --git a/lib/l10n/oc.js b/lib/l10n/oc.js index 26d31ab9353..186ddd154d7 100644 --- a/lib/l10n/oc.js +++ b/lib/l10n/oc.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Aqueste problèma es generalament resolgut %sen donant al servidor web un accès en escritura al repertòri de configuracion%s.", "Sample configuration detected" : "Configuracion d'exemple detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es estat detectat que la configuracion donada a títol d'exemple es estada copiada. Aquò pòt rendre vòstra installacion inoperanta e es pas pres en carga. Legissètz la documentacion abans d'efectuar de modifications dins config.php", - "You are not allowed to share %s" : "Sètz pas autorizat a partejar %s", "PHP %s or higher is required." : "PHP %s o superior es requesit.", "PHP with a version lower than %s is required." : "PHP amb una version anteriora a %s es requesit.", "Following databases are supported: %s" : "Les bases de donadas seguentas son suportadas : %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Las plataformas seguentas son presas en carga : %s", "ownCloud %s or higher is required." : "ownCloud %s o superior es requesit.", "ownCloud %s or lower is required." : "ownCloud %s o inferior es requesit.", + "You are not allowed to share %s" : "Sètz pas autorizat a partejar %s", "Help" : "Ajuda", "Personal" : "Personal", "Users" : "Utilizaires", diff --git a/lib/l10n/oc.json b/lib/l10n/oc.json index bbb6dbed4a0..68748d0236a 100644 --- a/lib/l10n/oc.json +++ b/lib/l10n/oc.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Aqueste problèma es generalament resolgut %sen donant al servidor web un accès en escritura al repertòri de configuracion%s.", "Sample configuration detected" : "Configuracion d'exemple detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Es estat detectat que la configuracion donada a títol d'exemple es estada copiada. Aquò pòt rendre vòstra installacion inoperanta e es pas pres en carga. Legissètz la documentacion abans d'efectuar de modifications dins config.php", - "You are not allowed to share %s" : "Sètz pas autorizat a partejar %s", "PHP %s or higher is required." : "PHP %s o superior es requesit.", "PHP with a version lower than %s is required." : "PHP amb una version anteriora a %s es requesit.", "Following databases are supported: %s" : "Les bases de donadas seguentas son suportadas : %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Las plataformas seguentas son presas en carga : %s", "ownCloud %s or higher is required." : "ownCloud %s o superior es requesit.", "ownCloud %s or lower is required." : "ownCloud %s o inferior es requesit.", + "You are not allowed to share %s" : "Sètz pas autorizat a partejar %s", "Help" : "Ajuda", "Personal" : "Personal", "Users" : "Utilizaires", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index ba399f019ba..a63bfce1c60 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu config%s.", "Sample configuration detected" : "Wykryto przykładową konfigurację", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto skopiowanie przykładowej konfiguracji. To może popsuć Twoją instalację i nie jest wspierane. Proszę przeczytać dokumentację przed dokonywaniem zmian w config.php", - "You are not allowed to share %s" : "Nie masz uprawnień aby udostępnić %s", "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.", "PHP with a version lower than %s is required." : "Wersja PHP jest niższa niż %s, która jest wymagana.", "Following databases are supported: %s" : "Obsługiwane są następujące bazy danych: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Obsługiwane są następujące platformy: %s", "ownCloud %s or higher is required." : "ownCloud %s jest w wersji nowszej niż wymagana.", "ownCloud %s or lower is required." : "ownCloud %s jest w wersji starszej niż wymagana.", + "You are not allowed to share %s" : "Nie masz uprawnień aby udostępnić %s", "Help" : "Pomoc", "Personal" : "Osobiste", "Users" : "Użytkownicy", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index d19dc2aa7b1..f968e0e45f2 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Można to zwykle rozwiązać przez %sdodanie serwerowi www uprawnień zapisu do katalogu config%s.", "Sample configuration detected" : "Wykryto przykładową konfigurację", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Wykryto skopiowanie przykładowej konfiguracji. To może popsuć Twoją instalację i nie jest wspierane. Proszę przeczytać dokumentację przed dokonywaniem zmian w config.php", - "You are not allowed to share %s" : "Nie masz uprawnień aby udostępnić %s", "PHP %s or higher is required." : "PHP %s lub wyższe jest wymagane.", "PHP with a version lower than %s is required." : "Wersja PHP jest niższa niż %s, która jest wymagana.", "Following databases are supported: %s" : "Obsługiwane są następujące bazy danych: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Obsługiwane są następujące platformy: %s", "ownCloud %s or higher is required." : "ownCloud %s jest w wersji nowszej niż wymagana.", "ownCloud %s or lower is required." : "ownCloud %s jest w wersji starszej niż wymagana.", + "You are not allowed to share %s" : "Nie masz uprawnień aby udostępnić %s", "Help" : "Pomoc", "Personal" : "Osobiste", "Users" : "Użytkownicy", diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js index 1f2c517bfea..dabf8150396 100644 --- a/lib/l10n/pt_BR.js +++ b/lib/l10n/pt_BR.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isso geralmente pode ser corrigido dando permissão de gravação %sgiving ao webserver para o directory%s de configuração.", "Sample configuration detected" : "Exemplo de configuração detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração exemplo foi copiada. Isso pode desestabilizar sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php", - "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s", - "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", - "Expiration date is in the past" : "Data de validade está ultrapassada", - "Cannot set expiration date more than %s days in the future" : "Não é possível definir a data de validade mais de %s dias no futuro", "PHP %s or higher is required." : "É requerido PHP %s ou superior.", "PHP with a version lower than %s is required." : "É requerida uma versão PHP mais antiga que a %s .", "Following databases are supported: %s" : "Following databases are supported: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s", "ownCloud %s or higher is required." : "É necessário um ownCloud %s ou superior.", "ownCloud %s or lower is required." : "É necessário um ownCloud %s ou inferior.", + "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s", + "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", + "Expiration date is in the past" : "Data de validade está ultrapassada", + "Cannot set expiration date more than %s days in the future" : "Não é possível definir a data de validade mais de %s dias no futuro", "Help" : "Ajuda", "Personal" : "Pessoal", "Users" : "Usuários", diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json index 48cd31f22c5..eaa22fb5a5d 100644 --- a/lib/l10n/pt_BR.json +++ b/lib/l10n/pt_BR.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isso geralmente pode ser corrigido dando permissão de gravação %sgiving ao webserver para o directory%s de configuração.", "Sample configuration detected" : "Exemplo de configuração detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração exemplo foi copiada. Isso pode desestabilizar sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php", - "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s", - "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", - "Expiration date is in the past" : "Data de validade está ultrapassada", - "Cannot set expiration date more than %s days in the future" : "Não é possível definir a data de validade mais de %s dias no futuro", "PHP %s or higher is required." : "É requerido PHP %s ou superior.", "PHP with a version lower than %s is required." : "É requerida uma versão PHP mais antiga que a %s .", "Following databases are supported: %s" : "Following databases are supported: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s", "ownCloud %s or higher is required." : "É necessário um ownCloud %s ou superior.", "ownCloud %s or lower is required." : "É necessário um ownCloud %s ou inferior.", + "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s", + "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", + "Expiration date is in the past" : "Data de validade está ultrapassada", + "Cannot set expiration date more than %s days in the future" : "Não é possível definir a data de validade mais de %s dias no futuro", "Help" : "Ajuda", "Personal" : "Pessoal", "Users" : "Usuários", diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js index 7fc296f149f..aa80b307754 100644 --- a/lib/l10n/pt_PT.js +++ b/lib/l10n/pt_PT.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isto pode ser resolvido normalmente %sdando priviégios de escrita no directório de configuração ao serviço web%s.", "Sample configuration detected" : "Exemplo de configuração detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração de amostra foi copiada. Isso pode danificar a sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php", - "You are not allowed to share %s" : "Não está autorizado a partilhar %s", - "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", - "Expiration date is in the past" : "A data de expiração está no passado", - "Cannot set expiration date more than %s days in the future" : "Não é possível definir data de expiração a mais de %s dias no futuro", "PHP %s or higher is required." : "Necessário PHP %s ou maior.", "PHP with a version lower than %s is required." : "É necessário um PHP com uma versão inferir a %s.", "Following databases are supported: %s" : "As seguintes bases de dados são suportadas: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s", "ownCloud %s or higher is required." : "É necessário ownCloud %s ou superior.", "ownCloud %s or lower is required." : "É necessário ownCloud %s ou inferior.", + "You are not allowed to share %s" : "Não está autorizado a partilhar %s", + "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", + "Expiration date is in the past" : "A data de expiração está no passado", + "Cannot set expiration date more than %s days in the future" : "Não é possível definir data de expiração a mais de %s dias no futuro", "Help" : "Ajuda", "Personal" : "Pessoal", "Users" : "Utilizadores", diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json index afeeabc4a29..2306fece4f2 100644 --- a/lib/l10n/pt_PT.json +++ b/lib/l10n/pt_PT.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isto pode ser resolvido normalmente %sdando priviégios de escrita no directório de configuração ao serviço web%s.", "Sample configuration detected" : "Exemplo de configuração detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Foi detectado que a configuração de amostra foi copiada. Isso pode danificar a sua instalação e não é suportado. Por favor, leia a documentação antes de realizar mudanças no config.php", - "You are not allowed to share %s" : "Não está autorizado a partilhar %s", - "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", - "Expiration date is in the past" : "A data de expiração está no passado", - "Cannot set expiration date more than %s days in the future" : "Não é possível definir data de expiração a mais de %s dias no futuro", "PHP %s or higher is required." : "Necessário PHP %s ou maior.", "PHP with a version lower than %s is required." : "É necessário um PHP com uma versão inferir a %s.", "Following databases are supported: %s" : "As seguintes bases de dados são suportadas: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s", "ownCloud %s or higher is required." : "É necessário ownCloud %s ou superior.", "ownCloud %s or lower is required." : "É necessário ownCloud %s ou inferior.", + "You are not allowed to share %s" : "Não está autorizado a partilhar %s", + "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", + "Expiration date is in the past" : "A data de expiração está no passado", + "Cannot set expiration date more than %s days in the future" : "Não é possível definir data de expiração a mais de %s dias no futuro", "Help" : "Ajuda", "Personal" : "Pessoal", "Users" : "Utilizadores", diff --git a/lib/l10n/ro.js b/lib/l10n/ro.js index 888233d9bc6..cd2936ff5f4 100644 --- a/lib/l10n/ro.js +++ b/lib/l10n/ro.js @@ -4,11 +4,11 @@ OC.L10N.register( "Cannot write into \"config\" directory!" : "Nu se poate scrie în folderul \"config\"!", "This can usually be fixed by giving the webserver write access to the config directory" : "Aceasta se poate repara de obicei prin permiterea accesului de scriere la dosarul de configurarea a webserverului", "See %s" : "Vezi %s", - "You are not allowed to share %s" : "Nu există permisiunea de partajare %s", "PHP %s or higher is required." : "Versiunea PHP %s sau mai mare este necesară.", "PHP with a version lower than %s is required." : "Este necesară o versiune PHP mai mică decât %s", "Following platforms are supported: %s" : "Sunt suportate următoarele platforme: %s", "ownCloud %s or higher is required." : "ownCloud %s sau mai mare este necesar.", + "You are not allowed to share %s" : "Nu există permisiunea de partajare %s", "Help" : "Ajutor", "Personal" : "Personal", "Users" : "Utilizatori", diff --git a/lib/l10n/ro.json b/lib/l10n/ro.json index 1f75f4330ba..d01b154ae64 100644 --- a/lib/l10n/ro.json +++ b/lib/l10n/ro.json @@ -2,11 +2,11 @@ "Cannot write into \"config\" directory!" : "Nu se poate scrie în folderul \"config\"!", "This can usually be fixed by giving the webserver write access to the config directory" : "Aceasta se poate repara de obicei prin permiterea accesului de scriere la dosarul de configurarea a webserverului", "See %s" : "Vezi %s", - "You are not allowed to share %s" : "Nu există permisiunea de partajare %s", "PHP %s or higher is required." : "Versiunea PHP %s sau mai mare este necesară.", "PHP with a version lower than %s is required." : "Este necesară o versiune PHP mai mică decât %s", "Following platforms are supported: %s" : "Sunt suportate următoarele platforme: %s", "ownCloud %s or higher is required." : "ownCloud %s sau mai mare este necesar.", + "You are not allowed to share %s" : "Nu există permisiunea de partajare %s", "Help" : "Ajutor", "Personal" : "Personal", "Users" : "Utilizatori", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index 9ba53d3ca98..bd293e455ae 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Обычно это можно исправить %sпредоставив веб-серверу права на запись в каталоге конфигурации%s.", "Sample configuration detected" : "Обнаружена конфигурация из примера", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Была обнаружена конфигурация из примера. Такая конфигурация не поддерживается и может повредить вашей системе. Прочтите документацию перед внесением изменений в файл config.php", - "You are not allowed to share %s" : "Вам запрещено делиться %s", - "Cannot increase permissions of %s" : "Невозможно увеличить права доступа для %s", - "Expiration date is in the past" : "Дата окончания срока действия уже прошла", - "Cannot set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней", "PHP %s or higher is required." : "Требуется PHP %s или выше", "PHP with a version lower than %s is required." : "Требуется версия PHP ниже %s.", "Following databases are supported: %s" : "Поддерживаются следующие СУБД: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Поддерживаются следующие платформы: %s", "ownCloud %s or higher is required." : "Требуется ownCloud %s или выше.", "ownCloud %s or lower is required." : "Требуется ownCloud версии %s или ниже.", + "You are not allowed to share %s" : "Вам запрещено делиться %s", + "Cannot increase permissions of %s" : "Невозможно увеличить права доступа для %s", + "Expiration date is in the past" : "Дата окончания срока действия уже прошла", + "Cannot set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней", "Help" : "Помощь", "Personal" : "Личное", "Users" : "Пользователи", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index de1892fea61..09ca4187b72 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Обычно это можно исправить %sпредоставив веб-серверу права на запись в каталоге конфигурации%s.", "Sample configuration detected" : "Обнаружена конфигурация из примера", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Была обнаружена конфигурация из примера. Такая конфигурация не поддерживается и может повредить вашей системе. Прочтите документацию перед внесением изменений в файл config.php", - "You are not allowed to share %s" : "Вам запрещено делиться %s", - "Cannot increase permissions of %s" : "Невозможно увеличить права доступа для %s", - "Expiration date is in the past" : "Дата окончания срока действия уже прошла", - "Cannot set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней", "PHP %s or higher is required." : "Требуется PHP %s или выше", "PHP with a version lower than %s is required." : "Требуется версия PHP ниже %s.", "Following databases are supported: %s" : "Поддерживаются следующие СУБД: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Поддерживаются следующие платформы: %s", "ownCloud %s or higher is required." : "Требуется ownCloud %s или выше.", "ownCloud %s or lower is required." : "Требуется ownCloud версии %s или ниже.", + "You are not allowed to share %s" : "Вам запрещено делиться %s", + "Cannot increase permissions of %s" : "Невозможно увеличить права доступа для %s", + "Expiration date is in the past" : "Дата окончания срока действия уже прошла", + "Cannot set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней", "Help" : "Помощь", "Personal" : "Личное", "Users" : "Пользователи", diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js index 1d4cc3b36b5..8b7a7fc6431 100644 --- a/lib/l10n/sk_SK.js +++ b/lib/l10n/sk_SK.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To je zvyčajne možné opraviť tým, že %s udelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou%s.", "Sample configuration detected" : "Detekovaná bola vzorová konfigurácia", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php", - "You are not allowed to share %s" : "Nemôžete zdieľať %s", "PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.", "PHP with a version lower than %s is required." : "PHP je vyžadované vo vyššej verzii ako %s.", "Following databases are supported: %s" : "Podporované sú tieto databázy: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Podporované sú nasledovné systémy: %s", "ownCloud %s or higher is required." : "Požadovaná verzia ownCloudu %s alebo vyššia.", "ownCloud %s or lower is required." : "Požadovaná verzia ownCloudu %s alebo nižšia.", + "You are not allowed to share %s" : "Nemôžete zdieľať %s", "Help" : "Pomoc", "Personal" : "Osobné", "Users" : "Používatelia", diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json index 83af91cb38a..8b8b15316ea 100644 --- a/lib/l10n/sk_SK.json +++ b/lib/l10n/sk_SK.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "To je zvyčajne možné opraviť tým, že %s udelíte webovému serveru oprávnenie na zápis k adresáru s konfiguráciou%s.", "Sample configuration detected" : "Detekovaná bola vzorová konfigurácia", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php", - "You are not allowed to share %s" : "Nemôžete zdieľať %s", "PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.", "PHP with a version lower than %s is required." : "PHP je vyžadované vo vyššej verzii ako %s.", "Following databases are supported: %s" : "Podporované sú tieto databázy: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Podporované sú nasledovné systémy: %s", "ownCloud %s or higher is required." : "Požadovaná verzia ownCloudu %s alebo vyššia.", "ownCloud %s or lower is required." : "Požadovaná verzia ownCloudu %s alebo nižšia.", + "You are not allowed to share %s" : "Nemôžete zdieľať %s", "Help" : "Pomoc", "Personal" : "Osobné", "Users" : "Používatelia", diff --git a/lib/l10n/sq.js b/lib/l10n/sq.js index 54a162455c6..c27944f9ed1 100644 --- a/lib/l10n/sq.js +++ b/lib/l10n/sq.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Zakonisht kjo mund të ndreqet duke %si akorduar shërbyesit web të drejta shkrimi mbi drejtorinë e formësimeve%s.", "Sample configuration detected" : "U gjet formësim shembull", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "U pa se është kopjuar shembulli për formësime. Kjo mund të prishë instalimin tuaj dhe nuk mbulohet. Ju lutemi, lexoni dokumentimin, përpara se të kryeni ndryshime te config.php", - "You are not allowed to share %s" : "Nuk ju lejohet ta ndani %s me të tjerët", - "Cannot increase permissions of %s" : "S’mund të shtohen lejet për %s", - "Expiration date is in the past" : "Data e skadimit bie në të kaluarën", - "Cannot set expiration date more than %s days in the future" : "S’mund të caktohet data e skadimit më shumë se %s ditë në të ardhmen", "PHP %s or higher is required." : "Lypse PHP %s ose më sipër.", "PHP with a version lower than %s is required." : "Lypset PHP me një version më të ulët se sa %s.", "Following databases are supported: %s" : "Mbulohen bazat vijuese të të dhënave: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Mbulohen platformat vijuese: %s", "ownCloud %s or higher is required." : "Lypset ownCloud %s ose më sipër.", "ownCloud %s or lower is required." : "Lypset ownCloud %s ose më poshtë.", + "You are not allowed to share %s" : "Nuk ju lejohet ta ndani %s me të tjerët", + "Cannot increase permissions of %s" : "S’mund të shtohen lejet për %s", + "Expiration date is in the past" : "Data e skadimit bie në të kaluarën", + "Cannot set expiration date more than %s days in the future" : "S’mund të caktohet data e skadimit më shumë se %s ditë në të ardhmen", "Help" : "Ndihmë", "Personal" : "Personale", "Users" : "Përdorues", diff --git a/lib/l10n/sq.json b/lib/l10n/sq.json index 09d48e8f52a..8f2d552c79a 100644 --- a/lib/l10n/sq.json +++ b/lib/l10n/sq.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Zakonisht kjo mund të ndreqet duke %si akorduar shërbyesit web të drejta shkrimi mbi drejtorinë e formësimeve%s.", "Sample configuration detected" : "U gjet formësim shembull", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "U pa se është kopjuar shembulli për formësime. Kjo mund të prishë instalimin tuaj dhe nuk mbulohet. Ju lutemi, lexoni dokumentimin, përpara se të kryeni ndryshime te config.php", - "You are not allowed to share %s" : "Nuk ju lejohet ta ndani %s me të tjerët", - "Cannot increase permissions of %s" : "S’mund të shtohen lejet për %s", - "Expiration date is in the past" : "Data e skadimit bie në të kaluarën", - "Cannot set expiration date more than %s days in the future" : "S’mund të caktohet data e skadimit më shumë se %s ditë në të ardhmen", "PHP %s or higher is required." : "Lypse PHP %s ose më sipër.", "PHP with a version lower than %s is required." : "Lypset PHP me një version më të ulët se sa %s.", "Following databases are supported: %s" : "Mbulohen bazat vijuese të të dhënave: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Mbulohen platformat vijuese: %s", "ownCloud %s or higher is required." : "Lypset ownCloud %s ose më sipër.", "ownCloud %s or lower is required." : "Lypset ownCloud %s ose më poshtë.", + "You are not allowed to share %s" : "Nuk ju lejohet ta ndani %s me të tjerët", + "Cannot increase permissions of %s" : "S’mund të shtohen lejet për %s", + "Expiration date is in the past" : "Data e skadimit bie në të kaluarën", + "Cannot set expiration date more than %s days in the future" : "S’mund të caktohet data e skadimit më shumë se %s ditë në të ardhmen", "Help" : "Ndihmë", "Personal" : "Personale", "Users" : "Përdorues", diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js index d7652c30f27..42b747f0405 100644 --- a/lib/l10n/sr.js +++ b/lib/l10n/sr.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ово се обично може средити %sдавањем права веб серверу да пише у директоријум са подешавањима%s.", "Sample configuration detected" : "Откривен је узорак подешавања", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Откривено је да је узорак подешавања ископиран. Ово може покварити инсталацију и није подржано. Прочитајте документацију пре вршења промена у фајлу config.php", - "You are not allowed to share %s" : "Није вам дозвољено да делите %s", "PHP %s or higher is required." : "Потребан је ПХП %s или новији.", "PHP with a version lower than %s is required." : "Потребан је ПХП старији од %s.", "Following databases are supported: %s" : "Следеће базе података су подржане: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Следеће платформе су подржане: %s", "ownCloud %s or higher is required." : "оунКлауд %s или новији је потребан.", "ownCloud %s or lower is required." : "оунКлауд %s или старији је потребан.", + "You are not allowed to share %s" : "Није вам дозвољено да делите %s", "Help" : "Помоћ", "Personal" : "Лично", "Users" : "Корисници", diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json index 92e7246afec..360f7a7dba9 100644 --- a/lib/l10n/sr.json +++ b/lib/l10n/sr.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ово се обично може средити %sдавањем права веб серверу да пише у директоријум са подешавањима%s.", "Sample configuration detected" : "Откривен је узорак подешавања", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Откривено је да је узорак подешавања ископиран. Ово може покварити инсталацију и није подржано. Прочитајте документацију пре вршења промена у фајлу config.php", - "You are not allowed to share %s" : "Није вам дозвољено да делите %s", "PHP %s or higher is required." : "Потребан је ПХП %s или новији.", "PHP with a version lower than %s is required." : "Потребан је ПХП старији од %s.", "Following databases are supported: %s" : "Следеће базе података су подржане: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Следеће платформе су подржане: %s", "ownCloud %s or higher is required." : "оунКлауд %s или новији је потребан.", "ownCloud %s or lower is required." : "оунКлауд %s или старији је потребан.", + "You are not allowed to share %s" : "Није вам дозвољено да делите %s", "Help" : "Помоћ", "Personal" : "Лично", "Users" : "Корисници", diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js index 42478ab1256..9dc27ed8cf2 100644 --- a/lib/l10n/sv.js +++ b/lib/l10n/sv.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Detta kan vanligtvis åtgärdas genom att %s ger webbservern skrivrättigheter till konfigurations-katalogen %s.", "Sample configuration detected" : "Exempel-konfiguration detekterad", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det har detekterats att exempel-konfigurationen har kopierats. Detta kan förstöra din installation och stöds ej. Vänligen läs dokumentationen innan ändringar på config.php utförs", - "You are not allowed to share %s" : "Du har inte rätt att dela %s", "PHP %s or higher is required." : "PHP %s eller högre krävs.", "PHP with a version lower than %s is required." : "PHP med version lägre än %s krävs.", "Following databases are supported: %s" : "Följande databastyper stödjs: %s", @@ -17,6 +16,7 @@ OC.L10N.register( "Library %s with a version lower than %s is required - available version %s." : "Bibliotek %s med version lägre än %s krävs - tillgänglig version %s.", "Following platforms are supported: %s" : "Följande plattformar stödjs: %s", "ownCloud %s or higher is required." : "ownCloud %s eller högre krävs.", + "You are not allowed to share %s" : "Du har inte rätt att dela %s", "Help" : "Hjälp", "Personal" : "Personligt", "Users" : "Användare", diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json index 6c5721789a2..f5c3948418d 100644 --- a/lib/l10n/sv.json +++ b/lib/l10n/sv.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Detta kan vanligtvis åtgärdas genom att %s ger webbservern skrivrättigheter till konfigurations-katalogen %s.", "Sample configuration detected" : "Exempel-konfiguration detekterad", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det har detekterats att exempel-konfigurationen har kopierats. Detta kan förstöra din installation och stöds ej. Vänligen läs dokumentationen innan ändringar på config.php utförs", - "You are not allowed to share %s" : "Du har inte rätt att dela %s", "PHP %s or higher is required." : "PHP %s eller högre krävs.", "PHP with a version lower than %s is required." : "PHP med version lägre än %s krävs.", "Following databases are supported: %s" : "Följande databastyper stödjs: %s", @@ -15,6 +14,7 @@ "Library %s with a version lower than %s is required - available version %s." : "Bibliotek %s med version lägre än %s krävs - tillgänglig version %s.", "Following platforms are supported: %s" : "Följande plattformar stödjs: %s", "ownCloud %s or higher is required." : "ownCloud %s eller högre krävs.", + "You are not allowed to share %s" : "Du har inte rätt att dela %s", "Help" : "Hjälp", "Personal" : "Personligt", "Users" : "Användare", diff --git a/lib/l10n/th_TH.js b/lib/l10n/th_TH.js index 8159852b0a2..09739c87609 100644 --- a/lib/l10n/th_TH.js +++ b/lib/l10n/th_TH.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "นี้มักจะสามารถแก้ไขโดย %s ให้สิทธิ์การเขียนของเว็บเซิร์ฟเวอร์ไปยังการตั้งค่าไดเรกทอรี %s", "Sample configuration detected" : "ตรวจพบการกำหนดค่าตัวอย่าง", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "ตรวจพบว่าการกำหนดค่าตัวอย่างที่ถูกคัดลอก นี้สามารถทำลายการติดตั้งของคุณและไม่ได้รับการสนับสนุน โปรดอ่านเอกสารก่อนที่จะดำเนินการเปลี่ยนแปลงใน config.php", - "You are not allowed to share %s" : "คุณยังไม่ได้รับอนุญาตให้แชร์ %s", - "Cannot increase permissions of %s" : "ไม่สามารถเพิ่มสิทธิ์ของ %s", - "Expiration date is in the past" : "วันหมดอายุอยู่ในอดีตที่ผ่านมา", - "Cannot set expiration date more than %s days in the future" : "ไม่สามารถกำหนดวันหมดอายุให้มากกว่า %s วันในอนาคต", "PHP %s or higher is required." : "จำเป็นต้องมี PHP รุ่น %s หรือที่สูงกว่า ", "PHP with a version lower than %s is required." : "PHP จะต้องมีรุ่นที่ต่ำกว่า %s", "Following databases are supported: %s" : "ฐานข้อมูลต่อไปนี้ได้รับการสนับสนุน: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "แพลตฟอร์มต่อไปนี้ได้รับการสนับสนุน: %s", "ownCloud %s or higher is required." : "จำเป็นต้องมี ownCloud รุ่น %s หรือรุ่นที่สูงกว่า", "ownCloud %s or lower is required." : "ต้องการ ownCloud %s หรือรุ่นที่ต่ำกว่า", + "You are not allowed to share %s" : "คุณยังไม่ได้รับอนุญาตให้แชร์ %s", + "Cannot increase permissions of %s" : "ไม่สามารถเพิ่มสิทธิ์ของ %s", + "Expiration date is in the past" : "วันหมดอายุอยู่ในอดีตที่ผ่านมา", + "Cannot set expiration date more than %s days in the future" : "ไม่สามารถกำหนดวันหมดอายุให้มากกว่า %s วันในอนาคต", "Help" : "ช่วยเหลือ", "Personal" : "ส่วนตัว", "Users" : "ผู้ใช้งาน", diff --git a/lib/l10n/th_TH.json b/lib/l10n/th_TH.json index 86b875fe314..003f22c00ad 100644 --- a/lib/l10n/th_TH.json +++ b/lib/l10n/th_TH.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "นี้มักจะสามารถแก้ไขโดย %s ให้สิทธิ์การเขียนของเว็บเซิร์ฟเวอร์ไปยังการตั้งค่าไดเรกทอรี %s", "Sample configuration detected" : "ตรวจพบการกำหนดค่าตัวอย่าง", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "ตรวจพบว่าการกำหนดค่าตัวอย่างที่ถูกคัดลอก นี้สามารถทำลายการติดตั้งของคุณและไม่ได้รับการสนับสนุน โปรดอ่านเอกสารก่อนที่จะดำเนินการเปลี่ยนแปลงใน config.php", - "You are not allowed to share %s" : "คุณยังไม่ได้รับอนุญาตให้แชร์ %s", - "Cannot increase permissions of %s" : "ไม่สามารถเพิ่มสิทธิ์ของ %s", - "Expiration date is in the past" : "วันหมดอายุอยู่ในอดีตที่ผ่านมา", - "Cannot set expiration date more than %s days in the future" : "ไม่สามารถกำหนดวันหมดอายุให้มากกว่า %s วันในอนาคต", "PHP %s or higher is required." : "จำเป็นต้องมี PHP รุ่น %s หรือที่สูงกว่า ", "PHP with a version lower than %s is required." : "PHP จะต้องมีรุ่นที่ต่ำกว่า %s", "Following databases are supported: %s" : "ฐานข้อมูลต่อไปนี้ได้รับการสนับสนุน: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "แพลตฟอร์มต่อไปนี้ได้รับการสนับสนุน: %s", "ownCloud %s or higher is required." : "จำเป็นต้องมี ownCloud รุ่น %s หรือรุ่นที่สูงกว่า", "ownCloud %s or lower is required." : "ต้องการ ownCloud %s หรือรุ่นที่ต่ำกว่า", + "You are not allowed to share %s" : "คุณยังไม่ได้รับอนุญาตให้แชร์ %s", + "Cannot increase permissions of %s" : "ไม่สามารถเพิ่มสิทธิ์ของ %s", + "Expiration date is in the past" : "วันหมดอายุอยู่ในอดีตที่ผ่านมา", + "Cannot set expiration date more than %s days in the future" : "ไม่สามารถกำหนดวันหมดอายุให้มากกว่า %s วันในอนาคต", "Help" : "ช่วยเหลือ", "Personal" : "ส่วนตัว", "Users" : "ผู้ใช้งาน", diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index a829153eeef..62d2916bbd1 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Bu genellikle, %sweb sunucusuna config dizinine yazma erişimi verilerek%s çözülebilir", "Sample configuration detected" : "Örnek yapılandırma tespit edildi", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun", - "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok", - "Cannot increase permissions of %s" : "%s izinleri yükseltilemiyor", - "Expiration date is in the past" : "Son kullanma tarihi geçmişte", - "Cannot set expiration date more than %s days in the future" : "Paylaşımların son kullanım süreleri, gelecekte %s günden fazla olamaz", "PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.", "PHP with a version lower than %s is required." : "PHP'nin %s sürümü öncesi gerekli.", "Following databases are supported: %s" : "Şu veritabanları desteklenmekte: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "Aşağıdaki platformlar destekleniyor: %s", "ownCloud %s or higher is required." : "ownCloud %s veya daha üstü gerekli.", "ownCloud %s or lower is required." : "ownCloud %s veya daha düşük sürüm gerekli.", + "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok", + "Cannot increase permissions of %s" : "%s izinleri yükseltilemiyor", + "Expiration date is in the past" : "Son kullanma tarihi geçmişte", + "Cannot set expiration date more than %s days in the future" : "Paylaşımların son kullanım süreleri, gelecekte %s günden fazla olamaz", "Help" : "Yardım", "Personal" : "Kişisel", "Users" : "Kullanıcılar", diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index a5340ed3008..bfd94d21c11 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Bu genellikle, %sweb sunucusuna config dizinine yazma erişimi verilerek%s çözülebilir", "Sample configuration detected" : "Örnek yapılandırma tespit edildi", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Örnek yapılandırmanın kopyalanmış olabileceği tespit edildi. Bu kurulumunuzu bozabilir ve desteklenmemektedir. Lütfen config.php dosyasında değişiklik yapmadan önce belgelendirmeyi okuyun", - "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok", - "Cannot increase permissions of %s" : "%s izinleri yükseltilemiyor", - "Expiration date is in the past" : "Son kullanma tarihi geçmişte", - "Cannot set expiration date more than %s days in the future" : "Paylaşımların son kullanım süreleri, gelecekte %s günden fazla olamaz", "PHP %s or higher is required." : "PHP %s veya daha üst sürümü gerekli.", "PHP with a version lower than %s is required." : "PHP'nin %s sürümü öncesi gerekli.", "Following databases are supported: %s" : "Şu veritabanları desteklenmekte: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "Aşağıdaki platformlar destekleniyor: %s", "ownCloud %s or higher is required." : "ownCloud %s veya daha üstü gerekli.", "ownCloud %s or lower is required." : "ownCloud %s veya daha düşük sürüm gerekli.", + "You are not allowed to share %s" : "%s paylaşımını yapma izniniz yok", + "Cannot increase permissions of %s" : "%s izinleri yükseltilemiyor", + "Expiration date is in the past" : "Son kullanma tarihi geçmişte", + "Cannot set expiration date more than %s days in the future" : "Paylaşımların son kullanım süreleri, gelecekte %s günden fazla olamaz", "Help" : "Yardım", "Personal" : "Kişisel", "Users" : "Kullanıcılar", diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js index 860e1d1e68d..e3f5697124c 100644 --- a/lib/l10n/uk.js +++ b/lib/l10n/uk.js @@ -7,7 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Зазвичай це можна виправити, %sнадавши веб-серверу права на запис в теці конфігурації%s.", "Sample configuration detected" : "Виявлено приклад конфігурації", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Була виявлена конфігурація з прикладу. Це може нашкодити вашій системі та не підтримується. Будь ласка, зверніться до документації перед внесенням змін в файл config.php", - "You are not allowed to share %s" : "Вам заборонено поширювати %s", "PHP %s or higher is required." : "Необхідно PHP %s або вище", "PHP with a version lower than %s is required." : "Потрібна версія PHP нижче %s ", "Following databases are supported: %s" : "Підтримуються наступні сервери баз даних: %s", @@ -18,6 +17,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Підтримуються наступні платформи: %s", "ownCloud %s or higher is required." : "Потрібен ownCloud %s або вище.", "ownCloud %s or lower is required." : "Потрібна версія %s ownCloud або нижча.", + "You are not allowed to share %s" : "Вам заборонено поширювати %s", "Help" : "Допомога", "Personal" : "Особисте", "Users" : "Користувачі", diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json index f27f8c56914..c5962f4814c 100644 --- a/lib/l10n/uk.json +++ b/lib/l10n/uk.json @@ -5,7 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Зазвичай це можна виправити, %sнадавши веб-серверу права на запис в теці конфігурації%s.", "Sample configuration detected" : "Виявлено приклад конфігурації", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Була виявлена конфігурація з прикладу. Це може нашкодити вашій системі та не підтримується. Будь ласка, зверніться до документації перед внесенням змін в файл config.php", - "You are not allowed to share %s" : "Вам заборонено поширювати %s", "PHP %s or higher is required." : "Необхідно PHP %s або вище", "PHP with a version lower than %s is required." : "Потрібна версія PHP нижче %s ", "Following databases are supported: %s" : "Підтримуються наступні сервери баз даних: %s", @@ -16,6 +15,7 @@ "Following platforms are supported: %s" : "Підтримуються наступні платформи: %s", "ownCloud %s or higher is required." : "Потрібен ownCloud %s або вище.", "ownCloud %s or lower is required." : "Потрібна версія %s ownCloud або нижча.", + "You are not allowed to share %s" : "Вам заборонено поширювати %s", "Help" : "Допомога", "Personal" : "Особисте", "Users" : "Користувачі", diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js index d87e1215caf..48c086e37e2 100644 --- a/lib/l10n/zh_CN.js +++ b/lib/l10n/zh_CN.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Cannot write into \"config\" directory!" : "无法写入“config”目录!", "See %s" : "查看 %s", - "You are not allowed to share %s" : "您无权分享 %s", "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。", + "You are not allowed to share %s" : "您无权分享 %s", "Help" : "帮助", "Personal" : "个人", "Users" : "用户", diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json index e7726edb5a4..51a1280a07b 100644 --- a/lib/l10n/zh_CN.json +++ b/lib/l10n/zh_CN.json @@ -1,8 +1,8 @@ { "translations": { "Cannot write into \"config\" directory!" : "无法写入“config”目录!", "See %s" : "查看 %s", - "You are not allowed to share %s" : "您无权分享 %s", "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。", + "You are not allowed to share %s" : "您无权分享 %s", "Help" : "帮助", "Personal" : "个人", "Users" : "用户", diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js index d930f9e491c..13ebf305a9b 100644 --- a/lib/l10n/zh_TW.js +++ b/lib/l10n/zh_TW.js @@ -7,10 +7,6 @@ OC.L10N.register( "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%s允許網頁伺服器寫入設定目錄%s通常可以解決這個問題", "Sample configuration detected" : "偵測到範本設定", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改", - "You are not allowed to share %s" : "你不被允許分享 %s", - "Cannot increase permissions of %s" : "無法增加%s的權限", - "Expiration date is in the past" : "到期日是之前的時間", - "Cannot set expiration date more than %s days in the future" : "無法設定到期日超過未來%s天", "PHP %s or higher is required." : "需要 PHP %s 或更高版本", "PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ", "Following databases are supported: %s" : "這些資料庫支援: %s", @@ -21,6 +17,10 @@ OC.L10N.register( "Following platforms are supported: %s" : "這些平台支援: %s", "ownCloud %s or higher is required." : "需要ownCloud %s 或更高版本", "ownCloud %s or lower is required." : "需要ownCloud %s 或更低版本", + "You are not allowed to share %s" : "你不被允許分享 %s", + "Cannot increase permissions of %s" : "無法增加%s的權限", + "Expiration date is in the past" : "到期日是之前的時間", + "Cannot set expiration date more than %s days in the future" : "無法設定到期日超過未來%s天", "Help" : "說明", "Personal" : "個人", "Users" : "使用者", diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json index a0a736744fd..12cdbc83466 100644 --- a/lib/l10n/zh_TW.json +++ b/lib/l10n/zh_TW.json @@ -5,10 +5,6 @@ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%s允許網頁伺服器寫入設定目錄%s通常可以解決這個問題", "Sample configuration detected" : "偵測到範本設定", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改", - "You are not allowed to share %s" : "你不被允許分享 %s", - "Cannot increase permissions of %s" : "無法增加%s的權限", - "Expiration date is in the past" : "到期日是之前的時間", - "Cannot set expiration date more than %s days in the future" : "無法設定到期日超過未來%s天", "PHP %s or higher is required." : "需要 PHP %s 或更高版本", "PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ", "Following databases are supported: %s" : "這些資料庫支援: %s", @@ -19,6 +15,10 @@ "Following platforms are supported: %s" : "這些平台支援: %s", "ownCloud %s or higher is required." : "需要ownCloud %s 或更高版本", "ownCloud %s or lower is required." : "需要ownCloud %s 或更低版本", + "You are not allowed to share %s" : "你不被允許分享 %s", + "Cannot increase permissions of %s" : "無法增加%s的權限", + "Expiration date is in the past" : "到期日是之前的時間", + "Cannot set expiration date more than %s days in the future" : "無法設定到期日超過未來%s天", "Help" : "說明", "Personal" : "個人", "Users" : "使用者", diff --git a/lib/private/diagnostics/event.php b/lib/private/Diagnostics/Event.php index 8b5bb7e3bd8..8b5bb7e3bd8 100644 --- a/lib/private/diagnostics/event.php +++ b/lib/private/Diagnostics/Event.php diff --git a/lib/private/diagnostics/eventlogger.php b/lib/private/Diagnostics/EventLogger.php index 3d909ce79cd..3d909ce79cd 100644 --- a/lib/private/diagnostics/eventlogger.php +++ b/lib/private/Diagnostics/EventLogger.php diff --git a/lib/private/diagnostics/nulleventlogger.php b/lib/private/Diagnostics/NullEventLogger.php index 1b5e7af3ac9..1b5e7af3ac9 100644 --- a/lib/private/diagnostics/nulleventlogger.php +++ b/lib/private/Diagnostics/NullEventLogger.php diff --git a/lib/private/diagnostics/nullquerylogger.php b/lib/private/Diagnostics/NullQueryLogger.php index 98ddef2e783..98ddef2e783 100644 --- a/lib/private/diagnostics/nullquerylogger.php +++ b/lib/private/Diagnostics/NullQueryLogger.php diff --git a/lib/private/diagnostics/query.php b/lib/private/Diagnostics/Query.php index 567bc83ed4b..567bc83ed4b 100644 --- a/lib/private/diagnostics/query.php +++ b/lib/private/Diagnostics/Query.php diff --git a/lib/private/diagnostics/querylogger.php b/lib/private/Diagnostics/QueryLogger.php index 66a65b71d04..66a65b71d04 100644 --- a/lib/private/diagnostics/querylogger.php +++ b/lib/private/Diagnostics/QueryLogger.php diff --git a/lib/private/Lock/DBLockingProvider.php b/lib/private/Lock/DBLockingProvider.php index 9e97df44d3f..3a599a61e7d 100644 --- a/lib/private/Lock/DBLockingProvider.php +++ b/lib/private/Lock/DBLockingProvider.php @@ -24,7 +24,9 @@ namespace OC\Lock; +use OC\DB\QueryBuilder\Literal; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; use OCP\ILogger; use OCP\Lock\ILockingProvider; @@ -257,13 +259,22 @@ class DBLockingProvider extends AbstractLockingProvider { parent::releaseAll(); // since we keep shared locks we need to manually clean those - foreach ($this->sharedLocks as $path => $lock) { - if ($lock) { - $this->connection->executeUpdate( - 'UPDATE `*PREFIX*file_locks` SET `lock` = `lock` - 1 WHERE `key` = ? AND `lock` > 0', - [$path] - ); - } + $lockedPaths = array_keys($this->sharedLocks); + $lockedPaths = array_filter($lockedPaths, function ($path) { + return $this->sharedLocks[$path]; + }); + + $chunkedPaths = array_chunk($lockedPaths, 100); + + foreach ($chunkedPaths as $chunk) { + $builder = $this->connection->getQueryBuilder(); + + $query = $builder->update('file_locks') + ->set('lock', $builder->createFunction('`lock` -1')) + ->where($builder->expr()->in('key', $builder->createNamedParameter($chunk, IQueryBuilder::PARAM_STR_ARRAY))) + ->andWhere($builder->expr()->gt('lock', new Literal(0))); + + $query->execute(); } } } diff --git a/lib/private/mail/mailer.php b/lib/private/Mail/Mailer.php index 742ff554892..742ff554892 100644 --- a/lib/private/mail/mailer.php +++ b/lib/private/Mail/Mailer.php diff --git a/lib/private/mail/message.php b/lib/private/Mail/Message.php index 0e33e6383f7..0e33e6383f7 100644 --- a/lib/private/mail/message.php +++ b/lib/private/Mail/Message.php diff --git a/lib/private/preview/bmp.php b/lib/private/Preview/BMP.php index da13cd9e5b8..da13cd9e5b8 100644 --- a/lib/private/preview/bmp.php +++ b/lib/private/Preview/BMP.php diff --git a/lib/private/preview/bitmap.php b/lib/private/Preview/Bitmap.php index 34bc2f93fc7..34bc2f93fc7 100644 --- a/lib/private/preview/bitmap.php +++ b/lib/private/Preview/Bitmap.php diff --git a/lib/private/preview/font.php b/lib/private/Preview/Font.php index caac2923789..caac2923789 100644 --- a/lib/private/preview/font.php +++ b/lib/private/Preview/Font.php diff --git a/lib/private/preview/gif.php b/lib/private/Preview/GIF.php index 0716a6f4406..0716a6f4406 100644 --- a/lib/private/preview/gif.php +++ b/lib/private/Preview/GIF.php diff --git a/lib/private/preview/illustrator.php b/lib/private/Preview/Illustrator.php index ef8448d7b53..ef8448d7b53 100644 --- a/lib/private/preview/illustrator.php +++ b/lib/private/Preview/Illustrator.php diff --git a/lib/private/preview/image.php b/lib/private/Preview/Image.php index 3ea99d6963a..3ea99d6963a 100644 --- a/lib/private/preview/image.php +++ b/lib/private/Preview/Image.php diff --git a/lib/private/preview/jpeg.php b/lib/private/Preview/JPEG.php index 2ee5dd24419..2ee5dd24419 100644 --- a/lib/private/preview/jpeg.php +++ b/lib/private/Preview/JPEG.php diff --git a/lib/private/preview/mp3.php b/lib/private/Preview/MP3.php index c7b70457afe..c7b70457afe 100644 --- a/lib/private/preview/mp3.php +++ b/lib/private/Preview/MP3.php diff --git a/lib/private/preview/msoffice2003.php b/lib/private/Preview/MSOffice2003.php index 20dbe13543a..20dbe13543a 100644 --- a/lib/private/preview/msoffice2003.php +++ b/lib/private/Preview/MSOffice2003.php diff --git a/lib/private/preview/msoffice2007.php b/lib/private/Preview/MSOffice2007.php index ef6758843f1..ef6758843f1 100644 --- a/lib/private/preview/msoffice2007.php +++ b/lib/private/Preview/MSOffice2007.php diff --git a/lib/private/preview/msofficedoc.php b/lib/private/Preview/MSOfficeDoc.php index 05d839d508f..05d839d508f 100644 --- a/lib/private/preview/msofficedoc.php +++ b/lib/private/Preview/MSOfficeDoc.php diff --git a/lib/private/preview/markdown.php b/lib/private/Preview/MarkDown.php index 394af6576c7..394af6576c7 100644 --- a/lib/private/preview/markdown.php +++ b/lib/private/Preview/MarkDown.php diff --git a/lib/private/preview/movie.php b/lib/private/Preview/Movie.php index 43a8d674fc9..43a8d674fc9 100644 --- a/lib/private/preview/movie.php +++ b/lib/private/Preview/Movie.php diff --git a/lib/private/preview/office.php b/lib/private/Preview/Office.php index 6496e091b1d..6496e091b1d 100644 --- a/lib/private/preview/office.php +++ b/lib/private/Preview/Office.php diff --git a/lib/private/preview/opendocument.php b/lib/private/Preview/OpenDocument.php index 0da1e88cafa..0da1e88cafa 100644 --- a/lib/private/preview/opendocument.php +++ b/lib/private/Preview/OpenDocument.php diff --git a/lib/private/preview/pdf.php b/lib/private/Preview/PDF.php index 6ddf33cdea2..6ddf33cdea2 100644 --- a/lib/private/preview/pdf.php +++ b/lib/private/Preview/PDF.php diff --git a/lib/private/preview/png.php b/lib/private/Preview/PNG.php index 5dd9ae484a5..5dd9ae484a5 100644 --- a/lib/private/preview/png.php +++ b/lib/private/Preview/PNG.php diff --git a/lib/private/preview/photoshop.php b/lib/private/Preview/Photoshop.php index df91247f072..df91247f072 100644 --- a/lib/private/preview/photoshop.php +++ b/lib/private/Preview/Photoshop.php diff --git a/lib/private/preview/postscript.php b/lib/private/Preview/Postscript.php index edfd43968c2..edfd43968c2 100644 --- a/lib/private/preview/postscript.php +++ b/lib/private/Preview/Postscript.php diff --git a/lib/private/preview/provider.php b/lib/private/Preview/Provider.php index 738d13d7fc8..738d13d7fc8 100644 --- a/lib/private/preview/provider.php +++ b/lib/private/Preview/Provider.php diff --git a/lib/private/preview/svg.php b/lib/private/Preview/SVG.php index 6618c1fbf82..6618c1fbf82 100644 --- a/lib/private/preview/svg.php +++ b/lib/private/Preview/SVG.php diff --git a/lib/private/preview/staroffice.php b/lib/private/Preview/StarOffice.php index 6ea4efa5144..6ea4efa5144 100644 --- a/lib/private/preview/staroffice.php +++ b/lib/private/Preview/StarOffice.php diff --git a/lib/private/preview/tiff.php b/lib/private/Preview/TIFF.php index 006ced6aec0..006ced6aec0 100644 --- a/lib/private/preview/tiff.php +++ b/lib/private/Preview/TIFF.php diff --git a/lib/private/preview/txt.php b/lib/private/Preview/TXT.php index a27517c9f39..a27517c9f39 100644 --- a/lib/private/preview/txt.php +++ b/lib/private/Preview/TXT.php diff --git a/lib/private/preview/xbitmap.php b/lib/private/Preview/XBitmap.php index 604a51a6a83..604a51a6a83 100644 --- a/lib/private/preview/xbitmap.php +++ b/lib/private/Preview/XBitmap.php diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 1ec25750cfe..dee9e0cdd21 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -237,6 +237,17 @@ class Manager implements IManager { if (($share->getPermissions() & \OCP\Constants::PERMISSION_READ) === 0) { throw new \InvalidArgumentException('Shares need at least read permissions'); } + + if ($share->getNode() instanceof \OCP\Files\File) { + if ($share->getPermissions() & \OCP\Constants::PERMISSION_DELETE) { + $message_t = $this->l->t('Files can\'t be shared with delete permissions'); + throw new GenericShareException($message_t); + } + if ($share->getPermissions() & \OCP\Constants::PERMISSION_CREATE) { + $message_t = $this->l->t('Files can\'t be shared with create permissions'); + throw new GenericShareException($message_t); + } + } } /** @@ -505,6 +516,24 @@ class Manager implements IManager { $this->generalCreateChecks($share); + // Verify if there are any issues with the path + $this->pathCreateChecks($share->getNode()); + + /* + * On creation of a share the owner is always the owner of the path + * Except for mounted federated shares. + */ + $storage = $share->getNode()->getStorage(); + if ($storage->instanceOfStorage('OCA\Files_Sharing\External\Storage')) { + $parent = $share->getNode()->getParent(); + while($parent->getStorage()->instanceOfStorage('OCA\Files_Sharing\External\Storage')) { + $parent = $parent->getParent(); + } + $share->setShareOwner($parent->getOwner()->getUID()); + } else { + $share->setShareOwner($share->getNode()->getOwner()->getUID()); + } + //Verify share type if ($share->getShareType() === \OCP\Share::SHARE_TYPE_USER) { $this->userCreateChecks($share); @@ -538,24 +567,6 @@ class Manager implements IManager { } } - // Verify if there are any issues with the path - $this->pathCreateChecks($share->getNode()); - - /* - * On creation of a share the owner is always the owner of the path - * Except for mounted federated shares. - */ - $storage = $share->getNode()->getStorage(); - if ($storage->instanceOfStorage('OCA\Files_Sharing\External\Storage')) { - $parent = $share->getNode()->getParent(); - while($parent->getStorage()->instanceOfStorage('OCA\Files_Sharing\External\Storage')) { - $parent = $parent->getParent(); - } - $share->setShareOwner($parent->getOwner()->getUID()); - } else { - $share->setShareOwner($share->getNode()->getOwner()->getUID()); - } - // Cannot share with the owner if ($share->getShareType() === \OCP\Share::SHARE_TYPE_USER && $share->getSharedWith() === $share->getShareOwner()) { @@ -818,7 +829,7 @@ class Manager implements IManager { * @param string $recipientId */ public function deleteFromSelf(\OCP\Share\IShare $share, $recipientId) { - list($providerId, ) = $this->splitFullId($share->getId()); + list($providerId, ) = $this->splitFullId($share->getFullId()); $provider = $this->factory->getProvider($providerId); $provider->deleteFromSelf($share, $recipientId); @@ -844,7 +855,7 @@ class Manager implements IManager { } } - list($providerId, ) = $this->splitFullId($share->getId()); + list($providerId, ) = $this->splitFullId($share->getFullId()); $provider = $this->factory->getProvider($providerId); $provider->move($share, $recipientId); diff --git a/lib/private/tagging/tag.php b/lib/private/Tagging/Tag.php index e35ac433e00..e35ac433e00 100644 --- a/lib/private/tagging/tag.php +++ b/lib/private/Tagging/Tag.php diff --git a/lib/private/tagging/tagmapper.php b/lib/private/Tagging/TagMapper.php index 364dbc99b4d..364dbc99b4d 100644 --- a/lib/private/tagging/tagmapper.php +++ b/lib/private/Tagging/TagMapper.php diff --git a/lib/private/app.php b/lib/private/app.php index 05d220f7d38..8a8b97d2cd4 100644 --- a/lib/private/app.php +++ b/lib/private/app.php @@ -159,8 +159,16 @@ class OC_App { * @param string $app app name */ private static function requireAppFile($app) { - // encapsulated here to avoid variable scope conflicts - require_once $app . '/appinfo/app.php'; + try { + // encapsulated here to avoid variable scope conflicts + require_once $app . '/appinfo/app.php'; + } catch (Error $ex) { + \OC::$server->getLogger()->logException($ex); + $blacklist = \OC::$server->getAppManager()->getAlwaysEnabledApps(); + if (!in_array($app, $blacklist)) { + self::disable($app); + } + } } /** diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php index 5ca32548fe0..c16e8515b01 100644 --- a/lib/private/files/cache/scanner.php +++ b/lib/private/files/cache/scanner.php @@ -195,6 +195,8 @@ class Scanner extends BasicEmitter implements IScanner { $fileId = -1; } if (!empty($newData)) { + // Reset the checksum if the data has changed + $newData['checksum'] = ''; $data['fileid'] = $this->addToCache($file, $newData, $fileId); } if (isset($cacheData['size'])) { diff --git a/lib/private/files/cache/wrapper/cachejail.php b/lib/private/files/cache/wrapper/cachejail.php index 868e63cdf81..88b0f23a1fc 100644 --- a/lib/private/files/cache/wrapper/cachejail.php +++ b/lib/private/files/cache/wrapper/cachejail.php @@ -281,4 +281,20 @@ class CacheJail extends CacheWrapper { $path = $this->cache->getPathById($id); return $this->getJailedPath($path); } + + /** + * Move a file or folder in the cache + * + * Note that this should make sure the entries are removed from the source cache + * + * @param \OCP\Files\Cache\ICache $sourceCache + * @param string $sourcePath + * @param string $targetPath + */ + public function moveFromCache(\OCP\Files\Cache\ICache $sourceCache, $sourcePath, $targetPath) { + if ($sourceCache === $this) { + return $this->move($sourcePath, $targetPath); + } + return $this->cache->moveFromCache($sourceCache, $sourcePath, $targetPath); + } } diff --git a/lib/private/files/config/cachedmountinfo.php b/lib/private/files/config/cachedmountinfo.php index 2993c979a7f..ce75cb66896 100644 --- a/lib/private/files/config/cachedmountinfo.php +++ b/lib/private/files/config/cachedmountinfo.php @@ -30,22 +30,22 @@ class CachedMountInfo implements ICachedMountInfo { /** * @var IUser */ - private $user; + protected $user; /** * @var int */ - private $storageId; + protected $storageId; /** * @var int */ - private $rootId; + protected $rootId; /** * @var string */ - private $mountPoint; + protected $mountPoint; /** * CachedMountInfo constructor. @@ -88,9 +88,9 @@ class CachedMountInfo implements ICachedMountInfo { */ public function getMountPointNode() { // TODO injection etc - Filesystem::initMountPoints($this->user->getUID()); - $userNode = \OC::$server->getUserFolder($this->user->getUID()); - $nodes = $userNode->getById($this->rootId); + Filesystem::initMountPoints($this->getUser()->getUID()); + $userNode = \OC::$server->getUserFolder($this->getUser()->getUID()); + $nodes = $userNode->getById($this->getRootId()); if (count($nodes) > 0) { return $nodes[0]; } else { diff --git a/lib/private/files/config/lazystoragemountinfo.php b/lib/private/files/config/lazystoragemountinfo.php new file mode 100644 index 00000000000..654c5b2b23e --- /dev/null +++ b/lib/private/files/config/lazystoragemountinfo.php @@ -0,0 +1,74 @@ +<?php +/** + * @author Robin Appelman <icewind@owncloud.com> + * + * @copyright Copyright (c) 2016, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Files\Config; + +use OC\Files\Filesystem; +use OCP\Files\Config\ICachedMountInfo; +use OCP\Files\Mount\IMountPoint; +use OCP\Files\Node; +use OCP\IUser; + +class LazyStorageMountInfo extends CachedMountInfo { + /** @var IMountPoint */ + private $mount; + + /** + * CachedMountInfo constructor. + * + * @param IUser $user + * @param IMountPoint $mount + */ + public function __construct(IUser $user, IMountPoint $mount) { + $this->user = $user; + $this->mount = $mount; + } + + /** + * @return int the numeric storage id of the mount + */ + public function getStorageId() { + if (!$this->storageId) { + $this->storageId = $this->mount->getStorage()->getStorageCache()->getNumericId(); + } + return parent::getStorageId(); + } + + /** + * @return int the fileid of the root of the mount + */ + public function getRootId() { + if (!$this->rootId) { + $this->rootId = $this->mount->getStorageRootId(); + } + return parent::getRootId(); + } + + /** + * @return string the mount point of the mount for the user + */ + public function getMountPoint() { + if (!$this->mountPoint) { + $this->mountPoint = $this->mount->getMountPoint(); + } + return parent::getMountPoint(); + } +} diff --git a/lib/private/files/config/usermountcache.php b/lib/private/files/config/usermountcache.php index 78b19972787..05ca146f4be 100644 --- a/lib/private/files/config/usermountcache.php +++ b/lib/private/files/config/usermountcache.php @@ -80,18 +80,11 @@ class UserMountCache implements IUserMountCache { }); /** @var ICachedMountInfo[] $newMounts */ $newMounts = array_map(function (IMountPoint $mount) use ($user) { - $storage = $mount->getStorage(); - if ($storage->instanceOfStorage('\OC\Files\Storage\Shared')) { - $rootId = (int)$storage->getShare()['file_source']; - } else { - $rootId = (int)$storage->getCache()->getId(''); - } - $storageId = (int)$storage->getStorageCache()->getNumericId(); // filter out any storages which aren't scanned yet since we aren't interested in files from those storages (yet) - if ($rootId === -1) { + if ($mount->getStorageRootId() === -1) { return null; } else { - return new CachedMountInfo($user, $storageId, $rootId, $mount->getMountPoint()); + return new LazyStorageMountInfo($user, $mount); } }, $mounts); $newMounts = array_values(array_filter($newMounts)); diff --git a/lib/private/files/mount/mountpoint.php b/lib/private/files/mount/mountpoint.php index b606c625cb1..7b9294fc1e0 100644 --- a/lib/private/files/mount/mountpoint.php +++ b/lib/private/files/mount/mountpoint.php @@ -239,4 +239,13 @@ class MountPoint implements IMountPoint { public function getOptions() { return $this->mountOptions; } + + /** + * Get the file id of the root of the storage + * + * @return int + */ + public function getStorageRootId() { + return (int)$this->getStorage()->getCache()->getId(''); + } } diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 85c2e1c6700..3a811b312c6 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -313,20 +313,20 @@ abstract class Common implements Storage, ILockingStorage { if (!$storage) { $storage = $this; } - if (!isset($this->cache)) { - $this->cache = new Cache($storage); + if (!isset($storage->cache)) { + $storage->cache = new Cache($storage); } - return $this->cache; + return $storage->cache; } public function getScanner($path = '', $storage = null) { if (!$storage) { $storage = $this; } - if (!isset($this->scanner)) { - $this->scanner = new Scanner($storage); + if (!isset($storage->scanner)) { + $storage->scanner = new Scanner($storage); } - return $this->scanner; + return $storage->scanner; } public function getWatcher($path = '', $storage = null) { @@ -351,20 +351,20 @@ abstract class Common implements Storage, ILockingStorage { if (!$storage) { $storage = $this; } - if (!isset($this->propagator)) { - $this->propagator = new Propagator($storage); + if (!isset($storage->propagator)) { + $storage->propagator = new Propagator($storage); } - return $this->propagator; + return $storage->propagator; } public function getUpdater($storage = null) { if (!$storage) { $storage = $this; } - if (!isset($this->updater)) { - $this->updater = new Updater($storage); + if (!isset($storage->updater)) { + $storage->updater = new Updater($storage); } - return $this->updater; + return $storage->updater; } public function getStorageCache($storage = null) { diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php index 1add4d7fd0a..02da978a700 100644 --- a/lib/private/files/storage/wrapper/encryption.php +++ b/lib/private/files/storage/wrapper/encryption.php @@ -627,9 +627,10 @@ class Encryption extends Wrapper { * @param string $sourceInternalPath * @param string $targetInternalPath * @param bool $preserveMtime + * @param bool $isRename * @return bool */ - public function copyFromStorage(Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) { + public function copyFromStorage(Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false, $isRename = false) { // TODO clean this up once the underlying moveFromStorage in OC\Files\Storage\Wrapper\Common is fixed: // - call $this->storage->copyFromStorage() instead of $this->copyBetweenStorage @@ -637,7 +638,7 @@ class Encryption extends Wrapper { // - copy the copyKeys() call from $this->copyBetweenStorage to this method // - remove $this->copyBetweenStorage - return $this->copyBetweenStorage($sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime, false); + return $this->copyBetweenStorage($sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime, $isRename); } /** @@ -732,7 +733,7 @@ class Encryption extends Wrapper { if (is_resource($dh)) { while ($result and ($file = readdir($dh)) !== false) { if (!Filesystem::isIgnoredDir($file)) { - $result &= $this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file); + $result &= $this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file, false, $isRename); } } } diff --git a/lib/private/files/storage/wrapper/jail.php b/lib/private/files/storage/wrapper/jail.php index e5f5ab90359..e8063f670c5 100644 --- a/lib/private/files/storage/wrapper/jail.php +++ b/lib/private/files/storage/wrapper/jail.php @@ -47,7 +47,7 @@ class Jail extends Wrapper { $this->rootPath = $arguments['root']; } - protected function getSourcePath($path) { + public function getSourcePath($path) { if ($path === '') { return $this->rootPath; } else { @@ -417,6 +417,14 @@ class Jail extends Wrapper { /** * @param string $path + * @return array + */ + public function getMetaData($path) { + return $this->storage->getMetaData($this->getSourcePath($path)); + } + + /** + * @param string $path * @param int $type \OCP\Lock\ILockingProvider::LOCK_SHARED or \OCP\Lock\ILockingProvider::LOCK_EXCLUSIVE * @param \OCP\Lock\ILockingProvider $provider * @throws \OCP\Lock\LockedException @@ -442,4 +450,40 @@ class Jail extends Wrapper { public function changeLock($path, $type, ILockingProvider $provider) { $this->storage->changeLock($this->getSourcePath($path), $type, $provider); } + + /** + * Resolve the path for the source of the share + * + * @param string $path + * @return array + */ + public function resolvePath($path) { + return [$this->storage, $this->getSourcePath($path)]; + } + + /** + * @param \OCP\Files\Storage $sourceStorage + * @param string $sourceInternalPath + * @param string $targetInternalPath + * @return bool + */ + public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { + if ($sourceStorage === $this) { + return $this->copy($sourceInternalPath, $targetInternalPath); + } + return $this->storage->copyFromStorage($sourceStorage, $sourceInternalPath, $this->getSourcePath($targetInternalPath)); + } + + /** + * @param \OCP\Files\Storage $sourceStorage + * @param string $sourceInternalPath + * @param string $targetInternalPath + * @return bool + */ + public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { + if ($sourceStorage === $this) { + return $this->rename($sourceInternalPath, $targetInternalPath); + } + return $this->storage->moveFromStorage($sourceStorage, $sourceInternalPath, $this->getSourcePath($targetInternalPath)); + } } diff --git a/lib/private/files/storage/wrapper/wrapper.php b/lib/private/files/storage/wrapper/wrapper.php index 12914e7a1b8..21d7db1099b 100644 --- a/lib/private/files/storage/wrapper/wrapper.php +++ b/lib/private/files/storage/wrapper/wrapper.php @@ -35,6 +35,12 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage { */ protected $storage; + public $cache; + public $scanner; + public $watcher; + public $propagator; + public $updater; + /** * @param array $parameters */ diff --git a/lib/private/helper.php b/lib/private/helper.php index 70c50bb7b4b..e6aaed0fd15 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -628,7 +628,7 @@ class OC_Helper { /** @var \OC\Files\Storage\Wrapper\Quota $storage */ $quota = $sourceStorage->getQuota(); } - $free = $storage->free_space(''); + $free = $sourceStorage->free_space(''); if ($free >= 0) { $total = $free + $used; } else { diff --git a/lib/private/log.php b/lib/private/log.php index 9a2a2da906e..bbdad9cf166 100644 --- a/lib/private/log.php +++ b/lib/private/log.php @@ -270,12 +270,12 @@ class Log implements ILogger { /** * Logs an exception very detailed * - * @param \Exception $exception + * @param \Exception | \Throwable $exception * @param array $context * @return void * @since 8.2.0 */ - public function logException(\Exception $exception, array $context = array()) { + public function logException($exception, array $context = array()) { $exception = array( 'Exception' => get_class($exception), 'Message' => $exception->getMessage(), diff --git a/lib/private/log/errorhandler.php b/lib/private/log/errorhandler.php index 27cde4aa242..8899bcfcb03 100644 --- a/lib/private/log/errorhandler.php +++ b/lib/private/log/errorhandler.php @@ -44,6 +44,9 @@ class ErrorHandler { if ($debug) { set_error_handler(array($handler, 'onAll'), E_ALL); + if (\OC::$CLI) { + set_exception_handler(array('OC_Template', 'printExceptionErrorPage')); + } } else { set_error_handler(array($handler, 'onError')); } diff --git a/lib/private/setup.php b/lib/private/setup.php index 6303d0d47f3..d2f3802ebad 100644 --- a/lib/private/setup.php +++ b/lib/private/setup.php @@ -400,12 +400,21 @@ class Setup { * Append the correct ErrorDocument path for Apache hosts */ public static function updateHtaccess() { - // From CLI we don't know the defined web root. Thus we can't write any - // directives into the .htaccess file. + $config = \OC::$server->getConfig(); + + // For CLI read the value from overwrite.cli.url if(\OC::$CLI) { - return; + $webRoot = $config->getSystemValue('overwrite.cli.url', ''); + if($webRoot === '') { + return; + } + $webRoot = parse_url($webRoot, PHP_URL_PATH); + $webRoot = rtrim($webRoot, '/'); + } else { + $webRoot = !empty(\OC::$WEBROOT) ? \OC::$WEBROOT : '/'; } - $setupHelper = new \OC\Setup(\OC::$server->getConfig(), \OC::$server->getIniWrapper(), + + $setupHelper = new \OC\Setup($config, \OC::$server->getIniWrapper(), \OC::$server->getL10N('lib'), new \OC_Defaults(), \OC::$server->getLogger(), \OC::$server->getSecureRandom()); @@ -413,13 +422,12 @@ class Setup { $content = "#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####\n"; if(strpos($htaccessContent, $content) === false) { //custom 403 error page - $content.= "\nErrorDocument 403 ".\OC::$WEBROOT."/core/templates/403.php"; + $content.= "\nErrorDocument 403 ".$webRoot."/core/templates/403.php"; //custom 404 error page - $content.= "\nErrorDocument 404 ".\OC::$WEBROOT."/core/templates/404.php"; + $content.= "\nErrorDocument 404 ".$webRoot."/core/templates/404.php"; // Add rewrite base - $webRoot = !empty(\OC::$WEBROOT) ? \OC::$WEBROOT : '/'; $content .= "\n<IfModule mod_rewrite.c>"; $content .= "\n RewriteRule . index.php [PT,E=PATH_INFO:$1]"; $content .= "\n RewriteBase ".$webRoot; diff --git a/lib/private/setup/mysql.php b/lib/private/setup/mysql.php index ba1b2ca854c..18b6dab4ff8 100644 --- a/lib/private/setup/mysql.php +++ b/lib/private/setup/mysql.php @@ -43,7 +43,7 @@ class MySQL extends AbstractDatabase { $query='select count(*) from information_schema.tables where table_schema=? AND table_name = ?'; $result = $connection->executeQuery($query, [$this->dbName, $this->tablePrefix.'users']); $row = $result->fetch(); - if(!$result or $row[0]==0) { + if (!$row or $row['count(*)'] === '0') { \OC_DB::createDbFromStructure($this->dbDefinitionFile); } } diff --git a/lib/private/share/share.php b/lib/private/share/share.php index 2125767cabb..5b61f418a4d 100644 --- a/lib/private/share/share.php +++ b/lib/private/share/share.php @@ -90,6 +90,7 @@ class Share extends Constants { \OC_Util::addScript('core', 'shareitemmodel'); \OC_Util::addScript('core', 'sharedialogresharerinfoview'); \OC_Util::addScript('core', 'sharedialoglinkshareview'); + \OC_Util::addScript('core', 'sharedialogmailview'); \OC_Util::addScript('core', 'sharedialogexpirationview'); \OC_Util::addScript('core', 'sharedialogshareelistview'); \OC_Util::addScript('core', 'sharedialogview'); diff --git a/lib/private/template.php b/lib/private/template.php index c6542356fac..73725529702 100644 --- a/lib/private/template.php +++ b/lib/private/template.php @@ -333,7 +333,7 @@ class OC_Template extends \OC\Template\Base { /** * print error page using Exception details - * @param Exception $exception + * @param Exception | Throwable $exception */ public static function printExceptionErrorPage($exception, $fetchPage = false) { try { diff --git a/lib/public/files/mount/imountpoint.php b/lib/public/files/mount/imountpoint.php index 9ce1396c1d1..bc7bf81709f 100644 --- a/lib/public/files/mount/imountpoint.php +++ b/lib/public/files/mount/imountpoint.php @@ -94,4 +94,12 @@ interface IMountPoint { * @since 8.1.0 */ public function getOptions(); + + /** + * Get the file id of the root of the storage + * + * @return int + * @since 9.1.0 + */ + public function getStorageRootId(); } diff --git a/lib/public/ilogger.php b/lib/public/ilogger.php index 6a4163875a9..fa947612fcd 100644 --- a/lib/public/ilogger.php +++ b/lib/public/ilogger.php @@ -135,10 +135,10 @@ interface ILogger { * ]); * </code> * - * @param \Exception $exception + * @param \Exception | \Throwable $exception * @param array $context * @return void * @since 8.2.0 */ - public function logException(\Exception $exception, array $context = array()); + public function logException($exception, array $context = array()); } diff --git a/public.php b/public.php index 65257f1a46e..c4d96c06496 100644 --- a/public.php +++ b/public.php @@ -49,7 +49,7 @@ try { $pathInfo = trim($pathInfo, '/'); list($service) = explode('/', $pathInfo); } - $file = OCP\CONFIG::getAppValue('core', 'public_' . strip_tags($service)); + $file = OCP\Config::getAppValue('core', 'public_' . strip_tags($service)); if (is_null($file)) { header('HTTP/1.0 404 Not Found'); exit; @@ -73,14 +73,18 @@ try { require_once OC_App::getAppPath($app) . '/' . $parts[1]; -} catch (\OC\ServiceUnavailableException $ex) { +} catch (Exception $ex) { + if ($ex instanceof \OC\ServiceUnavailableException) { + OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE); + } else { + OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR); + } //show the user a detailed error page - OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE); - \OCP\Util::writeLog('remote', $ex->getMessage(), \OCP\Util::FATAL); + \OC::$server->getLogger()->logException($ex, ['app' => 'public']); OC_Template::printExceptionErrorPage($ex); -} catch (Exception $ex) { +} catch (Error $ex) { //show the user a detailed error page OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR); - \OCP\Util::writeLog('remote', $ex->getMessage(), \OCP\Util::FATAL); + \OC::$server->getLogger()->logException($ex, ['app' => 'public']); OC_Template::printExceptionErrorPage($ex); } diff --git a/remote.php b/remote.php index 814286860af..991ca0d2302 100644 --- a/remote.php +++ b/remote.php @@ -40,9 +40,9 @@ class RemoteException extends Exception { } /** - * @param Exception $e + * @param Exception | Error $e */ -function handleException(Exception $e) { +function handleException($e) { $request = \OC::$server->getRequest(); // in case the request content type is text/xml - we assume it's a WebDAV request $isXmlContentType = strpos($request->getHeader('Content-Type'), 'text/xml'); @@ -77,7 +77,7 @@ function handleException(Exception $e) { OC_Response::setStatus($e->getCode()); OC_Template::printErrorPage($e->getMessage()); } else { - \OCP\Util::writeLog('remote', $e->getMessage(), \OCP\Util::FATAL); + \OC::$server->getLogger()->logException($e, ['app' => 'remote']); OC_Response::setStatus($statusCode); OC_Template::printExceptionErrorPage($e); } @@ -165,4 +165,6 @@ try { } catch (Exception $ex) { handleException($ex); +} catch (Error $e) { + handleException($ex); } diff --git a/settings/admin.php b/settings/admin.php index e0d3a907f47..b67331b22eb 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -38,9 +38,10 @@ $template = new OC_Template('settings', 'admin', 'user'); $l = \OC::$server->getL10N('settings'); OC_Util::addScript('settings', 'certificates'); -OC_Util::addScript('files', 'jquery.iframe-transport'); OC_Util::addScript('files', 'jquery.fileupload'); +\OC::$server->getEventDispatcher()->dispatch('OC\Settings\Admin::loadAdditionalScripts'); + $showLog = (\OC::$server->getConfig()->getSystemValue('log_type', 'owncloud') === 'owncloud'); $numEntriesToLoad = 3; $entries = OC_Log_Owncloud::getEntries($numEntriesToLoad + 1); diff --git a/settings/js/admin.js b/settings/js/admin.js index 1bbb20efa00..34e258065ce 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -38,7 +38,7 @@ $(document).ready(function(){ $('#backgroundjobs span.crondate').tipsy({gravity: 's', live: true}); $('#backgroundjobs input').change(function(){ - if($(this).attr('checked')){ + if($(this).is(':checked')){ var mode = $(this).val(); if (mode === 'ajax' || mode === 'webcron' || mode === 'cron') { OC.AppConfig.setValue('core', 'backgroundjobs_mode', mode); @@ -131,7 +131,7 @@ $(document).ready(function(){ $('#setting_smtphost').removeClass('hidden'); $('#mail_smtpsecure_label').removeClass('hidden'); $('#mail_smtpsecure').removeClass('hidden'); - if ($('#mail_smtpauth').attr('checked')) { + if ($('#mail_smtpauth').is(':checked')) { $('#mail_credentials').removeClass('hidden'); } } diff --git a/settings/js/apps.js b/settings/js/apps.js index 1b687012815..015236f957d 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -193,15 +193,15 @@ OC.Settings.Apps = OC.Settings.Apps || { OC.Settings.Apps.isType(app, 'authentication') || OC.Settings.Apps.isType(app, 'logging') || OC.Settings.Apps.isType(app, 'prevent_group_restriction')) { page.find(".groups-enable").hide(); - page.find(".groups-enable__checkbox").attr('checked', null); + page.find(".groups-enable__checkbox").prop('checked', false); } else { page.find('#group_select').val((app.groups || []).join('|')); if (app.active) { if (app.groups.length) { OC.Settings.Apps.setupGroupsSelect(page.find('#group_select')); - page.find(".groups-enable__checkbox").attr('checked','checked'); + page.find(".groups-enable__checkbox").prop('checked', true); } else { - page.find(".groups-enable__checkbox").attr('checked', null); + page.find(".groups-enable__checkbox").prop('checked', false); } page.find(".groups-enable").show(); } else { @@ -289,7 +289,7 @@ OC.Settings.Apps = OC.Settings.Apps || { if (OC.Settings.Apps.isType(app, 'filesystem') || OC.Settings.Apps.isType(app, 'prelogin') || OC.Settings.Apps.isType(app, 'authentication') || OC.Settings.Apps.isType(app, 'logging')) { - element.parent().find(".groups-enable").attr('checked', null); + element.parent().find(".groups-enable").prop('checked', true); element.parent().find(".groups-enable").hide(); element.parent().find('#group_select').hide().val(null); } else { diff --git a/settings/js/certificates.js b/settings/js/certificates.js index f2a8e6b0afb..7e62a4f5157 100644 --- a/settings/js/certificates.js +++ b/settings/js/certificates.js @@ -24,10 +24,10 @@ $(document).ready(function () { }, success: function (data) { if (typeof data === 'string') { - data = $.parseJSON(data); + data = JSON.parse(data); } else if (data && data.length) { // fetch response from iframe - data = $.parseJSON(data[0].body.innerText); + data = JSON.parse(data[0].body.innerText); } if (!data || typeof(data) === 'string') { // IE8 iframe workaround comes here instead of fail() diff --git a/settings/js/personal.js b/settings/js/personal.js index bd13b7fd251..b6e8e2ff508 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -166,7 +166,7 @@ function cleanCropper () { function avatarResponseHandler (data) { if (typeof data === 'string') { - data = $.parseJSON(data); + data = JSON.parse(data); } var $warning = $('#avatar .warning'); $warning.hide(); @@ -248,10 +248,10 @@ $(document).ready(function () { done: function (e, data) { var response = data; if (typeof data.result === 'string') { - response = $.parseJSON(data.result); + response = JSON.parse(data.result); } else if (data.result && data.result.length) { // fetch response from iframe - response = $.parseJSON(data.result[0].body.innerText); + response = JSON.parse(data.result[0].body.innerText); } else { response = data.result; } diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index ac4956d4699..b4a6681ccd2 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -63,6 +63,7 @@ OC.L10N.register( "Experimental" : "Experimental", "All" : "All", "No apps found for your version" : "No apps found for your version", + "The app will be downloaded from the app store" : "The app will be downloaded from the app store", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use.", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "This app is not checked for security issues and is new or known to be unstable. Install at your own risk.", @@ -84,6 +85,7 @@ OC.L10N.register( "Uninstall" : "Uninstall", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.", "App update" : "App update", + "No apps found for {query}" : "No apps found for {query}", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "An error occurred. Please upload an ASCII-encoded PEM certificate.", "Valid until {date}" : "Valid until {date}", "Delete" : "Delete", @@ -125,17 +127,20 @@ OC.L10N.register( "SSL" : "SSL", "TLS" : "TLS", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "The PHP module 'fileinfo' is missing. We strongly recommend enabling this module to get best results with mime-type detection.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information.", "System locale can not be set to a one which supports UTF-8." : "System locale can not be set to a one which supports UTF-8.", "This means that there might be problems with certain characters in file names." : "This means that there might be problems with certain characters in file names.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>.", "All checks passed." : "All checks passed.", "Open documentation" : "Open documentation", "Allow apps to use the Share API" : "Allow apps to use the Share API", @@ -148,6 +153,7 @@ OC.L10N.register( "days" : "days", "Enforce expiration date" : "Enforce expiry date", "Allow resharing" : "Allow resharing", + "Allow sharing with groups" : "Allow sharing with groups", "Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups", "Allow users to send mail notification for shared files to other users" : "Allow users to send email notification for shared files to other users", "Exclude groups from sharing" : "Exclude groups from sharing", @@ -194,6 +200,7 @@ OC.L10N.register( "What to log" : "What to log", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite is used as database. For larger installations, we recommend you switch to a different database backend.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Especially when using the desktop client for file syncing, the use of SQLite is discouraged.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>.", "How to do backups" : "How to do backups", "Advanced monitoring" : "Advanced monitoring", "Performance tuning" : "Performance tuning", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index 80a934215af..8a990886585 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -61,6 +61,7 @@ "Experimental" : "Experimental", "All" : "All", "No apps found for your version" : "No apps found for your version", + "The app will be downloaded from the app store" : "The app will be downloaded from the app store", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use.", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "This app is not checked for security issues and is new or known to be unstable. Install at your own risk.", @@ -82,6 +83,7 @@ "Uninstall" : "Uninstall", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.", "App update" : "App update", + "No apps found for {query}" : "No apps found for {query}", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "An error occurred. Please upload an ASCII-encoded PEM certificate.", "Valid until {date}" : "Valid until {date}", "Delete" : "Delete", @@ -123,17 +125,20 @@ "SSL" : "SSL", "TLS" : "TLS", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "The PHP module 'fileinfo' is missing. We strongly recommend enabling this module to get best results with mime-type detection.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information.", "System locale can not be set to a one which supports UTF-8." : "System locale can not be set to a one which supports UTF-8.", "This means that there might be problems with certain characters in file names." : "This means that there might be problems with certain characters in file names.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "We strongly suggest installing the required packages on your system to support one of the following locales: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>.", "All checks passed." : "All checks passed.", "Open documentation" : "Open documentation", "Allow apps to use the Share API" : "Allow apps to use the Share API", @@ -146,6 +151,7 @@ "days" : "days", "Enforce expiration date" : "Enforce expiry date", "Allow resharing" : "Allow resharing", + "Allow sharing with groups" : "Allow sharing with groups", "Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups", "Allow users to send mail notification for shared files to other users" : "Allow users to send email notification for shared files to other users", "Exclude groups from sharing" : "Exclude groups from sharing", @@ -192,6 +198,7 @@ "What to log" : "What to log", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite is used as database. For larger installations, we recommend you switch to a different database backend.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Especially when using the desktop client for file syncing, the use of SQLite is discouraged.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>.", "How to do backups" : "How to do backups", "Advanced monitoring" : "Advanced monitoring", "Performance tuning" : "Performance tuning", diff --git a/settings/personal.php b/settings/personal.php index 62a718985f8..6c2fccbec9b 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -47,13 +47,14 @@ OC_Util::addScript('settings', 'certificates'); OC_Util::addStyle( 'settings', 'settings' ); \OC_Util::addVendorScript('strengthify/jquery.strengthify'); \OC_Util::addVendorStyle('strengthify/strengthify'); -\OC_Util::addScript('files', 'jquery.iframe-transport'); \OC_Util::addScript('files', 'jquery.fileupload'); if ($config->getSystemValue('enable_avatars', true) === true) { \OC_Util::addVendorScript('jcrop/js/jquery.Jcrop'); \OC_Util::addVendorStyle('jcrop/css/jquery.Jcrop'); } +\OC::$server->getEventDispatcher()->dispatch('OC\Settings\Personal::loadAdditionalScripts'); + // Highlight navigation entry OC::$server->getNavigationManager()->setActiveEntry('personal'); diff --git a/settings/templates/apps.php b/settings/templates/apps.php index ce6dcef842c..ecb00fb27c3 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -25,7 +25,7 @@ script( <script id="categories-template" type="text/x-handlebars-template"> {{#each this}} <li id="app-category-{{ident}}" data-category-id="{{ident}}" tabindex="0"> - <a>{{displayName}}</a> + <a href="#">{{displayName}}</a> </li> {{/each}} @@ -94,8 +94,8 @@ script( </p> {{/if}} </div><!-- end app-description-container --> - <div class="app-description-toggle-show"><?php p($l->t("Show description …"));?></div> - <div class="app-description-toggle-hide hidden"><?php p($l->t("Hide description …"));?></div> + <div class="app-description-toggle-show" role="link"><?php p($l->t("Show description …"));?></div> + <div class="app-description-toggle-hide hidden" role="link"><?php p($l->t("Hide description …"));?></div> <div class="app-dependencies update hidden"> <p><?php p($l->t('This app has an update available.')); ?></p> diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php index 3e88a5306f8..86413c61aa1 100644 --- a/tests/lib/files/view.php +++ b/tests/lib/files/view.php @@ -2424,4 +2424,24 @@ class View extends \Test\TestCase { $this->assertEquals($expected, $files); } + + public function testFilePutContentsClearsChecksum() { + $storage = new Temporary(array()); + $scanner = $storage->getScanner(); + $storage->file_put_contents('foo.txt', 'bar'); + \OC\Files\Filesystem::mount($storage, array(), '/test/'); + $scanner->scan(''); + + $view = new \OC\Files\View('/test/foo.txt'); + $view->putFileInfo('.', ['checksum' => '42']); + + $this->assertEquals('bar', $view->file_get_contents('')); + $fh = tmpfile(); + fwrite($fh, 'fooo'); + rewind($fh); + $view->file_put_contents('', $fh); + $this->assertEquals('fooo', $view->file_get_contents('')); + $data = $view->getFileInfo('.'); + $this->assertEquals('', $data->getChecksum()); + } } diff --git a/tests/lib/group.php b/tests/lib/group.php index 4bb888ed725..d3ac6d8d69e 100644 --- a/tests/lib/group.php +++ b/tests/lib/group.php @@ -32,7 +32,7 @@ class Test_Group extends \Test\TestCase { public function testSingleBackend() { $userBackend = new \Test\Util\User\Dummy(); \OC::$server->getUserManager()->registerBackend($userBackend); - OC_Group::useBackend(new OC_Group_Dummy()); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); $group1 = $this->getUniqueID(); $group2 = $this->getUniqueID(); @@ -72,7 +72,7 @@ class Test_Group extends \Test\TestCase { public function testNoEmptyGIDs() { - OC_Group::useBackend(new OC_Group_Dummy()); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); $emptyGroup = null; $this->assertFalse(OC_Group::createGroup($emptyGroup)); @@ -80,7 +80,7 @@ class Test_Group extends \Test\TestCase { public function testNoGroupsTwice() { - OC_Group::useBackend(new OC_Group_Dummy()); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); $group = $this->getUniqueID(); OC_Group::createGroup($group); @@ -92,7 +92,7 @@ class Test_Group extends \Test\TestCase { public function testDontDeleteAdminGroup() { - OC_Group::useBackend(new OC_Group_Dummy()); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); $adminGroup = 'admin'; OC_Group::createGroup($adminGroup); @@ -102,7 +102,7 @@ class Test_Group extends \Test\TestCase { public function testDontAddUserToNonexistentGroup() { - OC_Group::useBackend(new OC_Group_Dummy()); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); $groupNonExistent = 'notExistent'; $user = $this->getUniqueID(); @@ -111,7 +111,7 @@ class Test_Group extends \Test\TestCase { } public function testUsersInGroup() { - OC_Group::useBackend(new OC_Group_Dummy()); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); $userBackend = new \Test\Util\User\Dummy(); \OC::$server->getUserManager()->registerBackend($userBackend); @@ -143,8 +143,8 @@ class Test_Group extends \Test\TestCase { public function testMultiBackend() { $userBackend = new \Test\Util\User\Dummy(); \OC::$server->getUserManager()->registerBackend($userBackend); - $backend1 = new OC_Group_Dummy(); - $backend2 = new OC_Group_Dummy(); + $backend1 = new \Test\Util\Group\Dummy(); + $backend2 = new \Test\Util\Group\Dummy(); OC_Group::useBackend($backend1); OC_Group::useBackend($backend2); diff --git a/tests/lib/group/dummy.php b/tests/lib/group/dummy.php index 6836f89d3fe..eaa299c39af 100644 --- a/tests/lib/group/dummy.php +++ b/tests/lib/group/dummy.php @@ -28,6 +28,6 @@ class Test_Group_Dummy extends Test_Group_Backend { protected function setUp() { parent::setUp(); - $this->backend=new OC_Group_Dummy(); + $this->backend=new \Test\Util\Group\Dummy(); } } diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php index 6cf473b9156..410e11114c4 100644 --- a/tests/lib/group/manager.php +++ b/tests/lib/group/manager.php @@ -65,7 +65,7 @@ class Manager extends \Test\TestCase { } public function testGetDeleted() { - $backend = new \OC_Group_Dummy(); + $backend = new \Test\Util\Group\Dummy(); $backend->createGroup('group1'); /** diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php index 1965d80c580..a07e90effc3 100644 --- a/tests/lib/share/share.php +++ b/tests/lib/share/share.php @@ -63,7 +63,7 @@ class Test_Share extends \Test\TestCase { \OC::$server->getUserManager()->createUser($this->groupAndUser, 'pass'); OC_User::setUserId($this->user1); OC_Group::clearBackends(); - OC_Group::useBackend(new OC_Group_Dummy); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); $this->group1 = $this->getUniqueID('group1_'); $this->group2 = $this->getUniqueID('group2_'); OC_Group::createGroup($this->group1); diff --git a/tests/lib/share20/managertest.php b/tests/lib/share20/managertest.php index 197fa874388..7d79150449c 100644 --- a/tests/lib/share20/managertest.php +++ b/tests/lib/share20/managertest.php @@ -647,7 +647,7 @@ class ManagerTest extends \Test\TestCase { $data[] = [$this->createShare(null, \OCP\Share::SHARE_TYPE_GROUP, $limitedPermssions, $group0, $user0, $user0, 17, null, null), 'Cannot increase permissions of path', true]; $data[] = [$this->createShare(null, \OCP\Share::SHARE_TYPE_LINK, $limitedPermssions, null, $user0, $user0, 3, null, null), 'Cannot increase permissions of path', true]; - $nonMoveableMountPermssions = $this->getMock('\OCP\Files\File'); + $nonMoveableMountPermssions = $this->getMock('\OCP\Files\Folder'); $nonMoveableMountPermssions->method('isShareable')->willReturn(true); $nonMoveableMountPermssions->method('getPermissions')->willReturn(\OCP\Constants::PERMISSION_READ); $nonMoveableMountPermssions->method('getPath')->willReturn('path'); @@ -2477,7 +2477,9 @@ class ManagerTest extends \Test\TestCase { public function testMoveShareUser() { $share = $this->manager->newShare(); - $share->setShareType(\OCP\Share::SHARE_TYPE_USER); + $share->setShareType(\OCP\Share::SHARE_TYPE_USER) + ->setId('42') + ->setProviderId('foo'); $share->setSharedWith('recipient'); @@ -2508,7 +2510,9 @@ class ManagerTest extends \Test\TestCase { public function testMoveShareGroup() { $share = $this->manager->newShare(); - $share->setShareType(\OCP\Share::SHARE_TYPE_GROUP); + $share->setShareType(\OCP\Share::SHARE_TYPE_GROUP) + ->setId('42') + ->setProviderId('foo'); $group = $this->getMock('\OCP\IGroup'); $share->setSharedWith('group'); diff --git a/tests/lib/traits/encryptiontrait.php b/tests/lib/traits/encryptiontrait.php index 2c1c585d6d4..5e2ca4e561f 100644 --- a/tests/lib/traits/encryptiontrait.php +++ b/tests/lib/traits/encryptiontrait.php @@ -63,7 +63,7 @@ trait EncryptionTrait { $keyManager = $container->query('KeyManager'); /** @var Setup $userSetup */ $userSetup = $container->query('UserSetup'); - $userSetup->setupServerSide($name, $password); + $userSetup->setupUser($name, $password); $keyManager->init($name, $password); } diff --git a/lib/private/group/dummy.php b/tests/lib/util/group/dummy.php index 74a19a90592..e72be827d8a 100644 --- a/lib/private/group/dummy.php +++ b/tests/lib/util/group/dummy.php @@ -27,10 +27,14 @@ * */ +namespace Test\Util\Group; + +use OC_Group_Backend; + /** * dummy group backend, does not keep state, only for testing use */ -class OC_Group_Dummy extends OC_Group_Backend { +class Dummy extends OC_Group_Backend { private $groups=array(); /** * Try to create a new group |