Upgrade to Nextcloud 34

Deprecations

All deprecations that were announced in the Deprecated APIs section.

Removed front-end APIs and libraries

  • OC.Dialogs.fileexists was deprecated and is now removed. Use the conflict picker from the @nextcloud/dialogs library instead.

  • OC.Notifications was deprecated and is now removed. Use the notification API from the @nextcloud/dialogs library instead.

  • OC.Apps was deprecated and is now removed. Use Vue components from the @nextcloud/vue instead.

  • OC.*menu* methods were deprecated and are now removed. Use Vue components from the @nextcloud/vue instead.

  • Magic handling of .live-relative-timestamp (elements with this class were automatically updated to show relative timestamps) was removed. Use the NcDateTime component from the @nextcloud/vue library instead

  • The global snapper was deprecated and is now removed. For the app navigation please migrate your app to Vue and use the NcAppNavigation component from the @nextcloud/vue library instead.

  • Some deprecated globally shared libraries were removed. If you still rely on them, you need to bundle them with your app:

    • jQuery was deprecated and scheduled for removal since Nextcloud 19.

    • jQuery UI was deprecated and scheduled for removal since Nextcloud 19.

    • Backbone was deprecated and scheduled for removal since Nextcloud 19.

    • OC.Files.Client as it was extending the Backbone.

    • Handlebars was deprecated and scheduled for removal since Nextcloud 19.

Removed back-end APIs

  • \OCP\Share_Backend, \OCP\Share_Backend_Collection, \OCP\Share_Backend_File_Dependent were removed. This old share backend was replaced in Nextcloud 9 with a new backend system based on IShareProvider.

  • All these methods were deprecated since before Nextcloud 20 and were removed:

    • \OCP\AppFramework\Http\EmptyContentSecurityPolicy::allowEvalScript

    • \OCP\AppFramework\Http\EmptyContentSecurityPolicy::addAllowedChildSrcDomain

    • \OCP\AppFramework\Http\EmptyContentSecurityPolicy::disallowChildSrcDomain

    • \OCP\Collaboration\Resources\IManager::registerResourceProvider

    • \OCP\Notification\IManager::registerNotifier

    • \OCP\Util::recursiveArraySearch

  • All these classes were deprecated since before Nextcloud 20 and were removed:

    • \OCP\AppFramework\Http\StrictContentSecurityPolicy

    • \OCP\AppFramework\Http\StrictEvalContentSecurityPolicy

    • \OCP\AppFramework\Http\StrictInlineContentSecurityPolicy

  • Various methods from the legacy OC_Util static class were removed:

    • Instead of \OC_Util::encodePath use \OCP\Util::encodePath.

    • Instead of \OC_Util::sanitizeHTML use \OCP\Util::sanitizeHTML

    • Instead of \OC_Util::redirectToDefaultPage and \OC_Util::getDefaultPageUrl use \OCP\IUrlGenerator::linkToDefaultPageUrl

    • Instead of \OC_Util::checkAdminUser use IGroupManager::class::isAdmin

Settings title left-alignment

Todo

This is work in progress and needs an update when the changes have been finalized.

The title alignment of settings pages will be changed to left-aligned. See nextcloud-libraries/nextcloud-vue#7641 for details.

Application namespace management

\OCP\App\IAppManager was extended with two new methods related to application namespaces:

  • getAppNamespace(string $appId): string returns the namespace for an application from its appid. See Documentation.

  • getAppFromNamespace(string $className): ?string does the opposite. Less common but it is used in guests application. See Documentation.

This replaces a static method in \OCP\AppFramework\App which is now deprecated.