Initial commit - Typo3 11.5.41
@@ -0,0 +1,39 @@
|
||||
#t3js-location-map-wrap {
|
||||
position: absolute;
|
||||
width: 80vw;
|
||||
height: 80vh;
|
||||
top: 6vh;
|
||||
left: 10vw;
|
||||
opacity: 0;
|
||||
box-shadow: 0 2px 15px #000;
|
||||
transition: opacity 1500ms;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
#t3js-location-map-wrap.active {
|
||||
opacity: 1;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.t3js-location-map-container {
|
||||
width: 100%;
|
||||
height: calc(100% - 40px);
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
.t3js-location-map-title>div.btn-group {
|
||||
position: absolute;
|
||||
left: 15px;
|
||||
}
|
||||
|
||||
.t3js-location-map-title a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.t3js-location-map-title {
|
||||
background: rgb(237, 237, 237);
|
||||
font-family: Share, Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size: 20px;
|
||||
padding: 5px 15px;
|
||||
text-align: center;
|
||||
}
|
||||
BIN
typo3conf/ext/tt_address/Resources/Public/Contrib/layers-2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
typo3conf/ext/tt_address/Resources/Public/Contrib/layers.png
Normal file
|
After Width: | Height: | Size: 696 B |
@@ -0,0 +1,635 @@
|
||||
/* required styles */
|
||||
|
||||
.leaflet-pane,
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-tile-container,
|
||||
.leaflet-pane > svg,
|
||||
.leaflet-pane > canvas,
|
||||
.leaflet-zoom-box,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-layer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-container {
|
||||
overflow: hidden;
|
||||
}
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
}
|
||||
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
|
||||
.leaflet-safari .leaflet-tile {
|
||||
image-rendering: -webkit-optimize-contrast;
|
||||
}
|
||||
/* hack that prevents hw layers "stretching" when loading new tiles */
|
||||
.leaflet-safari .leaflet-tile-container {
|
||||
width: 1600px;
|
||||
height: 1600px;
|
||||
-webkit-transform-origin: 0 0;
|
||||
}
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
display: block;
|
||||
}
|
||||
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
|
||||
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
|
||||
.leaflet-container .leaflet-overlay-pane svg,
|
||||
.leaflet-container .leaflet-marker-pane img,
|
||||
.leaflet-container .leaflet-shadow-pane img,
|
||||
.leaflet-container .leaflet-tile-pane img,
|
||||
.leaflet-container img.leaflet-image-layer,
|
||||
.leaflet-container .leaflet-tile {
|
||||
max-width: none !important;
|
||||
max-height: none !important;
|
||||
}
|
||||
|
||||
.leaflet-container.leaflet-touch-zoom {
|
||||
-ms-touch-action: pan-x pan-y;
|
||||
touch-action: pan-x pan-y;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag {
|
||||
-ms-touch-action: pinch-zoom;
|
||||
/* Fallback for FF which doesn't support pinch-zoom */
|
||||
touch-action: none;
|
||||
touch-action: pinch-zoom;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.leaflet-container {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
.leaflet-container a {
|
||||
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
|
||||
}
|
||||
.leaflet-tile {
|
||||
filter: inherit;
|
||||
visibility: hidden;
|
||||
}
|
||||
.leaflet-tile-loaded {
|
||||
visibility: inherit;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
width: 0;
|
||||
height: 0;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
z-index: 800;
|
||||
}
|
||||
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
|
||||
.leaflet-overlay-pane svg {
|
||||
-moz-user-select: none;
|
||||
}
|
||||
|
||||
.leaflet-pane { z-index: 400; }
|
||||
|
||||
.leaflet-tile-pane { z-index: 200; }
|
||||
.leaflet-overlay-pane { z-index: 400; }
|
||||
.leaflet-shadow-pane { z-index: 500; }
|
||||
.leaflet-marker-pane { z-index: 600; }
|
||||
.leaflet-tooltip-pane { z-index: 650; }
|
||||
.leaflet-popup-pane { z-index: 700; }
|
||||
|
||||
.leaflet-map-pane canvas { z-index: 100; }
|
||||
.leaflet-map-pane svg { z-index: 200; }
|
||||
|
||||
.leaflet-vml-shape {
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
}
|
||||
.lvml {
|
||||
behavior: url(#default#VML);
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
|
||||
/* control positioning */
|
||||
|
||||
.leaflet-control {
|
||||
position: relative;
|
||||
z-index: 800;
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-top,
|
||||
.leaflet-bottom {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-top {
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-right {
|
||||
right: 0;
|
||||
}
|
||||
.leaflet-bottom {
|
||||
bottom: 0;
|
||||
}
|
||||
.leaflet-left {
|
||||
left: 0;
|
||||
}
|
||||
.leaflet-control {
|
||||
float: left;
|
||||
clear: both;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
float: right;
|
||||
}
|
||||
.leaflet-top .leaflet-control {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.leaflet-left .leaflet-control {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* zoom and fade animations */
|
||||
|
||||
.leaflet-fade-anim .leaflet-tile {
|
||||
will-change: opacity;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-popup {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
-moz-transition: opacity 0.2s linear;
|
||||
transition: opacity 0.2s linear;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
|
||||
opacity: 1;
|
||||
}
|
||||
.leaflet-zoom-animated {
|
||||
-webkit-transform-origin: 0 0;
|
||||
-ms-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
will-change: transform;
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-tile,
|
||||
.leaflet-pan-anim .leaflet-tile {
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.leaflet-zoom-anim .leaflet-zoom-hide {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
|
||||
/* cursors */
|
||||
|
||||
.leaflet-interactive {
|
||||
cursor: pointer;
|
||||
}
|
||||
.leaflet-grab {
|
||||
cursor: -webkit-grab;
|
||||
cursor: -moz-grab;
|
||||
cursor: grab;
|
||||
}
|
||||
.leaflet-crosshair,
|
||||
.leaflet-crosshair .leaflet-interactive {
|
||||
cursor: crosshair;
|
||||
}
|
||||
.leaflet-popup-pane,
|
||||
.leaflet-control {
|
||||
cursor: auto;
|
||||
}
|
||||
.leaflet-dragging .leaflet-grab,
|
||||
.leaflet-dragging .leaflet-grab .leaflet-interactive,
|
||||
.leaflet-dragging .leaflet-marker-draggable {
|
||||
cursor: move;
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: -moz-grabbing;
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
/* marker & overlays interactivity */
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-pane > svg path,
|
||||
.leaflet-tile-container {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.leaflet-marker-icon.leaflet-interactive,
|
||||
.leaflet-image-layer.leaflet-interactive,
|
||||
.leaflet-pane > svg path.leaflet-interactive {
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
/* visual tweaks */
|
||||
|
||||
.leaflet-container {
|
||||
background: #ddd;
|
||||
outline: 0;
|
||||
}
|
||||
.leaflet-container a {
|
||||
color: #0078A8;
|
||||
}
|
||||
.leaflet-container a.leaflet-active {
|
||||
outline: 2px solid orange;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
border: 2px dotted #38f;
|
||||
background: rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
|
||||
/* general typography */
|
||||
.leaflet-container {
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
|
||||
/* general toolbar styles */
|
||||
|
||||
.leaflet-bar {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a,
|
||||
.leaflet-bar a:hover {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #ccc;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
.leaflet-bar a,
|
||||
.leaflet-control-layers-toggle {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
}
|
||||
.leaflet-bar a:hover {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
.leaflet-bar a:first-child {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a:last-child {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom: none;
|
||||
}
|
||||
.leaflet-bar a.leaflet-disabled {
|
||||
cursor: default;
|
||||
background-color: #f4f4f4;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-bar a {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.leaflet-touch .leaflet-bar a:first-child {
|
||||
border-top-left-radius: 2px;
|
||||
border-top-right-radius: 2px;
|
||||
}
|
||||
.leaflet-touch .leaflet-bar a:last-child {
|
||||
border-bottom-left-radius: 2px;
|
||||
border-bottom-right-radius: 2px;
|
||||
}
|
||||
|
||||
/* zoom control */
|
||||
|
||||
.leaflet-control-zoom-in,
|
||||
.leaflet-control-zoom-out {
|
||||
font: bold 18px 'Lucida Console', Monaco, monospace;
|
||||
text-indent: 1px;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
|
||||
/* layers control */
|
||||
|
||||
.leaflet-control-layers {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.leaflet-control-layers-toggle {
|
||||
background-image: url(./layers.png);
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
.leaflet-retina .leaflet-control-layers-toggle {
|
||||
background-image: url(./layers-2x.png);
|
||||
background-size: 26px 26px;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers-toggle {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
.leaflet-control-layers .leaflet-control-layers-list,
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
|
||||
display: none;
|
||||
}
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.leaflet-control-layers-expanded {
|
||||
padding: 6px 10px 6px 6px;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
}
|
||||
.leaflet-control-layers-scrollbar {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.leaflet-control-layers-selector {
|
||||
margin-top: 2px;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
.leaflet-control-layers label {
|
||||
display: block;
|
||||
}
|
||||
.leaflet-control-layers-separator {
|
||||
height: 0;
|
||||
border-top: 1px solid #ddd;
|
||||
margin: 5px -10px 5px -6px;
|
||||
}
|
||||
|
||||
/* Default icon URLs */
|
||||
.leaflet-default-icon-path {
|
||||
background-image: url(./marker-icon.png);
|
||||
}
|
||||
|
||||
|
||||
/* attribution and scale controls */
|
||||
|
||||
.leaflet-container .leaflet-control-attribution {
|
||||
background: #fff;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
margin: 0;
|
||||
}
|
||||
.leaflet-control-attribution,
|
||||
.leaflet-control-scale-line {
|
||||
padding: 0 5px;
|
||||
color: #333;
|
||||
}
|
||||
.leaflet-control-attribution a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.leaflet-control-attribution a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.leaflet-container .leaflet-control-attribution,
|
||||
.leaflet-container .leaflet-control-scale {
|
||||
font-size: 11px;
|
||||
}
|
||||
.leaflet-left .leaflet-control-scale {
|
||||
margin-left: 5px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control-scale {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.leaflet-control-scale-line {
|
||||
border: 2px solid #777;
|
||||
border-top: none;
|
||||
line-height: 1.1;
|
||||
padding: 2px 5px 1px;
|
||||
font-size: 11px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
background: #fff;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child) {
|
||||
border-top: 2px solid #777;
|
||||
border-bottom: none;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
|
||||
border-bottom: 2px solid #777;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-attribution,
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
box-shadow: none;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
border: 2px solid rgba(0,0,0,0.2);
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
|
||||
/* popup */
|
||||
|
||||
.leaflet-popup {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.leaflet-popup-content-wrapper {
|
||||
padding: 1px;
|
||||
text-align: left;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.leaflet-popup-content {
|
||||
margin: 13px 19px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.leaflet-popup-content p {
|
||||
margin: 18px 0;
|
||||
}
|
||||
.leaflet-popup-tip-container {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -20px;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-popup-tip {
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
padding: 1px;
|
||||
|
||||
margin: -10px auto 0;
|
||||
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.leaflet-popup-content-wrapper,
|
||||
.leaflet-popup-tip {
|
||||
background: white;
|
||||
color: #333;
|
||||
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 4px 4px 0 0;
|
||||
border: none;
|
||||
text-align: center;
|
||||
width: 18px;
|
||||
height: 14px;
|
||||
font: 16px/14px Tahoma, Verdana, sans-serif;
|
||||
color: #c3c3c3;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button:hover {
|
||||
color: #999;
|
||||
}
|
||||
.leaflet-popup-scrolled {
|
||||
overflow: auto;
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper {
|
||||
zoom: 1;
|
||||
}
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
width: 24px;
|
||||
margin: 0 auto;
|
||||
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
|
||||
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
|
||||
}
|
||||
.leaflet-oldie .leaflet-popup-tip-container {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-control-zoom,
|
||||
.leaflet-oldie .leaflet-control-layers,
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper,
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
|
||||
/* div icon */
|
||||
|
||||
.leaflet-div-icon {
|
||||
background: #fff;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
|
||||
|
||||
/* Tooltip */
|
||||
/* Base styles for the element that has a tooltip */
|
||||
.leaflet-tooltip {
|
||||
position: absolute;
|
||||
padding: 6px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 3px;
|
||||
color: #222;
|
||||
white-space: nowrap;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-tooltip.leaflet-clickable {
|
||||
cursor: pointer;
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-tooltip-top:before,
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border: 6px solid transparent;
|
||||
background: transparent;
|
||||
content: "";
|
||||
}
|
||||
|
||||
/* Directions */
|
||||
|
||||
.leaflet-tooltip-bottom {
|
||||
margin-top: 6px;
|
||||
}
|
||||
.leaflet-tooltip-top {
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-top:before {
|
||||
left: 50%;
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-top:before {
|
||||
bottom: 0;
|
||||
margin-bottom: -12px;
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before {
|
||||
top: 0;
|
||||
margin-top: -12px;
|
||||
margin-left: -6px;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-left {
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-right {
|
||||
margin-left: 6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
top: 50%;
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before {
|
||||
right: 0;
|
||||
margin-right: -12px;
|
||||
border-left-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-right:before {
|
||||
left: 0;
|
||||
margin-left: -12px;
|
||||
border-right-color: #fff;
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 618 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
||||
<rect width="16" height="12" y="2" fill="#151515" color="#000" overflow="visible" rx="1.4" ry="1.4" style="isolation:auto;mix-blend-mode:normal"/>
|
||||
<path fill="#fff" d="M1.7 3c-.389 0-.7.311-.7.7v8.6c0 .389.311.7.7.7h1.728a1.15 1.15 0 0 1-.028-.25 1.15 1.15 0 0 1 1.15-1.15 1.15 1.15 0 0 1 1.15 1.15 1.15 1.15 0 0 1-.028.25h4.656a1.15 1.15 0 0 1-.027-.25 1.15 1.15 0 0 1 1.148-1.15 1.15 1.15 0 0 1 1.15 1.15 1.15 1.15 0 0 1-.029.25h1.73c.389 0 .7-.311.7-.7V3.7c0-.389-.311-.7-.7-.7H1.7zm4.015 1.05A2.294 2.294 0 0 1 8 6.337c0 .612-.248 1.168-.645 1.58 1.06.585 1.788 1.7 1.788 2.99H8a2.276 2.276 0 0 0-2.285-2.285 2.277 2.277 0 0 0-2.287 2.285H2.285c0-1.29.73-2.405 1.79-2.99a2.274 2.274 0 0 1-.647-1.58A2.295 2.295 0 0 1 5.715 4.05zm0 1.143c-.638 0-1.143.505-1.143 1.143s.505 1.143 1.143 1.143 1.142-.505 1.142-1.143-.504-1.143-1.142-1.143zm4.57 1.143h3.43v1.143h-3.43V6.336zm0 2.285h3.43v1.143h-3.43V8.62z" color="#000" overflow="visible" style="isolation:auto;mix-blend-mode:normal"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
||||
<path fill="#eee" d="M0 0h16v16H0z" color="#333" overflow="visible" style="isolation:auto;mix-blend-mode:normal"/>
|
||||
<path fill="#000" d="M3.05 3.5C2.47 3.5 2 3.969 2 4.55v6.9c0 .581.469 1.05 1.05 1.05h9.9c.581 0 1.05-.469 1.05-1.05v-6.9c0-.581-.469-1.05-1.05-1.05h-9.9zm.224.75h9.452c.29 0 .524.234.524.524v6.452c0 .29-.234.524-.524.524h-1.298a.862.862 0 0 0 .022-.188.862.862 0 0 0-.863-.862.862.862 0 0 0-.861.862.862.862 0 0 0 .02.188H6.254a.862.862 0 0 0 .02-.188.862.862 0 0 0-.86-.862.862.862 0 0 0-.864.862.862.862 0 0 0 .02.188H3.275a.523.523 0 0 1-.524-.524V4.774c0-.29.234-.524.524-.524zm3.012.788c-.942 0-1.715.772-1.715 1.714 0 .46.187.876.485 1.185a2.567 2.567 0 0 0-1.342 2.243h.857c0-.952.763-1.714 1.715-1.714.952 0 1.714.762 1.714 1.714h.857c0-.968-.546-1.804-1.34-2.243.297-.309.483-.726.483-1.185a1.72 1.72 0 0 0-1.714-1.714zm0 .857a.85.85 0 0 1 .857.857.85.85 0 0 1-.857.857.85.85 0 0 1-.857-.857.85.85 0 0 1 .857-.857zm3.428.857v.857h2.572v-.857H9.714zm0 1.714v.857h2.572v-.857H9.714z" color="#ccc" overflow="visible" style="isolation:auto;mix-blend-mode:normal"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg4"
|
||||
version="1.1"
|
||||
viewBox="0 0 16 16">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<path
|
||||
id="path817"
|
||||
d="m 7.9998157,0.9592584 c -2.2900552,0 -4.1467179,1.9491077 -4.1467179,4.3542424 0,2.5466592 0.8574979,5.5847192 4.0146568,9.7272412 C 11.205675,10.82248 12.168579,7.86016 12.146534,5.3135008 12.125714,2.9084655 10.289872,0.9592583 7.9998157,0.9592584 Z m 0,2.4789751 A 1.9332866,1.9332866 0 0 1 9.933567,5.371985 1.9332866,1.9332866 0 0 1 7.9998157,7.3057364 1.9332866,1.9332866 0 0 1 6.0660642,5.371985 1.9332866,1.9332866 0 0 1 7.9998157,3.4382335 Z"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.09425406;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
||||
<path fill="#888" d="M0 2v12h12.69V3.81H5.08L3.95 2H0z"/>
|
||||
<path fill="#151515" d="M3.058 0c3.33.004 6.661-.006 9.991.006.617.043 1.02.668.94 1.253-.003 2.263.008 4.527-.004 6.79-.043.617-.668 1.021-1.253.94-3.26-.003-6.521.008-9.781-.005-.617-.042-1.02-.668-.94-1.253.003-2.263-.008-4.526.004-6.789A1.05 1.05 0 0 1 3.058.001z"/>
|
||||
<path fill="#fff" d="M3.275.75a.527.527 0 0 0-.523.47c-.006 2.1 0 4.198-.002 6.298-.046.318.105.705.47.73h1.37c-.054-.229-.035-.475.111-.672.298-.473 1.056-.5 1.387-.049a.861.861 0 0 1 .168.721l3.51.002c-.054-.23-.037-.476.109-.674.298-.473 1.058-.5 1.389-.049a.86.86 0 0 1 .185.535.74.74 0 0 1-.017.188h1.086c.318.046.705-.105.73-.47.006-2.1 0-4.198.002-6.298.046-.318-.105-.705-.47-.73C9.61.746 6.442.752 3.274.75zm3.01.787C7.227 1.537 8 2.31 8 3.252c0 .46-.187.877-.484 1.186A2.566 2.566 0 0 1 8.857 6.68H8c0-.952-.763-1.713-1.715-1.713-.952 0-1.713.76-1.713 1.713h-.857c0-.968.545-1.804 1.34-2.242a1.705 1.705 0 0 1-.483-1.186 1.72 1.72 0 0 1 1.713-1.715zm0 .858a.851.851 0 0 0-.857.857c0 .478.379.857.857.857a.851.851 0 0 0 .858-.857.851.851 0 0 0-.858-.857zm3.43.857h2.57v.857h-2.57v-.857zm0 1.715h2.57v.855h-2.57v-.855z"/>
|
||||
<path fill="#aaa" d="M16 6.08L12.96 14H0l2.53-6.6h4.02l1.71-1.32z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
||||
<rect width="16" height="12" y="2" fill="#151515" color="#000" overflow="visible" rx="1.4" ry="1.4" style="isolation:auto;mix-blend-mode:normal"/>
|
||||
<path fill="#fff" d="M1.7 3c-.389 0-.7.311-.7.7v8.6c0 .389.311.7.7.7h1.728a1.15 1.15 0 0 1-.028-.25 1.15 1.15 0 0 1 1.15-1.15 1.15 1.15 0 0 1 1.15 1.15 1.15 1.15 0 0 1-.028.25h4.656a1.15 1.15 0 0 1-.027-.25 1.15 1.15 0 0 1 1.148-1.15 1.15 1.15 0 0 1 1.15 1.15 1.15 1.15 0 0 1-.029.25h1.73c.389 0 .7-.311.7-.7V3.7c0-.389-.311-.7-.7-.7H1.7zm4.015 1.05A2.294 2.294 0 0 1 8 6.337c0 .612-.248 1.168-.645 1.58 1.06.585 1.788 1.7 1.788 2.99H8a2.276 2.276 0 0 0-2.285-2.285 2.277 2.277 0 0 0-2.287 2.285H2.285c0-1.29.73-2.405 1.79-2.99a2.274 2.274 0 0 1-.647-1.58A2.295 2.295 0 0 1 5.715 4.05zm0 1.143c-.638 0-1.143.505-1.143 1.143s.505 1.143 1.143 1.143 1.142-.505 1.142-1.143-.504-1.143-1.142-1.143zm4.57 1.143h3.43v1.143h-3.43V6.336zm0 2.285h3.43v1.143h-3.43V8.62z" color="#000" overflow="visible" style="isolation:auto;mix-blend-mode:normal"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,68 @@
|
||||
function ttAddressGoogleMaps() {
|
||||
var obj = {};
|
||||
|
||||
obj.map = null;
|
||||
obj.markers = [];
|
||||
|
||||
obj.run = function () {
|
||||
const mapOptions = {
|
||||
center: new google.maps.LatLng(48.3057664, 14.2873126),
|
||||
zoom: 11,
|
||||
maxZoom: 15,
|
||||
streetViewControl: false,
|
||||
fullscreenControl: false
|
||||
};
|
||||
obj.map = new google.maps.Map(document.getElementById('ttaddress__map'), mapOptions);
|
||||
infoWindow = new google.maps.InfoWindow();
|
||||
|
||||
var bounds = new google.maps.LatLngBounds();
|
||||
|
||||
var records = document.getElementById("ttaddress__records");
|
||||
for (var i = 0; i < records.childNodes.length; i++) {
|
||||
var item = records.childNodes[i];
|
||||
|
||||
var marker = new google.maps.Marker({
|
||||
map: obj.map,
|
||||
position: new google.maps.LatLng(item.getAttribute('data-lat'), item.getAttribute('data-lng')),
|
||||
infowindow: infoWindow,
|
||||
recordId: item.getAttribute('data-id')
|
||||
});
|
||||
|
||||
google.maps.event.addListener(marker, 'click', function (e) {
|
||||
infoWindow.setContent(document.getElementById('ttaddress__record-' + this.recordId).innerHTML);
|
||||
infoWindow.open(obj.map, this);
|
||||
|
||||
var allLabels = document.querySelectorAll('.ttaddress__label');
|
||||
for (var i = 0; i < allLabels.length; i++) {
|
||||
allLabels[i].classList.remove('active')
|
||||
}
|
||||
document.getElementById('ttaddress__label-' + this.recordId).classList.add('active');
|
||||
|
||||
});
|
||||
bounds.extend(marker.getPosition());
|
||||
obj.markers.push(marker);
|
||||
}
|
||||
obj.map.fitBounds(bounds);
|
||||
};
|
||||
|
||||
obj.openMarker = function (markerId) {
|
||||
google.maps.event.trigger(obj.markers[markerId], 'click');
|
||||
};
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
var ttAddressMapInstance = ttAddressGoogleMaps();
|
||||
ttAddressMapInstance.run();
|
||||
|
||||
document.addEventListener('click', function (event) {
|
||||
if (!event.target.matches('.ttaddress__markerlink')) {
|
||||
return;
|
||||
}
|
||||
event.preventDefault();
|
||||
var element = event.target;
|
||||
ttAddressMapInstance.openMarker(element.getAttribute('data-iteration-id'));
|
||||
}, false);
|
||||
|
||||
});
|
||||
@@ -0,0 +1,68 @@
|
||||
function ttAddressLeaflet() {
|
||||
var obj = {};
|
||||
|
||||
obj.map = null;
|
||||
obj.markers = [];
|
||||
|
||||
obj.run = function () {
|
||||
obj.map = L.map('ttaddress__map').setView([51.505, -0.09], 13);
|
||||
obj.map.scrollWheelZoom.disable();
|
||||
var mapBounds = L.latLngBounds();
|
||||
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
maxZoom: 18,
|
||||
attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
|
||||
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
|
||||
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
|
||||
id: 'mapbox.streets'
|
||||
}).addTo(obj.map);
|
||||
|
||||
var records = document.getElementById("ttaddress__records").children;
|
||||
for (var i = 0; i < records.length; i++) {
|
||||
var item = records[i];
|
||||
|
||||
var marker = L.marker([item.getAttribute('data-lat'), item.getAttribute('data-lng')]).addTo(obj.map)
|
||||
.bindPopup(document.getElementById('ttaddress__record-' + item.getAttribute('data-id')).innerHTML);
|
||||
obj.markers.push(marker);
|
||||
}
|
||||
var group = new L.featureGroup(obj.markers);
|
||||
obj.map.fitBounds(group.getBounds());
|
||||
|
||||
// Zoom out if zoom level is too high
|
||||
// var zoomLevel = obj.map.getZoom();
|
||||
// if (zoomLevel >= 10) {
|
||||
// obj.map.setZoom(8);
|
||||
// }
|
||||
};
|
||||
|
||||
obj.openMarker = function (markerId) {
|
||||
obj.markers[markerId].openPopup();
|
||||
};
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
function ttAddressOnload() {
|
||||
var ttAddressMapInstance = ttAddressLeaflet();
|
||||
ttAddressMapInstance.run();
|
||||
|
||||
document.addEventListener('click', function (event) {
|
||||
if (!event.target.matches('.ttaddress__markerlink')) {
|
||||
return;
|
||||
}
|
||||
event.preventDefault();
|
||||
var element = event.target;
|
||||
ttAddressMapInstance.openMarker(parseInt(element.getAttribute('data-iteration-id')));
|
||||
}, false);
|
||||
}
|
||||
|
||||
/** event listener on DOMContentLoaded does not work with scripts which are loaded async.
|
||||
* With TYPO3 this could e.g. happen with EXT:scriptmerger
|
||||
* Thus we listen only if document.readyState is loading, otherwise we can already fire as DOM is loaded already.
|
||||
**/
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
ttAddressOnload();
|
||||
});
|
||||
} else {
|
||||
ttAddressOnload();
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
define(['jquery', 'TYPO3/CMS/Backend/Icons', 'TYPO3/CMS/Backend/FormEngine', 'TYPO3/CMS/TtAddress/leaflet-core-1.4.0'], function ($, Icons, FormEngine) {
|
||||
'use strict';
|
||||
|
||||
let LeafBE = {
|
||||
$element: null,
|
||||
$gLatitude: null,
|
||||
$gLongitude: null,
|
||||
$latitude: null,
|
||||
$longitude: null,
|
||||
$fieldLat: null,
|
||||
$fieldLon: null,
|
||||
$fieldLatActive: null,
|
||||
$geoCodeUrl: null,
|
||||
$geoCodeUrlShort: null,
|
||||
$tilesUrl: null,
|
||||
$tilesCopy: null,
|
||||
$zoomLevel: 13,
|
||||
$marker: null,
|
||||
$map: null,
|
||||
$iconClose: null
|
||||
};
|
||||
|
||||
// Load icon via TYPO3 Icon-API and requireJS
|
||||
Icons.getIcon('actions-close', Icons.sizes.small, null, null).then(function(markup) {
|
||||
LeafBE['$iconClose']= markup;
|
||||
});
|
||||
|
||||
LeafBE.init = function (element) {
|
||||
// basic variable initialisation, uses data vars on the trigger button
|
||||
LeafBE.$element = element;
|
||||
LeafBE.$labelTitle = LeafBE.$element.attr('data-label-title');
|
||||
LeafBE.$labelClose = LeafBE.$element.attr('data-label-close');
|
||||
LeafBE.$labelImport = LeafBE.$element.attr('data-label-import');
|
||||
LeafBE.$latitude = LeafBE.$element.attr('data-lat');
|
||||
LeafBE.$longitude = LeafBE.$element.attr('data-lon');
|
||||
LeafBE.$gLatitude = LeafBE.$element.attr('data-glat');
|
||||
LeafBE.$gLongitude = LeafBE.$element.attr('data-glon');
|
||||
LeafBE.$tilesUrl = LeafBE.$element.attr('data-tiles');
|
||||
LeafBE.$tilesCopy = LeafBE.$element.attr('data-copy');
|
||||
LeafBE.$geoCodeUrl = LeafBE.$element.attr('data-geocodeurl');
|
||||
LeafBE.$geoCodeUrlShort = LeafBE.$element.attr('data-geocodeurlshort');
|
||||
LeafBE.$fieldLat = LeafBE.$element.attr('data-namelat');
|
||||
LeafBE.$fieldLon = LeafBE.$element.attr('data-namelon');
|
||||
LeafBE.$fieldLatActive = LeafBE.$element.attr('data-namelat-active');
|
||||
|
||||
// add the container to display the map as a nice overlay
|
||||
if (!$('#t3js-location-map-wrap').length) {
|
||||
LeafBE.addMapMarkup();
|
||||
}
|
||||
};
|
||||
|
||||
LeafBE.addMapMarkup = function () {
|
||||
$('body').append(
|
||||
'<div id="t3js-location-map-wrap">' +
|
||||
'<div class="t3js-location-map-title">' +
|
||||
'<div class="btn-group"><a href="#" class="btn btn-icon btn-default" title="' + LeafBE.$labelClose + '" id="t3js-ttaddress-close-map">' +
|
||||
LeafBE.$iconClose +
|
||||
'</a>' +
|
||||
'<a class="btn btn-default" href="#" title="Import marker position to form" id="t3js-ttaddress-import-position">' +
|
||||
LeafBE.$labelImport +
|
||||
'</a></div>' +
|
||||
LeafBE.$labelTitle +
|
||||
'</div>' +
|
||||
'<div class="t3js-location-map-container" id="t3js-location-map-container">' +
|
||||
'</div>' +
|
||||
'</div>'
|
||||
);
|
||||
};
|
||||
|
||||
LeafBE.createMap = function () {
|
||||
|
||||
if (((!LeafBE.$latitude || !LeafBE.$longitude) || (LeafBE.$latitude == 0 && LeafBE.$longitude == 0)) && LeafBE.$geoCodeUrl != null) {
|
||||
LeafBE.geocode();
|
||||
}
|
||||
|
||||
// The ultimate fallback: if one of the coordinates is empty, fallback to Kopenhagen.
|
||||
// Thank you Kaspar for TYPO3 and its great community! ;)
|
||||
if (LeafBE.$latitude == null || LeafBE.$longitude == null) {
|
||||
LeafBE.$latitude = LeafBE.$gLatitude;
|
||||
LeafBE.$longitude = LeafBE.$gLongitude;
|
||||
// set zoomlevel lower for faster navigation
|
||||
LeafBE.$zoomLevel = 4;
|
||||
}
|
||||
LeafBE.$map = L.map('t3js-location-map-container', {
|
||||
center: [LeafBE.$latitude, LeafBE.$longitude],
|
||||
zoom: LeafBE.$zoomLevel
|
||||
});
|
||||
L.tileLayer(LeafBE.$tilesUrl, {
|
||||
attribution: LeafBE.$tilesCopy
|
||||
}).addTo(LeafBE.$map);
|
||||
|
||||
LeafBE.$marker = L.marker([LeafBE.$latitude, LeafBE.$longitude], {
|
||||
draggable: true
|
||||
}).addTo(LeafBE.$map);
|
||||
|
||||
let position = LeafBE.$marker.getLatLng();
|
||||
|
||||
LeafBE.$marker.on('dragend', function (event) {
|
||||
LeafBE.$marker = event.target;
|
||||
position = LeafBE.$marker.getLatLng();
|
||||
});
|
||||
LeafBE.$map.on('click', function (event) {
|
||||
LeafBE.$marker.setLatLng(event.latlng);
|
||||
});
|
||||
// import coordinates and close overlay
|
||||
$('#t3js-ttaddress-import-position').on('click', function () {
|
||||
// set visual coordinates
|
||||
$('input[data-formengine-input-name="' + LeafBE.$fieldLat + '"]').val(LeafBE.$marker.getLatLng().lat);
|
||||
$('input[data-formengine-input-name="' + LeafBE.$fieldLon + '"]').val(LeafBE.$marker.getLatLng().lng);
|
||||
// set hidden fields values
|
||||
$('input[name="' + LeafBE.$fieldLat + '"]').val(LeafBE.$marker.getLatLng().lat);
|
||||
$('input[name="' + LeafBE.$fieldLon + '"]').val(LeafBE.$marker.getLatLng().lng);
|
||||
// enable also latitude, if not already done by user.
|
||||
$('input[id="' + LeafBE.$fieldLatActive + '"]').parentsUntil('.form-group').removeClass('disabled');
|
||||
$('input[id="' + LeafBE.$fieldLatActive + '"]').prop('checked', true);
|
||||
|
||||
// mark fields as changed for re-evaluation and revalidate the form,
|
||||
// this is e.g. needed when this wizard is used on inline elements
|
||||
FormEngine.Validation.markFieldAsChanged($('input[name="' + LeafBE.$fieldLat + '"]'));
|
||||
FormEngine.Validation.markFieldAsChanged($('input[name="' + LeafBE.$fieldLon + '"]'));
|
||||
FormEngine.Validation.validate();
|
||||
|
||||
// close map after import of coordinates.
|
||||
$('#t3js-location-map-wrap').removeClass('active');
|
||||
});
|
||||
// close overlay without any further action
|
||||
$('#t3js-ttaddress-close-map').on('click', function () {
|
||||
$('#t3js-location-map-wrap').removeClass('active');
|
||||
});
|
||||
};
|
||||
|
||||
LeafBE.geocode = function () {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: LeafBE.$geoCodeUrl,
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
if (data.length == 0) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: LeafBE.$geoCodeUrlShort,
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
if (data.length != 0) {
|
||||
$.each(data[0], function (key, value) {
|
||||
if (key == "lat") {
|
||||
LeafBE.$latitude = value;
|
||||
}
|
||||
if (key == "lon") {
|
||||
LeafBE.$longitude = value;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$.each(data[0], function (key, value) {
|
||||
if (key == "lat") {
|
||||
LeafBE.$latitude = value;
|
||||
}
|
||||
if (key == "lon") {
|
||||
LeafBE.$longitude = value;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
LeafBE.initializeEvents = function (element) {
|
||||
$(element).on('click', function () {
|
||||
if (LeafBE.$map !== null) {
|
||||
LeafBE.$map.remove();
|
||||
LeafBE.$map = null;
|
||||
}
|
||||
LeafBE.init($(this));
|
||||
LeafBE.createMap();
|
||||
$('#t3js-location-map-wrap').addClass('active');
|
||||
});
|
||||
};
|
||||
|
||||
// reinit when form has changes, e.g. inline relations loaded using ajax
|
||||
LeafBE.reinitialize = FormEngine.reinitialize;
|
||||
FormEngine.reinitialize = function () {
|
||||
LeafBE.reinitialize();
|
||||
if ($('.locationMapWizard').length) {
|
||||
LeafBE.initializeEvents('.locationMapWizard');
|
||||
}
|
||||
};
|
||||
//LeafBE.addMapMarkup();
|
||||
LeafBE.initializeEvents('.locationMapWizard');
|
||||
return LeafBE;
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
import FormEngineValidation from '@typo3/backend/form-engine-validation.js';
|
||||
|
||||
export class TelephoneEvaluation {
|
||||
static registerCustomEvaluation(name) {
|
||||
FormEngineValidation.registerCustomEvaluation(name, TelephoneEvaluation.applyTelephoneValidationPattern);
|
||||
}
|
||||
|
||||
static applyTelephoneValidationPattern(value) {
|
||||
const items = TYPO3.settings.TtAddress.Evaluation.telephoneValidationPattern.split('/');
|
||||
// fetch RegExp modifier and remove it
|
||||
const modifier = items.pop();
|
||||
// remove first item
|
||||
items.shift();
|
||||
const expression = new RegExp(items.join('/'), modifier);
|
||||
return value.replace(expression, '');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Address Example Template</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
Markers you can use:
|
||||
|
||||
###UID###
|
||||
###GENDER###
|
||||
###FIRSTNAME###
|
||||
###MIDDLENAME###
|
||||
###LASTNAME###
|
||||
###TITLE###
|
||||
###EMAIL###
|
||||
###PHONE###
|
||||
###MOBILE###
|
||||
###WWW###
|
||||
###ADDRESS###
|
||||
###BUILDING###
|
||||
###ROOM###
|
||||
###BIRTHDAY###
|
||||
###ORGANIZATION###
|
||||
###COMPANY### (only here for backwards compatibility, this is an alias for ORGANIZATION)
|
||||
###CITY###
|
||||
###ZIP###
|
||||
###REGION###
|
||||
###COUNTRY###
|
||||
###IMAGE### (###IMAGE1-5### are available, too if multiple images are added to the address record)
|
||||
###FAX###
|
||||
###DESCRIPTION###
|
||||
###MAINGROUP###
|
||||
###GROUPLIST###
|
||||
|
||||
|
||||
-->
|
||||
|
||||
<!-- ###TEMPLATE_ADDRESS### beginn -->
|
||||
<div class="vcard" itemscope itemtype="http://schema.org/Person">
|
||||
###IMAGE###
|
||||
<!-- ###SUBPART_URL### begin -->
|
||||
###FIRSTNAME### ###MIDDLENAME### ###LASTNAME###
|
||||
<!-- ###SUBPART_URL### end -->
|
||||
###ORGANIZATION###
|
||||
###EMAIL###
|
||||
<!-- ###SUBPART_ADR### begin -->
|
||||
<div class="adr" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
||||
###ADDRESS###
|
||||
###CITY### ###REGION### ###ZIP### ###COUNTRY###
|
||||
</div>
|
||||
<!-- ###SUBPART_ADR### end -->
|
||||
###PHONE###
|
||||
</div>
|
||||
<!-- ###TEMPLATE_ADDRESS### end -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
#ttaddress__records {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#ttaddress__map {
|
||||
width: 100%;
|
||||
min-height: 300px;
|
||||
}
|
||||