Client: add notes to activities - fix 10
+ minor fix on weather
This commit is contained in:
parent
47fc2ab830
commit
066a05c57f
@ -1,4 +1,4 @@
|
|||||||
"""empty message
|
"""Add 'notes' column to 'Activity' table
|
||||||
|
|
||||||
Revision ID: 096dd0b43beb
|
Revision ID: 096dd0b43beb
|
||||||
Revises: 71093ac9ca44
|
Revises: 71093ac9ca44
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
export default function ActivityNotes(props) {
|
||||||
|
const { notes } = props
|
||||||
|
return (
|
||||||
|
<div className="card">
|
||||||
|
<div className="card-body">
|
||||||
|
Notes
|
||||||
|
<div className="activity-notes">
|
||||||
|
{notes ? notes : 'No notes'}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -43,10 +43,10 @@ export default function ActivityWeather(props) {
|
|||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{activity.weather_start.temperature}°C
|
{Number(activity.weather_start.temperature).toFixed(1)}°C
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{activity.weather_end.temperature}°C
|
{Number(activity.weather_end.temperature).toFixed(1)}°C
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@ -58,10 +58,10 @@ export default function ActivityWeather(props) {
|
|||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{activity.weather_start.humidity * 100}%
|
{Number(activity.weather_start.humidity * 100).toFixed(1)}%
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{activity.weather_end.humidity * 100}%
|
{Number(activity.weather_end.humidity * 100).toFixed(1)}%
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@ -73,10 +73,10 @@ export default function ActivityWeather(props) {
|
|||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{activity.weather_start.wind}m/s
|
{Number(activity.weather_start.wind).toFixed(1)}m/s
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{activity.weather_end.wind}m/s
|
{Number(activity.weather_end.wind).toFixed(1)}m/s
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -6,6 +6,7 @@ import ActivityCardHeader from './ActivityCardHeader'
|
|||||||
import ActivityCharts from './ActivityCharts'
|
import ActivityCharts from './ActivityCharts'
|
||||||
import ActivityDetails from './ActivityDetails'
|
import ActivityDetails from './ActivityDetails'
|
||||||
import ActivityMap from './ActivityMap'
|
import ActivityMap from './ActivityMap'
|
||||||
|
import ActivityNotes from './ActivityNotes'
|
||||||
import CustomModal from './../../Others/CustomModal'
|
import CustomModal from './../../Others/CustomModal'
|
||||||
import { getOrUpdateData } from '../../../actions'
|
import { getOrUpdateData } from '../../../actions'
|
||||||
import { deleteActivity } from '../../../actions/activities'
|
import { deleteActivity } from '../../../actions/activities'
|
||||||
@ -106,6 +107,7 @@ class ActivityDisplay extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
<ActivityNotes notes={activity.notes} />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
@ -64,6 +64,18 @@ function FormWithGpx (props) {
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
<div className="form-group">
|
||||||
|
<label>
|
||||||
|
Notes:
|
||||||
|
<textarea
|
||||||
|
name="notes"
|
||||||
|
defaultValue={activity ? activity.notes : ''}
|
||||||
|
disabled={loading}
|
||||||
|
className="form-control input-lg"
|
||||||
|
maxLength="500"
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
{loading ? (
|
{loading ? (
|
||||||
<div className="loader" />
|
<div className="loader" />
|
||||||
) : (
|
) : (
|
||||||
@ -100,13 +112,16 @@ export default connect(
|
|||||||
const form = new FormData()
|
const form = new FormData()
|
||||||
form.append('file', e.target.form.gpxFile.files[0])
|
form.append('file', e.target.form.gpxFile.files[0])
|
||||||
form.append(
|
form.append(
|
||||||
'data', `{"sport_id": ${e.target.form.sport.value}}`
|
'data',
|
||||||
|
`{"sport_id": ${e.target.form.sport.value
|
||||||
|
}, "notes": "${e.target.form.notes.value}"}`
|
||||||
)
|
)
|
||||||
dispatch(addActivity(form))
|
dispatch(addActivity(form))
|
||||||
},
|
},
|
||||||
onEditActivity: (e, activity) => {
|
onEditActivity: (e, activity) => {
|
||||||
dispatch(editActivity({
|
dispatch(editActivity({
|
||||||
id: activity.id,
|
id: activity.id,
|
||||||
|
notes: e.target.form.notes.value,
|
||||||
sport_id: +e.target.form.sport.value,
|
sport_id: +e.target.form.sport.value,
|
||||||
title: e.target.form.title.value,
|
title: e.target.form.title.value,
|
||||||
}))
|
}))
|
||||||
|
@ -103,6 +103,17 @@ function FormWithoutGpx (props) {
|
|||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="form-group">
|
||||||
|
<label>
|
||||||
|
Notes:
|
||||||
|
<textarea
|
||||||
|
name="notes"
|
||||||
|
defaultValue={activity ? activity.notes : ''}
|
||||||
|
className="form-control input-lg"
|
||||||
|
maxLength="500"
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<input
|
<input
|
||||||
type="submit"
|
type="submit"
|
||||||
className="btn btn-primary btn-lg btn-block"
|
className="btn btn-primary btn-lg btn-block"
|
||||||
@ -133,6 +144,7 @@ export default connect(
|
|||||||
activity_date: activityDate,
|
activity_date: activityDate,
|
||||||
distance: +e.target.form.distance.value,
|
distance: +e.target.form.distance.value,
|
||||||
duration,
|
duration,
|
||||||
|
notes: e.target.form.notes.value,
|
||||||
sport_id: +e.target.form.sport_id.value,
|
sport_id: +e.target.form.sport_id.value,
|
||||||
title: e.target.form.title.value,
|
title: e.target.form.title.value,
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,13 @@ label {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.activity-notes {
|
||||||
|
font-size: 0.9em;
|
||||||
|
font-style: italic;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
.activity-page {
|
.activity-page {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user