- // The region occupied by the source element at the time of the drop
- var region = DDM.interactionInfo.sourceRegion;
-
- // Check to see if we are over the source element's location. We will
- // append to the bottom of the list once we are sure it was a drop in
- // the negative space (the area of the list without any list items)
- if (!region.intersect(pt)) {
- var destEl = Dom.get(id);
- var destDD = DDM.getDDById(id);
- destEl.appendChild(this.getEl());
- destDD.isEmpty = false;
- DDM.refreshCache();
- }
- }
- },
-
- onDrag: function(e) {
-
- // Keep track of the direction of the drag for use during onDragOver
- var y = Event.getPageY(e);
-
- if (y < this.lastY) {
- this.goingUp = true;
- } else if (y > this.lastY) {
- this.goingUp = false;
- }
- this.lastY = y;
- },
-
- onDragOver: function(e, id) {
-
- var srcEl = this.getEl();
- var destEl = Dom.get(id);
-
- // We are only concerned with list items, we ignore the dragover
- // notifications for the list.
- if (destEl.nodeName.toLowerCase() == "li") {
- var orig_p = srcEl.parentNode;
- var p = destEl.parentNode;
-
- if (this.goingUp) {
- p.insertBefore(srcEl, destEl); // insert above
- } else {
- p.insertBefore(srcEl, destEl.nextSibling); // insert below
- }
-
- DDM.refreshCache();
- }
- }
-});
-})();
-
-
-
-
-//creates new group, parameter is the group's name
-function newGroup(event, name) {
- if (name == ''){
- return 0;
- }
- if (!enterpressed(event) && event != "button"){
- return false;
- }
- var pardiv = document.getElementById('groups');
- var newdiv = document.createElement('div');
- var newh3 = document.createElement('h3');
- var newul = document.createElement('ul');
- var newclose = document.createElement('a');
- var newrename = document.createElement('a');
- var newbasketgroupname = document.createElement('input');
- var nbgclosed = document.createElement('input');
- var newp = document.createElement('p');
- var reg=new RegExp("[-]+", "g");
- var i = 0;
- var maxid = 0;
- while( i < pardiv.getElementsByTagName('input').length ){
- if (! isNaN(parseInt(pardiv.getElementsByTagName('input')[i].name.split(reg)[1])) && parseInt(pardiv.getElementsByTagName('input')[i].name.split(reg)[1]) > maxid){
- maxid = parseInt(pardiv.getElementsByTagName('input')[i].name.split(reg)[1]);
- }
- ++i;
- }
-// var bgid = parseInt(pardiv.getElementsByTagName('input')[pardiv.getElementsByTagName('input').length-2].name.split(reg)[1]) + 1;
- var bgid = maxid + 1;
- var newchanged = document.createElement('input');
-
- newul.id="bg-"+bgid;
- newul.className='draglist';
-
- newh3.innerHTML=name;
-// newh3.style.display="inline";
-
- newclose.innerHTML="close";
- newclose.href="javascript: closebasketgroup('"+bgid+"', 'bg-"+bgid+"');";
-
- newrename.href="javascript:" + "renameinit("+bgid+");";
- newrename.innerHTML="rename";
-
-// newp.style.display="inline";
- newp.innerHTML=" [ ";
- newp.appendChild(newrename);
- newp.innerHTML+=" / ";
- newp.appendChild(newclose);
- newp.innerHTML+=" ]";
-
- newbasketgroupname.type="hidden";
- newbasketgroupname.name="basketgroup-" + bgid + "-name";
- newbasketgroupname.id = "basketgroup-" + bgid + "-name";
- newbasketgroupname.value=name;
-
- nbgclosed.type="hidden";
- nbgclosed.name="basketgroup-" + bgid + "-closed";
- nbgclosed.value="0";
- nbgclosed.id=nbgclosed.name;
-
- newchanged.type="hidden";
- newchanged.id="basketgroup-"+bgid+"-changed";
- newchanged.name=newchanged.id;
- newchanged.value="1";
-
- newdiv.style.backgroundColor='red';
- newdiv.appendChild(newh3);
- newdiv.appendChild(newp);
- newdiv.appendChild(newul);
- newdiv.appendChild(newbasketgroupname);
- newdiv.appendChild(nbgclosed);
- newdiv.appendChild(newchanged);
- newdiv.className='workarea';
- pardiv.appendChild(newdiv);
-
- YAHOO.util.Event.onDOMReady(DDApp.init, DDApp, true);
-}
-
-//this traps enters in input fields
-function enterpressed(event){
- var keycode;
- if (window.event) keycode = window.event.keyCode;
- else if (event) keycode = event.which;
- else return false;
-
- if (keycode == 13)
- {
- return true;
- }
- else return false;
-}
-
-
-
-
-
-//Closes a basketgroup
-function closebasketgroup(bgid) {
- var answer=confirm(_("Are you sure you want to close this basketgroup?"));
- if(! answer){
- return;
- }
- ulid = 'bg-'+bgid;
- var i = 0;
- tagname='basketgroup-'+bgid+'-closed';
- var ddtarget;
- var closeinput = document.getElementById(tagname);
- closeinput.value = 1;
- var changed = document.getElementById("basketgroup-"+bgid+"-changed");
- changed.value=1;
-
- var div = document.getElementById(tagname).parentNode;
- var stufftoremove = div.getElementsByTagName('p')[0];
- var ul = document.getElementById(ulid);
- var lis = ul.getElementsByTagName('li');
- if (lis.length == 0 ) {
- alert(_("Why close an empty basket?"));
- return;
- }
- var cantprint = document.createElement('p');
-
- div.className = "closed";
- ul.className="closed";
-
- for(i=0; i<lis.length; ++i) {
- ddtarget = YAHOO.util.DragDropMgr.getDDById(lis[i].id);
- ddtarget.unreg();
- }
- ddtarget = YAHOO.util.DragDropMgr.getDDById(ul.id);
- ddtarget.unreg();
- div.removeChild(stufftoremove);
-// the print button is disabled because the page's content might (or is probably) not in sync with what the database contains
- cantprint.innerHTML=_("You need to save the page before printing");
- cantprint.id = 'cantprint-' + bgid;
- var unclosegroup = document.createElement('a');
- unclosegroup.href='javascript:unclosegroup('+bgid+');';
- unclosegroup.innerHTML=_("reopen basketgroup");
- unclosegroup.id = 'unclose-' + bgid;
-
- div.appendChild(cantprint);
- div.appendChild(unclosegroup);
-}
-
-function closeandprint(bg){
- if(document.location = '/cgi-bin/koha/acqui/basketgroup.pl?op=closeandprint&basketgroupid=' + bg ){
- setTimeout("window.location.reload();",3000);
- }else{
- alert(_('Error downloading the file'));
- }
-}
-
-//function that lets the user unclose a basketgroup as long as he hasn't submitted the changes to the page.
-function unclosegroup(bgid){
- var div = document.getElementById('basketgroup-'+bgid+'-closed').parentNode;
- var divtodel = document.getElementById('unclose-' + bgid);
- if (divtodel){
- div.removeChild(divtodel);
- }
- divtodel = document.getElementById('unclose-' + bgid);
- if (divtodel){
- div.removeChild(divtodel);
- }
- var closeinput = document.getElementById('basketgroup-'+bgid+'-closed');
- var ul = document.getElementById('bg-'+bgid);
-
- var newclose = document.createElement('a');
- var newrename = document.createElement('a');
- var newp = document.createElement('p');
-
- newclose.innerHTML="close";
- newclose.href="javascript: closebasketgroup('"+bgid+"', 'bg-"+bgid+"');";
-
- newrename.href="javascript:" + "renameinit("+bgid+");";
- newrename.innerHTML="rename";
-
- var todel = div.getElementsByTagName('p')[0];
- div.removeChild(todel);
-
- var changed = document.getElementById("basketgroup-"+bgid+"-changed");
- changed.value=1;
-
- newp.innerHTML=" [ ";
- newp.appendChild(newrename);
- newp.innerHTML+=" / ";
- newp.appendChild(newclose);
- newp.innerHTML+=" ]";
-
- div.insertBefore(newp, ul);
- closeinput.value="0";
- div.className = "workarea";
- ul.className="draglist";
-
-//rescan draglists, we have a new target (again :-)
- YAHOO.util.Event.onDOMReady(DDApp.init, DDApp, true);
-}
-
-//a function to filter basketgroups using a regex (javascript regex)
-function filterGroups(event, searchstring ){
- if (!enterpressed(event) && event != "button"){
- return false;
- }
- var reg = new RegExp(searchstring, "g");
- var Dom = YAHOO.util.Dom;
- var divs = Dom.getElementsByClassName("workarea", "div");
-
- for (var i = 0; i < divs.length; ++i){
- if (! reg.exec(divs[i].innerHTML)){
- divs[i].style.display='none';
- }
- else {
- divs[i].style.display='';
- }
- }
- divs = Dom.getElementsByClassName("closed", "div");
- for (var i = 0; i < divs.length; ++i){
- if (! reg.exec(divs[i].innerHTML)){
- divs[i].style.display='none';
- }
- else {
- divs[i].style.display='';
- }
- }
-}
-
-//function to hide (or show) closed baskets (if show is true, it shows all the closed baskets)
-function showhideclosegroups(show){
- var Dom = YAHOO.util.Dom;
- var divs = Dom.getElementsByClassName("closed", "div");
- var display;
- if (show){
- display = '';
- }
- else display = 'none';
- for(var i = 0; i < divs.length; ++i){
- divs[i].style.display=display;
- }
-}
-
-function renameinit(bgid){
- var ul = document.getElementById('bg-'+bgid);
- var div = ul.parentNode;
- var nameelm = div.getElementsByTagName('h3')[0];
- var p = div.getElementsByTagName('p')[0];
-
-
- var nameinput = document.createElement("input");
- nameinput.type = "text";
- nameinput.id="rename-"+bgid;
- nameinput.value = nameelm.innerHTML;
- nameinput.onkeypress = function(e){rename(e, bgid, document.getElementById('rename-'+bgid).value); };
-// nameinput.setAttribute('onkeypress', 'rename(event, bgid, document.getElementById(rename-'+bgid+').value);');
-
- div.removeChild(nameelm);
- div.insertBefore(nameinput, p);
-}
-
-function rename(event, bgid, name){
- if (!enterpressed(event)){
- return false;
- }
- var ul = document.getElementById('bg-'+bgid);
- var div = ul.parentNode;
- var p = div.getElementsByTagName('p')[0];
- var nameinput = document.getElementById("rename-"+bgid);
- var changedinput = document.getElementById("basketgroup-"+bgid+"-changed");
- var newh3 = document.createElement("h3");
- var hiddenname = document.getElementById("basketgroup-"+bgid+"-name");
-
- div.removeChild(nameinput);
-
- newh3.innerHTML=name;
- hiddenname.value=name;
- changedinput.value = 1;
- div.insertBefore(newh3, p);
-}
-
-//=======================================================================