X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=js%2Finserts.js;h=c3ff6e1f54a5d704b4f1bb0942cb1f9df3cde72f;hb=72af4496f87c438dc85a0a7573d36b7bd9e49624;hp=18c016b8f103d4aeaba245e62baae0413f3dbb0a;hpb=41f4f83b97d8afc5f4c1be4afccd5049cd5641c0;p=fa-stable.git diff --git a/js/inserts.js b/js/inserts.js index 18c016b8..c3ff6e1f 100644 --- a/js/inserts.js +++ b/js/inserts.js @@ -1,8 +1,119 @@ +function debug(msg) { + document.getElementById('msgbox').innerHTML= + document.getElementById('msgbox').innerHTML+'
'+msg +} + +function progbar(container) { + container.innerHTML= "
"+ + user.loadtxt+"
"; +} + +function _expand(tabobj) { + + var ul = tabobj.parentNode.parentNode; + var alltabs=ul.getElementsByTagName("input"); + var frm = tabobj.form; + + if (ul.getAttribute("rel")){ + for (var i=0; i=0) { + var len = select.length; + var byid = this.className=='combo'; + var ac = this.value.toUpperCase(); + select.options[select.selectedIndex].selected = false; + for (i = 0; i < len; i++) { + var txt = byid ? select.options[i].value : select.options[i].text; + if (txt.toUpperCase().indexOf(ac) >= 0) { + select.options[i].selected = true; + break; + } + } + } + }; + e.onkeydown = function(ev) { +// this.lastkey = event.keyCode; + this.back = (ev||window.event).shiftKey; // save shift state for onblur handler + } +} + +function _set_combo_select(e) { + + e.onblur = function(event) { + event = event||window.event; + if(!this.back && this.selectedIndex>=0) { + var sname = '_'+this.name+'_update'; + var box = document.getElementsByName(this.getAttribute('rel'))[0]; + var opt = this.options[this.selectedIndex]; + var byid = this.className=='combo'; + var update = document.getElementsByName(sname)[0]; + if (opt.value != 0) { + if(box) box.value = byid ? opt.value : opt.text; + if(update) { + if(update.className == 'combo_select') { + document.getElementsByName('_focus')[0].value=this.name; + JsHttpRequest.request(sname); + } else { + update.click(); + this.focus(); + } + } + } + this.size = 1; + } + return true; + } + e.onchange = function() { + if (this.options[this.selectedIndex].value==0) + document.getElementsByName(this.getAttribute('rel'))[0].value=''; + } +/* e.onkeydown = function(event) { + event = event||window.event; + if(event.keyCode==13) { + var box = document.getElementsByName(this.getAttribute('rel'))[0]; + this.style.display='none'; + box.style.display=''; + this.back=true; + box.focus(); + } + } +*/} + /* Behaviour definitions */ var inserts = { - '.amount': function(element) { + '.amount': function(element) { if(element.onblur==undefined) { var dec = element.getAttribute("dec"); element.onblur = function() { @@ -13,77 +124,123 @@ var inserts = { 'select': function(element) { if(element.onfocus==undefined) { element.onfocus = function() { - document.getElementById('_focus').value = element.name; + document.getElementsByName('_focus')[0].value = element.name; + }; + element.onkeydown = function(event) { + event = event||window.event; + this.back = event.shiftKey; // save shift state for onblur handler + this.lastkey = event.keyCode; + if (event.keyCode==32) { + if(this.init_size==undefined) + this.init_size = this.size; + if(this.init_size<=1) { + if(this.size>1) { + this.size = 1; + } else{ + var sel = this.selectedIndex; + this.size = this.options.length; + if(this.size>10) this.size = 10; + this.selectedIndex = sel; + } + } + } }; + element.onblur = function() { + if(this.init_size<=1) + this.size = 1; + }; + var c = element.className; + if (c == 'combo' || c == 'combo2') +// if (element.onblur==undefined) { + _set_combo_select(element); +// } } }, - 'input': function(element) { - if(element.onfocus==undefined) { + 'input': function(element) { // we do not want to change focus on submit + if(element.type!='submit' && element.onfocus==undefined) { element.onfocus = function() { - document.getElementById('_focus').value = element.name; + document.getElementsByName('_focus')[0].value = element.name; }; - } - - }, - // combo: text input and related selector in next cell - 'input.combo': function(element) { - if(element.onkeydown==undefined) { - element.onkeydown=function(event) { - if (event.keyCode==13) event.keyCode=9; - }; - element.onkeyup = function() { - var select = document.getElementsByName(this.getAttribute('rel'))[0]; - var len = select.length; - var ac = this.value; - var txt; - var i = 'dupa'; - select.options[select.selectedIndex].selected = false; - for (i = 0; i < len; i++) { -// txt = select.options[i].text; - txt = select.options[i].value; - if (txt.indexOf(ac) == 0) { - select.options[i].selected = true; - break; + var c = element.className; + if (c == 'combo' || c == 'combo2') { + if(element.onkeydown==undefined) { + _set_combo_input(element); } - } - }; - if(element.onblur==undefined) { // onblur can be set to submit(); here - element.onblur = function() { - var select = document.getElementsByName(this.getAttribute('rel'))[0]; - if (this.value != "") - this.value = select.options[select.selectedIndex].value; -// myForm.$next_name.focus(); - return true; - }; } } }, - 'select.combo': function(element) { - if(element.onchange==undefined) { - element.onchange = function() { - var input = document.getElementsByName(this.getAttribute('rel'))[0]; - input.value = this.options[this.selectedIndex].value; -// myForm.$next_name.focus(); - return true; - }; + 'input.combo_submit': function(element) { + // this hides search button for js enabled browsers + element.style.display = 'none'; + }, + 'input.combo_select': function(element) { + // this hides select button for js enabled browsers + element.style.display = 'none'; + }, + 'input.combo_reload': function(element) { + element.style.display = 'none'; + }, + 'input.ajaxsubmit': function(e) { + e.onclick = function() { + JsHttpRequest.request(this.name); + return false; + } + }, + 'input.editbutton': function(e) { + e.onclick = function() { + JsHttpRequest.request(this.name); + return false; + } + }, + 'ul.ajaxtabs': function(ul) { + var ulist=ul.getElementsByTagName("li"); + for (var x=0; x