Skip to content

Commit

Permalink
Merge pull request #1154 from osmlab/prerelease
Browse files Browse the repository at this point in the history
v3.5.7
  • Loading branch information
nrotstan authored Mar 11, 2020
2 parents 84f850a + 46f0a34 commit 34e754e
Show file tree
Hide file tree
Showing 202 changed files with 3,493 additions and 1,986 deletions.
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,36 @@ The format is based on
This project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [v3.5.7] - 2020-03-11
### Added
- Dark mode in Create & Manage area
- Sort challenges by Oldest on Find Challenges page by @brianjor (#935)
- 'missing' and 'exists' property filter operators
- Quick-entry of comma-separated property filter values
- Basic metrics for time spent working on tasks (#762)
- Time durations to entries in Task History widget
- Visual representation of status and priority of tasks shown on Nearby map
- Nearby vs Random option for "Next Task" control on completed tasks
- Limited challenge controls on Project dashboard in Create & Manage area
- Limited project controls on All-Projects dashboard in Create & Manage
- Invitation on Review page for non-reviewers to volunteer as reviewers (#835)
- Task priority column on Review page tables

### Fixed
- Date picker switching back to default dates
- Occasional broken display of empty MR tags on tasks
- Stale link to wiki documentation when creating a challenge (#912)
- Don't split challenge preferred tags on spaces (#1123)
- Status updates to all tasks in Create & Manage not applied to all (#1127)
- Possible error due to missing historical challenge snapshots
- Broken task links in exported comments CSV from Create & Manage
- Task status reset to Created when tasks rebuilt
- Extraneous quotes sometimes included in generated task names

### Changed
- Colors used for color-coded usernames shown in various tables


## [v3.5.6] - 2020-02-24
### Fixed
- Trouble adding new managers to projects (#1122)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "maproulette3",
"version": "3.5.6",
"version": "3.5.7",
"private": true,
"dependencies": {
"@mapbox/geo-viewport": "^0.4.0",
Expand Down
3 changes: 2 additions & 1 deletion public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
<link rel="icon" type="image/png" sizes="16x16" href="%PUBLIC_URL%/assets/images/favicons/favicon-16x16.png">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">

<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=IBM+Plex+Mono|Roboto:300,400,500,700&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css"
integrity="sha512-07I2e+7D8p6he1SIM+1twR5TIrhUQn9+I6yjqD53JQjFiMf8EtC93ty0/5vJTZGF8aAocvHYNEDJajGdNx1IsQ=="
crossorigin=""/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
import { FormattedMessage, injectIntl } from 'react-intl'
import { Link } from 'react-router-dom'
import _map from 'lodash/map'
Expand Down Expand Up @@ -126,7 +125,7 @@ export default class UserActivityTimelineWidget extends Component {
const challengeName = challengeNames.get(challengeId)
return (
<li key={challengeId}>
<h2 className="mr-timeline__name">
<h2 className="mr-timeline__name mr-links-green-lighter">
<Link to={`/browse/challenges/${challengeId}`}>
{challengeName}
</Link>
Expand Down Expand Up @@ -166,7 +165,7 @@ export default class UserActivityTimelineWidget extends Component {
className="user-timeline-activity-widget"
widgetTitle={<FormattedMessage {...messages.header} />}
>
<ol className={classNames("mr-timeline", {"dark-mode": this.props.darkMode})}>
<ol className="mr-timeline dark-mode">
{timelineItems}
</ol>
</QuickWidget>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { saveChallenge,
deleteChallenge } from '../../../../services/Challenge/Challenge'
import { recordChallengeSnapshot }
from '../../../../services/Challenge/ChallengeSnapshot'
import { bulkUpdateTasks, deleteChallengeTasks }
import { bulkUpdateTasks, deleteChallengeTasks, bulkTaskStatusChange }
from '../../../../services/Task/Task'
import { TaskStatus } from '../../../../services/Task/TaskStatus/TaskStatus'
import { addError } from '../../../../services/Error/Error'
Expand Down Expand Up @@ -170,8 +170,8 @@ const mapDispatchToProps = (dispatch, ownProps) => ({

// Refresh all the challenge data, including clustered tasks if we can, as
// it all has likely changed as a result of the rebuild
await ownProps.fetchChallengeActions(challenge.id)
await ownProps.fetchChallenge(challenge.id)
await fetchChallengeActions(challenge.id)
await fetchChallenge(challenge.id)

// Reset map bounds to avoid potential user confusion after the rebuild
if (ownProps.clearMapBounds) {
Expand Down Expand Up @@ -209,6 +209,10 @@ const mapDispatchToProps = (dispatch, ownProps) => ({

return dispatch(bulkUpdateTasks(alteredTasks, true))
},

applyBulkTaskStatusChange: (newStatus, challengeId, searchCriteria) => {
return dispatch(bulkTaskStatusChange(newStatus, challengeId, searchCriteria))
}
})

export default WithChallengeManagement
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@ const WithChallengeSnapshots = function(WrappedComponent, applyFilters = false)
this.setState({loading: true})

fetchChallengeSnapshotList(challengeId, true).then(normalizedResults => {
let fetchedSnapshots = _values(normalizedResults.result)
this.setState({loading: false, snapshotList: fetchedSnapshots})
if (normalizedResults) {
let fetchedSnapshots = _values(normalizedResults.result)
this.setState({loading: false, snapshotList: fetchedSnapshots})
}
})
}
}
Expand Down Expand Up @@ -70,7 +72,8 @@ const WithChallengeSnapshots = function(WrappedComponent, applyFilters = false)
reviewApproved: reviewActions.approved,
reviewRejected: reviewActions.rejected,
reviewAssisted: reviewActions.assisted,
reviewDisputed: reviewActions.disputed
reviewDisputed: reviewActions.disputed,
avgReviewTime: reviewActions.avgReviewTime,
} : this.props.reviewMetrics

return <WrappedComponent
Expand Down
13 changes: 11 additions & 2 deletions src/components/AdminPane/Manage/BurndownChart/BurndownChart.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@ import { ResponsiveLine } from '@nivo/line'
import _map from 'lodash/map'
import _filter from 'lodash/filter'
import _reverse from 'lodash/reverse'
import resolveConfig from 'tailwindcss/resolveConfig'
import tailwindConfig from '../../../../tailwind.config.js'
import messages from './Messages'

const colors = resolveConfig(tailwindConfig).theme.colors

/**
* BurndownChart displays a basic chart showing progress towards challenge
* completion over time for one or more challenges.
Expand Down Expand Up @@ -69,7 +73,11 @@ export class BurndownChart extends Component {
</p>
}
<ResponsiveLine data={burndownMetrics}
colors={["#1A688B"]}
theme={{
textColor: "#FFF",
}}
colors={[colors["purple"]]}
textColor="#FFF"
margin={{
top: 20,
right: 20,
Expand Down Expand Up @@ -97,7 +105,7 @@ export class BurndownChart extends Component {
dotSize={10}
dotColor="inherit"
dotBorderWidth={2}
dotBorderColor="#ffffff"
dotBorderColor="#FFF"
enableDotLabel={true}
dotLabel="y"
dotLabelYOffset={-12}
Expand All @@ -107,6 +115,7 @@ export class BurndownChart extends Component {
curve="monotoneX"
motionStiffness={90}
motionDamping={15}
areaOpacity={0.2}
/>
</div>
)
Expand Down
23 changes: 12 additions & 11 deletions src/components/AdminPane/Manage/CalendarHeatmap/CalendarHeatmap.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,18 +54,19 @@ export default class CalendarHeatmap extends Component {
<FormattedMessage {...messages.heading} />
</p>
}
<Calendar horizontal={!this.props.vertical}
startDate={subMonths(new Date(), this.props.months)}
endDate={new Date()}
values={calendarData}
classForValue={(value) => { // css class to assign
if (!value) {
return 'color-empty'
}
<Calendar
horizontal={!this.props.vertical}
startDate={subMonths(new Date(), this.props.months)}
endDate={new Date()}
values={calendarData}
classForValue={(value) => { // css class to assign
if (!value) {
return 'color-empty'
}

return `color-bucket-${this.colorBucketForCount(value.count)}`
}}
titleForValue={(value) => value ? `${value.date}: ${value.count}` : ''}
return `color-bucket-${this.colorBucketForCount(value.count)}`
}}
titleForValue={(value) => value ? `${value.date}: ${value.count}` : ''}
/>
</div>
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
}

.color-empty {
fill: $grey-lightest-more;
fill: rgba(0, 0, 0, .15);
}

.react-calendar-heatmap {
margin-top: 10px;

text {
font-size: 10px;
fill: #aaa;
fill: #FFF;
}

.react-calendar-heatmap-small-text {
Expand All @@ -36,7 +36,7 @@

&.high-contrast {
.color-empty {
fill: $white;
fill: rgba(0, 0, 0, .15);
}
}
}
Loading

0 comments on commit 34e754e

Please sign in to comment.