]> scripts.mit.edu Git - autoinstalls/wordpress.git/blob - wp-admin/list-manipulation.js
Wordpress 2.0.2
[autoinstalls/wordpress.git] / wp-admin / list-manipulation.js
1 var listItems;
2 var reg_color = '#FFFFFF';
3 var alt_color = '#F1F1F1';
4
5 addLoadEvent(getListItems);
6
7 function deleteSomething( what, id, message ) {
8         what.replace('-', ' ');
9         if (!message) message = 'Are you sure you want to delete this ' + what + '?';
10         if ( confirm(message) ) {
11                 return ajaxDelete( what.replace(' ', '-'), id );
12         } else {
13                 return false;
14         }
15 }
16
17 function getResponseElement() {
18         var p = document.getElementById('ajax-response-p');
19         if (!p) {
20                 p = document.createElement('p');
21                 p.id = 'ajax-response-p';
22                 document.getElementById('ajax-response').appendChild(p);
23                 return p;
24         }
25 }
26
27 function ajaxDelete(what, id) {
28         ajaxDel = new sack('list-manipulation.php');
29         if ( ajaxDel.failed ) return true;
30         ajaxDel.myResponseElement = getResponseElement();
31         ajaxDel.method = 'POST';
32         ajaxDel.onLoading = function() { ajaxDel.myResponseElement.innerHTML = 'Sending Data...'; };
33         ajaxDel.onLoaded = function() { ajaxDel.myResponseElement.innerHTML = 'Data Sent...'; };
34         ajaxDel.onInteractive = function() { ajaxDel.myResponseElement.innerHTML = 'Processing Data...'; };
35         ajaxDel.onCompletion = function() { removeThisItem( what + '-' + id ); };
36         ajaxDel.runAJAX('action=delete-' + what + '&id=' + id);
37         return false;
38 }
39
40 function removeThisItem(id) {
41         var response = ajaxDel.response;
42         if ( isNaN(response) ) { alert(response); }
43         response = parseInt(response, 10);
44         if ( -1 == response ) { ajaxDel.myResponseElement.innerHTML = "You don't have permission to do that."; }
45         else if ( 0 == response ) { ajaxDel.myResponseElement.interHTML = "Something odd happened.  Try refreshing the page? Either that or what you tried to delete never existed in the first place."; }
46         else if ( 1 == response ) {
47                 theItem = document.getElementById(id);
48                 Fat.fade_element(id,null,700,'#FF3333');
49                 setTimeout('theItem.parentNode.removeChild(theItem)', 705);
50                 var pos = getListPos(id);
51                 listItems.splice(pos,1);
52                 recolorList(pos);
53                 ajaxDel.myResponseElement.parentNode.removeChild(ajaxDel.myResponseElement);
54                 
55         }
56 }
57
58 function getListPos(id) {
59         for (var i = 0; i < listItems.length; i++) {
60                 if (id == listItems[i]) {
61                         var pos = i;
62                         break;
63                 }
64         }
65         return pos;
66 }       
67
68 function getListItems() {
69         if (list) return;
70         listItems = new Array();
71         var extra = false;
72         var list = document.getElementById('the-list');
73         if (!list) { var list = document.getElementById('the-list-x'); extra = true; }
74         if (list) {
75                 var items = list.getElementsByTagName('tr');
76                 if (!items[0]) { items = list.getElementsByTagName('li'); }
77                 for (var i=0; i<items.length; i++) { listItems.push(items[i].id); }
78                 if (extra) { listItems.splice(0,1); }
79         }
80 }
81
82 function recolorList(pos,dur,from) {
83         if (!pos) pos = 0;
84
85         if (!from) {
86                 reg_from = alt_color;
87                 alt_from = reg_color;
88         } else {
89                 reg_from = from;
90                 alt_from = from;
91         }
92         for (var i = pos; i < listItems.length; i++) {
93                 if (i % 2 == 1) Fat.fade_element(listItems[i],null,dur,reg_from,reg_color);
94                 else Fat.fade_element(listItems[i],null,dur,alt_from,alt_color);
95         }
96 }