diff options
254 files changed, 2077 insertions, 827 deletions
diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php index 9cfb2c465e4..ff928ccede4 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php @@ -41,7 +41,7 @@ class TestLogger extends Log { //disable original constructor } - public function log($level, $message, array $context = array()) { + public function log(int $level, string $message, array $context = array()) { $this->level = $level; $this->message = $message; } diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index 68e9ced437f..fdb28378180 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Herunterladen", "Rename" : "Umbenennen", "Move or copy" : "Verschieben oder kopieren", + "Copy" : "Kopieren", "Target folder" : "Zielordner", "Delete" : "Löschen", "Disconnect storage" : "Speicher trennen", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index 5cf98a8f143..c3b57aab644 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -23,6 +23,7 @@ "Download" : "Herunterladen", "Rename" : "Umbenennen", "Move or copy" : "Verschieben oder kopieren", + "Copy" : "Kopieren", "Target folder" : "Zielordner", "Delete" : "Löschen", "Disconnect storage" : "Speicher trennen", diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 5273290ba83..972587fdd1b 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Herunterladen", "Rename" : "Umbenennen", "Move or copy" : "Verschieben oder kopieren", + "Copy" : "Kopieren", "Target folder" : "Zielordner", "Delete" : "Löschen", "Disconnect storage" : "Speicher trennen", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 1d7a4aaffb4..d44fbd6bc0f 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -23,6 +23,7 @@ "Download" : "Herunterladen", "Rename" : "Umbenennen", "Move or copy" : "Verschieben oder kopieren", + "Copy" : "Kopieren", "Target folder" : "Zielordner", "Delete" : "Löschen", "Disconnect storage" : "Speicher trennen", diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index cbe3bcb9b7a..c48f194eaf2 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Download", "Rename" : "Rename", "Move or copy" : "Move or copy", + "Copy" : "Copy", "Target folder" : "Target folder", "Delete" : "Delete", "Disconnect storage" : "Disconnect storage", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 0a994ff551b..f62bffdbbe9 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -23,6 +23,7 @@ "Download" : "Download", "Rename" : "Rename", "Move or copy" : "Move or copy", + "Copy" : "Copy", "Target folder" : "Target folder", "Delete" : "Delete", "Disconnect storage" : "Disconnect storage", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index ec3708417d8..09b3509d38e 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Descargar", "Rename" : "Renombrar", "Move or copy" : "Mover o copiar", + "Copy" : "Copiar", "Target folder" : "Directorio destino", "Delete" : "Eliminar", "Disconnect storage" : "Desconectar almacenamiento", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index f7982515bab..82f283d4da5 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -23,6 +23,7 @@ "Download" : "Descargar", "Rename" : "Renombrar", "Move or copy" : "Mover o copiar", + "Copy" : "Copiar", "Target folder" : "Directorio destino", "Delete" : "Eliminar", "Disconnect storage" : "Desconectar almacenamiento", diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js index cc193b8f81b..7bba42e59a2 100644 --- a/apps/files/l10n/es_MX.js +++ b/apps/files/l10n/es_MX.js @@ -147,6 +147,7 @@ OC.L10N.register( "Tags" : "Etiquetas", "Deleted files" : "Archivos borrados", "Text file" : "Archivo de texto", - "New text file.txt" : "Nuevo ArchivoDeTexto.txt" + "New text file.txt" : "Nuevo ArchivoDeTexto.txt", + "Move" : "Mover" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json index e1845b2dec3..f3030fdb873 100644 --- a/apps/files/l10n/es_MX.json +++ b/apps/files/l10n/es_MX.json @@ -145,6 +145,7 @@ "Tags" : "Etiquetas", "Deleted files" : "Archivos borrados", "Text file" : "Archivo de texto", - "New text file.txt" : "Nuevo ArchivoDeTexto.txt" + "New text file.txt" : "Nuevo ArchivoDeTexto.txt", + "Move" : "Mover" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 57a1843242f..69ffe56a47b 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Télécharger", "Rename" : "Renommer", "Move or copy" : "Déplacer ou copier", + "Copy" : "Copier", "Target folder" : "Dossier cible", "Delete" : "Supprimer", "Disconnect storage" : "Déconnecter ce support de stockage", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 5513e2e36e2..b08a5ceaf45 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -23,6 +23,7 @@ "Download" : "Télécharger", "Rename" : "Renommer", "Move or copy" : "Déplacer ou copier", + "Copy" : "Copier", "Target folder" : "Dossier cible", "Delete" : "Supprimer", "Disconnect storage" : "Déconnecter ce support de stockage", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index 8f35ad79cee..f53046b7613 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Scarica", "Rename" : "Rinomina", "Move or copy" : "Sposta o copia", + "Copy" : "Copia", "Target folder" : "Cartella di destinazione", "Delete" : "Elimina", "Disconnect storage" : "Disconnetti archiviazione", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 12a8dd38ba2..68b648c5a6e 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -23,6 +23,7 @@ "Download" : "Scarica", "Rename" : "Rinomina", "Move or copy" : "Sposta o copia", + "Copy" : "Copia", "Target folder" : "Cartella di destinazione", "Delete" : "Elimina", "Disconnect storage" : "Disconnetti archiviazione", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 1ceb502568e..49dfae4b74b 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Baixar", "Rename" : "Renomear", "Move or copy" : "Mover ou copiar", + "Copy" : "Copiar", "Target folder" : "Pasta destino", "Delete" : "Excluir", "Disconnect storage" : "Desconectar armazenamento", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 0baeaaa5539..b3ff305091e 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -23,6 +23,7 @@ "Download" : "Baixar", "Rename" : "Renomear", "Move or copy" : "Mover ou copiar", + "Copy" : "Copiar", "Target folder" : "Pasta destino", "Delete" : "Excluir", "Disconnect storage" : "Desconectar armazenamento", diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.scss index bac89e26b09..0f52ed3b2a1 100644 --- a/apps/files_external/css/settings.css +++ b/apps/files_external/css/settings.scss @@ -18,9 +18,11 @@ #externalStorage td.status > span { display: inline-block; - height: 16px; - width: 16px; + height: 28px; + width: 28px; vertical-align: text-bottom; + border-radius: 50%; + cursor: pointer; } td.mountPoint, td.backend { width:160px; } @@ -30,9 +32,25 @@ td.mountPoint, td.backend { width:160px; } #addMountPoint>td.applicable { visibility:hidden; } #addMountPoint>td.hidden { visibility:hidden; } -#externalStorage .icon-settings { - padding: 11px 20px; - vertical-align: text-bottom; +#externalStorage td { + height: 50px; + &.mountOptionsToggle, + &.remove, + &.save { + position: relative; + padding: 0 !important; + width: 44px; + [class^='icon-'], + [class*=' icon-'] { + opacity: 0.5; + padding: 14px; + vertical-align: text-bottom; + cursor: pointer; + &:hover { + opacity: 1; + } + } + } } #selectBackend { @@ -57,9 +75,9 @@ td.mountPoint, td.backend { width:160px; } } #externalStorage td.configuration label { - min-width: 144px; /* 130px plus 2x7px padding */ - display: inline-block; - margin-right: 6px; + width: 100%; + display: inline-flex; + align-items: center; } #externalStorage td.configuration input.disabled-success { @@ -72,10 +90,6 @@ td.mountPoint, td.backend { width:160px; } top: 3px; } -#externalStorage td.status .success { - border-radius: 50%; -} - #userMountingBackends { padding-left: 25px; } @@ -111,10 +125,6 @@ td.mountPoint, td.backend { width:160px; } width: auto; } -#externalStorage .mountOptionsDropdown { - margin-right: 40px; -} - .nav-icon-external-storage { background-image: url('../img/app-dark.svg?v=1'); } diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 12ad285c52b..014dd7a3c2b 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -12,31 +12,43 @@ // TODO: move to a separate file var MOUNT_OPTIONS_DROPDOWN_TEMPLATE = - '<div class="drop dropdown mountOptionsDropdown">' + + '<div class="popovermenu open">'+ // FIXME: options are hard-coded for now - ' <div class="optionRow">' + - ' <input id="mountOptionsEncrypt" name="encrypt" type="checkbox" value="true" checked="checked"/>' + - ' <label for="mountOptionsEncrypt">{{t "files_external" "Enable encryption"}}</label>' + - ' </div>' + - ' <div class="optionRow">' + - ' <input id="mountOptionsPreviews" name="previews" type="checkbox" value="true" checked="checked"/>' + - ' <label for="mountOptionsPreviews">{{t "files_external" "Enable previews"}}</label>' + - ' </div>' + - ' <div class="optionRow">' + - ' <input id="mountOptionsSharing" name="enable_sharing" type="checkbox" value="true"/>' + - ' <label for="mountOptionsSharing">{{t "files_external" "Enable sharing"}}</label>' + - ' </div>' + - ' <div class="optionRow">' + - ' <label for="mountOptionsFilesystemCheck">{{t "files_external" "Check for changes"}}</label>' + - ' <select id="mountOptionsFilesystemCheck" name="filesystem_check_changes" data-type="int">' + - ' <option value="0">{{t "files_external" "Never"}}</option>' + - ' <option value="1" selected="selected">{{t "files_external" "Once every direct access"}}</option>' + - ' </select>' + - ' </div>' + - ' <div class="optionRow">' + - ' <input id="mountOptionsEncoding" name="encoding_compatibility" type="checkbox" value="true"/>' + - ' <label for="mountOptionsEncoding">{{mountOptionsEncodingLabel}}</label>' + - ' </div>' + + ' <ul>'+ + ' <li class="optionRow">'+ + ' <span class="menuitem">'+ + ' <input id="mountOptionsEncrypt" class="checkbox" name="encrypt" type="checkbox" value="true" checked="checked"/>'+ + ' <label for="mountOptionsEncrypt">{{t "files_external" "Enable encryption"}}</label>'+ + ' </span>'+ + ' </li>'+ + ' <li class="optionRow">'+ + ' <span class="menuitem">'+ + ' <input id="mountOptionsPreviews" class="checkbox" name="previews" type="checkbox" value="true" checked="checked"/>'+ + ' <label for="mountOptionsPreviews">{{t "files_external" "Enable previews"}}</label>'+ + ' </span>'+ + ' </li>'+ + ' <li class="optionRow">'+ + ' <span class="menuitem">'+ + ' <input id="mountOptionsSharing" class="checkbox" name="enable_sharing" type="checkbox" value="true"/>'+ + ' <label for="mountOptionsSharing">{{t "files_external" "Enable sharing"}}</label>'+ + ' </span>'+ + ' </li>'+ + ' <li class="optionRow">'+ + ' <span class="menuitem icon-search">'+ + ' <label for="mountOptionsFilesystemCheck">{{t "files_external" "Check for changes"}}</label>'+ + ' <select id="mountOptionsFilesystemCheck" name="filesystem_check_changes" data-type="int">'+ + ' <option value="0">{{t "files_external" "Never"}}</option>'+ + ' <option value="1" selected="selected">{{t "files_external" "Once every direct access"}}</option>'+ + ' </select>'+ + ' </span>'+ + ' </li>'+ + ' <li class="optionRow">'+ + ' <span class="menuitem">'+ + ' <input id="mountOptionsEncoding" class="checkbox" name="encoding_compatibility" type="checkbox" value="true"/>'+ + ' <label for="mountOptionsEncoding">{{mountOptionsEncodingLabel}}</label>'+ + ' </span>'+ + ' </li>'+ + ' </ul>'+ '</div>'; /** @@ -716,15 +728,15 @@ MountConfigListView.prototype = _.extend({ self.recheckStorageConfig($(this).closest('tr')); }); - this.$el.on('click', 'td.remove>img', function() { + this.$el.on('click', 'td.remove>.icon-delete', function() { self.deleteStorageConfig($(this).closest('tr')); }); - this.$el.on('click', 'td.save>img', function () { + this.$el.on('click', 'td.save>.icon-checkmark', function () { self.saveStorageConfig($(this).closest('tr')); }); - this.$el.on('click', 'td.mountOptionsToggle>img', function() { + this.$el.on('click', 'td.mountOptionsToggle>.icon-settings-dark', function() { self._showMountOptionsDropdown($(this).closest('tr')); }); @@ -1220,24 +1232,28 @@ MountConfigListView.prototype = _.extend({ */ updateStatus: function($tr, status, message) { var $statusSpan = $tr.find('.status span'); - $statusSpan.removeClass('loading-small success indeterminate error'); switch (status) { case null: // remove status break; case StorageConfig.Status.IN_PROGRESS: - $statusSpan.addClass('loading-small'); + $statusSpan.attr('class', 'icon-loading-small'); break; case StorageConfig.Status.SUCCESS: - $statusSpan.addClass('success'); + $statusSpan.attr('class', 'success icon-checkmark-white'); break; case StorageConfig.Status.INDETERMINATE: - $statusSpan.addClass('indeterminate'); + $statusSpan.attr('class', 'indeterminate icon-info-white'); break; default: - $statusSpan.addClass('error'); + $statusSpan.attr('class', 'error icon-error-white'); + } + if (typeof message === 'string') { + $statusSpan.attr('title', message); + $statusSpan.tooltip(); + } else { + $statusSpan.tooltip('destroy'); } - $statusSpan.attr('data-original-title', (typeof message === 'string') ? message : ''); }, /** @@ -1279,11 +1295,6 @@ MountConfigListView.prototype = _.extend({ * @param {Object} $tr configuration row */ _showMountOptionsDropdown: function($tr) { - if (this._preventNextDropdown) { - // prevented because the click was on the toggle - this._preventNextDropdown = false; - return; - } var self = this; var storage = this.getStorageConfig($tr); var $toggle = $tr.find('.mountOptionsToggle'); @@ -1300,15 +1311,7 @@ MountConfigListView.prototype = _.extend({ dropDown.show($toggle, storage.mountOptions || [], visibleOptions); $('body').on('mouseup.mountOptionsDropdown', function(event) { var $target = $(event.target); - if ($toggle.has($target).length) { - // why is it always so hard to make dropdowns behave ? - // this prevents the click on the toggle to cause - // the dropdown to reopen itself - // (preventDefault doesn't work here because the click - // event is already in the queue and cannot be cancelled) - self._preventNextDropdown = true; - } - if ($target.closest('.dropdown').length) { + if ($target.closest('.popovermenu').length) { return; } dropDown.hide(); diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js index bb0b15ac9ae..2485ec7c9d9 100644 --- a/apps/files_external/l10n/de.js +++ b/apps/files_external/l10n/de.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "Client-ID", "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Name des Mieters", "Identity endpoint URL" : "Identität Endpunkt-URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domain", "Rackspace" : "Rackspace", "API key" : "API-Schlüssel", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Administrator.", "External storage support" : "Unterstützung für externen Speicher", + "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Du hast keine Berechtigung dies zu tun.", "Name" : "Name", "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json index 426cbe60671..a1166ff46f4 100644 --- a/apps/files_external/l10n/de.json +++ b/apps/files_external/l10n/de.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "Client-ID", "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Name des Mieters", "Identity endpoint URL" : "Identität Endpunkt-URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domain", "Rackspace" : "Rackspace", "API key" : "API-Schlüssel", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Administrator.", "External storage support" : "Unterstützung für externen Speicher", + "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Du hast keine Berechtigung dies zu tun.", "Name" : "Name", "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js index 998ca340675..2cadb7bc1ea 100644 --- a/apps/files_external/l10n/de_DE.js +++ b/apps/files_external/l10n/de_DE.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "Client-ID", "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Name des Mieters", "Identity endpoint URL" : "Identität Endpunkt-URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domain", "Rackspace" : "Rackspace", "API key" : "API-Schlüssel", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Administrator.", "External storage support" : "Unterstützung für externen Speicher", + "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung dies zu tun.", "Name" : "Name", "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json index 390251cf2d1..27d212813e8 100644 --- a/apps/files_external/l10n/de_DE.json +++ b/apps/files_external/l10n/de_DE.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "Client-ID", "Client secret" : "Geheime Zeichenkette des Client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Name des Mieters", "Identity endpoint URL" : "Identität Endpunkt-URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domain", "Rackspace" : "Rackspace", "API key" : "API-Schlüssel", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Administrator.", "External storage support" : "Unterstützung für externen Speicher", + "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung dies zu tun.", "Name" : "Name", "Storage type" : "Speichertyp", "Scope" : "Anwendungsbereich", diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js index 56a01bbe011..6de22144156 100644 --- a/apps/files_external/l10n/en_GB.js +++ b/apps/files_external/l10n/en_GB.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "Client ID", "Client secret" : "Client secret", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Tenant name", "Identity endpoint URL" : "Identity endpoint URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domain", "Rackspace" : "Rackspace", "API key" : "API key", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "External storage support" : "External storage support", + "No external storage configured or you don't have the permission to configure them" : "No external storage configured or you don't have the permission to configure them", "Name" : "Name", "Storage type" : "Storage type", "Scope" : "Scope", diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json index 61f44824446..644c7d4b5d5 100644 --- a/apps/files_external/l10n/en_GB.json +++ b/apps/files_external/l10n/en_GB.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "Client ID", "Client secret" : "Client secret", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Tenant name", "Identity endpoint URL" : "Identity endpoint URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domain", "Rackspace" : "Rackspace", "API key" : "API key", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.", "External storage support" : "External storage support", + "No external storage configured or you don't have the permission to configure them" : "No external storage configured or you don't have the permission to configure them", "Name" : "Name", "Storage type" : "Storage type", "Scope" : "Scope", diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js index cc68ebf7711..e86c5784a3e 100644 --- a/apps/files_external/l10n/es.js +++ b/apps/files_external/l10n/es.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "ID de Cliente", "Client secret" : "Cliente secreto", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nombre del inquilino", "Identity endpoint URL" : "Identidad de punto final URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Dominio", "Rackspace" : "Espacio de Rack", "API key" : "Clave API", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP desde PHP no esta habilitado o instalado. Montar el %s no ha sido posible. Por favor consulta al administrador de tu sistema para que lo instale.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no está instalado. El montaje de %s no es posible. Por favor, pregunte a su administrador del sistema para instalarlo.", "External storage support" : "Soporte de almacenamiento externo", + "No external storage configured or you don't have the permission to configure them" : "No se ha configurado ningún almacenamiento externo o no tienes permiso para configurarlos", "Name" : "Nombre", "Storage type" : "Tipo de almacenamiento", "Scope" : "Ámbito", diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json index 679be55d174..86e4bb54142 100644 --- a/apps/files_external/l10n/es.json +++ b/apps/files_external/l10n/es.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "ID de Cliente", "Client secret" : "Cliente secreto", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nombre del inquilino", "Identity endpoint URL" : "Identidad de punto final URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Dominio", "Rackspace" : "Espacio de Rack", "API key" : "Clave API", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP desde PHP no esta habilitado o instalado. Montar el %s no ha sido posible. Por favor consulta al administrador de tu sistema para que lo instale.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no está instalado. El montaje de %s no es posible. Por favor, pregunte a su administrador del sistema para instalarlo.", "External storage support" : "Soporte de almacenamiento externo", + "No external storage configured or you don't have the permission to configure them" : "No se ha configurado ningún almacenamiento externo o no tienes permiso para configurarlos", "Name" : "Nombre", "Storage type" : "Tipo de almacenamiento", "Scope" : "Ámbito", diff --git a/apps/files_external/l10n/es_MX.js b/apps/files_external/l10n/es_MX.js index 88f19e10404..ede753727e8 100644 --- a/apps/files_external/l10n/es_MX.js +++ b/apps/files_external/l10n/es_MX.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "ID del cliente", "Client secret" : "Secreto del cliente", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nombre de inquilino", "Identity endpoint URL" : "URL del punto de enlace de Identidad", + "OpenStack v3" : "OpenStack v3", "Domain" : "Dominio", "Rackspace" : "Rackspace", "API key" : "Llave de API", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ", "External storage support" : "Soporte de almacenamiento externo", + "No external storage configured or you don't have the permission to configure them" : "No se ha configurado almacenamiento externo o bien no cuentas con los permisos para configurarlos", "Name" : "Nombre", "Storage type" : "Tipo de almacenamiento", "Scope" : "Alcance", @@ -119,7 +122,12 @@ OC.L10N.register( "Delete" : "Borrar", "Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo", "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo", + "Step 1 failed. Exception: %s" : "Paso 1 falló. Excepción: %s", + "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s", + "Dropbox App Configuration" : "Configuración de la aplicación Dropbox", "OpenStack" : "OpenStack", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive", "No external storage configured" : "No se ha configurado el almacenamiento externo", "You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales" }, diff --git a/apps/files_external/l10n/es_MX.json b/apps/files_external/l10n/es_MX.json index 7d1ed5424c1..88e8d087c04 100644 --- a/apps/files_external/l10n/es_MX.json +++ b/apps/files_external/l10n/es_MX.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "ID del cliente", "Client secret" : "Secreto del cliente", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nombre de inquilino", "Identity endpoint URL" : "URL del punto de enlace de Identidad", + "OpenStack v3" : "OpenStack v3", "Domain" : "Dominio", "Rackspace" : "Rackspace", "API key" : "Llave de API", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ", "External storage support" : "Soporte de almacenamiento externo", + "No external storage configured or you don't have the permission to configure them" : "No se ha configurado almacenamiento externo o bien no cuentas con los permisos para configurarlos", "Name" : "Nombre", "Storage type" : "Tipo de almacenamiento", "Scope" : "Alcance", @@ -117,7 +120,12 @@ "Delete" : "Borrar", "Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo", "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo", + "Step 1 failed. Exception: %s" : "Paso 1 falló. Excepción: %s", + "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s", + "Dropbox App Configuration" : "Configuración de la aplicación Dropbox", "OpenStack" : "OpenStack", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive", "No external storage configured" : "No se ha configurado el almacenamiento externo", "You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js index d2d3003deea..d7ca0694948 100644 --- a/apps/files_external/l10n/fr.js +++ b/apps/files_external/l10n/fr.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "ID Client", "Client secret" : "Secret client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Tenant name", "Identity endpoint URL" : "Identity endpoint URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domaine", "Rackspace" : "Rackspace", "API key" : "Clé API", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Le support du FTP dans PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Merci de demander à votre administrateur de l'installer.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" n'est pas installé. Le montage de %s n'est pas possible. Merci de demander à l'administrateur système de l'installer.", "External storage support" : "Support de stockage externe", + "No external storage configured or you don't have the permission to configure them" : "Aucun stockage externe configuré ou vous n'avez pas l'autorisation de les configurer", "Name" : "Nom", "Storage type" : "Type de stockage", "Scope" : "Portée", diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json index 5920bc44def..16cabb6c6a3 100644 --- a/apps/files_external/l10n/fr.json +++ b/apps/files_external/l10n/fr.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "ID Client", "Client secret" : "Secret client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Tenant name", "Identity endpoint URL" : "Identity endpoint URL", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domaine", "Rackspace" : "Rackspace", "API key" : "Clé API", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Le support du FTP dans PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Merci de demander à votre administrateur de l'installer.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" n'est pas installé. Le montage de %s n'est pas possible. Merci de demander à l'administrateur système de l'installer.", "External storage support" : "Support de stockage externe", + "No external storage configured or you don't have the permission to configure them" : "Aucun stockage externe configuré ou vous n'avez pas l'autorisation de les configurer", "Name" : "Nom", "Storage type" : "Type de stockage", "Scope" : "Portée", diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js index 0c2be2fd9e4..29da03b6e70 100644 --- a/apps/files_external/l10n/it.js +++ b/apps/files_external/l10n/it.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "ID client", "Client secret" : "Segreto del client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nome tenant", "Identity endpoint URL" : "URL endpoint delle identità", + "OpenStack v3" : "OpenStack v3", "Domain" : "Dominio", "Rackspace" : "Rackspace", "API key" : "Chiave API", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Il supporto FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "External storage support" : "Supporto archiviazioni esterne", + "No external storage configured or you don't have the permission to configure them" : "Nessuna archiviazione esterna configurata o non hai i permessi per configurarle", "Name" : "Nome", "Storage type" : "Tipo di archiviazione", "Scope" : "Ambito", diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json index 9e90ca627ee..84cd9add498 100644 --- a/apps/files_external/l10n/it.json +++ b/apps/files_external/l10n/it.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "ID client", "Client secret" : "Segreto del client", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nome tenant", "Identity endpoint URL" : "URL endpoint delle identità", + "OpenStack v3" : "OpenStack v3", "Domain" : "Dominio", "Rackspace" : "Rackspace", "API key" : "Chiave API", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Il supporto FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.", "External storage support" : "Supporto archiviazioni esterne", + "No external storage configured or you don't have the permission to configure them" : "Nessuna archiviazione esterna configurata o non hai i permessi per configurarle", "Name" : "Nome", "Storage type" : "Tipo di archiviazione", "Scope" : "Ambito", diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index 4cefa6527a6..c7a199f9853 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -56,8 +56,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "ID do Cliente", "Client secret" : "Segredo do cliente", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nome do inquilino", "Identity endpoint URL" : "URL do destino da identidade", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domínio", "Rackspace" : "Espaço no rack", "API key" : "Chave API", @@ -100,6 +102,7 @@ OC.L10N.register( "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte FTP no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", "External storage support" : "Suporte a armazenamento externo", + "No external storage configured or you don't have the permission to configure them" : "Sem armazenamento externo configurado ou você não tem permissão para configurá-los", "Name" : "Nome", "Storage type" : "Tipo de armazenamento", "Scope" : "Alcance", diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index 4d702fd3872..4e632ff93f3 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -54,8 +54,10 @@ "OAuth2" : "OAuth2", "Client ID" : "ID do Cliente", "Client secret" : "Segredo do cliente", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Nome do inquilino", "Identity endpoint URL" : "URL do destino da identidade", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domínio", "Rackspace" : "Espaço no rack", "API key" : "Chave API", @@ -98,6 +100,7 @@ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte FTP no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", "External storage support" : "Suporte a armazenamento externo", + "No external storage configured or you don't have the permission to configure them" : "Sem armazenamento externo configurado ou você não tem permissão para configurá-los", "Name" : "Nome", "Storage type" : "Tipo de armazenamento", "Scope" : "Alcance", diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php index 58a6f65990f..f8fd37a4d48 100644 --- a/apps/files_external/lib/Lib/Storage/SMB.php +++ b/apps/files_external/lib/Lib/Storage/SMB.php @@ -152,7 +152,13 @@ class SMB extends Common implements INotifyStorage { $this->statCache[$path . '/' . $file->getName()] = $file; } return array_filter($files, function (IFileInfo $file) { - return !$file->isHidden(); + try { + return !$file->isHidden(); + } catch (ForbiddenException $e) { + return false; + } catch (NotFoundException $e) { + return false; + } }); } catch (ConnectException $e) { throw new StorageNotAvailableException($e->getMessage(), $e->getCode(), $e); @@ -226,8 +232,12 @@ class SMB extends Common implements INotifyStorage { $highestMTime = 0; $files = $this->share->dir($this->root); foreach ($files as $fileInfo) { - if ($fileInfo->getMTime() > $highestMTime) { - $highestMTime = $fileInfo->getMTime(); + try { + if ($fileInfo->getMTime() > $highestMTime) { + $highestMTime = $fileInfo->getMTime(); + } + } catch (NotFoundException $e) { + // Ignore this, can happen on unavailable DFS shares } } return $highestMTime; diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php index 11b3451c32e..895be719ab4 100644 --- a/apps/files_external/templates/settings.php +++ b/apps/files_external/templates/settings.php @@ -106,6 +106,7 @@ <?php if ($_['visibilityType'] === BackendService::VISIBILITY_ADMIN) print_unescaped('<th>'.$l->t('Available for').'</th>'); ?> <th> </th> <th> </th> + <th> </th> </tr> </thead> <tbody> @@ -115,7 +116,7 @@ <?php endif; ?> > <td class="status"> - <span></span> + <span data-placement="right" title="<?php p($l->t('Click to recheck the configuration')); ?>"></span> </td> <td class="mountPoint"><input type="text" name="mountPoint" value="" placeholder="<?php p($l->t('Folder name')); ?>"> @@ -148,25 +149,14 @@ </td> <?php endif; ?> <td class="mountOptionsToggle hidden"> - <img class="svg" - title="<?php p($l->t('Advanced settings')); ?>" - alt="<?php p($l->t('Advanced settings')); ?>" - src="<?php print_unescaped(image_path('core', 'actions/settings.svg')); ?>" - /> + <div class="icon-settings-dark" title="<?php p($l->t('Advanced settings')); ?>"></div> <input type="hidden" class="mountOptions" value="" /> </td> <td class="remove hidden"> - <img class="svg" - alt="<?php p($l->t('Delete')); ?>" - title="<?php p($l->t('Delete')); ?>" - src="<?php print_unescaped(image_path('core', 'actions/delete.svg')); ?>" - /> + <div class="icon-delete" title="<?php p($l->t('Delete')); ?>"></div> </td> <td class="save hidden"> - <img alt="<?php p($l->t('Save')); ?>" - title="<?php p($l->t('Save')); ?>" - src="<?php print_unescaped(image_path('core', 'actions/checkmark.svg')); ?>" - /> + <div class="icon-checkmark" title="<?php p($l->t('Save')); ?>"></div> </td> </tr> </tbody> diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js index d6b96a47189..56bdcff8345 100644 --- a/apps/files_external/tests/js/settingsSpec.js +++ b/apps/files_external/tests/js/settingsSpec.js @@ -45,9 +45,16 @@ describe('OCA.External.Settings tests', function() { '<td class="applicable">' + '<input type="hidden" class="applicableUsers">' + '</td>' + - '<td class="mountOptionsToggle"><input type="hidden" class="mountOptions"/><img class="svg action"/></td>' + - '<td class="remove"><img alt="Delete" title="Delete" class="svg action"/></td>' + - '<td class="save"><img alt="Save" title="Save" class="svg action"/></td>' + + '<td class="mountOptionsToggle">'+ + '<div class="icon-settings-dark" title="Advanced settings" deluminate_imagetype="unknown"></div>'+ + '<input type="hidden" class="mountOptions"/>'+ + '</td>'+ + '<td class="remove">'+ + '<div class="icon-delete" title="Delete" deluminate_imagetype="unknown"></div>'+ + '</td>'+ + '<td class="save">'+ + '<div class="icon-checkmark" title="Save" deluminate_imagetype="unknown"></div>'+ + '</td>'+ '</tr>' + '</tbody>' + '</table>' @@ -206,7 +213,7 @@ describe('OCA.External.Settings tests', function() { expect($mountOptionsField.length).toEqual(1); $mountOptionsField.val(JSON.stringify({previews:true})); - var $saveButton = $tr.find('td.save img'); + var $saveButton = $tr.find('td.save .icon-checkmark'); $saveButton.click(); expect(fakeServer.requests.length).toEqual(1); @@ -231,17 +238,17 @@ describe('OCA.External.Settings tests', function() { // TODO: respond and check data-id }); - it('saves storage after closing mount options dropdown', function() { - $tr.find('.mountOptionsToggle img').click(); + it('saves storage after closing mount options popovermenu', function() { + $tr.find('.mountOptionsToggle .icon-settings-dark').click(); $tr.find('[name=previews]').trigger(new $.Event('keyup', {keyCode: 97})); $tr.find('input[data-parameter=field1]').val('test'); - // does not save inside the dropdown + // does not save inside the popovermenu expect(fakeServer.requests.length).toEqual(0); $('body').mouseup(); - // but after closing the dropdown + // but after closing the popovermenu expect(fakeServer.requests.length).toEqual(1); }); // TODO: status indicator @@ -313,7 +320,7 @@ describe('OCA.External.Settings tests', function() { describe('recheck storages', function() { // TODO }); - describe('mount options dropdown', function() { + describe('mount options popovermenu', function() { var $tr; var $td; @@ -323,45 +330,45 @@ describe('OCA.External.Settings tests', function() { selectBackend('\\OC\\TestBackend'); }); - it('shows dropdown when clicking on toggle button, hides when clicking outside', function() { - $td.find('img').click(); + it('shows popovermenu when clicking on toggle button, hides when clicking outside', function() { + $td.find('.icon-settings-dark').click(); - expect($td.find('.dropdown').length).toEqual(1); + expect($td.find('.popovermenu.open').length).toEqual(1); $('body').mouseup(); - expect($td.find('.dropdown').length).toEqual(0); + expect($td.find('.popovermenu.open').length).toEqual(0); }); it('doesnt show the encryption option when encryption is disabled', function () { view._encryptionEnabled = false; - $td.find('img').click(); + $td.find('.icon-settings-dark').click(); - expect($td.find('.dropdown [name=encrypt]:visible').length).toEqual(0); + expect($td.find('.popovermenu [name=encrypt]:visible').length).toEqual(0); $('body').mouseup(); - expect($td.find('.dropdown').length).toEqual(0); + expect($td.find('.popovermenu.open').length).toEqual(0); }); it('reads config from mountOptions field', function() { $tr.find('input.mountOptions').val(JSON.stringify({previews:false})); - $td.find('img').click(); - expect($td.find('.dropdown [name=previews]').prop('checked')).toEqual(false); + $td.find('.icon-settings-dark').click(); + expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(false); $('body').mouseup(); $tr.find('input.mountOptions').val(JSON.stringify({previews:true})); - $td.find('img').click(); - expect($td.find('.dropdown [name=previews]').prop('checked')).toEqual(true); + $td.find('.icon-settings-dark').click(); + expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(true); }); it('writes config into mountOptions field', function() { - $td.find('img').click(); + $td.find('.icon-settings-dark').click(); // defaults to true - var $field = $td.find('.dropdown [name=previews]'); + var $field = $td.find('.popovermenu [name=previews]'); expect($field.prop('checked')).toEqual(true); - $td.find('.dropdown [name=filesystem_check_changes]').val(0); + $td.find('.popovermenu [name=filesystem_check_changes]').val(0); $('body').mouseup(); expect(JSON.parse($tr.find('input.mountOptions').val())).toEqual({ diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php index a68db3421b6..0388c7990ec 100644 --- a/apps/files_sharing/composer/composer/autoload_classmap.php +++ b/apps/files_sharing/composer/composer/autoload_classmap.php @@ -53,5 +53,7 @@ return array( 'OCA\\Files_Sharing\\ShareBackend\\Folder' => $baseDir . '/../lib/ShareBackend/Folder.php', 'OCA\\Files_Sharing\\SharedMount' => $baseDir . '/../lib/SharedMount.php', 'OCA\\Files_Sharing\\SharedStorage' => $baseDir . '/../lib/SharedStorage.php', + 'OCA\\Files_Sharing\\Template\\ExternalShareMenuAction' => $baseDir . '/../lib/Template/ExternalShareMenuAction.php', + 'OCA\\Files_Sharing\\Template\\LinkMenuAction' => $baseDir . '/../lib/Template/LinkMenuAction.php', 'OCA\\Files_Sharing\\Updater' => $baseDir . '/../lib/Updater.php', ); diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php index 328d6aca01d..dd75dbaa18a 100644 --- a/apps/files_sharing/composer/composer/autoload_static.php +++ b/apps/files_sharing/composer/composer/autoload_static.php @@ -68,6 +68,8 @@ class ComposerStaticInitFiles_Sharing 'OCA\\Files_Sharing\\ShareBackend\\Folder' => __DIR__ . '/..' . '/../lib/ShareBackend/Folder.php', 'OCA\\Files_Sharing\\SharedMount' => __DIR__ . '/..' . '/../lib/SharedMount.php', 'OCA\\Files_Sharing\\SharedStorage' => __DIR__ . '/..' . '/../lib/SharedStorage.php', + 'OCA\\Files_Sharing\\Template\\ExternalShareMenuAction' => __DIR__ . '/..' . '/../lib/Template/ExternalShareMenuAction.php', + 'OCA\\Files_Sharing\\Template\\LinkMenuAction' => __DIR__ . '/..' . '/../lib/Template/LinkMenuAction.php', 'OCA\\Files_Sharing\\Updater' => __DIR__ . '/..' . '/../lib/Updater.php', ); diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss index 5edc3f7eb90..1e9dec87fad 100644 --- a/apps/files_sharing/css/public.scss +++ b/apps/files_sharing/css/public.scss @@ -3,14 +3,6 @@ min-height: calc(100vh - 160px); } -#header .menutoggle { - padding: 14px; - padding-right: 40px; - background-position: right 15px center; - color: $color-primary-text; - cursor: pointer; -} - /* force layout to make sure the content element's height matches its contents' height */ .ie #content { display: inline-block; diff --git a/apps/files_sharing/l10n/ast.js b/apps/files_sharing/l10n/ast.js index 7c818ac42b6..57b0f314f1a 100644 --- a/apps/files_sharing/l10n/ast.js +++ b/apps/files_sharing/l10n/ast.js @@ -64,6 +64,8 @@ OC.L10N.register( "Could not lock path" : "Nun pudo bloquiase'l camín", "Can't change permissions for public share links" : "Nun puen camudase los permisos pa los enllaces de comparticiones públiques", "Cannot increase permissions" : "Nun puen aumentase los permisos", + "Download" : "Baxar", + "Direct link" : "Enllaz direutu", "Share API is disabled" : "L'API de compartición ta desactivada", "This share is password-protected" : "Esta compartición tien contraseña protexida", "The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.", @@ -78,8 +80,6 @@ OC.L10N.register( "the link expired" : "l'enllaz caducó", "sharing is disabled" : "la compartición ta deshabilitada", "For more info, please ask the person who sent this link." : "Pa más información, entrúga-y a la persona qu'unvió esti enllaz", - "Download" : "Baxar", - "Direct link" : "Enllaz direutu", "Download %s" : "Descargar %s", "Select or drop files" : "Esbilla o suelta ficheros", "Uploading files…" : "Xubiendo ficheros...", diff --git a/apps/files_sharing/l10n/ast.json b/apps/files_sharing/l10n/ast.json index 5a4753b3b79..9860a61990b 100644 --- a/apps/files_sharing/l10n/ast.json +++ b/apps/files_sharing/l10n/ast.json @@ -62,6 +62,8 @@ "Could not lock path" : "Nun pudo bloquiase'l camín", "Can't change permissions for public share links" : "Nun puen camudase los permisos pa los enllaces de comparticiones públiques", "Cannot increase permissions" : "Nun puen aumentase los permisos", + "Download" : "Baxar", + "Direct link" : "Enllaz direutu", "Share API is disabled" : "L'API de compartición ta desactivada", "This share is password-protected" : "Esta compartición tien contraseña protexida", "The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.", @@ -76,8 +78,6 @@ "the link expired" : "l'enllaz caducó", "sharing is disabled" : "la compartición ta deshabilitada", "For more info, please ask the person who sent this link." : "Pa más información, entrúga-y a la persona qu'unvió esti enllaz", - "Download" : "Baxar", - "Direct link" : "Enllaz direutu", "Download %s" : "Descargar %s", "Select or drop files" : "Esbilla o suelta ficheros", "Uploading files…" : "Xubiendo ficheros...", diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js index ddc9ffbb339..9b7679a3dd9 100644 --- a/apps/files_sharing/l10n/ca.js +++ b/apps/files_sharing/l10n/ca.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no", "Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics", "Cannot increase permissions" : "No es poden augmentar els permisos", + "shared by %s" : "compartit per %s", + "Download" : "Baixa", + "Direct link" : "Enllaç directe", + "Add to your Nextcloud" : "Afegeix al teu NextCloud", "Share API is disabled" : "L'API compartida està desactivada", "File sharing" : "Compartir arxius", "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "l'enllaç ha vençut", "sharing is disabled" : "s'ha desactivat la compartició", "For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.", - "shared by %s" : "compartit per %s", - "Download" : "Baixa", - "Direct link" : "Enllaç directe", - "Add to your Nextcloud" : "Afegeix al teu NextCloud", "Download %s" : "Baixa %s", "Upload files to %s" : "Carrega fitxers a %s", "Select or drop files" : "Selecciona o deixa anar els fitxers", diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json index 6111dad6917..6012e46cbfc 100644 --- a/apps/files_sharing/l10n/ca.json +++ b/apps/files_sharing/l10n/ca.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no", "Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics", "Cannot increase permissions" : "No es poden augmentar els permisos", + "shared by %s" : "compartit per %s", + "Download" : "Baixa", + "Direct link" : "Enllaç directe", + "Add to your Nextcloud" : "Afegeix al teu NextCloud", "Share API is disabled" : "L'API compartida està desactivada", "File sharing" : "Compartir arxius", "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", @@ -100,10 +104,6 @@ "the link expired" : "l'enllaç ha vençut", "sharing is disabled" : "s'ha desactivat la compartició", "For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.", - "shared by %s" : "compartit per %s", - "Download" : "Baixa", - "Direct link" : "Enllaç directe", - "Add to your Nextcloud" : "Afegeix al teu NextCloud", "Download %s" : "Baixa %s", "Upload files to %s" : "Carrega fitxers a %s", "Select or drop files" : "Selecciona o deixa anar els fitxers", diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js index 1fd97ab9d38..4cc38c6797a 100644 --- a/apps/files_sharing/l10n/cs.js +++ b/apps/files_sharing/l10n/cs.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", "Can't change permissions for public share links" : "Nelze změnit oprávnění pro veřejně sdílené odkazy", "Cannot increase permissions" : "Nelze navýšit oprávnění", + "shared by %s" : "Sdílel %s", + "Download" : "Stáhnout", + "Direct link" : "Přímý odkaz", + "Add to your Nextcloud" : "Přidat do Nextcloud", "Share API is disabled" : "Sdílení API je zakázané", "This share is password-protected" : "Toto sdílení je chráněno heslem", "The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "platnost odkazu vypršela", "sharing is disabled" : "sdílení je zakázané", "For more info, please ask the person who sent this link." : "Pro více informací kontaktujte osobu, která vám zaslala tento odkaz.", - "shared by %s" : "Sdílel %s", - "Download" : "Stáhnout", - "Direct link" : "Přímý odkaz", - "Add to your Nextcloud" : "Přidat do Nextcloud", "Download %s" : "Stáhnout %s", "Upload files to %s" : "Nahrát soubory do %s", "Select or drop files" : "Vyberte nebo přetáhněte soubory", diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json index be2b5b6bbbc..f3e11acfcd2 100644 --- a/apps/files_sharing/l10n/cs.json +++ b/apps/files_sharing/l10n/cs.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", "Can't change permissions for public share links" : "Nelze změnit oprávnění pro veřejně sdílené odkazy", "Cannot increase permissions" : "Nelze navýšit oprávnění", + "shared by %s" : "Sdílel %s", + "Download" : "Stáhnout", + "Direct link" : "Přímý odkaz", + "Add to your Nextcloud" : "Přidat do Nextcloud", "Share API is disabled" : "Sdílení API je zakázané", "This share is password-protected" : "Toto sdílení je chráněno heslem", "The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.", @@ -99,10 +103,6 @@ "the link expired" : "platnost odkazu vypršela", "sharing is disabled" : "sdílení je zakázané", "For more info, please ask the person who sent this link." : "Pro více informací kontaktujte osobu, která vám zaslala tento odkaz.", - "shared by %s" : "Sdílel %s", - "Download" : "Stáhnout", - "Direct link" : "Přímý odkaz", - "Add to your Nextcloud" : "Přidat do Nextcloud", "Download %s" : "Stáhnout %s", "Upload files to %s" : "Nahrát soubory do %s", "Select or drop files" : "Vyberte nebo přetáhněte soubory", diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index 20b0ad7628e..1f2661c307e 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", + "shared by %s" : "von %s geteilt", + "Download" : "Herunterladen", + "Direct link" : "Direkter Link", + "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen", "Share API is disabled" : "Teilen-API ist deaktivert", "File sharing" : "Dateifreigabe", "This share is password-protected" : "Freigabe ist passwortgeschützt", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "Der Link ist abgelaufen", "sharing is disabled" : "Teilen ist deaktiviert", "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wende dich bitte an die Person, die dir diesen Link geschickt hat.", - "shared by %s" : "von %s geteilt", - "Download" : "Herunterladen", - "Direct link" : "Direkter Link", - "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen", "Download %s" : "Download %s", "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index c6b6d458ee4..1e20b0bfed6 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", + "shared by %s" : "von %s geteilt", + "Download" : "Herunterladen", + "Direct link" : "Direkter Link", + "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen", "Share API is disabled" : "Teilen-API ist deaktivert", "File sharing" : "Dateifreigabe", "This share is password-protected" : "Freigabe ist passwortgeschützt", @@ -100,10 +104,6 @@ "the link expired" : "Der Link ist abgelaufen", "sharing is disabled" : "Teilen ist deaktiviert", "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wende dich bitte an die Person, die dir diesen Link geschickt hat.", - "shared by %s" : "von %s geteilt", - "Download" : "Herunterladen", - "Direct link" : "Direkter Link", - "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen", "Download %s" : "Download %s", "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 721a2c21e98..370d2463b1b 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", + "shared by %s" : "von %s geteilt", + "Download" : "Herunterladen", + "Direct link" : "Direkter Link", + "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen", "Share API is disabled" : "Teilen-API ist deaktivert", "File sharing" : "Dateifreigabe", "This share is password-protected" : "Freigabe ist passwortgeschützt", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "Der Link ist abgelaufen", "sharing is disabled" : "Teilen ist deaktiviert", "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wenden Sie sich bitte an die Person, die Ihnen diesen Link geschickt hat.", - "shared by %s" : "von %s geteilt", - "Download" : "Herunterladen", - "Direct link" : "Direkter Link", - "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen", "Download %s" : "Download %s", "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index 54dbda5bd41..b5a796c1726 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", + "shared by %s" : "von %s geteilt", + "Download" : "Herunterladen", + "Direct link" : "Direkter Link", + "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen", "Share API is disabled" : "Teilen-API ist deaktivert", "File sharing" : "Dateifreigabe", "This share is password-protected" : "Freigabe ist passwortgeschützt", @@ -100,10 +104,6 @@ "the link expired" : "Der Link ist abgelaufen", "sharing is disabled" : "Teilen ist deaktiviert", "For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wenden Sie sich bitte an die Person, die Ihnen diesen Link geschickt hat.", - "shared by %s" : "von %s geteilt", - "Download" : "Herunterladen", - "Direct link" : "Direkter Link", - "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen", "Download %s" : "Download %s", "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js index 4b92053af06..cafcf36b6b1 100644 --- a/apps/files_sharing/l10n/el.js +++ b/apps/files_sharing/l10n/el.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε", "Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους", "Cannot increase permissions" : "Δεν μπορούμε να αυξήσουμε δικαιώματα", + "shared by %s" : "Διαμοιράστηκε από 1 %s", + "Download" : "Λήψη", + "Direct link" : "Άμεσος σύνδεσμος", + "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου", "Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο", "This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό", "The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "ο σύνδεσμος έληξε", "sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε", "For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.", - "shared by %s" : "Διαμοιράστηκε από 1 %s", - "Download" : "Λήψη", - "Direct link" : "Άμεσος σύνδεσμος", - "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου", "Download %s" : "Λήψη %s", "Upload files to %s" : "Αποστολή αρχείων σε %s", "Select or drop files" : "Επιλέξτε ή ρίξτε αρχεία", diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json index b64724b4d58..0f50082e96b 100644 --- a/apps/files_sharing/l10n/el.json +++ b/apps/files_sharing/l10n/el.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε", "Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους", "Cannot increase permissions" : "Δεν μπορούμε να αυξήσουμε δικαιώματα", + "shared by %s" : "Διαμοιράστηκε από 1 %s", + "Download" : "Λήψη", + "Direct link" : "Άμεσος σύνδεσμος", + "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου", "Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο", "This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό", "The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.", @@ -99,10 +103,6 @@ "the link expired" : "ο σύνδεσμος έληξε", "sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε", "For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.", - "shared by %s" : "Διαμοιράστηκε από 1 %s", - "Download" : "Λήψη", - "Direct link" : "Άμεσος σύνδεσμος", - "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου", "Download %s" : "Λήψη %s", "Upload files to %s" : "Αποστολή αρχείων σε %s", "Select or drop files" : "Επιλέξτε ή ρίξτε αρχεία", diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js index 758ee5ec0f7..94f8f700fc2 100644 --- a/apps/files_sharing/l10n/en_GB.js +++ b/apps/files_sharing/l10n/en_GB.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Wrong or no update parameter given", "Can't change permissions for public share links" : "Can't change permissions for public share links", "Cannot increase permissions" : "Cannot increase permissions", + "shared by %s" : "shared by %s", + "Download" : "Download", + "Direct link" : "Direct link", + "Add to your Nextcloud" : "Add to your Nextcloud", "Share API is disabled" : "Share API is disabled", "File sharing" : "File sharing", "This share is password-protected" : "This share is password-protected", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "the link expired", "sharing is disabled" : "sharing is disabled", "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.", - "shared by %s" : "shared by %s", - "Download" : "Download", - "Direct link" : "Direct link", - "Add to your Nextcloud" : "Add to your Nextcloud", "Download %s" : "Download %s", "Upload files to %s" : "Upload files to %s", "Select or drop files" : "Select or drop files", diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json index 00da5d90c3c..48183adf157 100644 --- a/apps/files_sharing/l10n/en_GB.json +++ b/apps/files_sharing/l10n/en_GB.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Wrong or no update parameter given", "Can't change permissions for public share links" : "Can't change permissions for public share links", "Cannot increase permissions" : "Cannot increase permissions", + "shared by %s" : "shared by %s", + "Download" : "Download", + "Direct link" : "Direct link", + "Add to your Nextcloud" : "Add to your Nextcloud", "Share API is disabled" : "Share API is disabled", "File sharing" : "File sharing", "This share is password-protected" : "This share is password-protected", @@ -100,10 +104,6 @@ "the link expired" : "the link expired", "sharing is disabled" : "sharing is disabled", "For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.", - "shared by %s" : "shared by %s", - "Download" : "Download", - "Direct link" : "Direct link", - "Add to your Nextcloud" : "Add to your Nextcloud", "Download %s" : "Download %s", "Upload files to %s" : "Upload files to %s", "Select or drop files" : "Select or drop files", diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js index 5464f142c51..322f7f688a5 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "Can't change permissions for public share links" : "No se pueden cambiar los permisos para los enlaces de recursos compartidos públicos", "Cannot increase permissions" : "No es posible aumentar permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Enlace directo", + "Add to your Nextcloud" : "Añadir a tu Nextcloud", "Share API is disabled" : "El API de compartir está deshabilitado", "File sharing" : "Compartir archivos", "This share is password-protected" : "Este elemento compartido está protegido por contraseña", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "el enlace expiró", "sharing is disabled" : "compartir está desactivado", "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Enlace directo", - "Add to your Nextcloud" : "Añadir a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Subir archivos a %s", "Select or drop files" : "Seleccione o arrastre y suelte archivos", diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index 4b8ede851ea..f7d9a13d10a 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "Can't change permissions for public share links" : "No se pueden cambiar los permisos para los enlaces de recursos compartidos públicos", "Cannot increase permissions" : "No es posible aumentar permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Enlace directo", + "Add to your Nextcloud" : "Añadir a tu Nextcloud", "Share API is disabled" : "El API de compartir está deshabilitado", "File sharing" : "Compartir archivos", "This share is password-protected" : "Este elemento compartido está protegido por contraseña", @@ -100,10 +104,6 @@ "the link expired" : "el enlace expiró", "sharing is disabled" : "compartir está desactivado", "For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Enlace directo", - "Add to your Nextcloud" : "Añadir a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Subir archivos a %s", "Select or drop files" : "Seleccione o arrastre y suelte archivos", diff --git a/apps/files_sharing/l10n/es_419.js b/apps/files_sharing/l10n/es_419.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_419.js +++ b/apps/files_sharing/l10n/es_419.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_419.json b/apps/files_sharing/l10n/es_419.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_419.json +++ b/apps/files_sharing/l10n/es_419.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js index 987eabe57b9..7ada8ab5f91 100644 --- a/apps/files_sharing/l10n/es_AR.js +++ b/apps/files_sharing/l10n/es_AR.js @@ -87,6 +87,9 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante", "Can't change permissions for public share links" : "No es posible cambiar los permisos para links públicos compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "Download" : "Descargar", + "Direct link" : "Link directa", + "Add to your Nextcloud" : "Agregar a su Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido esta protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Favor de intentarlo de nuevo.", @@ -101,9 +104,6 @@ OC.L10N.register( "the link expired" : "el link expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.", - "Download" : "Descargar", - "Direct link" : "Link directa", - "Add to your Nextcloud" : "Agregar a su Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Seleccione o suelte los archivos", diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json index a9ecf179039..37b3fce1452 100644 --- a/apps/files_sharing/l10n/es_AR.json +++ b/apps/files_sharing/l10n/es_AR.json @@ -85,6 +85,9 @@ "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante", "Can't change permissions for public share links" : "No es posible cambiar los permisos para links públicos compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "Download" : "Descargar", + "Direct link" : "Link directa", + "Add to your Nextcloud" : "Agregar a su Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido esta protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Favor de intentarlo de nuevo.", @@ -99,9 +102,6 @@ "the link expired" : "el link expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.", - "Download" : "Descargar", - "Direct link" : "Link directa", - "Add to your Nextcloud" : "Agregar a su Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Seleccione o suelte los archivos", diff --git a/apps/files_sharing/l10n/es_CL.js b/apps/files_sharing/l10n/es_CL.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_CL.js +++ b/apps/files_sharing/l10n/es_CL.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_CL.json b/apps/files_sharing/l10n/es_CL.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_CL.json +++ b/apps/files_sharing/l10n/es_CL.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_CO.js b/apps/files_sharing/l10n/es_CO.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_CO.js +++ b/apps/files_sharing/l10n/es_CO.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_CO.json b/apps/files_sharing/l10n/es_CO.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_CO.json +++ b/apps/files_sharing/l10n/es_CO.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_CR.js b/apps/files_sharing/l10n/es_CR.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_CR.js +++ b/apps/files_sharing/l10n/es_CR.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_CR.json b/apps/files_sharing/l10n/es_CR.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_CR.json +++ b/apps/files_sharing/l10n/es_CR.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_DO.js b/apps/files_sharing/l10n/es_DO.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_DO.js +++ b/apps/files_sharing/l10n/es_DO.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_DO.json b/apps/files_sharing/l10n/es_DO.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_DO.json +++ b/apps/files_sharing/l10n/es_DO.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_EC.js b/apps/files_sharing/l10n/es_EC.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_EC.js +++ b/apps/files_sharing/l10n/es_EC.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_EC.json b/apps/files_sharing/l10n/es_EC.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_EC.json +++ b/apps/files_sharing/l10n/es_EC.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_GT.js b/apps/files_sharing/l10n/es_GT.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_GT.js +++ b/apps/files_sharing/l10n/es_GT.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_GT.json b/apps/files_sharing/l10n/es_GT.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_GT.json +++ b/apps/files_sharing/l10n/es_GT.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_HN.js b/apps/files_sharing/l10n/es_HN.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_HN.js +++ b/apps/files_sharing/l10n/es_HN.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_HN.json b/apps/files_sharing/l10n/es_HN.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_HN.json +++ b/apps/files_sharing/l10n/es_HN.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js index 499e38b4009..9db3d9d8e9b 100644 --- a/apps/files_sharing/l10n/es_MX.js +++ b/apps/files_sharing/l10n/es_MX.js @@ -87,7 +87,12 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", + "File sharing" : "Compartir archivos", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", "Password" : "Contraseña", @@ -101,14 +106,11 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", "Uploading files…" : "Cargando archivos...", - "Uploaded files:" : "Archivos cargados:" + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json index 88c06ebe7ab..b1e3b52ee17 100644 --- a/apps/files_sharing/l10n/es_MX.json +++ b/apps/files_sharing/l10n/es_MX.json @@ -85,7 +85,12 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", + "File sharing" : "Compartir archivos", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", "Password" : "Contraseña", @@ -99,14 +104,11 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", "Uploading files…" : "Cargando archivos...", - "Uploaded files:" : "Archivos cargados:" + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es_NI.js b/apps/files_sharing/l10n/es_NI.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_NI.js +++ b/apps/files_sharing/l10n/es_NI.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_NI.json b/apps/files_sharing/l10n/es_NI.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_NI.json +++ b/apps/files_sharing/l10n/es_NI.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PA.js b/apps/files_sharing/l10n/es_PA.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_PA.js +++ b/apps/files_sharing/l10n/es_PA.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PA.json b/apps/files_sharing/l10n/es_PA.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_PA.json +++ b/apps/files_sharing/l10n/es_PA.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PE.js b/apps/files_sharing/l10n/es_PE.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_PE.js +++ b/apps/files_sharing/l10n/es_PE.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PE.json b/apps/files_sharing/l10n/es_PE.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_PE.json +++ b/apps/files_sharing/l10n/es_PE.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PR.js b/apps/files_sharing/l10n/es_PR.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_PR.js +++ b/apps/files_sharing/l10n/es_PR.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PR.json b/apps/files_sharing/l10n/es_PR.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_PR.json +++ b/apps/files_sharing/l10n/es_PR.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PY.js b/apps/files_sharing/l10n/es_PY.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_PY.js +++ b/apps/files_sharing/l10n/es_PY.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_PY.json b/apps/files_sharing/l10n/es_PY.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_PY.json +++ b/apps/files_sharing/l10n/es_PY.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_SV.js b/apps/files_sharing/l10n/es_SV.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_SV.js +++ b/apps/files_sharing/l10n/es_SV.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_SV.json b/apps/files_sharing/l10n/es_SV.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_SV.json +++ b/apps/files_sharing/l10n/es_SV.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_UY.js b/apps/files_sharing/l10n/es_UY.js index 499e38b4009..03c29b785b5 100644 --- a/apps/files_sharing/l10n/es_UY.js +++ b/apps/files_sharing/l10n/es_UY.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/es_UY.json b/apps/files_sharing/l10n/es_UY.json index 88c06ebe7ab..78b7266cc4d 100644 --- a/apps/files_sharing/l10n/es_UY.json +++ b/apps/files_sharing/l10n/es_UY.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -99,10 +103,6 @@ "the link expired" : "la liga expiró", "sharing is disabled" : "compartir está deshabilitado", "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", - "shared by %s" : "compartido por %s", - "Download" : "Descargar", - "Direct link" : "Liga directa", - "Add to your Nextcloud" : "Agregar a tu Nextcloud", "Download %s" : "Descargar %s", "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js index 404f481c561..0783b4c30ce 100644 --- a/apps/files_sharing/l10n/et_EE.js +++ b/apps/files_sharing/l10n/et_EE.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", "Can't change permissions for public share links" : "Avalikult jagatud linkide õigusi muuta ei saa", "Cannot increase permissions" : "Ei saa õigusi suurendada", + "shared by %s" : "jagas %s", + "Download" : "Lae alla", + "Direct link" : "Otsene link", + "Add to your Nextcloud" : "Lisa oma Nextcloudi", "Share API is disabled" : "Jagamise API on keelatud", "This share is password-protected" : "See jagamine on parooliga kaitstud", "The password is wrong. Try again." : "Parool on vale. Proovi uuesti.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "link on aegunud", "sharing is disabled" : "jagamine on peatatud", "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.", - "shared by %s" : "jagas %s", - "Download" : "Lae alla", - "Direct link" : "Otsene link", - "Add to your Nextcloud" : "Lisa oma Nextcloudi", "Download %s" : "Laadi alla %s", "Upload files to %s" : "Laadi failid %s", "Select or drop files" : "Vali või lohista failid", diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json index 89086670a74..89c7d876d30 100644 --- a/apps/files_sharing/l10n/et_EE.json +++ b/apps/files_sharing/l10n/et_EE.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", "Can't change permissions for public share links" : "Avalikult jagatud linkide õigusi muuta ei saa", "Cannot increase permissions" : "Ei saa õigusi suurendada", + "shared by %s" : "jagas %s", + "Download" : "Lae alla", + "Direct link" : "Otsene link", + "Add to your Nextcloud" : "Lisa oma Nextcloudi", "Share API is disabled" : "Jagamise API on keelatud", "This share is password-protected" : "See jagamine on parooliga kaitstud", "The password is wrong. Try again." : "Parool on vale. Proovi uuesti.", @@ -99,10 +103,6 @@ "the link expired" : "link on aegunud", "sharing is disabled" : "jagamine on peatatud", "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.", - "shared by %s" : "jagas %s", - "Download" : "Lae alla", - "Direct link" : "Otsene link", - "Add to your Nextcloud" : "Lisa oma Nextcloudi", "Download %s" : "Laadi alla %s", "Upload files to %s" : "Laadi failid %s", "Select or drop files" : "Vali või lohista failid", diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js index 1fa452d8a10..36351ae613a 100644 --- a/apps/files_sharing/l10n/fi.js +++ b/apps/files_sharing/l10n/fi.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin", "Can't change permissions for public share links" : "Julkisten jakolinkkien käyttöoikeuksia ei voi muuttaa", "Cannot increase permissions" : "Oikeuksien lisääminen ei onnistu", + "shared by %s" : "%s jakama", + "Download" : "Lataa", + "Direct link" : "Suora linkki", + "Add to your Nextcloud" : "Lisää Nextcloudiisi", "Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä", "File sharing" : "Tiedostonjako", "This share is password-protected" : "Tämä jako on suojattu salasanalla", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "linkki vanheni", "sharing is disabled" : "jakaminen on poistettu käytöstä", "For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.", - "shared by %s" : "%s jakama", - "Download" : "Lataa", - "Direct link" : "Suora linkki", - "Add to your Nextcloud" : "Lisää Nextcloudiisi", "Download %s" : "Lataa %s", "Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s", "Select or drop files" : "Valitse tai pudota tiedostoja", diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json index 4c50f9b0b57..fa870dee1c4 100644 --- a/apps/files_sharing/l10n/fi.json +++ b/apps/files_sharing/l10n/fi.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin", "Can't change permissions for public share links" : "Julkisten jakolinkkien käyttöoikeuksia ei voi muuttaa", "Cannot increase permissions" : "Oikeuksien lisääminen ei onnistu", + "shared by %s" : "%s jakama", + "Download" : "Lataa", + "Direct link" : "Suora linkki", + "Add to your Nextcloud" : "Lisää Nextcloudiisi", "Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä", "File sharing" : "Tiedostonjako", "This share is password-protected" : "Tämä jako on suojattu salasanalla", @@ -100,10 +104,6 @@ "the link expired" : "linkki vanheni", "sharing is disabled" : "jakaminen on poistettu käytöstä", "For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.", - "shared by %s" : "%s jakama", - "Download" : "Lataa", - "Direct link" : "Suora linkki", - "Add to your Nextcloud" : "Lisää Nextcloudiisi", "Download %s" : "Lataa %s", "Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s", "Select or drop files" : "Valitse tai pudota tiedostoja", diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index 795c7444d27..5ae7a0035d7 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ", "Can't change permissions for public share links" : "Impossible de changer les permissions pour les liens de partage public", "Cannot increase permissions" : "Impossible d'augmenter les permissions", + "shared by %s" : "partagé par %s", + "Download" : "Télécharger", + "Direct link" : "Lien direct", + "Add to your Nextcloud" : "Ajouter à votre Nextcloud", "Share API is disabled" : "l'API de partage est désactivée", "File sharing" : "Partage de fichier", "This share is password-protected" : "Ce partage est protégé par un mot de passe", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "le lien a expiré", "sharing is disabled" : "le partage est désactivé", "For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.", - "shared by %s" : "partagé par %s", - "Download" : "Télécharger", - "Direct link" : "Lien direct", - "Add to your Nextcloud" : "Ajouter à votre Nextcloud", "Download %s" : "Télécharger %s", "Upload files to %s" : "Téléversement des fichiers vers %s", "Select or drop files" : "Sélectionner ou glisser-déposer vos fichiers", diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index 9a3ad042b80..d9f72a1b8d4 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ", "Can't change permissions for public share links" : "Impossible de changer les permissions pour les liens de partage public", "Cannot increase permissions" : "Impossible d'augmenter les permissions", + "shared by %s" : "partagé par %s", + "Download" : "Télécharger", + "Direct link" : "Lien direct", + "Add to your Nextcloud" : "Ajouter à votre Nextcloud", "Share API is disabled" : "l'API de partage est désactivée", "File sharing" : "Partage de fichier", "This share is password-protected" : "Ce partage est protégé par un mot de passe", @@ -100,10 +104,6 @@ "the link expired" : "le lien a expiré", "sharing is disabled" : "le partage est désactivé", "For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.", - "shared by %s" : "partagé par %s", - "Download" : "Télécharger", - "Direct link" : "Lien direct", - "Add to your Nextcloud" : "Ajouter à votre Nextcloud", "Download %s" : "Télécharger %s", "Upload files to %s" : "Téléversement des fichiers vers %s", "Select or drop files" : "Sélectionner ou glisser-déposer vos fichiers", diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js index df038f6f38f..e3216c37686 100644 --- a/apps/files_sharing/l10n/hu.js +++ b/apps/files_sharing/l10n/hu.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter", "Can't change permissions for public share links" : "Nem lehet módosítani a nyilvános megosztási hivatkozások jogosultságait", "Cannot increase permissions" : "Nem lehet növelni az engedélyeket", + "shared by %s" : "megosztotta %s", + "Download" : "Letöltés", + "Direct link" : "Közvetlen hivatkozás", + "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz", "Share API is disabled" : "Megosztás API letiltva", "File sharing" : "Fájlmegosztás", "This share is password-protected" : "Ez egy jelszóval védett megosztás", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "lejárt a hivatkozás érvényességi ideje", "sharing is disabled" : "letiltásra került a megosztás", "For more info, please ask the person who sent this link." : "További információért fordulj ahhoz, aki ezt a linket küldte neked!", - "shared by %s" : "megosztotta %s", - "Download" : "Letöltés", - "Direct link" : "Közvetlen hivatkozás", - "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz", "Download %s" : "%s letöltése", "Upload files to %s" : "Fájlok felöltése ide: %s", "Select or drop files" : "Válassz ki vagy dobj ide fájlokat", diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json index 1b65474cda2..3ad14798285 100644 --- a/apps/files_sharing/l10n/hu.json +++ b/apps/files_sharing/l10n/hu.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter", "Can't change permissions for public share links" : "Nem lehet módosítani a nyilvános megosztási hivatkozások jogosultságait", "Cannot increase permissions" : "Nem lehet növelni az engedélyeket", + "shared by %s" : "megosztotta %s", + "Download" : "Letöltés", + "Direct link" : "Közvetlen hivatkozás", + "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz", "Share API is disabled" : "Megosztás API letiltva", "File sharing" : "Fájlmegosztás", "This share is password-protected" : "Ez egy jelszóval védett megosztás", @@ -100,10 +104,6 @@ "the link expired" : "lejárt a hivatkozás érvényességi ideje", "sharing is disabled" : "letiltásra került a megosztás", "For more info, please ask the person who sent this link." : "További információért fordulj ahhoz, aki ezt a linket küldte neked!", - "shared by %s" : "megosztotta %s", - "Download" : "Letöltés", - "Direct link" : "Közvetlen hivatkozás", - "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz", "Download %s" : "%s letöltése", "Upload files to %s" : "Fájlok felöltése ide: %s", "Select or drop files" : "Válassz ki vagy dobj ide fájlokat", diff --git a/apps/files_sharing/l10n/id.js b/apps/files_sharing/l10n/id.js index 2f9259faee7..bedcb0ce3f0 100644 --- a/apps/files_sharing/l10n/id.js +++ b/apps/files_sharing/l10n/id.js @@ -43,6 +43,9 @@ OC.L10N.register( "Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui", "Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik", "Cannot increase permissions" : "Tidak dapat menambah izin", + "Download" : "Unduh", + "Direct link" : "Tautan langsung", + "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda", "Share API is disabled" : "API pembagian dinonaktifkan", "This share is password-protected" : "Berbagi ini dilindungi kata sandi", "The password is wrong. Try again." : "Kata sandi salah. Coba lagi", @@ -57,9 +60,6 @@ OC.L10N.register( "the link expired" : "tautan telah kedaluwarsa", "sharing is disabled" : "berbagi dinonaktifkan", "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.", - "Download" : "Unduh", - "Direct link" : "Tautan langsung", - "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda", "Download %s" : "Unduh %s", "Upload files to %s" : "Unggah berkas ke %s", "Select or drop files" : "Pilih atau drop berkas", diff --git a/apps/files_sharing/l10n/id.json b/apps/files_sharing/l10n/id.json index 4eb256e0ec7..75c8173db40 100644 --- a/apps/files_sharing/l10n/id.json +++ b/apps/files_sharing/l10n/id.json @@ -41,6 +41,9 @@ "Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui", "Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik", "Cannot increase permissions" : "Tidak dapat menambah izin", + "Download" : "Unduh", + "Direct link" : "Tautan langsung", + "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda", "Share API is disabled" : "API pembagian dinonaktifkan", "This share is password-protected" : "Berbagi ini dilindungi kata sandi", "The password is wrong. Try again." : "Kata sandi salah. Coba lagi", @@ -55,9 +58,6 @@ "the link expired" : "tautan telah kedaluwarsa", "sharing is disabled" : "berbagi dinonaktifkan", "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.", - "Download" : "Unduh", - "Direct link" : "Tautan langsung", - "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda", "Download %s" : "Unduh %s", "Upload files to %s" : "Unggah berkas ke %s", "Select or drop files" : "Pilih atau drop berkas", diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js index b6a3d892ef9..e4c9044fbac 100644 --- a/apps/files_sharing/l10n/is.js +++ b/apps/files_sharing/l10n/is.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið", "Can't change permissions for public share links" : "Ekki tókst að breyta aðgangsheimildum fyrir opinbera deilingartengla", "Cannot increase permissions" : "Get ekki aukið aðgangsheimildir", + "shared by %s" : "Deilt af %s", + "Download" : "Niðurhal", + "Direct link" : "Beinn tengill", + "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud", "Share API is disabled" : "Deilingar-API er óvirkt", "File sharing" : "Skráadeiling", "This share is password-protected" : "Þessi sameign er varin með lykilorði", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "tengillinn er útrunninn", "sharing is disabled" : "slökkt er á skráadeilingu", "For more info, please ask the person who sent this link." : "Til að vita meira skaltu hafa samband við þann sem sendi þér þennan tengil.", - "shared by %s" : "Deilt af %s", - "Download" : "Niðurhal", - "Direct link" : "Beinn tengill", - "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud", "Download %s" : "Sækja %s", "Upload files to %s" : "Senda inn skrár á %s", "Select or drop files" : "Veldu eða slepptu skrám", diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json index f2b0bdb93c5..86f98859422 100644 --- a/apps/files_sharing/l10n/is.json +++ b/apps/files_sharing/l10n/is.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið", "Can't change permissions for public share links" : "Ekki tókst að breyta aðgangsheimildum fyrir opinbera deilingartengla", "Cannot increase permissions" : "Get ekki aukið aðgangsheimildir", + "shared by %s" : "Deilt af %s", + "Download" : "Niðurhal", + "Direct link" : "Beinn tengill", + "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud", "Share API is disabled" : "Deilingar-API er óvirkt", "File sharing" : "Skráadeiling", "This share is password-protected" : "Þessi sameign er varin með lykilorði", @@ -100,10 +104,6 @@ "the link expired" : "tengillinn er útrunninn", "sharing is disabled" : "slökkt er á skráadeilingu", "For more info, please ask the person who sent this link." : "Til að vita meira skaltu hafa samband við þann sem sendi þér þennan tengil.", - "shared by %s" : "Deilt af %s", - "Download" : "Niðurhal", - "Direct link" : "Beinn tengill", - "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud", "Download %s" : "Sækja %s", "Upload files to %s" : "Senda inn skrár á %s", "Select or drop files" : "Veldu eða slepptu skrám", diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index 343d1a6b5d2..343157a102e 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento", "Can't change permissions for public share links" : "Impossibile cambiare i permessi per i collegamenti di condivisione pubblici", "Cannot increase permissions" : "Impossibile aumentare i permessi", + "shared by %s" : "condiviso da %s", + "Download" : "Scarica", + "Direct link" : "Collegamento diretto", + "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud", "Share API is disabled" : "API di condivisione disabilitate", "File sharing" : "Condivisione di file", "This share is password-protected" : "Questa condivisione è protetta da password", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "il collegamento è scaduto", "sharing is disabled" : "la condivisione è disabilitata", "For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.", - "shared by %s" : "condiviso da %s", - "Download" : "Scarica", - "Direct link" : "Collegamento diretto", - "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud", "Download %s" : "Scarica %s", "Upload files to %s" : "Carica file su %s", "Select or drop files" : "Seleziona o deseleziona file", diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index 8fbc3669191..a1f51dd7f9e 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento", "Can't change permissions for public share links" : "Impossibile cambiare i permessi per i collegamenti di condivisione pubblici", "Cannot increase permissions" : "Impossibile aumentare i permessi", + "shared by %s" : "condiviso da %s", + "Download" : "Scarica", + "Direct link" : "Collegamento diretto", + "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud", "Share API is disabled" : "API di condivisione disabilitate", "File sharing" : "Condivisione di file", "This share is password-protected" : "Questa condivisione è protetta da password", @@ -100,10 +104,6 @@ "the link expired" : "il collegamento è scaduto", "sharing is disabled" : "la condivisione è disabilitata", "For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.", - "shared by %s" : "condiviso da %s", - "Download" : "Scarica", - "Direct link" : "Collegamento diretto", - "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud", "Download %s" : "Scarica %s", "Upload files to %s" : "Carica file su %s", "Select or drop files" : "Seleziona o deseleziona file", diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js index e0ea814ebd7..37af8a16042 100644 --- a/apps/files_sharing/l10n/ja.js +++ b/apps/files_sharing/l10n/ja.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "間違っている、もしくはパラメータが更新されていません", "Can't change permissions for public share links" : "URLリンク共有のパーミッションを変更できません", "Cannot increase permissions" : "パーミッションを追加できません", + "shared by %s" : "%s が共有", + "Download" : "ダウンロード", + "Direct link" : "リンク", + "Add to your Nextcloud" : "あなたのNextcloudに追加", "Share API is disabled" : "共有APIが無効です。", "File sharing" : "ファイル共有", "This share is password-protected" : "この共有はパスワードで保護されています", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "リンクの期限が切れています", "sharing is disabled" : "共有は無効になっています", "For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。", - "shared by %s" : "%s が共有", - "Download" : "ダウンロード", - "Direct link" : "リンク", - "Add to your Nextcloud" : "あなたのNextcloudに追加", "Download %s" : "%s をダウンロード", "Upload files to %s" : "%s にファイルをアップロード", "Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください", diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json index 0ed2739e522..c6078b384b7 100644 --- a/apps/files_sharing/l10n/ja.json +++ b/apps/files_sharing/l10n/ja.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "間違っている、もしくはパラメータが更新されていません", "Can't change permissions for public share links" : "URLリンク共有のパーミッションを変更できません", "Cannot increase permissions" : "パーミッションを追加できません", + "shared by %s" : "%s が共有", + "Download" : "ダウンロード", + "Direct link" : "リンク", + "Add to your Nextcloud" : "あなたのNextcloudに追加", "Share API is disabled" : "共有APIが無効です。", "File sharing" : "ファイル共有", "This share is password-protected" : "この共有はパスワードで保護されています", @@ -100,10 +104,6 @@ "the link expired" : "リンクの期限が切れています", "sharing is disabled" : "共有は無効になっています", "For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。", - "shared by %s" : "%s が共有", - "Download" : "ダウンロード", - "Direct link" : "リンク", - "Add to your Nextcloud" : "あなたのNextcloudに追加", "Download %s" : "%s をダウンロード", "Upload files to %s" : "%s にファイルをアップロード", "Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください", diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js index 53a582528a8..be891d1d162 100644 --- a/apps/files_sharing/l10n/ka_GE.js +++ b/apps/files_sharing/l10n/ka_GE.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა", "Can't change permissions for public share links" : "უფლებები საზოგადოდ გაზიარებულ ბმულზე ვერ შეიცვალა", "Cannot increase permissions" : "უფლებების გაზრდა ვერ მოხერხდა", + "shared by %s" : "გააზიარა მომხმარებელმა %s", + "Download" : "ჩამოტვირთვა", + "Direct link" : "პირდაპირი ბმული", + "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება", "Share API is disabled" : "გაზიარების API არაა მოქმედი", "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით", "The password is wrong. Try again." : "პაროლი არასწორია. სცადეთ ახლიდან", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "ბმულს ვადა გაუვიდა", "sharing is disabled" : "გაზიარება არაა მოქმედი", "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.", - "shared by %s" : "გააზიარა მომხმარებელმა %s", - "Download" : "ჩამოტვირთვა", - "Direct link" : "პირდაპირი ბმული", - "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება", "Download %s" : "%s-ის ჩამოტვირთვა", "Upload files to %s" : "ფაილების ატვირთვა %s-ში", "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები", diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json index b104766ac3f..8eef027e688 100644 --- a/apps/files_sharing/l10n/ka_GE.json +++ b/apps/files_sharing/l10n/ka_GE.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა", "Can't change permissions for public share links" : "უფლებები საზოგადოდ გაზიარებულ ბმულზე ვერ შეიცვალა", "Cannot increase permissions" : "უფლებების გაზრდა ვერ მოხერხდა", + "shared by %s" : "გააზიარა მომხმარებელმა %s", + "Download" : "ჩამოტვირთვა", + "Direct link" : "პირდაპირი ბმული", + "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება", "Share API is disabled" : "გაზიარების API არაა მოქმედი", "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით", "The password is wrong. Try again." : "პაროლი არასწორია. სცადეთ ახლიდან", @@ -99,10 +103,6 @@ "the link expired" : "ბმულს ვადა გაუვიდა", "sharing is disabled" : "გაზიარება არაა მოქმედი", "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.", - "shared by %s" : "გააზიარა მომხმარებელმა %s", - "Download" : "ჩამოტვირთვა", - "Direct link" : "პირდაპირი ბმული", - "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება", "Download %s" : "%s-ის ჩამოტვირთვა", "Upload files to %s" : "ფაილების ატვირთვა %s-ში", "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები", diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js index 5f8e4374ab8..d8212cd20b3 100644 --- a/apps/files_sharing/l10n/ko.js +++ b/apps/files_sharing/l10n/ko.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", "Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음", "Cannot increase permissions" : "권한을 늘릴 수 없음", + "shared by %s" : "%s에 의해 공유됨", + "Download" : "다운로드", + "Direct link" : "직접 링크", + "Add to your Nextcloud" : "내 Nextcloud에 추가", "Share API is disabled" : "공유 API가 비활성화됨", "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "링크가 만료됨", "sharing is disabled" : "공유가 비활성화됨", "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.", - "shared by %s" : "%s에 의해 공유됨", - "Download" : "다운로드", - "Direct link" : "직접 링크", - "Add to your Nextcloud" : "내 Nextcloud에 추가", "Download %s" : "%s 다운로드", "Upload files to %s" : "%s에 파일 업로드", "Select or drop files" : "파일을 선택하거나 끌어다 놓기", diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json index 00c5d8b954a..c64b4d1bb50 100644 --- a/apps/files_sharing/l10n/ko.json +++ b/apps/files_sharing/l10n/ko.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", "Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음", "Cannot increase permissions" : "권한을 늘릴 수 없음", + "shared by %s" : "%s에 의해 공유됨", + "Download" : "다운로드", + "Direct link" : "직접 링크", + "Add to your Nextcloud" : "내 Nextcloud에 추가", "Share API is disabled" : "공유 API가 비활성화됨", "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", @@ -99,10 +103,6 @@ "the link expired" : "링크가 만료됨", "sharing is disabled" : "공유가 비활성화됨", "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.", - "shared by %s" : "%s에 의해 공유됨", - "Download" : "다운로드", - "Direct link" : "직접 링크", - "Add to your Nextcloud" : "내 Nextcloud에 추가", "Download %s" : "%s 다운로드", "Upload files to %s" : "%s에 파일 업로드", "Select or drop files" : "파일을 선택하거나 끌어다 놓기", diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js index 33bf03ee0ef..5fa75c10417 100644 --- a/apps/files_sharing/l10n/lt_LT.js +++ b/apps/files_sharing/l10n/lt_LT.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai", "Can't change permissions for public share links" : "Negalima keisti leidimų viešai bendrinamoms nuorodoms", "Cannot increase permissions" : "Negalima pridėti papildomų leidimų", + "shared by %s" : "pasidalino %s", + "Download" : "Atsisiųsti", + "Direct link" : "Tiesioginė nuoroda", + "Add to your Nextcloud" : "Pridėti į jūsų NextCloud", "Share API is disabled" : "Bendrinimo API yra išjungtas", "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "baigėsi nuorodos galiojimo laikas", "sharing is disabled" : "dalinimasis yra išjungtas", "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.", - "shared by %s" : "pasidalino %s", - "Download" : "Atsisiųsti", - "Direct link" : "Tiesioginė nuoroda", - "Add to your Nextcloud" : "Pridėti į jūsų NextCloud", "Download %s" : "Atsisiųsti %s", "Upload files to %s" : "Įkelti duomenis į %s", "Select or drop files" : "Pasirinkite arba vilkite failus", diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json index b05f233ad77..5764613a2ff 100644 --- a/apps/files_sharing/l10n/lt_LT.json +++ b/apps/files_sharing/l10n/lt_LT.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai", "Can't change permissions for public share links" : "Negalima keisti leidimų viešai bendrinamoms nuorodoms", "Cannot increase permissions" : "Negalima pridėti papildomų leidimų", + "shared by %s" : "pasidalino %s", + "Download" : "Atsisiųsti", + "Direct link" : "Tiesioginė nuoroda", + "Add to your Nextcloud" : "Pridėti į jūsų NextCloud", "Share API is disabled" : "Bendrinimo API yra išjungtas", "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.", @@ -99,10 +103,6 @@ "the link expired" : "baigėsi nuorodos galiojimo laikas", "sharing is disabled" : "dalinimasis yra išjungtas", "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.", - "shared by %s" : "pasidalino %s", - "Download" : "Atsisiųsti", - "Direct link" : "Tiesioginė nuoroda", - "Add to your Nextcloud" : "Pridėti į jūsų NextCloud", "Download %s" : "Atsisiųsti %s", "Upload files to %s" : "Įkelti duomenis į %s", "Select or drop files" : "Pasirinkite arba vilkite failus", diff --git a/apps/files_sharing/l10n/lv.js b/apps/files_sharing/l10n/lv.js index cfed9516baf..7e128e1c774 100644 --- a/apps/files_sharing/l10n/lv.js +++ b/apps/files_sharing/l10n/lv.js @@ -54,6 +54,9 @@ OC.L10N.register( "Could not lock path" : "Nevarēja bloķēt ceļu", "Can't change permissions for public share links" : "Publiskai koplietošanas saitei nevar mainīt tiesības", "Cannot increase permissions" : "Nevar palielināt tiesības", + "Download" : "Lejupielādēt", + "Direct link" : "Tiešā saite", + "Add to your Nextcloud" : "Pievienot savam Nextcloud", "Share API is disabled" : "Koplietošanas API ir atslēgta", "This share is password-protected" : "Šī koplietotne ir aizsargāta ar paroli", "The password is wrong. Try again." : "Nepareiza parole. Mēģiniet vēlreiz.", @@ -68,9 +71,6 @@ OC.L10N.register( "the link expired" : "saitei beidzies termiņš", "sharing is disabled" : "koplietošana nav ieslēgta", "For more info, please ask the person who sent this link." : "Vairāk informācijas vaicā personai, kas nosūtīja šo saiti.", - "Download" : "Lejupielādēt", - "Direct link" : "Tiešā saite", - "Add to your Nextcloud" : "Pievienot savam Nextcloud", "Download %s" : "Lejupielādēt %s", "Uploading files…" : "Augšupielādē datnes", "Uploaded files:" : "Augšupielādēti faili:" diff --git a/apps/files_sharing/l10n/lv.json b/apps/files_sharing/l10n/lv.json index 7ea92586707..8d2ef021ee4 100644 --- a/apps/files_sharing/l10n/lv.json +++ b/apps/files_sharing/l10n/lv.json @@ -52,6 +52,9 @@ "Could not lock path" : "Nevarēja bloķēt ceļu", "Can't change permissions for public share links" : "Publiskai koplietošanas saitei nevar mainīt tiesības", "Cannot increase permissions" : "Nevar palielināt tiesības", + "Download" : "Lejupielādēt", + "Direct link" : "Tiešā saite", + "Add to your Nextcloud" : "Pievienot savam Nextcloud", "Share API is disabled" : "Koplietošanas API ir atslēgta", "This share is password-protected" : "Šī koplietotne ir aizsargāta ar paroli", "The password is wrong. Try again." : "Nepareiza parole. Mēģiniet vēlreiz.", @@ -66,9 +69,6 @@ "the link expired" : "saitei beidzies termiņš", "sharing is disabled" : "koplietošana nav ieslēgta", "For more info, please ask the person who sent this link." : "Vairāk informācijas vaicā personai, kas nosūtīja šo saiti.", - "Download" : "Lejupielādēt", - "Direct link" : "Tiešā saite", - "Add to your Nextcloud" : "Pievienot savam Nextcloud", "Download %s" : "Lejupielādēt %s", "Uploading files…" : "Augšupielādē datnes", "Uploaded files:" : "Augšupielādēti faili:" diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js index dd4bc8c0fb2..01b9c792ed0 100644 --- a/apps/files_sharing/l10n/nb.js +++ b/apps/files_sharing/l10n/nb.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt", "Can't change permissions for public share links" : "Kan ikke endre rettigheter for offentlige lenker", "Cannot increase permissions" : "Kan ikke øke tillatelser", + "shared by %s" : "delt av %s", + "Download" : "Last ned", + "Direct link" : "Direkte lenke", + "Add to your Nextcloud" : "Legg til i din Nextcloud", "Share API is disabled" : "Deling API er deaktivert", "File sharing" : "Fildeling", "This share is password-protected" : "Denne delingen er passordbeskyttet", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "lenken er utløpt", "sharing is disabled" : "deling er avskrudd", "For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.", - "shared by %s" : "delt av %s", - "Download" : "Last ned", - "Direct link" : "Direkte lenke", - "Add to your Nextcloud" : "Legg til i din Nextcloud", "Download %s" : "Last ned %s", "Upload files to %s" : "Last opp filer til %s", "Select or drop files" : "Velg eller slipp filer", diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json index a72ccbd92b9..d67c5c2cc2e 100644 --- a/apps/files_sharing/l10n/nb.json +++ b/apps/files_sharing/l10n/nb.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt", "Can't change permissions for public share links" : "Kan ikke endre rettigheter for offentlige lenker", "Cannot increase permissions" : "Kan ikke øke tillatelser", + "shared by %s" : "delt av %s", + "Download" : "Last ned", + "Direct link" : "Direkte lenke", + "Add to your Nextcloud" : "Legg til i din Nextcloud", "Share API is disabled" : "Deling API er deaktivert", "File sharing" : "Fildeling", "This share is password-protected" : "Denne delingen er passordbeskyttet", @@ -100,10 +104,6 @@ "the link expired" : "lenken er utløpt", "sharing is disabled" : "deling er avskrudd", "For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.", - "shared by %s" : "delt av %s", - "Download" : "Last ned", - "Direct link" : "Direkte lenke", - "Add to your Nextcloud" : "Legg til i din Nextcloud", "Download %s" : "Last ned %s", "Upload files to %s" : "Last opp filer til %s", "Select or drop files" : "Velg eller slipp filer", diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js index 0a35c91d20a..ec24420177c 100644 --- a/apps/files_sharing/l10n/nl.js +++ b/apps/files_sharing/l10n/nl.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven", "Can't change permissions for public share links" : "Kan rechten voor openbaar gedeelde links niet wijzigen", "Cannot increase permissions" : "Kan de rechten niet verruimen", + "shared by %s" : "Gedeeld door %s", + "Download" : "Downloaden", + "Direct link" : "Directe link", + "Add to your Nextcloud" : "Toevoegen aan je Nextcloud", "Share API is disabled" : "Delen API is uitgeschakeld", "File sharing" : "Bestand delen", "This share is password-protected" : "Deze gedeelde folder is met een wachtwoord beveiligd", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "de link is verlopen", "sharing is disabled" : "delen is uitgeschakeld", "For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd.", - "shared by %s" : "Gedeeld door %s", - "Download" : "Downloaden", - "Direct link" : "Directe link", - "Add to your Nextcloud" : "Toevoegen aan je Nextcloud", "Download %s" : "Download %s", "Upload files to %s" : "Upload bestanden naar %s", "Select or drop files" : "Selecteer bestanden of sleep ze naar dit venster", diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json index 859c6652e47..2884d31315c 100644 --- a/apps/files_sharing/l10n/nl.json +++ b/apps/files_sharing/l10n/nl.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven", "Can't change permissions for public share links" : "Kan rechten voor openbaar gedeelde links niet wijzigen", "Cannot increase permissions" : "Kan de rechten niet verruimen", + "shared by %s" : "Gedeeld door %s", + "Download" : "Downloaden", + "Direct link" : "Directe link", + "Add to your Nextcloud" : "Toevoegen aan je Nextcloud", "Share API is disabled" : "Delen API is uitgeschakeld", "File sharing" : "Bestand delen", "This share is password-protected" : "Deze gedeelde folder is met een wachtwoord beveiligd", @@ -100,10 +104,6 @@ "the link expired" : "de link is verlopen", "sharing is disabled" : "delen is uitgeschakeld", "For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd.", - "shared by %s" : "Gedeeld door %s", - "Download" : "Downloaden", - "Direct link" : "Directe link", - "Add to your Nextcloud" : "Toevoegen aan je Nextcloud", "Download %s" : "Download %s", "Upload files to %s" : "Upload bestanden naar %s", "Select or drop files" : "Selecteer bestanden of sleep ze naar dit venster", diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index a59a30c9d8d..1b9091270ae 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji", "Can't change permissions for public share links" : "Nie można zmienić uprawnień dla publicznych udziałów", "Cannot increase permissions" : "Nie można zwiększyć uprawnień", + "shared by %s" : "udostępnione przez %s", + "Download" : "Pobierz", + "Direct link" : "Bezpośredni link", + "Add to your Nextcloud" : "Dodaj do swojego Nextcloud", "Share API is disabled" : "API udostępniania jest wyłączone", "This share is password-protected" : "Udostępniony folder chroniony jest hasłem", "The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "link wygasł", "sharing is disabled" : "udostępnianie jest wyłączone", "For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji proszę poprosić osobę, która wysłał ten link.", - "shared by %s" : "udostępnione przez %s", - "Download" : "Pobierz", - "Direct link" : "Bezpośredni link", - "Add to your Nextcloud" : "Dodaj do swojego Nextcloud", "Download %s" : "Pobierz %s", "Upload files to %s" : "Prześlij pliki do %s", "Select or drop files" : "Wybierz lub upuść pliki", diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 3f3e9fd8bfa..bc055c72673 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji", "Can't change permissions for public share links" : "Nie można zmienić uprawnień dla publicznych udziałów", "Cannot increase permissions" : "Nie można zwiększyć uprawnień", + "shared by %s" : "udostępnione przez %s", + "Download" : "Pobierz", + "Direct link" : "Bezpośredni link", + "Add to your Nextcloud" : "Dodaj do swojego Nextcloud", "Share API is disabled" : "API udostępniania jest wyłączone", "This share is password-protected" : "Udostępniony folder chroniony jest hasłem", "The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.", @@ -99,10 +103,6 @@ "the link expired" : "link wygasł", "sharing is disabled" : "udostępnianie jest wyłączone", "For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji proszę poprosić osobę, która wysłał ten link.", - "shared by %s" : "udostępnione przez %s", - "Download" : "Pobierz", - "Direct link" : "Bezpośredni link", - "Add to your Nextcloud" : "Dodaj do swojego Nextcloud", "Download %s" : "Pobierz %s", "Upload files to %s" : "Prześlij pliki do %s", "Select or drop files" : "Wybierz lub upuść pliki", diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index dd0d22c3a26..cc788e2ba18 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe", "Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público", "Cannot increase permissions" : "Não foi possível aumentar as permissões", + "shared by %s" : "compartilhado por %s", + "Download" : "Baixar", + "Direct link" : "Link direto", + "Add to your Nextcloud" : "Adicionar ao seu Nextcloud", "Share API is disabled" : "O compartilhamento de API está desabilitado.", "File sharing" : "Compartilhamento de arquivos", "This share is password-protected" : "Este compartilhamento é protegido por senha", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "o link expirou", "sharing is disabled" : "o compartilhamento está desativado", "For more info, please ask the person who sent this link." : "Para mais informações, pergunte à pessoa que lhe enviou o link.", - "shared by %s" : "compartilhado por %s", - "Download" : "Baixar", - "Direct link" : "Link direto", - "Add to your Nextcloud" : "Adicionar ao seu Nextcloud", "Download %s" : "Baixar %s", "Upload files to %s" : "Enviar arquivos para %s", "Select or drop files" : "Selecione ou solte arquivos", diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index 6829ec95ca6..6d74fc83e66 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe", "Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público", "Cannot increase permissions" : "Não foi possível aumentar as permissões", + "shared by %s" : "compartilhado por %s", + "Download" : "Baixar", + "Direct link" : "Link direto", + "Add to your Nextcloud" : "Adicionar ao seu Nextcloud", "Share API is disabled" : "O compartilhamento de API está desabilitado.", "File sharing" : "Compartilhamento de arquivos", "This share is password-protected" : "Este compartilhamento é protegido por senha", @@ -100,10 +104,6 @@ "the link expired" : "o link expirou", "sharing is disabled" : "o compartilhamento está desativado", "For more info, please ask the person who sent this link." : "Para mais informações, pergunte à pessoa que lhe enviou o link.", - "shared by %s" : "compartilhado por %s", - "Download" : "Baixar", - "Direct link" : "Link direto", - "Add to your Nextcloud" : "Adicionar ao seu Nextcloud", "Download %s" : "Baixar %s", "Upload files to %s" : "Enviar arquivos para %s", "Select or drop files" : "Selecione ou solte arquivos", diff --git a/apps/files_sharing/l10n/pt_PT.js b/apps/files_sharing/l10n/pt_PT.js index a1af9e5d1c8..a7a4929e468 100644 --- a/apps/files_sharing/l10n/pt_PT.js +++ b/apps/files_sharing/l10n/pt_PT.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado", "Can't change permissions for public share links" : "Não é possível alterar as permissões para as hiperligações de partilha pública", "Cannot increase permissions" : "Não é possível incrementar as permissões", + "shared by %s" : "partilhado por %s", + "Download" : "Transferir", + "Direct link" : "Hiperligação direta", + "Add to your Nextcloud" : "Adicionar à sua Nextcloud", "Share API is disabled" : "A partilha de API está desativada", "File sharing" : "Partilha de ficheiro", "This share is password-protected" : "Esta partilha está protegida por palavra-passe", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "a hiperligação expirou", "sharing is disabled" : "a partilha está desativada", "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.", - "shared by %s" : "partilhado por %s", - "Download" : "Transferir", - "Direct link" : "Hiperligação direta", - "Add to your Nextcloud" : "Adicionar à sua Nextcloud", "Download %s" : "Transferir %s", "Upload files to %s" : "Enviar ficheiros para %s", "Select or drop files" : "Seleccione ou solte ficheiros", diff --git a/apps/files_sharing/l10n/pt_PT.json b/apps/files_sharing/l10n/pt_PT.json index 40d57e3ffe8..4fae502552a 100644 --- a/apps/files_sharing/l10n/pt_PT.json +++ b/apps/files_sharing/l10n/pt_PT.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado", "Can't change permissions for public share links" : "Não é possível alterar as permissões para as hiperligações de partilha pública", "Cannot increase permissions" : "Não é possível incrementar as permissões", + "shared by %s" : "partilhado por %s", + "Download" : "Transferir", + "Direct link" : "Hiperligação direta", + "Add to your Nextcloud" : "Adicionar à sua Nextcloud", "Share API is disabled" : "A partilha de API está desativada", "File sharing" : "Partilha de ficheiro", "This share is password-protected" : "Esta partilha está protegida por palavra-passe", @@ -100,10 +104,6 @@ "the link expired" : "a hiperligação expirou", "sharing is disabled" : "a partilha está desativada", "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.", - "shared by %s" : "partilhado por %s", - "Download" : "Transferir", - "Direct link" : "Hiperligação direta", - "Add to your Nextcloud" : "Adicionar à sua Nextcloud", "Download %s" : "Transferir %s", "Upload files to %s" : "Enviar ficheiros para %s", "Select or drop files" : "Seleccione ou solte ficheiros", diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index 1e59cc3779e..8d3072d56bd 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан", "Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно", "Cannot increase permissions" : "Нельзя увеличить права", + "shared by %s" : "поделился %s", + "Download" : "Скачать", + "Direct link" : "Прямая ссылка", + "Add to your Nextcloud" : "Добавить в свой Nextcloud", "Share API is disabled" : "API общего доступа отключён", "File sharing" : "Обмен файлами", "This share is password-protected" : "Общий ресурс защищён паролем", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "истёк срок действия ссылки", "sharing is disabled" : "закрыт общий доступ", "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.", - "shared by %s" : "поделился %s", - "Download" : "Скачать", - "Direct link" : "Прямая ссылка", - "Add to your Nextcloud" : "Добавить в свой Nextcloud", "Download %s" : "Скачать %s", "Upload files to %s" : "Загрузка файлов пользователю %s", "Select or drop files" : "Выберите или перетащите файлы", diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 171f690d8da..0220245e59b 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан", "Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно", "Cannot increase permissions" : "Нельзя увеличить права", + "shared by %s" : "поделился %s", + "Download" : "Скачать", + "Direct link" : "Прямая ссылка", + "Add to your Nextcloud" : "Добавить в свой Nextcloud", "Share API is disabled" : "API общего доступа отключён", "File sharing" : "Обмен файлами", "This share is password-protected" : "Общий ресурс защищён паролем", @@ -100,10 +104,6 @@ "the link expired" : "истёк срок действия ссылки", "sharing is disabled" : "закрыт общий доступ", "For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.", - "shared by %s" : "поделился %s", - "Download" : "Скачать", - "Direct link" : "Прямая ссылка", - "Add to your Nextcloud" : "Добавить в свой Nextcloud", "Download %s" : "Скачать %s", "Upload files to %s" : "Загрузка файлов пользователю %s", "Select or drop files" : "Выберите или перетащите файлы", diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js index 1cf83abda61..1b12fe41b43 100644 --- a/apps/files_sharing/l10n/sk.js +++ b/apps/files_sharing/l10n/sk.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie", "Can't change permissions for public share links" : "Nemožno zmeniť oprávnenia pre verejné sprístupnené odkazy", "Cannot increase permissions" : "Nie je možné navýšiť oprávnenia", + "shared by %s" : "Sprístupnil %s", + "Download" : "Sťahovanie", + "Direct link" : "Priama linka", + "Add to your Nextcloud" : "Pridať do svojho Nextcloud", "Share API is disabled" : "API pre sprístupňovanie je zakázané", "This share is password-protected" : "Táto položka je chránené heslom", "The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "linke vypršala platnosť", "sharing is disabled" : "sprístupňovanie je zakázané", "For more info, please ask the person who sent this link." : "Pre viac informácií kontaktujte osobu, ktorá vám poslala tento odkaz.", - "shared by %s" : "Sprístupnil %s", - "Download" : "Sťahovanie", - "Direct link" : "Priama linka", - "Add to your Nextcloud" : "Pridať do svojho Nextcloud", "Download %s" : "Stiahnuť %s", "Upload files to %s" : "Nahrať súbory do %s", "Select or drop files" : "Vyberte alebo položte súbory", diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json index 51dcf325bc8..dd44d86330e 100644 --- a/apps/files_sharing/l10n/sk.json +++ b/apps/files_sharing/l10n/sk.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie", "Can't change permissions for public share links" : "Nemožno zmeniť oprávnenia pre verejné sprístupnené odkazy", "Cannot increase permissions" : "Nie je možné navýšiť oprávnenia", + "shared by %s" : "Sprístupnil %s", + "Download" : "Sťahovanie", + "Direct link" : "Priama linka", + "Add to your Nextcloud" : "Pridať do svojho Nextcloud", "Share API is disabled" : "API pre sprístupňovanie je zakázané", "This share is password-protected" : "Táto položka je chránené heslom", "The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.", @@ -99,10 +103,6 @@ "the link expired" : "linke vypršala platnosť", "sharing is disabled" : "sprístupňovanie je zakázané", "For more info, please ask the person who sent this link." : "Pre viac informácií kontaktujte osobu, ktorá vám poslala tento odkaz.", - "shared by %s" : "Sprístupnil %s", - "Download" : "Sťahovanie", - "Direct link" : "Priama linka", - "Add to your Nextcloud" : "Pridať do svojho Nextcloud", "Download %s" : "Stiahnuť %s", "Upload files to %s" : "Nahrať súbory do %s", "Select or drop files" : "Vyberte alebo položte súbory", diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js index 440421daa29..4c105e9365f 100644 --- a/apps/files_sharing/l10n/sl.js +++ b/apps/files_sharing/l10n/sl.js @@ -39,6 +39,8 @@ OC.L10N.register( "Wrong or no update parameter given" : "Parameter posodobitve ni podan ali pa je navedena napačna vrednost", "Can't change permissions for public share links" : "Za javne povezave souporabe, spreminjanje dovoljenj ni mogoče.", "Cannot increase permissions" : "Ni mogoče povišati dovoljenj", + "Download" : "Prejmi", + "Direct link" : "Neposredna povezava", "Share API is disabled" : "API za souporabo je izključen", "This share is password-protected" : "To mesto je zaščiteno z geslom.", "The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.", @@ -52,8 +54,6 @@ OC.L10N.register( "the link expired" : "povezava je pretekla,", "sharing is disabled" : "souporaba je onemogočena.", "For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.", - "Download" : "Prejmi", - "Direct link" : "Neposredna povezava", "Download %s" : "Prejmi %s", "Upload files to %s" : "Naloži datoteke v %s", "Select or drop files" : "Izberi ali povleci datoteke", diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json index a367bb57be0..bd64c9744c2 100644 --- a/apps/files_sharing/l10n/sl.json +++ b/apps/files_sharing/l10n/sl.json @@ -37,6 +37,8 @@ "Wrong or no update parameter given" : "Parameter posodobitve ni podan ali pa je navedena napačna vrednost", "Can't change permissions for public share links" : "Za javne povezave souporabe, spreminjanje dovoljenj ni mogoče.", "Cannot increase permissions" : "Ni mogoče povišati dovoljenj", + "Download" : "Prejmi", + "Direct link" : "Neposredna povezava", "Share API is disabled" : "API za souporabo je izključen", "This share is password-protected" : "To mesto je zaščiteno z geslom.", "The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.", @@ -50,8 +52,6 @@ "the link expired" : "povezava je pretekla,", "sharing is disabled" : "souporaba je onemogočena.", "For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.", - "Download" : "Prejmi", - "Direct link" : "Neposredna povezava", "Download %s" : "Prejmi %s", "Upload files to %s" : "Naloži datoteke v %s", "Select or drop files" : "Izberi ali povleci datoteke", diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js index c7bf71ebb48..85a64740a49 100644 --- a/apps/files_sharing/l10n/sq.js +++ b/apps/files_sharing/l10n/sq.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ", "Can't change permissions for public share links" : "S’mund të ndryshohen lejet për lidhje ndarjesh publike", "Cannot increase permissions" : "S’mund të fuqizohen lejet", + "shared by %s" : "ndarë nga %s", + "Download" : "Shkarko", + "Direct link" : "Lidhje e drejtpërdrejtë", + "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj", "Share API is disabled" : "API i ndarjeve është çaktivizuar", "This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim", "The password is wrong. Try again." : "Fjalëkalimi është i gabuar. Riprovoni.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "lidhja ka skaduar", "sharing is disabled" : "ndarjet janë çaktivizuar", "For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.", - "shared by %s" : "ndarë nga %s", - "Download" : "Shkarko", - "Direct link" : "Lidhje e drejtpërdrejtë", - "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj", "Download %s" : "Shkarko %s", "Upload files to %s" : "Ngrako skedarët tek %s", "Select or drop files" : "Përzgjidh ose hiq skedarët", diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json index 7fa345b2030..b7cc40ca9ee 100644 --- a/apps/files_sharing/l10n/sq.json +++ b/apps/files_sharing/l10n/sq.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ", "Can't change permissions for public share links" : "S’mund të ndryshohen lejet për lidhje ndarjesh publike", "Cannot increase permissions" : "S’mund të fuqizohen lejet", + "shared by %s" : "ndarë nga %s", + "Download" : "Shkarko", + "Direct link" : "Lidhje e drejtpërdrejtë", + "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj", "Share API is disabled" : "API i ndarjeve është çaktivizuar", "This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim", "The password is wrong. Try again." : "Fjalëkalimi është i gabuar. Riprovoni.", @@ -99,10 +103,6 @@ "the link expired" : "lidhja ka skaduar", "sharing is disabled" : "ndarjet janë çaktivizuar", "For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.", - "shared by %s" : "ndarë nga %s", - "Download" : "Shkarko", - "Direct link" : "Lidhje e drejtpërdrejtë", - "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj", "Download %s" : "Shkarko %s", "Upload files to %s" : "Ngrako skedarët tek %s", "Select or drop files" : "Përzgjidh ose hiq skedarët", diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js index 1343fa913f6..3c5f3cdaffe 100644 --- a/apps/files_sharing/l10n/sr.js +++ b/apps/files_sharing/l10n/sr.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Погрешан или ненаведен параметер", "Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе", "Cannot increase permissions" : "Не могу да повећам привилегије", + "shared by %s" : "поделио %s", + "Download" : "Преузми", + "Direct link" : "Директна веза", + "Add to your Nextcloud" : "Додајте у свој облак", "Share API is disabled" : "API за дељене је искључен", "File sharing" : "Дељења фајлова", "This share is password-protected" : "Дељење је заштићено лозинком", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "веза је истекла", "sharing is disabled" : "дељење је искључено", "For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.", - "shared by %s" : "поделио %s", - "Download" : "Преузми", - "Direct link" : "Директна веза", - "Add to your Nextcloud" : "Додајте у свој облак", "Download %s" : "Преузми %s", "Upload files to %s" : "Отпремите фајлове на%s", "Select or drop files" : "Одаберите или превуците фајлове", diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json index e1f1091846a..4800772506d 100644 --- a/apps/files_sharing/l10n/sr.json +++ b/apps/files_sharing/l10n/sr.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Погрешан или ненаведен параметер", "Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе", "Cannot increase permissions" : "Не могу да повећам привилегије", + "shared by %s" : "поделио %s", + "Download" : "Преузми", + "Direct link" : "Директна веза", + "Add to your Nextcloud" : "Додајте у свој облак", "Share API is disabled" : "API за дељене је искључен", "File sharing" : "Дељења фајлова", "This share is password-protected" : "Дељење је заштићено лозинком", @@ -100,10 +104,6 @@ "the link expired" : "веза је истекла", "sharing is disabled" : "дељење је искључено", "For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.", - "shared by %s" : "поделио %s", - "Download" : "Преузми", - "Direct link" : "Директна веза", - "Add to your Nextcloud" : "Додајте у свој облак", "Download %s" : "Преузми %s", "Upload files to %s" : "Отпремите фајлове на%s", "Select or drop files" : "Одаберите или превуците фајлове", diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index 025b4a20f65..22d85532a9a 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven", "Can't change permissions for public share links" : "Det går inte att ändra behörigheterna för offentliga länkar", "Cannot increase permissions" : "Kan inte utöka behörigheter", + "shared by %s" : "delad av %s", + "Download" : "Ladda ned", + "Direct link" : "Direktlänk", + "Add to your Nextcloud" : "Lägg till i molnet", "Share API is disabled" : "Delning av API är inaktiverad", "This share is password-protected" : "Den här delningen är lösenordsskyddad", "The password is wrong. Try again." : "Lösenordet är fel. Försök igen.", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "giltighet för länken har gått ut", "sharing is disabled" : "delning är inaktiverat", "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.", - "shared by %s" : "delad av %s", - "Download" : "Ladda ned", - "Direct link" : "Direktlänk", - "Add to your Nextcloud" : "Lägg till i molnet", "Download %s" : "Ladda ned %s", "Upload files to %s" : "Ladda upp filer till %s", "Select or drop files" : "Välj eller dra filer hit", diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 5f5bbb32ef4..cefff885583 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven", "Can't change permissions for public share links" : "Det går inte att ändra behörigheterna för offentliga länkar", "Cannot increase permissions" : "Kan inte utöka behörigheter", + "shared by %s" : "delad av %s", + "Download" : "Ladda ned", + "Direct link" : "Direktlänk", + "Add to your Nextcloud" : "Lägg till i molnet", "Share API is disabled" : "Delning av API är inaktiverad", "This share is password-protected" : "Den här delningen är lösenordsskyddad", "The password is wrong. Try again." : "Lösenordet är fel. Försök igen.", @@ -99,10 +103,6 @@ "the link expired" : "giltighet för länken har gått ut", "sharing is disabled" : "delning är inaktiverat", "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.", - "shared by %s" : "delad av %s", - "Download" : "Ladda ned", - "Direct link" : "Direktlänk", - "Add to your Nextcloud" : "Lägg till i molnet", "Download %s" : "Ladda ned %s", "Upload files to %s" : "Ladda upp filer till %s", "Select or drop files" : "Välj eller dra filer hit", diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js index 9a21d387f8a..cd4aa590728 100644 --- a/apps/files_sharing/l10n/tr.js +++ b/apps/files_sharing/l10n/tr.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", "Can't change permissions for public share links" : "Herkese açık paylaşılan bağlantıların erişim hakları değiştirilemez", "Cannot increase permissions" : "Erişim izinleri yükseltilemez", + "shared by %s" : "%s tarafından paylaşıldı", + "Download" : "İndir", + "Direct link" : "Doğrudan bağlantı", + "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin", "Share API is disabled" : "Paylaşım API arayüzü devre dışı", "File sharing" : "Dosya paylaşımı", "This share is password-protected" : "Bu paylaşım parola korumalı", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "bağlantı süresi dolmuş", "sharing is disabled" : "paylaşım devre dışı bırakılmış", "For more info, please ask the person who sent this link." : "Ayrıntılı bilgi almak için bu bağlantıyı aldığınız kişi ile görüşün.", - "shared by %s" : "%s tarafından paylaşıldı", - "Download" : "İndir", - "Direct link" : "Doğrudan bağlantı", - "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin", "Download %s" : "%s İndir", "Upload files to %s" : "Dosyaları %s konumuna yükle", "Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın", diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json index 4d8778c1d11..418c9901c96 100644 --- a/apps/files_sharing/l10n/tr.json +++ b/apps/files_sharing/l10n/tr.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", "Can't change permissions for public share links" : "Herkese açık paylaşılan bağlantıların erişim hakları değiştirilemez", "Cannot increase permissions" : "Erişim izinleri yükseltilemez", + "shared by %s" : "%s tarafından paylaşıldı", + "Download" : "İndir", + "Direct link" : "Doğrudan bağlantı", + "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin", "Share API is disabled" : "Paylaşım API arayüzü devre dışı", "File sharing" : "Dosya paylaşımı", "This share is password-protected" : "Bu paylaşım parola korumalı", @@ -100,10 +104,6 @@ "the link expired" : "bağlantı süresi dolmuş", "sharing is disabled" : "paylaşım devre dışı bırakılmış", "For more info, please ask the person who sent this link." : "Ayrıntılı bilgi almak için bu bağlantıyı aldığınız kişi ile görüşün.", - "shared by %s" : "%s tarafından paylaşıldı", - "Download" : "İndir", - "Direct link" : "Doğrudan bağlantı", - "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin", "Download %s" : "%s İndir", "Upload files to %s" : "Dosyaları %s konumuna yükle", "Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın", diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js index 1b7a35ccf4c..ea2e6162eb0 100644 --- a/apps/files_sharing/l10n/zh_CN.js +++ b/apps/files_sharing/l10n/zh_CN.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "错误或没有更新参数给出", "Can't change permissions for public share links" : "不能改变公共分享链接权限", "Cannot increase permissions" : "不能增加权限", + "shared by %s" : "共享者 %s", + "Download" : "下载", + "Direct link" : "直接链接", + "Add to your Nextcloud" : "添加到你的 Nextcloud", "Share API is disabled" : "共享 API 已被禁用", "File sharing" : "文件共享", "This share is password-protected" : "这是一个密码保护的共享", @@ -102,10 +106,6 @@ OC.L10N.register( "the link expired" : "链接过期", "sharing is disabled" : "已禁用共享", "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。", - "shared by %s" : "共享者 %s", - "Download" : "下载", - "Direct link" : "直接链接", - "Add to your Nextcloud" : "添加到你的 Nextcloud", "Download %s" : "下载 %s", "Upload files to %s" : "上传文件到 %s", "Select or drop files" : "选择或删除文件", diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json index c76961670a3..34c859c5408 100644 --- a/apps/files_sharing/l10n/zh_CN.json +++ b/apps/files_sharing/l10n/zh_CN.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "错误或没有更新参数给出", "Can't change permissions for public share links" : "不能改变公共分享链接权限", "Cannot increase permissions" : "不能增加权限", + "shared by %s" : "共享者 %s", + "Download" : "下载", + "Direct link" : "直接链接", + "Add to your Nextcloud" : "添加到你的 Nextcloud", "Share API is disabled" : "共享 API 已被禁用", "File sharing" : "文件共享", "This share is password-protected" : "这是一个密码保护的共享", @@ -100,10 +104,6 @@ "the link expired" : "链接过期", "sharing is disabled" : "已禁用共享", "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。", - "shared by %s" : "共享者 %s", - "Download" : "下载", - "Direct link" : "直接链接", - "Add to your Nextcloud" : "添加到你的 Nextcloud", "Download %s" : "下载 %s", "Upload files to %s" : "上传文件到 %s", "Select or drop files" : "选择或删除文件", diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index 89b911a0569..0e08c501c08 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -87,6 +87,10 @@ OC.L10N.register( "Wrong or no update parameter given" : "更新參數不正確或未提供", "Can't change permissions for public share links" : "無法由公開分享的連結變更權限", "Cannot increase permissions" : "無法增加權限", + "shared by %s" : "分享自 %s", + "Download" : "下載", + "Direct link" : "直接連結", + "Add to your Nextcloud" : "加入到您的 Nextcloud", "Share API is disabled" : "分享 API 已停用", "This share is password-protected" : "這個分享有密碼保護", "The password is wrong. Try again." : "請檢查您的密碼並再試一次", @@ -101,10 +105,6 @@ OC.L10N.register( "the link expired" : "連結過期", "sharing is disabled" : "分享功能已停用", "For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多", - "shared by %s" : "分享自 %s", - "Download" : "下載", - "Direct link" : "直接連結", - "Add to your Nextcloud" : "加入到您的 Nextcloud", "Download %s" : "下載 %s", "Upload files to %s" : "上傳檔案到 %s", "Select or drop files" : "選擇或拖曳檔案至此", diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index 94a727e51fb..70aa2dc0a14 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -85,6 +85,10 @@ "Wrong or no update parameter given" : "更新參數不正確或未提供", "Can't change permissions for public share links" : "無法由公開分享的連結變更權限", "Cannot increase permissions" : "無法增加權限", + "shared by %s" : "分享自 %s", + "Download" : "下載", + "Direct link" : "直接連結", + "Add to your Nextcloud" : "加入到您的 Nextcloud", "Share API is disabled" : "分享 API 已停用", "This share is password-protected" : "這個分享有密碼保護", "The password is wrong. Try again." : "請檢查您的密碼並再試一次", @@ -99,10 +103,6 @@ "the link expired" : "連結過期", "sharing is disabled" : "分享功能已停用", "For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多", - "shared by %s" : "分享自 %s", - "Download" : "下載", - "Direct link" : "直接連結", - "Add to your Nextcloud" : "加入到您的 Nextcloud", "Download %s" : "下載 %s", "Upload files to %s" : "上傳檔案到 %s", "Select or drop files" : "選擇或拖曳檔案至此", diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php index af41add250c..ce10c8df8a1 100644 --- a/apps/files_sharing/lib/Capabilities.php +++ b/apps/files_sharing/lib/Capabilities.php @@ -23,6 +23,7 @@ namespace OCA\Files_Sharing; use OCP\Capabilities\ICapability; +use OCP\Constants; use \OCP\IConfig; /** @@ -86,6 +87,7 @@ class Capabilities implements ICapability { $res['group'] = []; $res['group']['enabled'] = $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes') === 'yes'; $res['group']['expire_date']['enabled'] = true; + $res['default_permissions'] = (int)$this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL); } //Federated sharing diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index 990571b778f..1e121d8c868 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -35,8 +35,10 @@ use OCP\AppFramework\OCS\OCSException; use OCP\AppFramework\OCS\OCSForbiddenException; use OCP\AppFramework\OCS\OCSNotFoundException; use OCP\AppFramework\OCSController; +use OCP\Constants; use OCP\Files\Node; use OCP\Files\NotFoundException; +use OCP\IConfig; use OCP\IGroupManager; use OCP\IL10N; use OCP\IUserManager; @@ -75,6 +77,8 @@ class ShareAPIController extends OCSController { private $l; /** @var \OCP\Files\Node */ private $lockedNode; + /** @var IConfig */ + private $config; /** * Share20OCS constructor. @@ -88,6 +92,7 @@ class ShareAPIController extends OCSController { * @param IURLGenerator $urlGenerator * @param string $userId * @param IL10N $l10n + * @param IConfig $config */ public function __construct( $appName, @@ -98,7 +103,8 @@ class ShareAPIController extends OCSController { IRootFolder $rootFolder, IURLGenerator $urlGenerator, $userId, - IL10N $l10n + IL10N $l10n, + IConfig $config ) { parent::__construct($appName, $request); @@ -110,6 +116,7 @@ class ShareAPIController extends OCSController { $this->urlGenerator = $urlGenerator; $this->currentUser = $userId; $this->l = $l10n; + $this->config = $config; } /** @@ -318,7 +325,7 @@ class ShareAPIController extends OCSController { */ public function createShare( $path = null, - $permissions = \OCP\Constants::PERMISSION_ALL, + $permissions = null, $shareType = -1, $shareWith = null, $publicUpload = 'false', @@ -327,6 +334,10 @@ class ShareAPIController extends OCSController { ) { $share = $this->shareManager->newShare(); + if ($permissions === null) { + $permissions = $this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL); + } + // Verify path if ($path === null) { throw new OCSNotFoundException($this->l->t('Please specify a file or folder path')); @@ -347,17 +358,17 @@ class ShareAPIController extends OCSController { throw new OCSNotFoundException($this->l->t('Could not create share')); } - if ($permissions < 0 || $permissions > \OCP\Constants::PERMISSION_ALL) { + if ($permissions < 0 || $permissions > Constants::PERMISSION_ALL) { throw new OCSNotFoundException($this->l->t('invalid permissions')); } // Shares always require read permissions - $permissions |= \OCP\Constants::PERMISSION_READ; + $permissions |= Constants::PERMISSION_READ; if ($path instanceof \OCP\Files\File) { // Single file shares should never have delete or create permissions - $permissions &= ~\OCP\Constants::PERMISSION_DELETE; - $permissions &= ~\OCP\Constants::PERMISSION_CREATE; + $permissions &= ~Constants::PERMISSION_DELETE; + $permissions &= ~Constants::PERMISSION_CREATE; } /* @@ -414,13 +425,13 @@ class ShareAPIController extends OCSController { } $share->setPermissions( - \OCP\Constants::PERMISSION_READ | - \OCP\Constants::PERMISSION_CREATE | - \OCP\Constants::PERMISSION_UPDATE | - \OCP\Constants::PERMISSION_DELETE + Constants::PERMISSION_READ | + Constants::PERMISSION_CREATE | + Constants::PERMISSION_UPDATE | + Constants::PERMISSION_DELETE ); } else { - $share->setPermissions(\OCP\Constants::PERMISSION_READ); + $share->setPermissions(Constants::PERMISSION_READ); } // Set password @@ -447,13 +458,9 @@ class ShareAPIController extends OCSController { $share->setPermissions($permissions); } else if ($shareType === \OCP\Share::SHARE_TYPE_EMAIL) { if ($share->getNodeType() === 'file') { - $share->setPermissions(\OCP\Constants::PERMISSION_READ); + $share->setPermissions(Constants::PERMISSION_READ); } else { - $share->setPermissions( - \OCP\Constants::PERMISSION_READ | - \OCP\Constants::PERMISSION_CREATE | - \OCP\Constants::PERMISSION_UPDATE | - \OCP\Constants::PERMISSION_DELETE); + $share->setPermissions($permissions); } $share->setSharedWith($shareWith); } else if ($shareType === \OCP\Share::SHARE_TYPE_CIRCLE) { @@ -698,23 +705,23 @@ class ShareAPIController extends OCSController { $newPermissions = null; if ($publicUpload === 'true') { - $newPermissions = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE; + $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE; } else if ($publicUpload === 'false') { - $newPermissions = \OCP\Constants::PERMISSION_READ; + $newPermissions = Constants::PERMISSION_READ; } if ($permissions !== null) { $newPermissions = (int)$permissions; - $newPermissions = $newPermissions & ~\OCP\Constants::PERMISSION_SHARE; + $newPermissions = $newPermissions & ~Constants::PERMISSION_SHARE; } if ($newPermissions !== null && !in_array($newPermissions, [ - \OCP\Constants::PERMISSION_READ, - \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE, // legacy - \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE, // correct - \OCP\Constants::PERMISSION_CREATE, // hidden file list - \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE, // allow to edit single files + Constants::PERMISSION_READ, + Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE, // legacy + Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE, // correct + Constants::PERMISSION_CREATE, // hidden file list + Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE, // allow to edit single files ]) ) { throw new OCSBadRequestException($this->l->t('Can\'t change permissions for public share links')); @@ -722,9 +729,9 @@ class ShareAPIController extends OCSController { if ( // legacy - $newPermissions === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE) || + $newPermissions === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE) || // correct - $newPermissions === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE) + $newPermissions === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE) ) { if (!$this->shareManager->shareApiLinkAllowPublicUpload()) { throw new OCSForbiddenException($this->l->t('Public upload disabled by the administrator')); @@ -735,7 +742,7 @@ class ShareAPIController extends OCSController { } // normalize to correct public upload permissions - $newPermissions = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE; + $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE; } if ($newPermissions !== null) { diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php index 795d069c1b8..1f8864fc5f3 100644 --- a/apps/files_sharing/lib/Controller/ShareController.php +++ b/apps/files_sharing/lib/Controller/ShareController.php @@ -38,6 +38,10 @@ namespace OCA\Files_Sharing\Controller; use OC_Files; use OC_Util; use OCA\FederatedFileSharing\FederatedShareProvider; +use OCA\Files_Sharing\Template\ExternalShareMenuAction; +use OCA\Files_Sharing\Template\LinkMenuAction; +use OCP\AppFramework\Http\Template\SimpleMenuAction; +use OCP\AppFramework\Http\Template\PublicTemplateResponse; use OCP\Defaults; use OCP\IL10N; use OCP\Template; @@ -435,7 +439,17 @@ class ShareController extends Controller { $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy(); $csp->addAllowedFrameDomain('\'self\''); - $response = new TemplateResponse($this->appName, 'public', $shareTmpl, 'base'); + + $response = new PublicTemplateResponse($this->appName, 'public', $shareTmpl); + $response->setHeaderTitle($shareTmpl['filename']); + $response->setHeaderDetails($this->l10n->t('shared by %s', [$shareTmpl['displayName']])); + $response->setHeaderActions([ + new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $shareTmpl['downloadURL'], 0), + new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $shareTmpl['downloadURL'], 10, $shareTmpl['fileSize']), + new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $shareTmpl['previewURL']), + new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', $shareTmpl['owner'], $shareTmpl['displayName'], $shareTmpl['filename']), + ]); + $response->setContentSecurityPolicy($csp); $this->emitAccessShareHook($share); diff --git a/apps/files_sharing/lib/Template/ExternalShareMenuAction.php b/apps/files_sharing/lib/Template/ExternalShareMenuAction.php new file mode 100644 index 00000000000..f548a3bc6f1 --- /dev/null +++ b/apps/files_sharing/lib/Template/ExternalShareMenuAction.php @@ -0,0 +1,68 @@ +<?php +/** + * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files_Sharing\Template; + +use OCP\AppFramework\Http\Template\SimpleMenuAction; +use OCP\Util; + +class ExternalShareMenuAction extends SimpleMenuAction { + + /** @var string */ + private $owner; + + /** @var string */ + private $displayname; + + /** @var string */ + private $shareName; + + /** + * ExternalShareMenuAction constructor. + * + * @param string $label + * @param string $icon + * @param string $owner + * @param string $displayname + * @param string $shareName + */ + public function __construct(string $label, string $icon, string $owner, string $displayname, string $shareName) { + parent::__construct('save', $label, $icon); + $this->owner = $owner; + $this->displayname = $displayname; + $this->shareName = $shareName; + } + + public function render(): string { + return '<li>' . + '<a id="save" data-protected="false" data-owner-display-name="' . Util::sanitizeHTML($this->displayname) . '" data-owner="' . Util::sanitizeHTML($this->owner) . '" data-name="' . Util::sanitizeHTML($this->shareName) . '">' . + '<span class="icon ' . Util::sanitizeHTML($this->getIcon()) . '"></span>' . + '<span id="save-button">' . Util::sanitizeHTML($this->getLabel()) . '</span>' . + '<form class="save-form hidden" action="#">' . + '<input type="text" id="remote_address" placeholder="user@yourNextcloud.org">' . + '<button id="save-button-confirm" class="icon-confirm svg" disabled=""></button>' . + '</form>' . + '</a>' . + '</li>'; + } +}
\ No newline at end of file diff --git a/apps/files_sharing/lib/Template/LinkMenuAction.php b/apps/files_sharing/lib/Template/LinkMenuAction.php new file mode 100644 index 00000000000..2fdf83e7026 --- /dev/null +++ b/apps/files_sharing/lib/Template/LinkMenuAction.php @@ -0,0 +1,54 @@ +<?php +/** + * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files_Sharing\Template; + +use OCP\AppFramework\Http\Template\SimpleMenuAction; +use OCP\Util; + +class LinkMenuAction extends SimpleMenuAction { + + /** + * LinkMenuAction constructor. + * + * @param string $label + * @param string $icon + * @param string $link + */ + public function __construct(string $label, string $icon, string $link) { + parent::__construct('directLink-container', $label, $icon, $link); + } + + /** + * @return string + */ + public function render(): string { + return '<li>' . + '<a id="directLink-container">' . + '<span class="icon ' . Util::sanitizeHTML($this->getIcon()) . '"></span>' . + '<label for="directLink">' . Util::sanitizeHTML($this->getLabel()) . '</label>' . + '<input id="directLink" type="text" readonly="" value="' . Util::sanitizeHTML($this->getLink()) . '">' . + '</a>' . + '</li>'; + } +}
\ No newline at end of file diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index 3c2bbe5fb59..698febd4c17 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -7,10 +7,6 @@ <link rel="image_src" href="<?php p($_['previewImage']); ?>" /> <?php endif; ?> -<div id="notification-container"> - <div id="notification" style="display: none;"></div> -</div> - <input type="hidden" id="sharingUserId" value="<?php p($_['owner']) ?>"> <input type="hidden" id="filesApp" name="filesApp" value="1"> <input type="hidden" id="isPublic" name="isPublic" value="1"> @@ -33,61 +29,9 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size); <input type="hidden" name="filesize" value="<?php p($_['nonHumanFileSize']); ?>" id="filesize"> <?php endif; ?> <input type="hidden" name="maxSizeAnimateGif" value="<?php p($_['maxSizeAnimateGif']); ?>" id="maxSizeAnimateGif"> - - -<header><div id="header" class="<?php p((isset($_['folder']) ? 'share-folder' : 'share-file')) ?>"> - <div class="header-left"> - <span id="nextcloud"> - <div class="logo logo-icon svg"></div> - <h1 class="header-appname"> - <?php p($_['filename']); ?> - </h1> - <div class="header-shared-by"> - <?php echo p($l->t('shared by %s', [$_['displayName']])); ?> - </div> - </span> - </div> - - <div class="header-right"> - <?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?> - <a id="share-menutoggle" class="menutoggle icon-more-white"><span class="share-menutoggle-text"><?php p($l->t('Download')) ?></span></a> - <div id="share-menu" class="popovermenu menu"> - <ul> - <li> - <a href="<?php p($_['downloadURL']); ?>" id="download"> - <span class="icon icon-download"></span> - <?php p($l->t('Download'))?> <span class="download-size">(<?php p($_['fileSize']) ?>)</span> - </a> - </li> - <li> - <a id="directLink-container"> - <span class="icon icon-public"></span> - <label for="directLink"><?php p($l->t('Direct link')) ?></label> - <input id="directLink" type="text" readonly value="<?php p($_['previewURL']); ?>"> - </a> - </li> - <?php if ($_['server2serversharing']) { ?> - <li> - <a id="save" data-protected="<?php p($_['protected']) ?>" - data-owner-display-name="<?php p($_['displayName']) ?>" data-owner="<?php p($_['owner']) ?>" data-name="<?php p($_['filename']) ?>"> - <span class="icon icon-external"></span> - <span id="save-button"><?php p($l->t('Add to your Nextcloud')) ?></span> - <form class="save-form hidden" action="#"> - <input type="text" id="remote_address" placeholder="user@yourNextcloud.org"/> - <button id="save-button-confirm" class="icon-confirm svg" disabled></button> - </form> - </a> - </li> - <?php } ?> - </ul> - </div> - <?php } ?> - </div> - </div></header> -<div id="content-wrapper"> - <?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?> +<?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?> <div id="content"> - <div id="preview"> + <div id="preview"> <?php if (isset($_['folder'])): ?> <?php print_unescaped($_['folder']); ?> <?php else: ?> @@ -102,46 +46,47 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size); <div id="imgframe"></div> <?php endif; ?> <?php if ($_['previewURL'] === $_['downloadURL']): ?> - <div class="directDownload"> - <a href="<?php p($_['downloadURL']); ?>" id="downloadFile" class="button"> - <span class="icon icon-download"></span> - <?php p($l->t('Download %s', array($_['filename'])))?> (<?php p($_['fileSize']) ?>) - </a> - </div> + <div class="directDownload"> + <a href="<?php p($_['downloadURL']); ?>" id="downloadFile" class="button"> + <span class="icon icon-download"></span> + <?php p($l->t('Download %s', array($_['filename'])))?> (<?php p($_['fileSize']) ?>) + </a> + </div> <?php endif; ?> <?php endif; ?> </div> + </div> +<?php } else { ?> + <input type="hidden" id="upload-only-interface" value="1"/> + <div id="public-upload"> + <div id="emptycontent" class="<?php if (!empty($_['disclaimer'])) { ?>has-disclaimer<?php } ?>"> + <div id="displayavatar"><div class="avatardiv"></div></div> + <h2><?php p($l->t('Upload files to %s', [$_['shareOwner']])) ?></h2> + <p><span class="icon-folder"></span> <?php p($_['filename']) ?></p> + <?php if (!empty($_['disclaimer'])) { ?> + <p class="disclaimer"><?php p($_['disclaimer']); ?></p> + <?php } ?> + <input type="file" name="files[]" class="hidden" multiple> + + <a href="#" class="button icon-upload"><?php p($l->t('Select or drop files')) ?></a> + <div id="drop-upload-progress-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploading files…')) ?></div> + <div id="drop-upload-done-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploaded files:')) ?></div> + <ul> + </ul> </div> - <?php } else { ?> - <input type="hidden" id="upload-only-interface" value="1"/> - <div id="public-upload"> - <div id="emptycontent" class="<?php if (!empty($_['disclaimer'])) { ?>has-disclaimer<?php } ?>"> - <div id="displayavatar"><div class="avatardiv"></div></div> - <h2><?php p($l->t('Upload files to %s', [$_['shareOwner']])) ?></h2> - <p><span class="icon-folder"></span> <?php p($_['filename']) ?></p> - <?php if (!empty($_['disclaimer'])) { ?> - <p class="disclaimer"><?php p($_['disclaimer']); ?></p> - <?php } ?> - <input type="file" name="files[]" class="hidden" multiple> + </div> +<?php } ?> - <a href="#" class="button icon-upload"><?php p($l->t('Select or drop files')) ?></a> - <div id="drop-upload-progress-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploading files…')) ?></div> - <div id="drop-upload-done-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploaded files:')) ?></div> - <ul> - </ul> - </div> - </div> - <?php } ?> <?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] !== true)): ?> <input type="hidden" name="dir" id="dir" value="" /> <div class="hiddenuploadfield"> - <input type="file" id="file_upload_start" class="hiddenuploadfield" name="files[]" - data-url="<?php p(OCP\Util::linkTo('files', 'ajax/upload.php')); ?>" /> + <input type="file" id="file_upload_start" class="hiddenuploadfield" name="files[]" + data-url="<?php p(OCP\Util::linkTo('files', 'ajax/upload.php')); ?>" /> </div> - <?php endif; ?> - <footer> - <p class="info"> - <?php print_unescaped($theme->getLongFooter()); ?> - </p> - </footer> -</div> +<?php endif; ?> + +<footer> + <p class="info"> + <?php print_unescaped($theme->getLongFooter()); ?> + </p> +</footer> diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php index 6d8e2dd8d84..d7bc169bf4a 100644 --- a/apps/files_sharing/tests/ApiTest.php +++ b/apps/files_sharing/tests/ApiTest.php @@ -37,6 +37,7 @@ use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCS\OCSException; use OCP\AppFramework\OCS\OCSForbiddenException; use OCP\AppFramework\OCS\OCSNotFoundException; +use OCP\IConfig; use OCP\IL10N; use OCP\IRequest; @@ -105,6 +106,7 @@ class ApiTest extends TestCase { ->will($this->returnCallback(function($text, $parameters = []) { return vsprintf($text, $parameters); })); + $config = $this->createMock(IConfig::class); return new ShareAPIController( self::APP_NAME, @@ -115,7 +117,8 @@ class ApiTest extends TestCase { \OC::$server->getRootFolder(), \OC::$server->getURLGenerator(), $userId, - $l + $l, + $config ); } diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php index c438dac2521..a475474e3cf 100644 --- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php @@ -31,6 +31,7 @@ use OCP\AppFramework\OCS\OCSNotFoundException; use OCP\Files\File; use OCP\Files\Folder; use OCP\Files\Storage; +use OCP\IConfig; use OCP\IL10N; use OCA\Files_Sharing\Controller\ShareAPIController; use OCP\Files\NotFoundException; @@ -84,6 +85,9 @@ class ShareAPIControllerTest extends TestCase { /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */ private $l; + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + private $config; + protected function setUp() { $this->shareManager = $this->createMock(IManager::class); $this->shareManager @@ -102,6 +106,7 @@ class ShareAPIControllerTest extends TestCase { ->will($this->returnCallback(function($text, $parameters = []) { return vsprintf($text, $parameters); })); + $this->config = $this->createMock(IConfig::class); $this->ocs = new ShareAPIController( $this->appName, @@ -112,7 +117,8 @@ class ShareAPIControllerTest extends TestCase { $this->rootFolder, $this->urlGenerator, $this->currentUser, - $this->l + $this->l, + $this->config ); } @@ -131,6 +137,7 @@ class ShareAPIControllerTest extends TestCase { $this->urlGenerator, $this->currentUser, $this->l, + $this->config ])->setMethods(['formatShare']) ->getMock(); } @@ -439,6 +446,7 @@ class ShareAPIControllerTest extends TestCase { $this->urlGenerator, $this->currentUser, $this->l, + $this->config ])->setMethods(['canAccessShare']) ->getMock(); @@ -707,6 +715,7 @@ class ShareAPIControllerTest extends TestCase { $this->urlGenerator, $this->currentUser, $this->l, + $this->config ])->setMethods(['formatShare']) ->getMock(); @@ -804,6 +813,7 @@ class ShareAPIControllerTest extends TestCase { $this->urlGenerator, $this->currentUser, $this->l, + $this->config ])->setMethods(['formatShare']) ->getMock(); @@ -1119,6 +1129,7 @@ class ShareAPIControllerTest extends TestCase { $this->urlGenerator, $this->currentUser, $this->l, + $this->config ])->setMethods(['formatShare']) ->getMock(); diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php index 6062ff89065..6dc577a354c 100644 --- a/apps/files_sharing/tests/Controller/ShareControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php @@ -34,7 +34,11 @@ namespace OCA\Files_Sharing\Tests\Controllers; use OC\Files\Filesystem; use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\Files_Sharing\Controller\ShareController; +use OCA\Files_Sharing\Template\ExternalShareMenuAction; +use OCA\Files_Sharing\Template\LinkMenuAction; use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\Template\PublicTemplateResponse; +use OCP\AppFramework\Http\Template\SimpleMenuAction; use OCP\IConfig; use OCP\IL10N; use OCP\ILogger; @@ -84,6 +88,8 @@ class ShareControllerTest extends \Test\TestCase { private $federatedShareProvider; /** @var EventDispatcherInterface | \PHPUnit_Framework_MockObject_MockObject */ private $eventDispatcher; + /** @var IL10N */ + private $l10n; protected function setUp() { parent::setUp(); @@ -102,6 +108,7 @@ class ShareControllerTest extends \Test\TestCase { $this->federatedShareProvider->expects($this->any()) ->method('isIncomingServer2serverShareEnabled')->willReturn(true); $this->eventDispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock(); + $this->l10n = $this->createMock(IL10N::class); $this->shareController = new \OCA\Files_Sharing\Controller\ShareController( $this->appName, @@ -117,7 +124,7 @@ class ShareControllerTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Files\IRootFolder')->getMock(), $this->federatedShareProvider, $this->eventDispatcher, - $this->getMockBuilder(IL10N::class)->getMock(), + $this->l10n, $this->getMockBuilder('\OCP\Defaults')->getMock() ); @@ -348,6 +355,11 @@ class ShareControllerTest extends \Test\TestCase { $this->session->method('exists')->with('public_link_authenticated')->willReturn(true); $this->session->method('get')->with('public_link_authenticated')->willReturn('42'); + $this->urlGenerator->expects($this->at(0)) + ->method('linkToRouteAbsolute') + ->with('files_sharing.sharecontroller.downloadShare', ['token' => 'token']) + ->willReturn('downloadURL'); + $this->previewManager->method('isMimeSupported')->with('text/plain')->willReturn(true); $this->config->method('getSystemValue') @@ -379,6 +391,12 @@ class ShareControllerTest extends \Test\TestCase { ->method('dispatch') ->with('OCA\Files_Sharing::loadAdditionalScripts'); + $this->l10n->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($text, $parameters) { + return vsprintf($text, $parameters); + })); + $response = $this->shareController->showShare('token'); $sharedTmplParams = array( 'displayName' => 'ownerDisplay', @@ -391,7 +409,7 @@ class ShareControllerTest extends \Test\TestCase { 'server2serversharing' => true, 'protected' => 'true', 'dir' => '', - 'downloadURL' => null, + 'downloadURL' => 'downloadURL', 'fileSize' => '33 B', 'nonHumanFileSize' => 33, 'maxSizeAnimateGif' => 10, @@ -404,13 +422,21 @@ class ShareControllerTest extends \Test\TestCase { 'disclaimer' => 'My disclaimer text', 'shareUrl' => null, 'previewImage' => null, - 'previewURL' => null, + 'previewURL' => 'downloadURL', ); $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy(); $csp->addAllowedFrameDomain('\'self\''); - $expectedResponse = new TemplateResponse($this->appName, 'public', $sharedTmplParams, 'base'); + $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams); $expectedResponse->setContentSecurityPolicy($csp); + $expectedResponse->setHeaderTitle($sharedTmplParams['filename']); + $expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['displayName']); + $expectedResponse->setHeaderActions([ + new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $sharedTmplParams['downloadURL'], 0), + new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $sharedTmplParams['downloadURL'], 10, $sharedTmplParams['fileSize']), + new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $sharedTmplParams['previewURL']), + new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', $sharedTmplParams['owner'], $sharedTmplParams['displayName'], $sharedTmplParams['filename']), + ]); $this->assertEquals($expectedResponse, $response); } diff --git a/apps/sharebymail/l10n/cs.js b/apps/sharebymail/l10n/cs.js index fa6e6f262e6..6e6c6aac08d 100644 --- a/apps/sharebymail/l10n/cs.js +++ b/apps/sharebymail/l10n/cs.js @@ -18,7 +18,7 @@ OC.L10N.register( "Password to access {file} was sent to you" : "Heslo pro přístupu k {file} vám bylo zasláno", "Sharing %s failed, this item is already shared with %s" : "Sdílení %s selhalo, tato položka je již s %s sdílena", "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nemůžeme vám zaslat automaticky vygenerované heslo. Nastavte si v osobním nastavení platnou e-mailovou adresu a zkuste to znovu.", - "Failed to send share by email" : "Sdílení emailem se nezdařilo", + "Failed to send share by email" : "Sdílení e-mailem se nezdařilo", "%s shared »%s« with you" : "%s s vámi sdílel(a) »%s»", "%s shared »%s« with you." : "%s s vámi nasdílel(a) »%s«.", "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", @@ -38,6 +38,6 @@ OC.L10N.register( "Allows users to share a personalized link to a file or folder by putting in an email address." : "Dovoluje uživatelům odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.", "Send password by mail" : "Odeslat heslo e-mailem", "Enforce password protection" : "Vynutit ochranu hesla", - "Failed to send share by E-mail" : "Odeslání sdílení E-mailem se nezdařilo" + "Failed to send share by E-mail" : "Odeslání sdílení e-mailem se nezdařilo" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/sharebymail/l10n/cs.json b/apps/sharebymail/l10n/cs.json index 441e5284353..facf02fa98e 100644 --- a/apps/sharebymail/l10n/cs.json +++ b/apps/sharebymail/l10n/cs.json @@ -16,7 +16,7 @@ "Password to access {file} was sent to you" : "Heslo pro přístupu k {file} vám bylo zasláno", "Sharing %s failed, this item is already shared with %s" : "Sdílení %s selhalo, tato položka je již s %s sdílena", "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nemůžeme vám zaslat automaticky vygenerované heslo. Nastavte si v osobním nastavení platnou e-mailovou adresu a zkuste to znovu.", - "Failed to send share by email" : "Sdílení emailem se nezdařilo", + "Failed to send share by email" : "Sdílení e-mailem se nezdařilo", "%s shared »%s« with you" : "%s s vámi sdílel(a) »%s»", "%s shared »%s« with you." : "%s s vámi nasdílel(a) »%s«.", "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", @@ -36,6 +36,6 @@ "Allows users to share a personalized link to a file or folder by putting in an email address." : "Dovoluje uživatelům odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.", "Send password by mail" : "Odeslat heslo e-mailem", "Enforce password protection" : "Vynutit ochranu hesla", - "Failed to send share by E-mail" : "Odeslání sdílení E-mailem se nezdařilo" + "Failed to send share by E-mail" : "Odeslání sdílení e-mailem se nezdařilo" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js index 7df1bbf1125..1f416bb2940 100644 --- a/apps/theming/js/settings-admin.js +++ b/apps/theming/js/settings-admin.js @@ -175,13 +175,40 @@ $(document).ready(function () { $('#upload-login-background').click(); }); + function checkName () { + var length = $('#theming-name').val().length; + try { + if (length > 0) { + return true; + } else { + throw t('theming', 'Name cannot be empty'); + } + } catch (error) { + $('#theming-name').attr('title', error); + $('#theming-name').tooltip({placement: 'top', trigger: 'manual'}); + $('#theming-name').tooltip('fixTitle'); + $('#theming-name').tooltip('show'); + $('#theming-name').addClass('error'); + } + return false; + } + + $('#theming-name').keyup(function() { + if (checkName()) { + $('#theming-name').tooltip('hide'); + $('#theming-name').removeClass('error'); + } + }); + $('#theming-name').change(function(e) { var el = $(this); - $.when(el.focusout()).then(function() { - setThemingValue('name', $(this).val()); - }); - if (e.keyCode == 13) { - setThemingValue('name', $(this).val()); + if(checkName()){ + $.when(el.focusout()).then(function() { + setThemingValue('name', $(this).val()); + }); + if (e.keyCode == 13) { + setThemingValue('name', $(this).val()); + } } }); diff --git a/apps/theming/l10n/cs.js b/apps/theming/l10n/cs.js index 0b336fd1e72..758c96a079c 100644 --- a/apps/theming/l10n/cs.js +++ b/apps/theming/l10n/cs.js @@ -21,7 +21,7 @@ OC.L10N.register( "Unsupported image type" : "Nepodporovaný typ obrázku", "You are already using a custom theme" : "Již používáte vlastní motiv", "Theming" : "Motivy", - "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Uvidí to všichni uživatelé.", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Tato přizpůsobení uvidí všichni uživatelé.", "Name" : "Název", "Reset to default" : "Obnovit výchozí", "Web address" : "Webová adresa", diff --git a/apps/theming/l10n/cs.json b/apps/theming/l10n/cs.json index 81391d6df45..9677825c285 100644 --- a/apps/theming/l10n/cs.json +++ b/apps/theming/l10n/cs.json @@ -19,7 +19,7 @@ "Unsupported image type" : "Nepodporovaný typ obrázku", "You are already using a custom theme" : "Již používáte vlastní motiv", "Theming" : "Motivy", - "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Uvidí to všichni uživatelé.", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Tato přizpůsobení uvidí všichni uživatelé.", "Name" : "Název", "Reset to default" : "Obnovit výchozí", "Web address" : "Webová adresa", diff --git a/apps/updatenotification/l10n/de.js b/apps/updatenotification/l10n/de.js index 3d6902767c7..9b3e66020ef 100644 --- a/apps/updatenotification/l10n/de.js +++ b/apps/updatenotification/l10n/de.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:", "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.", "The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.", + "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}", + "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}", "Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuche ein manuelles Update", "Update notifications" : "Update-Benachrichtigungen", "Channel updated" : "Kanal aktualisiert", diff --git a/apps/updatenotification/l10n/de.json b/apps/updatenotification/l10n/de.json index 2ee19261397..cb63dda4129 100644 --- a/apps/updatenotification/l10n/de.json +++ b/apps/updatenotification/l10n/de.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:", "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.", "The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.", + "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}", + "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}", "Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuche ein manuelles Update", "Update notifications" : "Update-Benachrichtigungen", "Channel updated" : "Kanal aktualisiert", diff --git a/apps/updatenotification/l10n/de_DE.js b/apps/updatenotification/l10n/de_DE.js index a211f685add..303c5bb7e70 100644 --- a/apps/updatenotification/l10n/de_DE.js +++ b/apps/updatenotification/l10n/de_DE.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:", "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.", "The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.", + "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}", + "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}", "Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuchen Sie ein manuelles Update", "Update notifications" : "Update-Benachrichtigungen", "Channel updated" : "Kanal aktualisiert", diff --git a/apps/updatenotification/l10n/de_DE.json b/apps/updatenotification/l10n/de_DE.json index 497cda0fd9a..a11e02cb410 100644 --- a/apps/updatenotification/l10n/de_DE.json +++ b/apps/updatenotification/l10n/de_DE.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:", "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.", "The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.", + "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}", + "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}", "Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuchen Sie ein manuelles Update", "Update notifications" : "Update-Benachrichtigungen", "Channel updated" : "Kanal aktualisiert", diff --git a/apps/updatenotification/l10n/en_GB.js b/apps/updatenotification/l10n/en_GB.js index 3e5676899de..ece9d0f26e2 100644 --- a/apps/updatenotification/l10n/en_GB.js +++ b/apps/updatenotification/l10n/en_GB.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:", "Only notification for app updates are available." : "Only notification for app updates are available.", "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.", + "A new version is available: {newVersionString}" : "A new version is available: {newVersionString}", + "Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}", "Could not start updater, please try the manual update" : "Could not start updater, please try the manual update", "Update notifications" : "Update notifications", "Channel updated" : "Channel updated", diff --git a/apps/updatenotification/l10n/en_GB.json b/apps/updatenotification/l10n/en_GB.json index fb4bdc5f791..cd097b443f0 100644 --- a/apps/updatenotification/l10n/en_GB.json +++ b/apps/updatenotification/l10n/en_GB.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:", "Only notification for app updates are available." : "Only notification for app updates are available.", "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.", + "A new version is available: {newVersionString}" : "A new version is available: {newVersionString}", + "Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}", "Could not start updater, please try the manual update" : "Could not start updater, please try the manual update", "Update notifications" : "Update notifications", "Channel updated" : "Channel updated", diff --git a/apps/updatenotification/l10n/es.js b/apps/updatenotification/l10n/es.js index 9db530a468c..aa1fd331d78 100644 --- a/apps/updatenotification/l10n/es.js +++ b/apps/updatenotification/l10n/es.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos sobre actualizaciones disponibles:", "Only notification for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps", "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor", + "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}", + "Checked on {lastCheckedDate}" : "Comprobado el {lastCheckeDate}", "Could not start updater, please try the manual update" : "No se ha podido iniciar el actualizador. Por favor, prueba a realizar la actualización de forma manual", "Update notifications" : "Actualizar notificaciones", "Channel updated" : "Canal actualizado", diff --git a/apps/updatenotification/l10n/es.json b/apps/updatenotification/l10n/es.json index 1325cab2420..6c1c29cddd3 100644 --- a/apps/updatenotification/l10n/es.json +++ b/apps/updatenotification/l10n/es.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos sobre actualizaciones disponibles:", "Only notification for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps", "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor", + "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}", + "Checked on {lastCheckedDate}" : "Comprobado el {lastCheckeDate}", "Could not start updater, please try the manual update" : "No se ha podido iniciar el actualizador. Por favor, prueba a realizar la actualización de forma manual", "Update notifications" : "Actualizar notificaciones", "Channel updated" : "Canal actualizado", diff --git a/apps/updatenotification/l10n/es_MX.js b/apps/updatenotification/l10n/es_MX.js index c561f7689ec..9839e6dd70e 100644 --- a/apps/updatenotification/l10n/es_MX.js +++ b/apps/updatenotification/l10n/es_MX.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ", + "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}", + "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}", "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", "Update notifications" : "Actualizar notificaciones", "Channel updated" : "Canal actualizado", diff --git a/apps/updatenotification/l10n/es_MX.json b/apps/updatenotification/l10n/es_MX.json index deba8fd45b0..b8985003429 100644 --- a/apps/updatenotification/l10n/es_MX.json +++ b/apps/updatenotification/l10n/es_MX.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ", + "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}", + "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}", "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", "Update notifications" : "Actualizar notificaciones", "Channel updated" : "Canal actualizado", diff --git a/apps/updatenotification/l10n/fr.js b/apps/updatenotification/l10n/fr.js index 849e7655abe..da84e500f58 100644 --- a/apps/updatenotification/l10n/fr.js +++ b/apps/updatenotification/l10n/fr.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :", "Only notification for app updates are available." : "Seules les notifications pour les mises à jour d'applications sont diponibles.", "The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.", + "A new version is available: {newVersionString}" : "Une nouvelle version est disponible : {newVersionString}", + "Checked on {lastCheckedDate}" : "Vérifié le {lastCheckedDate}", "Could not start updater, please try the manual update" : "Impossible de démarrer le système de mise à jour, veuillez essayer de mettre à jour manuellement", "Update notifications" : "Notifications de mises à jour", "Channel updated" : "Canal de mise à jour modifié", diff --git a/apps/updatenotification/l10n/fr.json b/apps/updatenotification/l10n/fr.json index ad4ddb55fe8..75d87c2c1e1 100644 --- a/apps/updatenotification/l10n/fr.json +++ b/apps/updatenotification/l10n/fr.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :", "Only notification for app updates are available." : "Seules les notifications pour les mises à jour d'applications sont diponibles.", "The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.", + "A new version is available: {newVersionString}" : "Une nouvelle version est disponible : {newVersionString}", + "Checked on {lastCheckedDate}" : "Vérifié le {lastCheckedDate}", "Could not start updater, please try the manual update" : "Impossible de démarrer le système de mise à jour, veuillez essayer de mettre à jour manuellement", "Update notifications" : "Notifications de mises à jour", "Channel updated" : "Canal de mise à jour modifié", diff --git a/apps/updatenotification/l10n/it.js b/apps/updatenotification/l10n/it.js index 44ee1ce9bac..9fa8802c8b7 100644 --- a/apps/updatenotification/l10n/it.js +++ b/apps/updatenotification/l10n/it.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Notifica i membri dei seguenti gruppi sugli aggiornamenti disponibili:", "Only notification for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.", "The selected update channel does not support updates of the server." : "Il canale di aggiornamento selezionato non supporta gli aggiornamenti del server.", + "A new version is available: {newVersionString}" : "Una nuova versione è disponibile: {newVersionString}", + "Checked on {lastCheckedDate}" : "Controllato il {lastCheckedDate}", "Could not start updater, please try the manual update" : "Impossibile avviare lo strumento di aggiornamento, prova l'aggiornamento manuale", "Update notifications" : "Notifiche di aggiornamento", "Channel updated" : "Canale aggiornato", diff --git a/apps/updatenotification/l10n/it.json b/apps/updatenotification/l10n/it.json index e350121ef82..28d54113b0e 100644 --- a/apps/updatenotification/l10n/it.json +++ b/apps/updatenotification/l10n/it.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Notifica i membri dei seguenti gruppi sugli aggiornamenti disponibili:", "Only notification for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.", "The selected update channel does not support updates of the server." : "Il canale di aggiornamento selezionato non supporta gli aggiornamenti del server.", + "A new version is available: {newVersionString}" : "Una nuova versione è disponibile: {newVersionString}", + "Checked on {lastCheckedDate}" : "Controllato il {lastCheckedDate}", "Could not start updater, please try the manual update" : "Impossibile avviare lo strumento di aggiornamento, prova l'aggiornamento manuale", "Update notifications" : "Notifiche di aggiornamento", "Channel updated" : "Canale aggiornato", diff --git a/apps/updatenotification/l10n/pt_BR.js b/apps/updatenotification/l10n/pt_BR.js index 0ab67488097..84e6ca2f1c1 100644 --- a/apps/updatenotification/l10n/pt_BR.js +++ b/apps/updatenotification/l10n/pt_BR.js @@ -10,6 +10,8 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:", "Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.", "The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor.", + "A new version is available: {newVersionString}" : "Uma nova versão está disponível: {newVersionString}", + "Checked on {lastCheckedDate}" : "Verificado em {lastCheckedDate}", "Could not start updater, please try the manual update" : "Não foi possível iniciar o atualizador, tente a atualização manual", "Update notifications" : "Notificações de atualização", "Channel updated" : "Canal atualizado", diff --git a/apps/updatenotification/l10n/pt_BR.json b/apps/updatenotification/l10n/pt_BR.json index a81d19e0d35..83f773cb2b3 100644 --- a/apps/updatenotification/l10n/pt_BR.json +++ b/apps/updatenotification/l10n/pt_BR.json @@ -8,6 +8,8 @@ "Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:", "Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.", "The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor.", + "A new version is available: {newVersionString}" : "Uma nova versão está disponível: {newVersionString}", + "Checked on {lastCheckedDate}" : "Verificado em {lastCheckedDate}", "Could not start updater, please try the manual update" : "Não foi possível iniciar o atualizador, tente a atualização manual", "Update notifications" : "Notificações de atualização", "Channel updated" : "Canal atualizado", diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js index eef61e4baad..2ea25b0d166 100644 --- a/apps/user_ldap/l10n/cs.js +++ b/apps/user_ldap/l10n/cs.js @@ -80,7 +80,7 @@ OC.L10N.register( "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Dovoluje přihlášení pomocí LDAP / AD uživatelského jména, což je \"uid\" nebo \"sAMAccountName\", což bude detekováno.", - "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", + "LDAP / AD Email Address:" : "LDAP / AD e-mailová adresa:", "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Povoluje přihlášení pomocí e-mailového atributu. Je povolen \"mail\" a \"mailPrimaryAddress\" allowed.", "Other Attributes:" : "Další atributy:", "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definuje filtr použitý při pokusu o přihlášení. %%uid je nahrazeno uživatelským jménem z přihlašovací akce. Příklad: \"uid=%%uid\"", @@ -172,7 +172,7 @@ OC.L10N.register( "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Ponechte prázné pro výchozí uživatelskou kvótu. Jinak uveďte LDAP / AD atribut.", "Quota Default" : "Výchozí kvóta", "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Přepsat výchozí kvótu pro LDAP uživatele, kteří nemají kvótu nastavenou v poli kvóty.", - "Email Field" : "Pole emailu", + "Email Field" : "Pole e-mailu", "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Nastavit e-mail uživatele na základě LDAP atributu. Ponechte prázdné pro výchozí chování.", "User Home Folder Naming Rule" : "Pravidlo pojmenování domovského adresáře uživatele", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.", diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json index bac439ad44e..50311c17071 100644 --- a/apps/user_ldap/l10n/cs.json +++ b/apps/user_ldap/l10n/cs.json @@ -78,7 +78,7 @@ "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Dovoluje přihlášení pomocí LDAP / AD uživatelského jména, což je \"uid\" nebo \"sAMAccountName\", což bude detekováno.", - "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", + "LDAP / AD Email Address:" : "LDAP / AD e-mailová adresa:", "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Povoluje přihlášení pomocí e-mailového atributu. Je povolen \"mail\" a \"mailPrimaryAddress\" allowed.", "Other Attributes:" : "Další atributy:", "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definuje filtr použitý při pokusu o přihlášení. %%uid je nahrazeno uživatelským jménem z přihlašovací akce. Příklad: \"uid=%%uid\"", @@ -170,7 +170,7 @@ "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Ponechte prázné pro výchozí uživatelskou kvótu. Jinak uveďte LDAP / AD atribut.", "Quota Default" : "Výchozí kvóta", "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Přepsat výchozí kvótu pro LDAP uživatele, kteří nemají kvótu nastavenou v poli kvóty.", - "Email Field" : "Pole emailu", + "Email Field" : "Pole e-mailu", "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Nastavit e-mail uživatele na základě LDAP atributu. Ponechte prázdné pro výchozí chování.", "User Home Folder Naming Rule" : "Pravidlo pojmenování domovského adresáře uživatele", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.", diff --git a/apps/workflowengine/lib/Check/RequestUserAgent.php b/apps/workflowengine/lib/Check/RequestUserAgent.php index 7a8d4a71acf..4191a2f3412 100644 --- a/apps/workflowengine/lib/Check/RequestUserAgent.php +++ b/apps/workflowengine/lib/Check/RequestUserAgent.php @@ -44,9 +44,9 @@ class RequestUserAgent extends AbstractStringCheck { * @param string $value * @return bool */ - public function executeCheck($operator, $value) { + public function executeCheck($operator, $value) { $actualValue = $this->getActualValue(); - if (in_array($operator, ['is', '!is'])) { + if (in_array($operator, ['is', '!is'], true)) { switch ($value) { case 'android': $operator = $operator === 'is' ? 'matches' : '!matches'; @@ -60,6 +60,14 @@ class RequestUserAgent extends AbstractStringCheck { $operator = $operator === 'is' ? 'matches' : '!matches'; $value = IRequest::USER_AGENT_CLIENT_DESKTOP; break; + case 'mail': + if ($operator === 'is') { + return $this->executeStringCheck('matches', IRequest::USER_AGENT_OUTLOOK_ADDON, $actualValue) + || $this->executeStringCheck('matches', IRequest::USER_AGENT_THUNDERBIRD_ADDON, $actualValue); + } + + return $this->executeStringCheck('!matches', IRequest::USER_AGENT_OUTLOOK_ADDON, $actualValue) + && $this->executeStringCheck('!matches', IRequest::USER_AGENT_THUNDERBIRD_ADDON, $actualValue); } } return $this->executeStringCheck($operator, $value, $actualValue); diff --git a/apps/workflowengine/tests/Check/RequestUserAgentTest.php b/apps/workflowengine/tests/Check/RequestUserAgentTest.php new file mode 100644 index 00000000000..fe9da844ccc --- /dev/null +++ b/apps/workflowengine/tests/Check/RequestUserAgentTest.php @@ -0,0 +1,117 @@ +<?php +/** + * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\WorkflowEngine\Tests\Check; + +use OCA\WorkflowEngine\Check\RequestUserAgent; +use OCP\IL10N; +use OCP\IRequest; +use Test\TestCase; + +class RequestUserAgentTest extends TestCase { + + /** @var IRequest|\PHPUnit_Framework_MockObject_MockObject */ + protected $request; + + /** @var RequestUserAgent */ + protected $check; + + public function setUp() { + parent::setUp(); + + $this->request = $this->createMock(IRequest::class); + /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject $l */ + $l = $this->getMockBuilder(IL10N::class) + ->disableOriginalConstructor() + ->getMock(); + $l->expects($this->any()) + ->method('t') + ->willReturnCallback(function($string, $args) { + return sprintf($string, $args); + }); + + $this->check = new RequestUserAgent($l, $this->request); + } + + public function dataExecuteCheck() { + return [ + ['is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], + ['is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['is', 'android', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], + ['is', 'android', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], + ['is', 'android', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], + ['!is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], + ['!is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['!is', 'android', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], + ['!is', 'android', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], + ['!is', 'android', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], + + ['is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], + ['is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['is', 'ios', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], + ['is', 'ios', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], + ['is', 'ios', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], + ['!is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], + ['!is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['!is', 'ios', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], + ['!is', 'ios', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], + ['!is', 'ios', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], + + ['is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], + ['is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['is', 'desktop', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], + ['is', 'desktop', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], + ['is', 'desktop', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], + ['!is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], + ['!is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['!is', 'desktop', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], + ['!is', 'desktop', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], + ['!is', 'desktop', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], + + ['is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], + ['is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['is', 'mail', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], + ['is', 'mail', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], + ['is', 'mail', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], + ['!is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], + ['!is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['!is', 'mail', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], + ['!is', 'mail', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], + ['!is', 'mail', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], + ]; + } + + /** + * @dataProvider dataExecuteCheck + * @param string $operation + * @param string $checkValue + * @param string $actualValue + * @param bool $expected + */ + public function testExecuteCheck($operation, $checkValue, $actualValue, $expected) { + $this->request->expects($this->once()) + ->method('getHeader') + ->willReturn($actualValue); + + /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */ + $this->assertEquals($expected, $this->check->executeCheck($operation, $checkValue)); + } +} diff --git a/core/Controller/OCJSController.php b/core/Controller/OCJSController.php index 8db26dd3d38..37fe17c8dd1 100644 --- a/core/Controller/OCJSController.php +++ b/core/Controller/OCJSController.php @@ -26,6 +26,7 @@ namespace OC\Core\Controller; use bantu\IniGetWrapper\IniGetWrapper; +use OC\CapabilitiesManager; use OC\Template\JSConfigHelper; use OCP\App\IAppManager; use OCP\AppFramework\Controller; @@ -59,6 +60,7 @@ class OCJSController extends Controller { * @param IGroupManager $groupManager * @param IniGetWrapper $iniWrapper * @param IURLGenerator $urlGenerator + * @param CapabilitiesManager $capabilitiesManager */ public function __construct($appName, IRequest $request, @@ -70,7 +72,8 @@ class OCJSController extends Controller { IConfig $config, IGroupManager $groupManager, IniGetWrapper $iniWrapper, - IURLGenerator $urlGenerator) { + IURLGenerator $urlGenerator, + CapabilitiesManager $capabilitiesManager) { parent::__construct($appName, $request); $this->helper = new JSConfigHelper( @@ -82,7 +85,8 @@ class OCJSController extends Controller { $config, $groupManager, $iniWrapper, - $urlGenerator + $urlGenerator, + $capabilitiesManager ); } diff --git a/core/css/apps.scss b/core/css/apps.scss index bcb0878b3c8..9d35f8b8c18 100644 --- a/core/css/apps.scss +++ b/core/css/apps.scss @@ -861,6 +861,10 @@ kbd { line-height: 1.6em; padding: 8px 0; } + > select { + margin: 0; + margin-left: 6px; + } /* Add padding if contains icon+text */ &:not(:empty) { padding-right: 10px !important; @@ -869,17 +873,17 @@ kbd { width: 16px; padding: 0 10px; } + /* checkbox/radio fixes */ + > input.radio + label, > input.checkbox + label { padding: 0 !important; - &::before { - margin: -2px 12px 0; - } + width: 100%; } - > input.radio + label { - padding: 0 !important; - &::before { - margin: -2px 11px 0; - } + > input.checkbox + label::before { + margin: -2px 12px 0; + } + > input.radio + label::before { + margin: -2px 11px 0; } > input:not([type=radio]):not([type=checkbox]):not([type=image]) { width: 150px; diff --git a/core/css/public.scss b/core/css/public.scss new file mode 100644 index 00000000000..3651e701c34 --- /dev/null +++ b/core/css/public.scss @@ -0,0 +1,22 @@ +#body-public { + .header-right { + + span:not(.popovermenu) a { + color: $color-primary-text; + } + + .menutoggle, + #header-primary-action[class^='icon-'] { + padding: 14px; + padding-right: 40px; + background-position: right 15px center; + color: $color-primary-text; + cursor: pointer; + } + + .menutoggle { + padding-right: 10px; + } + + } +}
\ No newline at end of file diff --git a/core/css/server.scss b/core/css/server.scss index 516220f2ad5..9b512038015 100644 --- a/core/css/server.scss +++ b/core/css/server.scss @@ -9,3 +9,4 @@ @import 'multiselect.scss'; @import 'mobile.scss'; @import 'tooltip.scss'; +@import 'public.scss';
\ No newline at end of file diff --git a/core/js/core.json b/core/js/core.json index 6cf6a2489ed..9da91a7f639 100644 --- a/core/js/core.json +++ b/core/js/core.json @@ -46,6 +46,7 @@ "config.js", "public/appconfig.js", "public/comments.js", + "public/publicpage.js", "multiselect.js", "oc-requesttoken.js", "setupchecks.js", diff --git a/core/js/js.js b/core/js/js.js index 9b8829de250..fa92508ff7a 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -80,6 +80,13 @@ var OCP = {}, */ webroot:oc_webroot, + /** + * Capabilities + * + * @type array + */ + _capabilities: window.oc_capabilities || null, + appswebroots:(typeof oc_appswebroots !== 'undefined') ? oc_appswebroots:false, /** * Currently logged in user or null if none @@ -308,6 +315,18 @@ var OCP = {}, return OC.webroot; }, + + /** + * Returns the capabilities + * + * @return {array} capabilities + * + * @since 14.0 + */ + getCapabilities: function() { + return OC._capabilities; + }, + /** * Returns the currently logged in user or null if there is no logged in * user (public page mode) diff --git a/core/js/public/publicpage.js b/core/js/public/publicpage.js new file mode 100644 index 00000000000..31b862ba12a --- /dev/null +++ b/core/js/public/publicpage.js @@ -0,0 +1,29 @@ +/* + * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +$(document).ready(function () { + + console.log('public'); + $('#body-public .header-right .menutoggle').click(function() { + $(this).next('.popovermenu').toggleClass('open'); + }); +}); diff --git a/core/js/shareitemmodel.js b/core/js/shareitemmodel.js index b699513c734..e7824aca33a 100644 --- a/core/js/shareitemmodel.js +++ b/core/js/shareitemmodel.js @@ -158,23 +158,24 @@ var shareType = attributes.shareType; attributes = _.extend({}, attributes); - // Default permissions are Edit (CRUD) and Share - // Check if these permissions are possible - var permissions = OC.PERMISSION_READ; + // get default permissions + var defaultPermissions = OC.getCapabilities()['files_sharing']['default_permissions'] || OC.PERMISSION_ALL; + var possiblePermissions = OC.PERMISSION_READ; + if (this.updatePermissionPossible()) { - permissions = permissions | OC.PERMISSION_UPDATE; + possiblePermissions = possiblePermissions | OC.PERMISSION_UPDATE; } if (this.createPermissionPossible()) { - permissions = permissions | OC.PERMISSION_CREATE; + possiblePermissions = possiblePermissions | OC.PERMISSION_CREATE; } if (this.deletePermissionPossible()) { - permissions = permissions | OC.PERMISSION_DELETE; + possiblePermissions = possiblePermissions | OC.PERMISSION_DELETE; } if (this.configModel.get('isResharingAllowed') && (this.sharePermissionPossible())) { - permissions = permissions | OC.PERMISSION_SHARE; + possiblePermissions = possiblePermissions | OC.PERMISSION_SHARE; } - attributes.permissions = permissions; + attributes.permissions = defaultPermissions & possiblePermissions; if (_.isUndefined(attributes.path)) { attributes.path = this.fileInfoModel.getFullPath(); } diff --git a/core/js/tests/specs/shareitemmodelSpec.js b/core/js/tests/specs/shareitemmodelSpec.js index 3b17051508e..0a345786b73 100644 --- a/core/js/tests/specs/shareitemmodelSpec.js +++ b/core/js/tests/specs/shareitemmodelSpec.js @@ -25,6 +25,7 @@ describe('OC.Share.ShareItemModel', function() { var fetchSharesDeferred, fetchReshareDeferred; var fileInfoModel, configModel, model; var oldCurrentUser; + var capsSpec; beforeEach(function() { oldCurrentUser = OC.currentUser; @@ -56,8 +57,15 @@ describe('OC.Share.ShareItemModel', function() { configModel: configModel, fileInfoModel: fileInfoModel }); + capsSpec = sinon.stub(OC, 'getCapabilities'); + capsSpec.returns({ + 'files_sharing': { + 'default_permissions': OC.PERMISSION_ALL + } + }); }); afterEach(function() { + capsSpec.restore(); if (fetchSharesStub) { fetchSharesStub.restore(); } @@ -527,7 +535,22 @@ describe('OC.Share.ShareItemModel', function() { }); expect( testWithPermissions(OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE) - ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_UPDATE); + ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE); + }); + it('uses default permissions from capabilities', function() { + capsSpec.returns({ + 'files_sharing': { + 'default_permissions': OC.PERMISSION_READ | OC.PERMISSION_CREATE | OC.PERMISSION_SHARE + } + }); + configModel.set('isResharingAllowed', true); + model.set({ + reshare: {}, + shares: [] + }); + expect( + testWithPermissions(OC.PERMISSION_ALL) + ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_CREATE | OC.PERMISSION_SHARE); }); }); }); diff --git a/core/l10n/cs.js b/core/l10n/cs.js index d709e8f76b7..0038bdff2a4 100644 --- a/core/l10n/cs.js +++ b/core/l10n/cs.js @@ -18,14 +18,14 @@ OC.L10N.register( "Password reset is disabled" : "Reset hesla je vypnut", "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", - "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat e-mail pro změnu hesla, protože u tohoto uživatelského jména není uvedena e-mailová adresa. Kontaktujte prosím svého administrátora.", "%s password reset" : "reset hesla %s", "Password reset" : "Reset hesla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.", "Reset your password" : "Resetovat vaše heslo", - "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.", - "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", + "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat e-mail pro změnu hesla. Kontaktujte prosím administrátora.", + "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat e-mail pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", "Preparing update" : "Příprava na aktualizaci", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "Upozornění opravy:", @@ -74,14 +74,14 @@ OC.L10N.register( "Failed to authenticate, try again" : "Ověření selhalo, zkusit znovu", "seconds ago" : "před pár sekundami", "Logging in …" : "Přihlašování …", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši emailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Po vyresetování vašeho hesla nebudete moc získat data zpět.<br/>Pokud si nejste jisti tím co děláte, předtím než budete pokračovat, kontaktujte vašeho administrátora.<br/>Opravdu chcete pokračovat?", "I know what I'm doing" : "Vím co dělám", "Password can not be changed. Please contact your administrator." : "Heslo nelze změnit. Kontaktujte prosím svého správce systému.", "Reset password" : "Obnovit heslo", "No" : "Ne", "Yes" : "Ano", - "No files in here" : "Nesou zde žádné soubory", + "No files in here" : "Nejsou zde žádné soubory", "Choose" : "Vybrat", "Copy" : "Zkopírovat", "Move" : "Přesunout", @@ -128,7 +128,7 @@ OC.L10N.register( "Link" : "Odkaz", "Password protect" : "Chránit heslem", "Allow editing" : "Povolit úpravy", - "Email link to person" : "Odeslat osobě odkaz emailem", + "Email link to person" : "Odeslat osobě odkaz e-mailem", "Send" : "Odeslat", "Allow upload and editing" : "Povolit nahrávání a úpravy", "Read only" : "Pouze pro čtení", @@ -139,7 +139,7 @@ OC.L10N.register( "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} sdílí pomocí odkazu", "group" : "skupina", "remote" : "vzdálený", - "email" : "email", + "email" : "e-mail", "shared by {sharer}" : "Sdílel {sharer}", "Unshare" : "Zrušit sdílení", "Can reshare" : "Může znovu sdílet", diff --git a/core/l10n/cs.json b/core/l10n/cs.json index b9d55587763..6c9b6f9cd5f 100644 --- a/core/l10n/cs.json +++ b/core/l10n/cs.json @@ -16,14 +16,14 @@ "Password reset is disabled" : "Reset hesla je vypnut", "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", - "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat e-mail pro změnu hesla, protože u tohoto uživatelského jména není uvedena e-mailová adresa. Kontaktujte prosím svého administrátora.", "%s password reset" : "reset hesla %s", "Password reset" : "Reset hesla", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.", "Reset your password" : "Resetovat vaše heslo", - "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.", - "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", + "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat e-mail pro změnu hesla. Kontaktujte prosím administrátora.", + "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat e-mail pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", "Preparing update" : "Příprava na aktualizaci", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "Upozornění opravy:", @@ -72,14 +72,14 @@ "Failed to authenticate, try again" : "Ověření selhalo, zkusit znovu", "seconds ago" : "před pár sekundami", "Logging in …" : "Přihlašování …", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši emailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Po vyresetování vašeho hesla nebudete moc získat data zpět.<br/>Pokud si nejste jisti tím co děláte, předtím než budete pokračovat, kontaktujte vašeho administrátora.<br/>Opravdu chcete pokračovat?", "I know what I'm doing" : "Vím co dělám", "Password can not be changed. Please contact your administrator." : "Heslo nelze změnit. Kontaktujte prosím svého správce systému.", "Reset password" : "Obnovit heslo", "No" : "Ne", "Yes" : "Ano", - "No files in here" : "Nesou zde žádné soubory", + "No files in here" : "Nejsou zde žádné soubory", "Choose" : "Vybrat", "Copy" : "Zkopírovat", "Move" : "Přesunout", @@ -126,7 +126,7 @@ "Link" : "Odkaz", "Password protect" : "Chránit heslem", "Allow editing" : "Povolit úpravy", - "Email link to person" : "Odeslat osobě odkaz emailem", + "Email link to person" : "Odeslat osobě odkaz e-mailem", "Send" : "Odeslat", "Allow upload and editing" : "Povolit nahrávání a úpravy", "Read only" : "Pouze pro čtení", @@ -137,7 +137,7 @@ "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} sdílí pomocí odkazu", "group" : "skupina", "remote" : "vzdálený", - "email" : "email", + "email" : "e-mail", "shared by {sharer}" : "Sdílel {sharer}", "Unshare" : "Zrušit sdílení", "Can reshare" : "Může znovu sdílet", diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js index dbc5c1aa385..32fa7b46ca0 100644 --- a/core/l10n/es_MX.js +++ b/core/l10n/es_MX.js @@ -315,6 +315,13 @@ OC.L10N.register( "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", "This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ", "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "Thank you for your patience." : "Gracias por tu paciencia." + "Thank you for your patience." : "Gracias por tu paciencia.", + "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos", + "Shared with {recipients}" : "Compartido con {recipients}", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación</a>.", + "Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Tu PHP no cuenta con siporte de freetype. Esto producirá imagenes rotas en el perfil e interfaz de configuraciones. " }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json index 0939fe8fb70..c6736d04f9c 100644 --- a/core/l10n/es_MX.json +++ b/core/l10n/es_MX.json @@ -313,6 +313,13 @@ "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", "This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ", "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", - "Thank you for your patience." : "Gracias por tu paciencia." + "Thank you for your patience." : "Gracias por tu paciencia.", + "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos", + "Shared with {recipients}" : "Compartido con {recipients}", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación</a>.", + "Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Tu PHP no cuenta con siporte de freetype. Esto producirá imagenes rotas en el perfil e interfaz de configuraciones. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/templates/layout.public.php b/core/templates/layout.public.php new file mode 100644 index 00000000000..b9451fe05a2 --- /dev/null +++ b/core/templates/layout.public.php @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" > +<head data-user="<?php p($_['user_uid']); ?>" data-user-displayname="<?php p($_['user_displayname']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>"> + <meta charset="utf-8"> + <title> + <?php + p(!empty($_['application'])?$_['application'].' - ':''); + p($theme->getTitle()); + ?> + </title> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="referrer" content="never"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> + <meta name="apple-itunes-app" content="app-id=<?php p($theme->getiTunesAppId()); ?>"> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black"> + <meta name="apple-mobile-web-app-title" content="<?php p((!empty($_['application']) && $_['appid']!='files')? $_['application']:$theme->getTitle()); ?>"> + <meta name="mobile-web-app-capable" content="yes"> + <meta name="theme-color" content="<?php p($theme->getColorPrimary()); ?>"> + <link rel="icon" href="<?php print_unescaped(image_path($_['appid'], 'favicon.ico')); /* IE11+ supports png */ ?>"> + <link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path($_['appid'], 'favicon-touch.png')); ?>"> + <link rel="mask-icon" sizes="any" href="<?php print_unescaped(image_path($_['appid'], 'favicon-mask.svg')); ?>" color="<?php p($theme->getColorPrimary()); ?>"> + <link rel="manifest" href="<?php print_unescaped(image_path($_['appid'], 'manifest.json')); ?>"> + <?php emit_css_loading_tags($_); ?> + <?php emit_script_loading_tags($_); ?> + <?php print_unescaped($_['headers']); ?> +</head> +<body id="<?php p($_['bodyid']);?>"> +<?php include('layout.noscript.warning.php'); ?> +<header> + <div id="header" class="<?php p($_['header-classes']); ?>"> + <div class="header-left"> + <span id="nextcloud"> + <div class="logo logo-icon svg"></div> + <h1 class="header-appname"> + <?php p($template->getHeaderTitle()); ?> + </h1> + <div class="header-shared-by"> + <?php p($template->getHeaderDetails()) ?> + </div> + </span> + </div> + + <?php + /** @var \OCP\AppFramework\Http\Template\PublicTemplateResponse $template */ + if($template->getActionCount() !== 0) { + $primary = $template->getPrimaryAction(); + $others = $template->getOtherActions(); + ?> + <div class="header-right"> + <span id="header-primary-action" class="<?php if($template->getActionCount() === 1) { p($primary->getIcon()); } ?>"> + <a href="<?php p($primary->getLink()); ?>"> + <span class="share-menutoggle-text"><?php p($primary->getLabel()) ?></span> + </a> + </span> + <?php if($template->getActionCount()>1) { ?> + <span id="header-actions-toggle" class="menutoggle icon-more-white"></span> + <div id="share-menu" class="popovermenu menu"> + <ul> + <?php + /** @var \OCP\AppFramework\Http\Template\IMenuAction $action */ + foreach($template->getOtherActions() as $action) { + print_unescaped($action->render()); + } + ?> + </ul> + </div> + <?php } ?> + </div> + <?php } ?> + </div> +</header> +<div id="content-wrapper"> + <div id="content" class="app-<?php p($_['appid']) ?>" role="main"> + <?php print_unescaped($_['content']); ?> + </div> +</div> + +</body> +</html> diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index b3158ac7e04..68be5e2d595 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -40,6 +40,9 @@ return array( 'OCP\\AppFramework\\Http\\Response' => $baseDir . '/lib/public/AppFramework/Http/Response.php', 'OCP\\AppFramework\\Http\\StreamResponse' => $baseDir . '/lib/public/AppFramework/Http/StreamResponse.php', 'OCP\\AppFramework\\Http\\TemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/TemplateResponse.php', + 'OCP\\AppFramework\\Http\\Template\\IMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/IMenuAction.php', + 'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php', + 'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php', 'OCP\\AppFramework\\IAppContainer' => $baseDir . '/lib/public/AppFramework/IAppContainer.php', 'OCP\\AppFramework\\Middleware' => $baseDir . '/lib/public/AppFramework/Middleware.php', 'OCP\\AppFramework\\OCSController' => $baseDir . '/lib/public/AppFramework/OCSController.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 65b36cc489e..81f21f31c21 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -70,6 +70,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\AppFramework\\Http\\Response' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Response.php', 'OCP\\AppFramework\\Http\\StreamResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/StreamResponse.php', 'OCP\\AppFramework\\Http\\TemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/TemplateResponse.php', + 'OCP\\AppFramework\\Http\\Template\\IMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/IMenuAction.php', + 'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php', + 'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php', 'OCP\\AppFramework\\IAppContainer' => __DIR__ . '/../../..' . '/lib/public/AppFramework/IAppContainer.php', 'OCP\\AppFramework\\Middleware' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Middleware.php', 'OCP\\AppFramework\\OCSController' => __DIR__ . '/../../..' . '/lib/public/AppFramework/OCSController.php', diff --git a/lib/l10n/de.js b/lib/l10n/de.js index 1bf717dbbe9..7f63c709832 100644 --- a/lib/l10n/de.js +++ b/lib/l10n/de.js @@ -27,6 +27,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.", "Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.", + "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein", "Unknown filetype" : "Unbekannter Dateityp", "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", diff --git a/lib/l10n/de.json b/lib/l10n/de.json index d90b44f67b3..9c0a2aa2dbe 100644 --- a/lib/l10n/de.json +++ b/lib/l10n/de.json @@ -25,6 +25,7 @@ "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.", "Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.", + "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein", "Unknown filetype" : "Unbekannter Dateityp", "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index 5330dcd7ccd..09e5cff16a2 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -27,6 +27,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.", "Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.", + "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein", "Unknown filetype" : "Unbekannter Dateityp", "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index 8dc85c49bbb..4d20927ce64 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -25,6 +25,7 @@ "Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s", "Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.", "Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.", + "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein", "Unknown filetype" : "Unbekannter Dateityp", "Invalid image" : "Ungültiges Bild", "Avatar image is not square" : "Benutzerbild ist nicht quadratisch", diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index b28fe47c46b..7e7c77430ae 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -27,6 +27,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Following platforms are supported: %s", "Server version %s or higher is required." : "Server version %s or higher is required.", "Server version %s or lower is required." : "Server version %s or lower is required.", + "Logged in user must be an admin" : "Logged in user must be an admin", "Unknown filetype" : "Unknown filetype", "Invalid image" : "Invalid image", "Avatar image is not square" : "Avatar image is not square", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index bf8ea58a8f2..393cf15a33a 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -25,6 +25,7 @@ "Following platforms are supported: %s" : "Following platforms are supported: %s", "Server version %s or higher is required." : "Server version %s or higher is required.", "Server version %s or lower is required." : "Server version %s or lower is required.", + "Logged in user must be an admin" : "Logged in user must be an admin", "Unknown filetype" : "Unknown filetype", "Invalid image" : "Invalid image", "Avatar image is not square" : "Avatar image is not square", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index a0f23e34d2c..8f12777595b 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -27,6 +27,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", "Server version %s or higher is required." : "Se necesita la versión %s o superior del servidor.", "Server version %s or lower is required." : "Se necesita la versión %s o inferior del servidor. ", + "Logged in user must be an admin" : "El usuario registrado debe ser un administrador", "Unknown filetype" : "Tipo de archivo desconocido", "Invalid image" : "Imagen inválida", "Avatar image is not square" : "La imagen de avatar no es cuadrada", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index ec5252d028f..4160dbcbad1 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -25,6 +25,7 @@ "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", "Server version %s or higher is required." : "Se necesita la versión %s o superior del servidor.", "Server version %s or lower is required." : "Se necesita la versión %s o inferior del servidor. ", + "Logged in user must be an admin" : "El usuario registrado debe ser un administrador", "Unknown filetype" : "Tipo de archivo desconocido", "Invalid image" : "Imagen inválida", "Avatar image is not square" : "La imagen de avatar no es cuadrada", diff --git a/lib/l10n/es_MX.js b/lib/l10n/es_MX.js index 47f76fb7755..d807643d2da 100644 --- a/lib/l10n/es_MX.js +++ b/lib/l10n/es_MX.js @@ -228,6 +228,19 @@ OC.L10N.register( "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", - "Personal" : "Personal" + "Personal" : "Personal", + "Admin" : "Admin", + "DB Error: \"%s\"" : "DB Error: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre:%s, contraseña:%s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos de %s, porque los permisos excenden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se presentó una falla al establecer los permisos de %s, porque no se encontró el elemento", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No se puede limpíar la fecha de expiración. Se requiere que los elementos compartidos tengan una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No se pueden compartir archivos con privilegios para borrar", + "Files can't be shared with create permissions" : "No se pueden compartir archivos con privilegios para crear", + "Cannot set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración más alla de %s días en el futuro", + "No app name specified" : "No se especificó el nombre de la aplicación", + "App '%s' could not be installed!" : "¡No se pudo instalar la aplciación '%s'!" }, "nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/es_MX.json b/lib/l10n/es_MX.json index 1d6618782f8..58d46203cc9 100644 --- a/lib/l10n/es_MX.json +++ b/lib/l10n/es_MX.json @@ -226,6 +226,19 @@ "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", - "Personal" : "Personal" + "Personal" : "Personal", + "Admin" : "Admin", + "DB Error: \"%s\"" : "DB Error: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre:%s, contraseña:%s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos de %s, porque los permisos excenden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se presentó una falla al establecer los permisos de %s, porque no se encontró el elemento", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No se puede limpíar la fecha de expiración. Se requiere que los elementos compartidos tengan una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No se pueden compartir archivos con privilegios para borrar", + "Files can't be shared with create permissions" : "No se pueden compartir archivos con privilegios para crear", + "Cannot set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración más alla de %s días en el futuro", + "No app name specified" : "No se especificó el nombre de la aplicación", + "App '%s' could not be installed!" : "¡No se pudo instalar la aplciación '%s'!" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js index 61d35224fd0..ef8749d3060 100644 --- a/lib/l10n/fr.js +++ b/lib/l10n/fr.js @@ -27,6 +27,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Les plateformes suivantes sont prises en charge : %s", "Server version %s or higher is required." : "Un serveur de version %s ou supérieure est requis.", "Server version %s or lower is required." : "Un serveur de version %s ou inférieure est requis.", + "Logged in user must be an admin" : "L'utilisateur connecté doit être un administrateur", "Unknown filetype" : "Type de fichier inconnu", "Invalid image" : "Image non valable", "Avatar image is not square" : "L'image d'avatar n'est pas carré", diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json index 25801b27ac7..8f9b797b1d5 100644 --- a/lib/l10n/fr.json +++ b/lib/l10n/fr.json @@ -25,6 +25,7 @@ "Following platforms are supported: %s" : "Les plateformes suivantes sont prises en charge : %s", "Server version %s or higher is required." : "Un serveur de version %s ou supérieure est requis.", "Server version %s or lower is required." : "Un serveur de version %s ou inférieure est requis.", + "Logged in user must be an admin" : "L'utilisateur connecté doit être un administrateur", "Unknown filetype" : "Type de fichier inconnu", "Invalid image" : "Image non valable", "Avatar image is not square" : "L'image d'avatar n'est pas carré", diff --git a/lib/l10n/it.js b/lib/l10n/it.js index f9c643e9164..b8f07f33e5a 100644 --- a/lib/l10n/it.js +++ b/lib/l10n/it.js @@ -27,6 +27,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "Sono supportate le seguenti piattaforme: %s", "Server version %s or higher is required." : "È richiesta la versione %s o successiva.", "Server version %s or lower is required." : "È richiesta la versione %s o precedente.", + "Logged in user must be an admin" : "L'utente che ha eseguito l'accesso deve essere un amministratore ", "Unknown filetype" : "Tipo di file sconosciuto", "Invalid image" : "Immagine non valida", "Avatar image is not square" : "L'immagine personale non è quadrata", diff --git a/lib/l10n/it.json b/lib/l10n/it.json index 099ee47f9ff..32dbd8c787e 100644 --- a/lib/l10n/it.json +++ b/lib/l10n/it.json @@ -25,6 +25,7 @@ "Following platforms are supported: %s" : "Sono supportate le seguenti piattaforme: %s", "Server version %s or higher is required." : "È richiesta la versione %s o successiva.", "Server version %s or lower is required." : "È richiesta la versione %s o precedente.", + "Logged in user must be an admin" : "L'utente che ha eseguito l'accesso deve essere un amministratore ", "Unknown filetype" : "Tipo di file sconosciuto", "Invalid image" : "Immagine non valida", "Avatar image is not square" : "L'immagine personale non è quadrata", diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js index 6ff70dabf4a..d7a042194de 100644 --- a/lib/l10n/pt_BR.js +++ b/lib/l10n/pt_BR.js @@ -27,6 +27,7 @@ OC.L10N.register( "Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s", "Server version %s or higher is required." : "É requerido um servidor da versão %s ou superior.", "Server version %s or lower is required." : "É requerido um servidor da versão %s ou abaixo.", + "Logged in user must be an admin" : "O usuário conectado deve ser um administrador", "Unknown filetype" : "Tipo de arquivo desconhecido", "Invalid image" : "Imagem inválida", "Avatar image is not square" : "A imagem do avatar não é quadrada", diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json index 02c59492bc9..9a0a8ceb5cf 100644 --- a/lib/l10n/pt_BR.json +++ b/lib/l10n/pt_BR.json @@ -25,6 +25,7 @@ "Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s", "Server version %s or higher is required." : "É requerido um servidor da versão %s ou superior.", "Server version %s or lower is required." : "É requerido um servidor da versão %s ou abaixo.", + "Logged in user must be an admin" : "O usuário conectado deve ser um administrador", "Unknown filetype" : "Tipo de arquivo desconhecido", "Invalid image" : "Imagem inválida", "Avatar image is not square" : "A imagem do avatar não é quadrada", diff --git a/lib/private/Log.php b/lib/private/Log.php index bed0321bef3..e47f68807d3 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -129,7 +130,7 @@ class Log implements ILogger { if($logger === null) { $logType = $this->config->getValue('log_type', 'file'); $this->logger = static::getLogClass($logType); - call_user_func(array($this->logger, 'init')); + call_user_func([$this->logger, 'init']); } else { $this->logger = $logger; } @@ -148,7 +149,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function emergency($message, array $context = array()) { + public function emergency(string $message, array $context = []) { $this->log(Util::FATAL, $message, $context); } @@ -162,7 +163,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function alert($message, array $context = array()) { + public function alert(string $message, array $context = []) { $this->log(Util::ERROR, $message, $context); } @@ -175,7 +176,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function critical($message, array $context = array()) { + public function critical(string $message, array $context = []) { $this->log(Util::ERROR, $message, $context); } @@ -187,7 +188,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function error($message, array $context = array()) { + public function error(string $message, array $context = []) { $this->log(Util::ERROR, $message, $context); } @@ -201,7 +202,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function warning($message, array $context = array()) { + public function warning(string $message, array $context = []) { $this->log(Util::WARN, $message, $context); } @@ -212,7 +213,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function notice($message, array $context = array()) { + public function notice(string $message, array $context = []) { $this->log(Util::INFO, $message, $context); } @@ -225,7 +226,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function info($message, array $context = array()) { + public function info(string $message, array $context = []) { $this->log(Util::INFO, $message, $context); } @@ -236,7 +237,7 @@ class Log implements ILogger { * @param array $context * @return void */ - public function debug($message, array $context = array()) { + public function debug(string $message, array $context = []) { $this->log(Util::DEBUG, $message, $context); } @@ -244,12 +245,12 @@ class Log implements ILogger { /** * Logs with an arbitrary level. * - * @param mixed $level + * @param int $level * @param string $message * @param array $context * @return void */ - public function log($level, $message, array $context = array()) { + public function log(int $level, string $message, array $context = []) { $minLevel = min($this->config->getValue('loglevel', Util::WARN), Util::FATAL); $logCondition = $this->config->getValue('log.condition', []); @@ -272,7 +273,7 @@ class Log implements ILogger { $app = 'no app in context'; } // interpolate $message as defined in PSR-3 - $replace = array(); + $replace = []; foreach ($context as $key => $val) { $replace['{' . $key . '}'] = $val; } @@ -318,7 +319,7 @@ class Log implements ILogger { if ($level >= $minLevel) { $logger = $this->logger; - call_user_func(array($logger, 'write'), $app, $message, $level); + call_user_func([$logger, 'write'], $app, $message, $level); } } @@ -330,20 +331,20 @@ class Log implements ILogger { * @return void * @since 8.2.0 */ - public function logException($exception, array $context = array()) { + public function logException(\Throwable $exception, array $context = []) { $level = Util::ERROR; if (isset($context['level'])) { $level = $context['level']; unset($context['level']); } - $data = array( + $data = [ 'Exception' => get_class($exception), 'Message' => $exception->getMessage(), 'Code' => $exception->getCode(), 'Trace' => $exception->getTraceAsString(), 'File' => $exception->getFile(), 'Line' => $exception->getLine(), - ); + ]; $data['Trace'] = preg_replace('!(' . implode('|', $this->methodsWithSensitiveParameters) . ')\(.*\)!', '$1(*** sensitive parameters replaced ***)', $data['Trace']); if ($exception instanceof HintException) { $data['Hint'] = $exception->getHint(); @@ -362,7 +363,7 @@ class Log implements ILogger { * @return string * @internal */ - public static function getLogClass($logType) { + public static function getLogClass(string $logType): string { switch (strtolower($logType)) { case 'errorlog': return \OC\Log\Errorlog::class; diff --git a/lib/private/Session/CryptoSessionData.php b/lib/private/Session/CryptoSessionData.php index 530bd9063c3..b63b568875e 100644 --- a/lib/private/Session/CryptoSessionData.php +++ b/lib/private/Session/CryptoSessionData.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -55,7 +56,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { */ public function __construct(ISession $session, ICrypto $crypto, - $passphrase) { + string $passphrase) { $this->crypto = $crypto; $this->session = $session; $this->passphrase = $passphrase; @@ -92,7 +93,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { * @param string $key * @param mixed $value */ - public function set($key, $value) { + public function set(string $key, $value) { $this->sessionValues[$key] = $value; $this->isModified = true; } @@ -103,7 +104,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { * @param string $key * @return string|null Either the value or null */ - public function get($key) { + public function get(string $key) { if(isset($this->sessionValues[$key])) { return $this->sessionValues[$key]; } @@ -117,7 +118,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { * @param string $key * @return bool */ - public function exists($key) { + public function exists(string $key): bool { return isset($this->sessionValues[$key]); } @@ -126,7 +127,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { * * @param string $key */ - public function remove($key) { + public function remove(string $key) { $this->isModified = true; unset($this->sessionValues[$key]); $this->session->remove(self::encryptedSessionName); @@ -151,7 +152,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { * @param bool $deleteOldSession Whether to delete the old associated session file or not. * @return void */ - public function regenerateId($deleteOldSession = true) { + public function regenerateId(bool $deleteOldSession = true) { $this->session->regenerateId($deleteOldSession); } @@ -162,7 +163,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { * @throws SessionNotAvailableException * @since 9.1.0 */ - public function getId() { + public function getId(): string { return $this->session->getId(); } @@ -182,7 +183,7 @@ class CryptoSessionData implements \ArrayAccess, ISession { * @param mixed $offset * @return bool */ - public function offsetExists($offset) { + public function offsetExists($offset): bool { return $this->exists($offset); } diff --git a/lib/private/Session/Internal.php b/lib/private/Session/Internal.php index d137d72a048..1d0466ec349 100644 --- a/lib/private/Session/Internal.php +++ b/lib/private/Session/Internal.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -43,8 +44,8 @@ class Internal extends Session { * @param string $name * @throws \Exception */ - public function __construct($name) { - set_error_handler(array($this, 'trapError')); + public function __construct(string $name) { + set_error_handler([$this, 'trapError']); $this->invoke('session_name', [$name]); try { $this->invoke('session_start'); @@ -61,7 +62,7 @@ class Internal extends Session { * @param string $key * @param integer $value */ - public function set($key, $value) { + public function set(string $key, $value) { $this->validateSession(); $_SESSION[$key] = $value; } @@ -70,7 +71,7 @@ class Internal extends Session { * @param string $key * @return mixed */ - public function get($key) { + public function get(string $key) { if (!$this->exists($key)) { return null; } @@ -81,14 +82,14 @@ class Internal extends Session { * @param string $key * @return bool */ - public function exists($key) { + public function exists(string $key): bool { return isset($_SESSION[$key]); } /** * @param string $key */ - public function remove($key) { + public function remove(string $key) { if (isset($_SESSION[$key])) { unset($_SESSION[$key]); } @@ -112,7 +113,7 @@ class Internal extends Session { * @param bool $deleteOldSession Whether to delete the old associated session file or not. * @return void */ - public function regenerateId($deleteOldSession = true) { + public function regenerateId(bool $deleteOldSession = true) { try { @session_regenerate_id($deleteOldSession); } catch (\Error $e) { @@ -127,7 +128,7 @@ class Internal extends Session { * @throws SessionNotAvailableException * @since 9.1.0 */ - public function getId() { + public function getId(): string { $id = $this->invoke('session_id', [], true); if ($id === '') { throw new SessionNotAvailableException(); @@ -147,7 +148,7 @@ class Internal extends Session { * @param string $errorString * @throws \ErrorException */ - public function trapError($errorNumber, $errorString) { + public function trapError(int $errorNumber, string $errorString) { throw new \ErrorException($errorString); } @@ -167,7 +168,7 @@ class Internal extends Session { * @throws \ErrorException via trapError * @return mixed */ - private function invoke($functionName, array $parameters = [], $silence = false) { + private function invoke(string $functionName, array $parameters = [], bool $silence = false) { try { if($silence) { return @call_user_func_array($functionName, $parameters); diff --git a/lib/private/Session/Memory.php b/lib/private/Session/Memory.php index 22d6ffa0110..79900bc8067 100644 --- a/lib/private/Session/Memory.php +++ b/lib/private/Session/Memory.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -40,16 +41,16 @@ use OCP\Session\Exceptions\SessionNotAvailableException; class Memory extends Session { protected $data; - public function __construct($name) { + public function __construct(string $name) { //no need to use $name since all data is already scoped to this instance - $this->data = array(); + $this->data = []; } /** * @param string $key * @param integer $value */ - public function set($key, $value) { + public function set(string $key, $value) { $this->validateSession(); $this->data[$key] = $value; } @@ -58,7 +59,7 @@ class Memory extends Session { * @param string $key * @return mixed */ - public function get($key) { + public function get(string $key) { if (!$this->exists($key)) { return null; } @@ -69,20 +70,20 @@ class Memory extends Session { * @param string $key * @return bool */ - public function exists($key) { + public function exists(string $key): bool { return isset($this->data[$key]); } /** * @param string $key */ - public function remove($key) { + public function remove(string $key) { $this->validateSession(); unset($this->data[$key]); } public function clear() { - $this->data = array(); + $this->data = []; } /** @@ -90,7 +91,7 @@ class Memory extends Session { * * @param bool $deleteOldSession */ - public function regenerateId($deleteOldSession = true) {} + public function regenerateId(bool $deleteOldSession = true) {} /** * Wrapper around session_id @@ -99,7 +100,7 @@ class Memory extends Session { * @throws SessionNotAvailableException * @since 9.1.0 */ - public function getId() { + public function getId(): string { throw new SessionNotAvailableException('Memory session does not have an ID'); } diff --git a/lib/private/Session/Session.php b/lib/private/Session/Session.php index 49afc564306..cadbb7e7ad4 100644 --- a/lib/private/Session/Session.php +++ b/lib/private/Session/Session.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -38,13 +39,13 @@ abstract class Session implements \ArrayAccess, ISession { * * @param string $name */ - abstract public function __construct($name); + abstract public function __construct(string $name); /** * @param mixed $offset * @return bool */ - public function offsetExists($offset) { + public function offsetExists($offset): bool { return $this->exists($offset); } diff --git a/lib/private/Settings/Admin/Sharing.php b/lib/private/Settings/Admin/Sharing.php index dbdacf78dab..dfc0b11478b 100644 --- a/lib/private/Settings/Admin/Sharing.php +++ b/lib/private/Settings/Admin/Sharing.php @@ -28,7 +28,9 @@ namespace OC\Settings\Admin; use OC\Share\Share; use OCP\AppFramework\Http\TemplateResponse; +use OCP\Constants; use OCP\IConfig; +use OCP\IL10N; use OCP\Settings\ISettings; use OCP\Util; @@ -36,11 +38,15 @@ class Sharing implements ISettings { /** @var IConfig */ private $config; + /** @var IL10N */ + private $l; + /** * @param IConfig $config */ - public function __construct(IConfig $config) { + public function __construct(IConfig $config, IL10N $l) { $this->config = $config; + $this->l = $l; } /** @@ -53,27 +59,59 @@ class Sharing implements ISettings { $parameters = [ // Built-In Sharing - 'allowGroupSharing' => $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes'), - 'allowLinks' => $this->config->getAppValue('core', 'shareapi_allow_links', 'yes'), - 'allowPublicUpload' => $this->config->getAppValue('core', 'shareapi_allow_public_upload', 'yes'), - 'allowResharing' => $this->config->getAppValue('core', 'shareapi_allow_resharing', 'yes'), - 'allowShareDialogUserEnumeration' => $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes'), - 'enforceLinkPassword' => Util::isPublicLinkPasswordRequired(), - 'onlyShareWithGroupMembers' => Share::shareWithGroupMembersOnly(), - 'shareAPIEnabled' => $this->config->getAppValue('core', 'shareapi_enabled', 'yes'), - 'shareDefaultExpireDateSet' => $this->config->getAppValue('core', 'shareapi_default_expire_date', 'no'), - 'shareExpireAfterNDays' => $this->config->getAppValue('core', 'shareapi_expire_after_n_days', '7'), - 'shareEnforceExpireDate' => $this->config->getAppValue('core', 'shareapi_enforce_expire_date', 'no'), - 'shareExcludeGroups' => $this->config->getAppValue('core', 'shareapi_exclude_groups', 'no') === 'yes', - 'shareExcludedGroupsList' => $excludeGroupsList, - 'publicShareDisclaimerText' => $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null), - 'enableLinkPasswordByDefault' => $this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no'), + 'allowGroupSharing' => $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes'), + 'allowLinks' => $this->config->getAppValue('core', 'shareapi_allow_links', 'yes'), + 'allowPublicUpload' => $this->config->getAppValue('core', 'shareapi_allow_public_upload', 'yes'), + 'allowResharing' => $this->config->getAppValue('core', 'shareapi_allow_resharing', 'yes'), + 'allowShareDialogUserEnumeration' => $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes'), + 'enforceLinkPassword' => Util::isPublicLinkPasswordRequired(), + 'onlyShareWithGroupMembers' => Share::shareWithGroupMembersOnly(), + 'shareAPIEnabled' => $this->config->getAppValue('core', 'shareapi_enabled', 'yes'), + 'shareDefaultExpireDateSet' => $this->config->getAppValue('core', 'shareapi_default_expire_date', 'no'), + 'shareExpireAfterNDays' => $this->config->getAppValue('core', 'shareapi_expire_after_n_days', '7'), + 'shareEnforceExpireDate' => $this->config->getAppValue('core', 'shareapi_enforce_expire_date', 'no'), + 'shareExcludeGroups' => $this->config->getAppValue('core', 'shareapi_exclude_groups', 'no') === 'yes', + 'shareExcludedGroupsList' => $excludeGroupsList, + 'publicShareDisclaimerText' => $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null), + 'enableLinkPasswordByDefault' => $this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no'), + 'shareApiDefaultPermissions' => $this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL), + 'shareApiDefaultPermissionsCheckboxes' => $this->getSharePermissionList(), ]; return new TemplateResponse('settings', 'settings/admin/sharing', $parameters, ''); } /** + * get share permission list for template + * + * @return array + */ + private function getSharePermissionList() { + return [ + [ + 'id' => 'cancreate', + 'label' => $this->l->t('Create'), + 'value' => Constants::PERMISSION_CREATE + ], + [ + 'id' => 'canupdate', + 'label' => $this->l->t('Change'), + 'value' => Constants::PERMISSION_UPDATE + ], + [ + 'id' => 'candelete', + 'label' => $this->l->t('Delete'), + 'value' => Constants::PERMISSION_DELETE + ], + [ + 'id' => 'canshare', + 'label' => $this->l->t('Share'), + 'value' => Constants::PERMISSION_SHARE + ], + ]; + } + + /** * @return string the section ID, e.g. 'sharing' */ public function getSection() { diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 387460852ab..7111511eca2 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -271,7 +271,7 @@ class Manager implements IManager { } if ($section === 'sharing') { /** @var ISettings $form */ - $form = new Admin\Sharing($this->config); + $form = new Admin\Sharing($this->config, $this->l); $forms[$form->getPriority()] = [$form]; } if ($section === 'additional') { diff --git a/lib/private/Setup.php b/lib/private/Setup.php index c0246a83e46..212deeeba0f 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -325,15 +325,20 @@ class Setup { $secret = $this->random->generate(48); //write the config file - $this->config->setValues([ + $newConfigValues = [ 'passwordsalt' => $salt, 'secret' => $secret, 'trusted_domains' => $trustedDomains, 'datadirectory' => $dataDir, - 'overwrite.cli.url' => $request->getServerProtocol() . '://' . $request->getInsecureServerHost() . \OC::$WEBROOT, 'dbtype' => $dbType, 'version' => implode('.', \OCP\Util::getVersion()), - ]); + ]; + + if ($this->config->getValue('overwrite.cli.url', null) === null) { + $newConfigValues['overwrite.cli.url'] = $request->getServerProtocol() . '://' . $request->getInsecureServerHost() . \OC::$WEBROOT; + } + + $this->config->setValues($newConfigValues); try { $dbSetup->initialize($options); diff --git a/lib/private/Template/Base.php b/lib/private/Template/Base.php index 18cf6324089..09be5ab7ddf 100644 --- a/lib/private/Template/Base.php +++ b/lib/private/Template/Base.php @@ -166,8 +166,11 @@ class Base { $l = $this->l10n; $theme = $this->theme; - if( !is_null($additionalParams)) { + if(!is_null($additionalParams)) { $_ = array_merge( $additionalParams, $this->vars ); + foreach ($_ as $var => $value) { + ${$var} = $value; + } } // Include diff --git a/lib/private/Template/JSConfigHelper.php b/lib/private/Template/JSConfigHelper.php index b8bff074200..b691a8a64cb 100644 --- a/lib/private/Template/JSConfigHelper.php +++ b/lib/private/Template/JSConfigHelper.php @@ -28,6 +28,7 @@ namespace OC\Template; use bantu\IniGetWrapper\IniGetWrapper; +use OC\CapabilitiesManager; use OCP\App\IAppManager; use OCP\Defaults; use OCP\IConfig; @@ -66,6 +67,9 @@ class JSConfigHelper { /** @var IURLGenerator */ private $urlGenerator; + /** @var CapabilitiesManager */ + private $capabilitiesManager; + /** * @param IL10N $l * @param Defaults $defaults @@ -76,6 +80,7 @@ class JSConfigHelper { * @param IGroupManager $groupManager * @param IniGetWrapper $iniWrapper * @param IURLGenerator $urlGenerator + * @param CapabilitiesManager $capabilitiesManager */ public function __construct(IL10N $l, Defaults $defaults, @@ -85,7 +90,8 @@ class JSConfigHelper { IConfig $config, IGroupManager $groupManager, IniGetWrapper $iniWrapper, - IURLGenerator $urlGenerator) { + IURLGenerator $urlGenerator, + CapabilitiesManager $capabilitiesManager) { $this->l = $l; $this->defaults = $defaults; $this->appManager = $appManager; @@ -95,6 +101,7 @@ class JSConfigHelper { $this->groupManager = $groupManager; $this->iniWrapper = $iniWrapper; $this->urlGenerator = $urlGenerator; + $this->capabilitiesManager = $capabilitiesManager; } public function getConfig() { @@ -146,6 +153,8 @@ class JSConfigHelper { $lastConfirmTimestamp = 0; } + $capabilities = $this->capabilitiesManager->getCapabilities(); + $array = [ "oc_debug" => $this->config->getSystemValue('debug', false) ? 'true' : 'false', "oc_isadmin" => $this->groupManager->isAdmin($uid) ? 'true' : 'false', @@ -252,6 +261,7 @@ class JSConfigHelper { 'longFooter' => $this->defaults->getLongFooter(), 'folder' => \OC_Util::getTheme(), ]), + "oc_capabilities" => json_encode($capabilities), ]; if ($this->currentUser !== null) { diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 8cc235bf818..0f2eb48bef3 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -123,6 +123,10 @@ class TemplateLayout extends \OC_Template { } else if ($renderAs == 'guest') { parent::__construct('core', 'layout.guest'); $this->assign('bodyid', 'body-login'); + } else if ($renderAs == 'public') { + parent::__construct('core', 'layout.public'); + $this->assign( 'appid', $appId ); + $this->assign('bodyid', 'body-public'); } else { parent::__construct('core', 'layout.base'); @@ -156,7 +160,8 @@ class TemplateLayout extends \OC_Template { $this->config, \OC::$server->getGroupManager(), \OC::$server->getIniWrapper(), - \OC::$server->getURLGenerator() + \OC::$server->getURLGenerator(), + \OC::$server->getCapabilitiesManager() ); $this->assign('inline_ocjs', $jsConfigHelper->getConfig()); } else { diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php index c5279bff6b8..a362b581fe2 100644 --- a/lib/private/legacy/template.php +++ b/lib/private/legacy/template.php @@ -206,6 +206,12 @@ class OC_Template extends \OC\Template\Base { if( $this->renderAs ) { $page = new TemplateLayout($this->renderAs, $this->app); + if(is_array($additionalParams)) { + foreach ($additionalParams as $key => $value) { + $page->assign($key, $value); + } + } + // Add custom headers $headers = ''; foreach(OC_Util::$headers as $header) { @@ -226,7 +232,7 @@ class OC_Template extends \OC\Template\Base { $page->assign('headers', $headers); $page->assign('content', $data); - return $page->fetchPage(); + return $page->fetchPage($additionalParams); } return $data; diff --git a/lib/public/AppFramework/Http/Template/IMenuAction.php b/lib/public/AppFramework/Http/Template/IMenuAction.php new file mode 100644 index 00000000000..e42d2057981 --- /dev/null +++ b/lib/public/AppFramework/Http/Template/IMenuAction.php @@ -0,0 +1,64 @@ +<?php +/** + * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\AppFramework\Http\Template; + +/** + * Interface IMenuAction + * + * @package OCP\AppFramework\Http\Template + * @since 14.0 + */ +interface IMenuAction { + + /** + * @since 14.0.0 + * @return string + */ + public function getId(): string; + + /** + * @since 14.0.0 + * @return string + */ + public function getLabel(): string; + + /** + * @since 14.0.0 + * @return string + */ + public function getLink(): string; + + /** + * @since 14.0.0 + * @return int + */ + public function getPriority(): int; + + /** + * @since 14.0.0 + * @return string + */ + public function render(): string; + +}
\ No newline at end of file diff --git a/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php b/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php new file mode 100644 index 00000000000..3409d5aae53 --- /dev/null +++ b/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php @@ -0,0 +1,143 @@ +<?php +/** + * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\AppFramework\Http\Template; + +use InvalidArgumentException; +use OCP\AppFramework\Http\TemplateResponse; + +/** + * Class PublicTemplateResponse + * + * @package OCP\AppFramework\Http\Template + * @since 14.0.0 + */ +class PublicTemplateResponse extends TemplateResponse { + + private $headerTitle = ''; + private $headerDetails = ''; + private $headerActions = []; + + /** + * PublicTemplateResponse constructor. + * + * @param string $appName + * @param string $templateName + * @param array $params + * @since 14.0.0 + */ + public function __construct(string $appName, string $templateName, array $params = array()) { + parent::__construct($appName, $templateName, $params, 'public'); + \OC_Util::addScript('core', 'public/publicpage'); + } + + /** + * @param string $title + * @since 14.0.0 + */ + public function setHeaderTitle(string $title) { + $this->headerTitle = $title; + } + + /** + * @return string + * @since 14.0.0 + */ + public function getHeaderTitle(): string { + return $this->headerTitle; + } + + /** + * @param string $details + * @since 14.0.0 + */ + public function setHeaderDetails(string $details) { + $this->headerDetails = $details; + } + + /** + * @return string + * @since 14.0.0 + */ + public function getHeaderDetails(): string { + return $this->headerDetails; + } + + /** + * @param array $actions + * @since 14.0.0 + * @throws InvalidArgumentException + */ + public function setHeaderActions(array $actions) { + foreach ($actions as $action) { + if ($actions instanceof IMenuAction) { + throw new InvalidArgumentException('Actions must be of type IMenuAction'); + } + $this->headerActions[] = $action; + } + usort($this->headerActions, function(IMenuAction $a, IMenuAction $b) { + return $a->getPriority() > $b->getPriority(); + }); + } + + /** + * @return IMenuAction + * @since 14.0.0 + * @throws \Exception + */ + public function getPrimaryAction(): IMenuAction { + if ($this->getActionCount() > 0) { + return $this->headerActions[0]; + } + throw new \Exception('No header actions have been set'); + } + + /** + * @return int + * @since 14.0.0 + */ + public function getActionCount(): int { + return count($this->headerActions); + } + + /** + * @return IMenuAction[] + * @since 14.0.0 + */ + public function getOtherActions(): array { + return array_slice($this->headerActions, 1); + } + + /** + * @return string + * @since 14.0.0 + */ + public function render(): string { + $params = array_merge($this->getParams(), [ + 'template' => $this, + ]); + $this->setParams($params); + return parent::render(); + } + +}
\ No newline at end of file diff --git a/lib/public/AppFramework/Http/Template/SimpleMenuAction.php b/lib/public/AppFramework/Http/Template/SimpleMenuAction.php new file mode 100644 index 00000000000..60bb268661c --- /dev/null +++ b/lib/public/AppFramework/Http/Template/SimpleMenuAction.php @@ -0,0 +1,126 @@ +<?php +/** + * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\AppFramework\Http\Template; + +use OCP\Util; + +/** + * Class SimpleMenuAction + * + * @package OCP\AppFramework\Http\Template + * @since 14.0.0 + */ +class SimpleMenuAction implements IMenuAction { + + /** @var string */ + private $id; + + /** @var string */ + private $label; + + /** @var string */ + private $icon; + + /** @var string */ + private $link; + + /** @var int */ + private $priority; + + /** @var string */ + private $detail; + + /** + * SimpleMenuAction constructor. + * + * @param string $id + * @param string $label + * @param string $icon + * @param string $link + * @param int $priority + * @param string $detail + * @since 14.0.0 + */ + public function __construct(string $id, string $label, string $icon, string $link = '', int $priority = 100, string $detail = '') { + $this->id = $id; + $this->label = $label; + $this->icon = $icon; + $this->link = $link; + $this->priority = $priority; + $this->detail = $detail; + } + + /** + * @return string + * @since 14.0.0 + */ + public function getId(): string { + return $this->id; + } + + /** + * @return string + * @since 14.0.0 + */ + public function getLabel(): string { + return $this->label; + } + + /** + * @return string + * @since 14.0.0 + */ + public function getIcon(): string { + return $this->icon; + } + + /** + * @return string + * @since 14.0.0 + */ + public function getLink(): string { + return $this->link; + } + + /** + * @return int + * @since 14.0.0 + */ + public function getPriority(): int { + return $this->priority; + } + + /** + * @return string + * @since 14.0.0 + */ + public function render(): string { + $detailContent = ($this->detail !== '') ? ' <span class="download-size">(' . Util::sanitizeHTML($this->detail) . ')</span>' : ''; + return sprintf( + '<li id="%s"><a href="%s"><span class="icon %s"></span>%s %s</a></li>', + Util::sanitizeHTML($this->id), Util::sanitizeHTML($this->link), Util::sanitizeHTML($this->icon), Util::sanitizeHTML($this->label), $detailContent + ); + } + +}
\ No newline at end of file diff --git a/lib/public/AppFramework/Http/TemplateResponse.php b/lib/public/AppFramework/Http/TemplateResponse.php index ccb0c61bfd4..0e31f780d7a 100644 --- a/lib/public/AppFramework/Http/TemplateResponse.php +++ b/lib/public/AppFramework/Http/TemplateResponse.php @@ -154,7 +154,7 @@ class TemplateResponse extends Response { $template->assign($key, $value); } - return $template->fetchPage(); + return $template->fetchPage($this->params); } } diff --git a/lib/public/ILogger.php b/lib/public/ILogger.php index 6ee850ee8ae..b6e945546e6 100644 --- a/lib/public/ILogger.php +++ b/lib/public/ILogger.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -43,7 +44,7 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function emergency($message, array $context = array()); + public function emergency(string $message, array $context = []); /** * Action must be taken immediately. @@ -53,7 +54,7 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function alert($message, array $context = array()); + public function alert(string $message, array $context = []); /** * Critical conditions. @@ -63,7 +64,7 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function critical($message, array $context = array()); + public function critical(string $message, array $context = []); /** * Runtime errors that do not require immediate action but should typically @@ -74,7 +75,7 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function error($message, array $context = array()); + public function error(string $message, array $context = []); /** * Exceptional occurrences that are not errors. @@ -84,7 +85,7 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function warning($message, array $context = array()); + public function warning(string $message, array $context = []); /** * Normal but significant events. @@ -94,7 +95,7 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function notice($message, array $context = array()); + public function notice(string $message, array $context = []); /** * Interesting events. @@ -104,7 +105,7 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function info($message, array $context = array()); + public function info(string $message, array $context = []); /** * Detailed debug information. @@ -114,18 +115,18 @@ interface ILogger { * @return null * @since 7.0.0 */ - public function debug($message, array $context = array()); + public function debug(string $message, array $context = []); /** * Logs with an arbitrary level. * - * @param mixed $level + * @param int $level * @param string $message * @param array $context * @return mixed * @since 7.0.0 */ - public function log($level, $message, array $context = array()); + public function log(int $level, string $message, array $context = []); /** * Logs an exception very detailed @@ -143,5 +144,5 @@ interface ILogger { * @return void * @since 8.2.0 */ - public function logException($exception, array $context = array()); + public function logException(\Throwable $exception, array $context = []); } diff --git a/lib/public/IRequest.php b/lib/public/IRequest.php index b3130207111..05948cd480f 100644 --- a/lib/public/IRequest.php +++ b/lib/public/IRequest.php @@ -91,6 +91,16 @@ interface IRequest { const USER_AGENT_TALK_IOS = '/^Mozilla\/5\.0 \(iOS\) Nextcloud\-Talk v.*$/'; /** + * @since 13.0.1 + */ + const USER_AGENT_OUTLOOK_ADDON = '/^Mozilla\/5\.0 \([A-Za-z ]+\) Nextcloud\-Outlook v.*$/'; + + /** + * @since 13.0.1 + */ + const USER_AGENT_THUNDERBIRD_ADDON = '/^Mozilla\/5\.0 \([A-Za-z ]+\) Nextcloud\-Thunderbird v.*$/'; + + /** * @param string $name * * @return string diff --git a/lib/public/ISession.php b/lib/public/ISession.php index 2d234976862..411356b8dcc 100644 --- a/lib/public/ISession.php +++ b/lib/public/ISession.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -34,6 +35,8 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP; +use OCP\Session\Exceptions\SessionNotAvailableException; + /** * Interface ISession * @@ -49,7 +52,7 @@ interface ISession { * @param mixed $value * @since 6.0.0 */ - public function set($key, $value); + public function set(string $key, $value); /** * Get a value from the session @@ -58,7 +61,7 @@ interface ISession { * @return mixed should return null if $key does not exist * @since 6.0.0 */ - public function get($key); + public function get(string $key); /** * Check if a named key exists in the session @@ -67,7 +70,7 @@ interface ISession { * @return bool * @since 6.0.0 */ - public function exists($key); + public function exists(string $key): bool; /** * Remove a $key/$value pair from the session @@ -75,7 +78,7 @@ interface ISession { * @param string $key * @since 6.0.0 */ - public function remove($key); + public function remove(string $key); /** * Reset and recreate the session @@ -96,7 +99,7 @@ interface ISession { * @return void * @since 9.0.0 */ - public function regenerateId($deleteOldSession = true); + public function regenerateId(bool $deleteOldSession = true); /** * Wrapper around session_id @@ -105,5 +108,5 @@ interface ISession { * @throws SessionNotAvailableException * @since 9.1.0 */ - public function getId(); + public function getId(): string; } diff --git a/settings/css/settings.scss b/settings/css/settings.scss index ec7dbd84780..18bc4efa783 100644 --- a/settings/css/settings.scss +++ b/settings/css/settings.scss @@ -1055,6 +1055,13 @@ table.grid td.date { .double-indent { padding-left: 56px; } + .nocheckbox { + padding-left: 20px; + } +} + +#shareApiDefaultPermissionsSection label { + margin-right: 20px; } #fileSharingSettings h3 { @@ -1130,14 +1137,14 @@ table.grid td.date { span { &.success { - background: #37ce02; + background-color: $color-success; border-radius: $border-radius; } &.error { - background: #ce3702; + background-color: $color-error; } &.indeterminate { - background: #e6db00; + background-color: $color-warning; border-radius: 40% 0; } } diff --git a/settings/js/admin.js b/settings/js/admin.js index 177f6d3f7f4..f637cb64592 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -121,6 +121,28 @@ $(document).ready(function(){ } }); + $('#shareApiDefaultPermissionsSection input').change(function(ev) { + var $el = $('#shareApiDefaultPermissions'); + var $target = $(ev.target); + + var value = $el.val(); + if ($target.is(':checked')) { + value = value | $target.val(); + } else { + value = value & ~$target.val(); + } + + // always set read permission + value |= OC.PERMISSION_READ; + + // this will trigger the field's change event and will save it + $el.val(value).change(); + + ev.preventDefault(); + + return false; + }); + var savePublicShareDisclaimerText = _.debounce(function(value) { var options = { success: function() { diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js index 8501e458dc6..46c51513a76 100644 --- a/settings/l10n/cs.js +++ b/settings/l10n/cs.js @@ -37,9 +37,9 @@ OC.L10N.register( "Well done, %s!" : "Dobře, %s.", "If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.", "Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", - "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.", - "Invalid mail address" : "Neplatná emailová adresa", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", + "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.", + "Invalid mail address" : "Neplatná e-mailová adresa", "No valid group selected" : "Není vybrána platná skupina", "A user with that name already exists." : "Uživatel tohoto jména již existuje.", "To send a password link to the user an email address is required." : "Pro zaslání odkazu na heslo uživateli je nutná e-mailová adresa.", @@ -55,8 +55,8 @@ OC.L10N.register( "Your full name has been changed." : "Vaše celé jméno bylo změněno.", "Forbidden" : "Zakázáno", "Invalid user" : "Neplatný uživatel", - "Unable to change mail address" : "Nelze změnit emailovou adresu", - "Email saved" : "Email uložen", + "Unable to change mail address" : "Nelze změnit e-mailovou adresu", + "Email saved" : "E-mail uložen", "%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.", "Your password on %s was changed." : "Vaše heslo na %s bylo změněno.", "Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.", @@ -86,7 +86,7 @@ OC.L10N.register( "Migration started …" : "Migrace spuštěna ...", "Not saved" : "Neuloženo", "Sending…" : "Odesílání…", - "Email sent" : "Email odeslán", + "Email sent" : "E-mail odeslán", "Official" : "Oficiální", "All" : "Vše", "Update to %s" : "Aktualizovat na %s", @@ -177,12 +177,12 @@ OC.L10N.register( "no group" : "není ve skupině", "Password successfully changed" : "Heslo úspěšně změněno", "Changing the password will result in data loss, because data recovery is not available for this user" : "Změna hesla bude mít za následek ztrátu dat, protože jejich obnova není pro tohoto uživatele dostupná.", - "Could not change the users email" : "Nelze změnit email uživatele", + "Could not change the users email" : "Nelze změnit e-mail uživatele", "Error while changing status of {user}" : "Chyba při změně stavu {user}", "A valid username must be provided" : "Musíte zadat platné uživatelské jméno", "Error creating user: {message}" : "Chyba vytvoření uživatele: {message}", "A valid password must be provided" : "Musíte zadat platné heslo", - "A valid email must be provided" : "Musíte zadat platný email", + "A valid email must be provided" : "Musíte zadat platný e-mail", "Developer documentation" : "Vývojářská dokumentace", "View in store" : "Zobrazit v obchodě", "Limit to groups" : "Omezit na skupiny", @@ -217,13 +217,13 @@ OC.L10N.register( "NT LAN Manager" : "Správce NT LAN", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", - "Email server" : "Emailový server", + "Email server" : "E-mailový server", "Open documentation" : "Otevřít dokumentaci", "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je důležité tento server nastavit, aby mohly být odesílány e-maily, jako jsou např. resety hesla a upozornění.", "Send mode" : "Mód odesílání", "Encryption" : "Šifrování", "From address" : "Adresa odesílatele", - "mail" : "email", + "mail" : "e-mail", "Authentication method" : "Metoda ověření", "Authentication required" : "Vyžadováno ověření", "Server address" : "Adresa serveru", @@ -232,8 +232,8 @@ OC.L10N.register( "SMTP Username" : "SMTP uživatelské jméno ", "SMTP Password" : "SMTP heslo", "Store credentials" : "Ukládat přihlašovací údaje", - "Test email settings" : "Test nastavení emailu", - "Send email" : "Odeslat email", + "Test email settings" : "Test nastavení e-mailu", + "Send email" : "Odeslat e-mail", "Server-side encryption" : "Šifrování na serveru", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifrování na straně serveru umožňuje zašifrovat soubory, které jsou na tento server nahrávány. To přináší omezení jako třeba výkonnostní omezení, takže to povolte jen pokud je třeba.", "Enable server-side encryption" : "Povolit šifrování na straně serveru", @@ -322,9 +322,9 @@ OC.L10N.register( "Choose as profile picture" : "Vybrat jako profilový obrázek", "Full name" : "Celé jméno", "No display name set" : "Jméno pro zobrazení nenastaveno", - "Email" : "Email", - "Your email address" : "Vaše emailová adresa", - "No email address set" : "Emailová adresa není nastavena", + "Email" : "E-mail", + "Your email address" : "Vaše e-mailová adresa", + "No email address set" : "E-mailová adresa není nastavena", "For password reset and notifications" : "Pro obnovení hesla a upozornění", "Phone number" : "Telefonní číslo", "Your phone number" : "Vlastní telefonní číslo", @@ -361,10 +361,10 @@ OC.L10N.register( "Show storage location" : "Cesta k datům", "Show user backend" : "Zobrazit vedení uživatelů", "Show last login" : "Zobrazit poslední přihlášení", - "Show email address" : "Zobrazit emailové adresy", - "Send email to new user" : "Poslat email novému uživateli", + "Show email address" : "Zobrazit e-mailové adresy", + "Send email to new user" : "Poslat e-mail novému uživateli", "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Pokud je heslo nového uživatele prázdné, je mu odeslán aktivační e-mail s odkazem, kde si ho může nastavit.", - "E-Mail" : "Email", + "E-Mail" : "E-mail", "Create" : "Vytvořit", "Admin Recovery Password" : "Heslo obnovy správce", "Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla", @@ -382,7 +382,7 @@ OC.L10N.register( "Last login" : "Poslední přihlášení", "change full name" : "změnit celé jméno", "set new password" : "nastavit nové heslo", - "change email address" : "změnit emailovou adresu", + "change email address" : "změnit e-mailovou adresu", "Default" : "Výchozí" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json index 39b7fb7461a..ebd84be2e37 100644 --- a/settings/l10n/cs.json +++ b/settings/l10n/cs.json @@ -35,9 +35,9 @@ "Well done, %s!" : "Dobře, %s.", "If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.", "Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", - "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.", - "Invalid mail address" : "Neplatná emailová adresa", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", + "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.", + "Invalid mail address" : "Neplatná e-mailová adresa", "No valid group selected" : "Není vybrána platná skupina", "A user with that name already exists." : "Uživatel tohoto jména již existuje.", "To send a password link to the user an email address is required." : "Pro zaslání odkazu na heslo uživateli je nutná e-mailová adresa.", @@ -53,8 +53,8 @@ "Your full name has been changed." : "Vaše celé jméno bylo změněno.", "Forbidden" : "Zakázáno", "Invalid user" : "Neplatný uživatel", - "Unable to change mail address" : "Nelze změnit emailovou adresu", - "Email saved" : "Email uložen", + "Unable to change mail address" : "Nelze změnit e-mailovou adresu", + "Email saved" : "E-mail uložen", "%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.", "Your password on %s was changed." : "Vaše heslo na %s bylo změněno.", "Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.", @@ -84,7 +84,7 @@ "Migration started …" : "Migrace spuštěna ...", "Not saved" : "Neuloženo", "Sending…" : "Odesílání…", - "Email sent" : "Email odeslán", + "Email sent" : "E-mail odeslán", "Official" : "Oficiální", "All" : "Vše", "Update to %s" : "Aktualizovat na %s", @@ -175,12 +175,12 @@ "no group" : "není ve skupině", "Password successfully changed" : "Heslo úspěšně změněno", "Changing the password will result in data loss, because data recovery is not available for this user" : "Změna hesla bude mít za následek ztrátu dat, protože jejich obnova není pro tohoto uživatele dostupná.", - "Could not change the users email" : "Nelze změnit email uživatele", + "Could not change the users email" : "Nelze změnit e-mail uživatele", "Error while changing status of {user}" : "Chyba při změně stavu {user}", "A valid username must be provided" : "Musíte zadat platné uživatelské jméno", "Error creating user: {message}" : "Chyba vytvoření uživatele: {message}", "A valid password must be provided" : "Musíte zadat platné heslo", - "A valid email must be provided" : "Musíte zadat platný email", + "A valid email must be provided" : "Musíte zadat platný e-mail", "Developer documentation" : "Vývojářská dokumentace", "View in store" : "Zobrazit v obchodě", "Limit to groups" : "Omezit na skupiny", @@ -215,13 +215,13 @@ "NT LAN Manager" : "Správce NT LAN", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", - "Email server" : "Emailový server", + "Email server" : "E-mailový server", "Open documentation" : "Otevřít dokumentaci", "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je důležité tento server nastavit, aby mohly být odesílány e-maily, jako jsou např. resety hesla a upozornění.", "Send mode" : "Mód odesílání", "Encryption" : "Šifrování", "From address" : "Adresa odesílatele", - "mail" : "email", + "mail" : "e-mail", "Authentication method" : "Metoda ověření", "Authentication required" : "Vyžadováno ověření", "Server address" : "Adresa serveru", @@ -230,8 +230,8 @@ "SMTP Username" : "SMTP uživatelské jméno ", "SMTP Password" : "SMTP heslo", "Store credentials" : "Ukládat přihlašovací údaje", - "Test email settings" : "Test nastavení emailu", - "Send email" : "Odeslat email", + "Test email settings" : "Test nastavení e-mailu", + "Send email" : "Odeslat e-mail", "Server-side encryption" : "Šifrování na serveru", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifrování na straně serveru umožňuje zašifrovat soubory, které jsou na tento server nahrávány. To přináší omezení jako třeba výkonnostní omezení, takže to povolte jen pokud je třeba.", "Enable server-side encryption" : "Povolit šifrování na straně serveru", @@ -320,9 +320,9 @@ "Choose as profile picture" : "Vybrat jako profilový obrázek", "Full name" : "Celé jméno", "No display name set" : "Jméno pro zobrazení nenastaveno", - "Email" : "Email", - "Your email address" : "Vaše emailová adresa", - "No email address set" : "Emailová adresa není nastavena", + "Email" : "E-mail", + "Your email address" : "Vaše e-mailová adresa", + "No email address set" : "E-mailová adresa není nastavena", "For password reset and notifications" : "Pro obnovení hesla a upozornění", "Phone number" : "Telefonní číslo", "Your phone number" : "Vlastní telefonní číslo", @@ -359,10 +359,10 @@ "Show storage location" : "Cesta k datům", "Show user backend" : "Zobrazit vedení uživatelů", "Show last login" : "Zobrazit poslední přihlášení", - "Show email address" : "Zobrazit emailové adresy", - "Send email to new user" : "Poslat email novému uživateli", + "Show email address" : "Zobrazit e-mailové adresy", + "Send email to new user" : "Poslat e-mail novému uživateli", "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Pokud je heslo nového uživatele prázdné, je mu odeslán aktivační e-mail s odkazem, kde si ho může nastavit.", - "E-Mail" : "Email", + "E-Mail" : "E-mail", "Create" : "Vytvořit", "Admin Recovery Password" : "Heslo obnovy správce", "Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla", @@ -380,7 +380,7 @@ "Last login" : "Poslední přihlášení", "change full name" : "změnit celé jméno", "set new password" : "nastavit nové heslo", - "change email address" : "změnit emailovou adresu", + "change email address" : "změnit e-mailovou adresu", "Default" : "Výchozí" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/settings/l10n/de.js b/settings/l10n/de.js index 88e9ac3b63a..0c18760a2a0 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -77,6 +77,7 @@ OC.L10N.register( "Set your password" : "Setze Dein Kennwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", + "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index d57fc88815e..20ad81f2c17 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -75,6 +75,7 @@ "Set your password" : "Setze Dein Kennwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", + "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index 00b99873e25..447e5d92846 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -77,6 +77,7 @@ OC.L10N.register( "Set your password" : "Setzen Sie Ihr Passwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", + "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index 0435e13404f..0cab0bff351 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -75,6 +75,7 @@ "Set your password" : "Setzen Sie Ihr Passwort", "Go to %s" : "Gehe zu %s", "Install Client" : "Installiere den Client", + "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein", "Password confirmation is required" : "Passwortbestätigung erforderlich", "Couldn't remove app." : "Die App konnte nicht entfernt werden.", "Couldn't update app." : "Die App konnte nicht aktualisiert werden.", diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index bb40366ef9b..b25f78b4df6 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -77,6 +77,7 @@ OC.L10N.register( "Set your password" : "Set your password", "Go to %s" : "Go to %s", "Install Client" : "Install Client", + "Logged in user must be a subadmin" : "Logged in user must be a subadmin", "Password confirmation is required" : "Password confirmation is required", "Couldn't remove app." : "Couldn't remove app.", "Couldn't update app." : "Couldn't update app.", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index 8a449d5470d..f119f6221b5 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -75,6 +75,7 @@ "Set your password" : "Set your password", "Go to %s" : "Go to %s", "Install Client" : "Install Client", + "Logged in user must be a subadmin" : "Logged in user must be a subadmin", "Password confirmation is required" : "Password confirmation is required", "Couldn't remove app." : "Couldn't remove app.", "Couldn't update app." : "Couldn't update app.", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index a86b15517fc..d17b2d7f256 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -77,6 +77,7 @@ OC.L10N.register( "Set your password" : "Establezca su contraseña", "Go to %s" : "Vaya a %s", "Install Client" : "Instalar cliente", + "Logged in user must be a subadmin" : "El usuario registrado debe ser un subadministrador", "Password confirmation is required" : "Se requiere confirmar la contraseña", "Couldn't remove app." : "No se ha podido eliminar la aplicación.", "Couldn't update app." : "No se ha podido actualizar la aplicación.", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index d8d754f0418..21c660c656b 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -75,6 +75,7 @@ "Set your password" : "Establezca su contraseña", "Go to %s" : "Vaya a %s", "Install Client" : "Instalar cliente", + "Logged in user must be a subadmin" : "El usuario registrado debe ser un subadministrador", "Password confirmation is required" : "Se requiere confirmar la contraseña", "Couldn't remove app." : "No se ha podido eliminar la aplicación.", "Couldn't update app." : "No se ha podido actualizar la aplicación.", diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js index 442153bd0a3..49894f21f26 100644 --- a/settings/l10n/es_MX.js +++ b/settings/l10n/es_MX.js @@ -384,11 +384,21 @@ OC.L10N.register( "set new password" : "establecer nueva contraseña", "change email address" : "cambiar la dirección de correo electrónico", "Default" : "Predeterminado", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n actualización de la aplicación pendiente ","Tienes %n actualizaciones de la aplicación pendientes "], + "Updating...." : "Actualizando...", + "Error while updating app" : "Se presentó un error al actualizar la aplicación ", + "Error while removing app" : "Se presentó un error al remover la aplicación ", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "Verifying" : "Verificando", + "Personal info" : "Información personal", + "Sync clients" : "Síncronizar clientes", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de tu instancia que todo esté configurado correctamente. Para ayudarte con estamos haciendo algunas verificaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información.", "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", "Desktop client" : "Cliente de escritorio", "Android app" : "Aplicación Android", "iOS app" : "Aplicación iOS", "Follow us on Google+!" : "¡Síguenos en Google+!", + "Like our facebook page!" : "¡Da un me gusta en nuestra página de facebook!", "Follow us on Twitter!" : "¡Síguenos en Twitter!", "Check out our blog!" : "¡Visita nuestro blog!", "Subscribe to our newsletter!" : "¡Suscribete a nuestro newsletter!", diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json index a2c3220f805..8a20ad523fe 100644 --- a/settings/l10n/es_MX.json +++ b/settings/l10n/es_MX.json @@ -382,11 +382,21 @@ "set new password" : "establecer nueva contraseña", "change email address" : "cambiar la dirección de correo electrónico", "Default" : "Predeterminado", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n actualización de la aplicación pendiente ","Tienes %n actualizaciones de la aplicación pendientes "], + "Updating...." : "Actualizando...", + "Error while updating app" : "Se presentó un error al actualizar la aplicación ", + "Error while removing app" : "Se presentó un error al remover la aplicación ", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "Verifying" : "Verificando", + "Personal info" : "Información personal", + "Sync clients" : "Síncronizar clientes", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de tu instancia que todo esté configurado correctamente. Para ayudarte con estamos haciendo algunas verificaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información.", "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", "Desktop client" : "Cliente de escritorio", "Android app" : "Aplicación Android", "iOS app" : "Aplicación iOS", "Follow us on Google+!" : "¡Síguenos en Google+!", + "Like our facebook page!" : "¡Da un me gusta en nuestra página de facebook!", "Follow us on Twitter!" : "¡Síguenos en Twitter!", "Check out our blog!" : "¡Visita nuestro blog!", "Subscribe to our newsletter!" : "¡Suscribete a nuestro newsletter!", diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js index de5ea054189..b1d7ec43bc4 100644 --- a/settings/l10n/fr.js +++ b/settings/l10n/fr.js @@ -77,6 +77,7 @@ OC.L10N.register( "Set your password" : "Saisissez votre mot de passe", "Go to %s" : "Aller à %s", "Install Client" : "Installer le Client", + "Logged in user must be a subadmin" : "L'utilisateur connecté doit être un sous-admin", "Password confirmation is required" : "Confirmation par mot de passe est requise", "Couldn't remove app." : "Impossible de supprimer l'application.", "Couldn't update app." : "Impossible de mettre à jour l'application", diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json index 1b773a36c4a..73504852cfa 100644 --- a/settings/l10n/fr.json +++ b/settings/l10n/fr.json @@ -75,6 +75,7 @@ "Set your password" : "Saisissez votre mot de passe", "Go to %s" : "Aller à %s", "Install Client" : "Installer le Client", + "Logged in user must be a subadmin" : "L'utilisateur connecté doit être un sous-admin", "Password confirmation is required" : "Confirmation par mot de passe est requise", "Couldn't remove app." : "Impossible de supprimer l'application.", "Couldn't update app." : "Impossible de mettre à jour l'application", diff --git a/settings/l10n/it.js b/settings/l10n/it.js index 3023b42b3b2..0e25b2c4b01 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -77,6 +77,7 @@ OC.L10N.register( "Set your password" : "Imposta la tua password", "Go to %s" : "Vai a %s", "Install Client" : "Installa client", + "Logged in user must be a subadmin" : "L'utente che ha eseguito l'accesso deve essere un sotto-amministratore ", "Password confirmation is required" : "La conferma della password è richiesta", "Couldn't remove app." : "Impossibile rimuovere l'applicazione.", "Couldn't update app." : "Impossibile aggiornate l'applicazione.", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index 2969ee8e3fc..326b94511f0 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -75,6 +75,7 @@ "Set your password" : "Imposta la tua password", "Go to %s" : "Vai a %s", "Install Client" : "Installa client", + "Logged in user must be a subadmin" : "L'utente che ha eseguito l'accesso deve essere un sotto-amministratore ", "Password confirmation is required" : "La conferma della password è richiesta", "Couldn't remove app." : "Impossibile rimuovere l'applicazione.", "Couldn't update app." : "Impossibile aggiornate l'applicazione.", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index b10cf461558..658823e6189 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -77,6 +77,7 @@ OC.L10N.register( "Set your password" : "Defina sua senha", "Go to %s" : "Ir para 1 %s", "Install Client" : "Instalar Cliente", + "Logged in user must be a subadmin" : "O usuário conectado deve ser um subadministrador", "Password confirmation is required" : "A confirmação da senha é necessária", "Couldn't remove app." : "Não foi possível excluir aplicativos.", "Couldn't update app." : "Não foi possível atualizar o aplicativo", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index 48c3c77f0e8..54f544e4cff 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -75,6 +75,7 @@ "Set your password" : "Defina sua senha", "Go to %s" : "Ir para 1 %s", "Install Client" : "Instalar Cliente", + "Logged in user must be a subadmin" : "O usuário conectado deve ser um subadministrador", "Password confirmation is required" : "A confirmação da senha é necessária", "Couldn't remove app." : "Não foi possível excluir aplicativos.", "Couldn't update app." : "Não foi possível atualizar o aplicativo", diff --git a/settings/templates/settings/admin/sharing.php b/settings/templates/settings/admin/sharing.php index 156e8ddd81d..5913524be40 100644 --- a/settings/templates/settings/admin/sharing.php +++ b/settings/templates/settings/admin/sharing.php @@ -106,4 +106,15 @@ <br/> <textarea placeholder="<?php p($l->t('This text will be shown on the public link upload page when the file list is hidden.')) ?>" id="publicShareDisclaimerText" <?php if ($_['publicShareDisclaimerText'] === null) { print_unescaped('class="hidden"'); } ?>><?php p($_['publicShareDisclaimerText']) ?></textarea> </p> + + <h3><?php p($l->t('Default share permissions'));?></h3> + <input type="hidden" name="shareapi_default_permissions" id="shareApiDefaultPermissions" class="checkbox" + value="<?php p($_['shareApiDefaultPermissions']) ?>" /> + <p id="shareApiDefaultPermissionsSection" class="indent <?php if ($_['shareAPIEnabled'] === 'no') p('hidden'); ?>"> + <?php foreach ($_['shareApiDefaultPermissionsCheckboxes'] as $perm): ?> + <input type="checkbox" name="shareapi_default_permission_<?php p($perm['id']) ?>" id="shareapi_default_permission_<?php p($perm['id']) ?>" + class="noautosave checkbox" value="<?php p($perm['value']) ?>" <?php if (($_['shareApiDefaultPermissions'] & $perm['value']) !== 0) print_unescaped('checked="checked"'); ?> /> + <label for="shareapi_default_permission_<?php p($perm['id']) ?>"><?php p($perm['label']);?></label> + <?php endforeach ?> + </p> </div> diff --git a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php index f3386b46db9..5c5d23887cd 100644 --- a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php +++ b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php @@ -55,7 +55,7 @@ class FilesSharingAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function shareMenuButton() { - return Locator::forThe()->id("share-menutoggle")-> + return Locator::forThe()->id("header-actions-toggle")-> describedAs("Share menu button in Shared file page"); } diff --git a/tests/lib/AppFramework/Http/PublicTemplateResponseTest.php b/tests/lib/AppFramework/Http/PublicTemplateResponseTest.php new file mode 100644 index 00000000000..8aaaec0733c --- /dev/null +++ b/tests/lib/AppFramework/Http/PublicTemplateResponseTest.php @@ -0,0 +1,84 @@ +<?php + +/** + * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace Test\AppFramework\Http; + +use OCP\AppFramework\Http\Template\PublicTemplateResponse; +use OCP\AppFramework\Http; +use Test\TestCase; + +class PublicTemplateResponseTest extends TestCase { + + public function testSetParamsConstructor() { + $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']); + $this->assertContains('core/js/public/publicpage', \OC_Util::$scripts); + $this->assertEquals(['key' => 'value'], $template->getParams()); + } + + public function testAdditionalElements() { + $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']); + $template->setHeaderTitle('Header'); + $template->setHeaderDetails('Details'); + $this->assertEquals(['key' => 'value'], $template->getParams()); + $this->assertEquals('Header', $template->getHeaderTitle()); + $this->assertEquals('Details', $template->getHeaderDetails()); + } + + public function testActionSingle() { + $actions = [ + new Http\Template\SimpleMenuAction('link', 'Download', 'download', 'downloadLink', 0) + ]; + $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']); + $template->setHeaderActions($actions); + $this->assertEquals(['key' => 'value'], $template->getParams()); + $this->assertEquals($actions[0], $template->getPrimaryAction()); + $this->assertEquals(1, $template->getActionCount()); + $this->assertEquals([], $template->getOtherActions()); + } + + + public function testActionMultiple() { + $actions = [ + new Http\Template\SimpleMenuAction('link1', 'Download1', 'download1', 'downloadLink1', 100), + new Http\Template\SimpleMenuAction('link2', 'Download2', 'download2', 'downloadLink2', 20), + new Http\Template\SimpleMenuAction('link3', 'Download3', 'download3', 'downloadLink3', 0) + ]; + $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']); + $template->setHeaderActions($actions); + $this->assertEquals(['key' => 'value'], $template->getParams()); + $this->assertEquals($actions[2], $template->getPrimaryAction()); + $this->assertEquals(3, $template->getActionCount()); + $this->assertEquals([$actions[1], $actions[0]], $template->getOtherActions()); + } + + + public function testGetRenderAs() { + $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']); + $this->assertContains('core/js/public/publicpage', \OC_Util::$scripts); + $this->assertEquals(['key' => 'value'], $template->getParams()); + $this->assertEquals('public', $template->getRenderAs()); + } + +} diff --git a/tests/lib/Settings/Admin/SharingTest.php b/tests/lib/Settings/Admin/SharingTest.php index 9498a1466d3..79065fb8d21 100644 --- a/tests/lib/Settings/Admin/SharingTest.php +++ b/tests/lib/Settings/Admin/SharingTest.php @@ -25,7 +25,9 @@ namespace Test\Settings\Admin; use OC\Settings\Admin\Sharing; use OCP\AppFramework\Http\TemplateResponse; +use OCP\Constants; use OCP\IConfig; +use OCP\IL10N; use Test\TestCase; class SharingTest extends TestCase { @@ -33,13 +35,17 @@ class SharingTest extends TestCase { private $admin; /** @var IConfig */ private $config; + /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */ + private $l10n; public function setUp() { parent::setUp(); $this->config = $this->getMockBuilder(IConfig::class)->getMock(); + $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); $this->admin = new Sharing( - $this->config + $this->config, + $this->l10n ); } @@ -109,6 +115,11 @@ class SharingTest extends TestCase { ->method('getAppValue') ->with('core', 'shareapi_enable_link_password_by_default', 'no') ->willReturn('yes'); + $this->config + ->expects($this->at(13)) + ->method('getAppValue') + ->with('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL) + ->willReturn(Constants::PERMISSION_ALL); $expected = new TemplateResponse( 'settings', @@ -128,7 +139,9 @@ class SharingTest extends TestCase { 'shareExcludeGroups' => false, 'shareExcludedGroupsList' => '', 'publicShareDisclaimerText' => 'Lorem ipsum', - 'enableLinkPasswordByDefault' => 'yes' + 'enableLinkPasswordByDefault' => 'yes', + 'shareApiDefaultPermissions' => Constants::PERMISSION_ALL, + 'shareApiDefaultPermissionsCheckboxes' => $this->invokePrivate($this->admin, 'getSharePermissionList', []) ], '' ); @@ -202,6 +215,12 @@ class SharingTest extends TestCase { ->method('getAppValue') ->with('core', 'shareapi_enable_link_password_by_default', 'no') ->willReturn('yes'); + $this->config + ->expects($this->at(13)) + ->method('getAppValue') + ->with('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL) + ->willReturn(Constants::PERMISSION_ALL); + $expected = new TemplateResponse( 'settings', @@ -221,7 +240,9 @@ class SharingTest extends TestCase { 'shareExcludeGroups' => true, 'shareExcludedGroupsList' => 'NoSharers|OtherNoSharers', 'publicShareDisclaimerText' => 'Lorem ipsum', - 'enableLinkPasswordByDefault' => 'yes' + 'enableLinkPasswordByDefault' => 'yes', + 'shareApiDefaultPermissions' => Constants::PERMISSION_ALL, + 'shareApiDefaultPermissionsCheckboxes' => $this->invokePrivate($this->admin, 'getSharePermissionList', []) ], '' ); diff --git a/tests/lib/Settings/ManagerTest.php b/tests/lib/Settings/ManagerTest.php index 577abc7915c..b218a347e85 100644 --- a/tests/lib/Settings/ManagerTest.php +++ b/tests/lib/Settings/ManagerTest.php @@ -209,7 +209,7 @@ class ManagerTest extends TestCase { public function testGetAdminSettings() { $this->assertEquals([ - 0 => [new Sharing($this->config)], + 0 => [new Sharing($this->config, $this->l10n)], ], $this->manager->getAdminSettings('sharing')); } diff --git a/tests/lib/TempManagerTest.php b/tests/lib/TempManagerTest.php index 23d171180fd..c9e069d9d0d 100644 --- a/tests/lib/TempManagerTest.php +++ b/tests/lib/TempManagerTest.php @@ -17,7 +17,7 @@ class NullLogger extends Log { //disable original constructor } - public function log($level, $message, array $context = array()) { + public function log(int $level, string $message, array $context = array()) { //noop } } |