Merge branch 'custom' of https://github.com/vershwal/iD into vershwal-custom

This commit is contained in:
Bryan Housel
2018-08-11 00:54:21 -04:00
4 changed files with 106 additions and 9 deletions

View File

@@ -4602,3 +4602,24 @@ li.hide + li.version .badge .tooltip .tooltip-arrow {
width: 100px;
color: #7092ff;
}
.button-ok {
background-color: #6f92ff; /* Green */
border: none;
color: white;
padding: 15px 15px;
text-align: center;
font-size: 16px;
}
.button-ok:focus {
background-color: #c1d0ff;
}
.button-cancel {
background-color: #cccccc; /* Green */
border: none;
color: white;
padding: 15px 15px;
text-align: center;
font-size: 16px;
}

View File

@@ -17,10 +17,12 @@ import { svgIcon } from '../svg';
import { uiBackgroundDisplayOptions } from './background_display_options';
import { uiBackgroundOffset } from './background_offset';
import { uiCmd } from './cmd';
import { uiCustom } from './custom';
import { uiDisclosure } from './disclosure';
import { uiHelp } from './help';
import { uiMapData } from './map_data';
import { uiMapInMap } from './map_in_map';
import { uiModal } from './modal';
import { uiTooltipHtml } from './tooltipHtml';
import { utilCallWhenIdle } from '../util';
import { tooltip } from '../util/tooltip';
@@ -88,6 +90,7 @@ export function uiBackground(context) {
function chooseBackground(d) {
if (d.id === 'custom' && !d.template()) {
return editCustom();
}
d3_event.preventDefault();
@@ -99,15 +102,7 @@ export function uiBackground(context) {
document.activeElement.blur();
}
function editCustom() {
d3_event.preventDefault();
var example = 'https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png';
var template = window.prompt(
t('background.custom_prompt', { example: example }),
_customSource.template() || example
);
function edit(a, template) {
if (template) {
context.storage('background-custom-template', template);
_customSource.template(template);
@@ -117,6 +112,13 @@ export function uiBackground(context) {
}
}
function editCustom() {
d3_event.preventDefault();
context.container()
.call(uiCustom(context));
}
function chooseOverlay(d) {
d3_event.preventDefault();
@@ -419,6 +421,7 @@ export function uiBackground(context) {
uiBackground.hidePane = hidePane;
uiBackground.togglePane = togglePane;
uiBackground.setVisible = setVisible;
uiBackground.edit = edit;
}
return background;

72
modules/ui/custom.js Normal file
View File

@@ -0,0 +1,72 @@
import { t } from '../util/locale';
import { uiBackground } from './background';
import { uiModal } from './modal';
export function uiCustom(context) {
return function(selection) {
var example = 'https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png';
var modalSelection = uiModal(selection);
modalSelection.select('.modal')
.attr('class', 'modal-splash modal col6');
var introModal = modalSelection.select('.content')
.append('div')
.attr('class', 'fillL');
introModal
.append('div')
.attr('class','modal-section cf')
.append('h3').text(t('background.custom_heading'));
introModal
.append('div')
.attr('class','modal-section')
.append('p').text(t('background.custom_prompt', { example: example }))
.append('textarea');
/*var textAreaWrap = introModal
.append('div')
.attr('class', 'modal-section');
var urlArea = textAreaWrap
.append('textarea');*/
var buttonWrap = introModal
.append('div')
.attr('class', 'modal-section');
var cancelButton = buttonWrap
.append('button')
.attr('class', 'button-cancel')
.on('click', modalSelection.close);
cancelButton
.append('div')
.text('Cancel');
var okButton = buttonWrap
.append('button')
.attr('class', 'button-ok')
.on('click', function() {
var template = 'https://{switch:a,b,c}.tile.openstreetmap.org/{zoom}/{x}/{y}.png';
context.container().call(uiBackground.edit, template);
modalSelection.close();
});
okButton
.append('div')
.text('OK');
modalSelection.select('button.close')
.attr('class','hide');
};
}

View File

@@ -11,6 +11,7 @@ export { uiCommitChanges } from './commit_changes';
export { uiCommitWarnings } from './commit_warnings';
export { uiConfirm } from './confirm';
export { uiConflicts } from './conflicts';
export { uiCustom } from './custom';
export { uiContributors } from './contributors';
export { uiCurtain } from './curtain';
export { uiDisclosure } from './disclosure';