Permanent credits feature in the bottom left corner
This commit is contained in:
parent
d69f965f79
commit
57ba42061c
4 changed files with 64 additions and 3 deletions
|
@ -434,6 +434,47 @@ L.U.MoreControls = L.Control.extend({
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
L.U.PermanentCreditsControl = L.Control.extend({
|
||||||
|
|
||||||
|
options: {
|
||||||
|
position: 'bottomleft'
|
||||||
|
},
|
||||||
|
|
||||||
|
initialize: function (map) {
|
||||||
|
this.map = map;
|
||||||
|
},
|
||||||
|
|
||||||
|
onAdd: function () {
|
||||||
|
var paragraphContainer = L.DomUtil.create('div', 'umap-permanent-credits-container'),
|
||||||
|
creditsParagraph = L.DomUtil.create('p', '', paragraphContainer);
|
||||||
|
|
||||||
|
this.paragraphContainer = paragraphContainer;
|
||||||
|
this.setCredits();
|
||||||
|
this.setBackground();
|
||||||
|
|
||||||
|
return paragraphContainer;
|
||||||
|
},
|
||||||
|
|
||||||
|
_update: function () {
|
||||||
|
this.setCredits();
|
||||||
|
this.setBackground();
|
||||||
|
},
|
||||||
|
|
||||||
|
setCredits: function () {
|
||||||
|
this.paragraphContainer.innerHTML = L.Util.toHTML(this.map.options.permanentCredit);
|
||||||
|
},
|
||||||
|
|
||||||
|
setBackground: function () {
|
||||||
|
if (this.map.options.permanentCreditBackground) {
|
||||||
|
this.paragraphContainer.style.backgroundColor = '#FFFFFFB0';
|
||||||
|
} else {
|
||||||
|
this.paragraphContainer.style.backgroundColor = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
L.U.DataLayersControl = L.Control.extend({
|
L.U.DataLayersControl = L.Control.extend({
|
||||||
|
|
||||||
options: {
|
options: {
|
||||||
|
|
|
@ -452,6 +452,7 @@ L.U.Help = L.Class.extend({
|
||||||
fillColor: L._('Optional. Same as color if not set.'),
|
fillColor: L._('Optional. Same as color if not set.'),
|
||||||
shortCredit: L._('Will be displayed in the bottom right corner of the map'),
|
shortCredit: L._('Will be displayed in the bottom right corner of the map'),
|
||||||
longCredit: L._('Will be visible in the caption of the map'),
|
longCredit: L._('Will be visible in the caption of the map'),
|
||||||
|
permanentCredit: L._('Will be permanently visible in the bottom left corner of the map'),
|
||||||
sortKey: L._('Property to use for sorting features'),
|
sortKey: L._('Property to use for sorting features'),
|
||||||
slugKey: L._('The name of the property to use as feature unique identifier.'),
|
slugKey: L._('The name of the property to use as feature unique identifier.'),
|
||||||
filterKey: L._('Comma separated list of properties to use when filtering features'),
|
filterKey: L._('Comma separated list of properties to use when filtering features'),
|
||||||
|
|
|
@ -46,7 +46,8 @@ L.Map.mergeOptions({
|
||||||
slideshow: {},
|
slideshow: {},
|
||||||
clickable: true,
|
clickable: true,
|
||||||
easing: true,
|
easing: true,
|
||||||
permissions: {}
|
permissions: {},
|
||||||
|
permanentCreditBackground: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
L.U.Map.include({
|
L.U.Map.include({
|
||||||
|
@ -274,6 +275,7 @@ L.U.Map.include({
|
||||||
this._controls.measure = (new L.MeasureControl()).initHandler(this);
|
this._controls.measure = (new L.MeasureControl()).initHandler(this);
|
||||||
this._controls.more = new L.U.MoreControls();
|
this._controls.more = new L.U.MoreControls();
|
||||||
this._controls.scale = L.control.scale();
|
this._controls.scale = L.control.scale();
|
||||||
|
if (this.options.permanentCredit) this.permanentCreditControl = (new L.U.PermanentCreditsControl(this)).addTo(this);
|
||||||
if (this.options.scrollWheelZoom) this.scrollWheelZoom.enable();
|
if (this.options.scrollWheelZoom) this.scrollWheelZoom.enable();
|
||||||
else this.scrollWheelZoom.disable();
|
else this.scrollWheelZoom.disable();
|
||||||
this.renderControls();
|
this.renderControls();
|
||||||
|
@ -1076,6 +1078,8 @@ L.U.Map.include({
|
||||||
'labelInteractive',
|
'labelInteractive',
|
||||||
'shortCredit',
|
'shortCredit',
|
||||||
'longCredit',
|
'longCredit',
|
||||||
|
'permanentCredit',
|
||||||
|
'permanentCreditBackground',
|
||||||
'zoomControl',
|
'zoomControl',
|
||||||
'datalayersControl',
|
'datalayersControl',
|
||||||
'searchControl',
|
'searchControl',
|
||||||
|
@ -1379,10 +1383,14 @@ L.U.Map.include({
|
||||||
var creditsFields = [
|
var creditsFields = [
|
||||||
['options.licence', {handler: 'LicenceChooser', label: L._('licence')}],
|
['options.licence', {handler: 'LicenceChooser', label: L._('licence')}],
|
||||||
['options.shortCredit', {handler: 'Input', label: L._('Short credits'), helpEntries: ['shortCredit', 'textFormatting']}],
|
['options.shortCredit', {handler: 'Input', label: L._('Short credits'), helpEntries: ['shortCredit', 'textFormatting']}],
|
||||||
['options.longCredit', {handler: 'Textarea', label: L._('Long credits'), helpEntries: ['longCredit', 'textFormatting']}]
|
['options.longCredit', {handler: 'Textarea', label: L._('Long credits'), helpEntries: ['longCredit', 'textFormatting']}],
|
||||||
|
['options.permanentCredit', {handler: 'Textarea', label: L._('Permanent credits'), helpEntries: ['permanentCredit', 'textFormatting']}],
|
||||||
|
['options.permanentCreditBackground', {handler: 'Switch', label: L._('Permanent credits background')}]
|
||||||
];
|
];
|
||||||
var creditsBuilder = new L.U.FormBuilder(this, creditsFields, {
|
var creditsBuilder = new L.U.FormBuilder(this, creditsFields, {
|
||||||
callback: function () {this._controls.attribution._update();},
|
callback: function () {
|
||||||
|
this._controls.attribution._update();
|
||||||
|
this.permanentCreditControl._update();},
|
||||||
callbackContext: this
|
callbackContext: this
|
||||||
});
|
});
|
||||||
credits.appendChild(creditsBuilder.build());
|
credits.appendChild(creditsBuilder.build());
|
||||||
|
|
|
@ -117,6 +117,12 @@ a.umap-control-text {
|
||||||
.leaflet-control-edit-enable a:hover {
|
.leaflet-control-edit-enable a:hover {
|
||||||
background-color: #4d5759;
|
background-color: #4d5759;
|
||||||
}
|
}
|
||||||
|
.umap-permanent-credits-container {
|
||||||
|
max-width: 20rem;
|
||||||
|
margin: 0!important;
|
||||||
|
padding: 0.5rem;
|
||||||
|
border-top-right-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1366,6 +1372,11 @@ a.add-datalayer:hover,
|
||||||
.leaflet-control-layers-expanded {
|
.leaflet-control-layers-expanded {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.umap-permanent-credits-container {
|
||||||
|
max-width: 100%;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ****** */
|
/* ****** */
|
||||||
|
|
Loading…
Reference in a new issue