Merge branch 'master' into v0.3.0
Conflicts: docs/objects.inv docs/searchindex.js fittrackee_api/poetry.lock fittrackee_api/pyproject.toml fittrackee_client/src/actions/index.js fittrackee_client/src/components/App.jsx fittrackee_client/src/utils/index.js
12
CHANGELOG.md
@ -1,5 +1,17 @@
|
||||
# Change log
|
||||
|
||||
## Version 0.2.5 - Fix and improvements (2020/01/31)
|
||||
|
||||
### Misc
|
||||
|
||||
This version contains minor fix and improvements on client side:
|
||||
* [4c3fc34](https://github.com/SamR1/FitTrackee/commit/4c3fc343d51b9c27d3ebab71df648bcf7d7bae59) - empty user data on logout
|
||||
* [34614d5](https://github.com/SamR1/FitTrackee/commit/34614d5a6c29f4911d92db33d36fe95721b39f33) - add spinner on loading activities
|
||||
* [b862a77](https://github.com/SamR1/FitTrackee/commit/b862a77344abbb07d98fe3ce8b157b5cef0e8d1c),
|
||||
[2e1ee2c](https://github.com/SamR1/FitTrackee/commit/2e1ee2c7a1456eb2fe0c0255959c695cc7908975) -
|
||||
add URL interceptors to simplify routes definition
|
||||
|
||||
|
||||
## Version 0.2.4 - Minor fix (2020/01/30)
|
||||
|
||||
### Issues Closed
|
||||
|
@ -25,7 +25,7 @@ It is also possible to add a workout without a gpx file.
|
||||
**Still under development (not ready for production).**
|
||||
(see [issues](https://github.com/SamR1/FitTrackee/issues) and [documentation](https://samr1.github.io/FitTrackee) for more information)
|
||||
|
||||
![FitTrackee Dashboard](misc/images/fittrackee_screenshot-01.png)
|
||||
![FitTrackee Dashboard](docsrc/source/_images/fittrackee_screenshot-01.png)
|
||||
|
||||
---
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 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.
|
||||
config: 1fcfb69d27cc89d68586df68df16169a
|
||||
config: 8aafab39ba1d615e5c19bca92be62585
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
|
Before Width: | Height: | Size: 599 KiB After Width: | Height: | Size: 599 KiB |
Before Width: | Height: | Size: 539 KiB After Width: | Height: | Size: 539 KiB |
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
@ -1,5 +1,17 @@
|
||||
# Change log
|
||||
|
||||
## Version 0.2.5 - Fix and improvements (2020/01/31)
|
||||
|
||||
### Misc
|
||||
|
||||
This version contains minor fix and improvements on client side:
|
||||
* [4c3fc34](https://github.com/SamR1/FitTrackee/commit/4c3fc343d51b9c27d3ebab71df648bcf7d7bae59) - empty user data on logout
|
||||
* [34614d5](https://github.com/SamR1/FitTrackee/commit/34614d5a6c29f4911d92db33d36fe95721b39f33) - add spinner on loading activities
|
||||
* [b862a77](https://github.com/SamR1/FitTrackee/commit/b862a77344abbb07d98fe3ce8b157b5cef0e8d1c),
|
||||
[2e1ee2c](https://github.com/SamR1/FitTrackee/commit/2e1ee2c7a1456eb2fe0c0255959c695cc7908975) -
|
||||
add URL interceptors to simplify routes definition
|
||||
|
||||
|
||||
## Version 0.2.4 - Minor fix (2020/01/30)
|
||||
|
||||
### Issues Closed
|
||||
|
@ -43,23 +43,23 @@ FitTrackee is available in English and French (which can be saved in the user se
|
||||
Dashboard
|
||||
~~~~~~~~~
|
||||
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
|
||||
.. figure:: _images/fittrackee_screenshot-01.png
|
||||
:alt: FitTrackee Dashboard
|
||||
|
||||
|
||||
Activity/workout detail
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-02.png
|
||||
.. figure:: _images/fittrackee_screenshot-02.png
|
||||
:alt: FitTrackee Activity
|
||||
|
||||
|
||||
Activities/workouts list
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-03.png
|
||||
.. figure:: _images/fittrackee_screenshot-03.png
|
||||
:alt: FitTrackee Activities
|
||||
|
||||
|
||||
Statistics
|
||||
~~~~~~~~~~
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-04.png
|
||||
.. figure:: _images/fittrackee_screenshot-04.png
|
||||
:alt: FitTrackee Statistics
|
||||
|
@ -23,7 +23,7 @@ FitTrackee
|
||||
| **Still under development (not ready for production).**
|
||||
| (see `issues <https://github.com/SamR1/FitTrackee/issues>`__ for more information)
|
||||
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
|
||||
.. figure:: _images/fittrackee_screenshot-01.png
|
||||
:alt: FitTrackee Dashboard
|
||||
|
||||
|
||||
|
@ -87,12 +87,12 @@ Prod environment
|
||||
.. warning::
|
||||
Note that FitTrackee is not production-ready yet
|
||||
|
||||
- Download the last release (for now, it is the beta release v0.2.3):
|
||||
- Download the last release (for now, it is the beta release v0.2.5):
|
||||
|
||||
.. code:: bash
|
||||
|
||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.3-beta.tar.gz
|
||||
$ tar -xzf v0.2.3-beta.tar.gz
|
||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.5-beta.tar.gz
|
||||
$ tar -xzf v0.2.5-beta.tar.gz
|
||||
$ mv FitTrackee-0.2.3-beta FitTrackee
|
||||
$ cd FitTrackee
|
||||
|
||||
|
2
docs/_static/documentation_options.js
vendored
@ -1,6 +1,6 @@
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||
VERSION: '0.2.4-beta',
|
||||
VERSION: '0.2.5-beta',
|
||||
LANGUAGE: 'None',
|
||||
COLLAPSE_INDEX: false,
|
||||
BUILDER: 'html',
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Activities — FitTrackee 0.2.4-beta
|
||||
<title>Activities — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Authentication — FitTrackee 0.2.4-beta
|
||||
<title>Authentication — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Configuration — FitTrackee 0.2.4-beta
|
||||
<title>Configuration — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>API documentation — FitTrackee 0.2.4-beta
|
||||
<title>API documentation — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Records — FitTrackee 0.2.4-beta
|
||||
<title>Records — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Sports — FitTrackee 0.2.4-beta
|
||||
<title>Sports — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Statistics — FitTrackee 0.2.4-beta
|
||||
<title>Statistics — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Users — FitTrackee 0.2.4-beta
|
||||
<title>Users — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Change log — FitTrackee 0.2.4-beta
|
||||
<title>Change log — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -38,7 +38,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
@ -75,6 +75,10 @@
|
||||
role="menu"
|
||||
aria-labelledby="dLabelLocalToc"><ul>
|
||||
<li><a class="reference internal" href="#">Change log</a><ul>
|
||||
<li><a class="reference internal" href="#version-0-2-5-fix-and-improvements-2020-01-31">Version 0.2.5 - Fix and improvements (2020/01/31)</a><ul>
|
||||
<li><a class="reference internal" href="#misc">Misc</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#version-0-2-4-minor-fix-2020-01-30">Version 0.2.4 - Minor fix (2020/01/30)</a><ul>
|
||||
<li><a class="reference internal" href="#issues-closed">Issues Closed</a><ul>
|
||||
<li><a class="reference internal" href="#bugs-fixed">Bugs Fixed</a></li>
|
||||
@ -103,28 +107,28 @@
|
||||
<li><a class="reference internal" href="#id7">Bugs Fixed</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#misc">Misc</a></li>
|
||||
<li><a class="reference internal" href="#id8">Misc</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#version-0-2-0-statistics-2019-07-07">Version 0.2.0 - Statistics (2019/07/07)</a><ul>
|
||||
<li><a class="reference internal" href="#id8">Issues Closed</a><ul>
|
||||
<li><a class="reference internal" href="#id9">New Features</a></li>
|
||||
<li><a class="reference internal" href="#id9">Issues Closed</a><ul>
|
||||
<li><a class="reference internal" href="#id10">New Features</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#id10">Misc</a></li>
|
||||
<li><a class="reference internal" href="#id11">Misc</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#version-0-1-1-fix-and-improvements-2019-02-07">Version 0.1.1 - Fix and improvements (2019/02/07)</a><ul>
|
||||
<li><a class="reference internal" href="#id11">Issues Closed</a><ul>
|
||||
<li><a class="reference internal" href="#id12">New Features</a></li>
|
||||
<li><a class="reference internal" href="#id13">Bugs Fixed</a></li>
|
||||
<li><a class="reference internal" href="#id12">Issues Closed</a><ul>
|
||||
<li><a class="reference internal" href="#id13">New Features</a></li>
|
||||
<li><a class="reference internal" href="#id14">Bugs Fixed</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#version-0-1-0-first-release-2018-07-04">Version 0.1.0 - First release 🎉 (2018-07-04)</a><ul>
|
||||
<li><a class="reference internal" href="#id14">Issues Closed</a><ul>
|
||||
<li><a class="reference internal" href="#id15">New Features</a></li>
|
||||
<li><a class="reference internal" href="#id15">Issues Closed</a><ul>
|
||||
<li><a class="reference internal" href="#id16">New Features</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -176,6 +180,20 @@
|
||||
|
||||
<div class="section" id="change-log">
|
||||
<h1>Change log<a class="headerlink" href="#change-log" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="version-0-2-5-fix-and-improvements-2020-01-31">
|
||||
<h2>Version 0.2.5 - Fix and improvements (2020/01/31)<a class="headerlink" href="#version-0-2-5-fix-and-improvements-2020-01-31" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="misc">
|
||||
<h3>Misc<a class="headerlink" href="#misc" title="Permalink to this headline">¶</a></h3>
|
||||
<p>This version contains minor fix and improvements on client side:</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/4c3fc343d51b9c27d3ebab71df648bcf7d7bae59">4c3fc34</a> - empty user data on logout</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/34614d5a6c29f4911d92db33d36fe95721b39f33">34614d5</a> - add spinner on loading activities</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/b862a77344abbb07d98fe3ce8b157b5cef0e8d1c">b862a77</a>,
|
||||
<a class="reference external" href="https://github.com/SamR1/FitTrackee/commit/2e1ee2c7a1456eb2fe0c0255959c695cc7908975">2e1ee2c</a> -
|
||||
add URL interceptors to simplify routes definition</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="version-0-2-4-minor-fix-2020-01-30">
|
||||
<h2>Version 0.2.4 - Minor fix (2020/01/30)<a class="headerlink" href="#version-0-2-4-minor-fix-2020-01-30" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="issues-closed">
|
||||
@ -246,8 +264,8 @@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="misc">
|
||||
<h3>Misc<a class="headerlink" href="#misc" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id8">
|
||||
<h3>Misc<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h3>
|
||||
<ul class="simple">
|
||||
<li><p><strong><a class="reference external" href="https://poetry.eustace.io/">Poetry</a></strong> replaces <strong><a class="reference external" href="https://docs.pipenv.org">pipenv</a></strong> for Python packages management</p></li>
|
||||
</ul>
|
||||
@ -256,17 +274,17 @@
|
||||
</div>
|
||||
<div class="section" id="version-0-2-0-statistics-2019-07-07">
|
||||
<h2>Version 0.2.0 - Statistics (2019/07/07)<a class="headerlink" href="#version-0-2-0-statistics-2019-07-07" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="id8">
|
||||
<h3>Issues Closed<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id9">
|
||||
<h4>New Features<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h4>
|
||||
<h3>Issues Closed<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id10">
|
||||
<h4>New Features<a class="headerlink" href="#id10" title="Permalink to this headline">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/Fittrackee/issues/13">#13</a> - Detailed statistics</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="id10">
|
||||
<h3>Misc<a class="headerlink" href="#id10" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id11">
|
||||
<h3>Misc<a class="headerlink" href="#id11" title="Permalink to this headline">¶</a></h3>
|
||||
<ul class="simple">
|
||||
<li><p>Update dependencies</p></li>
|
||||
</ul>
|
||||
@ -275,17 +293,17 @@
|
||||
</div>
|
||||
<div class="section" id="version-0-1-1-fix-and-improvements-2019-02-07">
|
||||
<h2>Version 0.1.1 - Fix and improvements (2019/02/07)<a class="headerlink" href="#version-0-1-1-fix-and-improvements-2019-02-07" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="section" id="id11">
|
||||
<h3>Issues Closed<a class="headerlink" href="#id11" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id12">
|
||||
<h4>New Features<a class="headerlink" href="#id12" title="Permalink to this headline">¶</a></h4>
|
||||
<h3>Issues Closed<a class="headerlink" href="#id12" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id13">
|
||||
<h4>New Features<a class="headerlink" href="#id13" title="Permalink to this headline">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/25">#25</a> - Display records on calendar</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/22">#22</a> - Add a total on current month statistics</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="id13">
|
||||
<h4>Bugs Fixed<a class="headerlink" href="#id13" title="Permalink to this headline">¶</a></h4>
|
||||
<div class="section" id="id14">
|
||||
<h4>Bugs Fixed<a class="headerlink" href="#id14" title="Permalink to this headline">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/31">#31</a> - Use moving duration for stats</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/29">#29</a> - Pause duration calculation with segments</p></li>
|
||||
@ -334,10 +352,10 @@
|
||||
<li><p>no administration for now</p></li>
|
||||
</ul>
|
||||
<p>➡️ more informations: see <a class="reference external" href="https://github.com/SamR1/mpwo/wiki">wiki</a> and <a class="reference external" href="https://github.com/SamR1/mpwo/issues">current issues</a></p>
|
||||
<div class="section" id="id14">
|
||||
<h3>Issues Closed<a class="headerlink" href="#id14" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id15">
|
||||
<h4>New Features<a class="headerlink" href="#id15" title="Permalink to this headline">¶</a></h4>
|
||||
<h3>Issues Closed<a class="headerlink" href="#id15" title="Permalink to this headline">¶</a></h3>
|
||||
<div class="section" id="id16">
|
||||
<h4>New Features<a class="headerlink" href="#id16" title="Permalink to this headline">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/11">#11</a> - Timezone support</p></li>
|
||||
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/10">#10</a> - Add a note to an activity</p></li>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Features — FitTrackee 0.2.4-beta
|
||||
<title>Features — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -4,7 +4,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Index — FitTrackee 0.2.4-beta
|
||||
<title>Index — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -38,7 +38,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>HTTP Routing Table — FitTrackee 0.2.4-beta
|
||||
<title>HTTP Routing Table — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -44,7 +44,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>FitTrackee — FitTrackee 0.2.4-beta
|
||||
<title>FitTrackee — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -38,7 +38,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
@ -181,6 +181,7 @@ Map</a>.</div>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-5-fix-and-improvements-2020-01-31">Version 0.2.5 - Fix and improvements (2020/01/31)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-4-minor-fix-2020-01-30">Version 0.2.4 - Minor fix (2020/01/30)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-3-fittrackee-available-in-french-2019-12-29">Version 0.2.3 - FitTrackee available in French (2019/12/29)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2-2-statistics-fix-2019-09-23">Version 0.2.2 - Statistics fix (2019/09/23)</a></li>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Installation — FitTrackee 0.2.4-beta
|
||||
<title>Installation — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
@ -231,10 +231,10 @@ and the password <code class="docutils literal notranslate"><span class="pre">mp
|
||||
<p>Note that FitTrackee is not production-ready yet</p>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><p>Download the last release (for now, it is the beta release v0.2.3):</p></li>
|
||||
<li><p>Download the last release (for now, it is the beta release v0.2.5):</p></li>
|
||||
</ul>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.3-beta.tar.gz
|
||||
$ tar -xzf v0.2.3-beta.tar.gz
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.5-beta.tar.gz
|
||||
$ tar -xzf v0.2.5-beta.tar.gz
|
||||
$ mv FitTrackee-0.2.3-beta FitTrackee
|
||||
$ <span class="nb">cd</span> FitTrackee
|
||||
</pre></div>
|
||||
|
BIN
docs/objects.inv
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Search — FitTrackee 0.2.4-beta
|
||||
<title>Search — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
@ -43,7 +43,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Administrator — FitTrackee 0.2.4-beta
|
||||
<title>Administrator — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Troubleshooting — FitTrackee 0.2.4-beta
|
||||
<title>Troubleshooting — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>User — FitTrackee 0.2.4-beta
|
||||
<title>User — FitTrackee 0.2.5-beta
|
||||
documentation</title>
|
||||
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
@ -39,7 +39,7 @@
|
||||
</button>
|
||||
<a class="navbar-brand" href="../index.html">
|
||||
FitTrackee</a>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.4</b></span>
|
||||
<span class="navbar-text navbar-version pull-left"><b>0.2.5</b></span>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse nav-collapse">
|
||||
|
Before Width: | Height: | Size: 599 KiB After Width: | Height: | Size: 599 KiB |
Before Width: | Height: | Size: 539 KiB After Width: | Height: | Size: 539 KiB |
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
@ -43,23 +43,23 @@ FitTrackee is available in English and French (which can be saved in the user se
|
||||
Dashboard
|
||||
~~~~~~~~~
|
||||
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
|
||||
.. figure:: _images/fittrackee_screenshot-01.png
|
||||
:alt: FitTrackee Dashboard
|
||||
|
||||
|
||||
Activity/workout detail
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-02.png
|
||||
.. figure:: _images/fittrackee_screenshot-02.png
|
||||
:alt: FitTrackee Activity
|
||||
|
||||
|
||||
Activities/workouts list
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-03.png
|
||||
.. figure:: _images/fittrackee_screenshot-03.png
|
||||
:alt: FitTrackee Activities
|
||||
|
||||
|
||||
Statistics
|
||||
~~~~~~~~~~
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-04.png
|
||||
.. figure:: _images/fittrackee_screenshot-04.png
|
||||
:alt: FitTrackee Statistics
|
||||
|
@ -23,7 +23,7 @@ FitTrackee
|
||||
| **Still under development (not ready for production).**
|
||||
| (see `issues <https://github.com/SamR1/FitTrackee/issues>`__ for more information)
|
||||
|
||||
.. figure:: ../../misc/images/fittrackee_screenshot-01.png
|
||||
.. figure:: _images/fittrackee_screenshot-01.png
|
||||
:alt: FitTrackee Dashboard
|
||||
|
||||
|
||||
|
@ -87,12 +87,12 @@ Prod environment
|
||||
.. warning::
|
||||
Note that FitTrackee is not production-ready yet
|
||||
|
||||
- Download the last release (for now, it is the beta release v0.2.3):
|
||||
- Download the last release (for now, it is the beta release v0.2.5):
|
||||
|
||||
.. code:: bash
|
||||
|
||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.3-beta.tar.gz
|
||||
$ tar -xzf v0.2.3-beta.tar.gz
|
||||
$ wget https://github.com/SamR1/FitTrackee/archive/v0.2.5-beta.tar.gz
|
||||
$ tar -xzf v0.2.5-beta.tar.gz
|
||||
$ mv FitTrackee-0.2.3-beta FitTrackee
|
||||
$ cd FitTrackee
|
||||
|
||||
|
2
fittrackee_api/poetry.lock
generated
@ -948,7 +948,7 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
|
||||
testing = ["jaraco.itertools"]
|
||||
|
||||
[metadata]
|
||||
content-hash = "0f0ae50dc4d547533e9da81603a39cd9863fc018057ed1f04f1ae41c0e62d3f3"
|
||||
content-hash = "08f65db08252eef68c675d114006f74eefe78d8b287d9a93b9063716b03397bd"
|
||||
python-versions = "^3.7"
|
||||
|
||||
[metadata.files]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "fittrackee_api"
|
||||
version = "0.3.0-beta"
|
||||
version = "0.2.5-beta"
|
||||
description = ""
|
||||
authors = ["Your Name <you@example.com>"]
|
||||
license = "GPL-3.0"
|
||||
|
@ -52,7 +52,10 @@ export const addActivity = form => dispatch =>
|
||||
}
|
||||
dispatch(setLoading(false))
|
||||
})
|
||||
.catch(error => dispatch(setError(`activities|${error}`)))
|
||||
.catch(error => {
|
||||
dispatch(setLoading(false))
|
||||
dispatch(setError(`activities|${error}`))
|
||||
})
|
||||
|
||||
export const addActivityWithoutGpx = form => dispatch =>
|
||||
FitTrackeeGenericApi.addData('activities/no_gpx', form)
|
||||
@ -154,7 +157,10 @@ export const editActivity = form => dispatch =>
|
||||
}
|
||||
dispatch(setLoading(false))
|
||||
})
|
||||
.catch(error => dispatch(setError(`activities|${error}`)))
|
||||
.catch(error => {
|
||||
dispatch(setLoading(false))
|
||||
dispatch(setError(`activities|${error}`))
|
||||
})
|
||||
|
||||
export const getMoreActivities = params => dispatch =>
|
||||
FitTrackeeGenericApi.getData('activities', params)
|
||||
|
@ -28,14 +28,15 @@ export const updateSportsData = data => ({
|
||||
type: 'UPDATE_SPORT_DATA',
|
||||
data,
|
||||
})
|
||||
|
||||
export const getOrUpdateData = (
|
||||
action,
|
||||
target,
|
||||
data,
|
||||
canDispatch = true
|
||||
) => dispatch => {
|
||||
dispatch(setLoading(true))
|
||||
if (data && data.id && isNaN(data.id)) {
|
||||
dispatch(setLoading(false))
|
||||
return dispatch(setError(`${target}|Incorrect id`))
|
||||
}
|
||||
dispatch(setError(''))
|
||||
@ -50,8 +51,12 @@ export const getOrUpdateData = (
|
||||
} else {
|
||||
dispatch(setError(`${target}|${ret.message || ret.status}`))
|
||||
}
|
||||
dispatch(setLoading(false))
|
||||
})
|
||||
.catch(error => {
|
||||
dispatch(setLoading(false))
|
||||
dispatch(setError(`${target}|${error}`))
|
||||
})
|
||||
.catch(error => dispatch(setError(`${target}|${error}`)))
|
||||
}
|
||||
|
||||
export const addData = (target, data) => dispatch =>
|
||||
|
@ -7,7 +7,7 @@ import { getDateWithTZ } from '../../utils'
|
||||
|
||||
export default class ActivitiesList extends React.PureComponent {
|
||||
render() {
|
||||
const { activities, sports, t, user } = this.props
|
||||
const { activities, loading, sports, t, user } = this.props
|
||||
return (
|
||||
<div className="card activity-card">
|
||||
<div className="card-body">
|
||||
@ -24,7 +24,8 @@ export default class ActivitiesList extends React.PureComponent {
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{sports &&
|
||||
{!loading &&
|
||||
sports &&
|
||||
activities.map((activity, idx) => (
|
||||
// eslint-disable-next-line react/no-array-index-key
|
||||
<tr key={idx}>
|
||||
@ -61,6 +62,7 @@ export default class ActivitiesList extends React.PureComponent {
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
{loading && <div className="loader" />}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
@ -38,6 +38,7 @@ class Activities extends React.Component {
|
||||
render() {
|
||||
const {
|
||||
activities,
|
||||
loading,
|
||||
loadActivities,
|
||||
loadMoreActivities,
|
||||
message,
|
||||
@ -71,6 +72,7 @@ class Activities extends React.Component {
|
||||
<div className="col-md-9 activities-result">
|
||||
<ActivitiesList
|
||||
activities={activities}
|
||||
loading={loading}
|
||||
sports={sports}
|
||||
t={t}
|
||||
user={user}
|
||||
@ -101,6 +103,7 @@ export default withTranslation()(
|
||||
connect(
|
||||
state => ({
|
||||
activities: state.activities.data,
|
||||
loading: state.loading,
|
||||
message: state.message,
|
||||
sports: state.sports.data,
|
||||
user: state.user,
|
||||
|
@ -364,12 +364,12 @@ label {
|
||||
|
||||
.loader {
|
||||
animation: spin 2s linear infinite;
|
||||
border: 16px solid #f3f3f3;
|
||||
border-top: 16px solid #3498db;
|
||||
border: 8px solid #f3f3f3;
|
||||
border-top: 8px solid #3498db;
|
||||
border-radius: 50%;
|
||||
height: 120px;
|
||||
height: 60px;
|
||||
margin-left: 41%;
|
||||
width: 120px;
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React from 'react'
|
||||
import { connect } from 'react-redux'
|
||||
import { Redirect, Route, Switch } from 'react-router-dom'
|
||||
import { Route, Switch } from 'react-router-dom'
|
||||
|
||||
import './App.css'
|
||||
import Admin from './Admin'
|
||||
@ -16,7 +16,6 @@ import ProfileEdit from './User/ProfileEdit'
|
||||
import Statistics from './Statistics'
|
||||
import UserForm from './User/UserForm'
|
||||
import { getAppData } from '../actions/application'
|
||||
import { isLoggedIn } from '../utils'
|
||||
|
||||
class App extends React.Component {
|
||||
constructor(props) {
|
||||
@ -32,59 +31,24 @@ class App extends React.Component {
|
||||
<div className="App">
|
||||
<NavBar />
|
||||
<Switch>
|
||||
<Route
|
||||
exact
|
||||
path="/"
|
||||
render={() =>
|
||||
isLoggedIn() ? <Dashboard /> : <Redirect to="/login" />
|
||||
}
|
||||
/>
|
||||
<Route exact path="/" component={Dashboard} />
|
||||
<Route
|
||||
exact
|
||||
path="/register"
|
||||
render={() =>
|
||||
isLoggedIn() ? (
|
||||
<Redirect to="/" />
|
||||
) : (
|
||||
<UserForm formType={'register'} />
|
||||
)
|
||||
}
|
||||
render={() => <UserForm formType={'register'} />}
|
||||
/>
|
||||
<Route
|
||||
exact
|
||||
path="/login"
|
||||
render={() =>
|
||||
isLoggedIn() ? (
|
||||
<Redirect to="/" />
|
||||
) : (
|
||||
<UserForm formType={'login'} />
|
||||
)
|
||||
}
|
||||
render={() => <UserForm formType={'login'} />}
|
||||
/>
|
||||
<Route exact path="/logout" component={Logout} />
|
||||
<Route
|
||||
exact
|
||||
path="/profile/edit"
|
||||
render={() =>
|
||||
isLoggedIn() ? <ProfileEdit /> : <UserForm formType={'login'} />
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
exact
|
||||
path="/profile"
|
||||
render={() =>
|
||||
isLoggedIn() ? <Profile /> : <UserForm formType={'login'} />
|
||||
}
|
||||
/>
|
||||
<Route exact path="/profile/edit" component={ProfileEdit} />
|
||||
<Route exact path="/profile" component={Profile} />
|
||||
<Route exact path="/activities/history" component={Activities} />
|
||||
<Route exact path="/activities/statistics" component={Statistics} />
|
||||
<Route path="/activities" component={Activity} />
|
||||
<Route
|
||||
path="/admin"
|
||||
render={() =>
|
||||
isLoggedIn() ? <Admin /> : <UserForm formType={'login'} />
|
||||
}
|
||||
/>
|
||||
<Route path="/admin" component={Admin} />
|
||||
<Route component={NotFound} />
|
||||
</Switch>
|
||||
<Footer />
|
||||
|
@ -13,8 +13,9 @@ import Root from './components/Root'
|
||||
import registerServiceWorker from './registerServiceWorker'
|
||||
import createRootReducer from './reducers'
|
||||
import { loadProfile } from './actions/user'
|
||||
import { historyEnhancer } from './utils/history'
|
||||
|
||||
export const history = createBrowserHistory()
|
||||
export const history = historyEnhancer(createBrowserHistory())
|
||||
|
||||
history.listen(() => {
|
||||
window.scrollTo(0, 0)
|
||||
|
@ -18,6 +18,8 @@ const handleDataAndError = (state, type, action) => {
|
||||
|
||||
const activities = (state = initial.activities, action) => {
|
||||
switch (action.type) {
|
||||
case 'LOGOUT':
|
||||
return initial.activities
|
||||
case 'PUSH_ACTIVITIES':
|
||||
return {
|
||||
...state,
|
||||
@ -50,14 +52,18 @@ const application = (state = initial.application, action) => {
|
||||
}
|
||||
|
||||
const calendarActivities = (state = initial.calendarActivities, action) => {
|
||||
if (action.type === 'UPDATE_CALENDAR') {
|
||||
switch (action.type) {
|
||||
case 'LOGOUT':
|
||||
return initial.calendarActivities
|
||||
case 'UPDATE_CALENDAR':
|
||||
return {
|
||||
...state,
|
||||
data: action.activities,
|
||||
}
|
||||
}
|
||||
default:
|
||||
return handleDataAndError(state, 'calendarActivities', action)
|
||||
}
|
||||
}
|
||||
|
||||
const chartData = (state = initial.chartData, action) => {
|
||||
if (action.type === 'SET_CHART_DATA') {
|
||||
@ -118,8 +124,12 @@ const messages = (state = initial.messages, action) => {
|
||||
}
|
||||
}
|
||||
|
||||
const records = (state = initial.records, action) =>
|
||||
handleDataAndError(state, 'records', action)
|
||||
const records = (state = initial.records, action) => {
|
||||
if (action.type === 'LOGOUT') {
|
||||
return initial.records
|
||||
}
|
||||
return handleDataAndError(state, 'records', action)
|
||||
}
|
||||
|
||||
const sports = (state = initial.sports, action) => {
|
||||
if (action.type === 'UPDATE_SPORT_DATA') {
|
||||
@ -150,8 +160,12 @@ const user = (state = initial.user, action) => {
|
||||
}
|
||||
}
|
||||
|
||||
const statistics = (state = initial.statistics, action) =>
|
||||
handleDataAndError(state, 'statistics', action)
|
||||
const statistics = (state = initial.statistics, action) => {
|
||||
if (action.type === 'LOGOUT') {
|
||||
return initial.statistics
|
||||
}
|
||||
return handleDataAndError(state, 'statistics', action)
|
||||
}
|
||||
|
||||
export default history =>
|
||||
combineReducers({
|
||||
|
35
fittrackee_client/src/utils/history.js
Normal file
@ -0,0 +1,35 @@
|
||||
const updatePath = (toPath, newPath) => {
|
||||
if (typeof toPath === 'string' || toPath instanceof String) {
|
||||
toPath = newPath
|
||||
} else {
|
||||
toPath.pathname = newPath
|
||||
}
|
||||
return toPath
|
||||
}
|
||||
|
||||
const pathInterceptor = toPath => {
|
||||
if (
|
||||
!window.localStorage.authToken &&
|
||||
!['/login', '/register'].includes(toPath.pathname)
|
||||
) {
|
||||
toPath = updatePath(toPath, '/login')
|
||||
}
|
||||
if (
|
||||
window.localStorage.authToken &&
|
||||
['/login', '/register'].includes(toPath.pathname)
|
||||
) {
|
||||
toPath = updatePath(toPath, '/')
|
||||
}
|
||||
return toPath
|
||||
}
|
||||
|
||||
export const historyEnhancer = originalHistory => {
|
||||
originalHistory.location = pathInterceptor(originalHistory.location)
|
||||
return {
|
||||
...originalHistory,
|
||||
push: (path, ...args) =>
|
||||
originalHistory.push(pathInterceptor(path), ...args),
|
||||
replace: (path, ...args) =>
|
||||
originalHistory.replace(pathInterceptor(path), ...args),
|
||||
}
|
||||
}
|
@ -15,7 +15,7 @@ export const getFileSizeInMB = fileSize => {
|
||||
return (!fileSize && 0) || +value.toFixed(2)
|
||||
}
|
||||
|
||||
export const version = '0.2.4-beta' // version stored in 'utils' for now
|
||||
export const version = '0.2.5-beta' // version stored in 'utils' for now
|
||||
export const apiUrl = `${process.env.REACT_APP_API_URL}/api/`
|
||||
/* prettier-ignore */
|
||||
export const thunderforestApiKey = `${
|
||||
|
@ -1,202 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||
<!--Created by yEd 3.17-->
|
||||
<key attr.name="Description" attr.type="string" for="graph" id="d0"/>
|
||||
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||
<graph edgedefault="directed" id="G">
|
||||
<data key="d0"/>
|
||||
<node id="n0">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="143.0" width="107.0" x="821.44" y="96.0"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="36.42578125" x="35.287109375" y="4.0">users</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="101.78125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="67.48046875" x="2.0" y="29.96875">id
|
||||
username
|
||||
pwd
|
||||
first_name
|
||||
last_name
|
||||
birthday
|
||||
photo
|
||||
<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:ErdAttributesNodeLabelModelParameter/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n1">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="253.0" width="206.0" x="769.44" y="274.28"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="58.099609375" x="73.9501953125" y="4.0">activities</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="199.5625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="81.291015625" x="2.0" y="29.96875">id
|
||||
user_id
|
||||
sport_id
|
||||
gpx_id
|
||||
activity_date
|
||||
duration
|
||||
pauses
|
||||
distance
|
||||
min_alt
|
||||
max_alt
|
||||
descent
|
||||
ascent
|
||||
max_speed
|
||||
ave_speed<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:ErdAttributesNodeLabelModelParameter/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n2">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="90.0" width="80.0" x="1060.28" y="355.78"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="41.1015625" x="19.44921875" y="4.0">sports</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="33.021484375" x="2.0" y="29.96875">id
|
||||
label<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:ErdAttributesNodeLabelModelParameter/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n3">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="90.0" width="80.0" x="832.44" y="598.56"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.3359375" x="26.83203125" y="4.0">gpx</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="22.275390625" x="2.0" y="29.96875">id
|
||||
file<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:ErdAttributesNodeLabelModelParameter/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n4">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="112.0" width="138.0" x="546.6000000000001" y="344.78"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="104.283203125" x="16.8583984375" y="4.0">personalRecords</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="59.875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="75.61328125" x="2.0" y="29.96875">id
|
||||
activity_id
|
||||
record_type
|
||||
value<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:ErdAttributesNodeLabelModelParameter/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="e0" source="n1" target="n3">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="none"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e1" source="n1" target="n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="crows_foot_many" target="none"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e2" source="n4" target="n0">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="615.6000000000001" y="167.5"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="crows_foot_many" target="none"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e3" source="n2" target="n1">
|
||||
<data key="d10">
|
||||
<y:GenericEdge configuration="com.yworks.bpmn.Connection">
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="crows_foot_many"/>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="CONNECTION_TYPE_FORKED_CONVERSATION_LINK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e4" source="n1" target="n4">
|
||||
<data key="d10">
|
||||
<y:GenericEdge configuration="com.yworks.bpmn.Connection">
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="crows_foot_many"/>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="CONNECTION_TYPE_FORKED_CONVERSATION_LINK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericEdge>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
<data key="d7">
|
||||
<y:Resources/>
|
||||
</data>
|
||||
</graphml>
|
@ -20,7 +20,7 @@
|
||||
"react-leaflet": "^2.6.1",
|
||||
"react-redux": "^7.1.3",
|
||||
"react-router-dom": "^5.1.2",
|
||||
"react-scripts": "^3.3.0",
|
||||
"react-scripts": "^3.3.1",
|
||||
"react-timezone": "^2.4.0",
|
||||
"recharts": "^1.8.5",
|
||||
"redux": "^4.0.5",
|
||||
|