VulpesOS/gaia/apps/communications/contacts/js/action_menu.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

85 lines
2 KiB
JavaScript
Executable file

/* exported ActionMenu */
'use strict';
function ActionMenu(title) {
var data;
var contactActionMenu;
var listContainer;
var btnCancel;
var titleId = title;
function init() {
contactActionMenu = document.getElementById('action-menu');
// Prevent submit in the form
contactActionMenu.addEventListener('submit', function(evt) {
evt.preventDefault();
});
if (titleId) {
contactActionMenu.querySelector('#org-title').setAttribute(
'data-l10n-id', titleId);
}
listContainer = document.getElementById('value-menu');
data = {
list: []
};
}
this.show = function() {
render(this);
contactActionMenu.classList.remove('hide');
};
this.hide = function() {
contactActionMenu.classList.add('hide');
emptyList();
listContainer.innerHTML = '';
};
function render(self) {
for (var i = 0, l = data.list.length; i < l; i++) {
var button = document.createElement('button');
navigator.mozL10n.setAttributes(button,
data.list[i].labelL10n.id,
data.list[i].labelL10n.args);
// Set callback function on each button element.
var callback = data.list[i].callback;
if (callback) {
button.addEventListener('click', callback, false);
}
listContainer.appendChild(button);
}
btnCancel = document.createElement('button');
btnCancel.setAttribute('data-l10n-id', 'cancel');
btnCancel.addEventListener('click', function() {
self.hide();
});
var lastButtonWrapper = document.createElement('span');
lastButtonWrapper.className = 'last-button-container';
listContainer.appendChild(lastButtonWrapper);
lastButtonWrapper.appendChild(btnCancel);
}
function emptyList() {
data.list = [];
}
this.addToList = function (labelL10n, callback) {
var self = this;
data.list.push({
labelL10n: labelL10n,
callback: function() {
callback();
self.hide();
}
});
};
init();
}