Merge pull request #76 from nextcloud/fix-night-work

Some more cleanup
This commit is contained in:
Morris Jobke
2016-07-22 15:02:12 +02:00
committed by GitHub
64 changed files with 133 additions and 1241 deletions

View File

@@ -16,7 +16,7 @@ By default, Nextcloud can generate previews for the following filetypes:
* Cover of MP3 files
* Text documents
.. note:: Older versions of Nextcloud also supported the preview generation
.. note:: Technically Nextcloud can also generate the previews
of other file types such as PDF, SVG or various office documents.
Due to security concerns those providers have been disabled by
default and are considered unsupported.

View File

@@ -82,7 +82,7 @@ Simply go to your Nextcloud Apps page to enable it.
.. figure:: ../images/antivirus-app.png
Configuring ClamAV on Nextcloud
------------------------------
-------------------------------
Next, go to your Nextcloud Admin page and set your Nextcloud logging level to
Everything.

View File

@@ -39,7 +39,7 @@ of memcache that best fits your needs. The supported caching backends are:
* `Redis <http://redis.io/>`_, PHP module 2.2.5 and up required.
For distributed caching.
Memcaches must be explicitly configured in Nextcloud 8.1 and up by installing
Memcaches must be explicitly configured in Nextcloud by installing
and enabling your desired cache, and then adding the appropriate entry to
``config.php`` (See :doc:`config_sample_php_parameters` for an overview of
all possible config parameters).

View File

@@ -54,7 +54,7 @@ configured on your Personal page. The test message says::
--
Nextcloud
web services under your control
a safe home for all your data
Configuring PHP and Sendmail
----------------------------

View File

@@ -27,7 +27,7 @@ Operating system
.. _dev-urandom-label:
Give PHP read access to ``/dev/urandom``
*****************************************
****************************************
Nextcloud uses a `RFC 4086 ("Randomness Requirements for Security")`_ compliant
mixer to generate cryptographically secure pseudo-random numbers. This means
@@ -136,21 +136,21 @@ available SSL ciphers and options depend completely on your environment and
thus giving a generic recommendation is not really possible.
We recommend using the `Mozilla SSL Configuration Generator`_ to generate a
suitable configuration suited for your environment, and the free `Qualys
SSL Labs Tests`_ gives good guidance on whether your SSL server is correctly
suitable configuration suited for your environment, and the free `Qualys SSL Labs Tests`_
gives good guidance on whether your SSL server is correctly
configured.
Also ensure that HTTP compression is disabled to mitigate the BREACH attack.
Use a dedicated domain for Nextcloud
-----------------------------------
------------------------------------
Administrators are encouraged to install Nextcloud on a dedicated domain such as
cloud.domain.tld instead of domain.tld to gain all the benefits offered by the
Same-Origin-Policy.
Ensure that your Nextcloud instance is installed in a DMZ
--------------------------------------------------------
---------------------------------------------------------
As Nextcloud supports features such as Federated File Sharing we do not consider
Server Side Request Forgery (SSRF) part of our threat model. In fact, given all our

View File

@@ -1,6 +1,6 @@
=============================
==============================
Nextcloud Server Configuration
=============================
==============================
.. toctree::
:maxdepth: 2
@@ -24,4 +24,3 @@ Nextcloud Server Configuration
js_css_asset_management_configuration
automatic_configuration
oc_server_tuning

View File

@@ -1,6 +1,6 @@
======================
=======================
Nextcloud Server Tuning
======================
=======================
Using cron to perform background jobs
-------------------------------------
@@ -20,9 +20,8 @@ Caching
-------
Caching improves performance by storing data, code, and other objects in memory.
Memory cache configuration for the Nextcloud server is no longer automatic in
Nextcloud 8.1 and up, but must be installed and configured. See
:doc:`caching_configuration`.
Memory cache configuration for the Nextcloud server must be installed and configured.
See :doc:`caching_configuration`.
Using MariaDB/MySQL instead of SQLite
-------------------------------------
@@ -73,4 +72,4 @@ AES-NI extension:
coreinfo, it is maybe disabled in the BIOS.
* If your environment runs virtualized, check the virtualization vendor for
support.
support.

View File

@@ -2,7 +2,7 @@
Using the occ Command
=====================
Nextcloud's ``occ`` command (Nextcloud console) is Nextcloud's command-line
Nextcloud's ``occ`` command (origins from "ownCloud Console") is Nextcloud's command-line
interface. You can perform many common server operations with ``occ``, such as
installing and upgrading Nextcloud, manage users, encryption, passwords, LDAP
setting, and more.
@@ -10,9 +10,7 @@ setting, and more.
``occ`` is in the :file:`nextcloud/` directory; for example
:file:`/var/www/nextcloud` on Ubuntu Linux. ``occ`` is a PHP script. **You must
run it as your HTTP user** to ensure that the correct permissions are maintained
on your Nextcloud files and directories. In Nextcloud 8.2+ you may run it from
any directory (specifying the filepath); in previous releases it had to be
run from the :file:`nextcloud/` directory.
on your Nextcloud files and directories.
occ Command Directory
---------------------
@@ -167,7 +165,6 @@ The ``app`` commands list, enable, and disable apps::
app:disable disable an app
app:enable enable an app
app:getpath Get an absolute path to the app directory
(added in 9.0)
app:list List all available apps
List all of your installed apps, and show whether they are
@@ -419,7 +416,7 @@ Run this command to migrate calendars::
sudo -u www-data php occ dav:migrate-calendars [user]
See `Nextcloud 9.0 - calendar migration analysis
See `ownCloud 9.0 - calendar migration analysis
<http://morrisjobke.de/2016/03/07/ownCloud-9.0-calendar-migration-analysis/>`_
for help with troubleshooting and reporting problems.
@@ -433,8 +430,6 @@ bernie::
addressbook::
sudo -u www-data php occ dav:sync-system-addressbook
Added in 9.0.
.. _database_conversion_label:
@@ -561,13 +556,11 @@ Synchronize the addressbooks of all federated Nextcloud servers::
federation:sync-addressbooks Synchronizes addressbooks of all
federated clouds
In Nextcloud 9.+, servers connected with federation shares can share user
In Nextcloud, servers connected with federation shares can share user
address books, and auto-complete usernames in share dialogs. Use this command
to synchronize federated servers::
sudo -u www-data php occ federation:sync-addressbooks
Added in 9.0.
.. _file_operations_label:
@@ -580,7 +573,7 @@ File Operations
files:cleanup cleanup filecache
files:scan rescan filesystem
files:transfer-ownership All files and folders are moved to another
user - shares are moved as well. (Added in 9.0)
user - shares are moved as well.
The ``files:scan`` command scans for new files and updates the file cache. You
may rescan all files, per-user, a space-delimited list of users, and limit the
@@ -644,9 +637,6 @@ before removing a user::
Files External
--------------
These commands replace the ``data/mount.json`` configuration file used in
Nextcloud releases before 9.0.
.. note::
These commands are only available when the "External storage support" app
(``files_external``) is enabled.
@@ -675,14 +665,12 @@ Nextcloud user.
Use ``files_external:import [filename]`` to import legacy JSON configurations,
and to copy external mount configurations to another Nextcloud server.
Added in 9.0.
.. _integrity_check_label:
Integrity Check
---------------
Apps which have an official tag MUST be code signed starting with Nextcloud 9.0. Unsigned official apps won't be installable anymore. Code signing is optional for all third-party applications::
Apps which have an official tag MUST be code signed with Nextcloud. Unsigned official apps won't be installable anymore. Code signing is optional for all third-party applications::
integrity
integrity:check-app Check app integrity using a signature.
@@ -704,8 +692,6 @@ When it returns nothing, your app is signed correctly. When it returns a message
``integrity:sign-core`` is for Nextcloud core developers only.
See :doc:`../issues/code_signing` to learn more.
Added in 9.0.
.. _create_javascript_translation_files_label:
@@ -713,7 +699,7 @@ l10n, Create Javascript Translation Files for Apps
--------------------------------------------------
This command is for app developers to update their translation mechanism from
Nextcloud 7 to Nextcloud 8 and later.
ownCloud 7 to Nextcloud.
.. _ldap_commands_label:

View File

@@ -87,7 +87,7 @@ Your Web server is not yet set up properly to allow file synchronization
"Your web server is not yet set up properly to allow file synchronization because
the WebDAV interface seems to be broken."
At the Nextcloud community forums a larger `FAQ <https://forum.owncloud.org/viewtopic.php?f=17&t=7536>`_
At the ownCloud community forums a larger `FAQ <https://forum.owncloud.org/viewtopic.php?f=17&t=7536>`_
is maintained containing various information and debugging hints.
Outdated NSS / OpenSSL version
@@ -126,4 +126,4 @@ Your database does not run with "READ COMMITED" transaction isolation level
"Your database does not run with "READ COMMITED" transaction isolation level.
This can cause problems when multiple actions are executed in parallel."
Please refer to :ref:`db-transaction-label` how to configure your database for this requirement.
Please refer to :ref:`db-transaction-label` how to configure your database for this requirement.

View File

@@ -11,7 +11,7 @@ user.
.. note:: The PHP LDAP module is required; this is supplied by ``php5-ldap`` on
Debian/Ubuntu, and ``php-ldap`` on CentOS/Red Hat/Fedora. PHP 5.4+ is
required in Nextcloud 8.1.
required in Nextcloud.
The LDAP application supports:
@@ -411,9 +411,9 @@ User Home Folder Naming Rule:
* Example: *cn*
In new Nextcloud installations (8.0.10, 8.1.5, 8.2.0 and up) the home folder rule is enforced. This means that once you set a home folder naming rule (get a home folder from an LDAP attribute), it must be available for all users. If it isn't available for a user, then that user will not be able to login. Also, the filesystem will not be set up for that user, so their file shares will not be available to other users.
In new Nextcloud installations the home folder rule is enforced. This means that once you set a home folder naming rule (get a home folder from an LDAP attribute), it must be available for all users. If it isn't available for a user, then that user will not be able to login. Also, the filesystem will not be set up for that user, so their file shares will not be available to other users.
In existing Nextcloud installations the old behavior still applies, which is using the Nextcloud username as the home folder when an LDAP attribute is not set. You may change this to enforcing the home folder rule with the ``occ`` command in Nextcloud 8.2, like this example on Ubuntu::
In migrated Nextcloud installations the old behavior still applies, which is using the Nextcloud username as the home folder when an LDAP attribute is not set. You may change this to enforcing the home folder rule with the ``occ`` command in Nextcloud, like this example on Ubuntu::
sudo -u www-data php occ config:app:set user_ldap enforce_home_folder_naming_rule --value=1
@@ -496,7 +496,7 @@ When the configuration test reports success, save your settings and check if the
users and groups are fetched correctly on the Users page.
Nextcloud Avatar integration
---------------------------
----------------------------
Nextcloud supports user profile pictures, which are also called avatars. If a user
has a photo stored in the *jpegPhoto* or *thumbnailPhoto* attribute on your LDAP
@@ -571,7 +571,7 @@ In case you have a working configuration and want to create a similar one or
Now you can modify and enable the configuration.
Nextcloud LDAP Internals
-----------------------
------------------------
Some parts of how the LDAP backend works are described here.
@@ -598,8 +598,8 @@ testing, you can empty the tables any time. Do not do this in production.
Caching
^^^^^^^
The LDAP cache has changed in Nextcloud 8.1. There is no more file cache, but
only a memory cache, and you must install and configure the memory cache (see
The LDAP information is cached in Nextcloud memory cache, and you must install
and configure the memory cache (see
:doc:`../configuration_server/caching_configuration`). The Nextcloud **Cache**
helps to speed up user interactions and sharing. It is populated on demand,
and remains populated until the **Cache Time-To-Live** for each unique request

View File

@@ -51,7 +51,7 @@ This example shows what the table of users marked as ``deleted`` looks like::
$ sudo -u www-data php occ ldap:show-remnants
+-----------------+-----------------+------------------+--------------------------------------+
| Nextcloud name | Display Name | LDAP UID | LDAP DN |
| Nextcloud name | Display Name | LDAP UID | LDAP DN |
+-----------------+-----------------+------------------+--------------------------------------+
| aaliyah_brown | aaliyah brown | aaliyah_brown | uid=aaliyah_brown,ou=people,dc=com |
| aaliyah_hammes | aaliyah hammes | aaliyah_hammes | uid=aaliyah_hammes,ou=people,dc=com |
@@ -63,7 +63,7 @@ Then you can run ``sudo -u www-data php occ user:delete aaliyah_brown`` to delet
user aaliyah_brown. You must use the user's Nextcloud name.
Deleting Local Nextcloud Users
-----------------------------
------------------------------
You may also use ``occ user:delete [user]`` to remove a local Nextcloud user;
this removes their user account and their data.

View File

@@ -23,7 +23,7 @@ See :doc:`../whats_new_admin` for more information on the different Nextcloud
editions.
Nextcloud Videos and Blogs
-------------------------
--------------------------
See the `official Nextcloud channel
<https://www.youtube.com/channel/UCQjN5Fs5QSz1loJqLb5bkew>`_
@@ -41,11 +41,11 @@ user interface, and desktop and mobile clients, please refer to their
respective manuals:
* `Nextcloud User Manual`_
* `Nextcloud/Nextcloud Desktop Client`_
* `Nextcloud/ownCloud Desktop Client`_
* `Nextcloud Android App`_
* `Nextcloud iOS App`_
.. _`Nextcloud User Manual`: https://docs.nextcloud.org/server/9.0/user_manual/
.. _`Nextcloud/Nextcloud Desktop Client`: https://doc.owncloud.org/desktop/2.2/
.. _`Nextcloud/ownCloud Desktop Client`: https://doc.owncloud.org/desktop/2.2/
.. _`Nextcloud Android App`: https://docs.nextcloud.org/android/
.. _`Nextcloud iOS App`: https://docs.nextcloud.org/ios/

View File

@@ -42,7 +42,7 @@ page by default.
Click the app name to view a description of the app and any of the app settings in the Application View field. Clicking the **Enable** button will enable the app. If the app is not part of the Nextcloud installation, it will be downloaded from the app store, installed and enabled.
Click the gear icon on the lower left to browse experimental apps in the `Nextcloud Apps
Click the gear icon on the lower left to browse experimental apps in the `ownCloud Apps
Store <https://apps.owncloud.com/>`_. Install experimental apps at your own risk.
Sometimes the installation of a third-party app fails silently, possibly because
@@ -52,7 +52,7 @@ API. If they are then they will not be installed.
.. note:: If you would like to create or add your own Nextcloud app, please
refer to the `developer manual
<https://doc.owncloud.org/server/9.0/developer_manual/app/index.html>`_.
<https://docs.nextcloud.org/server/10/developer_manual/app/index.html>`_.
Using Custom App Directories
----------------------------

View File

@@ -1,6 +1,6 @@
==========================
===========================
Supported Apps in Nextcloud
==========================
===========================
AGPL Apps
---------
@@ -31,17 +31,3 @@ AGPL Apps
* Update Notifications
* User External
* User LDAP
Enterprise-Only Apps
--------------------
* Enterprise License Key
* Files Drop
* File Firewall
* LDAP Home Connector
* Log user and Sharing actions (1 new app, replacing the 2 former logging apps)
* Object Storage (S3)
* SharePoint
* Shibboleth (SAML)
* Windows Network Drives (requires External Storage)
* Workflow

View File

@@ -7,7 +7,7 @@ convenient for scripted operations, headless servers, and sysadmins who prefer
the command line. There are three stages to installing Nextcloud via the command
line:
1. Download and install the Nextcloud code and unpack the tarball in the appropriate directories. (See :doc:`source_installation`.)
1. Download the Nextcloud code and unpack the tarball in the appropriate directories. (See :doc:`source_installation`.)
2. Change the ownership of your ``nextcloud`` directory to your HTTP user, like
this example for Debian/Ubuntu. You must run ``occ`` as your HTTP user; see

View File

@@ -17,14 +17,14 @@ FAQ
---
Why Did Nextcloud Add Code Signing?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
By supporting Code Signing we add another layer of security by ensuring that
nobody other than authorized persons can push updates for applications, and
ensuring proper upgrades.
Do We Lock Down Nextcloud?
^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^
The Nextcloud project is open source and always will be. We do not want to
make it more difficult for our users to run Nextcloud. Any code signing errors on
@@ -170,7 +170,7 @@ In above error output it can be seen that:
The solution is to upload the correct "index.php" and "version.php" files, and
delete the "test.php" file. For the calendar exception contact the developer of
the application. For other means on how to receive support please take a look at
https://owncloud.org/support/. After fixing these problems verify by clicking
https://nextcloud.com/support/. After fixing these problems verify by clicking
"Rescan…".
.. note:: When using a FTP client to upload those files make sure it is using the
@@ -181,7 +181,7 @@ https://owncloud.org/support/. After fixing these problems verify by clicking
Rescans
-------
Rescans are triggered at installation, and by updates. You may run scans manually with the ``occ`` command. The first command scans the Nextcloud core files, and the second command scans the named app. There is not yet a command to manually scan all apps::
Rescans are triggered at installation, and by updates. You may run scans manually with the ``occ`` command. The first command scans the Nextcloud server files, and the second command scans the named app. There is not yet a command to manually scan all apps::
occ integrity:check-core
occ integrity:check-app $appid

View File

@@ -20,8 +20,7 @@ back for the help you get. This is the only way to keep a community like
Nextcloud healthy and sustainable!
If you are using Nextcloud in a business or otherwise large scale deployment,
note that Nextcloud Inc. offers the `Enterprise Edition`_ with commercial
support options.
note that Nextcloud GmbH offers commercial support options.
Bugs
----
@@ -57,7 +56,7 @@ troubleshooting. Please refer to the :ref:`apps_commands_label` on how
to disable an app from command line.
Nextcloud Logfiles
^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^
In a standard Nextcloud installation the log level is set to ``Normal``. To find
any issues you need to raise the log level to ``All`` in your ``config.php``
@@ -228,7 +227,7 @@ See:
<http://sabre.io/dav/clients/finder/>`_
(Describes problems with Finder on various Web servers)
There is also a well maintained FAQ thread available at the `Nextcloud Forums
There is also a well maintained FAQ thread available at the `ownCloud Forums
<https://forum.owncloud.org/viewtopic.php?f=17&t=7536>`_
which contains various additional information about WebDAV problems.

View File

@@ -117,7 +117,7 @@ Nextcloud current with these steps:
If you are using a Snap package:
sudo snap refresh nextcloud
If you did **not** install via a SNap package:
If you did **not** install via a Snap package:
#. Upgrade your current version to the latest point release
#. Upgrade your current version to the next major release

View File

@@ -1,6 +1,6 @@
===================================
====================================
How to Upgrade Your Nextcloud Server
===================================
====================================
There are three ways to upgrade your Nextcloud server:
@@ -24,9 +24,9 @@ notification it brings you here, to this page.
**It is best to keep your Nextcloud server upgraded regularly**, and to install
all point releases and major releases without skipping any of them, as skipping
releases increases the risk of errors. Major releases are 8.0, 8.1, 8.2, and
9.0. Point releases are intermediate releases for each major release. For
example, 8.0.9 and 8.1.3 are point releases. **Skipping major releases is not
releases increases the risk of errors. Major releases are 9, 10, and
11. Point releases are intermediate releases for each major release. For
example, 9.0.52 and 10.0.2 are point releases. **Skipping major releases is not
supported.**
**Upgrading is disruptive**. Your Nextcloud server will be put into maintenance
@@ -72,12 +72,3 @@ Nextcloud release. Any apps that are not developed by Nextcloud show a 3rd party
designation. **Install unsupported apps at your own risk**. Then, before the
upgrade, all 3rd party apps must be disabled. After the upgrade is complete you
may re-enable them.
Debian Migration to Official Nextcloud Packages
----------------------------------------------
As of March 2016 Debian will not include Nextcloud packages. Debian users can
migrate to the official Nextcloud packages by following this guide,
`Upgrading Nextcloud on Debian Stable to official packages
<https://owncloud.org/blog/upgrading-owncloud-on-debian-stable-to-official-
packages/>`_.

View File

@@ -14,7 +14,7 @@ to be monitored, and provide guidance on what to look for in Nextcloud in an
enterprise installation.
Nextcloud Deployment Architecture
================================
=================================
Before discussing how to monitor Nextcloud, it is important to understand the architecture of a
typical Nextcloud deployment. These monitoring best practices are developed based on the use of load
@@ -26,7 +26,7 @@ operations are available, and that Nextcloud is simply a new target for these to
The Important Components of Nextcloud
====================================
=====================================
Nextcloud is a PHP application that depends on a filesystem for file storage, and a database for storing
user and file meta data, as well as some application specific information.
@@ -55,10 +55,10 @@ server is operating properly.
Nextcloud.log
------------
-------------
Nextcloud also provides a built in logging function. If the Nextcloud Enterprise Edition logging applications
are enabled, this file will track user logins and shared file activity. If these logging applications are
Nextcloud also provides a built in logging function. If the Nextcloud logging application
is enabled, this file will track user logins and shared file activity. If these logging applications are
not enabled, this log file still tracks basic Nextcloud health. Given the potential for this file to get
quite large, the log file should be rotated on a daily basis, and given the importance of the error information
in the log file, this should be integrated with an enterprise log manager.

View File

@@ -1,6 +1,6 @@
================
=================
Theming Nextcloud
================
=================
.. toctree::
:maxdepth: 2

View File

@@ -1,9 +1,9 @@
================================
=================================
Nextcloud |version| Release Notes
================================
=================================
Changes in 10.0
---------------
Changes in 10
-------------
tbd
tbd

View File

@@ -1,6 +1,6 @@
===========================================
============================================
What's New for Admins in Nextcloud |version|
===========================================
============================================
See the `Nextcloud 10 Features page
<https://github.com/nextcloud/server/wiki/Nextcloud-10-Features>`_ on Github for a

View File

@@ -11,7 +11,7 @@ For third party application developers, Nextcloud offers the Nextcloud Android
library under the MIT license.
Android Nextcloud Client development
-----------------------------------
------------------------------------
If you are interested in working on the Nextcloud android client, you can find
the source code `in github <https://github.com/nextcloud/android/>`_. The
@@ -22,7 +22,7 @@ You might want to start with doing one or two `starter issue <https://github.com
to get into the code and note our :doc:`../general/index`
Nextcloud Android Library
------------------------
-------------------------
This document will describe how to the use Nextcloud Android Library. The
Nextcloud Android Library allows a developer to communicate with any Nextcloud

View File

@@ -4,35 +4,6 @@ Changelog
.. sectionauthor:: Bernhard Posselt <dev@bernhard-posselt.com>
The following changes went into Nextcloud 8.1:
Breaking changes
================
The following breaking changes usually do only affect applications which misuse existing API or do not follow best practises.
* The default Content-Security-Policy of AppFramework apps is now stricter but can be adjusted by developers. See https://github.com/owncloud/core/pull/13989
* Parameters passed to OC.generateUrl are now automatically encoded, this behaviour can be adjusted by developers. See https://github.com/owncloud/core/pull/14266
* Views constructed by OC\Files\View do not allow directory traversals anymore in the constructor. See https://github.com/owncloud/core/pull/14342
* The CSRF token may now contain not URL compatible characters (for example the plus sign: +), developers have to ensure that the CSRF token is encoded properly before using it in URIs.
* The default RNG now returns all valid base64 characters
* OC.msg escapes the message now by default (see https://github.com/owncloud/core/pull/14208)
Features
========
* There is a new :doc:`OCSResponse and OCSController <controllers>` which allows you to easily migrate OCS code to the App Framework. This was added purely for compatibility reasons and the preferred way of doing APIs is using a :doc:`api`
* You can now stream files in PHP by using the built in :doc:`StreamResponse <controllers>`.
* For more advanced usecases you can now implement the :doc:`CallbackResponse <controllers>` interface which allows your response to do its own response rendering
* Custom preview providers can now be implemented using **OCP\IPreview::registerProvider**
* There is a mightier class for remote web service requests at **OCP\Http\Client**
* **OCP\\IImage** allows now basic image manipulations such as resizing or rotating
* **OCP\\Mail** allows sending mails in an object-oriented way now
* **OCP\\IRequest** contains more methods now such as getting the request URI
* **OCP\\Encryption** allows writing custom encryption backends
Furthermore all public APIs have received a **@since** annotation allowing developers to see when a function has been introduced.
Deprecations
============
This is a deprecation roadmap which lists all current deprecation targets and will be updated from release to release. This lists the version when a specific method or class will be removed.

View File

@@ -6,12 +6,12 @@ Classloader
The classloader is provided by Nextcloud and loads all your classes automatically. The only thing left to include by yourself are 3rdparty libraries. Those should be loaded in :file:`lib/AppInfo/Application.php`.
.. versionadded:: 9.1
.. versionadded:: 10
PSR-4 Autoloading
-----------------
Since Nextcloud 9.1 there is a PSR-4 autoloader in place. The namespace **\\OCA\\MyApp**
Since Nextcloud 10 there is a PSR-4 autoloader in place. The namespace **\\OCA\\MyApp**
is mapped to :file:`/apps/myapp/lib/`. Afterwards normal PSR-4 rules apply, so
a folder is a namespace section in the same casing and the class name matches
the file name.
@@ -37,7 +37,7 @@ thereby mapped to :file:`/apps/myapp/tests/`.
Legacy Autoloading
------------------
The legacy classloader, deprecated since 9.1, is still in place and works like this:
The legacy classloader, deprecated since 10, is still in place and works like this:
* Take the full qualifier of a class::

View File

@@ -16,14 +16,14 @@ FAQ
---
Why Did Nextcloud Add Code Signing?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
By supporting Code Signing we add another layer of security by ensuring that
nobody other than authorized persons can push updates for applications, and
ensuring proper upgrades.
Do We Lock Down Nextcloud?
^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^
The Nextcloud project is open source and always will be. We do not want to make
it more difficult for our users to run Nextcloud. Any code signing errors on
@@ -104,8 +104,8 @@ still be ensured by having a new certificate issued.
How Code Signing Affects Apps in the App Store
----------------------------------------------
- Apps which have an ``official`` tag **MUST** be code signed starting with
Nextcloud 9.0. Unsigned ``official`` apps won't be installable anymore.
- Apps which have an ``official`` tag **MUST** be code signed.
Unsigned ``official`` apps won't be installable anymore.
- Apps which have been signed in a previous release **MUST** be code-signed in
all future releases as well, otherwise the update will be refused.

View File

@@ -153,9 +153,8 @@ So basically the container is used as a giant factory to build all the classes t
Use automatic dependency assembly (recommended)
===============================================
.. versionadded:: 8
Since Nextcloud 8 it is possible to omit the **lib/AppInfo/Application.php** and use automatic dependency assembly instead.
In Nextcloud it is possible to omit the **lib/AppInfo/Application.php** and use automatic dependency assembly instead.
How does automatic assembly work
--------------------------------

View File

@@ -26,7 +26,7 @@ To create a controller, simply extend the Controller class and create a method t
Connecting a controller and a route
====================================
===================================
To connect a controller and a route the controller has to be registered in the :doc:`container` like this:
.. code-block:: php
@@ -422,8 +422,6 @@ By default there is only a responder for JSON but more can be added easily:
.. note:: The above example would only return XML if the **format** parameter was *xml*. If you want to return an XMLResponse regardless of the format parameter, extend the Response class and return a new instance of it from the controller method instead.
.. versionadded:: 8
Because returning values works fine in case of a success but not in case of failure that requires a custom HTTP error code, you can always wrap the value in a **DataResponse**. This works for both normal responses and error responses.
.. code-block:: php
@@ -557,7 +555,6 @@ Creating a custom XMLResponse class could look like this:
Streamed and lazily rendered responses
--------------------------------------
.. versionadded:: 8.1
By default all responses are rendered at once and sent as a string through middleware. In certain cases this is not a desirable behavior, for instance if you want to stream a file in order to save memory. To do that use the now available **OCP\\AppFramework\\Http\\StreamResponse** class:
@@ -602,7 +599,6 @@ If you want to use a custom, lazily rendered response simply implement the inter
Modifying the Content Security Policy
-------------------------------------
.. versionadded:: 8.1
By default Nextcloud disables all resources which are not served on the same domain, forbids cross domain requests and disables inline CSS and JavaScript by setting a `Content Security Policy <https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Introducing_Content_Security_Policy>`_. However if an app relies on thirdparty media or other features which are forbidden by the current policy the policy can be relaxed.
@@ -655,8 +651,6 @@ The following policy for instance allows images, audio and videos from other dom
OCS
---
.. versionadded:: 8.1
.. note:: This is purely for compatibility reasons. If you are planning to offer an external API, go for a :doc:`api` instead.
In order to ease migration from OCS API routes to the App Framework, an additional controller and response have been added. To migrate your API you can use the **OCP\\AppFramework\\OCSController** baseclass and return your data in the form of an array in the following way:

View File

@@ -44,7 +44,7 @@ App Development
Intro
=====
Before you start, please check if there already is a similar app in the `App Store <https://apps.owncloud.com>`_, or an official `Nextcloud app <https://github.com/owncloud/core/wiki/Maintainers#apps-repo>`_ (see Apps Repo and Other app repos) that you could contribute to. Also, feel free to communicate your idea and plans to the `user mailing list <https://mailman.owncloud.org/mailman/listinfo/user>`_ or `developer mailing list <https://mailman.owncloud.org/mailman/listinfo/devel>`_ so other contributors might join in.
Before you start, please check if there already is a similar app in the `App Store <https://apps.owncloud.com>`_ or the `GitHub organisation <https://github.com/nextcloud/>`_ that you could contribute to. Also, feel free to communicate your idea and plans in the `forum <https://help.nextcloud.com/>`_ so other contributors might join in.
Then, please make sure you have set up a development environment:

View File

@@ -16,7 +16,6 @@ The :file:`appinfo/info.xml` contains metadata about the app:
<version>1.0</version>
<licence>AGPL</licence>
<author>Your Name</author>
<requiremin>5</requiremin>
<namespace>YourAppsNamespace</namespace>
<types>
@@ -54,6 +53,7 @@ The :file:`appinfo/info.xml` contains metadata about the app:
</dependencies>
<!-- deprecated, just for reference -->
<requiremin>5</requiremin>
<public>
<file id="caldav">appinfo/caldav.php</file>
</public>
@@ -92,16 +92,10 @@ licence
* AGPL 3 (recommended)
* MIT
If a proprietary/non AGPL compatible licence should be used, the `Nextcloud Enterprise Edition <https://owncloud.com/overview/enterprise-edition>`_ must be used.
author
------
**Required**: The name of the app author or authors.
requiremin
----------
Required if not added in the **<dependencies>** tag. The minimal version of Nextcloud.
namespace
---------
Required if routes.php returns an array. If your app is namespaced like **\\OCA\\MyApp\\Controller\\PageController** the required namespace value is **MyApp**. If not given it tries to default to the first letter upper cased app id, e.g. **myapp** would be tried under **Myapp**
@@ -119,7 +113,6 @@ Nextcloud allows to specify four kind of ``types``. Currently supported ``types`
* **logging**: apps which implement a logging system
* **prevent_group_restriction**: apps which can not be enabled for specific groups (e.g. notifications app).
Introduced with Nextcloud 9.0, can also be used in earlier versions, but the functionality is ignored.
.. note::
@@ -185,7 +178,7 @@ Defines the required target operating system the app can run on. Valid values ar
owncloud
========
Defines minimum and maximum versions of the Nextcloud core. In case undefined the values will be taken from the tag 'requiremin'.
**Required**: Defines minimum and maximum versions of the Nextcloud core. In case undefined the values will be taken from the tag 'requiremin'.
Deprecated
@@ -196,6 +189,10 @@ The following sections are just listed for reference and should not be used beca
* **public/remote**: Use :doc:`api` instead because you'll have to use :doc:`../core/externalapi` which is known to be buggy (works only properly with GET/POST)
* **standalone/default_enable**: They tell core what do on setup, you will not be able to even activate your app if it has those entries. This should be replaced by a config file inside core.
requiremin
==========
Deprecated in favor of the **<dependencies>** tag.
public
======
Used to provide a public interface (requires no login) for the app. The id is appended to the URL **/owncloud/index.php/public**. Example with id set to 'calendar'::

View File

@@ -4,7 +4,7 @@ Translation
.. sectionauthor:: Bernhard Posselt <dev@bernhard-posselt.com>
Nextcloud's translation system is powered by `Transifex <https://www.transifex.com/projects/p/owncloud/>`_. To start translating sign up and enter a group. If your community app should be added to Transifex contact one of the `core developers <https://owncloud.org/contact/>`_ to set it up for you.
Nextcloud's translation system is powered by `Transifex <https://www.transifex.com/nextcloud/nextcloud/>`_. To start translating sign up and enter a group. If your app should be added to Transifex just post a new topic in the `translations forum <https://help.nextcloud.com/c/translations>`_ and we will set it up for you.
PHP
===

View File

@@ -5,7 +5,7 @@ App store publishing
.. sectionauthor:: Jos Poortvliet <jospoortvliet@gmail.com>
The Nextcloud App Store
----------------------
-----------------------
The Nextcloud app store is build into Nextcloud to allow you to get your apps to users as easily and safely as possible. The app store and the process of publishing apps aims to be:
* secure

View File

@@ -13,7 +13,7 @@ After the `development tool <https://github.com/nextcloud/ncdev/blob/master/READ
ncdev setup core --dir nextcloud --branch $BRANCH
.. note:: $BRANCH is the desired Nextcloud branch (e.g. stable7 for Nextcloud 7, stable8 for Nextcloud 8, etc)
.. note:: $BRANCH is the desired Nextcloud branch (e.g. stable9 for Nextcloud 9, stable10 for Nextcloud 10, etc)
First you want to enable debug mode to get proper error messages. To do that set ``debug`` to ``true`` in the **nextcloud/config/config.php** file::

View File

@@ -13,20 +13,15 @@ Bugtracker
Thank you for helping Nextcloud by reporting bugs. Before submitting an issue, please read
`Issue submission guidelines`_ first.
* If the issue is with the Nextcloud server, report it to the `Core repository`_
* If the issue is with the Nextcloud server, report it to the `Server repository`_
* If the issue is with the Nextcloud client, report it to the `Client repository`_
* If the issue with with an Nextcloud app, report it to where that app is developed
* If the app is listed in our `main github repository`_ report it to the correct sub
repository
* If the app is listed in the `apps repository`_ report it there
Please note that the mailing list should not be used for bug reports, as it is hard to track them there.
.. _Issue submission guidelines: https://github.com/owncloud/core/blob/master/CONTRIBUTING.md#submitting-issues
.. _Core repository: https://github.com/owncloud/core/issues
.. _Client repository: https://github.com/owncloud/client/issues
.. _main github repository: https://github.com/owncloud
.. _apps repository: https://github.com/owncloud/apps/issues
.. _Issue submission guidelines: https://github.com/nextcloud/server/blob/master/CONTRIBUTING.md#submitting-issues
.. _Server repository: https://github.com/nextcloud/server/issues
.. _Client repository: https://github.com/nextcloud/client/issues
.. _main github repository: https://github.com/nextcloud

View File

@@ -1,6 +1,6 @@
=====================
======================
Nextcloud Bug Triaging
=====================
======================
.. toctree::
:maxdepth: 2
@@ -50,7 +50,7 @@ Github offers several search queries which can be useful to find a list of bugs
* `The bugs least recently commented on <https://github.com/issues?q=is%3Aissue+user%3Anextcloud+is%3Aopen+sort%3Aupdated-asc++is%3Apublic+>`_
* `Least commented issues <https://github.com/issues?q=is%3Aissue+user%3Anextcloud+is%3Aopen+no%3Aassignee+no%3Amilestone+no%3Alabel+sort%3Acomments-asc+>`_
* `Bugs which need info <https://github.com/issues?q=is%3Aissue+user%3Anextcloudcloud+is%3Aopen+label%3A%22Needs+info%22+sort%3Acreated-asc+>`_
* `Bugs which need info <https://github.com/issues?q=is%3Aissue+user%3Anextcloud+is%3Aopen+label%3A%22Needs+info%22+sort%3Acreated-asc+>`_
But there are more methods. For example, if you are a user of Nextcloud with a specific setup like using nginx as Web server or dropbox as storage, or using the encryption app, you could look for bugs with these keywords. You can then use your knowledge of your installation and your installation itself to see if bugs are (still) valid or reproduce them.
@@ -116,9 +116,9 @@ Finalizing and tagging
----------------------
Once you are done reproducing an issue, it is time to finish up and make clear to the developers what they can do:
* If it is a genuine bug (or you are pretty sure it is) add the 'Bug' tag.
* If it is a genuine feature request (or you are pretty sure it is) add the 'enhancement' tag.
* If the issue is clearly related to something specific, @mention a maintainer. examples: @schiesbn for encryption, @blizzz for LDAP, @PVince81 for quota stuff... You can find a `list of maintainers here <https://github.com/nextcloud/server/wiki/Maintainers>`_.
* If it is a genuine bug (or you are pretty sure it is) add the 'bug' label.
* If it is a genuine feature request (or you are pretty sure it is) add the 'enhancement' label.
* If the issue is clearly related to something specific, set the specific feature label and @mention a maintainer
Now, the developers can pick the issue up. Note that while we wish we would always pick up and solve problems promptly, not all areas of Nextcloud get the same amount of attention and contribution, so this can occasionally take a long time.

View File

@@ -13,7 +13,7 @@ App config
"dbtype" => "sqlite",
/* Name of the Nextcloud database */
"dbname" => "owncloud",
"dbname" => "nextcloud",
/* User to access the Nextcloud database */
"dbuser" => "",
@@ -102,7 +102,7 @@ App config
You must have at least 1 app folder writable or you must set the parameter : appstoreenabled to false
*/
array(
'path'=> '/var/www/owncloud/apps',
'path'=> '/var/www/nextcloud/apps',
'url' => '/apps',
'writable' => true,
),

View File

@@ -1,5 +1,5 @@
Theming Nextcloud
================
=================
Themes can be used to customize the look and feel of Nextcloud.
Themes can relate to the following topics of owncloud:

View File

@@ -7,7 +7,7 @@ PHP unit testing
Getting PHPUnit
~~~~~~~~~~~~~~~
Nextcloud uses PHPUnit >= 3.7 for unit testing.
Nextcloud uses PHPUnit >= 4.8 for unit testing.
To install it, either get it via your packagemanager::
@@ -92,7 +92,7 @@ so the next test can run without side effects, like remaining files and entries
For more resources on PHPUnit visit: http://www.phpunit.de/manual/current/en/writing-tests-for-phpunit.html
Bootstrapping Nextcloud
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~
If you use Nextcloud functions or classes in your code, you'll need to make them available to your test by bootstrapping Nextcloud.
To do this, you'll need to provide the ``--bootstrap`` argument when running PHPUnit
@@ -115,7 +115,7 @@ adjust your php.ini and file rights.
su -c "chmod a+w data/owncloud.log"
Running unit tests for the Nextcloud core project
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The core project provides a script that runs all the core unit tests using different database backends like sqlite, mysql, pgsql, oci (for Oracle)::
./autotest.sh

View File

@@ -23,38 +23,21 @@ We assign labels to issues and pull requests to make it easy to find them and to
The most important labels and their meaning:
* #backport-request - the pull requests also needs to be applied to older Nextcloud versions
* #bug - this issue is a bug
* #enhancement - this issue is a feature request/idea for improvement of Nextcloud
* #design - this needs help from the design team or is a design-related issue/pull request
* #sharing - this issue or PR is related to sharing
* #technical debt - this issue or PR is about `technical debt <http://en.wikipedia.org/wiki/Technical_debt>`_
* #sev1-critical #sev2-high #sev3-medium #sev4-low signify how important the bug is.
* #p1-urgent #p2-high #p3-medium #p4-low signify the priority of the bug.
* #Junior Job - these are issues which are relatively easy to solve and ideal for people who want to learn how to code in Nextcloud
* Tags showing the state of the issue or PR, numbered 1-6:
* #starter issue - these are issues which are relatively easy to solve and ideal for people who want to learn how to code in Nextcloud
* #needs info - this issue needs further information from the reporter, see `triaging <../bugtracker/triaging.html>`_
* #high #medium #low signify how important the bug is.
* Tags showing the state of the issue or PR, numbered 0-4:
* #0 - Needs triage - ready to start development on this
* #1 - To develop - ready to start development on this
* #2 - Developing - development in progress
* #3 - To Review - ready for review
* #4 - To Release - reviewed PR that awaits unfreeze of a branch to get merged
* App tags: #app:files #app:user_ldap #app:files_versions and so on. These tags indicate the app that is impacted by the issue or which the PR is related to
* Settings tags: #settings:personal #settings:apps #settings:admin and so on. These tags indicate the settings area that is impacted by the issue or which the PR is related to
* db tags: #db:mysql #db:sqlite #db:postgresql and so on. These tags indicate the database that is impacted by the issue or which the PR is related to
* Browser tags: #browser:ie #browser:safari and so on. These tags indicate the browser that is impacted by the issue or which the PR is related to
* Component tags: #comp:filesystem #comp:javascript and so on. These tags indicate the components of Nextcloud impacted by the issue or which the PR is related to
* Development tool tags: #dev:unit_testing #dev:public_API and so on. These tags indicate development-specific tools like those for testing and public developer-facing API's impacted by the issue or which the PR is related
* Feature tags: #feature:something. These tags indicate the features across apps and components which are impacted by the issue or which the PR is related to
* #triage - this issue *has to be* `triaged <../bugtracker/triaging.html>`_
* #needs info - this issue needs further information from the reporter, see `triaging <../bugtracker/triaging.html>`_ old tag is #clarification request, please don't use that one anymore.
* #discussion - this issue needs to be discussed
* #security - this is a security related issue
* #windows server - this is related to windows server
* #research - this item requires some research before it can continue
* #packaging - this is related to packaging
* #theming - refers to theming issues or improvements
* #l10n - refers to translation issues or improvements
* #release note - relevant for the release notes
* #privacy - refers to issues that might lead to privacy concerns
* #won't fix - This problem won't be fixed (can be for a wide variety of reasons...)
* Feature tags: #feature: something. These tags indicate the features across apps and components which are impacted by the issue or which the PR is related to
If you want a label not in the list above, please first discuss on the mailing list.

View File

@@ -18,7 +18,7 @@ When debug mode is enabled in Nextcloud, a variety of debugging features are ena
Identifying errors
------------------
Nextcloud uses custom error PHP handling that prevents errors being printed to Web server log files or command line output. Instead, errors are generally stored in Nextcloud's own log file, located at: :file:`/data/owncloud.log`
Nextcloud uses custom error PHP handling that prevents errors being printed to Web server log files or command line output. Instead, errors are generally stored in Nextcloud's own log file, located at: :file:`/data/nextcloud.log`
Debugging variables

View File

@@ -11,7 +11,7 @@ Please follow the steps on this page to set up your development environment.
Set up Web server and database
==============================
First `set up your Web server and database <https://doc.owncloud.org/server/9.0/admin_manual/installation/index.html>`_ (**Section**: Manual Installation - Prerequisites).
First `set up your Web server and database <https://docs.nextcloud.org/server/9/admin_manual/installation/index.html>`_ (**Section**: Manual Installation - Prerequisites).
.. TODO ON RELEASE: Update version number above on release
@@ -20,7 +20,7 @@ Get the source
There are two ways to obtain Nextcloud sources:
* Using the `stable version <https://doc.owncloud.org/server/9.0/admin_manual/#installation>`_
* Using the `stable version <https://docs.nextcloud.org/server/9/admin_manual/#installation>`_
.. TODO ON RELEASE: Update version number above on release
* Using the development version from `GitHub`_ which will be explained below.

View File

@@ -1,7 +1,7 @@
Performance Considerations
==========================
.. sectionauthor:: Frank Karlitschek <frank@owncloud.org>
.. sectionauthor:: Frank Karlitschek <frank@karlitschek.com>
This document introduces some common considerations and tips on improving performance of Nextcloud. Speed of Nextcloud is important - nobody likes to wait and often, what is *just slow* for a small amount of data will become *unusable* with a large amount of data. Please keep these tips in mind when developing for Nextcloud and consider reviewing your app to make it faster.

View File

@@ -1,12 +1,12 @@
.. _contents:
================================
=================================
Nextcloud Developer Documentation
================================
=================================
.. _Nextcloud appstore: https://apps.owncloud.com/
.. _Translation: https://www.transifex.com/projects/p/owncloud/
.. _Documentation: https://github.com/owncloud/documentation#owncloud-documentation
.. _ownCloud appstore: https://apps.owncloud.com/
.. _Translation: https://www.transifex.com/nextcloud/nextcloud/
.. _Documentation: https://github.com/nextcloud/documentation
Table of Contents
=================
@@ -17,7 +17,6 @@ Table of Contents
general/index
app/index
android_library/index
ios_library/index
core/index
bugtracker/index
commun/index

View File

@@ -1,819 +0,0 @@
Examples
========
Init the library
----------------
Start using the library, it is needed to init the object OCCommunication.
We recommend using the singleton method in the AppDelegate class in order to
use the Nextcloud iOS library.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
#import "OCCommunication.h"
+ (OCCommunication *)sharedOCCommunication
{
static OCCommunication* sharedOCCommunication = nil;
if (sharedOCCommunication == nil)
{
sharedOCCommunication = [ [ OCCommunicationalloc] init ];
}
return sharedOCCommunication;
}
Also could happen that you need to overwrite the class AFURLSessionManager to manage SSL Certificates
.. code-block:: objective-c
#import "OCCommunication.h"
+ (OCCommunication*)sharedOCCommunication
{
static OCCommunication* sharedOCCommunication = nil;
if (sharedOCCommunication == nil)
{
//Network Upload queue for NSURLSession (iOS 7)
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:k_session_name];
configuration.HTTPMaximumConnectionsPerHost = 1;
configuration.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
OCURLSessionManager *uploadSessionManager = [[OCURLSessionManager alloc] initWithSessionConfiguration:configuration];
[uploadSessionManager.operationQueue setMaxConcurrentOperationCount:1];
[uploadSessionManager setSessionDidReceiveAuthenticationChallengeBlock:^NSURLSessionAuthChallengeDisposition (NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential) {
return NSURLSessionAuthChallengePerformDefaultHandling;
}];
sharedOCCommunication = [[OCCommunication alloc] initWithUploadSessionManager:uploadSessionManager];
}
return sharedOCCommunication;
}
Set credentials
---------------
Authentication on the app is possible by 3 different methods:
* Basic authentication, user name and password
* Cookie
* Token (oAuth)
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
#Basic authentication, user name and password
[[ AppDelegate sharedOCCommunication ] setCredentialsWithUser : userName andPassword : password ];
#Authentication with cookie
[[ AppDelegate sharedOCCommunication ] setCredentialsWithCookie : cookie ];
#Authentication with token
[[ AppDelegate sharedOCCommunication ] setCredentialsOauthWithToken : token ];
Create a folder
---------------
Create a new folder on the cloud server, the info needed to be sent is the path
of the new folder.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication ] createFolder :path onCommunication : [ AppDelegate sharedOCCommunication ]
successRequest :^( NSHTTPURLResponse *response, NSString *redirectedServer) {
//Folder Created
}
failureRequest :^( NSHTTPURLResponse *response, NSError *error) {
//Failure
switch (response.statusCode) {
case kOCErrorServerUnauthorized :
//Bad credentials
break;
case kOCErrorServerForbidden :
//Forbidden
break;
case kOCErrorServerPathNotFound :
//Not Found
break;
case kOCErrorServerTimeout :
//timeout
break;
default:
//default
break;
}
}
errorBeforeRequest :^( NSError *error) {
//Error before request
if (error.code == OCErrorForbidenCharacters) {
//Forbidden characters
}
else
{
//Other error
}
}];
 
Read folder
-----------
Get the content of an existing folder on the cloud server, the info needed to
be sent is the path of the folder. As answer of this method, it will be
received an array with all the files and folders stored in the selected folder.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication] readFolder:path onCommunication:[ AppDelegate sharedOCCommunication]
successRequest:^( NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer) {
//Success
for ( OCFileDto * ocFileDto in items) {
NSLog( @"item path: %@%@" , ocFileDto.filePath, ocFileDto.fileName);
}
}
failureRequest:^( NSHTTPURLResponse *response, NSError *error) {
//Failure
switch (response.statusCode) {
case kOCErrorServerPathNotFound :
//Path not found
break;
case kOCErrorServerUnauthorized :
//Bad credentials
break;
case kOCErrorServerForbidden :
//Forbidden
break;
case kOCErrorServerTimeout :
//Timeout
break ;
default :
break;
}
}];
Read file
---------
Get information related to a certain file or folder. Although, more information
can be obtained, the library only gets the eTag.
Other properties of the file or folder may be obtained: filePath, filename,
isDirectory, size and date
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication ] readFile :path onCommunication :[ AppDelegate sharedOCCommunication ]
successRequest :^( NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer) {
OCFileDto *ocFileDto = [items objectAtIndex : 0 ];
NSLog ( @"item etag: %lld" , ocFileDto. etag); }
failureRequest :^( NSHTTPURLResponse *response, NSError *error) {
switch (response.statusCode) {
case kOCErrorServerPathNotFound:
//Path not found
break;
case kOCErrorServerUnauthorized:
//Bad credentials
break;
case kOCErrorServerForbidden:
//Forbidden
break;
case kOCErrorServerTimeout:
//Timeout
break;
default:
break;
}
}];
Move file or folder
-------------------
Move a file or folder from their current path to a new one on the cloud server.
The info needed is the origin path and the destiny path.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication ] moveFileOrFolder :sourcePath toDestiny :destinyPath onCommunication :[ AppDelegate sharedOCCommunication ]
successRequest :^( NSHTTPURLResponse *response, NSString *redirectedServer) {
//File/Folder moved or renamed
}
failureRequest :^( NSHTTPURLResponse *response, NSError *error) {
//Failure
switch (response.statusCode) {
case kOCErrorServerPathNotFound:
//Path not found
break;
case kOCErrorServerUnauthorized:
//Bad credentials
break;
case kOCErrorServerForbidden:
//Forbidden
break;
case kOCErrorServerTimeout:
//Timeout
break;
default:
break;
}
}
errorBeforeRequest :^( NSError *error) {
if (error.code == OCErrorMovingTheDestinyAndOriginAreTheSame) {
//The destiny and the origin are the same
}
else if (error.code == OCErrorMovingFolderInsideHimself) {
//Moving folder inside himself
}
else if (error.code == OCErrorMovingDestinyNameHaveForbiddenCharacters) {
//Forbidden Characters
}
else
{
//Default
}
}];
Delete file or folder
---------------------
Delete a file or folder on the cloud server. The info needed is the path to
delete.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
 
[[ AppDelegate sharedOCCommunication ] deleteFileOrFolder :path onCommunication :[ AppDelegate
sharedOCCommunication ] successRequest :^( NSHTTPURLResponse *response, NSString *redirectedServer) {
//File or Folder deleted
}
failureRequest :^( NSHTTPURLResponse *response, NSError *error) {
switch (response.statusCode) {
case kOCErrorServerPathNotFound:
//Path not found
break;
case kOCErrorServerUnauthorized:
//Bad credentials
break;
case kOCErrorServerForbidden:
//Forbidden
break;
case kOCErrorServerTimeout:
//Timeout
break;
default:
break;
}
}];
Download a file
---------------
Download an existing file on the cloud server. The info needed is the server
URL, path of the file on the server and localPath, path where the file will be
stored on the device and a boolean to indicate if is necessary to use LIFO queue or FIFO.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
NSOperation *op = nil;
op = [[ AppDelegate sharedOCCommunication ] downloadFile :remotePath toDestiny :localPath withLIFOSystem:isLIFO onCommunication :[ AppDelegate sharedOCCommunication ]
progressDownload :^( NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
//Calculate percent
float percent = ( float)totalBytesRead / totalBytesExpectedToRead;
NSLog ( @"Percent of download: %f" , percent); }
successRequest :^(NSHTTPURLResponse *response, NSString *redirectedServer) {
//Download complete
}
failureRequest :^(NSHTTPURLResponse *response, NSError *error) {
switch (response. statusCode) {
case kOCErrorServerUnauthorized:
//Bad credentials
break;
case kOCErrorServerForbidden:
//Forbidden
break;
case kOCErrorProxyAuth:
//Proxy access required
break;
case kOCErrorServerPathNotFound:
//Path not found
break;
default:
//Default
break;
}
}
shouldExecuteAsBackgroundTaskWithExpirationHandler :^{
[op cancel ];
}];
Download a file with background session
---------------------------------------
Download an existing file storaged on the cloud server using background session, only supported by iOS 7 and higher.
The info needed is, the server URL: path where the file is stored on the server; localPath: path where the file will be stored on the device; and NSProgress: object where get the callbacks of the upload progress.
To get the callbacks of the progress is needed use a KVO in the progress object. We add the code in this example of the call to set the KVO and the method where catch the notifications.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
NSURLSessionDownloadTask *downloadTask = nil;
NSProgress *progress = nil;
downloadTask = [_sharedOCCommunication downloadFileSession:serverUrl toDestiny:localPath defaultPriority:YES onCommunication:_sharedOCCommunication withProgress:&progress successRequest:^(NSURLResponse *response, NSURL *filePath) {
//Upload complete
} failureRequest:^(NSURLResponse *response, NSError *error) {
switch (error.code) {
case kCFURLErrorUserCancelledAuthentication:
//Authentication cancelled
break;
default:
switch (response.statusCode) {
case kOCErrorServerUnauthorized :
//Bad credentials
break;
case kOCErrorServerForbidden:
//Forbidden
break;
case kOCErrorProxyAuth:
//Proxy access required
break;
case kOCErrorServerPathNotFound:
//Path not found
break;
default:
//Default
break;
}
break;
}
}];
// Observe fractionCompleted using KVO
[progress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL];
//Method to catch the progress notifications with callbacks
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"fractionCompleted"] && [object isKindOfClass:[NSProgress class]]) {
NSProgress *progress = (NSProgress *)object;
float percent = roundf (progress.fractionCompleted * 100);
//We make it on the main thread because we came from a delegate
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Progress is %f", percent);
});
}
}
Set callback when background download task finishes
---------------------------------------------------
Method to set callbacks of the pending download transfers when the app starts. It's used when there are pendings download background transfers. The block is executed when a pending background task finishes.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[AppDelegate sharedOCCommunication] setDownloadTaskComleteBlock:^NSURL *(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, NSURL *location) {
}];
Set progress callback with pending background download tasks
------------------------------------------------------------
Method to set progress callbacks of the pending download transfers. It's used when there are pendings background download transfers. The block is executed when a pending task get a input porgress.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[AppDelegate sharedOCCommunication] setDownloadTaskDidGetBodyDataBlock:^(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
}];
Upload a file
-------------
Upload a new file to the cloud server. The info needed is localPath, path where
the file is stored on the device and server URL, path where the file will be
stored on the server.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
NSOperation *op = nil;
op = [[ AppDelegate sharedOCCommunication ] uploadFile :localPath toDestiny : remotePath onCommunication :[ AppDelegate sharedOCCommunication ]
progressUpload :^( NSUInteger bytesWrote, long long totalBytesWrote, long long totalBytesExpectedToWrite) {
//Calculate upload percent
if ( totalBytesExpectedToRead/1024 != 0) {
if ( bytesWrote > 0) {
float percent = totalBytesWrote* 100 / totalBytesExpectedToRead;
NSLog ( @"Percent: %f" , percent);
}
}
}
successRequest :^( NSHTTPURLResponse *response, NSString *redirectedServer) {
//Upload complete
}
failureRequest :^( NSHTTPURLResponse *response, NSString *redirectedServer, NSError *error) {
switch (response. statusCode) {
case kOCErrorServerUnauthorized :
//Bad credentials
break;
case kOCErrorServerForbidden:
//Forbidden
break;
case kOCErrorProxyAuth:
//Proxy access required
break;
case kOCErrorServerPathNotFound:
//Path not found
break;
default:
//Default
break;
}
}
failureBeforeRequest :^( NSError *error) {
switch (error.code) {
case OCErrorFileToUploadDoesNotExist:
//File does not exist
break;
default:
//Default
break;
}
}
shouldExecuteAsBackgroundTaskWithExpirationHandler :^{
[op cancel];
}];
Upload a file with background session
-------------------------------------
Upload a new file to the cloud server using background session, only supported by iOS 7 and higher.
The info needed is localPath, path where the file is stored on the device and server URL, path where the file will be stored on the server and NSProgress object where get the callbacks of the upload progress.
To get the callbacks of the progress is needed use a KVO in the progress object. We add the code in this example of the call to set the KVO and the method where catch the notifications.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
NSURLSessionUploadTask *uploadTask = nil;
NSProgress *progress = nil;
uploadTask = [[AppDelegate sharedOCCommunication] uploadFileSession:localPath toDestiny:remotePath onCommunication:[ AppDelegate sharedOCCommunication ] withProgress:&progress successRequest:^(NSURLResponse *response, NSString *redirectedServer) {
//Upload complete
} failureRequest:^(NSURLResponse *response, NSString *redirectedServer, NSError *error) {
switch (response.statusCode) {
case kOCErrorServerUnauthorized :
//Bad credentials
break;
case kOCErrorServerForbidden:
//Forbidden
break;
case kOCErrorProxyAuth:
//Proxy access required
break;
case kOCErrorServerPathNotFound:
//Path not found
break;
default:
//Default
break;
}
}];
// Observe fractionCompleted using KVO
[progress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL];
//Method to catch the progress notifications with callbacks
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"fractionCompleted"] && [object isKindOfClass:[NSProgress class]]) {
NSProgress *progress = (NSProgress *)object;
float percent = roundf (progress.fractionCompleted * 100);
//We make it on the main thread because we came from a delegate
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Progress is %f", percent);
});
}
}
Set callback when background task finish
-----------------------------------------
Method to set callbacks of the pending transfers when the app starts. It's used when there are pendings background transfers. The block is executed when a pending background task finished.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[AppDelegate sharedOCCommunication] setTaskDidCompleteBlock:^(NSURLSession *session, NSURLSessionTask *task, NSError *error) {
}];
Set progress callback with pending background tasks
---------------------------------------------------
Method to set progress callbacks of the pending transfers. It's used when there are pendings background transfers. The block is executed when a pending task get a input porgress.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[AppDelegate sharedOCCommunication] setTaskDidSendBodyDataBlock:^(NSURLSession *session, NSURLSessionTask *task, int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) {
}];
Check if the server supports Sharing api
----------------------------------------
The Sharing API is included in Nextcloud 5.0.13 and greater versions. The info
needed is activeUser.url, the server URL that you want to check.
Code Example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication ] hasServerShareSupport :_activeUser.url onCommunication :[ AppDelegate sharedOCCommunication ]
successRequest :^( NSHTTPURLResponse *response, BOOL hasSupport, NSString *redirectedServer) {
}
failureRequest :^( NSHTTPURLResponse *response, NSError *error){
}
}];
Read shared all items by link
-----------------------------
Get information about what files and folder are shared by link.
The info needed is Path, the server URL that you want to check.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication ] readSharedByServer :path onCommunication :[ AppDelegate sharedOCCommunication ]
successRequest :^( NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer) {
NSLog ( @"Item: %d" , items);
}
failureRequest :^( NSHTTPURLResponse *response, NSError *error){
NSLog ( @"error: %@" , error);
NSLog ( @"Operation error: %d" , response.statusCode);
}];
Read shared items by link of a path
------------------------------------
Get information about what files and folder are shared by link in a specific path.
The info needed is the server URL that you want to check and the specific path tha you want to check.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[AppDelegate sharedOCCommunication] readSharedByServer:serverPath andPath:path onCommunication:[AppDelegate sharedOCCommunication] successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer) {
NSLog ( @"Item: %d" , items);
} failureRequest:^(NSHTTPURLResponse *response, NSError *error) {
NSLog ( @"error: %@" , error);
NSLog ( @"Operation error: %d" , response.statusCode);
}];
Share link of file or folder
----------------------------
Share a file or a folder from your cloud server by link.
The info needed is Path, your server URL and the path of the item that you want
to share (for example ``/folder/file.pdf``)
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication ] shareFileOrFolderByServer :path andFileOrFolderPath :itemPath onCommunication :[ AppDelegate sharedOCCommunication ]
successRequest :^( NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
NSString *sharedLink = [ NSString stringWithFormat:@ `path/public.php?service=files&t=%@ <mailto:path/public.php?service=files&t=%25@>`_
, token];
}
failureRequest :^( NSHTTPURLResponse *response, NSError *error){
[ _delegate endLoading ];
DLog ( @error.code: %d , error. code);
DLog (@server.error: %d, response. statusCode);
int code = response. statusCode ;
if (error.code == kOCErrorServerPathNotFound) {
}
switch (code) {
case kOCErrorServerPathNotFound:
//File to share not exists
break;
case kOCErrorServerUnauthorized:
//Error login
break;
case kOCErrorServerForbidden:
//Permission error
break;
case kOCErrorServerTimeout:
//Not possible to connect to server
break;
default:
if (error.code == kOCErrorServerPathNotFound) {
//File to share not exists
} else {
//Not possible to connect to the server
}
break;
}
}];
}
NSLog ( @"error: %@" , error);
NSLog ( @"Operation error: %d" , response.statusCode);
}];
Unshare a folder or file by link
--------------------------------
Stop sharing by link a file or a folder from your cloud server.
The info needed is Path, your server URL and the Id of the item that you want
to Unshare.
Before unsharing an item, you have to read the shared items on the selected
server, using the method “ readSharedByServer ” so that you get the array
“items” with all the shared elements. These are objects OCShareDto, one of
their properties is idRemoteShared, parameter needed to unshared an element.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[ AppDelegate sharedOCCommunication ] unShareFileOrFolderByServer :path andIdRemoteSharedShared :sharedByLink. idRemoteShared onCommunication :[ AppDelegate sharedOCCommunication ]
successRequest :^( NSHTTPURLResponse *response, NSString *redirectedServer) {
//File unshared
}
failureRequest :^( NSHTTPURLResponse *response, NSError *error){
//Error
}
];
Check if file of folder is shared
----------------------------------
Check if a specific file or folder is shared in your cloud server.
The info need is Path, your server URL and the Id of the item that you want.
Before check an item, you have to read the shared items on the selected
server, using the method “ readSharedByServer ” so that you get the array
“items” with all the shared elements. These are objects OCShareDto, one of
their properties is idRemoteShared, parameter needed to unshared an element.
Code example
~~~~~~~~~~~~
.. code-block:: objective-c
[[AppDelegate sharedOCCommunication] isShareFileOrFolderByServer:path andIdRemoteShared:_shareDto.idRemoteShared onCommunication:[AppDelegate sharedOCCommunication] successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer, BOOL isShared) {
//File/Folder is shared
} failureRequest:^(NSHTTPURLResponse *response, NSError *error) {
//File/Folder is not shared
}];
Tips
----
* Credentials must be set before calling any method
* Paths must not be on URL Encoding
* Correct path: ``https://example.com/owncloud/remote.php/dav/Pop_Music/``
* Wrong path: ``https://example.com/owncloud/remote.php/dav/Pop%20Music/``
* There are some forbidden characters to be used in folder and files names on the server, same on the Nextcloud iOS library "\", "/","<",">",":",""","","?","*"
* To move a folder the origin path and the destination path must end with “/”
* To move a file the origin path and the destination path must not end with “/”
* Upload and download actions may be cancelled thanks to the object “NSOperation”
* Unit tests, before launching unit tests you have to enter your account information (server url, user and password) on OCCommunicationLibTests.m

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

View File

@@ -1,50 +0,0 @@
===========================
iOS Application Development
===========================
Nextcloud provides an official Nextcloud iOS client, which gives its users
access to their files on their Nextcloud. It also includes functionality like
automatically uploading pictures and videos to Nextcloud.
For third party application developers, Nextcloud offers the Nextcloud iOS
library under the MIT license.
iOS Nextcloud Client development
-----------------------------------
If you are interested in working on the Nextcloud iOS client, you can find
the source code `in github <https://github.com/owncloud/ios>`_. The
setup and process of contribution is
`documented here <https://github.com/owncloud/ios/blob/master/SETUP.md>`_.
You might want to start with doing one or two `junior jobs
<https://github.com/owncloud/ios/issues?q=is%3Aopen+is%3Aissue+label%3A%22Junior+Job%22>`_
to get into the code and note our :doc:`../general/index`
Note that contribution to the iOS client require signing the iOS addendum to the
`Nextcloud Contributor Agreement <https://owncloud.org/contribute/agreement/>`_. You are
permitted to test the iOS client on Apple hardware thanks to the
`iOS license exception <https://owncloud.org/contribute/iOS-license-exception/>`_.
Nextcloud iOS Library
------------------------
This document will describe how to the use Nextcloud iOS library. The Nextcloud
iOS library for iOS allows a developer to communicate with any Nextcloud server;
among the features included are file synchronization, upload and download of
files, delete rename and move of files and folders and share files or folders
by link among others.
This library may be added to a project and seamlessly integrates any
application with Nextcloud.
The tool needed is Xcode 6, this guide includes some screenshots showing
examples in Xcode 6.
.. _iosindex:
.. toctree::
:maxdepth: 2
:hidden:
library_installation
examples

View File

@@ -1,133 +0,0 @@
Library Installation
====================
Obtaining the library
---------------------
The Nextcloud iOS library may be obtained from the following Github repository:
`git@github.com:owncloud/ios-library.git
<mailto:git@github.com:owncloud/ios-library.git>`_
Once obtained, this code should be compiled with Xcode 6. The Github
repository not only contains the library, Nextcloud iOS library, but also
contains a sample project, OCLibraryExample, which will assist in learning how
to use the library.
Add the library to a project
----------------------------
There are two methods to add this library to a project.
* Reference the headers and library binary file (``.a``) directly.
* Include the library as a subproject.
Which method to choose depends on user preference as well as whether the source
code and project file of the static library are available.
Reference headers and library binary files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Follow these steps if this is the desired method.
1. Compile the Nextcloud iOS library and run the project. A ``libownCloudiOS.a``
file will be generated.
The following files are required:
**Library file**
* ``libownCloudiOS.a`` (Library)
**Library Classes**
* ``OCCommunication.h`` (Accessors) Import in the communication class
* ``OCErrorMsg.h`` (Error Messages) Import in the communication class
* ``OCFileDto.h`` and ``OCFileDto.m`` (File/Folder object) Import when using
* ``readFolder`` and ``readFile`` methods
* ``OCFrameworkConstants.h`` (Customize constants)
2. Add the library file to the project. From the “Build Phases” tab, scroll
to “Link binary files” and select the + to add a library. Select the library
file.
|10000201000003480000020EC688993D_png|
3. Add the path of the library header files. Under the “Build Settings” tab,
select the target library and add the path in the “Header Search Paths” field.
|10000201000003430000020C65A3C5A7_png|
4. Remaining in the “Build Setting” tab, add the flag ``-Obj-C`` under the
“Other Linker Flags” option.
|100002010000034700000211B6BE4A2B_png|
At this stage, the library is included on your project and you can start
communicating with the Nextcloud server.
Include the library as a subproject
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Follow these steps if this is the desired method.
5. Add the file ``Nextcloud iOS library.xcodeproj`` to the project via drag and
drop.
|100000000000030C000001E61DFDBF76_png|
6. Within the project, navigate to the “Build Phases” tab. Under the “Target
Dependencies” section, select the + and choose the library target.
|100000000000030C000001E7A7A01884_png|
7. Link the library file to the project target. Under the “Build Phases” tab,
select the + under the “Link Binary with Libraries” section and select the
library file.
|100000000000030C000001E8AB4C3306_png|
8. Add the flag ``-Obj-C`` to “Other Linker Flags” under the project target on
the “Build Settings” tab.
|100000000000030C000001ECB85120C2_png|
9. Finally add the path of the library headers. Under the “Build Settings”
tab, add the path under the “Header Search Paths” option.
|100000000000030C000001E637605044_png|
Sources
-------
* `Creating a static library in iOS tutorial (raywenderlich.com)`_
* `Apple iOS static library documentation`_
.. |100000000000030C000001E61DFDBF76_png| image:: images/100000000000030C000001E61DFDBF76.png
:width: 16.51cm
:height: 10.285cm
.. |100002010000034700000211B6BE4A2B_png| image:: images/100002010000034700000211B6BE4A2B.png
:width: 16.261cm
:height: 10.246cm
.. |100000000000030C000001E7A7A01884_png| image:: images/100000000000030C000001E7A7A01884.png
:width: 16.51cm
:height: 12.023cm
.. |10000201000003480000020EC688993D_png| image:: images/10000201000003480000020EC688993D.png
:width: 16.51cm
:height: 10.329cm
.. |100000000000030C000001E8AB4C3306_png| image:: images/100000000000030C000001E8AB4C3306.png
:width: 14.605cm
:height: 9.137cm
.. |10000201000003430000020C65A3C5A7_png| image:: images/10000201000003430000020C65A3C5A7.png
:width: 16.51cm
:height: 10.358cm
.. |100000000000030C000001E637605044_png| image:: images/100000000000030C000001E637605044.png
:width: 14.605cm
:height: 9.098cm
.. |100000000000030C000001ECB85120C2_png| image:: images/100000000000030C000001ECB85120C2.png
:width: 14.605cm
:height: 9.211cm
.. _`Creating a static library in iOS tutorial (raywenderlich.com)`: http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial
.. _`Apple iOS static library documentation`: https://developer.apple.com/library/ios/technotes/iOSStaticLibraries/Articles/configuration.html#/apple_ref/doc/uid/TP40012554-CH3-SW2

View File

@@ -1,6 +1,6 @@
============================
=============================
Nextcloud Manuals Style Guide
============================
=============================
*This is a work in progress*

View File

@@ -12,8 +12,8 @@ Nextcloud Desktop and Mobile Clients
------------------------------------
The recommended method for keeping your desktop PC synchronized with your
Nextcloud server is by using the `Nextcloud Desktop Client
<https://owncloud.org/install/#install-clients>`_. You can configure the client
Nextcloud server is by using the `Nextcloud/ownCloud sync clients
<https://nextcloud.com/install/#install-clients>`_. You can configure the client
to save files in any local directory you want, and you choose which directories
on the Nextcloud server to sync with. The client displays the current connection
status and logs all activity, so you always know which remote files have been
@@ -502,10 +502,6 @@ To get the properties of files in the root folder:
.. _KB2668751: https://support.microsoft.com/kb/2668751
.. _KB2123563: https://support.microsoft.com/kb/2123563
.. _in your file manager: http://en.wikipedia.org/wiki/Webdav#WebDAV_client_applications
.. _Nextcloud sync clients: https://doc.owncloud.org/desktop/2.1/
.. _Mount Nextcloud to a local folder without sync: https://docs.nextcloud.org/server/9/admin_manual/configuration_files/external_storage/webdav.html?highlight=webdav
.. _Android: https://github.com/nextcloud/android
.. _WebDAV Navigator: http://seanashton.net/webdav/
.. _Android devices: https://play.google.com/store/apps/details?id=com.schimera.webdavnavlite
.. _iPhones: https://itunes.apple.com/app/webdav-navigator/id382551345

View File

@@ -10,7 +10,7 @@ Creating a New Federation Share
-------------------------------
Federation sharing is enabled on new or upgraded Nextcloud installations
by default. Follow these steps to create a new share with other Nextcloud or Nextcloud 9 servers:
by default. Follow these steps to create a new share with other Nextcloud or ownCloud 9+ servers:
1. Go to your ``Files`` page and click the Share icon on the file or directory
you want to share. In the sidebar enter the username and URL of the remote user
@@ -31,7 +31,7 @@ share, and does not delete any files.
Creating a New Federated Cloud Share via Email
----------------------------------------------
Use this method when you are sharing with users on Nextcloud 8.x and older.
Use this method when you are sharing with users on ownCloud 8.x and older.
What if you do not know the username or URL? Then you can have Nextcloud create
the link for you and email it to your recipient.
@@ -45,7 +45,7 @@ a Web browser, and then click the **Add to your Nextcloud** button.
.. figure:: ../images/create_public_share-8.png
The **Add to your Nextcloud** button changes to a form field, and your recipient
needs to enter the URL of their Nextcloud or Nextcloud server in this field and press the
needs to enter the URL of their Nextcloud or ownCloud server in this field and press the
return key, or click the arrow.
.. figure:: ../images/create_public_share-9.png

View File

@@ -15,12 +15,12 @@ file synchronization and sharing solution on servers that you control.
You can share one or more files and folders on your computer, and synchronize
them with your Nextcloud server. Place files in your local shared directories,
and those files are immediately synchronized to the server and to other devices
using the Nextcloud / Nextcloud Desktop Sync Client, Android app, or iOS app. To
using the Nextcloud / ownCloud Desktop Sync Client, Android app, or iOS app. To
learn more about the Nextcloud desktop and mobile clients, please refer to
their respective manuals:
* `Nextcloud Desktop Client`_
* `Nextcloud/ownCloud Desktop Client`_
* `Nextcloud Android App`_
.. _`Nextcloud Desktop Client`: https://doc.owncloud.org/desktop/2.1/
.. _`Nextcloud/ownCloud Desktop Client`: https://doc.owncloud.org/desktop/2.2/
.. _`Nextcloud Android App`: https://docs.nextcloud.org/android/