Merge branch 'master' into tflidd-patch-1

This commit is contained in:
tflidd
2025-11-14 10:13:03 +01:00
committed by GitHub
19 changed files with 411 additions and 221 deletions

View File

@@ -1,4 +1,5 @@
SME
te
hasTable
jus
nin
SME
te

View File

@@ -50,7 +50,7 @@ Installation
------------
1. Make sure the :ref:`Nextcloud Assistant app<ai-app-assistant>` is installed
2. Setup a :ref:`Deploy Demon <ai-app_api>` in AppAPI Admin settings
2. Setup a :ref:`Deploy Daemon <ai-app_api>` in AppAPI Admin settings. HaRP is not supported yet, please use Docker Socket Proxy (DSP).
3. Install the *context_chat_backend* ExApp via the "Apps" page in Nextcloud, or by executing (checkout the readme at https://github.com/nextcloud/context_chat_backend for manual install steps)
.. code-block::

View File

@@ -13,8 +13,8 @@ Installation
------------
1. Make sure the `Nextcloud Talk app <https://apps.nextcloud.com/apps/spreed>`_ is installed.
2. Make sure the High-Performance Backend is installed and configured in Nextcloud Talk settings. See the `Nextcloud Talk install manual <https://nextcloud-talk.readthedocs.io/en/latest/quick-install/>`_ for more information.
3. Setup a :ref:`Deploy Demon <ai-app_api>` in AppAPI Admin settings.
2. Make sure the High-Performance Backend (latest or released after September 2025) is installed and configured in Nextcloud Talk settings. See the `Nextcloud Talk install manual <https://nextcloud-talk.readthedocs.io/en/latest/quick-install/>`_ for more information.
3. Setup a :ref:`Deploy Daemon <ai-app_api>` in AppAPI Admin settings.
4. Install the **live_transcription** app via the "Apps" page in Nextcloud, or by executing
.. code-block::

View File

@@ -21,6 +21,20 @@ The Versions app never uses more than 50% of the user's currently available
free space. If the stored versions exceed this limit, Nextcloud deletes the
oldest file versions until it meets the disk space limit again.
Nextcloud manages file versions using a combination of on-save pruning and scheduled cleanup. This ensures that versions are retained while respecting storage quotas.
During Version Creation
-----------------------
Nextcloud automatically creates new file versions whenever a file is modified, allowing users to restore previous states when needed. After each new version is stored, the system automatically checks storage limits and retention rules. Versions are filtered according to the above pattern to keep representative versions and remove redundant ones. If the users quota is exceeded, auto-expiry is triggered.
When storage space runs low, Nextcloud sorts all versions from oldest to newest and removes the oldest ones first, while always preserving at least the two most recent versions to free up space.
During the Regular Background Job
---------------------------------
Nextcloud runs a background cleanup task that automatically removes old file versions for each user. During this process, the system checks the user's version storage folder and identifies versions that are older than the configured maximum retention period or whose original files no longer exist.
When an outdated or orphaned version is found, it is safely deleted from both the filesystem and the version database to reclaim storage space and maintain consistency.
.. note:: Versions named by a user will never be deleted.
You may alter the default pattern in ``config.php``. The default setting is
@@ -30,12 +44,12 @@ You may alter the default pattern in ``config.php``. The default setting is
Additional options are:
* ``D, auto``
Keep versions at least for D days, apply expiration rules to all versions
* ``D, auto``
Keep versions at least for D days, apply expiration rules to all versions
that are older than D days
* ``auto, D``
Delete all versions that are older than D days automatically, delete other
* ``auto, D``
Delete all versions that are older than D days automatically, delete other
versions according to expiration rules
* ``D1, D2``

View File

@@ -228,6 +228,26 @@ automatically by the installer. This example is for documentation only,
and you should never use it because it will not work. A valid ``instanceid``
is created when you install Nextcloud.
serverid
^^^^^^^^
::
'serverid' => -1,
This is a unique identifier for your server.
It is useful when your Nextcloud instance is using different PHP servers.
Once it's set it shouldn't be changed.
Value must be an integer, comprised between 0 and 1023.
When config.php is shared between different servers, this value should be overriden with "NC_serverid=<int>" on each server.
Note that it must be overriden for CLI and for your webserver.
Example for CLI: NC_serverid=42 occ config:list system
passwordsalt
^^^^^^^^^^^^
@@ -884,6 +904,35 @@ Whether the rate limit protection shipped with Nextcloud should be enabled or no
Defaults to ``true``
ratelimit_overwrite
^^^^^^^^^^^^^^^^^^^
::
'ratelimit_overwrite' => [
'profile.profilepage.index' => [
'user' => ['limit' => 300, 'period' => 3600],
'anon' => ['limit' => 1, 'period' => 300],
]
],
Overwrite the individual rate limit for a specific route
From time to time it can be necessary to extend the rate limit of a specific route,
depending on your usage pattern or when you script some actions.
Instead of completely disabling the rate limit or excluding an IP address from the
rate limit, the following config allows to overwrite the rate limit duration and period.
The first level key is the name of the route. You can find the route name from a URL
using the ``occ router:list`` command of your server.
You can also specify different limits for logged-in users with the ``user`` key
and not-logged-in users with the ``anon`` key. However, if there is no specific ``user`` limit,
the ``anon`` limit is also applied for logged-in users.
Defaults to empty array ``[]``
security.ipv6_normalized_subnet_size
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2405,15 +2454,16 @@ enabledPreviewProviders
::
'enabledPreviewProviders' => [
'OC\Preview\BMP',
'OC\Preview\GIF',
'OC\Preview\JPEG',
'OC\Preview\Krita',
'OC\Preview\MarkDown',
'OC\Preview\OpenDocument',
'OC\Preview\PNG',
'OC\Preview\TXT',
'OC\Preview\JPEG',
'OC\Preview\GIF',
'OC\Preview\BMP',
'OC\Preview\XBitmap',
'OC\Preview\Krita',
'OC\Preview\WebP',
'OC\Preview\MarkDown',
'OC\Preview\TXT',
'OC\Preview\OpenDocument',
],
Only register providers that have been explicitly enabled
@@ -2425,29 +2475,36 @@ concerns:
- ``OC\Preview\Font``
- ``OC\Preview\HEIC``
- ``OC\Preview\Illustrator``
- ``OC\Preview\Movie``
- ``OC\Preview\MP3``
- ``OC\Preview\MSOffice2003``
- ``OC\Preview\MSOffice2007``
- ``OC\Preview\MSOfficeDoc``
- ``OC\Preview\Movie``
- ``OC\Preview\PDF``
- ``OC\Preview\Photoshop``
- ``OC\Preview\Postscript``
- ``OC\Preview\SVG``
- ``OC\Preview\SGI``
- ``OC\Preview\StarOffice``
- ``OC\Preview\SVG``
- ``OC\Preview\TGA``
- ``OC\Preview\TIFF``
The following providers are disabled by default, because they provide an alternative to the built-in providers:
- ``OC\Preview\Imaginary``
- ``OC\Preview\ImaginaryPDF``
Defaults to the following providers:
- ``OC\Preview\BMP``
- ``OC\Preview\GIF``
- ``OC\Preview\JPEG``
- ``OC\Preview\Krita``
- ``OC\Preview\MarkDown``
- ``OC\Preview\OpenDocument``
- ``OC\Preview\PNG``
- ``OC\Preview\TXT``
- ``OC\Preview\JPEG``
- ``OC\Preview\GIF``
- ``OC\Preview\BMP``
- ``OC\Preview\XBitmap``
- ``OC\Preview\Krita``
- ``OC\Preview\WebP``
- ``OC\Preview\MarkDown``
- ``OC\Preview\TXT``
- ``OC\Preview\OpenDocument``
metadata_max_filesize
^^^^^^^^^^^^^^^^^^^^^

View File

@@ -149,7 +149,7 @@ Run the following command to disable creating new federated calendar shares for
sudo -E -u www-data php occ config:app:set dav enableCalendarFederation --type=bool --value=false
Note that existing shares will not be deleted when the feature is disabled.
Note that existing shares will be deleted when the feature is disabled as they will fail to sync.
Trash bin
---------

View File

@@ -40,6 +40,8 @@ For best performance, stability and functionality we have documented some recomm
See :doc:`source_installation` for minimum PHP-modules and additional software for installing Nextcloud.
To ensure the full functionality of your Nextcloud, please make sure that the server can reach the :ref:`required remote systems<connections_to_remote_servers>`.
CPU Architecture and OS
^^^^^^^^^^^^^^^^^^^^^^^
A 64-bit CPU, OS and PHP is required for Nextcloud to run well.

View File

@@ -46,6 +46,7 @@ occ command Directory
* :ref:`system_tags_commands_label`
* :ref:`antivirus_commands_label`
* :ref:`setupchecks_commands_label`
* :ref:`snowflakes_commands_label`
* :ref:`share_operations_label`
* `Debugging`_
@@ -2273,6 +2274,28 @@ Example output::
✓ Internet connectivity
...
.. _snowflakes_commands_label:
Snowflake IDs
-------------
You can decode Snowflake IDs with occ::
sudo -E -u www-data php occ decode-snowflake <snowflake_id>
Example output::
+--------------------+-------------------------+
| Snowflake ID | 6768789079123765868 |
| Seconds | 1575981518 |
| Milliseconds | 50 |
| Created from CLI | no |
| Server ID | 441 |
| Sequence ID | 2668 |
| Creation timestamp | 3335258318.050 |
| Creation date | 2075-09-09 12:38:38.050 |
+--------------------+-------------------------+
.. _share_operations_label:
Share operations

View File

@@ -15,3 +15,15 @@ Previews
The preview provider for MP3 files, which reads cover images embedded in the files, is disabled by default for performance and stability reasons.
See :doc:`../configuration_files/previews_configuration` for details on how to enable or disable the preview provider.
Snowflake IDs
-------------
This version of Nextcloud ships with `Snowflake IDs <https://en.wikipedia.org/wiki/Snowflake_ID>`_. Those IDs include the creation time of object, a sequence ID and a server ID.
The server ID should now be configured in your config.php file or using environment variables. See :doc:`../configuration_server/config_sample_php_parameters` for more information.
Default user agent for outgoing requests changed
------------------------------------------------
Starting with this release, the default user agent for requests done by the instance was changed from ``Nextcloud Server Crawler`` to ``Nextcloud-Server-Crawler/X.Y.Z``, where ``X.Y.Z`` is the current server version.

View File

@@ -25,9 +25,25 @@ Removed APIs
- The global ``md5`` implementation is removed. It was deprecated since Nextcloud 20 and not used by Nextcloud anymore.
If you still need a ``md5`` implementation you can just use some external package like `crypto-browserify <https://www.npmjs.com/package/crypto-browserify>`_.
- ``OC.AppConfig`` was deprecated since Nextcloud 16 and was now removed. Instead use ``OCP.AppConfig``.
- The ``OC.SystemTags`` api was removed. If you need to get the list of system tags, check `this merge request <https://github.com/nextcloud/files_retention/pull/855>`_ for how to fetch the tags directly.
- The `OCA.Sharing.ExternalLinkActions` API was deprecated in Nextcloud 23 and is now removed.
It was replaced with `OCA.Sharing.ExternalShareAction` which now have a proper API by using `registerSidebarAction` from `@nextcloud/sharing` instead.
- ``OC.set`` and ``OC.get`` were removed. Both are deprecated since Nextcloud 19.
For ``get``, if really needed, use `lodash get <https://lodash.com/docs#get>`_.
And for ``set``, use `lodash set <https://lodash.com/docs#set>`_.
- ``OC.redirect`` and ``OC.reload`` were removed. Both were deprecated since Nextcloud 17.
To replace ``OC.redirect`` directly use ``window.location``.
To replace ``OC.reload`` directly use ``window.location.reload``.
- ``OC.fileIsBlacklisted`` was removed. It was deprecated since Nextcloud 18.
The replacement is to use ``validateFilename`` from the `@nextcloud/files <https://www.npmjs.com/package/@nextcloud/files>`_ package.
- The deprecated host methods from `OC` were deprecated since Nextcloud 17 and are now removed
- To replace ``OC.getHost`` use ``window.location.host``.
- To replace ``OC.getHostName`` use ``window.location.hostname``.
- To replace ``OC.getPort`` use ``window.location.port``.
- To replace ``OC.getProtocol`` use ``window.location.protocol``.
- The ``OCA.Sharing.ExternalLinkActions`` API was deprecated in Nextcloud 23 and is now removed.
It was replaced with ``OCA.Sharing.ExternalShareAction`` which now have a proper API by using ``registerSidebarAction`` from `@nextcloud/sharing <https://www.npmjs.com/package/@nextcloud/sharing>`_ instead.
Back-end changes
----------------
@@ -59,6 +75,11 @@ In this release support for PHP 8.1 was removed. Follow the steps below to make
3. If you have :ref:`continuous integration <app-ci>` set up, remove PHP 8.1 from the matrices of tests and linters.
Default user agent for outgoing requests changed
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Starting with this release, the default user agent for requests done by the instance was changed from ``Nextcloud Server Crawler`` to ``Nextcloud-Server-Crawler/X.Y.Z``, where ``X.Y.Z`` is the current server version.
Added Events
^^^^^^^^^^^^

View File

@@ -38,6 +38,7 @@ Digging deeper
security
settings
setup_checks
snowflake_ids
speech-to-text
talk
task_processing

View File

@@ -0,0 +1,103 @@
.. _snowflake_ids:
=============
Snowflake IDs
=============
.. versionadded:: 33
Nextcloud integrates a customized version of Snowflake IDs (https://en.wikipedia.org/wiki/Snowflake_ID).
It allows to generates unique IDs in advance and also contains information about creation:
- creation time at millisecond precision
- identifier of server which created the ID. It's usually a hash of server hostname or random if not hostname found.
- whether the ID was created from CLI or not
Store a Snowflake ID in database
--------------------------------
Snowflake IDs are designed to be used as primary key in database.
They should be stored as ``UNSIGNED BIGINT`` (64 bits integer, always positive)
In Nextcloud migrations it looks like:
.. code-block:: php
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
/** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if (!$schema->hasTable('my_table')) {
$table = $schema->createTable('my_table');
$table->addColumn(
'id',
Types::BIGINT,
['notnull' => true, 'unsigned' => true]
);
$table->setPrimaryKey(['id']);
// TODO Add other fields
}
Generate a Snowflake ID
-----------------------
To generate a new ID, call ``nextId`` function on the generator:
.. code-block:: php
<?php
declare(strict_types=1);
namespace OCA\MyApp;
use OCP\Snowflake\IGenerator;
class MyObjectFactory {
public function __construct(
private readonly IGenerator $generator,
) {
// TODO Add your implementation
}
public function create(): MyObject {
/** @var string $id */
$id = $this->generator->nextId();
// TODO Create other properties and insert into database
}
}
Decode a Snowflake ID
---------------------
IDs can be decoded with ``occ snowflake:decode <id>`` command.
Its also possible to decode IDs in your code, for example to get creation time of your object:
.. code-block:: php
<?php
declare(strict_types=1);
namespace OCA\MyApp;
use DateTimeImmutable
use OCP\Snowflake\IDecoder;
class MyObject {
private string $id;
public function __construct(
private readonly IDecoder $decoder,
) {
// TODO Add your implementation
}
public function createdAt(): DateTimeImmutable {
return $this->decoder->decode($this->id)['createdAt'];
}
}

View File

@@ -14,7 +14,7 @@ Consuming the Task Processing API
To consume the Task Processing API, you will need to :ref:`inject<dependency-injection>` ``\OCP\TaskProcessing\IManager``. This manager offers the following methods:
* ``hasProviders()`` This method returns a boolean which indicates if any providers have been registered. If this is false you cannot use the TextProcessing feature.
* ``getAvailableTaskTypes(bool $showDisabled = false)`` This method returns an array of enabled task types indexed by their ID with their names and additional metadata. If you set ``$showdisabled`` to ``true`` (available since NC31), it will include disabled task types.
* ``getAvailableTaskTypes(bool $showDisabled = false)`` This method returns an array of enabled task types indexed by their ID with their names and additional metadata. If you set ``$showdisabled`` to ``true`` (available since NC31), it will include disabled task types. Since NC33 this will also include the ``isInternal`` field that signifies whether the task type is user-facing or intended for internal use only.
* ``getAvailableTaskTypeIds()`` This method (available since NC32) returns a list of available task type IDs. It uses the same logic as ``getAvailableTaskTypes()`` but is faster because it does not compute the task types metadata (which can be slow when getting default field values or multiselect value lists). If you just want to check if a feature is available, prefer using this method rather than ``getAvailableTaskTypes()``.
* ``scheduleTask(Task $task)`` This method provides the actual scheduling functionality. The task is defined using the Task class. This method runs the task asynchronously in a background job.
* ``getTask(int $id)`` This method fetches a task specified by its id.
@@ -530,6 +530,28 @@ If you would like to implement providers that handle additional task types, you
}
}
Internal task types
###################
.. versionadded:: 33.0.0
Other apps and clients will assume that task types are user-facing and will display them on the frontend. If your custom
task types are not intended to be shown to users, you should implement the ``IInternalTaskType`` interface instead. This will
make sure that other apps and clients know not to show your custom task type to end users.
Triggerable providers
^^^^^^^^^^^^^^^^^^^^^
.. versionadded:: 33.0.0
Synchronous providers are executed automatically by a background job that will usually be targeted by a worker to make sure
that it runs almost instantly. ExApps on the other hand used to have to poll the server for new tasks. Since the introduction of triggerable
providers ExApps are now notified immediately of new tasks when they are scheduled. This is implemented via the ``ITriggerableProvider`` interface,
which adds an additional ``trigger(): void`` method to the provider interface which is called when a new task is scheduled for this provider and
there are no running tasks for it at the moment. Usually if you implement a provider in PHP you will not have to deal with this interface but it is documented
here for completeness.
Provider and task type registration
-----------------------------------

View File

@@ -38,7 +38,7 @@
<link rel="stylesheet" href="./static/css/main.min.css" type="text/css" />
<link rel="stylesheet" href="./static/css/styles.css" type="text/css" />
<script type="text/javascript">var templateUrl='https://docs.nextcloud.com/server/14/user_manual/_static/';</script>
<script type="text/javascript">var templateUrl='https://docs.nextcloud.com/server/32/user_manual/_static/';</script>
<script data-main="./static/js/require.config.js" src="./static/js/require.min.js"></script>
<script>require(["require.config"],function(){require(["modules/header","main","modernizr","modules/cookieconsent"])});</script>
@@ -167,7 +167,7 @@
<li class="ghost-btn"><a href="https://demo.nextcloud.com/" class="nav__label">Demo</a></li>
<li class="ghost-btn"><a href="https://nextcloud.com/install" class="nav__label">Download</a></li>
<li class="ghost-btn"><a href="https://nextcloud.com/enterprise/buy" class="nav__label">Buy</a></li>
<li class="ghost-btn"><a href="https://nextcloud.com/pricing#faq" class="nav__label">FAQ</a></li>
<li class="ghost-btn"><a href="https://nextcloud.com/faq" class="nav__label">FAQ</a></li>
</ul>
</div>
</div>
@@ -483,69 +483,75 @@
</div><!-- container -->
<footer class="content-info page-footer" role="contentinfo">
<div class="container">
<div class="bootstrap-container">
<div class="row">
<div class="col-sm-3">
<div class="footer-nav">
<h1>About Nextcloud</h1>
<ul>
<li><a class="reference external" href="https://nextcloud.com/about">About us</a></li>
<li><a class="reference external" href="https://nextcloud.com/events">Events</a></li>
<li><a class="reference external" href="https://nextcloud.com/jobs">Jobs</a></li>
<li><a class="reference external" href="https://nextcloud.com/community/code-of-conduct/">Code of Conduct</a></li>
<li><a class="reference external" href="https://nextcloud.com/privacy">Privacy</a></li>
<li><a class="reference external" href="https://nextcloud.com/impressum">Legal notice</a></li>
</ul>
<div class="col-sm-4 offering">
<div>
<img class="logo" src="./static/img/logo.svg" alt="Nextcloud logo">
</div>
<p>Nextcloud offers a modern, on premise content collaboration platform with real-time document editing, video chat & groupware on mobile, desktop and web.</p>
</div>
<div class="col-sm-3">
<div class="footer-nav">
<h1>Resources</h1>
<ul>
<li><a class="reference external" href="https://nextcloud.com/search/">Search our website</a></li>
<li><a class="reference external" href="https://nextcloud.com/install">Download</a></li>
<li><a class="reference external" href="https://apps.nextcloud.com">App Store</a></li>
<li><a class="reference external" href="https://docs.nextcloud.com/server/latest/admin_manual/">Admin manual</a></li>
<li><a class="reference external" href="https://docs.nextcloud.com/server/latest/user_manual/en/">User manual</a></li>
<li><a class="reference external" href="https://nextcloud.com/developer/">Developer program</a></li>
<li><a class="reference external" href="https://nextcloud.com/security">Security</a></li>
<li><a class="reference external" href="https://github.com/nextcloud">Code on GitHub</a></li>
<li><a class="reference external" href="https://nextcloud.com/compare/">Compare</a></li>
</ul>
</div>
<div class="col-sm-2">
<h1>About Nextcloud</h1>
<ul>
<li><a href="https://nextcloud.com/about/">About us</a></li>
<li><a href="https://nextcloud.com/jobs/">Jobs</a></li>
<li><a href="https://nextcloud.com/partners/">Partners</a></li>
<li><a href="https://nextcloud.com/contribute/code-of-conduct/">Code of Conduct</a></li>
<li><a href="https://nextcloud.com/privacy/">Privacy</a></li>
<li><a href="https://nextcloud.com/press/">Press</a></li>
<li><a href="https://nextcloud.com/impressum/">Legal notice</a></li>
<li><a href="https://nextcloud.com/trademarks/">Trademarks</a></li>
<li><a href="https://nextcloud.com/brand/">Brand guidelines</a></li>
<li><a href="https://nextcloud.com/features/">Features</a></li>
<li><a href="https://nextcloud.com/human-rights-policy/">Human Rights Policy</a></li>
<li><a href="https://nextcloud.com/code-of-ethics/">Code of Ethics</a></li>
<li><a href="https://nextcloud.com/events/">Events</a></li>
</ul>
</div>
<div class="col-sm-3">
<div class="footer-nav">
<h1>Interact</h1>
<ul>
<li><a class="reference external" href="https://nextcloud.com/support">Support</a></li>
<li><a class="reference external" href="https://help.nextcloud.com/categories">Forums</a></li>
<li><a class="reference external" href="https://try.nextcloud.com">Demo</a></li>
<li><a class="reference external" href="https://nextcloud.com/contact">Contact us</a></li>
<li><a class="reference external" href="https://nextcloud.com/press">Press center</a></li>
<li><a class="reference external" href="https://github.com/nextcloud/server/issues">Bug Tracker</a></li>
</ul>
</div>
<div class="col-sm-2">
<h1>Resources</h1>
<ul>
<li><a href="https://nextcloud.com/install">Download</a></li>
<li><a href="https://apps.nextcloud.com">App Store</a></li>
<li><a href="https://docs.nextcloud.com/server/latest/admin_manual/">Admin manual</a></li>
<li><a href="https://docs.nextcloud.com/server/latest/user_manual/">User manual</a></li>
<li><a href="https://nextcloud.com/security/">Security</a></li>
<li><a href="https://nextcloud.com/developer/">Developer information</a></li>
<li><a href="https://github.com/nextcloud">Code on GitHub</a></li>
<li><a href="https://nextcloud.com/compare">Compare with others</a></li>
<li><a href="https://portal.nextcloud.com/search?q=Introduction">Search</a></li>
<li><a href="https://status.nextcloud.com/">Status</a></li>
</ul>
</div>
<div class="col-sm-3">
<div class="footer-nav">
<h1>Follow us</h1>
<ul>
<li><a class="reference external" href="https://www.facebook.com/Nextcloud-1032807203462807/">Facebook</a></li>
<li><a class="reference external" href="https://instagram.com/nextclouders">Instagram</a></li>
<li><a class="reference external" href="https://www.linkedin.com/company/10827569/">LinkedIn</a></li>
<li><a class="reference external" href="https://youtube.com/nextcloud">YouTube</a></li>
<li><a class="reference external" href="https://twitter.com/nextclouders">Twitter</a></li>
<li><a class="reference external" href="https://mastodon.xyz/@nextcloud">Mastodon</a></li>
<li><a class="reference external" href="https://nextcloud.com/podcast/">Podcast</a></li>
<li><a class="reference external" href="https://nextcloud.com/blogfeed">RSS Feed</a></li>
</ul>
</div>
<div class="col-sm-2">
<h1>Interact</h1>
<ul>
<li><a href="https://nextcloud.com/support/">Support</a></li>
<li><a href="https://help.nextcloud.com/categories">Forums</a></li>
<li><a href="https://nextcloud.com/instant-trial/">Demo</a></li>
<li><a href="https://nextcloud.com/contact/">Contact us</a></li>
<li><a href="https://github.com/nextcloud">Bug Tracker</a></li>
</ul>
</div>
<div class="col-sm-2">
<h1>Follow us</h1>
<ul>
<li><a href="https://nextcloud.com/blog/">Blog</a></li>
<li><a href="https://www.facebook.com/Nextclouders/">Facebook</a></li>
<li><a href="https://x.com/nextclouders">X</a></li>
<li><a href="https://instagram.com/nextclouders">Instagram</a></li>
<li><a href="https://www.linkedin.com/company/10827569/">LinkedIn</a></li>
<li><a href="https://youtube.com/nextcloud">YouTube</a></li>
<li><a href="https://mastodon.xyz/@nextcloud">Mastodon</a></li>
<li><a href="https://nextcloud.com/feed/">Feed</a></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-sm-12 text-center">
<p>&copy; 2021 Nextcloud GmbH</p>
<div class="col-sm-10 col-sm-offset-1">
<p class="copyright">&copy; 2025 Nextcloud GmbH</p>
</div>
</div>
</div><!-- container -->

View File

@@ -770,52 +770,45 @@ i[class*='icon-'] {
}
footer.page-footer {
background-color: #2a2a36; }
background-color: #0F0833;
color: #ffffff; }
footer.page-footer h1 {
margin-top: 70px;
font-size: 19px;
font-size: 15px;
font-weight: bold;
line-height: 1.8;
letter-spacing: -0.9px;
color: #8e8e8e; }
color: #ffffff; }
footer.page-footer ul {
list-style-type: none;
padding-left: 0; }
footer.page-footer li {
font-size: 15px;
font-size: 13px;
line-height: 1.8;
color: #ffffff;
width: 140px;
margin-top: 0; }
footer.page-footer li a {
color: #ffffff;
position: relative; }
footer.page-footer li a:before {
content: "";
position: absolute;
width: 100%;
height: 2px;
bottom: 0;
left: 0;
background-color: white;
visibility: hidden;
-webkit-transform: scaleX(0);
transform: scaleX(0);
-webkit-transition: all 0.2s ease-in-out 0s;
transition: all 0.2s ease-in-out 0s; }
display: block;
text-underline-offset: 2px;
margin-left: -8px;
padding: 8px; }
footer.page-footer li a:hover {
color: #ffffff;
text-decoration: none; }
footer.page-footer li a:hover:before {
visibility: visible;
-webkit-transform: scaleX(1);
transform: scaleX(1); }
text-shadow: none;
text-decoration: underline; }
footer.page-footer p {
padding-top: 50px;
padding-bottom: 30px;
font-size: 15px;
line-height: 1.8;
color: #ffffff; }
footer.page-footer div.offering {
padding: 0 50px;
margin-top: 120px; }
footer.page-footer p.copyright {
color: rgba(255, 255, 255, 0.5);
font-size: 13px; }
@media (max-width: 768px) {
footer.page-footer p {
float: left;
@@ -840,7 +833,7 @@ footer.page-footer {
font-weight: bold;
line-height: 1.8;
letter-spacing: -0.9px;
color: #8e8e8e; }
color: #ffffff; }
footer.page-footer ul {
list-style-type: none;
padding-left: 0; }
@@ -855,6 +848,35 @@ div.thumbnail > img {
margin-bottom: 0;
}
.bootstrap-container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@media (min-width: 768px) {
.bootstrap-container {
width: 750px;
}
}
@media (min-width: 992px) {
.bootstrap-container {
width: 970px;
}
}
@media (min-width: 1200px) {
.bootstrap-container {
width: 1170px;
}
}
@media (min-width: 1500px) { /* add an extra wide bootstrap container */
.bootstrap-container {
width: 1470px;
}
}
/* Make YouTube videos responsive */
@media(min-width: 995px) {
.videoWrapper {

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -325,6 +325,17 @@ When looking through your mailbox you will see a short AI generated summary of y
.. note:: Please note that the feature has to be enabled by the administrator
Quick actions
-------------
.. versionadded:: 5.5 (Nextcloud 30)
Allows you to group action steps that you would normally perform on envelopes such as tagging, moving, marking as read ... into quick actions that can be executed with a single click.
Quick actions are scoped to one mail account and can be created and managed in the mail settings under "Quick actions" or directly from the envelope action menu.
.. note:: Some action steps such as `Mark as spam`, `Move thread` and `Delete thread` are mutually exclusive and cannot be part of the same quick action, they also can't be re-ordered and will always be executed last.
.. note:: Please note that quick actions will be performed on all messages in a thread when executed on one.
Message actions
---------------

View File

@@ -7,6 +7,7 @@
# cdehe7519 <claude.deheneffe@gmail.com>, 2021
# Jérémie Tarot <silopolis@gmail.com>, 2023
# Matsac42, 2025
# William Méauzoone, 2025
#
#, fuzzy
msgid ""
@@ -15,7 +16,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-26 17:33+0000\n"
"PO-Revision-Date: 2021-12-01 18:40+0000\n"
"Last-Translator: Matsac42, 2025\n"
"Last-Translator: William Méauzoone, 2025\n"
"Language-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -129,7 +130,7 @@ msgstr "Contacts"
#: ../../groupware/sync_ios.rst:39
msgid "Select Contacts."
msgstr "Sélectionner Comptes."
msgstr "Sélectionner Contacts."
#: ../../groupware/sync_ios.rst:40
msgid "Select Contacts Accounts."

View File

@@ -90,7 +90,7 @@ msgid ""
"In the Nextcloud mobile, go to **Settings**/**More**, tap on \"**Sync "
"calendars & contacts**\"."
msgstr ""
"En Nextcloud móbil, vai a **Axustes**/**Máis**, toque en \"** Sincronizar "
"En Nextcloud móbil, vai a **Axustes**/**Máis**, toque en \"**Sincronizar "
"caldendarios e contactos**\"."
#: ../../groupware/sync_android.rst:33