rethinking /photos
341
static/photos/static/css/normalize.css
vendored
Normal file
|
|
@ -0,0 +1,341 @@
|
|||
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
|
||||
|
||||
/* Document
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Correct the line height in all browsers.
|
||||
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
||||
*/
|
||||
|
||||
html {
|
||||
line-height: 1.15; /* 1 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
}
|
||||
|
||||
/* Sections
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the margin in all browsers.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the font size and margin on `h1` elements within `section` and
|
||||
* `article` contexts in Chrome, Firefox, and Safari.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
/* Grouping content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in Firefox.
|
||||
* 2. Show the overflow in Edge and IE.
|
||||
*/
|
||||
|
||||
hr {
|
||||
box-sizing: content-box; /* 1 */
|
||||
height: 0; /* 1 */
|
||||
overflow: visible; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/* Text-level semantics
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the gray background on active links in IE 10.
|
||||
*/
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Remove the bottom border in Chrome 57-
|
||||
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none; /* 1 */
|
||||
text-decoration: underline; /* 2 */
|
||||
text-decoration: underline dotted; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font weight in Chrome, Edge, and Safari.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` elements from affecting the line height in
|
||||
* all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
/* Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the border on images inside links in IE 10.
|
||||
*/
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
/* Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Change the font styles in all browsers.
|
||||
* 2. Remove the margin in Firefox and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family: inherit; /* 1 */
|
||||
font-size: 100%; /* 1 */
|
||||
line-height: 1.15; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the overflow in IE.
|
||||
* 1. Show the overflow in Edge.
|
||||
*/
|
||||
|
||||
button,
|
||||
input { /* 1 */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
||||
* 1. Remove the inheritance of text transform in Firefox.
|
||||
*/
|
||||
|
||||
button,
|
||||
select { /* 1 */
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the inability to style clickable types in iOS and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner border and padding in Firefox.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore the focus styles unset by the previous rule.
|
||||
*/
|
||||
|
||||
button:-moz-focusring,
|
||||
[type="button"]:-moz-focusring,
|
||||
[type="reset"]:-moz-focusring,
|
||||
[type="submit"]:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the padding in Firefox.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
padding: 0.35em 0.75em 0.625em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the text wrapping in Edge and IE.
|
||||
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||
* 3. Remove the padding so developers are not caught out when they zero out
|
||||
* `fieldset` elements in all browsers.
|
||||
*/
|
||||
|
||||
legend {
|
||||
box-sizing: border-box; /* 1 */
|
||||
color: inherit; /* 2 */
|
||||
display: table; /* 1 */
|
||||
max-width: 100%; /* 1 */
|
||||
padding: 0; /* 3 */
|
||||
white-space: normal; /* 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||
*/
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the default vertical scrollbar in IE 10+.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in IE 10.
|
||||
* 2. Remove the padding in IE 10.
|
||||
*/
|
||||
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the cursor style of increment and decrement buttons in Chrome.
|
||||
*/
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the odd appearance in Chrome and Safari.
|
||||
* 2. Correct the outline style in Safari.
|
||||
*/
|
||||
|
||||
[type="search"] {
|
||||
-webkit-appearance: textfield; /* 1 */
|
||||
outline-offset: -2px; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner padding in Chrome and Safari on macOS.
|
||||
*/
|
||||
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inability to style clickable types in iOS and Safari.
|
||||
* 2. Change font properties to `inherit` in Safari.
|
||||
*/
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button; /* 1 */
|
||||
font: inherit; /* 2 */
|
||||
}
|
||||
|
||||
/* Interactive
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
* Add the correct display in Edge, IE 10+, and Firefox.
|
||||
*/
|
||||
|
||||
details {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the correct display in all browsers.
|
||||
*/
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* Misc
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10+.
|
||||
*/
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10.
|
||||
*/
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
196
static/photos/static/css/style.css
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
body {
|
||||
background-color: #242424;
|
||||
color: #aaaaaa;
|
||||
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7);
|
||||
font: 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
width: 96%;
|
||||
}
|
||||
|
||||
a, a:link, a:visited {
|
||||
color: #999999;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #dadada;
|
||||
}
|
||||
|
||||
/* remove SMALLCAPS style and dotted underline from some browsers */
|
||||
abbr[title] {
|
||||
text-decoration: none;
|
||||
font-variant: none;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
abbr[title="exposure"]::after { content: "s" }
|
||||
abbr[title="film speed"]::before { content: "ISO " }
|
||||
abbr[title="aperture"]::before { content: "f/" }
|
||||
abbr[title="focal length"]::after { content: "mm" }
|
||||
abbr[title="camera make and model"], abbr[title="date"] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* header */
|
||||
header {
|
||||
padding: 1em 0;
|
||||
color: #eeeeee;
|
||||
}
|
||||
header h1, header h2 {
|
||||
color: #eeeeee;
|
||||
margin: 10px 0;
|
||||
}
|
||||
header h1 a, header h1 a:link, header h1 a:visited,
|
||||
header h2 a, header h2 a:link, header h2 a:visited {
|
||||
color: #eeeeee;
|
||||
text-shadow: 0 2px 0 #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
header h1 a:hover, header h2 a:hover {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#menu ul {
|
||||
list-style-type: none;
|
||||
margin: 0 0 10px;
|
||||
padding: 0;
|
||||
}
|
||||
#menu ul li {
|
||||
display: inline-block;
|
||||
}
|
||||
#menu ul li a, #menu ul li a:link, #menu ul li a:visited {
|
||||
color: #aaaaaa;
|
||||
border-bottom: 1px solid #aaaaaa;
|
||||
padding-bottom: 2px;
|
||||
margin-left: 5px;
|
||||
text-decoration: none;
|
||||
}
|
||||
#menu ul li a:hover {
|
||||
color: #eeeeee;
|
||||
border-color: #eeeeee;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* gallery */
|
||||
#albums ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
#albums ul li {
|
||||
display: inline-block;
|
||||
margin: 0 55px 30px 0;
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
width: 280px;
|
||||
}
|
||||
#albums ul li:nth-child(3n+3) {
|
||||
margin-right: 0;
|
||||
}
|
||||
#albums ul li a img {
|
||||
opacity: 1;
|
||||
-webkit-transition: opacity 0.2s ease-in;
|
||||
-moz-transition-property: opacity;
|
||||
-moz-transition-duration: 0.2s;
|
||||
-moz-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
|
||||
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
|
||||
-o-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
|
||||
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
#albums ul li a:hover img {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.album_title {
|
||||
display: block;
|
||||
color: #eeeeee;
|
||||
font-size: 1.3em;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* galleria */
|
||||
#gallery {
|
||||
line-height: 0;
|
||||
width: 100%;
|
||||
height: 600px;
|
||||
clear: both;
|
||||
}
|
||||
#gallery video {
|
||||
position: absolute;
|
||||
top: 10%;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.galleria-theme-classic .galleria-info-text {
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
}
|
||||
|
||||
.icons {
|
||||
top: 10px;
|
||||
right: 20px;
|
||||
padding: 5px;
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
text-align: right;
|
||||
}
|
||||
.icons a {
|
||||
cursor: pointer;
|
||||
}
|
||||
.icons img {
|
||||
opacity: .7;
|
||||
}
|
||||
.icons img:hover {
|
||||
opacity: .9;
|
||||
}
|
||||
|
||||
/* Mimic .galleria-stage to use the same area for the map */
|
||||
#galleria-map {
|
||||
position: absolute;
|
||||
bottom: 80px;
|
||||
left: 10px;
|
||||
top: 0;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
footer {
|
||||
clear: both;
|
||||
display: block;
|
||||
margin: 1em 0;
|
||||
text-align: center;
|
||||
}
|
||||
footer a:link, footer a:visited {
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
footer a:hover {
|
||||
border-bottom: 1px solid;
|
||||
text-decoration: none;
|
||||
}
|
||||
footer span:not(:last-child):after {
|
||||
content: ' - ';
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 980px) {
|
||||
.container {
|
||||
width: 960px;
|
||||
}
|
||||
|
||||
#gallery {
|
||||
width: 980px;
|
||||
margin: 0 0 40px -10px;
|
||||
}
|
||||
|
||||
header h1, #menu {
|
||||
display: inline-block;
|
||||
width: 49.5%;
|
||||
}
|
||||
#menu {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
6930
static/photos/static/galleria.js
Normal file
13
static/photos/static/galleria.min.js
vendored
Normal file
BIN
static/photos/static/img/empty.png
Normal file
|
After Width: | Height: | Size: 95 B |
BIN
static/photos/static/img/fullscreen.png
Normal file
|
After Width: | Height: | Size: 444 B |
BIN
static/photos/static/img/map.png
Normal file
|
After Width: | Height: | Size: 512 B |
BIN
static/photos/static/img/photo.png
Normal file
|
After Width: | Height: | Size: 474 B |
10364
static/photos/static/jquery-3.3.1.js
vendored
Normal file
2
static/photos/static/jquery-3.3.1.min.js
vendored
Normal file
BIN
static/photos/static/leaflet/images/layers-2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
static/photos/static/leaflet/images/layers.png
Normal file
|
After Width: | Height: | Size: 696 B |
BIN
static/photos/static/leaflet/images/marker-icon-2x.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
static/photos/static/leaflet/images/marker-icon.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
static/photos/static/leaflet/images/marker-shadow.png
Normal file
|
After Width: | Height: | Size: 618 B |
691
static/photos/static/leaflet/leaflet-providers.js
Normal file
|
|
@ -0,0 +1,691 @@
|
|||
(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['leaflet'], factory);
|
||||
} else if (typeof modules === 'object' && module.exports) {
|
||||
// define a Common JS module that relies on 'leaflet'
|
||||
module.exports = factory(require('leaflet'));
|
||||
} else {
|
||||
// Assume Leaflet is loaded into global object L already
|
||||
factory(L);
|
||||
}
|
||||
}(this, function (L) {
|
||||
'use strict';
|
||||
|
||||
L.TileLayer.Provider = L.TileLayer.extend({
|
||||
initialize: function (arg, options) {
|
||||
var providers = L.TileLayer.Provider.providers;
|
||||
|
||||
var parts = arg.split('.');
|
||||
|
||||
var providerName = parts[0];
|
||||
var variantName = parts[1];
|
||||
|
||||
if (!providers[providerName]) {
|
||||
throw 'No such provider (' + providerName + ')';
|
||||
}
|
||||
|
||||
var provider = {
|
||||
url: providers[providerName].url,
|
||||
options: providers[providerName].options
|
||||
};
|
||||
|
||||
// overwrite values in provider from variant.
|
||||
if (variantName && 'variants' in providers[providerName]) {
|
||||
if (!(variantName in providers[providerName].variants)) {
|
||||
throw 'No such variant of ' + providerName + ' (' + variantName + ')';
|
||||
}
|
||||
var variant = providers[providerName].variants[variantName];
|
||||
var variantOptions;
|
||||
if (typeof variant === 'string') {
|
||||
variantOptions = {
|
||||
variant: variant
|
||||
};
|
||||
} else {
|
||||
variantOptions = variant.options;
|
||||
}
|
||||
provider = {
|
||||
url: variant.url || provider.url,
|
||||
options: L.Util.extend({}, provider.options, variantOptions)
|
||||
};
|
||||
}
|
||||
|
||||
// If retina option is set
|
||||
if (provider.options.retina) {
|
||||
// Check retina screen
|
||||
if (options.detectRetina && L.Browser.retina) {
|
||||
// The retina option will be active now
|
||||
// But we need to prevent Leaflet retina mode
|
||||
options.detectRetina = false;
|
||||
} else {
|
||||
// No retina, remove option
|
||||
provider.options.retina = '';
|
||||
}
|
||||
}
|
||||
|
||||
// replace attribution placeholders with their values from toplevel provider attribution,
|
||||
// recursively
|
||||
var attributionReplacer = function (attr) {
|
||||
if (attr.indexOf('{attribution.') === -1) {
|
||||
return attr;
|
||||
}
|
||||
return attr.replace(/\{attribution.(\w*)\}/,
|
||||
function (match, attributionName) {
|
||||
return attributionReplacer(providers[attributionName].options.attribution);
|
||||
}
|
||||
);
|
||||
};
|
||||
provider.options.attribution = attributionReplacer(provider.options.attribution);
|
||||
|
||||
// Compute final options combining provider options with any user overrides
|
||||
var layerOpts = L.Util.extend({}, provider.options, options);
|
||||
L.TileLayer.prototype.initialize.call(this, provider.url, layerOpts);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Definition of providers.
|
||||
* see http://leafletjs.com/reference.html#tilelayer for options in the options map.
|
||||
*/
|
||||
|
||||
L.TileLayer.Provider.providers = {
|
||||
OpenStreetMap: {
|
||||
url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
maxZoom: 19,
|
||||
attribution:
|
||||
'© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||||
},
|
||||
variants: {
|
||||
Mapnik: {},
|
||||
BlackAndWhite: {
|
||||
url: 'http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
maxZoom: 18
|
||||
}
|
||||
},
|
||||
DE: {
|
||||
url: 'https://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
maxZoom: 18
|
||||
}
|
||||
},
|
||||
France: {
|
||||
url: 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
maxZoom: 20,
|
||||
attribution: '© Openstreetmap France | {attribution.OpenStreetMap}'
|
||||
}
|
||||
},
|
||||
HOT: {
|
||||
url: 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
attribution: '{attribution.OpenStreetMap}, Tiles courtesy of <a href="http://hot.openstreetmap.org/" target="_blank">Humanitarian OpenStreetMap Team</a>'
|
||||
}
|
||||
},
|
||||
BZH: {
|
||||
url: 'http://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
attribution: '{attribution.OpenStreetMap}, Tiles courtesy of <a href="http://www.openstreetmap.bzh/" target="_blank">Breton OpenStreetMap Team</a>',
|
||||
bounds: [[46.2, -5.5], [50, 0.7]]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
OpenSeaMap: {
|
||||
url: 'https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
attribution: 'Map data: © <a href="http://www.openseamap.org">OpenSeaMap</a> contributors'
|
||||
}
|
||||
},
|
||||
OpenTopoMap: {
|
||||
url: 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
maxZoom: 17,
|
||||
attribution: 'Map data: {attribution.OpenStreetMap}, <a href="http://viewfinderpanoramas.org">SRTM</a> | Map style: © <a href="https://opentopomap.org">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)'
|
||||
}
|
||||
},
|
||||
Thunderforest: {
|
||||
url: 'https://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png?apikey={apikey}',
|
||||
options: {
|
||||
attribution:
|
||||
'© <a href="http://www.thunderforest.com/">Thunderforest</a>, {attribution.OpenStreetMap}',
|
||||
variant: 'cycle',
|
||||
apikey: '<insert your api key here>',
|
||||
maxZoom: 22
|
||||
},
|
||||
variants: {
|
||||
OpenCycleMap: 'cycle',
|
||||
Transport: {
|
||||
options: {
|
||||
variant: 'transport'
|
||||
}
|
||||
},
|
||||
TransportDark: {
|
||||
options: {
|
||||
variant: 'transport-dark'
|
||||
}
|
||||
},
|
||||
SpinalMap: {
|
||||
options: {
|
||||
variant: 'spinal-map'
|
||||
}
|
||||
},
|
||||
Landscape: 'landscape',
|
||||
Outdoors: 'outdoors',
|
||||
Pioneer: 'pioneer'
|
||||
}
|
||||
},
|
||||
OpenMapSurfer: {
|
||||
url: 'https://korona.geog.uni-heidelberg.de/tiles/{variant}/x={x}&y={y}&z={z}',
|
||||
options: {
|
||||
maxZoom: 20,
|
||||
variant: 'roads',
|
||||
attribution: 'Imagery from <a href="http://giscience.uni-hd.de/">GIScience Research Group @ University of Heidelberg</a> — Map data {attribution.OpenStreetMap}'
|
||||
},
|
||||
variants: {
|
||||
Roads: 'roads',
|
||||
AdminBounds: {
|
||||
options: {
|
||||
variant: 'adminb',
|
||||
maxZoom: 19
|
||||
}
|
||||
},
|
||||
Grayscale: {
|
||||
options: {
|
||||
variant: 'roadsg',
|
||||
maxZoom: 19
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
Hydda: {
|
||||
url: 'https://{s}.tile.openstreetmap.se/hydda/{variant}/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
maxZoom: 18,
|
||||
variant: 'full',
|
||||
attribution: 'Tiles courtesy of <a href="http://openstreetmap.se/" target="_blank">OpenStreetMap Sweden</a> — Map data {attribution.OpenStreetMap}'
|
||||
},
|
||||
variants: {
|
||||
Full: 'full',
|
||||
Base: 'base',
|
||||
RoadsAndLabels: 'roads_and_labels'
|
||||
}
|
||||
},
|
||||
MapBox: {
|
||||
url: 'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}',
|
||||
options: {
|
||||
attribution:
|
||||
'Imagery from <a href="http://mapbox.com/about/maps/">MapBox</a> — ' +
|
||||
'Map data {attribution.OpenStreetMap}',
|
||||
subdomains: 'abcd',
|
||||
id: 'streets',
|
||||
accessToken: '<insert your access token here>',
|
||||
}
|
||||
},
|
||||
Stamen: {
|
||||
url: 'https://stamen-tiles-{s}.a.ssl.fastly.net/{variant}/{z}/{x}/{y}.{ext}',
|
||||
options: {
|
||||
attribution:
|
||||
'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ' +
|
||||
'<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — ' +
|
||||
'Map data {attribution.OpenStreetMap}',
|
||||
subdomains: 'abcd',
|
||||
minZoom: 0,
|
||||
maxZoom: 20,
|
||||
variant: 'toner',
|
||||
ext: 'png'
|
||||
},
|
||||
variants: {
|
||||
Toner: 'toner',
|
||||
TonerBackground: 'toner-background',
|
||||
TonerHybrid: 'toner-hybrid',
|
||||
TonerLines: 'toner-lines',
|
||||
TonerLabels: 'toner-labels',
|
||||
TonerLite: 'toner-lite',
|
||||
Watercolor: {
|
||||
options: {
|
||||
variant: 'watercolor',
|
||||
minZoom: 1,
|
||||
maxZoom: 16
|
||||
}
|
||||
},
|
||||
Terrain: {
|
||||
options: {
|
||||
variant: 'terrain',
|
||||
minZoom: 0,
|
||||
maxZoom: 18
|
||||
}
|
||||
},
|
||||
TerrainBackground: {
|
||||
options: {
|
||||
variant: 'terrain-background',
|
||||
minZoom: 0,
|
||||
maxZoom: 18
|
||||
}
|
||||
},
|
||||
TopOSMRelief: {
|
||||
options: {
|
||||
variant: 'toposm-color-relief',
|
||||
ext: 'jpg',
|
||||
bounds: [[22, -132], [51, -56]]
|
||||
}
|
||||
},
|
||||
TopOSMFeatures: {
|
||||
options: {
|
||||
variant: 'toposm-features',
|
||||
bounds: [[22, -132], [51, -56]],
|
||||
opacity: 0.9
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
Esri: {
|
||||
url: 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}',
|
||||
options: {
|
||||
variant: 'World_Street_Map',
|
||||
attribution: 'Tiles © Esri'
|
||||
},
|
||||
variants: {
|
||||
WorldStreetMap: {
|
||||
options: {
|
||||
attribution:
|
||||
'{attribution.Esri} — ' +
|
||||
'Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012'
|
||||
}
|
||||
},
|
||||
DeLorme: {
|
||||
options: {
|
||||
variant: 'Specialty/DeLorme_World_Base_Map',
|
||||
minZoom: 1,
|
||||
maxZoom: 11,
|
||||
attribution: '{attribution.Esri} — Copyright: ©2012 DeLorme'
|
||||
}
|
||||
},
|
||||
WorldTopoMap: {
|
||||
options: {
|
||||
variant: 'World_Topo_Map',
|
||||
attribution:
|
||||
'{attribution.Esri} — ' +
|
||||
'Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community'
|
||||
}
|
||||
},
|
||||
WorldImagery: {
|
||||
options: {
|
||||
variant: 'World_Imagery',
|
||||
attribution:
|
||||
'{attribution.Esri} — ' +
|
||||
'Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community'
|
||||
}
|
||||
},
|
||||
WorldTerrain: {
|
||||
options: {
|
||||
variant: 'World_Terrain_Base',
|
||||
maxZoom: 13,
|
||||
attribution:
|
||||
'{attribution.Esri} — ' +
|
||||
'Source: USGS, Esri, TANA, DeLorme, and NPS'
|
||||
}
|
||||
},
|
||||
WorldShadedRelief: {
|
||||
options: {
|
||||
variant: 'World_Shaded_Relief',
|
||||
maxZoom: 13,
|
||||
attribution: '{attribution.Esri} — Source: Esri'
|
||||
}
|
||||
},
|
||||
WorldPhysical: {
|
||||
options: {
|
||||
variant: 'World_Physical_Map',
|
||||
maxZoom: 8,
|
||||
attribution: '{attribution.Esri} — Source: US National Park Service'
|
||||
}
|
||||
},
|
||||
OceanBasemap: {
|
||||
options: {
|
||||
variant: 'Ocean_Basemap',
|
||||
maxZoom: 13,
|
||||
attribution: '{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri'
|
||||
}
|
||||
},
|
||||
NatGeoWorldMap: {
|
||||
options: {
|
||||
variant: 'NatGeo_World_Map',
|
||||
maxZoom: 16,
|
||||
attribution: '{attribution.Esri} — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC'
|
||||
}
|
||||
},
|
||||
WorldGrayCanvas: {
|
||||
options: {
|
||||
variant: 'Canvas/World_Light_Gray_Base',
|
||||
maxZoom: 16,
|
||||
attribution: '{attribution.Esri} — Esri, DeLorme, NAVTEQ'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
OpenWeatherMap: {
|
||||
url: 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png?appid={apiKey}',
|
||||
options: {
|
||||
maxZoom: 19,
|
||||
attribution: 'Map data © <a href="http://openweathermap.org">OpenWeatherMap</a>',
|
||||
apiKey:'<insert your api key here>',
|
||||
opacity: 0.5
|
||||
},
|
||||
variants: {
|
||||
Clouds: 'clouds',
|
||||
CloudsClassic: 'clouds_cls',
|
||||
Precipitation: 'precipitation',
|
||||
PrecipitationClassic: 'precipitation_cls',
|
||||
Rain: 'rain',
|
||||
RainClassic: 'rain_cls',
|
||||
Pressure: 'pressure',
|
||||
PressureContour: 'pressure_cntr',
|
||||
Wind: 'wind',
|
||||
Temperature: 'temp',
|
||||
Snow: 'snow'
|
||||
}
|
||||
},
|
||||
HERE: {
|
||||
/*
|
||||
* HERE maps, formerly Nokia maps.
|
||||
* These basemaps are free, but you need an API key. Please sign up at
|
||||
* http://developer.here.com/getting-started
|
||||
*
|
||||
* Note that the base urls contain '.cit' whichs is HERE's
|
||||
* 'Customer Integration Testing' environment. Please remove for production
|
||||
* envirionments.
|
||||
*/
|
||||
url:
|
||||
'https://{s}.{base}.maps.cit.api.here.com/maptile/2.1/' +
|
||||
'{type}/{mapID}/{variant}/{z}/{x}/{y}/{size}/{format}?' +
|
||||
'app_id={app_id}&app_code={app_code}&lg={language}',
|
||||
options: {
|
||||
attribution:
|
||||
'Map © 1987-2014 <a href="http://developer.here.com">HERE</a>',
|
||||
subdomains: '1234',
|
||||
mapID: 'newest',
|
||||
'app_id': '<insert your app_id here>',
|
||||
'app_code': '<insert your app_code here>',
|
||||
base: 'base',
|
||||
variant: 'normal.day',
|
||||
maxZoom: 20,
|
||||
type: 'maptile',
|
||||
language: 'eng',
|
||||
format: 'png8',
|
||||
size: '256'
|
||||
},
|
||||
variants: {
|
||||
normalDay: 'normal.day',
|
||||
normalDayCustom: 'normal.day.custom',
|
||||
normalDayGrey: 'normal.day.grey',
|
||||
normalDayMobile: 'normal.day.mobile',
|
||||
normalDayGreyMobile: 'normal.day.grey.mobile',
|
||||
normalDayTransit: 'normal.day.transit',
|
||||
normalDayTransitMobile: 'normal.day.transit.mobile',
|
||||
normalNight: 'normal.night',
|
||||
normalNightMobile: 'normal.night.mobile',
|
||||
normalNightGrey: 'normal.night.grey',
|
||||
normalNightGreyMobile: 'normal.night.grey.mobile',
|
||||
|
||||
basicMap: {
|
||||
options: {
|
||||
type: 'basetile'
|
||||
}
|
||||
},
|
||||
mapLabels: {
|
||||
options: {
|
||||
type: 'labeltile',
|
||||
format: 'png'
|
||||
}
|
||||
},
|
||||
trafficFlow: {
|
||||
options: {
|
||||
base: 'traffic',
|
||||
type: 'flowtile'
|
||||
}
|
||||
},
|
||||
carnavDayGrey: 'carnav.day.grey',
|
||||
hybridDay: {
|
||||
options: {
|
||||
base: 'aerial',
|
||||
variant: 'hybrid.day'
|
||||
}
|
||||
},
|
||||
hybridDayMobile: {
|
||||
options: {
|
||||
base: 'aerial',
|
||||
variant: 'hybrid.day.mobile'
|
||||
}
|
||||
},
|
||||
pedestrianDay: 'pedestrian.day',
|
||||
pedestrianNight: 'pedestrian.night',
|
||||
satelliteDay: {
|
||||
options: {
|
||||
base: 'aerial',
|
||||
variant: 'satellite.day'
|
||||
}
|
||||
},
|
||||
terrainDay: {
|
||||
options: {
|
||||
base: 'aerial',
|
||||
variant: 'terrain.day'
|
||||
}
|
||||
},
|
||||
terrainDayMobile: {
|
||||
options: {
|
||||
base: 'aerial',
|
||||
variant: 'terrain.day.mobile'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
FreeMapSK: {
|
||||
url: 'http://t{s}.freemap.sk/T/{z}/{x}/{y}.jpeg',
|
||||
options: {
|
||||
minZoom: 8,
|
||||
maxZoom: 16,
|
||||
subdomains: '1234',
|
||||
bounds: [[47.204642, 15.996093], [49.830896, 22.576904]],
|
||||
attribution:
|
||||
'{attribution.OpenStreetMap}, vizualization CC-By-SA 2.0 <a href="http://freemap.sk">Freemap.sk</a>'
|
||||
}
|
||||
},
|
||||
MtbMap: {
|
||||
url: 'http://tile.mtbmap.cz/mtbmap_tiles/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
attribution:
|
||||
'{attribution.OpenStreetMap} & USGS'
|
||||
}
|
||||
},
|
||||
CartoDB: {
|
||||
url: 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/{variant}/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
attribution: '{attribution.OpenStreetMap} © <a href="http://cartodb.com/attributions">CartoDB</a>',
|
||||
subdomains: 'abcd',
|
||||
maxZoom: 19,
|
||||
variant: 'light_all'
|
||||
},
|
||||
variants: {
|
||||
Positron: 'light_all',
|
||||
PositronNoLabels: 'light_nolabels',
|
||||
PositronOnlyLabels: 'light_only_labels',
|
||||
DarkMatter: 'dark_all',
|
||||
DarkMatterNoLabels: 'dark_nolabels',
|
||||
DarkMatterOnlyLabels: 'dark_only_labels'
|
||||
}
|
||||
},
|
||||
HikeBike: {
|
||||
url: 'http://{s}.tiles.wmflabs.org/{variant}/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
maxZoom: 19,
|
||||
attribution: '{attribution.OpenStreetMap}',
|
||||
variant: 'hikebike'
|
||||
},
|
||||
variants: {
|
||||
HikeBike: {},
|
||||
HillShading: {
|
||||
options: {
|
||||
maxZoom: 15,
|
||||
variant: 'hillshading'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
BasemapAT: {
|
||||
url: 'https://maps{s}.wien.gv.at/basemap/{variant}/normal/google3857/{z}/{y}/{x}.{format}',
|
||||
options: {
|
||||
maxZoom: 19,
|
||||
attribution: 'Datenquelle: <a href="https://www.basemap.at">basemap.at</a>',
|
||||
subdomains: ['', '1', '2', '3', '4'],
|
||||
format: 'png',
|
||||
bounds: [[46.358770, 8.782379], [49.037872, 17.189532]],
|
||||
variant: 'geolandbasemap'
|
||||
},
|
||||
variants: {
|
||||
basemap: {
|
||||
options: {
|
||||
maxZoom: 20, // currently only in Vienna
|
||||
variant: 'geolandbasemap'
|
||||
}
|
||||
},
|
||||
grau: 'bmapgrau',
|
||||
overlay: 'bmapoverlay',
|
||||
highdpi: {
|
||||
options: {
|
||||
variant: 'bmaphidpi',
|
||||
format: 'jpeg'
|
||||
}
|
||||
},
|
||||
orthofoto: {
|
||||
options: {
|
||||
maxZoom: 20, // currently only in Vienna
|
||||
variant: 'bmaporthofoto30cm',
|
||||
format: 'jpeg'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
nlmaps: {
|
||||
url: 'https://geodata.nationaalgeoregister.nl/tiles/service/wmts/{variant}/EPSG:3857/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
minZoom: 6,
|
||||
maxZoom: 19,
|
||||
bounds: [[50.5, 3.25], [54, 7.6]],
|
||||
attribution: 'Kaartgegevens © <a href="kadaster.nl">Kadaster</a>'
|
||||
},
|
||||
variants: {
|
||||
'standaard': 'brtachtergrondkaart',
|
||||
'pastel': 'brtachtergrondkaartpastel',
|
||||
'grijs': 'brtachtergrondkaartgrijs',
|
||||
'luchtfoto': {
|
||||
'url': 'https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/1.0.0/2016_ortho25/EPSG:3857/{z}/{x}/{y}.png',
|
||||
}
|
||||
}
|
||||
},
|
||||
NASAGIBS: {
|
||||
url: 'https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}',
|
||||
options: {
|
||||
attribution:
|
||||
'Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System ' +
|
||||
'(<a href="https://earthdata.nasa.gov">ESDIS</a>) with funding provided by NASA/HQ.',
|
||||
bounds: [[-85.0511287776, -179.999999975], [85.0511287776, 179.999999975]],
|
||||
minZoom: 1,
|
||||
maxZoom: 9,
|
||||
format: 'jpg',
|
||||
time: '',
|
||||
tilematrixset: 'GoogleMapsCompatible_Level'
|
||||
},
|
||||
variants: {
|
||||
ModisTerraTrueColorCR: 'MODIS_Terra_CorrectedReflectance_TrueColor',
|
||||
ModisTerraBands367CR: 'MODIS_Terra_CorrectedReflectance_Bands367',
|
||||
ViirsEarthAtNight2012: {
|
||||
options: {
|
||||
variant: 'VIIRS_CityLights_2012',
|
||||
maxZoom: 8
|
||||
}
|
||||
},
|
||||
ModisTerraLSTDay: {
|
||||
options: {
|
||||
variant: 'MODIS_Terra_Land_Surface_Temp_Day',
|
||||
format: 'png',
|
||||
maxZoom: 7,
|
||||
opacity: 0.75
|
||||
}
|
||||
},
|
||||
ModisTerraSnowCover: {
|
||||
options: {
|
||||
variant: 'MODIS_Terra_Snow_Cover',
|
||||
format: 'png',
|
||||
maxZoom: 8,
|
||||
opacity: 0.75
|
||||
}
|
||||
},
|
||||
ModisTerraAOD: {
|
||||
options: {
|
||||
variant: 'MODIS_Terra_Aerosol',
|
||||
format: 'png',
|
||||
maxZoom: 6,
|
||||
opacity: 0.75
|
||||
}
|
||||
},
|
||||
ModisTerraChlorophyll: {
|
||||
options: {
|
||||
variant: 'MODIS_Terra_Chlorophyll_A',
|
||||
format: 'png',
|
||||
maxZoom: 7,
|
||||
opacity: 0.75
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
NLS: {
|
||||
// NLS maps are copyright National library of Scotland.
|
||||
// http://maps.nls.uk/projects/api/index.html
|
||||
// Please contact NLS for anything other than non-commercial low volume usage
|
||||
//
|
||||
// Map sources: Ordnance Survey 1:1m to 1:63K, 1920s-1940s
|
||||
// z0-9 - 1:1m
|
||||
// z10-11 - quarter inch (1:253440)
|
||||
// z12-18 - one inch (1:63360)
|
||||
url: 'https://nls-{s}.tileserver.com/nls/{z}/{x}/{y}.jpg',
|
||||
options: {
|
||||
attribution: '<a href="http://geo.nls.uk/maps/">National Library of Scotland Historic Maps</a>',
|
||||
bounds: [[49.6, -12], [61.7, 3]],
|
||||
minZoom: 1,
|
||||
maxZoom: 18,
|
||||
subdomains: '0123',
|
||||
}
|
||||
},
|
||||
JusticeMap: {
|
||||
// Justice Map (http://www.justicemap.org/)
|
||||
// Visualize race and income data for your community, county and country.
|
||||
// Includes tools for data journalists, bloggers and community activists.
|
||||
url: 'http://www.justicemap.org/tile/{size}/{variant}/{z}/{x}/{y}.png',
|
||||
options: {
|
||||
attribution: '<a href="http://www.justicemap.org/terms.php">Justice Map</a>',
|
||||
// one of 'county', 'tract', 'block'
|
||||
size: 'county',
|
||||
// Bounds for USA, including Alaska and Hawaii
|
||||
bounds: [[14, -180], [72, -56]]
|
||||
},
|
||||
variants: {
|
||||
income: 'income',
|
||||
americanIndian: 'indian',
|
||||
asian: 'asian',
|
||||
black: 'black',
|
||||
hispanic: 'hispanic',
|
||||
multi: 'multi',
|
||||
nonWhite: 'nonwhite',
|
||||
white: 'white',
|
||||
plurality: 'plural'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
L.tileLayer.provider = function (provider, options) {
|
||||
return new L.TileLayer.Provider(provider, options);
|
||||
};
|
||||
|
||||
return L;
|
||||
}));
|
||||
13802
static/photos/static/leaflet/leaflet-src.js
Normal file
636
static/photos/static/leaflet/leaflet.css
Normal file
|
|
@ -0,0 +1,636 @@
|
|||
/* 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 {
|
||||
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;
|
||||
-o-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);
|
||||
-o-transition: -o-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;
|
||||
-o-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;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
/* 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(images/layers.png);
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
.leaflet-retina .leaflet-control-layers-toggle {
|
||||
background-image: url(images/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(images/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);
|
||||
-o-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;
|
||||
}
|
||||
5
static/photos/static/leaflet/leaflet.js
Normal file
147
static/photos/static/plugins/history/galleria.history.js
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
/**
|
||||
* Galleria History Plugin 2016-09-03
|
||||
* http://galleria.io
|
||||
*
|
||||
* Copyright (c) 2010 - 2017 worse is better UG
|
||||
* Licensed under the MIT license
|
||||
* https://raw.github.com/worseisbetter/galleria/master/LICENSE
|
||||
*
|
||||
*/
|
||||
|
||||
(function( $, window ) {
|
||||
|
||||
/*global jQuery, Galleria, window */
|
||||
|
||||
Galleria.requires(1.25, 'The History Plugin requires Galleria version 1.2.5 or later.');
|
||||
|
||||
Galleria.History = (function() {
|
||||
|
||||
var onloads = [],
|
||||
|
||||
init = false,
|
||||
|
||||
loc = window.location,
|
||||
|
||||
doc = window.document,
|
||||
|
||||
ie = Galleria.IE,
|
||||
|
||||
support = 'onhashchange' in window && ( doc.mode === undefined || doc.mode > 7 ),
|
||||
|
||||
iframe,
|
||||
|
||||
get = function( winloc ) {
|
||||
if( iframe && !support && Galleria.IE ) {
|
||||
winloc = winloc || iframe.location;
|
||||
} else {
|
||||
winloc = loc;
|
||||
}
|
||||
return parseInt( winloc.hash.substr(2), 10 );
|
||||
},
|
||||
|
||||
saved = get( loc ),
|
||||
|
||||
callbacks = [],
|
||||
|
||||
onchange = function() {
|
||||
$.each( callbacks, function( i, fn ) {
|
||||
fn.call( window, get() );
|
||||
});
|
||||
},
|
||||
|
||||
ready = function() {
|
||||
$.each( onloads, function(i, fn) {
|
||||
fn();
|
||||
});
|
||||
|
||||
init = true;
|
||||
},
|
||||
|
||||
setHash = function( val ) {
|
||||
return '/' + val;
|
||||
};
|
||||
|
||||
// always remove support if IE < 8
|
||||
if ( support && ie < 8 ) {
|
||||
support = false;
|
||||
}
|
||||
|
||||
if ( !support ) {
|
||||
|
||||
$(function() {
|
||||
|
||||
var interval = window.setInterval(function() {
|
||||
|
||||
var hash = get();
|
||||
|
||||
if ( !isNaN( hash ) && hash != saved ) {
|
||||
saved = hash;
|
||||
loc.hash = setHash( hash );
|
||||
onchange();
|
||||
}
|
||||
|
||||
}, 50);
|
||||
|
||||
if ( ie ) {
|
||||
|
||||
$('<iframe tabindex="-1" title="empty">').hide().attr( 'src', 'about:blank' ).one('load', function() {
|
||||
|
||||
iframe = this.contentWindow;
|
||||
|
||||
ready();
|
||||
|
||||
}).insertAfter(doc.body);
|
||||
|
||||
} else {
|
||||
ready();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
ready();
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
change: function( fn ) {
|
||||
|
||||
callbacks.push( fn );
|
||||
|
||||
if( support ) {
|
||||
window.onhashchange = onchange;
|
||||
}
|
||||
},
|
||||
|
||||
set: function( val ) {
|
||||
|
||||
if ( isNaN( val ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !support && ie ) {
|
||||
|
||||
this.ready(function() {
|
||||
|
||||
var idoc = iframe.document;
|
||||
idoc.open();
|
||||
idoc.close();
|
||||
|
||||
iframe.location.hash = setHash( val );
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
loc.hash = setHash( val );
|
||||
},
|
||||
|
||||
ready: function(fn) {
|
||||
if (!init) {
|
||||
onloads.push(fn);
|
||||
} else {
|
||||
fn();
|
||||
}
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
}( jQuery, this ));
|
||||
|
||||
11
static/photos/static/plugins/history/galleria.history.min.js
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
* Galleria - v1.5.7 2017-05-10
|
||||
* https://galleria.io
|
||||
*
|
||||
* Copyright (c) 2010 - 2017 worse is better UG
|
||||
* Licensed under the MIT License.
|
||||
* https://raw.github.com/worseisbetter/galleria/master/LICENSE
|
||||
*
|
||||
*/
|
||||
|
||||
!function(a,b){Galleria.requires(1.25,"The History Plugin requires Galleria version 1.2.5 or later."),Galleria.History=function(){var c,d=[],e=!1,f=b.location,g=b.document,h=Galleria.IE,i="onhashchange"in b&&(void 0===g.mode||g.mode>7),j=function(a){return a=c&&!i&&Galleria.IE?a||c.location:f,parseInt(a.hash.substr(2),10)},k=j(f),l=[],m=function(){a.each(l,function(a,c){c.call(b,j())})},n=function(){a.each(d,function(a,b){b()}),e=!0},o=function(a){return"/"+a};return i&&h<8&&(i=!1),i?n():a(function(){b.setInterval(function(){var a=j();isNaN(a)||a==k||(k=a,f.hash=o(a),m())},50);h?a('<iframe tabindex="-1" title="empty">').hide().attr("src","about:blank").one("load",function(){c=this.contentWindow,n()}).insertAfter(g.body):n()}),{change:function(a){l.push(a),i&&(b.onhashchange=m)},set:function(a){isNaN(a)||(!i&&h&&this.ready(function(){var b=c.document;b.open(),b.close(),c.location.hash=o(a)}),f.hash=o(a))},ready:function(a){e?a():d.push(a)}}}()}(jQuery,this);
|
||||
BIN
static/photos/static/themes/classic/classic-loader.gif
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
static/photos/static/themes/classic/classic-map.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
227
static/photos/static/themes/classic/galleria.classic.css
Normal file
|
|
@ -0,0 +1,227 @@
|
|||
/**
|
||||
* Galleria Classic Theme 2017-02-13
|
||||
* http://galleria.io
|
||||
*
|
||||
* Copyright (c) 2010 - 2017 worse is better UG
|
||||
* Licensed under the MIT license
|
||||
* https://raw.github.com/worseisbetter/galleria/master/LICENSE
|
||||
*
|
||||
*/
|
||||
|
||||
#galleria-loader{height:1px!important}
|
||||
|
||||
.galleria-theme-classic {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
}
|
||||
.galleria-theme-classic img {
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-o-user-select: none;
|
||||
}
|
||||
.galleria-theme-classic .galleria-stage {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
bottom: 60px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
overflow:hidden;
|
||||
}
|
||||
.galleria-theme-classic .galleria-thumbnails-container {
|
||||
height: 50px;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
z-index: 2;
|
||||
}
|
||||
.galleria-theme-classic .galleria-carousel .galleria-thumbnails-list {
|
||||
margin-left: 30px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
.galleria-theme-classic .galleria-thumbnails .galleria-image {
|
||||
height: 40px;
|
||||
width: 60px;
|
||||
background: #000;
|
||||
margin: 0 5px 0 0;
|
||||
border: 1px solid #000;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
.galleria-theme-classic .galleria-counter {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
left: 10px;
|
||||
text-align: right;
|
||||
color: #fff;
|
||||
font: normal 11px/1 arial,sans-serif;
|
||||
z-index: 1;
|
||||
}
|
||||
.galleria-theme-classic .galleria-loader {
|
||||
background: #000;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
z-index: 2;
|
||||
display: none;
|
||||
background: url(classic-loader.gif) no-repeat 2px 2px;
|
||||
}
|
||||
.galleria-theme-classic .galleria-info {
|
||||
width: 50%;
|
||||
top: 15px;
|
||||
left: 15px;
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
}
|
||||
.galleria-theme-classic .galleria-info-text {
|
||||
background-color: #000;
|
||||
padding: 12px;
|
||||
display: none;
|
||||
/* IE7 */ zoom:1;
|
||||
}
|
||||
.galleria-theme-classic .galleria-info-title {
|
||||
font: bold 12px/1.1 arial,sans-serif;
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
margin-bottom: 7px;
|
||||
}
|
||||
.galleria-theme-classic .galleria-info-description {
|
||||
font: italic 12px/1.4 georgia,serif;
|
||||
margin: 0;
|
||||
color: #bbb;
|
||||
}
|
||||
.galleria-theme-classic .galleria-info-close {
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
background-position: -753px -11px;
|
||||
opacity: .5;
|
||||
filter: alpha(opacity=50);
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
}
|
||||
.galleria-theme-classic .notouch .galleria-info-close:hover{
|
||||
opacity:1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.galleria-theme-classic .touch .galleria-info-close:active{
|
||||
opacity:1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.galleria-theme-classic .galleria-info-link {
|
||||
background-position: -669px -5px;
|
||||
opacity: .7;
|
||||
filter: alpha(opacity=70);
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
cursor: pointer;
|
||||
background-color: #000;
|
||||
}
|
||||
.galleria-theme-classic.notouch .galleria-info-link:hover {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.galleria-theme-classic.touch .galleria-info-link:active {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.galleria-theme-classic .galleria-image-nav {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -62px;
|
||||
width: 100%;
|
||||
height: 62px;
|
||||
left: 0;
|
||||
}
|
||||
.galleria-theme-classic .galleria-image-nav-left,
|
||||
.galleria-theme-classic .galleria-image-nav-right {
|
||||
opacity: .3;
|
||||
filter: alpha(opacity=30);
|
||||
cursor: pointer;
|
||||
width: 62px;
|
||||
height: 124px;
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
z-index: 2;
|
||||
background-position: 0 46px;
|
||||
}
|
||||
.galleria-theme-classic .galleria-image-nav-right {
|
||||
left: auto;
|
||||
right: 10px;
|
||||
background-position: -254px 46px;
|
||||
z-index: 2;
|
||||
}
|
||||
.galleria-theme-classic.notouch .galleria-image-nav-left:hover,
|
||||
.galleria-theme-classic.notouch .galleria-image-nav-right:hover {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.galleria-theme-classic.touch .galleria-image-nav-left:active,
|
||||
.galleria-theme-classic.touch .galleria-image-nav-right:active {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
.galleria-theme-classic .galleria-thumb-nav-left,
|
||||
.galleria-theme-classic .galleria-thumb-nav-right {
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
background-position: -495px 5px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 40px;
|
||||
width: 23px;
|
||||
z-index: 3;
|
||||
opacity: .8;
|
||||
filter: alpha(opacity=80);
|
||||
}
|
||||
.galleria-theme-classic .galleria-thumb-nav-right {
|
||||
background-position: -578px 5px;
|
||||
border-right: none;
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
.galleria-theme-classic .galleria-thumbnails-container .disabled {
|
||||
opacity: .2;
|
||||
filter: alpha(opacity=20);
|
||||
cursor: default;
|
||||
}
|
||||
.galleria-theme-classic.notouch .galleria-thumb-nav-left:hover,
|
||||
.galleria-theme-classic.notouch .galleria-thumb-nav-right:hover {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
background-color: #111;
|
||||
}
|
||||
.galleria-theme-classic.touch .galleria-thumb-nav-left:active,
|
||||
.galleria-theme-classic.touch .galleria-thumb-nav-right:active {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
background-color: #111;
|
||||
}
|
||||
.galleria-theme-classic.notouch .galleria-thumbnails-container .disabled:hover {
|
||||
opacity: .2;
|
||||
filter: alpha(opacity=20);
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.galleria-theme-classic .galleria-carousel .galleria-thumb-nav-left,
|
||||
.galleria-theme-classic .galleria-carousel .galleria-thumb-nav-right {
|
||||
display: block;
|
||||
}
|
||||
.galleria-theme-classic .galleria-thumb-nav-left,
|
||||
.galleria-theme-classic .galleria-thumb-nav-right,
|
||||
.galleria-theme-classic .galleria-info-link,
|
||||
.galleria-theme-classic .galleria-info-close,
|
||||
.galleria-theme-classic .galleria-image-nav-left,
|
||||
.galleria-theme-classic .galleria-image-nav-right {
|
||||
background-image: url(classic-map.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.galleria-theme-classic.galleria-container.videoplay .galleria-info,
|
||||
.galleria-theme-classic.galleria-container.videoplay .galleria-counter{ display:none!important; }
|
||||
102
static/photos/static/themes/classic/galleria.classic.js
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
/**
|
||||
* Galleria Classic Theme 2017-02-13
|
||||
* http://galleria.io
|
||||
*
|
||||
* Copyright (c) 2010 - 2017 worse is better UG
|
||||
* Licensed under the MIT license
|
||||
* https://raw.github.com/worseisbetter/galleria/master/LICENSE
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
/*global window, jQuery, Galleria */
|
||||
|
||||
Galleria.addTheme({
|
||||
name: 'classic',
|
||||
version: 1.5,
|
||||
author: 'Galleria',
|
||||
css: 'galleria.classic.css',
|
||||
defaults: {
|
||||
transition: 'slide',
|
||||
thumbCrop: 'height',
|
||||
|
||||
// set this to false if you want to show the caption all the time:
|
||||
_toggleInfo: true
|
||||
},
|
||||
init: function(options) {
|
||||
|
||||
Galleria.requires(1.4, 'This version of Classic theme requires Galleria 1.4 or later');
|
||||
|
||||
// add some elements
|
||||
this.addElement('info-link','info-close');
|
||||
this.append({
|
||||
'info' : ['info-link','info-close']
|
||||
});
|
||||
|
||||
// cache some stuff
|
||||
var info = this.$('info-link,info-close,info-text'),
|
||||
touch = Galleria.TOUCH;
|
||||
|
||||
// show loader & counter with opacity
|
||||
this.$('loader,counter').show().css('opacity', 0.4);
|
||||
|
||||
// some stuff for non-touch browsers
|
||||
if (! touch ) {
|
||||
this.addIdleState( this.get('image-nav-left'), { left:-50 });
|
||||
this.addIdleState( this.get('image-nav-right'), { right:-50 });
|
||||
this.addIdleState( this.get('counter'), { opacity:0 });
|
||||
}
|
||||
|
||||
// toggle info
|
||||
if ( options._toggleInfo === true ) {
|
||||
info.bind( 'click:fast', function() {
|
||||
info.toggle();
|
||||
});
|
||||
} else {
|
||||
info.show();
|
||||
this.$('info-link, info-close').hide();
|
||||
}
|
||||
|
||||
// bind some stuff
|
||||
this.bind('thumbnail', function(e) {
|
||||
|
||||
if (! touch ) {
|
||||
// fade thumbnails
|
||||
$(e.thumbTarget).css('opacity', 0.6).parent().hover(function() {
|
||||
$(this).not('.active').children().stop().fadeTo(100, 1);
|
||||
}, function() {
|
||||
$(this).not('.active').children().stop().fadeTo(400, 0.6);
|
||||
});
|
||||
|
||||
if ( e.index === this.getIndex() ) {
|
||||
$(e.thumbTarget).css('opacity',1);
|
||||
}
|
||||
} else {
|
||||
$(e.thumbTarget).css('opacity', this.getIndex() ? 1 : 0.6).bind('click:fast', function() {
|
||||
$(this).css( 'opacity', 1 ).parent().siblings().children().css('opacity', 0.6);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var activate = function(e) {
|
||||
$(e.thumbTarget).css('opacity',1).parent().siblings().children().css('opacity', 0.6);
|
||||
};
|
||||
|
||||
this.bind('loadstart', function(e) {
|
||||
if (!e.cached) {
|
||||
this.$('loader').show().fadeTo(200, 0.4);
|
||||
}
|
||||
window.setTimeout(function() {
|
||||
activate(e);
|
||||
}, touch ? 300 : 0);
|
||||
this.$('info').toggle( this.hasInfo() );
|
||||
});
|
||||
|
||||
this.bind('loadfinish', function(e) {
|
||||
this.$('loader').fadeOut(200);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}(jQuery));
|
||||
1
static/photos/static/themes/classic/galleria.classic.min.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
#galleria-loader{height:1px!important}.galleria-theme-classic{position:relative;overflow:hidden;background:#000}.galleria-theme-classic img{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none}.galleria-theme-classic .galleria-stage{position:absolute;top:10px;bottom:60px;left:10px;right:10px;overflow:hidden}.galleria-theme-classic .galleria-thumbnails-container{height:50px;bottom:0;position:absolute;left:10px;right:10px;z-index:2}.galleria-theme-classic .galleria-carousel .galleria-thumbnails-list{margin-left:30px;margin-right:30px}.galleria-theme-classic .galleria-thumbnails .galleria-image{height:40px;width:60px;background:#000;margin:0 5px 0 0;border:1px solid #000;float:left;cursor:pointer}.galleria-theme-classic .galleria-counter{position:absolute;bottom:10px;left:10px;text-align:right;color:#fff;font:400 11px/1 arial,sans-serif;z-index:1}.galleria-theme-classic .galleria-loader{width:20px;height:20px;position:absolute;top:10px;right:10px;z-index:2;display:none;background:url(classic-loader.gif) 2px 2px no-repeat}.galleria-theme-classic .galleria-info{width:50%;top:15px;left:15px;z-index:2;position:absolute}.galleria-theme-classic .galleria-info-text{background-color:#000;padding:12px;display:none;zoom:1}.galleria-theme-classic .galleria-info-title{font:700 12px/1.1 arial,sans-serif;margin:0 0 7px;color:#fff}.galleria-theme-classic .galleria-info-description{font:italic 12px/1.4 georgia,serif;margin:0;color:#bbb}.galleria-theme-classic .galleria-info-close{width:9px;height:9px;position:absolute;top:5px;right:5px;background-position:-753px -11px;opacity:.5;filter:alpha(opacity=50);cursor:pointer;display:none}.galleria-theme-classic .notouch .galleria-info-close:hover,.galleria-theme-classic .touch .galleria-info-close:active{opacity:1;filter:alpha(opacity=100)}.galleria-theme-classic .galleria-info-link{background-position:-669px -5px;opacity:.7;filter:alpha(opacity=70);position:absolute;width:20px;height:20px;cursor:pointer;background-color:#000}.galleria-theme-classic.notouch .galleria-info-link:hover,.galleria-theme-classic.touch .galleria-info-link:active{opacity:1;filter:alpha(opacity=100)}.galleria-theme-classic .galleria-image-nav{position:absolute;top:50%;margin-top:-62px;width:100%;height:62px;left:0}.galleria-theme-classic .galleria-image-nav-left,.galleria-theme-classic .galleria-image-nav-right{opacity:.3;filter:alpha(opacity=30);cursor:pointer;width:62px;height:124px;position:absolute;left:10px;z-index:2;background-position:0 46px}.galleria-theme-classic .galleria-image-nav-right{left:auto;right:10px;background-position:-254px 46px;z-index:2}.galleria-theme-classic.notouch .galleria-image-nav-left:hover,.galleria-theme-classic.notouch .galleria-image-nav-right:hover,.galleria-theme-classic.touch .galleria-image-nav-left:active,.galleria-theme-classic.touch .galleria-image-nav-right:active{opacity:1;filter:alpha(opacity=100)}.galleria-theme-classic .galleria-thumb-nav-left,.galleria-theme-classic .galleria-thumb-nav-right{cursor:pointer;display:none;background-position:-495px 5px;position:absolute;left:0;top:0;height:40px;width:23px;z-index:3;opacity:.8;filter:alpha(opacity=80)}.galleria-theme-classic .galleria-thumb-nav-right{background-position:-578px 5px;border-right:none;right:0;left:auto}.galleria-theme-classic .galleria-thumbnails-container .disabled{opacity:.2;filter:alpha(opacity=20);cursor:default}.galleria-theme-classic.notouch .galleria-thumb-nav-left:hover,.galleria-theme-classic.notouch .galleria-thumb-nav-right:hover,.galleria-theme-classic.touch .galleria-thumb-nav-left:active,.galleria-theme-classic.touch .galleria-thumb-nav-right:active{opacity:1;filter:alpha(opacity=100);background-color:#111}.galleria-theme-classic.notouch .galleria-thumbnails-container .disabled:hover{opacity:.2;filter:alpha(opacity=20);background-color:transparent}.galleria-theme-classic .galleria-carousel .galleria-thumb-nav-left,.galleria-theme-classic .galleria-carousel .galleria-thumb-nav-right{display:block}.galleria-theme-classic .galleria-image-nav-left,.galleria-theme-classic .galleria-image-nav-right,.galleria-theme-classic .galleria-info-close,.galleria-theme-classic .galleria-info-link,.galleria-theme-classic .galleria-thumb-nav-left,.galleria-theme-classic .galleria-thumb-nav-right{background-image:url(classic-map.png);background-repeat:no-repeat}.galleria-theme-classic.galleria-container.videoplay .galleria-counter,.galleria-theme-classic.galleria-container.videoplay .galleria-info{display:none!important}
|
||||
11
static/photos/static/themes/classic/galleria.classic.min.js
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
* Galleria - v1.5.7 2017-05-10
|
||||
* https://galleria.io
|
||||
*
|
||||
* Copyright (c) 2010 - 2017 worse is better UG
|
||||
* Licensed under the MIT License.
|
||||
* https://raw.github.com/worseisbetter/galleria/master/LICENSE
|
||||
*
|
||||
*/
|
||||
|
||||
!function(a){Galleria.addTheme({name:"classic",version:1.5,author:"Galleria",css:"galleria.classic.css",defaults:{transition:"slide",thumbCrop:"height",_toggleInfo:!0},init:function(b){Galleria.requires(1.4,"This version of Classic theme requires Galleria 1.4 or later"),this.addElement("info-link","info-close"),this.append({info:["info-link","info-close"]});var c=this.$("info-link,info-close,info-text"),d=Galleria.TOUCH;this.$("loader,counter").show().css("opacity",.4),d||(this.addIdleState(this.get("image-nav-left"),{left:-50}),this.addIdleState(this.get("image-nav-right"),{right:-50}),this.addIdleState(this.get("counter"),{opacity:0})),b._toggleInfo===!0?c.bind("click:fast",function(){c.toggle()}):(c.show(),this.$("info-link, info-close").hide()),this.bind("thumbnail",function(b){d?a(b.thumbTarget).css("opacity",this.getIndex()?1:.6).bind("click:fast",function(){a(this).css("opacity",1).parent().siblings().children().css("opacity",.6)}):(a(b.thumbTarget).css("opacity",.6).parent().hover(function(){a(this).not(".active").children().stop().fadeTo(100,1)},function(){a(this).not(".active").children().stop().fadeTo(400,.6)}),b.index===this.getIndex()&&a(b.thumbTarget).css("opacity",1))});var e=function(b){a(b.thumbTarget).css("opacity",1).parent().siblings().children().css("opacity",.6)};this.bind("loadstart",function(a){a.cached||this.$("loader").show().fadeTo(200,.4),window.setTimeout(function(){e(a)},d?300:0),this.$("info").toggle(this.hasInfo())}),this.bind("loadfinish",function(a){this.$("loader").fadeOut(200)})}})}(jQuery);
|
||||