in src/windows/NotificationProxy.js [58:134]
function createPromptDialog (title, message, buttons, defaultText, callback) {
var isPhone = cordova.platformId === 'windows' && WinJS.Utilities.isPhone;
var isWindows = !!cordova.platformId.match(/windows/);
createCSSElem('notification.css');
var dlgWrap = document.createElement('div');
dlgWrap.className = 'dlgWrap';
var dlg = document.createElement('div');
dlg.className = 'dlgContainer';
if (isWindows) {
dlg.className += ' dlgContainer-windows';
} else if (isPhone) {
dlg.className += ' dlgContainer-phone';
}
// dialog layout template
dlg.innerHTML = _cleanHtml(
"<span id='lbl-title'></span><br/>" + // title
"<span id='lbl-message'></span><br/>" + // message
"<input id='prompt-input'/><br/>"
); // input fields
dlg.querySelector('#lbl-title').appendChild(document.createTextNode(title));
dlg.querySelector('#lbl-message').appendChild(document.createTextNode(message));
dlg.querySelector('#prompt-input').setAttribute('placeholder', defaultText);
dlg.querySelector('#prompt-input').setAttribute('value', defaultText);
function makeButtonCallback (idx) {
return function () {
var value = dlg.querySelector('#prompt-input').value || defaultText;
dlgWrap.parentNode.removeChild(dlgWrap);
if (callback) {
// eslint-disable-next-line standard/no-callback-literal
callback({ input1: value, buttonIndex: idx });
}
};
}
function addButton (idx, label) {
var button = document.createElement('button');
button.className = 'dlgButton';
button.tabIndex = idx;
button.onclick = makeButtonCallback(idx + 1);
if (idx === 0) {
button.className += ' dlgButtonFirst';
}
button.appendChild(document.createTextNode(label));
dlg.appendChild(button);
}
// reverse order is used since we align buttons to the right
for (var idx = buttons.length - 1; idx >= 0; idx--) {
addButton(idx, buttons[idx]);
}
dlgWrap.appendChild(dlg);
document.body.appendChild(dlgWrap);
// make sure input field is under focus
dlg.querySelector('#prompt-input').select();
// add Enter/Return key handling
var defaultButton = dlg.querySelector('.dlgButtonFirst');
dlg.addEventListener('keypress', function (e) {
if (e.keyCode === 13) {
// enter key
if (defaultButton) {
defaultButton.click();
}
}
});
return dlgWrap;
}