From c0b0bfdb17e2e681b9ccf3460a9b84f38ce0657e Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 31 Oct 2021 18:47:38 +0100 Subject: [PATCH] Client - remove old client --- fittrackee_client_old/.eslintrc.json | 433 ------------------ fittrackee_client_old/.prettierrc | 10 - fittrackee_client_old/public/favicon.ico | Bin 318 -> 0 bytes fittrackee_client_old/public/img/photo.png | Bin 2941 -> 0 bytes .../public/img/sports/cycling-sport.png | Bin 5500 -> 0 bytes .../public/img/sports/cycling-transport.png | Bin 5620 -> 0 bytes .../public/img/sports/hiking.png | Bin 3102 -> 0 bytes .../public/img/sports/mountain-biking.png | Bin 4406 -> 0 bytes .../public/img/sports/running.png | Bin 3104 -> 0 bytes .../public/img/sports/walking.png | Bin 3564 -> 0 bytes .../public/img/weather/breeze.png | Bin 2101 -> 0 bytes .../public/img/weather/clear-day.png | Bin 1897 -> 0 bytes .../public/img/weather/clear-night.png | Bin 2574 -> 0 bytes .../public/img/weather/cloudy.png | Bin 1998 -> 0 bytes .../public/img/weather/fog.png | Bin 1012 -> 0 bytes .../public/img/weather/partly-cloudy-day.png | Bin 2688 -> 0 bytes .../img/weather/partly-cloudy-night.png | Bin 2417 -> 0 bytes .../public/img/weather/pour-rain.png | Bin 2988 -> 0 bytes .../public/img/weather/rain.png | Bin 2735 -> 0 bytes .../public/img/weather/sleet.png | Bin 2738 -> 0 bytes .../public/img/weather/snow.png | Bin 2772 -> 0 bytes .../public/img/weather/temperature.png | Bin 1689 -> 0 bytes .../public/img/weather/wind.png | Bin 2595 -> 0 bytes fittrackee_client_old/public/index.html | 62 --- fittrackee_client_old/public/manifest.json | 16 - .../src/actions/application.js | 47 -- fittrackee_client_old/src/actions/index.js | 111 ----- fittrackee_client_old/src/actions/stats.js | 13 - fittrackee_client_old/src/actions/user.js | 174 ------- fittrackee_client_old/src/actions/workouts.js | 192 -------- .../src/components/Admin/AdminApplication.jsx | 228 --------- .../src/components/Admin/AdminDashboard.jsx | 71 --- .../src/components/Admin/AdminSports.jsx | 142 ------ .../src/components/Admin/AdminStats.jsx | 104 ----- .../src/components/Admin/AdminUsers.jsx | 257 ----------- .../src/components/Admin/index.jsx | 71 --- fittrackee_client_old/src/components/App.jsx | 90 ---- .../src/components/App.test.jsx | 9 - .../src/components/Common/CustomModal.jsx | 44 -- .../src/components/Common/CustomTextArea.jsx | 45 -- .../src/components/Common/Message.jsx | 33 -- .../src/components/Common/NoWorkouts.jsx | 18 - .../src/components/Common/Pagination.jsx | 72 --- .../src/components/Common/StaticMap.jsx | 29 -- .../components/Common/Stats/CustomLabel.jsx | 30 -- .../src/components/Dashboard/Calendar.jsx | 198 -------- .../components/Dashboard/CalendarWorkout.jsx | 39 -- .../components/Dashboard/CalendarWorkouts.jsx | 59 --- .../src/components/Dashboard/Records.jsx | 74 --- .../components/Dashboard/UserStatistics.jsx | 78 ---- .../src/components/Dashboard/index.jsx | 114 ----- .../src/components/Footer/index.jsx | 36 -- .../components/NavBar/LanguageDropdown.jsx | 75 --- .../src/components/NavBar/index.jsx | 173 ------- .../src/components/Others/AccessDenied.jsx | 24 - .../src/components/Others/NotFound.jsx | 15 - fittrackee_client_old/src/components/Root.jsx | 11 - .../components/User/CurrentUserProfile.jsx | 19 - .../src/components/User/Form.jsx | 125 ----- .../src/components/User/Logout.jsx | 43 -- .../src/components/User/PasswordReset.jsx | 48 -- .../src/components/User/ProfileDetail.jsx | 199 -------- .../src/components/User/ProfileEdit.jsx | 314 ------------- .../src/components/User/UserForm.jsx | 99 ---- .../src/components/User/UserProfile.jsx | 86 ---- .../src/components/Workout/WorkoutAdd.jsx | 19 - .../components/Workout/WorkoutAddOrEdit.jsx | 118 ----- .../components/Workout/WorkoutDisplay/Map.jsx | 27 -- .../WorkoutDisplay/WorkoutCardHeader.jsx | 106 ----- .../Workout/WorkoutDisplay/WorkoutCharts.jsx | 240 ---------- .../Workout/WorkoutDisplay/WorkoutDetails.jsx | 73 --- .../Workout/WorkoutDisplay/WorkoutMap.jsx | 87 ---- .../Workout/WorkoutDisplay/WorkoutNoMap.jsx | 8 - .../Workout/WorkoutDisplay/WorkoutNotes.jsx | 19 - .../WorkoutDisplay/WorkoutSegments.jsx | 38 -- .../Workout/WorkoutDisplay/WorkoutWeather.jsx | 75 --- .../Workout/WorkoutDisplay/index.jsx | 202 -------- .../src/components/Workout/WorkoutEdit.jsx | 41 -- .../Workout/WorkoutForms/FormWithGpx.jsx | 170 ------- .../Workout/WorkoutForms/FormWithoutGpx.jsx | 162 ------- .../src/components/Workout/index.jsx | 38 -- .../components/Workouts/WorkoutsFilter.jsx | 189 -------- .../src/components/Workouts/index.jsx | 120 ----- .../src/fitTrackeeApi/auth.js | 22 - .../src/fitTrackeeApi/index.js | 63 --- fittrackee_client_old/src/i18n.js | 23 - fittrackee_client_old/src/images/flags/en.svg | 27 -- fittrackee_client_old/src/images/flags/fr.svg | 1 - .../src/images/mail-send.svg | 42 -- fittrackee_client_old/src/images/password.svg | 65 --- fittrackee_client_old/src/index.js | 46 -- .../src/locales/en/administration.json | 34 -- .../src/locales/en/common.json | 40 -- .../src/locales/en/dashboard.json | 5 - .../src/locales/en/messages.json | 40 -- .../src/locales/en/resources.js | 19 - .../src/locales/en/user.json | 45 -- .../src/locales/en/workouts.json | 58 --- .../src/locales/fr/administration.json | 34 -- .../src/locales/fr/common.json | 40 -- .../src/locales/fr/dashboard.json | 5 - .../src/locales/fr/messages.json | 40 -- .../src/locales/fr/resources.js | 19 - .../src/locales/fr/user.json | 45 -- fittrackee_client_old/src/locales/index.js | 7 - fittrackee_client_old/src/logo.svg | 7 - fittrackee_client_old/src/reducers/index.js | 213 --------- fittrackee_client_old/src/reducers/initial.js | 45 -- .../src/registerServiceWorker.js | 113 ----- fittrackee_client_old/src/utils/history.js | 44 -- fittrackee_client_old/src/utils/index.js | 126 ----- 111 files changed, 7130 deletions(-) delete mode 100644 fittrackee_client_old/.eslintrc.json delete mode 100644 fittrackee_client_old/.prettierrc delete mode 100644 fittrackee_client_old/public/favicon.ico delete mode 100644 fittrackee_client_old/public/img/photo.png delete mode 100644 fittrackee_client_old/public/img/sports/cycling-sport.png delete mode 100644 fittrackee_client_old/public/img/sports/cycling-transport.png delete mode 100644 fittrackee_client_old/public/img/sports/hiking.png delete mode 100644 fittrackee_client_old/public/img/sports/mountain-biking.png delete mode 100644 fittrackee_client_old/public/img/sports/running.png delete mode 100644 fittrackee_client_old/public/img/sports/walking.png delete mode 100644 fittrackee_client_old/public/img/weather/breeze.png delete mode 100644 fittrackee_client_old/public/img/weather/clear-day.png delete mode 100644 fittrackee_client_old/public/img/weather/clear-night.png delete mode 100644 fittrackee_client_old/public/img/weather/cloudy.png delete mode 100644 fittrackee_client_old/public/img/weather/fog.png delete mode 100644 fittrackee_client_old/public/img/weather/partly-cloudy-day.png delete mode 100644 fittrackee_client_old/public/img/weather/partly-cloudy-night.png delete mode 100644 fittrackee_client_old/public/img/weather/pour-rain.png delete mode 100644 fittrackee_client_old/public/img/weather/rain.png delete mode 100644 fittrackee_client_old/public/img/weather/sleet.png delete mode 100644 fittrackee_client_old/public/img/weather/snow.png delete mode 100644 fittrackee_client_old/public/img/weather/temperature.png delete mode 100644 fittrackee_client_old/public/img/weather/wind.png delete mode 100644 fittrackee_client_old/public/index.html delete mode 100644 fittrackee_client_old/public/manifest.json delete mode 100644 fittrackee_client_old/src/actions/application.js delete mode 100644 fittrackee_client_old/src/actions/index.js delete mode 100644 fittrackee_client_old/src/actions/stats.js delete mode 100644 fittrackee_client_old/src/actions/user.js delete mode 100644 fittrackee_client_old/src/actions/workouts.js delete mode 100644 fittrackee_client_old/src/components/Admin/AdminApplication.jsx delete mode 100644 fittrackee_client_old/src/components/Admin/AdminDashboard.jsx delete mode 100644 fittrackee_client_old/src/components/Admin/AdminSports.jsx delete mode 100644 fittrackee_client_old/src/components/Admin/AdminStats.jsx delete mode 100644 fittrackee_client_old/src/components/Admin/AdminUsers.jsx delete mode 100644 fittrackee_client_old/src/components/Admin/index.jsx delete mode 100644 fittrackee_client_old/src/components/App.jsx delete mode 100644 fittrackee_client_old/src/components/App.test.jsx delete mode 100644 fittrackee_client_old/src/components/Common/CustomModal.jsx delete mode 100644 fittrackee_client_old/src/components/Common/CustomTextArea.jsx delete mode 100644 fittrackee_client_old/src/components/Common/Message.jsx delete mode 100644 fittrackee_client_old/src/components/Common/NoWorkouts.jsx delete mode 100644 fittrackee_client_old/src/components/Common/Pagination.jsx delete mode 100644 fittrackee_client_old/src/components/Common/StaticMap.jsx delete mode 100644 fittrackee_client_old/src/components/Common/Stats/CustomLabel.jsx delete mode 100644 fittrackee_client_old/src/components/Dashboard/Calendar.jsx delete mode 100644 fittrackee_client_old/src/components/Dashboard/CalendarWorkout.jsx delete mode 100644 fittrackee_client_old/src/components/Dashboard/CalendarWorkouts.jsx delete mode 100644 fittrackee_client_old/src/components/Dashboard/Records.jsx delete mode 100644 fittrackee_client_old/src/components/Dashboard/UserStatistics.jsx delete mode 100644 fittrackee_client_old/src/components/Dashboard/index.jsx delete mode 100644 fittrackee_client_old/src/components/Footer/index.jsx delete mode 100644 fittrackee_client_old/src/components/NavBar/LanguageDropdown.jsx delete mode 100644 fittrackee_client_old/src/components/NavBar/index.jsx delete mode 100644 fittrackee_client_old/src/components/Others/AccessDenied.jsx delete mode 100644 fittrackee_client_old/src/components/Others/NotFound.jsx delete mode 100644 fittrackee_client_old/src/components/Root.jsx delete mode 100644 fittrackee_client_old/src/components/User/CurrentUserProfile.jsx delete mode 100644 fittrackee_client_old/src/components/User/Form.jsx delete mode 100644 fittrackee_client_old/src/components/User/Logout.jsx delete mode 100644 fittrackee_client_old/src/components/User/PasswordReset.jsx delete mode 100644 fittrackee_client_old/src/components/User/ProfileDetail.jsx delete mode 100644 fittrackee_client_old/src/components/User/ProfileEdit.jsx delete mode 100644 fittrackee_client_old/src/components/User/UserForm.jsx delete mode 100644 fittrackee_client_old/src/components/User/UserProfile.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutAdd.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutAddOrEdit.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/Map.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutCardHeader.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutCharts.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutDetails.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutMap.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutNoMap.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutNotes.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutSegments.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/WorkoutWeather.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutDisplay/index.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutEdit.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutForms/FormWithGpx.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/WorkoutForms/FormWithoutGpx.jsx delete mode 100644 fittrackee_client_old/src/components/Workout/index.jsx delete mode 100644 fittrackee_client_old/src/components/Workouts/WorkoutsFilter.jsx delete mode 100644 fittrackee_client_old/src/components/Workouts/index.jsx delete mode 100644 fittrackee_client_old/src/fitTrackeeApi/auth.js delete mode 100644 fittrackee_client_old/src/fitTrackeeApi/index.js delete mode 100644 fittrackee_client_old/src/i18n.js delete mode 100644 fittrackee_client_old/src/images/flags/en.svg delete mode 100644 fittrackee_client_old/src/images/flags/fr.svg delete mode 100644 fittrackee_client_old/src/images/mail-send.svg delete mode 100644 fittrackee_client_old/src/images/password.svg delete mode 100644 fittrackee_client_old/src/index.js delete mode 100644 fittrackee_client_old/src/locales/en/administration.json delete mode 100644 fittrackee_client_old/src/locales/en/common.json delete mode 100644 fittrackee_client_old/src/locales/en/dashboard.json delete mode 100644 fittrackee_client_old/src/locales/en/messages.json delete mode 100644 fittrackee_client_old/src/locales/en/resources.js delete mode 100644 fittrackee_client_old/src/locales/en/user.json delete mode 100644 fittrackee_client_old/src/locales/en/workouts.json delete mode 100644 fittrackee_client_old/src/locales/fr/administration.json delete mode 100644 fittrackee_client_old/src/locales/fr/common.json delete mode 100644 fittrackee_client_old/src/locales/fr/dashboard.json delete mode 100644 fittrackee_client_old/src/locales/fr/messages.json delete mode 100644 fittrackee_client_old/src/locales/fr/resources.js delete mode 100644 fittrackee_client_old/src/locales/fr/user.json delete mode 100644 fittrackee_client_old/src/locales/index.js delete mode 100644 fittrackee_client_old/src/logo.svg delete mode 100644 fittrackee_client_old/src/reducers/index.js delete mode 100644 fittrackee_client_old/src/reducers/initial.js delete mode 100644 fittrackee_client_old/src/registerServiceWorker.js delete mode 100644 fittrackee_client_old/src/utils/history.js delete mode 100644 fittrackee_client_old/src/utils/index.js diff --git a/fittrackee_client_old/.eslintrc.json b/fittrackee_client_old/.eslintrc.json deleted file mode 100644 index 9fb2e3e8..00000000 --- a/fittrackee_client_old/.eslintrc.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "root": true, - "parser": "babel-eslint", - "parserOptions": { - "ecmaVersion": 2017, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true, - "module": true, - "experimentalObjectRestSpread": true - } - }, - "env": { - "browser": true, - "node": true, - "es6": true, - "jest": true - }, - "extends": ["plugin:prettier/recommended"], - "rules": { - "no-alert": "warn", - "no-array-constructor": "off", - "no-await-in-loop": "off", - "no-bitwise": "off", - "no-caller": "warn", - "no-case-declarations": "error", - "no-catch-shadow": "off", - "no-class-assign": "error", - "no-compare-neg-zero": "warn", - "no-cond-assign": "error", - "no-confusing-arrow": "off", - "no-console": [ - "error", - { - "allow": ["warn", "error", "info"] - } - ], - "no-const-assign": "error", - "no-constant-condition": "error", - "no-continue": "off", - "no-control-regex": "error", - "no-debugger": "off", - "no-delete-var": "error", - "no-div-regex": "off", - "no-dupe-args": "error", - "no-dupe-class-members": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-duplicate-imports": "warn", - "no-else-return": "warn", - "no-empty": "error", - "no-empty-character-class": "error", - "no-empty-function": "off", - "no-empty-pattern": "error", - "no-eq-null": "warn", - "no-eval": "error", - "no-ex-assign": "error", - "no-extend-native": "error", - "no-extra-bind": "warn", - "no-extra-boolean-cast": "error", - "no-extra-label": "warn", - "no-extra-parens": "off", - "no-extra-semi": "off", - "no-fallthrough": "error", - "no-floating-decimal": "off", - "no-func-assign": "error", - "no-global-assign": "error", - "no-implicit-coercion": "off", - "no-implicit-globals": "off", - "no-implied-eval": "error", - "no-inline-comments": "off", - "no-inner-declarations": "error", - "no-invalid-regexp": "error", - "no-invalid-this": "error", - "no-irregular-whitespace": [ - "warn", - { - "skipStrings": true, - "skipTemplates": true - } - ], - "no-iterator": "off", - "no-label-var": "off", - "no-labels": "off", - "no-lone-blocks": "warn", - "no-lonely-if": "warn", - "no-loop-func": "warn", - "no-magic-numbers": "off", - "no-mixed-operators": "off", - "no-mixed-requires": "off", - "no-mixed-spaces-and-tabs": "error", - "no-multi-assign": "off", - "no-multi-spaces": "error", - "no-multi-str": "off", - "no-multiple-empty-lines": "warn", - "no-native-reassign": "off", - "no-negated-condition": "warn", - "no-negated-in-lhs": "off", - "no-nested-ternary": "off", - "no-new": "off", - "no-new-func": "off", - "no-new-object": "off", - "no-new-require": "off", - "no-new-symbol": "error", - "no-new-wrappers": "off", - "no-obj-calls": "error", - "no-octal": "error", - "no-octal-escape": "off", - "no-param-reassign": "off", - "no-path-concat": "warn", - "no-plusplus": "off", - "no-process-env": "off", - "no-process-exit": "off", - "no-proto": "off", - "no-prototype-builtins": "off", - "no-redeclare": "error", - "no-regex-spaces": "error", - "no-restricted-globals": "off", - "no-restricted-imports": "off", - "no-restricted-modules": "off", - "no-restricted-properties": "off", - "no-restricted-syntax": "off", - "no-return-assign": "off", - "no-return-await": "warn", - "no-script-url": "error", - "no-self-assign": "error", - "no-self-compare": "error", - "no-sequences": "warn", - "no-shadow": "warn", - "no-shadow-restricted-names": "warn", - "no-whitespace-before-property": "error", - "no-spaced-func": "off", - "no-sparse-arrays": "error", - "no-sync": "off", - "no-tabs": "error", - "no-ternary": "off", - "no-trailing-spaces": "error", - "no-this-before-super": "error", - "no-throw-literal": "warn", - "no-undef": "error", - "no-undef-init": "warn", - "no-undefined": "error", - "no-unexpected-multiline": "error", - "no-underscore-dangle": "off", - "no-unmodified-loop-condition": "off", - "no-unneeded-ternary": "error", - "no-unreachable": "error", - "no-unsafe-finally": "error", - "no-unsafe-negation": "error", - "no-unused-expressions": [ - "error", - { - "allowShortCircuit": true, - "allowTernary": true - } - ], - "no-unused-labels": "error", - "no-unused-vars": "error", - "no-use-before-define": "off", - "no-useless-call": "error", - "no-useless-computed-key": "off", - "no-useless-concat": "off", - "no-useless-constructor": "error", - "no-useless-escape": "warn", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-void": "off", - "no-var": "off", - "no-warning-comments": [ - "warn", - { - "terms": ["todo", "fixme", "xxx"], - "location": "start" - } - ], - "no-with": "off", - "array-bracket-spacing": ["error", "never"], - "array-callback-return": "off", - "arrow-body-style": ["error", "as-needed"], - "arrow-parens": ["error", "as-needed"], - "arrow-spacing": "error", - "accessor-pairs": "off", - "block-scoped-var": "warn", - "block-spacing": "error", - "brace-style": ["error", "1tbs"], - "callback-return": "off", - "camelcase": [ - "warn", - { - "properties": "never" - } - ], - "capitalized-comments": "off", - "class-methods-use-this": "off", - "comma-dangle": "off", - "comma-spacing": "error", - "comma-style": ["error", "last"], - "complexity": "off", - "computed-property-spacing": ["error", "never"], - "consistent-return": "off", - "consistent-this": "off", - "constructor-super": "error", - "curly": "error", - "default-case": "off", - "dot-location": ["warn", "property"], - "dot-notation": "error", - "eol-last": "error", - "eqeqeq": ["error", "smart"], - "func-call-spacing": "error", - "func-names": "off", - "func-name-matching": "off", - "func-style": "off", - "generator-star-spacing": "error", - "global-require": "off", - "guard-for-in": "warn", - "handle-callback-err": "off", - "id-blacklist": "off", - "id-length": "off", - "id-match": "off", - "indent": "off", - "init-declarations": "off", - "jsx-quotes": "error", - "key-spacing": "error", - "keyword-spacing": "error", - "linebreak-style": "error", - "line-comment-position": "off", - "lines-around-comment": "off", - "lines-around-directive": "off", - "max-depth": "warn", - "max-len": "warn", - "max-lines": ["warn", 500], - "max-nested-callbacks": "warn", - "max-params": "off", - "max-statements": "off", - "max-statements-per-line": "error", - "multiline-ternary": "off", - "new-cap": "off", - "new-parens": "error", - "newline-after-var": "off", - "newline-before-return": "off", - "newline-per-chained-call": "off", - "object-curly-newline": "off", - "object-curly-spacing": ["error", "always"], - "object-property-newline": [ - "error", - { - "allowMultiplePropertiesPerLine": true - } - ], - "object-shorthand": "off", - "one-var": "off", - "one-var-declaration-per-line": "off", - "operator-assignment": "warn", - "operator-linebreak": "error", - "padded-blocks": "off", - "prefer-arrow-callback": "off", - "prefer-const": "warn", - "prefer-destructuring": "warn", - "prefer-numeric-literals": "warn", - "prefer-promise-reject-errors": "warn", - "prefer-reflect": "off", - "prefer-rest-params": "error", - "prefer-spread": "error", - "prefer-template": "warn", - "quote-props": ["error", "as-needed"], - "quotes": [ - "warn", - "single", - { - "avoidEscape": true - } - ], - "radix": "off", - "require-await": "error", - "require-jsdoc": "off", - "require-yield": "error", - "rest-spread-spacing": "error", - "semi": ["error", "never"], - "semi-spacing": "error", - "sort-keys": "off", - "sort-imports": "off", - "sort-vars": "off", - "space-before-blocks": "error", - "space-before-function-paren": "off", - "space-in-parens": "error", - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": "error", - "strict": "off", - "symbol-description": "off", - "template-curly-spacing": "off", - "template-tag-spacing": "off", - "unicode-bom": "error", - "use-isnan": "error", - "valid-jsdoc": "off", - "valid-typeof": "error", - "vars-on-top": "warn", - "wrap-iife": "off", - "wrap-regex": "off", - "no-template-curly-in-string": "warn", - "yield-star-spacing": "error", - "yoda": "off", - "react/display-name": "error", - "react/forbid-component-props": "off", - "react/forbid-prop-types": "off", - "react/no-array-index-key": "error", - "react/no-children-prop": "error", - "react/no-danger": "warn", - "react/no-danger-with-children": "error", - "react/no-deprecated": "error", - "react/no-did-mount-set-state": "error", - "react/no-did-update-set-state": "error", - "react/no-direct-mutation-state": "error", - "react/no-find-dom-node": "error", - "react/no-is-mounted": "error", - "react/no-multi-comp": "error", - "react/no-render-return-value": "error", - "react/no-set-state": "off", - "react/no-string-refs": "error", - "react/no-unescaped-entities": "error", - "react/no-unknown-property": "error", - "react/no-unused-prop-types": "off", - "react/prefer-es6-class": "error", - "react/prefer-stateless-function": [1, { "ignorePureComponents": true }], - "react/prop-types": "off", - "react/react-in-jsx-scope": "error", - "react/react-default-props": "off", - "react/require-optimization": "off", - "react/require-render-return": "error", - "react/self-closing-comp": "error", - "react/sort-comp": "error", - "react/sort-prop-types": "error", - "react/style-prop-object": "off", - "react/jsx-boolean-value": ["error", "never"], - "react/jsx-closing-bracket-location": "error", - "react/jsx-curly-spacing": ["error", "never"], - "react/jsx-equals-spacing": "error", - "react/jsx-filename-extension": "error", - "react/jsx-first-prop-new-line": ["error", "multiline-multiprop"], - "react/jsx-handler-names": "error", - "react/jsx-indent": "off", - "react/jsx-indent-props": "off", - "react/jsx-key": "error", - "react/jsx-max-props-per-line": "off", - "react/jsx-no-bind": "off", - "react/jsx-no-comment-textnodes": "error", - "react/jsx-no-duplicate-props": "error", - "react/jsx-no-literals": "off", - "react/jsx-no-target-blank": "error", - "react/jsx-no-undef": "error", - "react/jsx-pascal-case": [ - "error", - { - "ignore": ["_"] - } - ], - "react/jsx-sort-props": "off", - "react/jsx-tag-spacing": [ - "error", - { - "beforeSelfClosing": "always" - } - ], - "react/jsx-uses-react": "error", - "react/jsx-uses-vars": "error", - "react/jsx-wrap-multilines": "error", - "import/no-unresolved": "error", - "import/named": "error", - "import/default": "error", - "import/namespace": "error", - "import/no-restricted-paths": "off", - "import/no-absolute-path": "error", - "import/no-dynamic-require": "off", - "import/no-internal-modules": "off", - "import/no-webpack-loader-syntax": "error", - "import/export": "error", - "import/no-named-as-default": "warn", - "import/no-named-as-default-member": "warn", - "import/no-deprecated": "warn", - "import/no-extraneous-dependencies": [ - "warn", - { - "devDependencies": true, - "packageDir": "." - } - ], - "import/no-mutable-exports": "warn", - "import/unambiguous": "off", - "import/no-commonjs": "off", - "import/no-amd": "error", - "import/no-nodejs-modules": "off", - "import/first": "warn", - "import/no-duplicates": "error", - "import/no-namespace": "off", - "import/extensions": "warn", - "import/order": [ - "error", - { - "newlines-between": "always", - "groups": ["builtin", "external", ["parent", "sibling", "index"]] - } - ], - "import/newline-after-import": [ - "error", - { - "count": 1 - } - ], - "import/prefer-default-export": "off", - "import/max-dependencies": "off", - "import/no-unassigned-import": "off", - "import/no-named-default": "warn", - "import/no-anonymous-default-export": "off" - }, - "plugins": ["react", "import", "prettier"], - "settings": { - "import/resolver": { - "node": { - "extensions": [".js", ".jsx"] - } - }, - "react": { - "createClass": "createReactClass", - "pragma": "React", - "version": "16.13" - }, - "propWrapperFunctions": [ - "forbidExtraProps", - {"property": "freeze", "object": "Object"}, - {"property": "myFavoriteWrapper"} - ] - } -} diff --git a/fittrackee_client_old/.prettierrc b/fittrackee_client_old/.prettierrc deleted file mode 100644 index f6fd7eee..00000000 --- a/fittrackee_client_old/.prettierrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "tabWidth": 2, - "useTabs": false, - "semi": false, - "singleQuote": true, - "arrowParens": "avoid", - "trailingComma": "es5", - "bracketSpacing": true, - "jsxBracketSameLine": false -} diff --git a/fittrackee_client_old/public/favicon.ico b/fittrackee_client_old/public/favicon.ico deleted file mode 100644 index fa0ad4fc3c8a1d8dfde1be000cf085346205c790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmb79u?>JQ408%2L%J|mo%$aS@D5+_S#c5pQ-z4-T8bSd1%yylzB8HtD}Y8SSxD=T z>ev?a-beOlzeb{#(DV#Q=3-J`@I;3zJvE;xyEDR}(MERHj0kwJSW=Phz2^k%{PW+k H8JoQT!YK+e diff --git a/fittrackee_client_old/public/img/photo.png b/fittrackee_client_old/public/img/photo.png deleted file mode 100644 index a802c0d70ff34518de69b20e7d4e7509bfa0fab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2941 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 C5PP`* diff --git a/fittrackee_client_old/public/img/sports/mountain-biking.png b/fittrackee_client_old/public/img/sports/mountain-biking.png deleted file mode 100644 index 9b26acfc13e66f22270edd0a270966e76b5fbabd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4406 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 diff --git a/fittrackee_client_old/public/img/sports/running.png b/fittrackee_client_old/public/img/sports/running.png deleted file mode 100644 index fe4a2814f150dfd95d4d5f96b48026ebba2b4730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3104 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 diff --git a/fittrackee_client_old/public/img/sports/walking.png b/fittrackee_client_old/public/img/sports/walking.png deleted file mode 100644 index 1fc5c0d7e93f0ee467e09b85aac4b70ee9cd8fbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3564 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 YKqDIce94M6OgIGK9h~iJF{I@G0z%_ZssI20 diff --git a/fittrackee_client_old/public/img/weather/clear-night.png b/fittrackee_client_old/public/img/weather/clear-night.png deleted file mode 100644 index bf3374f5012f0b3fb942258a3b4e6dcd0848ccd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2574 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 diff --git a/fittrackee_client_old/public/img/weather/cloudy.png b/fittrackee_client_old/public/img/weather/cloudy.png deleted file mode 100644 index 3d441c465d65b165e2548fceae34087d6949171a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1998 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 diff --git a/fittrackee_client_old/public/img/weather/partly-cloudy-day.png b/fittrackee_client_old/public/img/weather/partly-cloudy-day.png deleted file mode 100644 index 9ab61a21abf27a435befb286551b86c28dbf0c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2688 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 diff --git a/fittrackee_client_old/public/img/weather/partly-cloudy-night.png b/fittrackee_client_old/public/img/weather/partly-cloudy-night.png deleted file mode 100644 index 89a03524bed82738284a5aa0832b27350e764e2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2417 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 diff --git a/fittrackee_client_old/public/img/weather/rain.png b/fittrackee_client_old/public/img/weather/rain.png deleted file mode 100644 index 801fb9cc25d33d8be879cf667c19712c279f4a8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2735 zcmZ`*c{~%0AD$v2t2g(NGs!V*#@HNXuDP3-L=uZph%Kfy>P?F^M?~%p*OVp^Ig?bb zWFt32h!43IG7aQTEnoKF9wD5kdaM z!RV*>Bp7ts`7{9VDn)F^Ux=?&0_@Sw06^>se(nwcu*J9He*gdk0{~$0A^-q?1OUiH z?X?k^x2q^<@_6XsrF-^EQzU~6^^$a7eY!pNS!ZYqr|=;J&vTFeH?ss;CA&QU9x&v zxfuwudh*Hce2VA7U$5FTl{iAu?dbu!_s~UxWoowGCk33sCalzrQa^2^M9lPbFD(N9RztAAXTCb1=%gu<+h67>3%C za!#SLrk-Kd)tzTz2J)-9cf|Wx;aZF7e%b#CeIUX`#Q%<`UJMzL8fmKE;QGsx8|Y| z;)kHL!#c-nfsxl$K;o)uH8tH(UIb6m)Cg4ht+`azCy3DGeQysNT#RSv11tBl#r0&! zzb)2_(8xO?f0dU7T7m>(Rmz;|)Ij$SRyXzKF`FUhy-3~g=C*iiwx5bov-Ya-ApH8N z8>TkkT4D1BQX!NpCmkc~gdY}IF3zzD6r6XWe;q^In%TefyI)9pZ|d&F3B_OHwBER- zSNnB!c^$<(gjxzf!tgu`173^N>(N~sO%qNyv7srb{Pnz|D{MuS7^BZ8L7K+-ol{FM!nj&GcHquFQ-5`Z@)qF#n#a;Oyb5@zFV5A zVXCrjDq@utWJ7a$ij$5fQ~EV0uwvxf>tpsVL!Lptp}Fs(+z8Bv#^4JBx}p#_E!BFD zr&~!e4i<#YG}dk*Rb(QnNMRezksL^U@@@RFs@B?@cN?DbZCP5YmOn1#+10HXE}SV_ zR;K1e9MEX5=-4+&A5z$II@r>|LuD7qYk)sCewJ|*-WA0kOo?^8FJpIjJu6eGtLF8K z4sA{i`9RP_Qi;RwxlLx^$SB|}h-9HTB4C4dH4hpYJaznwD9k$U$UJNJFhTV1*uE1H z7no$W?!ue_tD14^q~COR=$`0zhtd_}?(u%Gc}1Gjpg=pC`Zu*!L2Wlwwf z$sh7lQ9{+xr~IZ)J;S-~KVw-U(lV^H47fIIGU$=eQG#QB4MVO`z|8Sij8C2Er+ZP1 z*kkT9`-_3Abuk%&@|w<+7s=*3i4m)%CA;gs=ZmRk>Km&rQ|#+3-qs7#B&`XTsJu;4 z%BXDENRaYCArdXDyFf}(+^UB+zp*NV+I;P{`&A%e%Kf9pD%dWvlZwhudf57qiHf5} z4f@sL8}|9VHO|vausCOSd1PDfAEjBfpRfTq-m<92HAQ~qb%Ork4mid@;;gkY`$2Miy zYPoB&9d09D^S$n&N5kbP9PdT1?cw*e>0^RTG_3UNF$~TPd*zY@BA5_9ZLz3dsAik) zs7L&M=XmVnY;En{4AF_XR2(I?|C!Qy+2{}W8+SV`s;?!gr1GKs1UB)XK*S7@CW77h zNT~jG^1^p@;I9lnlxM%gY{#QppA27KAu9#EY9Fv3?SV#nW%P|E*qrIky>;vuOB+u@A$EnTVY4)0v`&$CD~Wg)_SQ#a%o}oI#H8U znowOVO2wE@BZ_g4==QIF`|U;7mT^F2_FsO5qK*lS7M4#%H)JjL>FQ?i%3{b)Ko0%7 z5m{Z`Y`Sn`d%XwP;`5qrMVowQlEQWN!G?m7rV?Y*(Y7HsNZUFAls%7L?#8*!es0CM zP+Yw@k2bEbSF&=;vO?G|Vee)fXG*hxGavg=|Lh88U@FD!#HGW4mXye14@wH8s}ZP- zW#*o^O73hq$=UxosHk%)+N&Wu@=?%^lZ&HtVMxI?z)p($d-oINni9hzkobWD)q>MI zz=(xgAJ|BJ)oVO|ne#YA&{Emp{jI051FQkz7@v17rn01XQ?Sk*isDOhL$kCYgh8m= zTGnRAP})(Lw>aTzMQu+_?Md;d#tu|6r!IqGl#b1~mRIpUPEfw>vWr^}JhEsc%pXQu zIvVCR|7#xsTAB7+gQ|69MsPbJv0C-TlLxjAvdX&ThO<8hhL@J>M6WVek=V38E&pa` zQL)ooiO|1?b*qRB*5+zmKzaS43oC(rbJHV<$a0~%_;s$dOJa=;No-z`v*{?^yOna( zmE3e?g5AXoCyZW!#1w=RtKzYj>>Hlh+%Br$k_P4Uca}d7_Xqn@8C4>!nPj8p_WcDM zs!@e5##<3w*xe4?!;adc5j&euoNOGuI>NAMvDKBlBQ>rNS1itJAD3%+*}&fGJYXsK zXEDiqx{cp%QMjdvwMDO?Q?#9b!-|ANpr>nHqz+_9ZojdX*VVNg7Kk zWeEupAw$Sy%|w>wwN&5q&v(xE$M?s5p7Y%MJm;Qs|GMdJE_PxfiXs32h&kBXoaS-j zpAzQhA<3l5ibwqZr_iSWpe{#r&rg7-)o}Kw(ExB+ljpkz06V-^;vxV$C0XTPKprGP2N~C`f~&0s`1ynQJjpWYqk;Yb5syn7 z8;htnEc34hRPkj;%2%)#O>tEBz=Qz1N?DP!LK)YE1?X>b(zM_Qj#|Y_1RRiu#_S3y zHLrZzeYrc;vdR%yeO}Nr`Eqx~VtSz^Dug@!X+bQ{@rzX1=A^GUr+(PhJWI*GO7^FO z<0-J8ra>yWQmva|Bf1rIL2BXz?w#~0wOfH+q5Mt;5$lF*v^Gc1_IvEJ`l{{<&LldC zv{ld%s~KprhCZZC9XI#YO?*XFHhLo(ir7AFsCaTs$b

q@Yxk>u3y(a4 z^|z=(q7!A$NhvKn=rMT@@!Uxxy*m_EMepe1-&M%N%vqO1R^k2L>HAgAIN#INS=ZK(FE`PvnCpDp8Igz}mOed67$+|HSUjN*~(-rGyt!mo2H zFn)`J;1>%Uw>j0WzGv~p_eH}#J{-KO!^09I^&LzejcB5Il_*yi_LBR zXlN-`iRjg1$-Nr!Yw&gnM>B`pl|}l4OP+EAV$bX7MDAElgZK|m-K6-IL4I5lT9@65 z8#gov_Hix!7@1|N3-ZvY zq3&%X&7aGp4v5~(xh4}EeBQW*kflLSzir#JT=5VXYqjN80ioQkLJg81eD;pwGl~;c2D9l`5 zzgBVvNRaHZrJ=tnNVLDuLvKU*e4u#SVYcbj)qnGBes?e<$F-&V6t(QmoILDWmxmh} zPmt`9+bbpo^R>d4eno9%C3Qx$P61KBXl=S8slSI__KMrfO&izL)!r^Q&5t#V2O(@f zOTGwIx_CX5s!ZEw;X*RTaUI$ODesmGuX7W;6uRpC3u)mZ~kZy zsrxwW)l6~mkJi*z9Xr^l;B7Jfp*JJb;c3+2*W5z(Vp9IEo@=jrx?yS0KO$OHQdO3# z=CpUXRnzC8+RU zAc@y@t1uN@Ws*r7p;+i$62_sa0!vPD_D578IA`^6vIL4?(?GC<=)fzZnWJ2?LT#?) z9quv1OUYj5>TFr#AAwyJrHACK2v=Z9%0hMS>&;J3l=qe=2Y$1w(UY5U8N4r9hQ0In zNN7p=FYt_C3b%87TVioQ}?O9}GNPo2c$5n$}Y?zmktDqFNBkQ&x4 z(^IDsCS}}uK4<&K7;AA&XG7n80Pa$(flcI4w8LBnXVjSE))%V@hgy*+JA-M|yph9f zW-qP$iS)j6uBSh188}{A3$OV7*^pW8af^&8T~?>d=YA6k(@y!<)jfU@V&E;jM#-$* zMyskhqbKb{lSbJdt*Y;G_`%ynUgjE?+Hx#rAiC7_OX_VA=aGoZCspqDn|7`3Ge23P z+vmR@6||tP6HG;F<_b_opAh_0&3#M2i?AG6# z*h|G`i~tAxhH#dT4`n@{_^PybJv@X-_9yJD5I`IGu;ki^o9V*tf*K?S+%GLi8kykrOY?*Mki zV~WN_?hvM&&L*g?J-HVimThF7$(L`Ff;67o|^d`#>+~j4_ND7W fk}i_Naeko$Xh@hp?HfXoX965hE;f&l*sK2m>A3@) diff --git a/fittrackee_client_old/public/img/weather/snow.png b/fittrackee_client_old/public/img/weather/snow.png deleted file mode 100644 index 8b3871a2543b57ac2084c4f9f988932d2dc97df1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2772 zcmZ`*S6GvY68+IN5SoI36e09pLX;MI?;Yt%krp~3flzdTPz4EuVk8KQn9!6aO0QC+ z7(~PfECP#kB1IHXS#G><_u)RwobSw>^PQJ@m@GRRQ#NLPW&i-#%*~7(=$Q1onEs%5 zgj$Ur9sUT^x7G)MCLGHzp9^#@eA~>y8UW%Y>AF+^_(2~fZ2$lo3IJQ)001Wdz?I0- z4tp*7;+(IgsSyCw-WP+>8936+Et;N0{ap+O(nJh>$cQqxHfH<>#LA<20n}YaSA!p$ z8|gb?=4g)+BAsRgM|5ZPgbgrUvf%1W^OEA2Cpje6mxTue<#dCc7I>z5PC)SL)H^<7 zg-q-_r!hNnZVcQv!>5|G#FD&`Sr}*BB29cXpq^Fg#^lic4xwF znf#ZdUrn)-+P%?t7ZpN4s-4i2YeO`hBAGo0%0xhOtjxn zI~hzIZTO5?TQtu2ejX=XtnP1^WNmr2xEb{c^Aprf0K!Lc(ZHDqWupL zXq`YN68L`{kYO^qfkBR{#pR0yv`;spL2046`{z0*Vq%abCj1EU<&A#t9!lihKFo05 zH@3GWot@>Q<}kS?N)2Mn9BFaJcbU$oDZu@=!^~}NBv8)h}N4c zFVQ!qZPjk@g_B3WkLlw3I<+z+TIS!k;j|V|&o;*GYig;kS69fmbkR?(%KeH*LK#_o zuXqG>!yVqC&r;YC3zJ)tVZ#uTtdLKe*o!lQ>Sp&hv4s{aL7dc^?>XWwz1H?5Eq*>6 zZIM4Dl7*bV`eoqr*Y+nxR8#>YLBf8A_f#-qJqA$~|1|tZw}cCMh?G0-R1Xg8ZkPvb znPt%jhE#VC(RRk+?I*f~uPFvf?H_Nkmow97QRJ;bxFL(1&uF_I$1}weZ%)nBE^SPk z$z|*7Q)ZXhO8X-1883eaQ&*y>^PUh=C70Fxt_fTGo*uWo@Zo3M;f)D+vhV6XcD(D2 z;bD|*k!hNwoM+X=#+y^X&6=$CLzHQLSV}ZpS^{+J<_UsA)%#B=wx_I@;4+$y29Wr- zysco?T2J&`ucT-fV}V2Rr|;lmtl<^;;ZA*b_VAhLU5YpMSRUZaCS#sY(WxqFdwZm``Ss-jZ4FV<89NreO%uMwaePM!6P%mcRldHr z@nP1!5PTJ~3D1`kjJRXh+LK%PU};&N1{VBD8!bVHseRUqT zROsNrX->wdL4_JRWK%TVtw$}sZ4^J#$FShuky-JWfmz-SQt((^Kq2pMhLaES3-FH2 ze+R5yer9hgW3!W-U{;Awjr%&@@dCx6%Z>bZwPF-s)ZpyG|M*I*2QpZFIse3jDr1qx zJsQCf+H!326TQ93sdbg7Be4>2c7tg;avc^2Pw;G%?=+7`S@sKUw)tsDhX3X8I-zd+ zHsR92UVV7j%|3_aA6{&e?9O#I{3HdkIp~*lL5D3^Dt7b3NBf-O(6zV0xtET~enxvj z3+|ff#3#z^y}9x&j?$5otfc1fBwwBUw+$~k24l^9_d^QUq_;tN8RjR_+}S;{G8o}E z-2+mgYj9GXN4n)o7}3)cyrwwJbbhJdPe8oY$h`||afQdQBb)P9s|ZBJ3YJX`O`XGZ z{d_k6;IZz}K2DlLQTd#I^vPT2_v0}<&{_{2UdBBI$>yX#=j7WilFweBTNA?yF{=x+ z;@y`?59>NKGTssshum_gac2IFRpKTScj6_zw3bUx(*+ zCGr=YWgsCgIwxEq(N(-h{h?bej%Hf4Rm$Kf<5c#dc$b~E7kt9Oq|U)9>$I~7ImWk0 z!}>NfK2Qi~cjyn&^u zVX!h|tIr7*+}pfW#9G$0isTuXah9fGeRl064{OYK$7*7ICbtOOgG=H=n)nA9i_};p zRA^IK^zvS-W$vNnpb_#5%?zo5*iQbotcq07k6pZAgB&#x#ThIG8GSlJtQXQ;DF8EK zo#42Zc@a02oLsKLm4vt-E|@oR(5Lq^yTZD-xn>ZjFQo*%^wpWwG TPYQHb*6?Tg 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 diff --git a/fittrackee_client_old/public/index.html b/fittrackee_client_old/public/index.html deleted file mode 100644 index 875d6061..00000000 --- a/fittrackee_client_old/public/index.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - FitTrackee - - - -

- - - - - - diff --git a/fittrackee_client_old/public/manifest.json b/fittrackee_client_old/public/manifest.json deleted file mode 100644 index e782e789..00000000 --- a/fittrackee_client_old/public/manifest.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "short_name": "FitTrackee", - "name": "Self hosted workout/activity tracker", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff", - "version": "0.2.0-beta" -} diff --git a/fittrackee_client_old/src/actions/application.js b/fittrackee_client_old/src/actions/application.js deleted file mode 100644 index 1749292a..00000000 --- a/fittrackee_client_old/src/actions/application.js +++ /dev/null @@ -1,47 +0,0 @@ -import FitTrackeeGenericApi from '../fitTrackeeApi' -import { history } from '../index' -import { generateIds } from '../utils' -import { emptyMessages, setError } from './index' - -export const setAppConfig = data => ({ - type: 'SET_APP_CONFIG', - data, -}) - -export const setAppStats = data => ({ - type: 'SET_APP_STATS', - data, -}) - -const SetAppErrors = messages => ({ type: 'APP_ERRORS', messages }) - -export const getAppData = target => dispatch => - FitTrackeeGenericApi.getData(target) - .then(ret => { - if (ret.status === 'success') { - if (target === 'config') { - dispatch(setAppConfig(ret.data)) - } else if (target === 'stats/all') { - dispatch(setAppStats(ret.data)) - } - } else { - dispatch(setError(`application|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`application|${error}`))) - -export const updateAppConfig = formData => dispatch => { - dispatch(emptyMessages()) - FitTrackeeGenericApi.updateData('config', formData) - .then(ret => { - if (ret.status === 'success') { - dispatch(setAppConfig(ret.data)) - history.push('/admin/application') - } else if (Array.isArray(ret.message)) { - dispatch(SetAppErrors(generateIds(ret.message))) - } else { - dispatch(setError(ret.message)) - } - }) - .catch(error => dispatch(setError(`application|${error}`))) -} diff --git a/fittrackee_client_old/src/actions/index.js b/fittrackee_client_old/src/actions/index.js deleted file mode 100644 index 2901dd50..00000000 --- a/fittrackee_client_old/src/actions/index.js +++ /dev/null @@ -1,111 +0,0 @@ -import i18next from 'i18next' - -import FitTrackeeApi from '../fitTrackeeApi/index' -import { history } from '../index' - -export const emptyMessages = () => ({ - type: 'CLEAN_ALL_MESSAGES', -}) - -export const setData = (target, data) => ({ - type: 'SET_DATA', - data, - target, -}) - -export const setPaginatedData = (target, data, pagination) => ({ - type: 'SET_PAGINATED_DATA', - data, - pagination, - target, -}) - -export const setError = message => ({ - type: 'SET_ERROR', - message, -}) - -export const setLanguage = language => ({ - type: 'SET_LANGUAGE', - language, -}) - -export const setLoading = loading => ({ - type: 'SET_LOADING', - loading, -}) - -export const updateSportsData = data => ({ - type: 'UPDATE_SPORT_DATA', - data, -}) - -export const updateUsersData = data => ({ - type: 'UPDATE_USER_DATA', - data, -}) - -export const getOrUpdateData = - (action, target, data, canDispatch = true) => - dispatch => { - dispatch(setLoading(true)) - if (data && data.id && target !== 'workouts' && isNaN(data.id)) { - dispatch(setLoading(false)) - return dispatch(setError(`${target}|Incorrect id`)) - } - dispatch(emptyMessages()) - return FitTrackeeApi[action](target, data) - .then(ret => { - if (ret.status === 'success') { - if (canDispatch) { - if (target === 'users' && action === 'getData') { - return dispatch( - setPaginatedData(target, ret.data, ret.pagination) - ) - } - dispatch(setData(target, ret.data)) - } else if (action === 'updateData' && target === 'sports') { - dispatch(updateSportsData(ret.data.sports[0])) - } else if (action === 'updateData' && target === 'users') { - dispatch(updateUsersData(ret.data.users[0])) - } - } else { - dispatch(setError(`${target}|${ret.message || ret.status}`)) - } - dispatch(setLoading(false)) - }) - .catch(error => { - dispatch(setLoading(false)) - dispatch(setError(`${target}|${error}`)) - }) - } - -export const addData = (target, data) => dispatch => - FitTrackeeApi.addData(target, data) - .then(ret => { - if (ret.status === 'created') { - history.push(`/admin/${target}`) - } else { - dispatch(setError(`${target}|${ret.status}`)) - } - }) - .catch(error => dispatch(setError(`${target}|${error}`))) - -export const deleteData = (target, id) => dispatch => { - if (isNaN(id)) { - return dispatch(setError(target, `${target}|Incorrect id`)) - } - return FitTrackeeApi.deleteData(target, id) - .then(ret => { - if (ret.status === 204) { - history.push(`/admin/${target}`) - } else { - dispatch(setError(`${target}|${ret.message || ret.status}`)) - } - }) - .catch(error => dispatch(setError(`${target}|${error}`))) -} - -export const updateLanguage = language => dispatch => { - i18next.changeLanguage(language).then(dispatch(setLanguage(language))) -} diff --git a/fittrackee_client_old/src/actions/stats.js b/fittrackee_client_old/src/actions/stats.js deleted file mode 100644 index fbecaa4d..00000000 --- a/fittrackee_client_old/src/actions/stats.js +++ /dev/null @@ -1,13 +0,0 @@ -import FitTrackeeGenericApi from '../fitTrackeeApi' -import { setData, setError } from './index' - -export const getStats = (userName, type, data) => dispatch => - FitTrackeeGenericApi.getData(`stats/${userName}/${type}`, data) - .then(ret => { - if (ret.status === 'success') { - dispatch(setData('statistics', ret.data)) - } else { - dispatch(setError(`statistics|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`statistics|${error}`))) diff --git a/fittrackee_client_old/src/actions/user.js b/fittrackee_client_old/src/actions/user.js deleted file mode 100644 index bf342a0e..00000000 --- a/fittrackee_client_old/src/actions/user.js +++ /dev/null @@ -1,174 +0,0 @@ -import FitTrackeeGenericApi from '../fitTrackeeApi' -import FitTrackeeApi from '../fitTrackeeApi/auth' -import { history } from '../index' -import { generateIds } from '../utils' -import { getOrUpdateData, setError, updateLanguage } from './index' -import { getAppData } from './application' - -const AuthError = message => ({ type: 'AUTH_ERROR', message }) - -const AuthErrors = messages => ({ type: 'AUTH_ERRORS', messages }) - -const PictureError = message => ({ type: 'PICTURE_ERROR', message }) - -const ProfileSuccess = profil => ({ type: 'PROFILE_SUCCESS', profil }) - -const ProfileError = message => ({ type: 'PROFILE_ERROR', message }) - -const ProfileUpdateError = message => ({ - type: 'PROFILE_UPDATE_ERROR', - message, -}) - -export const logout = () => ({ type: 'LOGOUT' }) - -export const loadProfile = () => dispatch => { - if (window.localStorage.getItem('authToken')) { - return dispatch(getProfile()) - } - return { type: 'LOGOUT' } -} - -export const getProfile = () => dispatch => - FitTrackeeGenericApi.getData('auth/profile') - .then(ret => { - if (ret.status === 'success') { - dispatch(getOrUpdateData('getData', 'sports')) - ret.data.isAuthenticated = true - if (ret.data.language) { - dispatch(updateLanguage(ret.data.language)) - } - return dispatch(ProfileSuccess(ret.data)) - } - return dispatch(ProfileError(ret.message)) - }) - .catch(error => { - throw error - }) - -export const loginOrRegisterOrPasswordReset = (target, formData) => dispatch => - FitTrackeeApi.loginOrRegisterOrPasswordReset(target, formData) - .then(ret => { - if (ret.status === 'success') { - if (target === 'password/reset-request') { - return history.push({ - pathname: '/password-reset/sent', - }) - } - if (target === 'password/update') { - return history.push({ - pathname: '/updated-password', - }) - } - if (target === 'login' || target === 'register') { - window.localStorage.setItem('authToken', ret.auth_token) - if (target === 'register') { - dispatch(getAppData('config')) - } - return dispatch(getProfile()) - } - } - return dispatch(AuthError(ret.message)) - }) - .catch(error => { - throw error - }) - -const RegisterFormControl = (formData, onlyPasswords = false) => { - const errMsg = [] - if ( - !onlyPasswords && - (formData.username.length < 3 || formData.username.length > 12) - ) { - errMsg.push('3 to 12 characters required for username.') - } - if (formData.password !== formData.password_conf) { - errMsg.push("Password and password confirmation don't match.") - } - if (formData.password.length < 8) { - errMsg.push('8 characters required for password.') - } - return errMsg -} - -export const handleUserFormSubmit = (formData, formType) => dispatch => { - if (formType === 'register' || formType === 'password/update') { - const ret = RegisterFormControl(formData, formType === 'password/update') - if (ret.length > 0) { - return dispatch(AuthErrors(generateIds(ret))) - } - } - return dispatch(loginOrRegisterOrPasswordReset(formType, formData)) -} - -export const handleProfileFormSubmit = formData => dispatch => { - if (!formData.password === formData.password_conf) { - return dispatch( - ProfileUpdateError("Password and password confirmation don't match.") - ) - } - delete formData.id - return FitTrackeeGenericApi.postData('auth/profile/edit', formData) - .then(ret => { - if (ret.status === 'success') { - dispatch(getProfile()) - return history.push('/profile') - } - dispatch(ProfileUpdateError(ret.message)) - }) - .catch(error => { - throw error - }) -} - -export const uploadPicture = event => dispatch => { - event.preventDefault() - const form = new FormData() - form.append('file', event.target.picture.files[0]) - event.target.reset() - return FitTrackeeGenericApi.addDataWithFile('auth/picture', form) - .then(ret => { - if (ret.status === 'success') { - return dispatch(getProfile()) - } - const msg = - ret.status === 413 - ? 'Error during picture update, file size exceeds max size.' - : ret.message - return dispatch(PictureError(msg)) - }) - .catch(error => { - throw error - }) -} - -export const deletePicture = () => dispatch => - FitTrackeeApi.deletePicture() - .then(ret => { - if (ret.status === 204) { - return dispatch(getProfile()) - } - return dispatch(PictureError(ret.message)) - }) - .catch(error => { - throw error - }) - -export const deleteUser = - (username, isAdmin = false) => - dispatch => - FitTrackeeGenericApi.deleteData('users', username) - .then(ret => { - if (ret.status === 204) { - dispatch(getAppData('config')) - if (isAdmin) { - history.push('/admin/users') - } else { - dispatch(logout()) - history.push('/') - } - } else { - ret.json().then(r => dispatch(setError(`${r.message}`))) - } - }) - .catch(error => dispatch(setError(`user|${error}`))) diff --git a/fittrackee_client_old/src/actions/workouts.js b/fittrackee_client_old/src/actions/workouts.js deleted file mode 100644 index 2c902983..00000000 --- a/fittrackee_client_old/src/actions/workouts.js +++ /dev/null @@ -1,192 +0,0 @@ -import FitTrackeeGenericApi from '../fitTrackeeApi' -import { history } from '../index' -import { formatChartData } from '../utils/workouts' -import { setError, setLoading } from './index' -import { loadProfile } from './user' - -export const pushWorkouts = workouts => ({ - type: 'PUSH_WORKOUTS', - workouts, -}) - -export const removeWorkout = workoutId => ({ - type: 'REMOVE_WORKOUT', - workoutId, -}) - -export const updateCalendar = workouts => ({ - type: 'UPDATE_CALENDAR', - workouts, -}) - -export const setGpx = gpxContent => ({ - type: 'SET_GPX', - gpxContent, -}) - -export const setChartData = chartData => ({ - type: 'SET_CHART_DATA', - chartData, -}) - -export const addWorkout = form => dispatch => - FitTrackeeGenericApi.addDataWithFile('workouts', form) - .then(ret => { - if (ret.status === 'created') { - if (ret.data.workouts.length === 0) { - dispatch(setError('workouts|no correct file.')) - } else if (ret.data.workouts.length === 1) { - dispatch(loadProfile()) - history.push(`/workouts/${ret.data.workouts[0].id}`) - } else { - // ret.data.workouts.length > 1 - dispatch(loadProfile()) - history.push('/') - } - } else if (ret.status === 413) { - dispatch( - setError('workouts|File size is greater than the allowed size') - ) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - dispatch(setLoading(false)) - }) - .catch(error => { - dispatch(setLoading(false)) - dispatch(setError(`workouts|${error}`)) - }) - -export const addWorkoutWithoutGpx = form => dispatch => - FitTrackeeGenericApi.addData('workouts/no_gpx', form) - .then(ret => { - if (ret.status === 'created') { - dispatch(loadProfile()) - history.push(`/workouts/${ret.data.workouts[0].id}`) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) - -export const getWorkoutGpx = workoutId => dispatch => { - if (workoutId) { - return FitTrackeeGenericApi.getData(`workouts/${workoutId}/gpx`) - .then(ret => { - if (ret.status === 'success') { - dispatch(setGpx(ret.data.gpx)) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) - } - dispatch(setGpx(null)) -} - -export const getSegmentGpx = (workoutId, segmentId) => dispatch => { - if (workoutId) { - return FitTrackeeGenericApi.getData( - `workouts/${workoutId}/gpx/segment/${segmentId}` - ) - .then(ret => { - if (ret.status === 'success') { - dispatch(setGpx(ret.data.gpx)) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) - } - dispatch(setGpx(null)) -} - -export const getWorkoutChartData = workoutId => dispatch => { - if (workoutId) { - return FitTrackeeGenericApi.getData(`workouts/${workoutId}/chart_data`) - .then(ret => { - if (ret.status === 'success') { - dispatch(setChartData(formatChartData(ret.data.chart_data))) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) - } - dispatch(setChartData(null)) -} - -export const getSegmentChartData = (workoutId, segmentId) => dispatch => { - if (workoutId) { - return FitTrackeeGenericApi.getData( - `workouts/${workoutId}/chart_data/segment/${segmentId}` - ) - .then(ret => { - if (ret.status === 'success') { - dispatch(setChartData(formatChartData(ret.data.chart_data))) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) - } - dispatch(setChartData(null)) -} - -export const deleteWorkout = id => dispatch => - FitTrackeeGenericApi.deleteData('workouts', id) - .then(ret => { - if (ret.status === 204) { - Promise.resolve(dispatch(removeWorkout(id))) - .then(() => dispatch(loadProfile())) - .then(() => history.push('/')) - } else { - dispatch(setError(`workouts|${ret.status}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) - -export const editWorkout = form => dispatch => - FitTrackeeGenericApi.updateData('workouts', form) - .then(ret => { - if (ret.status === 'success') { - dispatch(loadProfile()) - history.push(`/workouts/${ret.data.workouts[0].id}`) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - dispatch(setLoading(false)) - }) - .catch(error => { - dispatch(setLoading(false)) - dispatch(setError(`workouts|${error}`)) - }) - -export const getMoreWorkouts = params => dispatch => - FitTrackeeGenericApi.getData('workouts', params) - .then(ret => { - if (ret.status === 'success') { - if (ret.data.workouts.length > 0) { - dispatch(pushWorkouts(ret.data.workouts)) - } - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) - -export const getMonthWorkouts = (from, to) => dispatch => - FitTrackeeGenericApi.getData('workouts', { - from, - to, - order: 'desc', - per_page: 100, - }) - .then(ret => { - if (ret.status === 'success') { - dispatch(updateCalendar(ret.data.workouts)) - } else { - dispatch(setError(`workouts|${ret.message}`)) - } - }) - .catch(error => dispatch(setError(`workouts|${error}`))) diff --git a/fittrackee_client_old/src/components/Admin/AdminApplication.jsx b/fittrackee_client_old/src/components/Admin/AdminApplication.jsx deleted file mode 100644 index bc9a8ade..00000000 --- a/fittrackee_client_old/src/components/Admin/AdminApplication.jsx +++ /dev/null @@ -1,228 +0,0 @@ -import React from 'react' -import { connect } from 'react-redux' - -import Message from '../Common/Message' -import { getAppData, updateAppConfig } from '../../actions/application' -import { history } from '../../index' -import { getFileSizeInMB } from '../../utils' - -class AdminApplication extends React.Component { - constructor(props, context) { - super(props, context) - this.state = { - formData: {}, - } - } - - componentDidMount() { - this.initForm() - } - - componentDidUpdate(prevProps) { - if (this.props.appConfig !== prevProps.appConfig) { - this.initForm() - } - } - - initForm() { - const { appConfig } = this.props - const formData = {} - Object.keys(appConfig).map(k => - appConfig[k] === null - ? (formData[k] = '') - : ['max_single_file_size', 'max_zip_file_size'].includes(k) - ? (formData[k] = getFileSizeInMB(appConfig[k])) - : (formData[k] = appConfig[k]) - ) - this.setState({ formData }) - } - - handleFormChange(e) { - const { formData } = this.state - formData[e.target.name] = +e.target.value - this.setState(formData) - } - - render() { - const { - isInEdition, - loadAppConfig, - message, - messages, - onHandleConfigFormSubmit, - t, - } = this.props - const { formData } = this.state - return ( -
- {(message || messages) && ( - - )} - {Object.keys(formData).length > 0 && ( -
-
-
-
- - {t('administration:Application configuration')} - -
-
-
{ - e.preventDefault() - onHandleConfigFormSubmit(formData) - }} - > -
-