Add toc to docs
This commit is contained in:
parent
8da7db3e26
commit
1a4eef1056
22 changed files with 77 additions and 41 deletions
|
@ -35,7 +35,7 @@ try it on [try.vikunja.io](https://try.vikunja.io)!
|
||||||
* [Installing](https://vikunja.io/docs/installing/)
|
* [Installing](https://vikunja.io/docs/installing/)
|
||||||
* [Build from source](https://vikunja.io/docs/build-from-sources/)
|
* [Build from source](https://vikunja.io/docs/build-from-sources/)
|
||||||
* [Development setup](https://vikunja.io/docs/development/)
|
* [Development setup](https://vikunja.io/docs/development/)
|
||||||
* [Makefile](https://vikunja.io/docs/makefile/)
|
* [Magefile](https://vikunja.io/docs/mage/)
|
||||||
* [Testing](https://vikunja.io/docs/testing/)
|
* [Testing](https://vikunja.io/docs/testing/)
|
||||||
|
|
||||||
All docs can be found on [the vikunja home page](https://vikunja.io/docs/).
|
All docs can be found on [the vikunja home page](https://vikunja.io/docs/).
|
||||||
|
|
|
@ -16,6 +16,8 @@ Additionally, they can also be run directly by using the `migrate` command.
|
||||||
We use [xormigrate](https://github.com/techknowlogick/xormigrate) to handle migrations,
|
We use [xormigrate](https://github.com/techknowlogick/xormigrate) to handle migrations,
|
||||||
which is based on gormigrate.
|
which is based on gormigrate.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Add a new migration
|
## Add a new migration
|
||||||
|
|
||||||
All migrations are stored in `pkg/migrations` and files should have the same name as their id.
|
All migrations are stored in `pkg/migrations` and files should have the same name as their id.
|
||||||
|
|
|
@ -17,7 +17,9 @@ If you don't intend to add new dependencies, go `1.9` and above should be fine.
|
||||||
|
|
||||||
To contribute to Vikunja, fork the project and work on the master branch.
|
To contribute to Vikunja, fork the project and work on the master branch.
|
||||||
|
|
||||||
A lot of developing tasks are automated using a Makefile, so make sure to [take a look at it]({{< ref "make.md">}}).
|
A lot of developing tasks are automated using a Magefile, so make sure to [take a look at it]({{< ref "mage.md">}}).
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Libraries
|
## Libraries
|
||||||
|
|
||||||
|
@ -50,7 +52,7 @@ git remote add origin git@git.kolaente.de:<USERNAME>/api.git
|
||||||
git fetch --all --prune
|
git fetch --all --prune
|
||||||
{{< /highlight >}}
|
{{< /highlight >}}
|
||||||
|
|
||||||
This should provide a working development environment for Vikunja. Take a look at the Makefile to get an overview about
|
This should provide a working development environment for Vikunja. Take a look at the Magefile to get an overview about
|
||||||
the available tasks. The most common tasks should be `mage test:unit` which will start our test environment and `mage build:build`
|
the available tasks. The most common tasks should be `mage test:unit` which will start our test environment and `mage build:build`
|
||||||
which will build a vikunja binary into the working directory. Writing test cases is not mandatory to contribute, but it
|
which will build a vikunja binary into the working directory. Writing test cases is not mandatory to contribute, but it
|
||||||
is highly encouraged and helps developers sleep at night.
|
is highly encouraged and helps developers sleep at night.
|
||||||
|
|
|
@ -15,6 +15,8 @@ Mage is a pure go solution which allows for greater flexibility and things like
|
||||||
|
|
||||||
This document explains what taks are available and what they do.
|
This document explains what taks are available and what they do.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
To use mage, you'll need to install the mage cli.
|
To use mage, you'll need to install the mage cli.
|
||||||
|
|
|
@ -16,12 +16,14 @@ To make this easier, we have put together a few helpers which are documented on
|
||||||
In general, each migrator implements a migrator interface which is then called from a client.
|
In general, each migrator implements a migrator interface which is then called from a client.
|
||||||
The interface makes it possible to use helper methods which handle http an focus only on the implementation of the migrator itself.
|
The interface makes it possible to use helper methods which handle http an focus only on the implementation of the migrator itself.
|
||||||
|
|
||||||
### Structure
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
All migrator implementations live in their own package in `pkg/modules/migration/<name-of-the-service>`.
|
All migrator implementations live in their own package in `pkg/modules/migration/<name-of-the-service>`.
|
||||||
When creating a new migrator, you should place all related code inside that module.
|
When creating a new migrator, you should place all related code inside that module.
|
||||||
|
|
||||||
### Migrator interface
|
## Migrator interface
|
||||||
|
|
||||||
The migrator interface is defined as follows:
|
The migrator interface is defined as follows:
|
||||||
|
|
||||||
|
@ -41,7 +43,7 @@ type Migrator interface {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Defining http routes
|
## Defining http routes
|
||||||
|
|
||||||
Once your migrator implements the migration interface, it becomes possible to use the helper http handlers.
|
Once your migrator implements the migration interface, it becomes possible to use the helper http handlers.
|
||||||
Their usage is very similar to the [general web handler](https://kolaente.dev/vikunja/web#user-content-defining-routes-using-the-standard-web-handler):
|
Their usage is very similar to the [general web handler](https://kolaente.dev/vikunja/web#user-content-defining-routes-using-the-standard-web-handler):
|
||||||
|
@ -63,7 +65,7 @@ if config.MigrationWunderlistEnable.GetBool() {
|
||||||
|
|
||||||
You should also document the routes with [swagger annotations]({{< ref "../practical-instructions/swagger-docs.md" >}}).
|
You should also document the routes with [swagger annotations]({{< ref "../practical-instructions/swagger-docs.md" >}}).
|
||||||
|
|
||||||
### Insertion helper method
|
## Insertion helper method
|
||||||
|
|
||||||
There is a method available in the `migration` package which takes a fully nested Vikunja structure and creates it with all relations.
|
There is a method available in the `migration` package which takes a fully nested Vikunja structure and creates it with all relations.
|
||||||
This means you start by adding a namespace, then add lists inside of that namespace, then tasks in the lists and so on.
|
This means you start by adding a namespace, then add lists inside of that namespace, then tasks in the lists and so on.
|
||||||
|
@ -81,7 +83,7 @@ if err != nil {
|
||||||
err = migration.InsertFromStructure(fullVikunjaHierachie, user)
|
err = migration.InsertFromStructure(fullVikunjaHierachie, user)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Configuration
|
## Configuration
|
||||||
|
|
||||||
You should add at least an option to enable or disable the migration.
|
You should add at least an option to enable or disable the migration.
|
||||||
Chances are, you'll need some more options for things like client ID and secret
|
Chances are, you'll need some more options for things like client ID and secret
|
||||||
|
@ -90,7 +92,7 @@ Chances are, you'll need some more options for things like client ID and secret
|
||||||
The easiest way to implement an on/off switch is to check whether your migration service is enabled or not when
|
The easiest way to implement an on/off switch is to check whether your migration service is enabled or not when
|
||||||
registering the routes, and then simply don't registering the routes in the case it is disabled.
|
registering the routes, and then simply don't registering the routes in the case it is disabled.
|
||||||
|
|
||||||
#### Making the migrator public in `/info`
|
### Making the migrator public in `/info`
|
||||||
|
|
||||||
You should make your migrator available in the `/info` endpoint so that frontends can display options to enable them or not.
|
You should make your migrator available in the `/info` endpoint so that frontends can display options to enable them or not.
|
||||||
To do this, add an entry to `pkg/routes/api/v1/info.go`.
|
To do this, add an entry to `pkg/routes/api/v1/info.go`.
|
||||||
|
|
|
@ -45,6 +45,8 @@ In general, this api repo has the following structure:
|
||||||
|
|
||||||
This document will explain what these mean and what you can find where.
|
This document will explain what these mean and what you can find where.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Root level
|
## Root level
|
||||||
|
|
||||||
The root directory is where [the config file]({{< ref "../setup/config.md">}}), [Magefile]({{< ref "mage.md">}}), license, drone config,
|
The root directory is where [the config file]({{< ref "../setup/config.md">}}), [Magefile]({{< ref "mage.md">}}), license, drone config,
|
||||||
|
|
|
@ -16,24 +16,26 @@ You can run unit tests with [our `Magefile`]({{< ref "mage.md">}}) with
|
||||||
mage test:unit
|
mage test:unit
|
||||||
{{< /highlight >}}
|
{{< /highlight >}}
|
||||||
|
|
||||||
### Running tests with config
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
|
## Running tests with config
|
||||||
|
|
||||||
You can run tests with all available config variables if you want, enabeling you to run tests for a lot of scenarios.
|
You can run tests with all available config variables if you want, enabeling you to run tests for a lot of scenarios.
|
||||||
|
|
||||||
To use the normal config set the enviroment variable `VIKUNJA_TESTS_USE_CONFIG=1`.
|
To use the normal config set the enviroment variable `VIKUNJA_TESTS_USE_CONFIG=1`.
|
||||||
|
|
||||||
### Show sql queries
|
## Show sql queries
|
||||||
|
|
||||||
When `UNIT_TESTS_VERBOSE=1` is set, all sql queries will be shown when tests are run.
|
When `UNIT_TESTS_VERBOSE=1` is set, all sql queries will be shown when tests are run.
|
||||||
|
|
||||||
### Fixtures
|
## Fixtures
|
||||||
|
|
||||||
All tests are run against a set of db fixtures.
|
All tests are run against a set of db fixtures.
|
||||||
These fixtures are defined in `pkg/models/fixtures` in YAML-Files which represent the database structure.
|
These fixtures are defined in `pkg/models/fixtures` in YAML-Files which represent the database structure.
|
||||||
|
|
||||||
When you add a new test case which requires new database entries to test against, update these files.
|
When you add a new test case which requires new database entries to test against, update these files.
|
||||||
|
|
||||||
# Integration tests
|
## Integration tests
|
||||||
|
|
||||||
All integration tests live in `pkg/integrations`.
|
All integration tests live in `pkg/integrations`.
|
||||||
You can run them by executing `mage test:integration`.
|
You can run them by executing `mage test:integration`.
|
||||||
|
@ -43,7 +45,7 @@ see at the beginning of this document.
|
||||||
|
|
||||||
To run integration tests, use `mage test:integration`.
|
To run integration tests, use `mage test:integration`.
|
||||||
|
|
||||||
# Initializing db fixtures when writing tests
|
## Initializing db fixtures when writing tests
|
||||||
|
|
||||||
All db fixtures for all tests live in the `pkg/db/fixtures/` folder as yaml files.
|
All db fixtures for all tests live in the `pkg/db/fixtures/` folder as yaml files.
|
||||||
Each file has the same name as the table the fixtures are for.
|
Each file has the same name as the table the fixtures are for.
|
||||||
|
|
|
@ -18,7 +18,9 @@ This is used whenever you make a call to the database to get or update data.
|
||||||
|
|
||||||
This xorm instance is set up and initialized every time vikunja is started.
|
This xorm instance is set up and initialized every time vikunja is started.
|
||||||
|
|
||||||
### Adding new database tables
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
|
## Adding new database tables
|
||||||
|
|
||||||
To add a new table to the database, add a an instance of your struct to the `tables` variable in the
|
To add a new table to the database, add a an instance of your struct to the `tables` variable in the
|
||||||
init function in `pkg/models/models.go`. Xorm will sync them automatically.
|
init function in `pkg/models/models.go`. Xorm will sync them automatically.
|
||||||
|
@ -27,7 +29,7 @@ You also need to add a pointer to the `tablesWithPointer` slice to enable cachin
|
||||||
|
|
||||||
To learn more about how to configure your struct to create "good" tables, refer to [the xorm documentaion](http://xorm.io/docs/).
|
To learn more about how to configure your struct to create "good" tables, refer to [the xorm documentaion](http://xorm.io/docs/).
|
||||||
|
|
||||||
### Adding data to test fixtures
|
## Adding data to test fixtures
|
||||||
|
|
||||||
Adding data for test fixtures is done in via `yaml` files insinde of `pkg/models/fixtures`.
|
Adding data for test fixtures is done in via `yaml` files insinde of `pkg/models/fixtures`.
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,8 @@ menu:
|
||||||
|
|
||||||
This document explains how to use the mailer to send emails and what to do to create a new kind of email to be sent.
|
This document explains how to use the mailer to send emails and what to do to create a new kind of email to be sent.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Sending emails
|
## Sending emails
|
||||||
|
|
||||||
**Note:** You should use mail templates whenever possible (see below).
|
**Note:** You should use mail templates whenever possible (see below).
|
||||||
|
@ -30,7 +32,7 @@ type Opts struct {
|
||||||
}
|
}
|
||||||
{{< /highlight >}}
|
{{< /highlight >}}
|
||||||
|
|
||||||
## Sending emails based on a template
|
### Sending emails based on a template
|
||||||
|
|
||||||
For each mail with a template, there are two email templates: One for plaintext emails, one for html emails.
|
For each mail with a template, there are two email templates: One for plaintext emails, one for html emails.
|
||||||
|
|
||||||
|
@ -41,7 +43,7 @@ To send a mail based on a template, use the function `mail.SendMailWithTemplate(
|
||||||
`to` and `subject` are pretty much self-explanatory, `tpl` is the name of the template, without `.html.tmpl` or `.plain.tmpl`.
|
`to` and `subject` are pretty much self-explanatory, `tpl` is the name of the template, without `.html.tmpl` or `.plain.tmpl`.
|
||||||
`data` is a map you can pass additional data to your template.
|
`data` is a map you can pass additional data to your template.
|
||||||
|
|
||||||
#### Sending a mail with a template
|
### Sending a mail with a template
|
||||||
|
|
||||||
A basic html email template would look like this:
|
A basic html email template would look like this:
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,8 @@ Metrics work by exposing a `/metrics` endpoint which can then be accessed by pro
|
||||||
To keep the load on the database minimal, metrics are stored and updated in redis.
|
To keep the load on the database minimal, metrics are stored and updated in redis.
|
||||||
The `metrics` package provides several functions to create and update metrics.
|
The `metrics` package provides several functions to create and update metrics.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## New metrics
|
## New metrics
|
||||||
|
|
||||||
First, define a `const` with the metric key in redis. This is done in `pkg/metrics/metrics.go`.
|
First, define a `const` with the metric key in redis. This is done in `pkg/metrics/metrics.go`.
|
||||||
|
@ -41,6 +43,6 @@ Because metrics are stored in redis, you are responsible to increase or decrease
|
||||||
To do this, use `metrics.UpdateCount(value, key)` where `value` is the amount you want to cange it (you can pass
|
To do this, use `metrics.UpdateCount(value, key)` where `value` is the amount you want to cange it (you can pass
|
||||||
negative values to decrease it) and `key` it the redis key used to define the metric.
|
negative values to decrease it) and `key` it the redis key used to define the metric.
|
||||||
|
|
||||||
# Using it
|
## Using it
|
||||||
|
|
||||||
A Prometheus config with a Grafana template is available at [our git repo](https://git.kolaente.de/vikunja/monitoring).
|
A Prometheus config with a Grafana template is available at [our git repo](https://git.kolaente.de/vikunja/monitoring).
|
||||||
|
|
|
@ -12,7 +12,7 @@ menu:
|
||||||
|
|
||||||
The api documentation is generated using [swaggo](https://github.com/swaggo/swag) from comments.
|
The api documentation is generated using [swaggo](https://github.com/swaggo/swag) from comments.
|
||||||
|
|
||||||
### Documenting structs
|
## Documenting structs
|
||||||
|
|
||||||
You should always comment every field which will be exposed as a json in the api.
|
You should always comment every field which will be exposed as a json in the api.
|
||||||
These comments will show up in the documentation, it'll make it easier for developers using the api.
|
These comments will show up in the documentation, it'll make it easier for developers using the api.
|
||||||
|
|
|
@ -13,6 +13,8 @@ menu:
|
||||||
Vikunja does not store any data outside of the database.
|
Vikunja does not store any data outside of the database.
|
||||||
So, all you need to backup are the contents of that database and maybe the config file.
|
So, all you need to backup are the contents of that database and maybe the config file.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## MySQL
|
## MySQL
|
||||||
|
|
||||||
To create a backup from mysql use the `mysqldump` command:
|
To create a backup from mysql use the `mysqldump` command:
|
||||||
|
|
|
@ -17,6 +17,8 @@ We'll use [docker compose](https://docs.docker.com/compose/) to make handling th
|
||||||
|
|
||||||
> If you have any issues setting up vikunja, please don't hesitate to reach out to us via [matrix](https://riot.im/app/#/room/!dCRiCiLaCCFVNlDnYs:matrix.org?via=matrix.org), the [community forum](https://community.vikunja.io/) or even [email](mailto:hello@vikunja.io).
|
> If you have any issues setting up vikunja, please don't hesitate to reach out to us via [matrix](https://riot.im/app/#/room/!dCRiCiLaCCFVNlDnYs:matrix.org?via=matrix.org), the [community forum](https://community.vikunja.io/) or even [email](mailto:hello@vikunja.io).
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Preparations (optional)
|
## Preparations (optional)
|
||||||
|
|
||||||
Create a directory for the project where all data and the compose file will live in.
|
Create a directory for the project where all data and the compose file will live in.
|
||||||
|
|
|
@ -21,7 +21,9 @@ For all available configuration options, see [configuration]({{< ref "config.md"
|
||||||
All examples on this page already reflect this and do not require additional work.
|
All examples on this page already reflect this and do not require additional work.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
### Redis
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
|
## Redis
|
||||||
|
|
||||||
To use redis, you'll need to add this to the config examples below:
|
To use redis, you'll need to add this to the config examples below:
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,8 @@ menu:
|
||||||
<a href="{{< ref "utf-8.md">}}">make sure your db is utf-8 compatible</a>.
|
<a href="{{< ref "utf-8.md">}}">make sure your db is utf-8 compatible</a>.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Install from binary
|
## Install from binary
|
||||||
|
|
||||||
Download a copy of Vikunja from the [download page](https://vikunja.io/en/download/) for your architecture.
|
Download a copy of Vikunja from the [download page](https://vikunja.io/en/download/) for your architecture.
|
||||||
|
|
|
@ -17,6 +17,8 @@ Unzip them and store them somewhere your server can access them.
|
||||||
|
|
||||||
You also need to configure a rewrite condition to internally redirect all requests to `index.html` which handles all urls.
|
You also need to configure a rewrite condition to internally redirect all requests to `index.html` which handles all urls.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## API URL configuration
|
## API URL configuration
|
||||||
|
|
||||||
By default, the frontend assumes it can reach the api at `/api/v1` relative to the frontend url.
|
By default, the frontend assumes it can reach the api at `/api/v1` relative to the frontend url.
|
||||||
|
|
|
@ -13,6 +13,8 @@ menu:
|
||||||
These examples assume you have an instance of the backend running on your server listening on port `3456`.
|
These examples assume you have an instance of the backend running on your server listening on port `3456`.
|
||||||
If you've changed this setting, you need to update the server configurations accordingly.
|
If you've changed this setting, you need to update the server configurations accordingly.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## NGINX
|
## NGINX
|
||||||
|
|
||||||
Below are two example configurations which you can put in your `nginx.conf`:
|
Below are two example configurations which you can put in your `nginx.conf`:
|
||||||
|
|
|
@ -17,6 +17,8 @@ Vikunja itself will work just fine until you want to use non-latin characters in
|
||||||
On this page, you will find information about how to fully ensure non-latin characters like aüäß or emojis work
|
On this page, you will find information about how to fully ensure non-latin characters like aüäß or emojis work
|
||||||
with your installation.
|
with your installation.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## Postgresql & SQLite
|
## Postgresql & SQLite
|
||||||
|
|
||||||
Postgresql and SQLite should handle utf-8 just fine - If you discover any issues nonetheless, please
|
Postgresql and SQLite should handle utf-8 just fine - If you discover any issues nonetheless, please
|
||||||
|
@ -49,11 +51,11 @@ The charset `latin1` means the db is encoded in the `latin1` encoding which does
|
||||||
|
|
||||||
(The following guide is based on [this thread from stackoverflow](https://dba.stackexchange.com/a/104866))
|
(The following guide is based on [this thread from stackoverflow](https://dba.stackexchange.com/a/104866))
|
||||||
|
|
||||||
#### 0. Backup your database
|
### 0. Backup your database
|
||||||
|
|
||||||
Before attempting any conversion, please [back up your database]({{< ref "backups.md">}}).
|
Before attempting any conversion, please [back up your database]({{< ref "backups.md">}}).
|
||||||
|
|
||||||
#### 1. Create a pre-conversion script
|
### 1. Create a pre-conversion script
|
||||||
|
|
||||||
Copy the following sql statements in a file called `preAlterTables.sql` and replace all occurences of `vikunja` with
|
Copy the following sql statements in a file called `preAlterTables.sql` and replace all occurences of `vikunja` with
|
||||||
the name of your database:
|
the name of your database:
|
||||||
|
@ -70,7 +72,7 @@ SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name, "` CHANGE `",column
|
||||||
FROM `COLUMNS` where table_schema like 'vikunja' and data_type in ('text','tinytext','mediumtext','longtext');
|
FROM `COLUMNS` where table_schema like 'vikunja' and data_type in ('text','tinytext','mediumtext','longtext');
|
||||||
{{< /highlight >}}
|
{{< /highlight >}}
|
||||||
|
|
||||||
#### 2. Run the pre-conversion script
|
### 2. Run the pre-conversion script
|
||||||
|
|
||||||
Running this will create the actual migration script for your particular database structure and save it in a file called `alterTables.sql`:
|
Running this will create the actual migration script for your particular database structure and save it in a file called `alterTables.sql`:
|
||||||
|
|
||||||
|
@ -78,7 +80,7 @@ Running this will create the actual migration script for your particular databas
|
||||||
mysql -uroot < preAlterTables.sql | egrep '^ALTER' > alterTables.sql
|
mysql -uroot < preAlterTables.sql | egrep '^ALTER' > alterTables.sql
|
||||||
{{< /highlight >}}
|
{{< /highlight >}}
|
||||||
|
|
||||||
#### 3. Convert the database
|
### 3. Convert the database
|
||||||
|
|
||||||
At this point converting is just a matter of executing the previously generated sql script:
|
At this point converting is just a matter of executing the previously generated sql script:
|
||||||
|
|
||||||
|
@ -86,7 +88,7 @@ At this point converting is just a matter of executing the previously generated
|
||||||
mysql -uroot < alterTables.sql
|
mysql -uroot < alterTables.sql
|
||||||
{{< /highlight >}}
|
{{< /highlight >}}
|
||||||
|
|
||||||
#### 4. Verify it was successfully converted
|
### 4. Verify it was successfully converted
|
||||||
|
|
||||||
If everything worked as intended, your db collation should now look like this:
|
If everything worked as intended, your db collation should now look like this:
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@ menu:
|
||||||
|
|
||||||
Vikunja supports managing tasks via the [caldav VTODO](https://tools.ietf.org/html/rfc5545#section-3.6.2) extension.
|
Vikunja supports managing tasks via the [caldav VTODO](https://tools.ietf.org/html/rfc5545#section-3.6.2) extension.
|
||||||
|
|
||||||
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
## URLs
|
## URLs
|
||||||
|
|
||||||
All urls are located under the `/dav` subspace.
|
All urls are located under the `/dav` subspace.
|
||||||
|
@ -64,11 +66,11 @@ Vikunja **currently does not** support these properties:
|
||||||
|
|
||||||
## Tested Clients
|
## Tested Clients
|
||||||
|
|
||||||
#### Working
|
### Working
|
||||||
|
|
||||||
* [Evolution](https://wiki.gnome.org/Apps/Evolution/)
|
* [Evolution](https://wiki.gnome.org/Apps/Evolution/)
|
||||||
|
|
||||||
#### Not working
|
### Not working
|
||||||
|
|
||||||
* [Tasks (Android)](https://tasks.org/)
|
* [Tasks (Android)](https://tasks.org/)
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,15 @@ menu:
|
||||||
|
|
||||||
This document describes the different errors Vikunja can return.
|
This document describes the different errors Vikunja can return.
|
||||||
|
|
||||||
### Generic
|
{{< table_of_contents >}}
|
||||||
|
|
||||||
|
## Generic
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
| 0001 | 403 | Generic forbidden error. |
|
| 0001 | 403 | Generic forbidden error. |
|
||||||
|
|
||||||
### User
|
## User
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
|
@ -39,14 +41,14 @@ This document describes the different errors Vikunja can return.
|
||||||
| 1017 | 412 | The provided Totp passcode is invalid. |
|
| 1017 | 412 | The provided Totp passcode is invalid. |
|
||||||
| 1018 | 412 | The provided user avatar provider type setting is invalid. |
|
| 1018 | 412 | The provided user avatar provider type setting is invalid. |
|
||||||
|
|
||||||
### Validation
|
## Validation
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
| 2001 | 400 | ID cannot be empty or 0. |
|
| 2001 | 400 | ID cannot be empty or 0. |
|
||||||
| 2002 | 400 | Some of the request data was invalid. The response contains an aditional array with all invalid fields. |
|
| 2002 | 400 | Some of the request data was invalid. The response contains an aditional array with all invalid fields. |
|
||||||
|
|
||||||
### List
|
## List
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
|
@ -57,7 +59,7 @@ This document describes the different errors Vikunja can return.
|
||||||
| 3007 | 400 | A list with this identifier already exists. |
|
| 3007 | 400 | A list with this identifier already exists. |
|
||||||
| 3008 | 412 | The list is archived and can therefore only be accessed read only. This is also true for all tasks associated with this list. |
|
| 3008 | 412 | The list is archived and can therefore only be accessed read only. This is also true for all tasks associated with this list. |
|
||||||
|
|
||||||
### Task
|
## Task
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
|
@ -81,7 +83,7 @@ This document describes the different errors Vikunja can return.
|
||||||
| 4018 | 403 | Invalid task filter concatinator. |
|
| 4018 | 403 | Invalid task filter concatinator. |
|
||||||
| 4019 | 403 | Invalid task filter value. |
|
| 4019 | 403 | Invalid task filter value. |
|
||||||
|
|
||||||
### Namespace
|
## Namespace
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
|
@ -93,7 +95,7 @@ This document describes the different errors Vikunja can return.
|
||||||
| 5011 | 409 | This user has already access to that namespace. |
|
| 5011 | 409 | This user has already access to that namespace. |
|
||||||
| 5012 | 412 | The namespace is archived and can therefore only be accessed read only. |
|
| 5012 | 412 | The namespace is archived and can therefore only be accessed read only. |
|
||||||
|
|
||||||
### Team
|
## Team
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
|
@ -104,14 +106,14 @@ This document describes the different errors Vikunja can return.
|
||||||
| 6006 | 400 | Cannot delete the last team member. |
|
| 6006 | 400 | Cannot delete the last team member. |
|
||||||
| 6007 | 403 | The team does not have access to the list to perform that action. |
|
| 6007 | 403 | The team does not have access to the list to perform that action. |
|
||||||
|
|
||||||
### User List Access
|
## User List Access
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
| 7002 | 409 | The user already has access to that list. |
|
| 7002 | 409 | The user already has access to that list. |
|
||||||
| 7003 | 403 | The user does not have access to that list. |
|
| 7003 | 403 | The user does not have access to that list. |
|
||||||
|
|
||||||
### Label
|
## Label
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
|
@ -119,13 +121,13 @@ This document describes the different errors Vikunja can return.
|
||||||
| 8002 | 404 | The label does not exist. |
|
| 8002 | 404 | The label does not exist. |
|
||||||
| 8003 | 403 | The user does not have access to this label. |
|
| 8003 | 403 | The user does not have access to this label. |
|
||||||
|
|
||||||
### Right
|
## Right
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
| 9001 | 403 | The right is invalid. |
|
| 9001 | 403 | The right is invalid. |
|
||||||
|
|
||||||
### Kanban
|
## Kanban
|
||||||
|
|
||||||
| ErrorCode | HTTP Status Code | Description |
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|-----------|------------------|-------------|
|
|-----------|------------------|-------------|
|
||||||
|
|
|
@ -23,7 +23,7 @@ The following values are possible:
|
||||||
| 1 | Read and write. Namespaces or lists shared with this right can be read and written to by the team or user. |
|
| 1 | Read and write. Namespaces or lists shared with this right can be read and written to by the team or user. |
|
||||||
| 2 | Admin. Can do anything like read and write, but can additionally manage sharing options. |
|
| 2 | Admin. Can do anything like read and write, but can additionally manage sharing options. |
|
||||||
|
|
||||||
### Team admins
|
## Team admins
|
||||||
|
|
||||||
When adding or querying a team, every member has an additional boolean value stating if it is admin or not.
|
When adding or querying a team, every member has an additional boolean value stating if it is admin or not.
|
||||||
A team admin can also add and remove team members and also change whether a user in the team is admin or not.
|
A team admin can also add and remove team members and also change whether a user in the team is admin or not.
|
2
docs/themes/vikunja
vendored
2
docs/themes/vikunja
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit a17ba5976906ee431943798c08e4d3c38689590d
|
Subproject commit 958219fc84db455ed58d7a4380bbffc8d04fd5cf
|
Loading…
Reference in a new issue