diff --git a/html/js/app_pl.js b/html/js/app_pl.js new file mode 100644 index 00000000..cbbcef9f --- /dev/null +++ b/html/js/app_pl.js @@ -0,0 +1,175 @@ +(function(){ + + let MenuTpl = + '
' + + '' + ; + + window.ESX_MENU = {}; + ESX_MENU.ResourceName = 'esx_menu_dialog'; + ESX_MENU.opened = {}; + ESX_MENU.focus = []; + ESX_MENU.pos = {}; + + ESX_MENU.open = function(namespace, name, data) { + + if(typeof ESX_MENU.opened[namespace] == 'undefined') + ESX_MENU.opened[namespace] = {}; + + if(typeof ESX_MENU.opened[namespace][name] != 'undefined') + ESX_MENU.close(namespace, name); + + if(typeof ESX_MENU.pos[namespace] == 'undefined') + ESX_MENU.pos[namespace] = {}; + + if(typeof data.type == 'undefined') + data.type = 'default'; + + if(typeof data.align == 'undefined') + data.align = 'top-left'; + + data._index = ESX_MENU.focus.length; + data._namespace = namespace; + data._name = name; + + ESX_MENU.opened[namespace][name] = data; + ESX_MENU.pos [namespace][name] = 0; + + ESX_MENU.focus.push({ + namespace: namespace, + name : name + }); + + document.onkeyup = function (key) { + if (key.which == 27) { // Escape key + $.post('http://' + ESX_MENU.ResourceName + '/menu_cancel', JSON.stringify(data)); + } else if (key.which == 13) { // Enter key + $.post('http://' + ESX_MENU.ResourceName + '/menu_submit', JSON.stringify(data)); + } + }; + + ESX_MENU.render(); + } + + ESX_MENU.close = function(namespace, name) { + + delete ESX_MENU.opened[namespace][name]; + + for(let i=0; i