Make WordPress Core

Changeset 3669


Ignore:
Timestamp:
03/30/2006 11:40:31 PM (19 years ago)
Author:
ryan
Message:

Add to bottom support in list manipulation. Props mdawaffe. fixes #2611

Location:
trunk/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/cat-js.php

    r3660 r3669  
    33header('Content-type: text/javascript; charset=' . get_settings('blog_charset'), true);
    44?>
    5 addLoadEvent(function(){catList=new listMan('categorychecklist');catList.ajaxRespEl='jaxcat';catList.clearInputs.push('newcat');});
     5addLoadEvent(function(){catList=new listMan('categorychecklist');catList.ajaxRespEl='jaxcat';catList.clearInputs.push('newcat');catList.topAdder=1;catList.alt=0});
    66addLoadEvent(newCatAddIn);
    77function newCatAddIn() {
  • trunk/wp-admin/list-manipulation-js.php

    r3660 r3669  
    3737    this.theList=null;
    3838    this.ajaxRespEl=null;
    39     this.inputData='';
    40     this.clearInputs=new Array();
    41     var reg_color='#FFFFFF';
    42     var alt_color='#F1F1F1';
    43     var listItems;
    44     var listType;
     39    this.inputData='';this.clearInputs=new Array();
     40    this.topAdder=0;this.alt='alternate';this.recolorPos;this.reg_color='#FFFFFF';this.alt_color='#F1F1F1';
     41    var listType;var listItems;
    4542    self.aTrap=0;
    4643
     
    5451            if(!this.parseAjaxResponseXML())return;
    5552            var newItems=this.responseXML.getElementsByTagName(what);
     53            if(tempObj.topAdder)tempObj.recolorPos=0;
    5654            if(newItems){for (c=0;c<newItems.length;c++){
    5755                var id=parseInt(getNodeValue(newItems[c],'id'),10);
    5856                var exists=document.getElementById(what+'-'+id);
    59                 if(exists)tempObj.replaceListItem(exists.id,getNodeValue(newItems[c],'newitem'),update);
    60                 else tempObj.addListItem(getNodeValue(newItems[c],'newitem'));
     57                if(exists)tempObj.replaceListItem(exists.id,getNodeValue(newItems[c],'newitem'),newItems.length,update);
     58                else tempObj.addListItem(getNodeValue(newItems[c],'newitem'),newItems.length);
    6159            }}
    6260            this.myResponseElement.innerHTML='';tempObj.inputData='';
    6361            for(var i=0;i<tempObj.clearInputs.length;i++){try{var theI=document.getElementById(tempObj.clearInputs[i]);if(theI.tagName.match(/select/i))theI.selectedIndex=0;else theI.value='';}catch(e){}}
    6462            if(onComplete&&typeof onComplete=='function')onComplete();
     63            tempObj.recolorList(tempObj.recolorPos,1000)
    6564        }
    6665        this.ajaxAdd.runAJAX('action='+(update?'update-':'add-')+what+this.inputData);
     
    7372        if(this.ajaxDel.failed)return true;
    7473        var tempObj=this;
    75         this.ajaxDel.onCompletion=function(){if(this.parseAjaxResponse()){tempObj.removeListItem(what.replace('-as-spam','')+'-'+id,tempObj);this.myResponseElement.innerHTML='';if(onComplete&&typeof onComplete=='function')onComplete();}};
     74        this.ajaxDel.onCompletion=function(){if(this.parseAjaxResponse()){tempObj.removeListItem(what.replace('-as-spam','')+'-'+id);this.myResponseElement.innerHTML='';if(onComplete&&typeof onComplete=='function')onComplete();tempObj.recolorList(tempObj.recolorPos,1000)}};
    7675        this.ajaxDel.runAJAX('action=delete-'+what+'&id='+id);
    7776        return false;
     
    8786    }
    8887    this.makeEl=function(h){var fakeItem=document.createElement('div');fakeItem.innerHTML=h;var r=fakeItem.firstChild;while(r.tagName.match(/(table|tbody)/i)){r=r.firstChild;}return r;}
    89     this.addListItem=function(h){
     88    this.addListItem=function(h,tot){
    9089        newItem=this.makeEl(h);
    91         var firstItem=this.theList.getElementsByTagName('table'==listType?'tr':'li')[0];
     90        if(this.topAdder){var firstItem=this.theList.getElementsByTagName('table'==listType?'tr':'li')[0];listItems.unshift(newItem.id);this.recolorPos++}
     91        else{listItems.push(newItem.id);this.recolorPos=listItems.length;}
     92        if(this.alt&&!((tot-this.recolorPos)%2))newItem.className+=' '+this.alt;
    9293        if(firstItem)firstItem.parentNode.insertBefore(newItem,firstItem);
    9394        else this.theList.appendChild(newItem);
    94         listItems.unshift(newItem.id);
    9595        Fat.fade_element(newItem.id);
    9696    }
    97     this.removeListItem=function(id,listObj,noFade){
    98         if(!listObj)listObj=this;
     97    this.removeListItem=function(id,noFade){
    9998        if(!noFade)Fat.fade_element(id,null,700,'#FF3333');
    10099        var theItem=document.getElementById(id);
    101100        if(!noFade){var func=encloseFunc(function(a){a.parentNode.removeChild(a);},theItem);setTimeout(func,705);}
    102101        else{theItem.parentNode.removeChild(theItem);}
    103         var pos=listObj.getListPos(id);
     102        var pos=this.getListPos(id);
    104103        listItems.splice(pos,1);
    105         if(!noFade)listObj.recolorList(pos,1000);
    106104    }
    107     this.replaceListItem=function(id,h,update){
    108         if(!update){this.removeListItem(id,false,true);this.addListItem(h);return;}
     105    this.replaceListItem=function(id,h,tot,update){
     106        if(!update){this.removeListItem(id,true);this.addListItem(h,tot);return;}
    109107        var newItem=this.makeEl(h);
    110108        var oldItem=document.getElementById(id);
     109        var pos=this.getListPos(oldItem.id);if(this.alt&&!(pos%2))newItem.className+=' '+this.alt;
    111110        oldItem.parentNode.replaceChild(newItem,oldItem);
    112111        Fat.fade_element(newItem.id);
     
    132131        }
    133132    }
    134     this.getListPos=function(id){for(var i=0;i<listItems.length;i++){if(id==listItems[i]){var pos=i;break;}}return pos;}
     133    this.getListPos=function(id,n){for(var i=0;i<listItems.length;i++){if(id==listItems[i]){var pos=i;break;}}if(!n){if(pos<this.recolorPos)this.recolorPos=pos;}return pos;}
    135134    this.getListItems=function(){
    136135        if(this.theList)return;
     
    139138        else{this.theList=document.getElementById('the-list');if(this.theList)theListId='the-list';}
    140139        if(this.theList){
    141             var items=this.theList.getElementsByTagName('tr');listType='table'
    142             if(!items[0]){items=this.theList.getElementsByTagName('li');listType='list'}
     140            var items=this.theList.getElementsByTagName('tr');listType='table';
     141            if(!items[0]){items=this.theList.getElementsByTagName('li');listType='list';}
    143142            for(var i=0;i<items.length;i++){listItems.push(items[i].id);}
     143            this.recolorPos=listItems.length;
    144144        }
    145145    }
    146146    this.recolorList=function(pos,dur){
    147         if(!pos)pos=0;
    148         for(var i=pos;i<listItems.length;i++){var e=document.getElementById(listItems[i]);if(i%2)e.className=e.className.replace('alternate','fade-'+alt_color.slice(1));else e.className+=' alternate fade-'+reg_color.slice(1);e.style.backgroundColor='';}
     147        if(!this.alt)return;if(!pos)pos=0;this.recolorPos=listItems.length;
     148        for(var i=pos;i<listItems.length;i++){var e=document.getElementById(listItems[i]);if(i%2)e.className=e.className.replace(this.alt,'fade-'+this.alt_color.slice(1));else e.className+=' '+this.alt+' fade-'+this.reg_color.slice(1);e.style.backgroundColor='';}
    149149        Fat.fade_all(dur);
    150150        var func=encloseFunc(function(l){for(var i=0;i<l.length;i++){var e=document.getElementById(l[i]);e.className=e.className.replace(/fade-[a-f0-9]{6}/i,'');}},listItems);
Note: See TracChangeset for help on using the changeset viewer.