Merge branch 'master' into validation

# Conflicts:
#	data/core.yaml
#	dist/locales/en.json
#	modules/ui/commit_warnings.js
#	modules/ui/entity_editor.js
#	modules/util/index.js
#	modules/util/util.js
#	modules/validations/index.js
#	modules/validations/many_deletions.js
#	modules/validations/missing_tag.js
This commit is contained in:
Quincy Morgan
2019-01-14 10:13:56 -05:00
119 changed files with 4618 additions and 635 deletions
+13 -3
View File
@@ -31,7 +31,9 @@
/* No interactivity except what we specifically allow */
.layer-osm * {
.data-layer.osm *,
.data-layer.notes *,
.data-layer.keepRight * {
pointer-events: none;
}
@@ -42,6 +44,8 @@
/* `.target` objects are interactive */
/* They can be picked up, clicked, hovered, or things can connect to them */
.kr_error.target,
.note.target,
.node.target,
.turn .target {
pointer-events: fill;
@@ -75,8 +79,11 @@
pointer-events: none !important;
}
/* NOTE: when more QA layers are added, replace kr_error with generic QA layer selector */
/* points, notes & QA */
/* points & notes */
/* points, notes, markers */
g.kr_error .stroke,
g.note .stroke {
stroke: #222;
stroke-width: 1;
@@ -84,6 +91,7 @@ g.note .stroke {
opacity: 0.6;
}
g.kr_error.active .stroke,
g.note.active .stroke {
stroke: #222;
stroke-width: 1;
@@ -97,6 +105,7 @@ g.point .stroke {
fill: #fff;
}
g.kr_error .shadow,
g.point .shadow,
g.note .shadow {
fill: none;
@@ -105,13 +114,14 @@ g.note .shadow {
stroke-opacity: 0;
}
g.note.related:not(.selected) .shadow,
g.kr_error.hover:not(.selected) .shadow,
g.note.hover:not(.selected) .shadow,
g.point.related:not(.selected) .shadow,
g.point.hover:not(.selected) .shadow {
stroke-opacity: 0.5;
}
g.kr_error.selected .shadow,
g.note.selected .shadow,
g.point.selected .shadow {
stroke-opacity: 0.7;
+5
View File
@@ -96,7 +96,12 @@
cursor: url(img/cursor-draw.png) 9 9, crosshair; /* FF */
}
.mode-browse .note,
.mode-browse .kr_error,
.mode-select .note,
.mode-select .kr_error,
.turn rect,
.turn circle {
cursor: pointer;
}
+83 -22
View File
@@ -1,39 +1,27 @@
/* OSM Notes Layer */
.layer-notes {
pointer-events: none;
}
.layer-notes .note * {
pointer-events: none;
}
.mode-browse .layer-notes .note .note-fill,
.mode-select .layer-notes .note .note-fill,
.mode-select-data .layer-notes .note .note-fill,
.mode-select-note .layer-notes .note .note-fill {
pointer-events: visible;
cursor: pointer; /* Opera */
cursor: url(img/cursor-select-point.png), pointer; /* FF */
/* OSM Notes and KeepRight Layers */
.kr_error-header-icon .kr_error-fill,
.layer-keepRight .kr_error .kr_error-fill {
stroke: #333;
stroke-width: 1.3px; /* NOTE: likely a better way to scale the icon stroke */
}
.note-header-icon .note-shadow,
.layer-notes .note .note-shadow {
color: #000;
}
.note-header-icon .note-fill,
.layer-notes .note .note-fill {
color: #ff3300;
color: #f30;
stroke: #333;
stroke-width: 40px;
}
.note-header-icon.new .note-fill,
.layer-notes .note.new .note-fill {
color: #ffee00;
color: #fe0;
stroke: #333;
stroke-width: 40px;
}
.note-header-icon.closed .note-fill,
.layer-notes .note.closed .note-fill {
color: #55dd00;
color: #5d0;
stroke: #333;
stroke-width: 40px;
}
@@ -54,8 +42,81 @@
}
/* Custom Map Data (geojson, gpx, kml, vector tile) */
/* Keep Right Errors
------------------------------------------------------- */
.kr_error_type_20, /* multiple nodes on same spot */
.kr_error_type_40, /* impossible oneways */
.kr_error_type_210, /* self intersecting ways */
.kr_error_type_270, /* unusual motorway connection */
.kr_error_type_310, /* roundabout issues */
.kr_error_type_320, /* improper _link */
.kr_error_type_350 { /* improper bridge tag */
color: #ff9;
}
.kr_error_type_50 { /* almost junctions */
color: #88f;
}
.kr_error_type_60, /* deprecated tags */
.kr_error_type_70, /* tagging issues */
.kr_error_type_90, /* motorway without ref */
.kr_error_type_100, /* place of worship without religion */
.kr_error_type_110, /* poi without name */
.kr_error_type_150, /* railway crossing without tag */
.kr_error_type_220, /* misspelled tag */
.kr_error_type_380 { /* non-physical sport tag */
color: #5d0;
}
.kr_error_type_130 { /* disconnected ways */
color: #fa3;
}
.kr_error_type_170 { /* FIXME tag */
color: #ff0;
}
.kr_error_type_190 { /* intersection without junction */
color: #f33;
}
.kr_error_type_200 { /* overlapping ways */
color: #fdbf6f;
}
.kr_error_type_160, /* railway layer conflict */
.kr_error_type_230 { /* layer conflict */
color: #b60;
}
.kr_error_type_280 { /* boundary issues */
color: #5f47a0;
}
.kr_error_type_180, /* relation without type */
.kr_error_type_290 { /* turn restriction issues */
color: #ace;
}
.kr_error_type_300, /* missing maxspeed */
.kr_error_type_390 { /* missing tracktype */
color: #090;
}
.kr_error_type_360, /* language unknown */
.kr_error_type_370, /* doubled places */
.kr_error_type_410 { /* website issues */
color: #f9b;
}
.kr_error_type_120, /* way without nodes */
.kr_error_type_400 { /* geometry / turn angles */
color: #c35;
}
/* Custom Map Data (geojson, gpx, kml, vector tile) */
.layer-mapdata {
pointer-events: none;
}
+90 -47
View File
@@ -586,6 +586,7 @@ button.add-note svg.icon {
.field-help-title button.close,
.sidebar-component .header button.data-editor-close,
.sidebar-component .header button.note-editor-close,
.sidebar-component .header button.keepRight-editor-close,
.entity-editor-pane .header button.preset-close,
.preset-list-pane .header button.preset-choose {
position: absolute;
@@ -595,6 +596,7 @@ button.add-note svg.icon {
[dir='rtl'] .field-help-title button.close,
[dir='rtl'] .sidebar-component .header button.data-editor-close,
[dir='rtl'] .sidebar-component .header button.note-editor-close,
[dir='rtl'] .sidebar-component .header button.keepRight-editor-close,
[dir='rtl'] .entity-editor-pane .header button.preset-close,
[dir='rtl'] .preset-list-pane .header button.preset-choose {
left: 0;
@@ -782,10 +784,6 @@ a.hide-toggle {
bottom: 0;
}
.inspector-border {
border-bottom: 1px solid #ccc
}
.feature-list-pane .inspector-body,
.preset-list-pane .inspector-body {
top: 120px;
@@ -796,7 +794,7 @@ a.hide-toggle {
}
.inspector-inner {
padding: 20px;
padding: 20px 20px 5px 20px;
position: relative;
}
@@ -849,6 +847,10 @@ a.hide-toggle {
border-radius: 2px;
}
[dir='rtl'] .geocode-item {
left: -25%;
}
.geocode-item:hover {
background-color: #aaa;
}
@@ -1155,11 +1157,30 @@ img.tag-reference-wiki-image {
}
/* Quick links
------------------------------------------------------- */
.quick-links {
display: flex;
flex-flow: row wrap;
justify-content: flex-end;
padding: 0 20px;
}
.quick-link {
margin: 0 5px;
}
.data-editor .quick-links,
.keepRight-editor .quick-links,
.note-editor .quick-links {
padding: 5px 0 0 0;
}
/* Entity/Preset Editor
------------------------------------------------------- */
.preset-editor {
overflow: hidden;
padding-bottom: 10px;
padding: 10px 0px 5px 0px;
}
.preset-editor a.hide-toggle {
margin: 0 20px 5px 20px;
@@ -2254,6 +2275,12 @@ div.combobox {
padding-left: 10px;
}
[dir='rtl'] .raw-member-editor .member-row .member-entity-name,
[dir='rtl'] .raw-membership-editor .member-row .member-entity-name {
padding-left:0;
padding-right: 10px;
}
.form-field-input-member > input.member-role {
border-radius: 0 0 0 4px;
}
@@ -2354,6 +2381,7 @@ input.key-trap {
/* hide but preserve in layout */
.inspector-hover .combobox-caret,
.inspector-hover .header button,
.inspector-hover .quick-links,
.inspector-hover .form-field-input-multicombo .chips .remove,
.inspector-hover .hide-toggle:before,
.inspector-hover .more-fields,
@@ -2430,9 +2458,10 @@ input.key-trap {
}
/* OSM Note Editor
/* OSM Note / KeepRight Editors
------------------------------------------------------- */
.note-header {
.note-header,
.kr_error-header {
background-color: #f6f6f6;
border-radius: 5px;
border: 1px solid #ccc;
@@ -2441,7 +2470,8 @@ input.key-trap {
align-items: center;
}
.note-header-icon {
.note-header-icon,
.kr_error-header-icon {
background-color: #fff;
padding: 10px;
flex: 0 0 62px;
@@ -2451,18 +2481,21 @@ input.key-trap {
border-right: 1px solid #ccc;
border-radius: 5px 0 0 5px;
}
[dir='rtl'] .note-header-icon {
[dir='rtl'] .note-header-icon,
[dir='rtl'] .kr_error-header-icon {
border-right: unset;
border-left: 1px solid #ccc;
border-radius: 0 5px 5px 0;
}
.note-header-icon .icon-wrap {
.note-header-icon .icon-wrap,
.kr_error-header-icon .icon-wrap {
position: absolute;
top: 0px;
}
.note-header-label {
.note-header-label,
.kr_error-header-label {
background-color: #f6f6f6;
padding: 0 15px;
flex: 1 1 100%;
@@ -2470,7 +2503,8 @@ input.key-trap {
font-weight: bold;
border-radius: 0 5px 5px 0;
}
[dir='rtl'] .note-header-label {
[dir='rtl'] .note-header-label,
[dir='rtl'] .kr_error-header-label {
border-radius: 5px 0 0 5px;
}
@@ -2536,17 +2570,24 @@ input.key-trap {
border-left: none;
}
.note-save {
.note-save,
.keepRight-save {
padding-top: 20px;
}
.kr_error-details,
.kr_error-comment-container {
padding: 10px;
}
.note-save #new-comment-input {
.keepRight-save .new-comment-input,
.note-save .new-comment-input {
width: 100%;
height: 100px;
max-height: 300px;
min-height: 100px;
}
.keepRight-save .detail-section,
.note-save .detail-section {
margin: 10px 0;
}
@@ -2555,6 +2596,21 @@ input.key-trap {
float: right;
}
.kr_error-details-container {
background: #ececec;
padding: 10px;
margin-top: 20px;
border-radius: 4px;
border: 1px solid #ccc;
}
.kr_error-details-description {
margin-bottom: 10px;
}
.kr_error-details-description-text::first-letter {
text-transform: capitalize;
}
/* Custom Data Editor
------------------------------------------------------- */
@@ -2864,7 +2920,6 @@ div.full-screen > button:hover {
.entity-issues {
padding: 0 20px 20px 20px;
margin-bottom: 20px;
}
.entity-issues .issue {
border-radius: 4px;
@@ -4380,29 +4435,24 @@ svg.mouseclick use.right {
font-size: 12px;
white-space: initial;
}
.tooltip.in {
opacity: 0.9;
z-index: 1030;
height: auto;
display: block;
}
.tooltip.top {
margin-top: -20px;
text-align: center;
}
.tooltip.right {
margin-left: 20px;
text-align: left;
}
.tooltip.bottom {
margin-top: 20px;
text-align: center;
}
.tooltip.left {
margin-left: -20px;
text-align: right;
@@ -4427,7 +4477,6 @@ svg.mouseclick use.right {
position: absolute;
background: transparent;
}
.tail::after {
content: "";
position: absolute;
@@ -4474,7 +4523,6 @@ svg.mouseclick use.right {
border-color: transparent;
border-style: solid;
}
.tooltip.top .tooltip-arrow {
bottom: -5px;
left: 50%;
@@ -4482,7 +4530,6 @@ svg.mouseclick use.right {
border-top-color: #fff;
border-width: 5px 5px 0;
}
.tooltip.right .tooltip-arrow {
top: 50%;
left: -5px;
@@ -4490,7 +4537,6 @@ svg.mouseclick use.right {
border-right-color: #fff;
border-width: 5px 5px 5px 0;
}
.tooltip.left .tooltip-arrow {
top: 50%;
right: -5px;
@@ -4498,7 +4544,6 @@ svg.mouseclick use.right {
border-left-color: #fff;
border-width: 5px 0 5px 5px;
}
.tooltip.bottom .tooltip-arrow {
top: -5px;
left: 50%;
@@ -4509,7 +4554,7 @@ svg.mouseclick use.right {
.tooltip-heading {
font-weight: bold;
background: #F6F6F6;
background: #f6f6f6;
padding: 10px;
margin: -10px -10px 10px -10px;
border-radius: 3px 3px 0 0;
@@ -4517,52 +4562,50 @@ svg.mouseclick use.right {
}
.keyhint-wrap {
background: #F6F6F6;
background: #f6f6f6;
padding: 10px;
margin: 10px -10px -10px -10px;
border-radius: 0 0 3px 3px;
}
.tooltip-inner .keyhint {
font-weight: bold;
margin-left: 5px;
}
/* Exceptions for tooltip layouts */
[dir='rtl'] .tooltip-inner .keyhint {
margin-left: 0;
margin-right: 5px;
}
/* make tooltips in panels dark */
/* dark tooltips for sidebar / panels */
.map-pane .tooltip.top .tooltip-arrow,
.entity-editor-pane .tooltip.top .tooltip-arrow,
.warning-section .tooltip.top .tooltip-arrow {
#sidebar .tooltip.top .tooltip-arrow {
border-top-color: #000;
}
.map-pane .tooltip.bottom .tooltip-arrow,
.entity-editor-pane .tooltip.bottom .tooltip-arrow,
.warning-section .tooltip.bottom .tooltip-arrow {
#sidebar .tooltip.bottom .tooltip-arrow {
border-bottom-color: #000;
}
.map-pane .tooltip.left .tooltip-arrow,
.entity-editor-pane .tooltip.left .tooltip-arrow,
.warning-section .tooltip.left .tooltip-arrow {
#sidebar .tooltip.left .tooltip-arrow {
border-left-color: #000;
}
.map-pane .tooltip.right .tooltip-arrow,
.entity-editor-pane .tooltip.right .tooltip-arrow,
.warning-section .tooltip.right .tooltip-arrow {
#sidebar .tooltip.right .tooltip-arrow {
border-right-color: #000;
}
.map-pane .tooltip-inner,
.map-pane .tooltip-heading,
.map-pane .keyhint-wrap,
.entity-editor-pane .tooltip-inner,
.warning-section .tooltip-inner {
#sidebar .tooltip-inner,
#sidebar .tooltip-heading,
#sidebar .keyhint-wrap {
background: #000;
color: #ccc;
}
/* Exceptions for tooltip layouts */
/* commit warning tooltips need to be closer */
.warning-section .tooltip.top {
margin-top: -5px;
@@ -4578,11 +4621,11 @@ svg.mouseclick use.right {
/* Move over tooltips that are near the edge of screen */
button.sidebar-toggle .tooltip .tooltip-arrow {
left: 32px;
left: 36px;
}
[dir='rtl'] button.sidebar-toggle .tooltip .tooltip-arrow {
left: auto;
right: 32px;
right: 36px;
}
li:first-of-type .badge .tooltip,