mirror of
https://github.com/nextcloud/documentation.git
synced 2026-01-04 10:46:21 +07:00
Fix upper case letters
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
@@ -286,7 +286,7 @@ Read shared items by link
|
||||
-------------------------
|
||||
|
||||
Get information about what files and folder are shared by link (the object
|
||||
mClient contains the information about the server url and account)
|
||||
mClient contains the information about the server URL and account)
|
||||
|
||||
Code example
|
||||
~~~~~~~~~~~~
|
||||
@@ -427,4 +427,4 @@ Tips
|
||||
* Wrong path: ``https://example.com/nextcloud/remote.php/dav/Pop%20Music/``
|
||||
* There are some forbidden characters to be used in folder and file names on the server, same on the Nextcloud Android Library "\","/","<",">",":",""","|","?","*"
|
||||
* Upload and download actions may be cancelled thanks to the objects uploadOperation.cancel(), downloadOperation.cancel()
|
||||
* Unit tests, before launching unit tests you have to enter your account information (server url, user and password) on TestActivity.java
|
||||
* Unit tests, before launching unit tests you have to enter your account information (server URL, user and password) on TestActivity.java
|
||||
|
||||
@@ -13,8 +13,8 @@ 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
|
||||
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
|
||||
setup and process of contribution is
|
||||
`documented here <https://github.com/nextcloud/android/blob/master/SETUP.md>`_.
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ Obtaining the library
|
||||
---------------------
|
||||
|
||||
|
||||
The Nextcloud Android library may be obtained from the following Github repository:
|
||||
The Nextcloud Android library may be obtained from the following GitHub repository:
|
||||
|
||||
`https://github.com/nextcloud/android-library <https://github.com/nextcloud/android-library>`_
|
||||
|
||||
Once obtained, this code should be compiled. The Github repository not only contains the library, but also a sample project, sample_client
|
||||
Once obtained, this code should be compiled. The GitHub repository not only contains the library, but also a sample project, sample_client
|
||||
sample_client properties/android/librerias
|
||||
, which will assist in learning how to use the library.
|
||||
|
||||
@@ -19,14 +19,14 @@ Add the library to a project
|
||||
|
||||
There are different methods to add an external library to a project, we will describe two.
|
||||
|
||||
#. Add the library as a gradle dependency via jitpack
|
||||
#. Add the library as a Gradle dependency via JitPack
|
||||
|
||||
|
||||
|
||||
#. Add the library repo to your Android project as a git submodule
|
||||
#. Add the library repo to your Android project as a Git submodule
|
||||
|
||||
|
||||
Add the library as a gradle dependency
|
||||
Add the library as a Gradle dependency
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Simply open your::
|
||||
@@ -40,10 +40,10 @@ and add the dependency::
|
||||
<version> refers to the exact version you would like to include in your application. This could be -SNAPSHOT for always using the latest code revision of the master branch. Alternatively you can also specifiy a version number which refers to a fixed release, e.g. 1.0.0. (compile 'com.github.nextcloud:android-library:1.0.0')
|
||||
|
||||
|
||||
Add the library project to your project as a git submodule
|
||||
Add the library project to your project as a Git submodule
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Basically get the code and compile it having it integrated via a git submodule
|
||||
Basically get the code and compile it having it integrated via a Git submodule
|
||||
|
||||
Go into your own apps directory on the command line and add the Nextcloud Android library as a submodule::
|
||||
git submodule add https://github.com/nextcloud/android-library nextcloud-android-library
|
||||
|
||||
@@ -71,7 +71,7 @@ Nextcloud provides a default CSS navigation layout. If list entries should have
|
||||
Folders
|
||||
-------
|
||||
|
||||
Folders are like normal entries and are only supported for the first level. In contrast to normal entries, the links which show the title of the folder need to have the **icon-folder** css class.
|
||||
Folders are like normal entries and are only supported for the first level. In contrast to normal entries, the links which show the title of the folder need to have the **icon-folder** CSS class.
|
||||
|
||||
If the folder should be collapsible, the **collapsible** class and a button with the class **collapse** are needed. After adding the collapsible class the folder's child entries can be toggled by adding the **open** class to the list element:
|
||||
|
||||
@@ -116,7 +116,7 @@ Menus
|
||||
|
||||
.. versionadded:: 8
|
||||
|
||||
To add actions that affect the current list element you can add a menu for second and/or first level elements by adding the button and menu inside the corresponding **li** element and adding the **with-menu** css class:
|
||||
To add actions that affect the current list element you can add a menu for second and/or first level elements by adding the button and menu inside the corresponding **li** element and adding the **with-menu** CSS class:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ To create a mapper, inherit from the mapper base class and call the parent const
|
||||
|
||||
}
|
||||
|
||||
.. note:: The cursor is closed automatically for all **INSERT**, **DELETE**, **UPDATE** queries and when calling the methods **findOneQuery**, **findEntities**, **findEntity**, **delete**, **insert** and **update**. For custom calls using execute you should always close the cursor after you are done with the fetching to prevent database lock problems on SqLite
|
||||
.. note:: The cursor is closed automatically for all **INSERT**, **DELETE**, **UPDATE** queries and when calling the methods **findOneQuery**, **findEntities**, **findEntity**, **delete**, **insert** and **update**. For custom calls using execute you should always close the cursor after you are done with the fetching to prevent database lock problems on SQLite
|
||||
|
||||
Every mapper also implements default methods for deleting and updating an entity based on its id::
|
||||
|
||||
@@ -141,7 +141,7 @@ Entities are data objects that carry all the table's information for one row. Ev
|
||||
|
||||
Types
|
||||
-----
|
||||
The following properties should be annotated by types, to not only assure that the types are converted correctly for storing them in the database (e.g. PHP casts false to the empty string which fails on postgres) but also for casting them when they are retrieved from the database.
|
||||
The following properties should be annotated by types, to not only assure that the types are converted correctly for storing them in the database (e.g. PHP casts false to the empty string which fails on PostgreSQL) but also for casting them when they are retrieved from the database.
|
||||
|
||||
The following types can be added for a field:
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ owncloud
|
||||
========
|
||||
**Required**: Defines minimum and maximum versions of the Nextcloud core. In case undefined the values will be taken from the tag `requiremin`_.
|
||||
|
||||
.. note:: Currently this tag is also used to check for the nextcloud version number.
|
||||
.. note:: Currently this tag is also used to check for the Nextcloud version number.
|
||||
Thereby the following "translation" is made:
|
||||
|
||||
* ownCloud 9.0 matches Nextcloud 9
|
||||
|
||||
@@ -13,7 +13,7 @@ The :file:`appinfo/app.php` is the first file that is loaded and executed in Nex
|
||||
\OC::$server->getNavigationManager()->add(function () {
|
||||
$urlGenerator = \OC::$server->getURLGenerator();
|
||||
return [
|
||||
// the string under which your app will be referenced in nextcloud
|
||||
// the string under which your app will be referenced in Nextcloud
|
||||
'id' => 'myapp',
|
||||
|
||||
// sorting weight for the navigation. The higher the number, the higher
|
||||
|
||||
@@ -24,11 +24,11 @@ With each level come requirements and a position in the store.
|
||||
|
||||
Official
|
||||
^^^^^^^^
|
||||
Official apps are developed by and within the Nextcloud community and its `Github <https://github.com/nextcloud>`_ repository and offer functionality central to Nextcloud. They are ready for serious use and can be considered a part of Nextcloud.
|
||||
Official apps are developed by and within the Nextcloud community and its `GitHub <https://github.com/nextcloud>`_ repository and offer functionality central to Nextcloud. They are ready for serious use and can be considered a part of Nextcloud.
|
||||
|
||||
Requirements:
|
||||
|
||||
* developed in Nextcloud github repo
|
||||
* developed in Nextcloud GitHub repo
|
||||
* minimum of 2 active maintainers and contributions from others
|
||||
* security audited and design reviewed
|
||||
* app is at least 6 months old and has seen regular releases
|
||||
@@ -54,7 +54,7 @@ Approved apps are developed by trusted developers and have passed a cursory secu
|
||||
|
||||
Requirements:
|
||||
|
||||
* code is developed in an open and version-managed code repository, ideally github with git but other scm/hosting is OK.
|
||||
* code is developed in an open and version-managed code repository, ideally GitHub with Git but other SCM/hosting is OK.
|
||||
* minimum of one active developer/maintainer
|
||||
* minimum 5 ratings, average score 60/100 or better
|
||||
* app is at least 3 months old
|
||||
@@ -97,7 +97,7 @@ App store:
|
||||
|
||||
Getting an app approved
|
||||
-----------------------
|
||||
If you want your app to be approved, make sure you fulfill all the requirements and then create an issue in the `app approval github repository <https://github.com/owncloud/app-approval>`_ using `this template <https://github.com/owncloud/app-approval/blob/master/README.md>`_. A team of Nextcloud contributors will review your application. Updates to an app require re-review but, of course, an initial review takes more effort and time than the checking of an update.
|
||||
If you want your app to be approved, make sure you fulfill all the requirements and then create an issue in the `app approval GitHub repository <https://github.com/owncloud/app-approval>`_ using `this template <https://github.com/owncloud/app-approval/blob/master/README.md>`_. A team of Nextcloud contributors will review your application. Updates to an app require re-review but, of course, an initial review takes more effort and time than the checking of an update.
|
||||
|
||||
You are encouraged to help review other contributors' apps as well! Every app requires at least two independent reviews so your review of at least 2 (more is better!) other apps will ensure the process continues smoothly. Thank you for participating in this process and being a great Nextcloud Community member!
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Routes map a URL and a method to a controller method. Routes are defined inside
|
||||
|
||||
The route array contains the following parts:
|
||||
|
||||
* **url**: The url that is matched after */index.php/apps/myapp*
|
||||
* **url**: The URL that is matched after */index.php/apps/myapp*
|
||||
* **name**: The controller and the method to call; *page#index* is being mapped to *PageController->index()*, *articles_api#drop_latest* would be mapped to *ArticlesApiController->dropLatest()*. The controller that matches the page#index name would have to be registered in the following way inside :file:`appinfo/application.php`:
|
||||
|
||||
.. code-block:: php
|
||||
@@ -54,9 +54,9 @@ The route array contains the following parts:
|
||||
|
||||
}
|
||||
* **method** (Optional, defaults to GET): The HTTP method that should be matched, (e.g. GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH)
|
||||
* **requirements** (Optional): lets you match and extract URLs that have slashes in them (see **Matching suburls**)
|
||||
* **postfix** (Optional): lets you define a route id postfix. Since each route name will be transformed to a route id (**page#method** -> **myapp.page.method**) and the route id can only exist once you can use the postfix option to alter the route id creation by adding a string to the route id, e.g., **'name' => 'page#method', 'postfix' => 'test'** will yield the route id **myapp.page.methodtest**. This makes it possible to add more than one route/url for a controller method
|
||||
* **defaults** (Optional): If this setting is given, a default value will be assumed for each url parameter which is not present. The default values are passed in as a key => value par array
|
||||
* **requirements** (Optional): lets you match and extract URLs that have slashes in them (see **Matching subURLs**)
|
||||
* **postfix** (Optional): lets you define a route id postfix. Since each route name will be transformed to a route id (**page#method** -> **myapp.page.method**) and the route id can only exist once you can use the postfix option to alter the route id creation by adding a string to the route id, e.g., **'name' => 'page#method', 'postfix' => 'test'** will yield the route id **myapp.page.methodtest**. This makes it possible to add more than one route/URL for a controller method
|
||||
* **defaults** (Optional): If this setting is given, a default value will be assumed for each URL parameter which is not present. The default values are passed in as a key => value par array
|
||||
|
||||
Extracting values from the URL
|
||||
==============================
|
||||
@@ -83,7 +83,7 @@ It is possible to extract values from the URL to allow RESTful URL design. To ex
|
||||
|
||||
The identifier used inside the route is being passed into controller method by reflecting the method parameters. So basically if you want to get the value **{id}** in your method, you need to add **$id** to your method parameters.
|
||||
|
||||
Matching suburls
|
||||
Matching subURLs
|
||||
================
|
||||
Sometimes it is needed to match more than one URL fragment. An example would be to match a request for all URLs that start with **OPTIONS /index.php/apps/myapp/api**. To do this, use the **requirements** parameter in your route which is an array containing pairs of **'key' => 'regex'**:
|
||||
|
||||
@@ -106,9 +106,9 @@ Sometimes it is needed to match more than one URL fragment. An example would be
|
||||
|
||||
}
|
||||
|
||||
Default values for suburl
|
||||
Default values for subURL
|
||||
==========================
|
||||
Apart from matching requirements, a suburl may also have a default value. Say you want to support pagination (a 'page' parameter) for your **/posts** suburl that displays posts entries list. You may set a default value for the 'page' parameter, that will be used if not already set in the url. Use the **defaults** parameter in your route which is an array containing pairs of **'urlparameter' => 'defaultvalue'**:
|
||||
Apart from matching requirements, a subURL may also have a default value. Say you want to support pagination (a 'page' parameter) for your **/posts** subURL that displays posts entries list. You may set a default value for the 'page' parameter, that will be used if not already set in the URL. Use the **defaults** parameter in your route which is an array containing pairs of **'urlparameter' => 'defaultvalue'**:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
@@ -121,7 +121,7 @@ Apart from matching requirements, a suburl may also have a default value. Say yo
|
||||
'name' => 'post#index',
|
||||
'url' => '/post/{page}',
|
||||
'verb' => 'GET',
|
||||
'defaults' => array('page' => 1) // this allows same url as /index.php/myapp/post/1
|
||||
'defaults' => array('page' => 1) // this allows same URL as /index.php/myapp/post/1
|
||||
),
|
||||
|
||||
// controller/postcontroller.php
|
||||
|
||||
@@ -21,6 +21,6 @@ The following directories have now been created:
|
||||
* **appinfo/**: Contains app metadata and configuration
|
||||
* **css/**: Contains the CSS
|
||||
* **js/**: Contains the JavaScript files
|
||||
* **lib/**: Contains the php class files of your app
|
||||
* **lib/**: Contains the PHP class files of your app
|
||||
* **templates/**: Contains the templates
|
||||
* **tests/**: Contains the tests
|
||||
|
||||
@@ -172,7 +172,7 @@ Since the route which returns the initial HTML has been taken care of, the contr
|
||||
|
||||
}
|
||||
|
||||
.. note:: The parameters are extracted from the request body and the url using the controller method's variable names. Since PHP does not support type hints for primitive types such as ints and booleans, we need to add them as annotations in the comments. In order to type cast a parameter to an int, add **@param int $parameterName**
|
||||
.. note:: The parameters are extracted from the request body and the URL using the controller method's variable names. Since PHP does not support type hints for primitive types such as ints and booleans, we need to add them as annotations in the comments. In order to type cast a parameter to an int, add **@param int $parameterName**
|
||||
|
||||
Now the controller methods need to be connected to the corresponding URLs in the **ownnotes/appinfo/routes.php** file:
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Backlog
|
||||
|
||||
Why do we have it?
|
||||
To keep us focused on finishing issues that we started, new issues will be
|
||||
hidden in this column. In huboard you can see the list of things that we could
|
||||
hidden in this column. In HuBoard you can see the list of things that we could
|
||||
think about by clicking the small arrow in the top left corner of the concept
|
||||
column header.
|
||||
|
||||
@@ -61,7 +61,7 @@ When can I pull?
|
||||
when the issue is ready to be released.
|
||||
|
||||
* A concept describing the planned implementation. This can be as simple as
|
||||
a “this just needs changes to the login screen css” or so complex that you
|
||||
a “this just needs changes to the login screen CSS” or so complex that you
|
||||
link to a blog entry somewhere else.
|
||||
|
||||
Who is Assigned?
|
||||
@@ -82,7 +82,7 @@ What does a developer think?
|
||||
|
||||
When can I pull?
|
||||
If you feel like diving into the code and getting your hands dirty you should
|
||||
look for issues with this label. In the comments, there should be a gherkin
|
||||
look for issues with this label. In the comments, there should be a Gherkin
|
||||
scenario to tell you when you are done and a concept describing how to
|
||||
implement it. Before you start move the issue to the “Developing” step by
|
||||
assigning the "4 – Developing" label.
|
||||
@@ -127,11 +127,11 @@ What does a developer think?
|
||||
"I’ll check the Scenario described earlier works as expected. If necessary
|
||||
I’ll update the related Gherkin Scenarios. `Drone`_ will test the scenario
|
||||
on all kinds of platforms, Web server and database combinations with
|
||||
`cucumber`_."
|
||||
`Cucumber`_."
|
||||
|
||||
When can I pull?
|
||||
If you feel like making sure an issue works as expected you should look for
|
||||
issues with this label. In the comments you should find a gherkin scenario that
|
||||
issues with this label. In the comments you should find a Gherkin scenario that
|
||||
can be used as a checklist for what to try. Before you start move the issue to
|
||||
the “Reviewing” step by assigning the “6 – Reviewing” label.
|
||||
|
||||
@@ -184,7 +184,7 @@ Who is Assigned?
|
||||
|
||||
While we stated before that we push issues to the next column, we can
|
||||
of course move the item back and forth arbitrarily. Basically you can drag the
|
||||
issue around in the huboard or just change the label when viewing the issue in
|
||||
issue around in the HuBoard or just change the label when viewing the issue in
|
||||
the GitHub.
|
||||
|
||||
Reviewing considered impossible?
|
||||
@@ -192,11 +192,11 @@ Reviewing considered impossible?
|
||||
|
||||
How can you possibly review an issue when it requires you to test various
|
||||
combinations of browsers, platforms, databases and maybe even app combinations?
|
||||
Well, you can’t. But you can write a gherkin scenario that can be used to write
|
||||
Well, you can’t. But you can write a Gherkin scenario that can be used to write
|
||||
an automated test that is executed by Drone on every commit to the main
|
||||
repositories. If for some reason Drone cannot be used for the review you will
|
||||
find yourself in the very uncomfortable situation where you release half tested
|
||||
code that will hopefully not eat user data. Seriously! Write gherkin scenarios!
|
||||
code that will hopefully not eat user data. Seriously! Write Gherkin scenarios!
|
||||
|
||||
Other Labels
|
||||
------------
|
||||
@@ -241,7 +241,7 @@ Misc Labels
|
||||
|
||||
* Needs info – Either from a developer or the bug reporter. This is nearly as
|
||||
severe as Panic, because no further action can be taken
|
||||
* L18n – A translation issue; go see our `transifex`_
|
||||
* L18n – A translation issue; go see our `Transifex`_
|
||||
* Junior Job – The issue is considered a good starting point to get involved in Nextcloud development
|
||||
|
||||
Milestones equal Releases
|
||||
@@ -251,7 +251,7 @@ Releases are planned via milestones which contain all the Enhancements and Bugs
|
||||
that we plan to release when the Deadline is met. When the Deadline approaches
|
||||
we will push new Enhancement request and less important bugs to the next
|
||||
milestone. This way a milestone will upon release contain all the issues that
|
||||
make up the changelog for the release. Furthermore, huboard allows us to filter
|
||||
make up the changelog for the release. Furthermore, HuBoard allows us to filter
|
||||
the Kanban board by Milestone, making it especially easy to focus on the current
|
||||
Release.
|
||||
|
||||
@@ -263,5 +263,5 @@ Release.
|
||||
.. _unit tests: https://github.com/nextcloud/server/tree/master/tests
|
||||
.. _Code Review Documentation: codereviews
|
||||
.. _Drone: https://drone.weasel.rocks
|
||||
.. _cucumber: http://cukes.info/
|
||||
.. _transifex: https://www.transifex.com/nextcloud/
|
||||
.. _Cucumber: http://cukes.info/
|
||||
.. _Transifex: https://www.transifex.com/nextcloud/
|
||||
|
||||
@@ -34,11 +34,11 @@ Triaging follows these steps:
|
||||
General considerations
|
||||
======================
|
||||
|
||||
* You need a `github account <https://github.com>`_ to contribute to bug triaging.
|
||||
* If you are not familiar with the github issue tracker interface (which is used by Nextcloud to handle bug reports), you `may find this guide useful <https://guides.github.com/features/issues/>`_.
|
||||
* You need a `GitHub account <https://github.com>`_ to contribute to bug triaging.
|
||||
* If you are not familiar with the GitHub issue tracker interface (which is used by Nextcloud to handle bug reports), you `may find this guide useful <https://guides.github.com/features/issues/>`_.
|
||||
* You will initially only be able to comment on issues. The ability to close issues or assign labels will be given liberally to those who have shown to be willing and able to contribute. Just ask on IRC!
|
||||
* Read `our bug reporting guidelines <https://github.com/nextcloud/server/blob/master/CONTRIBUTING.md#submitting-issues>`_ so you know what a good report should look like and where things belong. The `issue template <https://raw.github.com/nextcloud/server/master/issue_template.md>`_ asks specifically for some information developers need to solve issues.
|
||||
* It might even be fixed, sometimes! It can also be fruitful to contact the `developers on irc <irc://freenode/#nextcloud-dev>`_. Tell them you're triaging bugs and share what problem you bumped into. Or just ask on the test-pilots mailing list.
|
||||
* It might even be fixed, sometimes! It can also be fruitful to contact the `developers on IRC <irc://freenode/#nextcloud-dev>`_. Tell them you're triaging bugs and share what problem you bumped into. Or just ask on the test-pilots mailing list.
|
||||
* To ensure no two people are working on the same issue, we ask you to simply add a comment like "I am triaging this" in the issue you want to work on, and when done, before or after executing the triaging actions, note similarly that you're done.
|
||||
|
||||
To be able to tag and close issues, you need to have access to the repository. For the core and sync app repositories this also means having signed the contributor agreement. However, this isn't really needed for triaging as you can comment after you're done triaging and somebody else can execute those actions.
|
||||
@@ -46,13 +46,13 @@ General considerations
|
||||
Finding bugs to triage
|
||||
======================
|
||||
|
||||
Github offers several search queries which can be useful to find a list of bugs which deserve a closer look:
|
||||
GitHub offers several search queries which can be useful to find a list of bugs which deserve a closer look:
|
||||
|
||||
* `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%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.
|
||||
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.
|
||||
|
||||
Once you have picked an issue, add a comment that you've started triaging:
|
||||
|
||||
@@ -72,7 +72,7 @@ Let's go over each step.
|
||||
|
||||
Finding duplicates
|
||||
------------------
|
||||
To find duplicates, the search tool in github is your first stop. In `this screen <https://github.com/nextcloud/server/issues>`_ you can easily search for a few keywords from the bug report. If you find other bugs with the same content, decide what the best bug report is (often the oldest or the one where one or more developers have already started to engage and discuss the problem). That is the 'master' bug report, you can now close the other one (or comment that it can be closed as duplicate).
|
||||
To find duplicates, the search tool in GitHub is your first stop. In `this screen <https://github.com/nextcloud/server/issues>`_ you can easily search for a few keywords from the bug report. If you find other bugs with the same content, decide what the best bug report is (often the oldest or the one where one or more developers have already started to engage and discuss the problem). That is the 'master' bug report, you can now close the other one (or comment that it can be closed as duplicate).
|
||||
|
||||
If the bug report you were reviewing contains additional information, you can add that information to the 'master' bug report in a comment. Mention this bug report (using #<bug report number>) so a developer can look up the original, closed, report and perhaps ask the initial reporter there for additional information.
|
||||
|
||||
@@ -82,7 +82,7 @@ When the issue is a feature request, you can be helpful in the same way: merge r
|
||||
|
||||
.. note:: Be polite: when you need to request information or feedback be clear and polite, and you will get more information in less time. Think about how you'd like to be treated, were you to report a bug!
|
||||
.. note:: You can answer more quickly and friendly using one of `these templates <https://gist.github.com/jancborchardt/6155185#clean-up-inactive-issues>`_.
|
||||
.. note:: Often our github issue tracker is a place for discussions about solutions. Be friendly, inclusive and respect other people's position.
|
||||
.. note:: Often our GitHub issue tracker is a place for discussions about solutions. Be friendly, inclusive and respect other people's position.
|
||||
|
||||
Determining relevance of issue
|
||||
------------------------------
|
||||
|
||||
@@ -51,7 +51,7 @@ for example in /nextcloud/core/ and /nextcloud/settings/ in these sub folders:
|
||||
* js = JavaScripts
|
||||
* img = images
|
||||
* l10n = translation files
|
||||
* templates = php and html template files
|
||||
* templates = PHP and HTML template files
|
||||
|
||||
.. _notes-for-updates:
|
||||
|
||||
@@ -99,7 +99,7 @@ The (main) pictures that can be found inside Nextcloud standard theming are the
|
||||
Inserting your new logo
|
||||
-----------------------
|
||||
Inserting a new logo into an existing theme is as simple as replacing the old logo with the new (generated) one.
|
||||
You can use: scalable vector graphics (.svg) or common graphics formats for the internet such as portable network graphics (.png) or .jpeg
|
||||
You can use: scalable vector graphics (.svg) or common graphics formats for the Internet such as portable network graphics (.png) or .jpeg
|
||||
Just insert the new created picture by using the unchanged name of the old picture.
|
||||
|
||||
The app icons can also be overwritten in a theme. To change for example the app icon of the activity app you need to overwrite it by saving the new image to …/nextcloud/themes/default/apps/activity/img/activity.svg
|
||||
|
||||
@@ -6,7 +6,7 @@ Make text translatable
|
||||
|
||||
In HTML or PHP wrap it like this ``<?php p($l->t('This is some text'));?>`` or this ``<?php print_unescaped($l->t('This is some text'));?>``.
|
||||
For the right date format use ``<?php p($l->l('date', time()));?>``. Change the way dates are shown by editing /core/l10n/l10n-[lang].php.
|
||||
To translate text in javascript use: ``t('appname','text to translate');``
|
||||
To translate text in JavaScript use: ``t('appname','text to translate');``
|
||||
|
||||
|
||||
.. note:: ``print_unescaped()`` should be preferred only if you would like to display HTML code. Otherwise, using ``p()`` is strongly preferred to escape HTML characters against XSS attacks.
|
||||
@@ -36,10 +36,10 @@ Translators will translate:
|
||||
|
||||
Translating these individual strings results in ``local filesystem`` and ``cloud`` losing case. The two white spaces surrounding ``or`` will get lost while translating as well. For languages that have a different grammatical order it prevents the translators from reordering the sentence components.
|
||||
|
||||
Html on translation string:
|
||||
HTML on translation string:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Html tags in translation strings is ugly but usually translators can handle this.
|
||||
HTML tags in translation strings is ugly but usually translators can handle this.
|
||||
|
||||
What about variable in the strings?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -54,11 +54,11 @@ Automated synchronization of translations
|
||||
-----------------------------------------
|
||||
|
||||
Multiple nightly jobs have been setup in order to synchronize translations - it's a multi-step process:
|
||||
``perl l10n.pl read`` will rescan all php and javascript files and generate the templates.
|
||||
``perl l10n.pl read`` will rescan all PHP and JavaScript files and generate the templates.
|
||||
The templates are pushed to `Transifex`_ (tx push -s).
|
||||
All translations are pulled from `Transifex`_ (tx pull -a).
|
||||
``perl l10n.pl write`` will write the php files containing the translations.
|
||||
Finally the changes are pushed to git.
|
||||
``perl l10n.pl write`` will write the PHP files containing the translations.
|
||||
Finally the changes are pushed to Git.
|
||||
|
||||
Please follow the steps below to add translation support to your app:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -67,7 +67,7 @@ Create a folder ``l10n``.
|
||||
Create the file ``ignorelist`` which can contain files which shall not be scanned during step 4.
|
||||
Edit ``l10n/.tx/config`` and copy/paste a config section and adapt it by changing the app/folder name.
|
||||
Run ``perl l10n.pl read`` with l10n.
|
||||
Add the newly created translation template (l10n/Templates/<appname>.pot) to git and commit the changes above.
|
||||
Add the newly created translation template (l10n/Templates/<appname>.pot) to Git and commit the changes above.
|
||||
After the next nightly sync job a new resource will appear on Transifex and from now on every night the latest translations will arrive.
|
||||
|
||||
Translation sync jobs:
|
||||
@@ -86,7 +86,7 @@ Manual quick translation update:
|
||||
|
||||
The translation script requires Locale::PO, installable via ``apt-get install liblocale-po-perl``
|
||||
|
||||
Configure transifex
|
||||
Configure Transifex
|
||||
-------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@@ -34,7 +34,7 @@ Writing PHP unit tests
|
||||
|
||||
To get started, do the following:
|
||||
- Create a directory called ``tests`` in the top level of your application
|
||||
- Create a php file in the directory and ``require_once`` your class which you want to test.
|
||||
- Create a PHP file in the directory and ``require_once`` your class which you want to test.
|
||||
|
||||
Then you can simply run the created test with phpunit.
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ General
|
||||
-------
|
||||
|
||||
* Ideally, discuss your plans on the `forums <https://help.nextcloud.com>`_ to see if others want to work with you on it
|
||||
* We use `Github <https://github.com/nextcloud>`_, please get an account there and clone the repositories you want to work on
|
||||
* We use `GitHub <https://github.com/nextcloud>`_, please get an account there and clone the repositories you want to work on
|
||||
* Fixes go directly to master, nevertheless they need to be tested thoroughly.
|
||||
* New features are always developed in a branch and only merged to master once they are fully done.
|
||||
* Software should work. We only put features into master when they are complete. It's better to not have a feature instead of having one that works poorly.
|
||||
* It is best to start working based on an issue - create one if there is none. You describe what you want to do, ask feedback on the direction you take it and take it from there.
|
||||
* When you are finished, use the merge request function on Github to create a pull request. The other developers will look at it and give you feedback. You can signify that your PR is ready for review by adding the label "5 - ready for review" to it. You can also post your merge request to the mailing list to let people know. See `the code review page for more information <../bugtracker/codereviews.html>`_
|
||||
* When you are finished, use the merge request function on GitHub to create a pull request. The other developers will look at it and give you feedback. You can signify that your PR is ready for review by adding the label "5 - ready for review" to it. You can also post your merge request to the mailing list to let people know. See `the code review page for more information <../bugtracker/codereviews.html>`_
|
||||
* It is key to keep changes separate and small. The bigger and more hairy a PR grows, the harder it is to get it in. So split things up where you can in smaller changes - if you need a small improvement like a API addition for a big feature addition, get it in first rather than adding it to the big piece of work!
|
||||
* Decisions are made by consensus. We strive for making the best technical decisions and as nobody can know everything, we collaborate. That means a first negative comment might not be the final word, neither is positive feedback an immediate GO. Nextcloud is built out of modular pieces (apps) and maintainers have a strong influence. In case of disagreement we consult other seasoned contributors.
|
||||
|
||||
|
||||
@@ -24,12 +24,12 @@ There are two ways to obtain Nextcloud sources:
|
||||
.. TODO ON RELEASE: Update version number above on release
|
||||
* Using the development version from `GitHub`_ which will be explained below.
|
||||
|
||||
To check out the source from `GitHub`_ you will need to install git (see `Setting up git <https://help.github.com/articles/set-up-git>`_ from the GitHub help)
|
||||
To check out the source from `GitHub`_ you will need to install Git (see `Setting up Git <https://help.github.com/articles/set-up-git>`_ from the GitHub help)
|
||||
|
||||
Gather information about server setup
|
||||
-------------------------------------
|
||||
|
||||
To get started the basic git repositories need to cloned into the Web server's directory. Depending on the distribution this will either be
|
||||
To get started the basic Git repositories need to cloned into the Web server's directory. Depending on the distribution this will either be
|
||||
|
||||
* **/var/www**
|
||||
* **/var/www/html**
|
||||
@@ -52,7 +52,7 @@ After the development tool installation make the directory writable::
|
||||
|
||||
sudo chmod o+rw /var/www
|
||||
|
||||
Then install Nextcloud from git::
|
||||
Then install Nextcloud from Git::
|
||||
|
||||
git clone git@github.com:nextcloud/server.git /var/www/<folder>
|
||||
cd /var/www/<folder>
|
||||
|
||||
@@ -58,7 +58,7 @@ An attacker might now easily send the user a link to::
|
||||
|
||||
to overtake the user account. The same problem occurs when outputting content from the database or any other location that is writable by users.
|
||||
|
||||
Another attack vector that is often overlooked is XSS in **href** attributes. HTML allows to execute javascript in href attributes like this::
|
||||
Another attack vector that is often overlooked is XSS in **href** attributes. HTML allows to execute JavaScript in href attributes like this::
|
||||
|
||||
<a href="javascript:alert('xss')">
|
||||
|
||||
|
||||
Reference in New Issue
Block a user