Merge branch 'dev' into oauth2

This commit is contained in:
Sam
2022-06-25 21:23:15 +02:00
133 changed files with 2507 additions and 2407 deletions

View File

@ -31,7 +31,7 @@
const emit = defineEmits(['updateValue'])
let text = ref('')
const text = ref('')
function updateText(event: Event & { target: HTMLInputElement }) {
emit('updateValue', event.target.value)

View File

@ -33,8 +33,8 @@
})
const route = useRoute()
let isOpen = ref(false)
let dropdownOptions = props.options.map((option) => option)
const isOpen = ref(false)
const dropdownOptions = props.options.map((option) => option)
function toggleDropdown() {
isOpen.value = !isOpen.value

View File

@ -63,7 +63,7 @@
onBeforeMount(async () => await setZxcvbnOptions(language.value))
function calculatePasswordStrength(password: string) {
let zxcvbnResult = zxcvbn(password)
const zxcvbnResult = zxcvbn(password)
passwordScore.value = zxcvbnResult.score
passwordStrength.value = getPasswordStrength(passwordScore.value)
passwordSuggestions.value = zxcvbnResult.feedback.suggestions

View File

@ -55,7 +55,7 @@
function getSum(total: any, value: any): number {
return getNumber(total) + getNumber(value)
}
let chartData: ComputedRef<ChartData<'bar'>> = computed(() => ({
const chartData: ComputedRef<ChartData<'bar'>> = computed(() => ({
labels: props.labels,
// workaround to avoid dataset modification
datasets: JSON.parse(JSON.stringify(props.datasets)),

View File

@ -134,7 +134,7 @@
setup(props) {
const store = useStore()
let displayedData: Ref<TStatisticsDatasetKeys> = ref('total_distance')
const displayedData: Ref<TStatisticsDatasetKeys> = ref('total_distance')
const statistics: ComputedRef<TStatisticsFromApi> = computed(
() => store.getters[STATS_STORE.GETTERS.USER_STATS]
)

View File

@ -53,7 +53,7 @@
const store = useStore()
const { sports, user } = toRefs(props)
let page = ref(1)
const page = ref(1)
const per_page = 5
const initWorkoutsCount =
props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts

View File

@ -49,8 +49,8 @@
const { sports, user } = toRefs(props)
const dateFormat = 'yyyy-MM-dd'
let day = ref(new Date())
let calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))
const day = ref(new Date())
const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))
const calendarWorkouts: ComputedRef<IWorkout[]> = computed(
() => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]
)

View File

@ -102,7 +102,7 @@
const language: ComputedRef<string> = computed(
() => store.getters[ROOT_STORE.GETTERS.LANGUAGE]
)
let isMenuOpen = ref(false)
const isMenuOpen = ref(false)
function openMenu() {
isMenuOpen.value = true

View File

@ -42,7 +42,7 @@
const emit = defineEmits(['arrowClick', 'timeFrameUpdate'])
let selectedTimeFrame = ref('month')
const selectedTimeFrame = ref('month')
const timeFrames = ['week', 'month', 'year']
function onUpdateTimeFrame(timeFrame: string) {

View File

@ -41,7 +41,7 @@
const { t } = useI18n()
const { sports, user } = toRefs(props)
let selectedTimeFrame = ref('month')
const selectedTimeFrame = ref('month')
const chartParams: Ref<IStatisticsDateParams> = ref(
getChartParams(selectedTimeFrame.value)
)

View File

@ -164,7 +164,7 @@
const appConfig: ComputedRef<TAppConfig> = computed(
() => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]
)
let displayModal: Ref<string> = ref('')
const displayModal: Ref<string> = ref('')
const formErrors = ref(false)
const displayUserEmailForm: Ref<boolean> = ref(false)
const newUserEmail: Ref<string> = ref('')

View File

@ -59,7 +59,7 @@
const fileSizeLimit = appConfig.value.max_single_file_size
? getReadableFileSize(appConfig.value.max_single_file_size)
: ''
let pictureFile: Ref<File | null> = ref(null)
const pictureFile: Ref<File | null> = ref(null)
function deleteUserPicture() {
store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)

View File

@ -123,8 +123,8 @@
const revocationSuccessful: ComputedRef<boolean> = computed(
() => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]
)
let displayModal: Ref<boolean> = ref(false)
let messageToDisplay: Ref<string | null> = ref(null)
const displayModal: Ref<boolean> = ref(false)
const messageToDisplay: Ref<string | null> = ref(null)
onBeforeMount(() => {
loadClient()

View File

@ -70,7 +70,7 @@
})
function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {
let clientsQuery: IOauth2ClientsPayload = {}
const clientsQuery: IOauth2ClientsPayload = {}
if (newQuery.page) {
clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)
}

View File

@ -77,14 +77,14 @@
const { t } = useI18n()
let displayDistance = ref(true)
let beginElevationAtZero = ref(true)
const displayDistance = ref(true)
const beginElevationAtZero = ref(true)
const datasets: ComputedRef<IWorkoutChartData> = computed(() =>
getDatasets(props.workoutData.chartData, t, props.authUser.imperial_units)
)
const fromKmUnit = getUnitTo('km')
const fromMUnit = getUnitTo('m')
let chartData: ComputedRef<ChartData<'line'>> = computed(() => ({
const chartData: ComputedRef<ChartData<'line'>> = computed(() => ({
labels: displayDistance.value
? datasets.value.distance_labels
: datasets.value.duration_labels,

View File

@ -75,7 +75,7 @@
const workout: ComputedRef<IWorkout> = computed(
() => props.workoutData.workout
)
let segmentId: Ref<number | null> = ref(
const segmentId: Ref<number | null> = ref(
route.params.workoutId ? +route.params.segmentId : null
)
const segment: ComputedRef<IWorkoutSegment | null> = computed(() =>
@ -83,7 +83,7 @@
? workout.value.segments[+segmentId.value - 1]
: null
)
let displayModal: Ref<boolean> = ref(false)
const displayModal: Ref<boolean> = ref(false)
const sport = computed(() =>
props.sports
? props.sports.find(

View File

@ -301,7 +301,7 @@
workoutDurationSeconds: '',
workoutDistance: '',
})
let withGpx = ref(
const withGpx = ref(
props.workout.id ? props.workout.with_gpx : props.isCreation
)
let gpxFile: File | null = null

View File

@ -71,7 +71,7 @@
class="fa fa-map-o"
aria-hidden="true"
/>
{{ workout.title }}
<span class="title">{{ workout.title }}</span>
</router-link>
<StaticMap
v-if="workout.with_gpx && hoverWorkoutId === workout.id"
@ -182,7 +182,7 @@
import { WORKOUTS_STORE } from '@/store/constants'
import { IPagination } from '@/types/api'
import { ITranslatedSport } from '@/types/sports'
import { IUserProfile } from '@/types/user'
import { IAuthUserProfile } from '@/types/user'
import { IWorkout, TWorkoutsPayload } from '@/types/workouts'
import { useStore } from '@/use/useStore'
import { getQuery, sortList, workoutsPayloadKeys } from '@/utils/api'
@ -192,7 +192,7 @@
import { defaultOrder } from '@/utils/workouts'
interface Props {
user: IUserProfile
user: IAuthUserProfile
sports: ITranslatedSport[]
}
const props = defineProps<Props>()
@ -238,7 +238,7 @@
}
function getWorkoutsQuery(newQuery: LocationQuery): TWorkoutsPayload {
let workoutQuery = getQuery(newQuery, orderByList, defaultOrder.order_by, {
const workoutQuery = getQuery(newQuery, orderByList, defaultOrder.order_by, {
defaultSort: defaultOrder.order,
})
Object.keys(newQuery)
@ -258,7 +258,7 @@
...payload,
}
Object.entries(convertedPayload).map((entry) => {
if (entry[0].match('speed|distance')) {
if (entry[0].match('speed|distance') && entry[1]) {
convertedPayload[entry[0]] = convertDistance(+entry[1], 'mi', 'km')
}
})
@ -326,6 +326,14 @@
position: relative;
.fa-map-o {
font-size: 0.75em;
padding-right: $default-padding * 0.5;
}
.nav-item {
white-space: nowrap;
.title {
word-break: break-word;
white-space: normal;
}
}
.static-map {
display: none;