Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion app/org/maproulette/framework/model/User.scala
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ object Follower {
* 2=skin-blue, 3=skin-blue-light, 4=skin-green, 5=skin-green-light,
* 6=skin-purple, 7=skin-purple-light, 8=skin-red, 9=skin-red-light, 10=skin-yellow, 11=skin-yellow-light
* @param customBasemaps Custom basemaps defined by user, which basemap to show is the name selected by the defaultBasemap.
* @param showPriorityMarkerColors If true, display task priority as colored outlines on map markers (high=red, medium=orange, low=teal)
*/
case class UserSettings(
defaultEditor: Option[Int] = None,
Expand All @@ -179,7 +180,8 @@ case class UserSettings(
theme: Option[Int] = None,
customBasemaps: Option[List[CustomBasemap]] = None,
seeTagFixSuggestions: Option[Boolean] = None,
disableTaskConfirm: Option[Boolean] = None
disableTaskConfirm: Option[Boolean] = None,
showPriorityMarkerColors: Option[Boolean] = None
) {
def getTheme: String = theme match {
case Some(t) =>
Expand Down
54 changes: 29 additions & 25 deletions app/org/maproulette/framework/repository/UserRepository.scala
Original file line number Diff line number Diff line change
Expand Up @@ -109,33 +109,35 @@ class UserRepository @Inject() (
default_basemap = {defaultBasemap}, default_basemap_id = {defaultBasemapId},
locale = {locale}, email = {email}, email_opt_in = {emailOptIn}, leaderboard_opt_out = {leaderboardOptOut},
needs_review = {needsReview}, is_reviewer = {isReviewer}, theme = {theme}, allow_following = {allowFollowing},
properties = {properties}, see_tag_fix_suggestions = {seeTagFixSuggestions}, disable_task_confirm = {disableTaskConfirm}
properties = {properties}, see_tag_fix_suggestions = {seeTagFixSuggestions}, disable_task_confirm = {disableTaskConfirm},
show_priority_marker_colors = {showPriorityMarkerColors}
WHERE id = {id} RETURNING ${UserRepository.standardColumns},
(SELECT score FROM user_metrics um WHERE um.user_id = ${user.id}) as score,
(SELECT achievements FROM user_metrics um WHERE um.user_id = ${user.id}) as achievements"""
SQL(query)
.on(
Symbol("name") -> user.osmProfile.displayName,
Symbol("description") -> user.osmProfile.description,
Symbol("avatarURL") -> user.osmProfile.avatarURL,
Symbol("token") -> user.osmProfile.requestToken,
Symbol("secret") -> "",
Symbol("wkt") -> s"SRID=4326;$ewkt",
Symbol("id") -> user.id,
Symbol("defaultEditor") -> user.settings.defaultEditor,
Symbol("defaultBasemap") -> user.settings.defaultBasemap,
Symbol("defaultBasemapId") -> user.settings.defaultBasemapId,
Symbol("locale") -> user.settings.locale,
Symbol("email") -> user.settings.email,
Symbol("emailOptIn") -> user.settings.emailOptIn,
Symbol("leaderboardOptOut") -> user.settings.leaderboardOptOut,
Symbol("needsReview") -> user.settings.needsReview,
Symbol("isReviewer") -> user.settings.isReviewer,
Symbol("theme") -> user.settings.theme,
Symbol("allowFollowing") -> user.settings.allowFollowing,
Symbol("properties") -> user.properties,
Symbol("seeTagFixSuggestions") -> user.settings.seeTagFixSuggestions,
Symbol("disableTaskConfirm") -> user.settings.disableTaskConfirm
Symbol("name") -> user.osmProfile.displayName,
Symbol("description") -> user.osmProfile.description,
Symbol("avatarURL") -> user.osmProfile.avatarURL,
Symbol("token") -> user.osmProfile.requestToken,
Symbol("secret") -> "",
Symbol("wkt") -> s"SRID=4326;$ewkt",
Symbol("id") -> user.id,
Symbol("defaultEditor") -> user.settings.defaultEditor,
Symbol("defaultBasemap") -> user.settings.defaultBasemap,
Symbol("defaultBasemapId") -> user.settings.defaultBasemapId,
Symbol("locale") -> user.settings.locale,
Symbol("email") -> user.settings.email,
Symbol("emailOptIn") -> user.settings.emailOptIn,
Symbol("leaderboardOptOut") -> user.settings.leaderboardOptOut,
Symbol("needsReview") -> user.settings.needsReview,
Symbol("isReviewer") -> user.settings.isReviewer,
Symbol("theme") -> user.settings.theme,
Symbol("allowFollowing") -> user.settings.allowFollowing,
Symbol("properties") -> user.properties,
Symbol("seeTagFixSuggestions") -> user.settings.seeTagFixSuggestions,
Symbol("disableTaskConfirm") -> user.settings.disableTaskConfirm,
Symbol("showPriorityMarkerColors") -> user.settings.showPriorityMarkerColors
)
.as(this.parser().*)
.head
Expand Down Expand Up @@ -516,13 +518,14 @@ object UserRepository {
get[Option[Long]]("users.following_group") ~
get[Option[Long]]("users.followers_group") ~
get[Option[Boolean]]("users.see_tag_fix_suggestions") ~
get[Option[Boolean]]("users.disable_task_confirm") map {
get[Option[Boolean]]("users.disable_task_confirm") ~
get[Option[Boolean]]("users.show_priority_marker_colors") map {
case id ~ osmId ~ created ~ modified ~ osmCreated ~ displayName ~ description ~ avatarURL ~
homeLocation ~ apiKey ~ oauthToken ~ defaultEditor ~ defaultBasemap ~
defaultBasemapId ~ customBasemapList ~
email ~ emailOptIn ~ leaderboardOptOut ~ needsReview ~ isReviewer ~ locale ~ theme ~
properties ~ score ~ achievements ~ allowFollowing ~ followingGroupId ~ followersGroupId ~
seeTagFixSuggestions ~ disableTaskConfirm =>
seeTagFixSuggestions ~ disableTaskConfirm ~ showPriorityMarkerColors =>
val locationWKT = homeLocation match {
case Some(wkt) => new WKTReader().read(wkt).asInstanceOf[Point]
case None => new GeometryFactory().createPoint(new Coordinate(0, 0))
Expand Down Expand Up @@ -569,7 +572,8 @@ object UserRepository {
theme,
customBasemaps,
seeTagFixSuggestions,
disableTaskConfirm
disableTaskConfirm,
showPriorityMarkerColors
),
properties,
score,
Expand Down
6 changes: 5 additions & 1 deletion app/org/maproulette/framework/service/UserService.scala
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,9 @@ class UserService @Inject() (
val disableTaskConfirm = (value \ "settings" \ "disableTaskConfirm")
.asOpt[Boolean]
.getOrElse(cachedItem.settings.disableTaskConfirm.getOrElse(false))
val showPriorityMarkerColors = (value \ "settings" \ "showPriorityMarkerColors")
.asOpt[Boolean]
.getOrElse(cachedItem.settings.showPriorityMarkerColors.getOrElse(false))
val theme = (value \ "settings" \ "theme")
.asOpt[Int]
.getOrElse(cachedItem.settings.theme.getOrElse(-1))
Expand Down Expand Up @@ -506,7 +509,8 @@ class UserService @Inject() (
Some(theme),
customBasemaps,
Some(seeTagFixSuggestions),
Some(disableTaskConfirm)
Some(disableTaskConfirm),
Some(showPriorityMarkerColors)
),
properties = Some(properties)
),
Expand Down
6 changes: 6 additions & 0 deletions conf/evolutions/default/106.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# --- !Ups
ALTER TABLE users ADD COLUMN show_priority_marker_colors BOOLEAN DEFAULT false;;

# --- !Downs
ALTER TABLE IF EXISTS users DROP COLUMN show_priority_marker_colors;;