Merge branch 'release-v0.7.3'
38
.github/workflows/.tests-python.yml
vendored
@ -15,12 +15,12 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
python:
|
python:
|
||||||
name: python ${{ matrix.python-version }}
|
name: python ${{ matrix.python-version }} (postgresql 14)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: python:${{ matrix.python-version }}
|
container: python:${{ matrix.python-version }}
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:latest
|
image: postgres:14
|
||||||
env:
|
env:
|
||||||
POSTGRES_DB: fittrackee_test
|
POSTGRES_DB: fittrackee_test
|
||||||
POSTGRES_USER: fittrackee
|
POSTGRES_USER: fittrackee
|
||||||
@ -32,7 +32,7 @@ jobs:
|
|||||||
--health-retries 5
|
--health-retries 5
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [ "3.7", "3.8", "3.9", "3.10" ]
|
python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Poetry and Dependencies
|
- name: Install Poetry and Dependencies
|
||||||
@ -53,13 +53,43 @@ jobs:
|
|||||||
- name: Pytest
|
- name: Pytest
|
||||||
run: pytest fittrackee -p no:warnings --cov fittrackee --cov-report term-missing
|
run: pytest fittrackee -p no:warnings --cov fittrackee --cov-report term-missing
|
||||||
|
|
||||||
|
postgresql:
|
||||||
|
name: postgresql ${{ matrix.psql-version }} (python 3.10)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: python:3.10
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:${{ matrix.psql-version }}
|
||||||
|
env:
|
||||||
|
POSTGRES_DB: fittrackee_test
|
||||||
|
POSTGRES_USER: fittrackee
|
||||||
|
POSTGRES_PASSWORD: fittrackee
|
||||||
|
options: >-
|
||||||
|
--health-cmd pg_isready
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
psql-version: [ "10", "11", "12", "13", "15" ]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install Poetry and Dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install --quiet poetry
|
||||||
|
poetry config virtualenvs.create false
|
||||||
|
poetry install --no-interaction --quiet
|
||||||
|
- name: Pytest
|
||||||
|
run: pytest fittrackee -p no:warnings --cov fittrackee --cov-report term-missing
|
||||||
|
|
||||||
end2end:
|
end2end:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: ["python"]
|
needs: ["python"]
|
||||||
container: python:3.10
|
container: python:3.10
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:latest
|
image: postgres:14
|
||||||
env:
|
env:
|
||||||
POSTGRES_DB: fittrackee_test
|
POSTGRES_DB: fittrackee_test
|
||||||
POSTGRES_USER: fittrackee
|
POSTGRES_USER: fittrackee
|
||||||
|
21
CHANGELOG.md
@ -1,5 +1,26 @@
|
|||||||
# Change log
|
# Change log
|
||||||
|
|
||||||
|
## Version 0.7.3 (2022/11/01)
|
||||||
|
|
||||||
|
### Features and enhancements
|
||||||
|
|
||||||
|
* [#112](https://github.com/SamR1/FitTrackee/issues/112) - allow user to change date format
|
||||||
|
* [#244](https://github.com/SamR1/FitTrackee/issues/231) - New sport type: "Virtual Ride"
|
||||||
|
|
||||||
|
Thanks to @jat255
|
||||||
|
|
||||||
|
### Bugs Fixed
|
||||||
|
|
||||||
|
* [#246](https://github.com/SamR1/FitTrackee/issues/246) - Add support to PostgreSQL 15
|
||||||
|
* [#247](https://github.com/SamR1/FitTrackee/issues/247) - Segments duration is displayed with microseconds
|
||||||
|
|
||||||
|
### Translations
|
||||||
|
|
||||||
|
* [PR#252](https://github.com/SamR1/FitTrackee/issues/252) - init Norwegian Bokmål translations files
|
||||||
|
|
||||||
|
**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/installation.html#upgrade))
|
||||||
|
|
||||||
|
|
||||||
## Version 0.7.2 (2022/09/21)
|
## Version 0.7.2 (2022/09/21)
|
||||||
|
|
||||||
### Translations
|
### Translations
|
||||||
|
20
Makefile
@ -42,6 +42,9 @@ clean-install: clean
|
|||||||
rm -rf dist/
|
rm -rf dist/
|
||||||
|
|
||||||
## Docker commands for evaluation purposes
|
## Docker commands for evaluation purposes
|
||||||
|
docker-bandit:
|
||||||
|
docker-compose -f docker-compose-dev.yml exec fittrackee $(DOCKER_BANDIT) -r fittrackee -c pyproject.toml
|
||||||
|
|
||||||
docker-build:
|
docker-build:
|
||||||
docker-compose -f docker-compose-dev.yml build fittrackee
|
docker-compose -f docker-compose-dev.yml build fittrackee
|
||||||
|
|
||||||
@ -50,11 +53,15 @@ docker-build-all: docker-build docker-build-client
|
|||||||
docker-build-client:
|
docker-build-client:
|
||||||
docker-compose -f docker-compose-dev.yml build fittrackee_client
|
docker-compose -f docker-compose-dev.yml build fittrackee_client
|
||||||
|
|
||||||
|
docker-check-all: docker-bandit docker-lint-all docker-type-check docker-test-client docker-test-python
|
||||||
|
|
||||||
docker-init: docker-run docker-init-db docker-restart docker-run-workers
|
docker-init: docker-run docker-init-db docker-restart docker-run-workers
|
||||||
|
|
||||||
docker-init-db:
|
docker-init-db:
|
||||||
docker-compose -f docker-compose-dev.yml exec fittrackee docker/init-database.sh
|
docker-compose -f docker-compose-dev.yml exec fittrackee docker/init-database.sh
|
||||||
|
|
||||||
|
docker-lint-all: docker-lint-client docker-lint-python
|
||||||
|
|
||||||
docker-lint-client:
|
docker-lint-client:
|
||||||
docker-compose -f docker-compose-dev.yml up -d fittrackee_client
|
docker-compose -f docker-compose-dev.yml up -d fittrackee_client
|
||||||
docker-compose -f docker-compose-dev.yml exec fittrackee_client yarn lint
|
docker-compose -f docker-compose-dev.yml exec fittrackee_client yarn lint
|
||||||
@ -65,12 +72,18 @@ docker-lint-python: docker-run
|
|||||||
docker-logs:
|
docker-logs:
|
||||||
docker-compose -f docker-compose-dev.yml logs --follow
|
docker-compose -f docker-compose-dev.yml logs --follow
|
||||||
|
|
||||||
|
docker-migrate-db:
|
||||||
|
docker-compose -f docker-compose-dev.yml exec fittrackee $(DOCKER_FLASK) db migrate --directory $(DOCKER_MIGRATIONS)
|
||||||
|
|
||||||
docker-rebuild:
|
docker-rebuild:
|
||||||
docker-compose -f docker-compose-dev.yml build --no-cache
|
docker-compose -f docker-compose-dev.yml build --no-cache
|
||||||
|
|
||||||
docker-restart:
|
docker-restart:
|
||||||
docker-compose -f docker-compose-dev.yml restart fittrackee
|
docker-compose -f docker-compose-dev.yml restart fittrackee
|
||||||
|
|
||||||
|
docker-revision:
|
||||||
|
docker-compose -f docker-compose-dev.yml exec fittrackee $(DOCKER_FLASK) db revision --directory $(DOCKER_MIGRATIONS) --message $(MIGRATION_MESSAGE)
|
||||||
|
|
||||||
docker-run-all: docker-run docker-run-workers
|
docker-run-all: docker-run docker-run-workers
|
||||||
|
|
||||||
docker-run:
|
docker-run:
|
||||||
@ -104,9 +117,16 @@ docker-test-e2e: docker-run
|
|||||||
docker-test-python: docker-run
|
docker-test-python: docker-run
|
||||||
docker-compose -f docker-compose-dev.yml exec fittrackee docker/test-python.sh $(PYTEST_ARGS)
|
docker-compose -f docker-compose-dev.yml exec fittrackee docker/test-python.sh $(PYTEST_ARGS)
|
||||||
|
|
||||||
|
docker-type-check:
|
||||||
|
echo 'Running mypy in docker...'
|
||||||
|
docker-compose -f docker-compose-dev.yml exec fittrackee $(DOCKER_MYPY) fittrackee
|
||||||
|
|
||||||
docker-up:
|
docker-up:
|
||||||
docker-compose -f docker-compose-dev.yml up fittrackee
|
docker-compose -f docker-compose-dev.yml up fittrackee
|
||||||
|
|
||||||
|
docker-upgrade-db:
|
||||||
|
docker-compose -f docker-compose-dev.yml exec fittrackee $(DOCKER_FTCLI) db upgrade
|
||||||
|
|
||||||
downgrade-db:
|
downgrade-db:
|
||||||
$(FLASK) db downgrade --directory $(MIGRATIONS)
|
$(FLASK) db downgrade --directory $(MIGRATIONS)
|
||||||
|
|
||||||
|
@ -27,6 +27,14 @@ BANDIT = $(VENV)/bin/bandit
|
|||||||
PYBABEL = $(VENV)/bin/pybabel
|
PYBABEL = $(VENV)/bin/pybabel
|
||||||
FTCLI = $(VENV)/bin/ftcli
|
FTCLI = $(VENV)/bin/ftcli
|
||||||
|
|
||||||
|
# Docker env
|
||||||
|
export DOCKER_APP_DIR = /usr/src/app
|
||||||
|
export DOCKER_MIGRATIONS = $(DOCKER_APP_DIR)/fittrackee/migrations
|
||||||
|
export DOCKER_FLASK = /usr/local/bin/flask
|
||||||
|
export DOCKER_FTCLI = /usr/local/bin/ftcli
|
||||||
|
export DOCKER_BANDIT = /usr/local/bin/bandit
|
||||||
|
export DOCKER_MYPY = /usr/local/bin/mypy
|
||||||
|
|
||||||
# Node env
|
# Node env
|
||||||
NODE_MODULES = $(PWD)/fittrackee_client/node_modules
|
NODE_MODULES = $(PWD)/fittrackee_client/node_modules
|
||||||
NPM ?= yarn
|
NPM ?= yarn
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
DROP DATABASE IF EXISTS fittrackee;
|
DROP DATABASE IF EXISTS fittrackee;
|
||||||
DROP DATABASE IF EXISTS fittrackee_test;
|
DROP DATABASE IF EXISTS fittrackee_test;
|
||||||
|
DROP SCHEMA IF EXISTS fittrackee;
|
||||||
DROP USER IF EXISTS fittrackee;
|
DROP USER IF EXISTS fittrackee;
|
||||||
|
|
||||||
CREATE DATABASE fittrackee;
|
|
||||||
CREATE DATABASE fittrackee_test;
|
|
||||||
CREATE USER fittrackee WITH PASSWORD 'fittrackee';
|
CREATE USER fittrackee WITH PASSWORD 'fittrackee';
|
||||||
GRANT ALL PRIVILEGES ON DATABASE fittrackee TO fittrackee;
|
CREATE SCHEMA fittrackee AUTHORIZATION fittrackee;
|
||||||
GRANT ALL PRIVILEGES ON DATABASE fittrackee_test TO fittrackee;
|
CREATE DATABASE fittrackee OWNER fittrackee;
|
||||||
|
CREATE DATABASE fittrackee_test OWNER fittrackee;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Sphinx build info version 1
|
# Sphinx build info version 1
|
||||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: 9cf0117abfe8aea5f45c73bceae2ab56
|
config: 01a21335d6c252b5c95dfc3e08342cc3
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
Before Width: | Height: | Size: 550 KiB After Width: | Height: | Size: 549 KiB |
Before Width: | Height: | Size: 372 KiB After Width: | Height: | Size: 372 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
@ -1,5 +1,26 @@
|
|||||||
# Change log
|
# Change log
|
||||||
|
|
||||||
|
## Version 0.7.3 (2022/11/01)
|
||||||
|
|
||||||
|
### Features and enhancements
|
||||||
|
|
||||||
|
* [#112](https://github.com/SamR1/FitTrackee/issues/112) - allow user to change date format
|
||||||
|
* [#244](https://github.com/SamR1/FitTrackee/issues/231) - New sport type: "Virtual Ride"
|
||||||
|
|
||||||
|
Thanks to @jat255
|
||||||
|
|
||||||
|
### Bugs Fixed
|
||||||
|
|
||||||
|
* [#246](https://github.com/SamR1/FitTrackee/issues/246) - Add support to PostgreSQL 15
|
||||||
|
* [#247](https://github.com/SamR1/FitTrackee/issues/247) - Segments duration is displayed with microseconds
|
||||||
|
|
||||||
|
### Translations
|
||||||
|
|
||||||
|
* [PR#252](https://github.com/SamR1/FitTrackee/issues/252) - init Norwegian Bokmål translations files
|
||||||
|
|
||||||
|
**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/installation.html#upgrade))
|
||||||
|
|
||||||
|
|
||||||
## Version 0.7.2 (2022/09/21)
|
## Version 0.7.2 (2022/09/21)
|
||||||
|
|
||||||
### Translations
|
### Translations
|
||||||
|
@ -11,9 +11,10 @@ With the default configuration, `Open Street Map <https://www.openstreetmap.org>
|
|||||||
|
|
||||||
Workouts
|
Workouts
|
||||||
^^^^^^^^
|
^^^^^^^^
|
||||||
- 11 sports are supported:
|
- 12 sports are supported:
|
||||||
- Cycling (Sport)
|
- Cycling (Sport)
|
||||||
- Cycling (Transport)
|
- Cycling (Transport)
|
||||||
|
- Cycling (Virtual) (**new in 0.7.3**)
|
||||||
- Hiking
|
- Hiking
|
||||||
- Mountain Biking
|
- Mountain Biking
|
||||||
- Mountain Biking (Electric) (**new in 0.5.0**)
|
- Mountain Biking (Electric) (**new in 0.5.0**)
|
||||||
@ -81,6 +82,7 @@ Account & preferences
|
|||||||
- A user can change his email address (*new in 0.6.0*)
|
- A user can change his email address (*new in 0.6.0*)
|
||||||
- A user can choose between metric system and imperial system for distance, elevation and speed display (*new in 0.5.0*)
|
- A user can choose between metric system and imperial system for distance, elevation and speed display (*new in 0.5.0*)
|
||||||
- A user can choose to display or hide ascent records and total on Dashboard (*new in 0.6.11*)
|
- A user can choose to display or hide ascent records and total on Dashboard (*new in 0.6.11*)
|
||||||
|
- A user can choose format used to display dates (*new in 0.7.3*)
|
||||||
- A user can set sport preferences (*new in 0.5.0*):
|
- A user can set sport preferences (*new in 0.5.0*):
|
||||||
- change sport color (used for sport image and charts)
|
- change sport color (used for sport image and charts)
|
||||||
- can override stopped speed threshold (for next uploaded gpx files)
|
- can override stopped speed threshold (for next uploaded gpx files)
|
||||||
|
@ -364,9 +364,12 @@ Example :
|
|||||||
|
|
||||||
.. code-block:: sql
|
.. code-block:: sql
|
||||||
|
|
||||||
CREATE DATABASE fittrackee;
|
|
||||||
CREATE USER fittrackee WITH PASSWORD '<PASSWORD>';
|
CREATE USER fittrackee WITH PASSWORD '<PASSWORD>';
|
||||||
GRANT ALL PRIVILEGES ON DATABASE fittrackee TO fittrackee;
|
CREATE SCHEMA fittrackee AUTHORIZATION fittrackee;
|
||||||
|
CREATE DATABASE fittrackee OWNER fittrackee;
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
| see PostgreSQL `documentation <https://www.postgresql.org/docs/15/ddl-schemas.html>`_ for schema and privileges.
|
||||||
|
|
||||||
- Initialize environment variables, see `Environment variables <installation.html#environment-variables>`__
|
- Initialize environment variables, see `Environment variables <installation.html#environment-variables>`__
|
||||||
|
|
||||||
@ -477,13 +480,13 @@ Production environment
|
|||||||
.. warning::
|
.. warning::
|
||||||
| Note that FitTrackee is under heavy development, some features may be unstable.
|
| Note that FitTrackee is under heavy development, some features may be unstable.
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.7.2):
|
- Download the last release (for now, it is the release v0.7.3):
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.2.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
|
||||||
$ tar -xzf v0.7.2.tar.gz
|
$ tar -xzf v0.7.3.tar.gz
|
||||||
$ mv FitTrackee-0.7.2 FitTrackee
|
$ mv FitTrackee-0.7.3 FitTrackee
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Create **.env** from example and update it
|
- Create **.env** from example and update it
|
||||||
@ -603,13 +606,13 @@ Prod environment
|
|||||||
|
|
||||||
- Change to the directory where FitTrackee directory is located
|
- Change to the directory where FitTrackee directory is located
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.7.2) and overwrite existing files:
|
- Download the last release (for now, it is the release v0.7.3) and overwrite existing files:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.2.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
|
||||||
$ tar -xzf v0.7.2.tar.gz
|
$ tar -xzf v0.7.3.tar.gz
|
||||||
$ cp -R FitTrackee-0.7.2/* FitTrackee/
|
$ cp -R FitTrackee-0.7.3/* FitTrackee/
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
||||||
|
130
docs/_static/doctools.js
vendored
@ -10,6 +10,13 @@
|
|||||||
*/
|
*/
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
|
||||||
|
"TEXTAREA",
|
||||||
|
"INPUT",
|
||||||
|
"SELECT",
|
||||||
|
"BUTTON",
|
||||||
|
]);
|
||||||
|
|
||||||
const _ready = (callback) => {
|
const _ready = (callback) => {
|
||||||
if (document.readyState !== "loading") {
|
if (document.readyState !== "loading") {
|
||||||
callback();
|
callback();
|
||||||
@ -18,73 +25,11 @@ const _ready = (callback) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* highlight a given string on a node by wrapping it in
|
|
||||||
* span elements with the given class name.
|
|
||||||
*/
|
|
||||||
const _highlight = (node, addItems, text, className) => {
|
|
||||||
if (node.nodeType === Node.TEXT_NODE) {
|
|
||||||
const val = node.nodeValue;
|
|
||||||
const parent = node.parentNode;
|
|
||||||
const pos = val.toLowerCase().indexOf(text);
|
|
||||||
if (
|
|
||||||
pos >= 0 &&
|
|
||||||
!parent.classList.contains(className) &&
|
|
||||||
!parent.classList.contains("nohighlight")
|
|
||||||
) {
|
|
||||||
let span;
|
|
||||||
|
|
||||||
const closestNode = parent.closest("body, svg, foreignObject");
|
|
||||||
const isInSVG = closestNode && closestNode.matches("svg");
|
|
||||||
if (isInSVG) {
|
|
||||||
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
|
|
||||||
} else {
|
|
||||||
span = document.createElement("span");
|
|
||||||
span.classList.add(className);
|
|
||||||
}
|
|
||||||
|
|
||||||
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
|
||||||
parent.insertBefore(
|
|
||||||
span,
|
|
||||||
parent.insertBefore(
|
|
||||||
document.createTextNode(val.substr(pos + text.length)),
|
|
||||||
node.nextSibling
|
|
||||||
)
|
|
||||||
);
|
|
||||||
node.nodeValue = val.substr(0, pos);
|
|
||||||
|
|
||||||
if (isInSVG) {
|
|
||||||
const rect = document.createElementNS(
|
|
||||||
"http://www.w3.org/2000/svg",
|
|
||||||
"rect"
|
|
||||||
);
|
|
||||||
const bbox = parent.getBBox();
|
|
||||||
rect.x.baseVal.value = bbox.x;
|
|
||||||
rect.y.baseVal.value = bbox.y;
|
|
||||||
rect.width.baseVal.value = bbox.width;
|
|
||||||
rect.height.baseVal.value = bbox.height;
|
|
||||||
rect.setAttribute("class", className);
|
|
||||||
addItems.push({ parent: parent, target: rect });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (node.matches && !node.matches("button, select, textarea")) {
|
|
||||||
node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const _highlightText = (thisNode, text, className) => {
|
|
||||||
let addItems = [];
|
|
||||||
_highlight(thisNode, addItems, text, className);
|
|
||||||
addItems.forEach((obj) =>
|
|
||||||
obj.parent.insertAdjacentElement("beforebegin", obj.target)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Small JavaScript module for the documentation.
|
* Small JavaScript module for the documentation.
|
||||||
*/
|
*/
|
||||||
const Documentation = {
|
const Documentation = {
|
||||||
init: () => {
|
init: () => {
|
||||||
Documentation.highlightSearchWords();
|
|
||||||
Documentation.initDomainIndexTable();
|
Documentation.initDomainIndexTable();
|
||||||
Documentation.initOnKeyListeners();
|
Documentation.initOnKeyListeners();
|
||||||
},
|
},
|
||||||
@ -126,51 +71,6 @@ const Documentation = {
|
|||||||
Documentation.LOCALE = catalog.locale;
|
Documentation.LOCALE = catalog.locale;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* highlight the search words provided in the url in the text
|
|
||||||
*/
|
|
||||||
highlightSearchWords: () => {
|
|
||||||
const highlight =
|
|
||||||
new URLSearchParams(window.location.search).get("highlight") || "";
|
|
||||||
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
|
|
||||||
if (terms.length === 0) return; // nothing to do
|
|
||||||
|
|
||||||
// There should never be more than one element matching "div.body"
|
|
||||||
const divBody = document.querySelectorAll("div.body");
|
|
||||||
const body = divBody.length ? divBody[0] : document.querySelector("body");
|
|
||||||
window.setTimeout(() => {
|
|
||||||
terms.forEach((term) => _highlightText(body, term, "highlighted"));
|
|
||||||
}, 10);
|
|
||||||
|
|
||||||
const searchBox = document.getElementById("searchbox");
|
|
||||||
if (searchBox === null) return;
|
|
||||||
searchBox.appendChild(
|
|
||||||
document
|
|
||||||
.createRange()
|
|
||||||
.createContextualFragment(
|
|
||||||
'<p class="highlight-link">' +
|
|
||||||
'<a href="javascript:Documentation.hideSearchWords()">' +
|
|
||||||
Documentation.gettext("Hide Search Matches") +
|
|
||||||
"</a></p>"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* helper function to hide the search marks again
|
|
||||||
*/
|
|
||||||
hideSearchWords: () => {
|
|
||||||
document
|
|
||||||
.querySelectorAll("#searchbox .highlight-link")
|
|
||||||
.forEach((el) => el.remove());
|
|
||||||
document
|
|
||||||
.querySelectorAll("span.highlighted")
|
|
||||||
.forEach((el) => el.classList.remove("highlighted"));
|
|
||||||
const url = new URL(window.location);
|
|
||||||
url.searchParams.delete("highlight");
|
|
||||||
window.history.replaceState({}, "", url);
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* helper function to focus on search bar
|
* helper function to focus on search bar
|
||||||
*/
|
*/
|
||||||
@ -210,15 +110,11 @@ const Documentation = {
|
|||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const blacklistedElements = new Set([
|
|
||||||
"TEXTAREA",
|
|
||||||
"INPUT",
|
|
||||||
"SELECT",
|
|
||||||
"BUTTON",
|
|
||||||
]);
|
|
||||||
document.addEventListener("keydown", (event) => {
|
document.addEventListener("keydown", (event) => {
|
||||||
if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements
|
// bail for input elements
|
||||||
if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys
|
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
|
||||||
|
// bail with special keys
|
||||||
|
if (event.altKey || event.ctrlKey || event.metaKey) return;
|
||||||
|
|
||||||
if (!event.shiftKey) {
|
if (!event.shiftKey) {
|
||||||
switch (event.key) {
|
switch (event.key) {
|
||||||
@ -240,10 +136,6 @@ const Documentation = {
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "Escape":
|
|
||||||
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
|
|
||||||
Documentation.hideSearchWords();
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
docs/_static/documentation_options.js
vendored
@ -1,6 +1,6 @@
|
|||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||||
VERSION: '0.7.2',
|
VERSION: '0.7.3',
|
||||||
LANGUAGE: 'en',
|
LANGUAGE: 'en',
|
||||||
COLLAPSE_INDEX: false,
|
COLLAPSE_INDEX: false,
|
||||||
BUILDER: 'html',
|
BUILDER: 'html',
|
||||||
|
74
docs/_static/searchtools.js
vendored
@ -57,14 +57,14 @@ const _removeChildren = (element) => {
|
|||||||
const _escapeRegExp = (string) =>
|
const _escapeRegExp = (string) =>
|
||||||
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
|
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
|
||||||
|
|
||||||
const _displayItem = (item, highlightTerms, searchTerms) => {
|
const _displayItem = (item, searchTerms) => {
|
||||||
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
|
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
|
||||||
const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
|
const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
|
||||||
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
|
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
|
||||||
const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
|
const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
|
||||||
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
|
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
|
||||||
|
|
||||||
const [docName, title, anchor, descr] = item;
|
const [docName, title, anchor, descr, score, _filename] = item;
|
||||||
|
|
||||||
let listItem = document.createElement("li");
|
let listItem = document.createElement("li");
|
||||||
let requestUrl;
|
let requestUrl;
|
||||||
@ -82,10 +82,9 @@ const _displayItem = (item, highlightTerms, searchTerms) => {
|
|||||||
requestUrl = docUrlRoot + docName + docFileSuffix;
|
requestUrl = docUrlRoot + docName + docFileSuffix;
|
||||||
linkUrl = docName + docLinkSuffix;
|
linkUrl = docName + docLinkSuffix;
|
||||||
}
|
}
|
||||||
const params = new URLSearchParams();
|
|
||||||
params.set("highlight", [...highlightTerms].join(" "));
|
|
||||||
let linkEl = listItem.appendChild(document.createElement("a"));
|
let linkEl = listItem.appendChild(document.createElement("a"));
|
||||||
linkEl.href = linkUrl + "?" + params.toString() + anchor;
|
linkEl.href = linkUrl + anchor;
|
||||||
|
linkEl.dataset.score = score;
|
||||||
linkEl.innerHTML = title;
|
linkEl.innerHTML = title;
|
||||||
if (descr)
|
if (descr)
|
||||||
listItem.appendChild(document.createElement("span")).innerHTML =
|
listItem.appendChild(document.createElement("span")).innerHTML =
|
||||||
@ -96,7 +95,7 @@ const _displayItem = (item, highlightTerms, searchTerms) => {
|
|||||||
.then((data) => {
|
.then((data) => {
|
||||||
if (data)
|
if (data)
|
||||||
listItem.appendChild(
|
listItem.appendChild(
|
||||||
Search.makeSearchSummary(data, searchTerms, highlightTerms)
|
Search.makeSearchSummary(data, searchTerms)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
Search.output.appendChild(listItem);
|
Search.output.appendChild(listItem);
|
||||||
@ -116,15 +115,14 @@ const _finishSearch = (resultCount) => {
|
|||||||
const _displayNextItem = (
|
const _displayNextItem = (
|
||||||
results,
|
results,
|
||||||
resultCount,
|
resultCount,
|
||||||
highlightTerms,
|
|
||||||
searchTerms
|
searchTerms
|
||||||
) => {
|
) => {
|
||||||
// results left, load the summary and display it
|
// results left, load the summary and display it
|
||||||
// this is intended to be dynamic (don't sub resultsCount)
|
// this is intended to be dynamic (don't sub resultsCount)
|
||||||
if (results.length) {
|
if (results.length) {
|
||||||
_displayItem(results.pop(), highlightTerms, searchTerms);
|
_displayItem(results.pop(), searchTerms);
|
||||||
setTimeout(
|
setTimeout(
|
||||||
() => _displayNextItem(results, resultCount, highlightTerms, searchTerms),
|
() => _displayNextItem(results, resultCount, searchTerms),
|
||||||
5
|
5
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -237,6 +235,12 @@ const Search = {
|
|||||||
* execute search (requires search index to be loaded)
|
* execute search (requires search index to be loaded)
|
||||||
*/
|
*/
|
||||||
query: (query) => {
|
query: (query) => {
|
||||||
|
const filenames = Search._index.filenames;
|
||||||
|
const docNames = Search._index.docnames;
|
||||||
|
const titles = Search._index.titles;
|
||||||
|
const allTitles = Search._index.alltitles;
|
||||||
|
const indexEntries = Search._index.indexentries;
|
||||||
|
|
||||||
// stem the search terms and add them to the correct list
|
// stem the search terms and add them to the correct list
|
||||||
const stemmer = new Stemmer();
|
const stemmer = new Stemmer();
|
||||||
const searchTerms = new Set();
|
const searchTerms = new Set();
|
||||||
@ -264,6 +268,10 @@ const Search = {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
|
||||||
|
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
|
||||||
|
}
|
||||||
|
|
||||||
// console.debug("SEARCH: searching for:");
|
// console.debug("SEARCH: searching for:");
|
||||||
// console.info("required: ", [...searchTerms]);
|
// console.info("required: ", [...searchTerms]);
|
||||||
// console.info("excluded: ", [...excludedTerms]);
|
// console.info("excluded: ", [...excludedTerms]);
|
||||||
@ -272,6 +280,40 @@ const Search = {
|
|||||||
let results = [];
|
let results = [];
|
||||||
_removeChildren(document.getElementById("search-progress"));
|
_removeChildren(document.getElementById("search-progress"));
|
||||||
|
|
||||||
|
const queryLower = query.toLowerCase();
|
||||||
|
for (const [title, foundTitles] of Object.entries(allTitles)) {
|
||||||
|
if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) {
|
||||||
|
for (const [file, id] of foundTitles) {
|
||||||
|
let score = Math.round(100 * queryLower.length / title.length)
|
||||||
|
results.push([
|
||||||
|
docNames[file],
|
||||||
|
titles[file] !== title ? `${titles[file]} > ${title}` : title,
|
||||||
|
id !== null ? "#" + id : "",
|
||||||
|
null,
|
||||||
|
score,
|
||||||
|
filenames[file],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// search for explicit entries in index directives
|
||||||
|
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
|
||||||
|
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
|
||||||
|
for (const [file, id] of foundEntries) {
|
||||||
|
let score = Math.round(100 * queryLower.length / entry.length)
|
||||||
|
results.push([
|
||||||
|
docNames[file],
|
||||||
|
titles[file],
|
||||||
|
id ? "#" + id : "",
|
||||||
|
null,
|
||||||
|
score,
|
||||||
|
filenames[file],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// lookup as object
|
// lookup as object
|
||||||
objectTerms.forEach((term) =>
|
objectTerms.forEach((term) =>
|
||||||
results.push(...Search.performObjectSearch(term, objectTerms))
|
results.push(...Search.performObjectSearch(term, objectTerms))
|
||||||
@ -318,7 +360,7 @@ const Search = {
|
|||||||
// console.info("search results:", Search.lastresults);
|
// console.info("search results:", Search.lastresults);
|
||||||
|
|
||||||
// print the results
|
// print the results
|
||||||
_displayNextItem(results, results.length, highlightTerms, searchTerms);
|
_displayNextItem(results, results.length, searchTerms);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -399,8 +441,8 @@ const Search = {
|
|||||||
// prepare search
|
// prepare search
|
||||||
const terms = Search._index.terms;
|
const terms = Search._index.terms;
|
||||||
const titleTerms = Search._index.titleterms;
|
const titleTerms = Search._index.titleterms;
|
||||||
const docNames = Search._index.docnames;
|
|
||||||
const filenames = Search._index.filenames;
|
const filenames = Search._index.filenames;
|
||||||
|
const docNames = Search._index.docnames;
|
||||||
const titles = Search._index.titles;
|
const titles = Search._index.titles;
|
||||||
|
|
||||||
const scoreMap = new Map();
|
const scoreMap = new Map();
|
||||||
@ -497,11 +539,9 @@ const Search = {
|
|||||||
/**
|
/**
|
||||||
* helper function to return a node containing the
|
* helper function to return a node containing the
|
||||||
* search summary for a given text. keywords is a list
|
* search summary for a given text. keywords is a list
|
||||||
* of stemmed words, highlightWords is the list of normal, unstemmed
|
* of stemmed words.
|
||||||
* words. the first one is used to find the occurrence, the
|
|
||||||
* latter for highlighting it.
|
|
||||||
*/
|
*/
|
||||||
makeSearchSummary: (htmlText, keywords, highlightWords) => {
|
makeSearchSummary: (htmlText, keywords) => {
|
||||||
const text = Search.htmlToText(htmlText);
|
const text = Search.htmlToText(htmlText);
|
||||||
if (text === "") return null;
|
if (text === "") return null;
|
||||||
|
|
||||||
@ -519,10 +559,6 @@ const Search = {
|
|||||||
summary.classList.add("context");
|
summary.classList.add("context");
|
||||||
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
|
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
|
||||||
|
|
||||||
highlightWords.forEach((highlightWord) =>
|
|
||||||
_highlightText(summary, highlightWord, "highlighted")
|
|
||||||
);
|
|
||||||
|
|
||||||
return summary;
|
return summary;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
144
docs/_static/sphinx_highlight.js
vendored
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/* Highlighting utilities for Sphinx HTML documentation. */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
const SPHINX_HIGHLIGHT_ENABLED = true
|
||||||
|
|
||||||
|
/**
|
||||||
|
* highlight a given string on a node by wrapping it in
|
||||||
|
* span elements with the given class name.
|
||||||
|
*/
|
||||||
|
const _highlight = (node, addItems, text, className) => {
|
||||||
|
if (node.nodeType === Node.TEXT_NODE) {
|
||||||
|
const val = node.nodeValue;
|
||||||
|
const parent = node.parentNode;
|
||||||
|
const pos = val.toLowerCase().indexOf(text);
|
||||||
|
if (
|
||||||
|
pos >= 0 &&
|
||||||
|
!parent.classList.contains(className) &&
|
||||||
|
!parent.classList.contains("nohighlight")
|
||||||
|
) {
|
||||||
|
let span;
|
||||||
|
|
||||||
|
const closestNode = parent.closest("body, svg, foreignObject");
|
||||||
|
const isInSVG = closestNode && closestNode.matches("svg");
|
||||||
|
if (isInSVG) {
|
||||||
|
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
|
||||||
|
} else {
|
||||||
|
span = document.createElement("span");
|
||||||
|
span.classList.add(className);
|
||||||
|
}
|
||||||
|
|
||||||
|
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
||||||
|
parent.insertBefore(
|
||||||
|
span,
|
||||||
|
parent.insertBefore(
|
||||||
|
document.createTextNode(val.substr(pos + text.length)),
|
||||||
|
node.nextSibling
|
||||||
|
)
|
||||||
|
);
|
||||||
|
node.nodeValue = val.substr(0, pos);
|
||||||
|
|
||||||
|
if (isInSVG) {
|
||||||
|
const rect = document.createElementNS(
|
||||||
|
"http://www.w3.org/2000/svg",
|
||||||
|
"rect"
|
||||||
|
);
|
||||||
|
const bbox = parent.getBBox();
|
||||||
|
rect.x.baseVal.value = bbox.x;
|
||||||
|
rect.y.baseVal.value = bbox.y;
|
||||||
|
rect.width.baseVal.value = bbox.width;
|
||||||
|
rect.height.baseVal.value = bbox.height;
|
||||||
|
rect.setAttribute("class", className);
|
||||||
|
addItems.push({ parent: parent, target: rect });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (node.matches && !node.matches("button, select, textarea")) {
|
||||||
|
node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const _highlightText = (thisNode, text, className) => {
|
||||||
|
let addItems = [];
|
||||||
|
_highlight(thisNode, addItems, text, className);
|
||||||
|
addItems.forEach((obj) =>
|
||||||
|
obj.parent.insertAdjacentElement("beforebegin", obj.target)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Small JavaScript module for the documentation.
|
||||||
|
*/
|
||||||
|
const SphinxHighlight = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* highlight the search words provided in localstorage in the text
|
||||||
|
*/
|
||||||
|
highlightSearchWords: () => {
|
||||||
|
if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
|
||||||
|
|
||||||
|
// get and clear terms from localstorage
|
||||||
|
const url = new URL(window.location);
|
||||||
|
const highlight =
|
||||||
|
localStorage.getItem("sphinx_highlight_terms")
|
||||||
|
|| url.searchParams.get("highlight")
|
||||||
|
|| "";
|
||||||
|
localStorage.removeItem("sphinx_highlight_terms")
|
||||||
|
url.searchParams.delete("highlight");
|
||||||
|
window.history.replaceState({}, "", url);
|
||||||
|
|
||||||
|
// get individual terms from highlight string
|
||||||
|
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
|
||||||
|
if (terms.length === 0) return; // nothing to do
|
||||||
|
|
||||||
|
// There should never be more than one element matching "div.body"
|
||||||
|
const divBody = document.querySelectorAll("div.body");
|
||||||
|
const body = divBody.length ? divBody[0] : document.querySelector("body");
|
||||||
|
window.setTimeout(() => {
|
||||||
|
terms.forEach((term) => _highlightText(body, term, "highlighted"));
|
||||||
|
}, 10);
|
||||||
|
|
||||||
|
const searchBox = document.getElementById("searchbox");
|
||||||
|
if (searchBox === null) return;
|
||||||
|
searchBox.appendChild(
|
||||||
|
document
|
||||||
|
.createRange()
|
||||||
|
.createContextualFragment(
|
||||||
|
'<p class="highlight-link">' +
|
||||||
|
'<a href="javascript:SphinxHighlight.hideSearchWords()">' +
|
||||||
|
_("Hide Search Matches") +
|
||||||
|
"</a></p>"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* helper function to hide the search marks again
|
||||||
|
*/
|
||||||
|
hideSearchWords: () => {
|
||||||
|
document
|
||||||
|
.querySelectorAll("#searchbox .highlight-link")
|
||||||
|
.forEach((el) => el.remove());
|
||||||
|
document
|
||||||
|
.querySelectorAll("span.highlighted")
|
||||||
|
.forEach((el) => el.classList.remove("highlighted"));
|
||||||
|
localStorage.removeItem("sphinx_highlight_terms")
|
||||||
|
},
|
||||||
|
|
||||||
|
initEscapeListener: () => {
|
||||||
|
// only install a listener if it is really needed
|
||||||
|
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
|
||||||
|
|
||||||
|
document.addEventListener("keydown", (event) => {
|
||||||
|
// bail for input elements
|
||||||
|
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
|
||||||
|
// bail with special keys
|
||||||
|
if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
|
||||||
|
if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
|
||||||
|
SphinxHighlight.hideSearchWords();
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
_ready(SphinxHighlight.highlightSearchWords);
|
||||||
|
_ready(SphinxHighlight.initEscapeListener);
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Authentication — FitTrackee 0.7.2
|
<title>Authentication — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Configuration" href="configuration.html" />
|
<link rel="next" title="Configuration" href="configuration.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -574,6 +575,19 @@ character “_” allowed</p></li>
|
|||||||
<dt class="sig sig-object http" id="post--api-auth-profile-edit-preferences">
|
<dt class="sig sig-object http" id="post--api-auth-profile-edit-preferences">
|
||||||
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/auth/profile/edit/preferences</span></span><a class="headerlink" href="#post--api-auth-profile-edit-preferences" title="Permalink to this definition">¶</a></dt>
|
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/auth/profile/edit/preferences</span></span><a class="headerlink" href="#post--api-auth-profile-edit-preferences" title="Permalink to this definition">¶</a></dt>
|
||||||
<dd><p>Edit authenticated user preferences.</p>
|
<dd><p>Edit authenticated user preferences.</p>
|
||||||
|
<p>Supported date formats:</p>
|
||||||
|
<ul class="simple">
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">MM/dd/yyyy</span></code> (default value)</p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">dd/MM/yyyy</span></code></p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">yyyy-MM-dd</span></code></p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">date_string</span></code>, corresponding on client to:</p>
|
||||||
|
<ul>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">MMM.</span> <span class="pre">do,</span> <span class="pre">yyyy</span></code> for <code class="docutils literal notranslate"><span class="pre">en</span></code> locale</p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">d</span> <span class="pre">MMM</span> <span class="pre">yyyy</span></code> for <code class="docutils literal notranslate"><span class="pre">fr</span></code> locale</p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">do</span> <span class="pre">MMM</span> <span class="pre">yyyy</span></code> for <code class="docutils literal notranslate"><span class="pre">de</span></code> locale</p></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">profile:write</span></code></p>
|
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">profile:write</span></code></p>
|
||||||
<p><strong>Example request</strong>:</p>
|
<p><strong>Example request</strong>:</p>
|
||||||
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/auth/profile/edit/preferences</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/auth/profile/edit/preferences</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
||||||
@ -590,6 +604,7 @@ character “_” allowed</p></li>
|
|||||||
<span class="w"> </span><span class="nt">"bio"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"bio"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"birth_date"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"birth_date"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"created_at"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Sun, 14 Jul 2019 14:09:58 GMT"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"created_at"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Sun, 14 Jul 2019 14:09:58 GMT"</span><span class="p">,</span><span class="w"></span>
|
||||||
|
<span class="w"> </span><span class="nt">"date_format"</span><span class="p">:</span><span class="w"> </span><span class="s2">"MM/dd/yyyy"</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"display_ascent"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"display_ascent"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"sam@example.com"</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"email"</span><span class="p">:</span><span class="w"> </span><span class="s2">"sam@example.com"</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"first_name"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"first_name"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"></span>
|
||||||
@ -667,6 +682,7 @@ character “_” allowed</p></li>
|
|||||||
<dl class="field-list simple">
|
<dl class="field-list simple">
|
||||||
<dt class="field-odd">Request JSON Object<span class="colon">:</span></dt>
|
<dt class="field-odd">Request JSON Object<span class="colon">:</span></dt>
|
||||||
<dd class="field-odd"><ul class="simple">
|
<dd class="field-odd"><ul class="simple">
|
||||||
|
<li><p><strong>date_format</strong> (<em>string</em>) – the format used to display dates in the app</p></li>
|
||||||
<li><p><strong>display_ascent</strong> (<em>boolean</em>) – display highest ascent records and total</p></li>
|
<li><p><strong>display_ascent</strong> (<em>boolean</em>) – display highest ascent records and total</p></li>
|
||||||
<li><p><strong>imperial_units</strong> (<em>boolean</em>) – display distance in imperial units</p></li>
|
<li><p><strong>imperial_units</strong> (<em>boolean</em>) – display distance in imperial units</p></li>
|
||||||
<li><p><strong>language</strong> (<em>string</em>) – language preferences</p></li>
|
<li><p><strong>language</strong> (<em>string</em>) – language preferences</p></li>
|
||||||
@ -1222,7 +1238,7 @@ for other reasons.</p></li>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Configuration — FitTrackee 0.7.2
|
<title>Configuration — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="OAuth2" href="oauth2.html" />
|
<link rel="next" title="OAuth2" href="oauth2.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -153,7 +154,7 @@
|
|||||||
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.7.2"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.7.3"</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
||||||
<span class="p">}</span><span class="w"></span>
|
<span class="p">}</span><span class="w"></span>
|
||||||
@ -194,7 +195,7 @@
|
|||||||
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_users"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"max_zip_file_size"</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"map_attribution"</span><span class="p">:</span><span class="w"> </span><span class="nt">"&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.7.2"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.7.3"</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
<span class="w"> </span><span class="p">},</span><span class="w"></span>
|
||||||
<span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
<span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="w"></span>
|
||||||
<span class="p">}</span><span class="w"></span>
|
<span class="p">}</span><span class="w"></span>
|
||||||
@ -277,7 +278,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>API documentation — FitTrackee 0.7.2
|
<title>API documentation — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Authentication" href="auth.html" />
|
<link rel="next" title="Authentication" href="auth.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -158,7 +159,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>OAuth2 — FitTrackee 0.7.2
|
<title>OAuth2 — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Records" href="records.html" />
|
<link rel="next" title="Records" href="records.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -692,7 +693,7 @@ are supported by FitTrackee)</p></li>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Records — FitTrackee 0.7.2
|
<title>Records — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Sports" href="sports.html" />
|
<link rel="next" title="Sports" href="sports.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -260,7 +261,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Sports — FitTrackee 0.7.2
|
<title>Sports — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Statistics" href="stats.html" />
|
<link rel="next" title="Statistics" href="stats.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -490,7 +491,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Statistics — FitTrackee 0.7.2
|
<title>Statistics — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Users" href="users.html" />
|
<link rel="next" title="Users" href="users.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -417,7 +418,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Users — FitTrackee 0.7.2
|
<title>Users — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Workouts" href="workouts.html" />
|
<link rel="next" title="Workouts" href="workouts.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -265,9 +266,10 @@ has admin rights.</p>
|
|||||||
<li><p><strong>page</strong> (<em>integer</em>) – page if using pagination (default: 1)</p></li>
|
<li><p><strong>page</strong> (<em>integer</em>) – page if using pagination (default: 1)</p></li>
|
||||||
<li><p><strong>per_page</strong> (<em>integer</em>) – number of users per page (default: 10, max: 50)</p></li>
|
<li><p><strong>per_page</strong> (<em>integer</em>) – number of users per page (default: 10, max: 50)</p></li>
|
||||||
<li><p><strong>q</strong> (<em>string</em>) – query on user name</p></li>
|
<li><p><strong>q</strong> (<em>string</em>) – query on user name</p></li>
|
||||||
<li><p><strong>order_by</strong> (<em>string</em>) – sorting criteria (<code class="docutils literal notranslate"><span class="pre">username</span></code>, <code class="docutils literal notranslate"><span class="pre">created_at</span></code>,
|
<li><p><strong>order</strong> (<em>string</em>) – sorting order: <code class="docutils literal notranslate"><span class="pre">asc</span></code>, <code class="docutils literal notranslate"><span class="pre">desc</span></code> (default: <code class="docutils literal notranslate"><span class="pre">asc</span></code>)</p></li>
|
||||||
<code class="docutils literal notranslate"><span class="pre">workouts_count</span></code>, <code class="docutils literal notranslate"><span class="pre">admin</span></code>, <code class="docutils literal notranslate"><span class="pre">is_active</span></code>)</p></li>
|
<li><p><strong>order_by</strong> (<em>string</em>) – sorting criteria: <code class="docutils literal notranslate"><span class="pre">username</span></code>, <code class="docutils literal notranslate"><span class="pre">created_at</span></code>,
|
||||||
<li><p><strong>order</strong> (<em>string</em>) – sorting order (default: <code class="docutils literal notranslate"><span class="pre">asc</span></code>)</p></li>
|
<code class="docutils literal notranslate"><span class="pre">workouts_count</span></code>, <code class="docutils literal notranslate"><span class="pre">admin</span></code>, <code class="docutils literal notranslate"><span class="pre">is_active</span></code>
|
||||||
|
(default: <code class="docutils literal notranslate"><span class="pre">username</span></code>)</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt class="field-even">Request Headers<span class="colon">:</span></dt>
|
<dt class="field-even">Request Headers<span class="colon">:</span></dt>
|
||||||
@ -660,7 +662,7 @@ one admin.</p>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Workouts — FitTrackee 0.7.2
|
<title>Workouts — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Troubleshooting" href="../troubleshooting/index.html" />
|
<link rel="next" title="Troubleshooting" href="../troubleshooting/index.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -270,7 +271,10 @@
|
|||||||
<li><p><strong>ave_speed_to</strong> (<em>float</em>) – maximal average speed</p></li>
|
<li><p><strong>ave_speed_to</strong> (<em>float</em>) – maximal average speed</p></li>
|
||||||
<li><p><strong>max_speed_from</strong> (<em>float</em>) – minimal max. speed</p></li>
|
<li><p><strong>max_speed_from</strong> (<em>float</em>) – minimal max. speed</p></li>
|
||||||
<li><p><strong>max_speed_to</strong> (<em>float</em>) – maximal max. speed</p></li>
|
<li><p><strong>max_speed_to</strong> (<em>float</em>) – maximal max. speed</p></li>
|
||||||
<li><p><strong>order</strong> (<em>string</em>) – sorting order (default: <code class="docutils literal notranslate"><span class="pre">desc</span></code>)</p></li>
|
<li><p><strong>order</strong> (<em>string</em>) – sorting order: <code class="docutils literal notranslate"><span class="pre">asc</span></code>, <code class="docutils literal notranslate"><span class="pre">desc</span></code> (default: <code class="docutils literal notranslate"><span class="pre">desc</span></code>)</p></li>
|
||||||
|
<li><p><strong>order_by</strong> (<em>string</em>) – sorting criteria: <code class="docutils literal notranslate"><span class="pre">ave_speed</span></code>, <code class="docutils literal notranslate"><span class="pre">distance</span></code>,
|
||||||
|
<code class="docutils literal notranslate"><span class="pre">duration</span></code>, <code class="docutils literal notranslate"><span class="pre">workout_date</span></code> (default:
|
||||||
|
<code class="docutils literal notranslate"><span class="pre">workout_date</span></code>)</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt class="field-even">Request Headers<span class="colon">:</span></dt>
|
<dt class="field-even">Request Headers<span class="colon">:</span></dt>
|
||||||
@ -1173,7 +1177,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Third-party applications — FitTrackee 0.7.2
|
<title>Third-party applications — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<link rel="next" title="Installation" href="installation.html" />
|
<link rel="next" title="Installation" href="installation.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -257,7 +258,7 @@ It is recommended to use PKCE to provide a better security.</p>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Command line interface — FitTrackee 0.7.2
|
<title>Command line interface — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<link rel="next" title="API documentation" href="api/index.html" />
|
<link rel="next" title="API documentation" href="api/index.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -285,7 +286,7 @@ Commands:
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Features — FitTrackee 0.7.2
|
<title>Features — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<link rel="next" title="Third-party applications" href="apps.html" />
|
<link rel="next" title="Third-party applications" href="apps.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -154,9 +155,10 @@
|
|||||||
<h2>Workouts<a class="headerlink" href="#workouts" title="Permalink to this heading">¶</a></h2>
|
<h2>Workouts<a class="headerlink" href="#workouts" title="Permalink to this heading">¶</a></h2>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><dl class="simple">
|
<li><dl class="simple">
|
||||||
<dt>11 sports are supported:</dt><dd><ul>
|
<dt>12 sports are supported:</dt><dd><ul>
|
||||||
<li><p>Cycling (Sport)</p></li>
|
<li><p>Cycling (Sport)</p></li>
|
||||||
<li><p>Cycling (Transport)</p></li>
|
<li><p>Cycling (Transport)</p></li>
|
||||||
|
<li><p>Cycling (Virtual) (<strong>new in 0.7.3</strong>)</p></li>
|
||||||
<li><p>Hiking</p></li>
|
<li><p>Hiking</p></li>
|
||||||
<li><p>Mountain Biking</p></li>
|
<li><p>Mountain Biking</p></li>
|
||||||
<li><p>Mountain Biking (Electric) (<strong>new in 0.5.0</strong>)</p></li>
|
<li><p>Mountain Biking (Electric) (<strong>new in 0.5.0</strong>)</p></li>
|
||||||
@ -257,6 +259,7 @@ A user with an inactive account cannot log in. (<em>new in 0.6.0</em>)</p></li>
|
|||||||
<li><p>A user can change his email address (<em>new in 0.6.0</em>)</p></li>
|
<li><p>A user can change his email address (<em>new in 0.6.0</em>)</p></li>
|
||||||
<li><p>A user can choose between metric system and imperial system for distance, elevation and speed display (<em>new in 0.5.0</em>)</p></li>
|
<li><p>A user can choose between metric system and imperial system for distance, elevation and speed display (<em>new in 0.5.0</em>)</p></li>
|
||||||
<li><p>A user can choose to display or hide ascent records and total on Dashboard (<em>new in 0.6.11</em>)</p></li>
|
<li><p>A user can choose to display or hide ascent records and total on Dashboard (<em>new in 0.6.11</em>)</p></li>
|
||||||
|
<li><p>A user can choose format used to display dates (<em>new in 0.7.3</em>)</p></li>
|
||||||
<li><dl class="simple">
|
<li><dl class="simple">
|
||||||
<dt>A user can set sport preferences (<em>new in 0.5.0</em>):</dt><dd><ul>
|
<dt>A user can set sport preferences (<em>new in 0.5.0</em>):</dt><dd><ul>
|
||||||
<li><p>change sport color (used for sport image and charts)</p></li>
|
<li><p>change sport color (used for sport image and charts)</p></li>
|
||||||
@ -381,7 +384,7 @@ A user with an inactive account cannot log in. (<em>new in 0.6.0</em>)</p></li>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Index — FitTrackee 0.7.2
|
<title>Index — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -14,6 +14,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="#" />
|
<link rel="index" title="Index" href="#" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
@ -38,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -186,7 +187,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>HTTP Routing Table — FitTrackee 0.7.2
|
<title>HTTP Routing Table — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -14,6 +14,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
|
|
||||||
@ -45,7 +46,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -408,7 +409,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>FitTrackee — FitTrackee 0.7.2
|
<title>FitTrackee — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<link rel="next" title="Features" href="features.html" />
|
<link rel="next" title="Features" href="features.html" />
|
||||||
@ -40,7 +41,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="#">
|
<a class="navbar-brand" href="#">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -178,7 +179,7 @@ Map</a>.</div>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Installation — FitTrackee 0.7.2
|
<title>Installation — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="search.html" />
|
<link rel="search" title="Search" href="search.html" />
|
||||||
<link rel="next" title="Command line interface" href="cli.html" />
|
<link rel="next" title="Command line interface" href="cli.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -668,11 +669,17 @@ Commands:
|
|||||||
<li><p>Create <code class="docutils literal notranslate"><span class="pre">fittrackee</span></code> database</p></li>
|
<li><p>Create <code class="docutils literal notranslate"><span class="pre">fittrackee</span></code> database</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Example :</p>
|
<p>Example :</p>
|
||||||
<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="n">fittrackee</span><span class="p">;</span><span class="w"></span>
|
<div class="highlight-sql notranslate"><div class="highlight"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">fittrackee</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'<PASSWORD>'</span><span class="p">;</span><span class="w"></span>
|
||||||
<span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">fittrackee</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'<PASSWORD>'</span><span class="p">;</span><span class="w"></span>
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">SCHEMA</span><span class="w"> </span><span class="n">fittrackee</span><span class="w"> </span><span class="k">AUTHORIZATION</span><span class="w"> </span><span class="n">fittrackee</span><span class="p">;</span><span class="w"></span>
|
||||||
<span class="k">GRANT</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="n">fittrackee</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">fittrackee</span><span class="p">;</span><span class="w"></span>
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="n">fittrackee</span><span class="w"> </span><span class="k">OWNER</span><span class="w"> </span><span class="n">fittrackee</span><span class="p">;</span><span class="w"></span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="admonition note">
|
||||||
|
<p class="admonition-title">Note</p>
|
||||||
|
<div class="line-block">
|
||||||
|
<div class="line">see PostgreSQL <a class="reference external" href="https://www.postgresql.org/docs/15/ddl-schemas.html">documentation</a> for schema and privileges.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>Initialize environment variables, see <a class="reference external" href="installation.html#environment-variables">Environment variables</a></p></li>
|
<li><p>Initialize environment variables, see <a class="reference external" href="installation.html#environment-variables">Environment variables</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -787,11 +794,11 @@ $ make install-db
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>Download the last release (for now, it is the release v0.7.2):</p></li>
|
<li><p>Download the last release (for now, it is the release v0.7.3):</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.2.tar.gz
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
|
||||||
$ tar -xzf v0.7.2.tar.gz
|
$ tar -xzf v0.7.3.tar.gz
|
||||||
$ mv FitTrackee-0.7.2 FitTrackee
|
$ mv FitTrackee-0.7.3 FitTrackee
|
||||||
$ <span class="nb">cd</span> FitTrackee
|
$ <span class="nb">cd</span> FitTrackee
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
@ -911,11 +918,11 @@ $ <span class="nb">source</span> .env
|
|||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>Stop the application</p></li>
|
<li><p>Stop the application</p></li>
|
||||||
<li><p>Change to the directory where FitTrackee directory is located</p></li>
|
<li><p>Change to the directory where FitTrackee directory is located</p></li>
|
||||||
<li><p>Download the last release (for now, it is the release v0.7.2) and overwrite existing files:</p></li>
|
<li><p>Download the last release (for now, it is the release v0.7.3) and overwrite existing files:</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.2.tar.gz
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
|
||||||
$ tar -xzf v0.7.2.tar.gz
|
$ tar -xzf v0.7.3.tar.gz
|
||||||
$ cp -R FitTrackee-0.7.2/* FitTrackee/
|
$ cp -R FitTrackee-0.7.3/* FitTrackee/
|
||||||
$ <span class="nb">cd</span> FitTrackee
|
$ <span class="nb">cd</span> FitTrackee
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
@ -1166,7 +1173,7 @@ $ make docker-test-python <span class="c1"># run unit tests on API</span>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
BIN
docs/objects.inv
@ -4,7 +4,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Search — FitTrackee 0.7.2
|
<title>Search — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
|
||||||
@ -14,6 +14,7 @@
|
|||||||
<script src="_static/underscore.js"></script>
|
<script src="_static/underscore.js"></script>
|
||||||
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="_static/doctools.js"></script>
|
<script src="_static/doctools.js"></script>
|
||||||
|
<script src="_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="genindex.html" />
|
<link rel="index" title="Index" href="genindex.html" />
|
||||||
<link rel="search" title="Search" href="#" />
|
<link rel="search" title="Search" href="#" />
|
||||||
<script type="text/javascript" src="_static/searchtools.js"></script>
|
<script type="text/javascript" src="_static/searchtools.js"></script>
|
||||||
@ -45,7 +46,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="index.html">
|
<a class="navbar-brand" href="index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -152,7 +153,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Administrator — FitTrackee 0.7.2
|
<title>Administrator — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="User" href="user.html" />
|
<link rel="next" title="User" href="user.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -172,7 +173,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>Troubleshooting — FitTrackee 0.7.2
|
<title>Troubleshooting — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Administrator" href="administrator.html" />
|
<link rel="next" title="Administrator" href="administrator.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -155,7 +156,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
|
||||||
|
|
||||||
<title>User — FitTrackee 0.7.2
|
<title>User — FitTrackee 0.7.3
|
||||||
documentation</title>
|
documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
|
||||||
@ -15,6 +15,7 @@
|
|||||||
<script src="../_static/underscore.js"></script>
|
<script src="../_static/underscore.js"></script>
|
||||||
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
|
||||||
<script src="../_static/doctools.js"></script>
|
<script src="../_static/doctools.js"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Change log" href="../changelog.html" />
|
<link rel="next" title="Change log" href="../changelog.html" />
|
||||||
@ -41,7 +42,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="../index.html">
|
<a class="navbar-brand" href="../index.html">
|
||||||
FitTrackee</a>
|
FitTrackee</a>
|
||||||
<span class="navbar-text navbar-version pull-left"><b>0.7.2
|
<span class="navbar-text navbar-version pull-left"><b>0.7.3
|
||||||
</b></span>
|
</b></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -146,7 +147,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2022, SamR1.<br/>
|
© Copyright 2018 - 2022, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.1.1.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
Before Width: | Height: | Size: 550 KiB After Width: | Height: | Size: 549 KiB |
Before Width: | Height: | Size: 372 KiB After Width: | Height: | Size: 372 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
@ -11,9 +11,10 @@ With the default configuration, `Open Street Map <https://www.openstreetmap.org>
|
|||||||
|
|
||||||
Workouts
|
Workouts
|
||||||
^^^^^^^^
|
^^^^^^^^
|
||||||
- 11 sports are supported:
|
- 12 sports are supported:
|
||||||
- Cycling (Sport)
|
- Cycling (Sport)
|
||||||
- Cycling (Transport)
|
- Cycling (Transport)
|
||||||
|
- Cycling (Virtual) (**new in 0.7.3**)
|
||||||
- Hiking
|
- Hiking
|
||||||
- Mountain Biking
|
- Mountain Biking
|
||||||
- Mountain Biking (Electric) (**new in 0.5.0**)
|
- Mountain Biking (Electric) (**new in 0.5.0**)
|
||||||
@ -81,6 +82,7 @@ Account & preferences
|
|||||||
- A user can change his email address (*new in 0.6.0*)
|
- A user can change his email address (*new in 0.6.0*)
|
||||||
- A user can choose between metric system and imperial system for distance, elevation and speed display (*new in 0.5.0*)
|
- A user can choose between metric system and imperial system for distance, elevation and speed display (*new in 0.5.0*)
|
||||||
- A user can choose to display or hide ascent records and total on Dashboard (*new in 0.6.11*)
|
- A user can choose to display or hide ascent records and total on Dashboard (*new in 0.6.11*)
|
||||||
|
- A user can choose format used to display dates (*new in 0.7.3*)
|
||||||
- A user can set sport preferences (*new in 0.5.0*):
|
- A user can set sport preferences (*new in 0.5.0*):
|
||||||
- change sport color (used for sport image and charts)
|
- change sport color (used for sport image and charts)
|
||||||
- can override stopped speed threshold (for next uploaded gpx files)
|
- can override stopped speed threshold (for next uploaded gpx files)
|
||||||
|
@ -364,9 +364,12 @@ Example :
|
|||||||
|
|
||||||
.. code-block:: sql
|
.. code-block:: sql
|
||||||
|
|
||||||
CREATE DATABASE fittrackee;
|
|
||||||
CREATE USER fittrackee WITH PASSWORD '<PASSWORD>';
|
CREATE USER fittrackee WITH PASSWORD '<PASSWORD>';
|
||||||
GRANT ALL PRIVILEGES ON DATABASE fittrackee TO fittrackee;
|
CREATE SCHEMA fittrackee AUTHORIZATION fittrackee;
|
||||||
|
CREATE DATABASE fittrackee OWNER fittrackee;
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
| see PostgreSQL `documentation <https://www.postgresql.org/docs/15/ddl-schemas.html>`_ for schema and privileges.
|
||||||
|
|
||||||
- Initialize environment variables, see `Environment variables <installation.html#environment-variables>`__
|
- Initialize environment variables, see `Environment variables <installation.html#environment-variables>`__
|
||||||
|
|
||||||
@ -477,13 +480,13 @@ Production environment
|
|||||||
.. warning::
|
.. warning::
|
||||||
| Note that FitTrackee is under heavy development, some features may be unstable.
|
| Note that FitTrackee is under heavy development, some features may be unstable.
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.7.2):
|
- Download the last release (for now, it is the release v0.7.3):
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.2.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
|
||||||
$ tar -xzf v0.7.2.tar.gz
|
$ tar -xzf v0.7.3.tar.gz
|
||||||
$ mv FitTrackee-0.7.2 FitTrackee
|
$ mv FitTrackee-0.7.3 FitTrackee
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Create **.env** from example and update it
|
- Create **.env** from example and update it
|
||||||
@ -603,13 +606,13 @@ Prod environment
|
|||||||
|
|
||||||
- Change to the directory where FitTrackee directory is located
|
- Change to the directory where FitTrackee directory is located
|
||||||
|
|
||||||
- Download the last release (for now, it is the release v0.7.2) and overwrite existing files:
|
- Download the last release (for now, it is the release v0.7.3) and overwrite existing files:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.2.tar.gz
|
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
|
||||||
$ tar -xzf v0.7.2.tar.gz
|
$ tar -xzf v0.7.3.tar.gz
|
||||||
$ cp -R FitTrackee-0.7.2/* FitTrackee/
|
$ cp -R FitTrackee-0.7.3/* FitTrackee/
|
||||||
$ cd FitTrackee
|
$ cd FitTrackee
|
||||||
|
|
||||||
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).
|
||||||
|
@ -25,7 +25,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
|
|||||||
from fittrackee.emails.email import EmailService
|
from fittrackee.emails.email import EmailService
|
||||||
from fittrackee.request import CustomRequest
|
from fittrackee.request import CustomRequest
|
||||||
|
|
||||||
VERSION = __version__ = '0.7.2'
|
VERSION = __version__ = '0.7.3'
|
||||||
REDIS_URL = os.getenv('REDIS_URL', 'redis://')
|
REDIS_URL = os.getenv('REDIS_URL', 'redis://')
|
||||||
API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split(
|
API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split(
|
||||||
','
|
','
|
||||||
|
@ -48,7 +48,7 @@ def get_application_config() -> Union[Dict, HttpResponse]:
|
|||||||
"max_users": 0,
|
"max_users": 0,
|
||||||
"max_zip_file_size": 10485760,
|
"max_zip_file_size": 10485760,
|
||||||
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
||||||
"version": "0.7.2"
|
"version": "0.7.3"
|
||||||
},
|
},
|
||||||
"status": "success"
|
"status": "success"
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]:
|
|||||||
"max_users": 10,
|
"max_users": 10,
|
||||||
"max_zip_file_size": 10485760,
|
"max_zip_file_size": 10485760,
|
||||||
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
"map_attribution": "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
|
||||||
"version": "0.7.2"
|
"version": "0.7.3"
|
||||||
},
|
},
|
||||||
"status": "success"
|
"status": "success"
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,12 @@ class BaseConfig:
|
|||||||
TRANSLATIONS_FOLDER = os.path.join(
|
TRANSLATIONS_FOLDER = os.path.join(
|
||||||
current_app.root_path, 'emails/translations'
|
current_app.root_path, 'emails/translations'
|
||||||
)
|
)
|
||||||
LANGUAGES = ['en', 'fr', 'de']
|
LANGUAGES = [
|
||||||
|
'en',
|
||||||
|
'fr',
|
||||||
|
'de',
|
||||||
|
# 'nb', # disabled for now
|
||||||
|
]
|
||||||
OAUTH2_TOKEN_EXPIRES_IN = {
|
OAUTH2_TOKEN_EXPIRES_IN = {
|
||||||
'authorization_code': 864000, # 10 days
|
'authorization_code': 864000, # 10 days
|
||||||
}
|
}
|
||||||
|
2
fittrackee/dist/index.html
vendored
@ -1 +1 @@
|
|||||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.e9c5b3a5.js"></script><script defer="defer" src="/static/js/app.fd9b98d6.js"></script><link href="/static/css/app.eee1934d.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.50f5c7a2.js"></script><script defer="defer" src="/static/js/app.f7049224.js"></script><link href="/static/css/app.564b9516.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
2
fittrackee/dist/service-worker.js
vendored
2
fittrackee/dist/service-worker.js.map
vendored
1
fittrackee/dist/static/css/workouts.41709693.css
vendored
Normal file
7
fittrackee/dist/static/js/243.27c8fef5.js
vendored
7
fittrackee/dist/static/js/243.e551248f.js
vendored
Normal file
1
fittrackee/dist/static/js/243.e551248f.js.map
vendored
Normal file
7
fittrackee/dist/static/js/633.81a8ddc8.js
vendored
Normal file
1
fittrackee/dist/static/js/633.81a8ddc8.js.map
vendored
Normal file
7
fittrackee/dist/static/js/633.9a092c9a.js
vendored
@ -1,2 +1,2 @@
|
|||||||
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[328],{6e3:function(t,e,i){i.r(e),i.d(e,{default:function(){return _}});var a=i(6252),n=i(2262),s=i(8273),c=i(5801),r=i(9917);const S=t=>((0,a.dD)("data-v-64629971"),t=t(),(0,a.Cn)(),t),l={id:"admin",class:"view"},p={key:0,class:"container"},u=S((()=>(0,a._)("div",{id:"bottom"},null,-1)));var T=(0,a.aZ)({__name:"AdminView",setup(t){const e=(0,r.o)(),i=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_CONFIG])),S=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_STATS])),T=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.IS_ADMIN])),d=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.USER_LOADING]));return(0,a.wF)((()=>e.dispatch(c.SY.ACTIONS.GET_APPLICATION_STATS))),(t,e)=>{const c=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",l,[(0,n.SU)(d)?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",p,[(0,n.SU)(T)?((0,a.wg)(),(0,a.j4)(c,{key:0,appConfig:(0,n.SU)(i),appStatistics:(0,n.SU)(S)},null,8,["appConfig","appStatistics"])):((0,a.wg)(),(0,a.j4)(s.Z,{key:1})),u]))])}}}),d=i(3744);const o=(0,d.Z)(T,[["__scopeId","data-v-64629971"]]);var _=o}}]);
|
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[328],{6e3:function(t,e,i){i.r(e),i.d(e,{default:function(){return _}});var a=i(6252),n=i(2262),s=i(8273),c=i(5801),r=i(9917);const S=t=>((0,a.dD)("data-v-64629971"),t=t(),(0,a.Cn)(),t),l={id:"admin",class:"view"},p={key:0,class:"container"},u=S((()=>(0,a._)("div",{id:"bottom"},null,-1)));var T=(0,a.aZ)({__name:"AdminView",setup(t){const e=(0,r.o)(),i=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_CONFIG])),S=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_STATS])),T=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.IS_ADMIN])),d=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.USER_LOADING]));return(0,a.wF)((()=>e.dispatch(c.SY.ACTIONS.GET_APPLICATION_STATS))),(t,e)=>{const c=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",l,[(0,n.SU)(d)?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",p,[(0,n.SU)(T)?((0,a.wg)(),(0,a.j4)(c,{key:0,appConfig:(0,n.SU)(i),appStatistics:(0,n.SU)(S)},null,8,["appConfig","appStatistics"])):((0,a.wg)(),(0,a.j4)(s.Z,{key:1})),u]))])}}}),d=i(3744);const o=(0,d.Z)(T,[["__scopeId","data-v-64629971"]]);var _=o}}]);
|
||||||
//# sourceMappingURL=admin.ab9e5f5f.js.map
|
//# sourceMappingURL=admin.9bc68088.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"static/js/admin.ab9e5f5f.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,MAVR,CAeD,I,UCvDD,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","sources":["webpack://fittrackee_client/./src/views/AdminView.vue?67de","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef<TAppConfig> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appStatistics: ComputedRef<IAppStatistics> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""}
|
{"version":3,"file":"static/js/admin.9bc68088.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,MAGN,CAEJ,I,UCvDA,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","sources":["webpack://fittrackee_client/./src/views/AdminView.vue?67de","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef<TAppConfig> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appStatistics: ComputedRef<IAppStatistics> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""}
|
2
fittrackee/dist/static/js/app.f7049224.js
vendored
Normal file
1
fittrackee/dist/static/js/app.f7049224.js.map
vendored
Normal file
2
fittrackee/dist/static/js/app.fd9b98d6.js
vendored
67
fittrackee/dist/static/js/chunk-vendors.50f5c7a2.js
vendored
Normal file
1
fittrackee/dist/static/js/chunk-vendors.50f5c7a2.js.map
vendored
Normal file
@ -1,2 +1,2 @@
|
|||||||
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[845],{4264:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});r(7658);var n=r(6252),a=r(2262),s=r(3577),u=r(2201),o=r(7167),i=r(5801),c=r(9917);const l={key:0,id:"account-confirmation",class:"center-card with-margin"},E={class:"error-message"};var _=(0,n.aZ)({__name:"AccountConfirmationView",setup(e){const t=(0,u.yj)(),r=(0,u.tv)(),_=(0,c.o)(),d=(0,n.Fl)((()=>_.getters[i.SY.GETTERS.ERROR_MESSAGES])),S=(0,n.Fl)((()=>t.query.token));function m(){S.value?_.dispatch(i.YN.ACTIONS.CONFIRM_ACCOUNT,{token:S.value}):r.push("/")}return(0,n.wF)((()=>m())),(0,n.Ah)((()=>_.commit(i.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,t)=>{const r=(0,n.up)("router-link");return(0,a.SU)(d)?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(o.Z),(0,n._)("p",E,[(0,n._)("span",null,(0,s.zw)(e.$t("error.SOMETHING_WRONG"))+".",1),(0,n.Wm)(r,{class:"links",to:"/account-confirmation/resend"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,s.zw)(e.$t("buttons.ACCOUNT-CONFIRMATION-RESEND"))+"? ",1)])),_:1})])])):(0,n.kq)("",!0)}}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-785df978"]]);var m=S},8160:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});r(7658);var n=r(6252),a=r(2262),s=r(3577),u=r(2201),o=r(7167),i=r(5801),c=r(9917);const l={key:0,id:"email-update",class:"center-card with-margin"},E={class:"error-message"};var _=(0,n.aZ)({__name:"EmailUpdateView",setup(e){const t=(0,u.yj)(),r=(0,u.tv)(),_=(0,c.o)(),d=(0,n.Fl)((()=>_.getters[i.YN.GETTERS.AUTH_USER_PROFILE])),S=(0,n.Fl)((()=>_.getters[i.YN.GETTERS.IS_AUTHENTICATED])),m=(0,n.Fl)((()=>_.getters[i.SY.GETTERS.ERROR_MESSAGES])),p=(0,n.Fl)((()=>t.query.token));function R(){p.value?_.dispatch(i.YN.ACTIONS.CONFIRM_EMAIL,{token:p.value,refreshUser:S.value}):r.push("/")}return(0,n.wF)((()=>R())),(0,n.Ah)((()=>_.commit(i.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,n.YP)((()=>m.value),(e=>{d.value.username&&e&&r.push("/")})),(e,t)=>{const r=(0,n.up)("router-link"),u=(0,n.up)("i18n-t");return(0,a.SU)(m)&&!(0,a.SU)(d).username?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(o.Z),(0,n._)("p",E,[(0,n._)("span",null,(0,s.zw)(e.$t("error.SOMETHING_WRONG"))+".",1),(0,n._)("span",null,[(0,n.Wm)(u,{keypath:"user.PROFILE.ERRORED_EMAIL_UPDATE"},{default:(0,n.w5)((()=>[(0,n.Wm)(r,{to:"/login"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,s.zw)(e.$t("user.LOG_IN")),1)])),_:1})])),_:1})])])])):(0,n.kq)("",!0)}}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-8c2ec9ce"]]);var m=S},6266:function(e,t,r){r.r(t),r.d(t,{default:function(){return d}});var n=r(6252),a=r(2262),s=r(5801),u=r(9917);const o=e=>((0,n.dD)("data-v-05463732"),e=e(),(0,n.Cn)(),e),i={key:0,id:"profile",class:"container view"},c=o((()=>(0,n._)("div",{id:"bottom"},null,-1)));var l=(0,n.aZ)({__name:"ProfileView",setup(e){const t=(0,u.o)(),r=(0,n.Fl)((()=>t.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const s=(0,n.up)("router-view");return(0,a.SU)(r).username?((0,n.wg)(),(0,n.iD)("div",i,[(0,n.Wm)(s,{user:(0,a.SU)(r)},null,8,["user"]),c])):(0,n.kq)("",!0)}}}),E=r(3744);const _=(0,E.Z)(l,[["__scopeId","data-v-05463732"]]);var d=_},9453:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});var n=r(6252),a=r(2262),s=r(2201),u=r(2179),o=r(7408),i=r(5801),c=r(9917);const l={key:0,id:"user",class:"view"},E={class:"box"};var _=(0,n.aZ)({__name:"UserView",props:{fromAdmin:{type:Boolean}},setup(e){const t=e,{fromAdmin:r}=(0,a.BK)(t),_=(0,s.yj)(),d=(0,c.o)(),S=(0,n.Fl)((()=>d.getters[i.RT.GETTERS.USER]));return(0,n.wF)((()=>{_.params.username&&"string"===typeof _.params.username&&d.dispatch(i.RT.ACTIONS.GET_USER,_.params.username)})),(0,n.Jd)((()=>{d.dispatch(i.RT.ACTIONS.EMPTY_USER)})),(e,t)=>(0,a.SU)(S).username?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(u.Z,{user:(0,a.SU)(S)},null,8,["user"]),(0,n._)("div",E,[(0,n.Wm)(o.Z,{user:(0,a.SU)(S),"from-admin":(0,a.SU)(r)},null,8,["user","from-admin"])])])):(0,n.kq)("",!0)}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-af7007f4"]]);var m=S}}]);
|
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[845],{4264:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});r(7658);var n=r(6252),a=r(2262),s=r(3577),u=r(2201),o=r(7167),i=r(5801),c=r(9917);const l={key:0,id:"account-confirmation",class:"center-card with-margin"},E={class:"error-message"};var _=(0,n.aZ)({__name:"AccountConfirmationView",setup(e){const t=(0,u.yj)(),r=(0,u.tv)(),_=(0,c.o)(),d=(0,n.Fl)((()=>_.getters[i.SY.GETTERS.ERROR_MESSAGES])),S=(0,n.Fl)((()=>t.query.token));function m(){S.value?_.dispatch(i.YN.ACTIONS.CONFIRM_ACCOUNT,{token:S.value}):r.push("/")}return(0,n.wF)((()=>m())),(0,n.Ah)((()=>_.commit(i.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,t)=>{const r=(0,n.up)("router-link");return(0,a.SU)(d)?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(o.Z),(0,n._)("p",E,[(0,n._)("span",null,(0,s.zw)(e.$t("error.SOMETHING_WRONG"))+".",1),(0,n.Wm)(r,{class:"links",to:"/account-confirmation/resend"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,s.zw)(e.$t("buttons.ACCOUNT-CONFIRMATION-RESEND"))+"? ",1)])),_:1})])])):(0,n.kq)("",!0)}}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-785df978"]]);var m=S},8160:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});r(7658);var n=r(6252),a=r(2262),s=r(3577),u=r(2201),o=r(7167),i=r(5801),c=r(9917);const l={key:0,id:"email-update",class:"center-card with-margin"},E={class:"error-message"};var _=(0,n.aZ)({__name:"EmailUpdateView",setup(e){const t=(0,u.yj)(),r=(0,u.tv)(),_=(0,c.o)(),d=(0,n.Fl)((()=>_.getters[i.YN.GETTERS.AUTH_USER_PROFILE])),S=(0,n.Fl)((()=>_.getters[i.YN.GETTERS.IS_AUTHENTICATED])),m=(0,n.Fl)((()=>_.getters[i.SY.GETTERS.ERROR_MESSAGES])),p=(0,n.Fl)((()=>t.query.token));function R(){p.value?_.dispatch(i.YN.ACTIONS.CONFIRM_EMAIL,{token:p.value,refreshUser:S.value}):r.push("/")}return(0,n.wF)((()=>R())),(0,n.Ah)((()=>_.commit(i.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,n.YP)((()=>m.value),(e=>{d.value.username&&e&&r.push("/")})),(e,t)=>{const r=(0,n.up)("router-link"),u=(0,n.up)("i18n-t");return(0,a.SU)(m)&&!(0,a.SU)(d).username?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(o.Z),(0,n._)("p",E,[(0,n._)("span",null,(0,s.zw)(e.$t("error.SOMETHING_WRONG"))+".",1),(0,n._)("span",null,[(0,n.Wm)(u,{keypath:"user.PROFILE.ERRORED_EMAIL_UPDATE"},{default:(0,n.w5)((()=>[(0,n.Wm)(r,{to:"/login"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,s.zw)(e.$t("user.LOG_IN")),1)])),_:1})])),_:1})])])])):(0,n.kq)("",!0)}}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-8c2ec9ce"]]);var m=S},6266:function(e,t,r){r.r(t),r.d(t,{default:function(){return d}});var n=r(6252),a=r(2262),s=r(5801),u=r(9917);const o=e=>((0,n.dD)("data-v-05463732"),e=e(),(0,n.Cn)(),e),i={key:0,id:"profile",class:"container view"},c=o((()=>(0,n._)("div",{id:"bottom"},null,-1)));var l=(0,n.aZ)({__name:"ProfileView",setup(e){const t=(0,u.o)(),r=(0,n.Fl)((()=>t.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const s=(0,n.up)("router-view");return(0,a.SU)(r).username?((0,n.wg)(),(0,n.iD)("div",i,[(0,n.Wm)(s,{user:(0,a.SU)(r)},null,8,["user"]),c])):(0,n.kq)("",!0)}}}),E=r(3744);const _=(0,E.Z)(l,[["__scopeId","data-v-05463732"]]);var d=_},9453:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});var n=r(6252),a=r(2262),s=r(2201),u=r(2179),o=r(1585),i=r(5801),c=r(9917);const l={key:0,id:"user",class:"view"},E={class:"box"};var _=(0,n.aZ)({__name:"UserView",props:{fromAdmin:{type:Boolean}},setup(e){const t=e,{fromAdmin:r}=(0,a.BK)(t),_=(0,s.yj)(),d=(0,c.o)(),S=(0,n.Fl)((()=>d.getters[i.RT.GETTERS.USER]));return(0,n.wF)((()=>{_.params.username&&"string"===typeof _.params.username&&d.dispatch(i.RT.ACTIONS.GET_USER,_.params.username)})),(0,n.Jd)((()=>{d.dispatch(i.RT.ACTIONS.EMPTY_USER)})),(e,t)=>(0,a.SU)(S).username?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(u.Z,{user:(0,a.SU)(S)},null,8,["user"]),(0,n._)("div",E,[(0,n.Wm)(o.Z,{user:(0,a.SU)(S),"from-admin":(0,a.SU)(r)},null,8,["user","from-admin"])])])):(0,n.kq)("",!0)}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-af7007f4"]]);var m=S}}]);
|
||||||
//# sourceMappingURL=profile.dd30724d.js.map
|
//# sourceMappingURL=profile.430ae7df.js.map
|
1
fittrackee/dist/static/js/profile.430ae7df.js.map
vendored
Normal file
1
fittrackee/dist/static/js/reset.d9073cf1.js.map
vendored
Normal file
@ -1,2 +1,2 @@
|
|||||||
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[193],{7885:function(e,s,t){t.r(s),t.d(s,{default:function(){return A}});var a=t(6252),r=t(2262),l=t(3577),o=(t(7658),t(9150)),n=t(4998);const c={class:"chart-menu"},i={class:"chart-arrow"},u={class:"time-frames custom-checkboxes-group"},d={class:"time-frames-checkboxes custom-checkboxes"},p=["id","name","checked","onInput"],m={class:"chart-arrow"};var v=(0,a.aZ)({__name:"StatsMenu",emits:["arrowClick","timeFrameUpdate"],setup(e,{emit:s}){const t=(0,r.iH)("month"),o=["week","month","year"];function n(e){t.value=e,s("timeFrameUpdate",e)}return(e,r)=>((0,a.wg)(),(0,a.iD)("div",c,[(0,a._)("div",i,[(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true",onClick:r[0]||(r[0]=e=>s("arrowClick",!0))})]),(0,a._)("div",u,[(0,a._)("div",d,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(o,(s=>(0,a._)("div",{class:"time-frame custom-checkbox",key:s},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:s,name:s,checked:t.value===s,onInput:e=>n(s)},null,40,p),(0,a._)("span",null,(0,l.zw)(e.$t(`statistics.TIME_FRAMES.${s}`)),1)])]))),64))])]),(0,a._)("div",m,[(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true",onClick:r[1]||(r[1]=e=>s("arrowClick",!1))})])]))}}),k=t(3744);const _=(0,k.Z)(v,[["__scopeId","data-v-22d55de2"]]);var S=_,w=t(631);const f={class:"sports-menu"},h=["id","name","checked","onInput"],U={class:"sport-label"};var b=(0,a.aZ)({__name:"StatsSportsMenu",props:{userSports:null,selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:s}){const t=e,{t:n}=(0,o.QT)(),c=(0,a.f3)("sportColors"),{selectedSportIds:i}=(0,r.BK)(t),u=(0,a.Fl)((()=>(0,w.xH)(t.userSports,n)));function d(e){s("selectedSportIdsUpdate",e)}return(e,s)=>{const t=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",f,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,r.SU)(u),(e=>((0,a.wg)(),(0,a.iD)("label",{type:"checkbox",key:e.id,style:(0,l.j5)({color:e.color?e.color:(0,r.SU)(c)[e.label]})},[(0,a._)("input",{type:"checkbox",id:e.id,name:e.label,checked:(0,r.SU)(i).includes(e.id),onInput:s=>d(e.id)},null,40,h),(0,a.Wm)(t,{"sport-label":e.label,color:e.color},null,8,["sport-label","color"]),(0,a._)("span",U,(0,l.zw)(e.translatedLabel),1)],4)))),128))])}}});const I=b;var g=I,T=t(9318);const y={key:0,id:"user-statistics"};var C=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const s=e,{t:t}=(0,o.QT)(),{sports:l,user:c}=(0,r.BK)(s),i=(0,r.iH)("month"),u=(0,r.iH)(v(i.value)),d=(0,a.Fl)((()=>(0,w.xH)(s.sports,t))),p=(0,r.iH)(_(s.sports));function m(e){i.value=e,u.value=v(i.value)}function v(e){return(0,T.aZ)(new Date,e,s.user.weekm)}function k(e){u.value=(0,T.FN)(u.value,e,s.user.weekm)}function _(e){return e.map((e=>e.id))}function f(e){p.value.includes(e)?p.value=p.value.filter((s=>s!==e)):p.value.push(e)}return(0,a.YP)((()=>s.sports),(e=>{p.value=_(e)})),(e,s)=>(0,r.SU)(d)?((0,a.wg)(),(0,a.iD)("div",y,[(0,a.Wm)(S,{onTimeFrameUpdate:m,onArrowClick:k}),(0,a.Wm)(n.Z,{sports:(0,r.SU)(l),user:(0,r.SU)(c),chartParams:u.value,"displayed-sport-ids":p.value,fullStats:!0},null,8,["sports","user","chartParams","displayed-sport-ids"]),(0,a.Wm)(g,{"selected-sport-ids":p.value,"user-sports":(0,r.SU)(l),onSelectedSportIdsUpdate:f},null,8,["selected-sport-ids","user-sports"])])):(0,a.kq)("",!0)}});const F=(0,k.Z)(C,[["__scopeId","data-v-30799d13"]]);var Z=F,x=t(5630),D=t(5801),H=t(9917);const E={id:"statistics",class:"view"},R={key:0,class:"container"};var W=(0,a.aZ)({__name:"StatisticsView",setup(e){const s=(0,H.o)(),t=(0,a.Fl)((()=>s.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),o=(0,a.Fl)((()=>s.getters[D.O8.GETTERS.SPORTS].filter((e=>t.value.sports_list.includes(e.id)))));return(e,s)=>{const n=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",E,[(0,r.SU)(t).username?((0,a.wg)(),(0,a.iD)("div",R,[(0,a.Wm)(n,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,l.zw)(e.$t("statistics.STATISTICS")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Z,{class:(0,l.C_)({"stats-disabled":0===(0,r.SU)(t).nb_workouts}),user:(0,r.SU)(t),sports:(0,r.SU)(o)},null,8,["class","user","sports"])])),_:1}),0===(0,r.SU)(t).nb_workouts?((0,a.wg)(),(0,a.j4)(x.Z,{key:0})):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])}}});const P=(0,k.Z)(W,[["__scopeId","data-v-2e341d4e"]]);var A=P}}]);
|
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[193],{7885:function(e,s,t){t.r(s),t.d(s,{default:function(){return A}});var a=t(6252),r=t(2262),l=t(3577),o=(t(7658),t(9150)),n=t(3170);const c={class:"chart-menu"},i={class:"chart-arrow"},u={class:"time-frames custom-checkboxes-group"},d={class:"time-frames-checkboxes custom-checkboxes"},p=["id","name","checked","onInput"],m={class:"chart-arrow"};var v=(0,a.aZ)({__name:"StatsMenu",emits:["arrowClick","timeFrameUpdate"],setup(e,{emit:s}){const t=(0,r.iH)("month"),o=["week","month","year"];function n(e){t.value=e,s("timeFrameUpdate",e)}return(e,r)=>((0,a.wg)(),(0,a.iD)("div",c,[(0,a._)("div",i,[(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true",onClick:r[0]||(r[0]=e=>s("arrowClick",!0))})]),(0,a._)("div",u,[(0,a._)("div",d,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(o,(s=>(0,a._)("div",{class:"time-frame custom-checkbox",key:s},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:s,name:s,checked:t.value===s,onInput:e=>n(s)},null,40,p),(0,a._)("span",null,(0,l.zw)(e.$t(`statistics.TIME_FRAMES.${s}`)),1)])]))),64))])]),(0,a._)("div",m,[(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true",onClick:r[1]||(r[1]=e=>s("arrowClick",!1))})])]))}}),k=t(3744);const _=(0,k.Z)(v,[["__scopeId","data-v-22d55de2"]]);var S=_,w=t(631);const f={class:"sports-menu"},h=["id","name","checked","onInput"],U={class:"sport-label"};var b=(0,a.aZ)({__name:"StatsSportsMenu",props:{userSports:null,selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:s}){const t=e,{t:n}=(0,o.QT)(),c=(0,a.f3)("sportColors"),{selectedSportIds:i}=(0,r.BK)(t),u=(0,a.Fl)((()=>(0,w.xH)(t.userSports,n)));function d(e){s("selectedSportIdsUpdate",e)}return(e,s)=>{const t=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",f,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,r.SU)(u),(e=>((0,a.wg)(),(0,a.iD)("label",{type:"checkbox",key:e.id,style:(0,l.j5)({color:e.color?e.color:(0,r.SU)(c)[e.label]})},[(0,a._)("input",{type:"checkbox",id:e.id,name:e.label,checked:(0,r.SU)(i).includes(e.id),onInput:s=>d(e.id)},null,40,h),(0,a.Wm)(t,{"sport-label":e.label,color:e.color},null,8,["sport-label","color"]),(0,a._)("span",U,(0,l.zw)(e.translatedLabel),1)],4)))),128))])}}});const I=b;var g=I,T=t(9318);const y={key:0,id:"user-statistics"};var C=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const s=e,{t:t}=(0,o.QT)(),{sports:l,user:c}=(0,r.BK)(s),i=(0,r.iH)("month"),u=(0,r.iH)(v(i.value)),d=(0,a.Fl)((()=>(0,w.xH)(s.sports,t))),p=(0,r.iH)(_(s.sports));function m(e){i.value=e,u.value=v(i.value)}function v(e){return(0,T.aZ)(new Date,e,s.user.weekm)}function k(e){u.value=(0,T.FN)(u.value,e,s.user.weekm)}function _(e){return e.map((e=>e.id))}function f(e){p.value.includes(e)?p.value=p.value.filter((s=>s!==e)):p.value.push(e)}return(0,a.YP)((()=>s.sports),(e=>{p.value=_(e)})),(e,s)=>(0,r.SU)(d)?((0,a.wg)(),(0,a.iD)("div",y,[(0,a.Wm)(S,{onTimeFrameUpdate:m,onArrowClick:k}),(0,a.Wm)(n.Z,{sports:(0,r.SU)(l),user:(0,r.SU)(c),chartParams:u.value,"displayed-sport-ids":p.value,fullStats:!0},null,8,["sports","user","chartParams","displayed-sport-ids"]),(0,a.Wm)(g,{"selected-sport-ids":p.value,"user-sports":(0,r.SU)(l),onSelectedSportIdsUpdate:f},null,8,["selected-sport-ids","user-sports"])])):(0,a.kq)("",!0)}});const F=(0,k.Z)(C,[["__scopeId","data-v-30799d13"]]);var Z=F,x=t(5630),D=t(5801),H=t(9917);const E={id:"statistics",class:"view"},R={key:0,class:"container"};var W=(0,a.aZ)({__name:"StatisticsView",setup(e){const s=(0,H.o)(),t=(0,a.Fl)((()=>s.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),o=(0,a.Fl)((()=>s.getters[D.O8.GETTERS.SPORTS].filter((e=>t.value.sports_list.includes(e.id)))));return(e,s)=>{const n=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",E,[(0,r.SU)(t).username?((0,a.wg)(),(0,a.iD)("div",R,[(0,a.Wm)(n,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,l.zw)(e.$t("statistics.STATISTICS")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Z,{class:(0,l.C_)({"stats-disabled":0===(0,r.SU)(t).nb_workouts}),user:(0,r.SU)(t),sports:(0,r.SU)(o)},null,8,["class","user","sports"])])),_:1}),0===(0,r.SU)(t).nb_workouts?((0,a.wg)(),(0,a.j4)(x.Z,{key:0})):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])}}});const P=(0,k.Z)(W,[["__scopeId","data-v-2e341d4e"]]);var A=P}}]);
|
||||||
//# sourceMappingURL=statistics.61163b0e.js.map
|
//# sourceMappingURL=statistics.c9a8011a.js.map
|