Ticket #4314: jqbug

File jqbug, 3.1 KB (added by tehmeph, 11 years ago)
Line 
1function fetchOlderNews(latest, num) {
2        $j.get('index.php',
3                        {
4                                action: 'older',
5                                num: num,
6                                id: latest
7                        },
8                        function(data) {
9                                $j('#news_contents').append(data);
10                                $j('#added_news').slideDown(num*150, function() {
11                                        $j('#news_links').fadeOut();
12                                });
13                        });     
14}
15
16function sendParams(paneID, pane) {
17        var date = new Date();
18        date.setTime(date.getTime()+(1000*24*60*60*1000));
19        var expires = date.toUTCString();
20       
21        var serial = $j(paneID).sortable('serialize', { key: 'widget' });
22       
23        document.cookie = "widget"+pane+"=&"+serial+"; expires="+expires+"; path=/";
24}
25
26function testEmptyDragPane(pane,paneID) {
27        var paneArray = pane.sortable('toArray');
28        if(paneArray == '') {
29                pane.append('<li id="dragHolder'+paneID+'"><div class="box pad">This is a filler widget.  It will disappear when you drag something into this pane.</div></li>');
30        } else if((paneArray[0] == 'dragHolder'+paneID && paneArray[1]) || paneArray[0] != 'dragHolder'+paneID) {
31                $j("#dragHolder"+paneID).remove();
32        }
33
34}
35
36function removeWidget(widgetID) {
37        if(widgetID != 'widgets_news') {
38                $j('#'+widgetID).remove();
39                testEmptyDragPane($j('#left_drag_area'), 'left');
40                sendParams('#left_drag_area', 'left');
41                testEmptyDragPane($j('#right_drag_area'), 'right');
42                sendParams('#right_drag_area', 'right');
43        }
44}
45
46$j(document).ready(function() {
47        var leftWidth = $j('#left_drag_area > li:not(.dummydrag)').css('width');
48        var rightWidth = $j('#right_drag_area > li:not(.dummydrag)').css('width');
49       
50        $j('#left_drag_area').sortable({
51                revert: true,
52                cursor: 'move',
53                cancel: '#dragHolderleft,.body',
54                tolerance: 'pointer',
55                connectWith: ['#right_drag_area'],
56                start: function(event, ui) {
57                        ui.item.addClass('dummydrag');
58                },
59                over: function(event, ui) {
60                        if(ui.helper.css('width') != leftWidth) {
61                                ui.helper.animate({ width: leftWidth }, 500, function() {
62                                        var newHeight = ui.helper.height();
63                                        ui.placeholder.height(newHeight);
64                                        ui.helper.height(ui.item.height());
65                                });
66                        }
67                       
68                        $j('.debug').html('placeholder: '+ui.placeholder.height()+'<br />');
69                        $j('.debug').append('helper: '+ui.helper.height()+'<br />');
70                        $j('.debug').append('item: '+ui.item.height()+'<br />');
71                },
72                update: function(event, ui) {
73                        testEmptyDragPane($j(this), 'left');
74                        sendParams('#left_drag_area', 'left');
75                },
76                beforeStop: function(event, ui) {
77                        $j('.dummydrag').removeClass('dummydrag');
78                }
79        });
80       
81        $j('#right_drag_area').sortable({
82                revert: true,
83                cursor: 'move',
84                tolerance: 'pointer',
85                cancel: '#dragHolderright,.body',
86                connectWith: ['#left_drag_area'],
87                start: function(event, ui) {
88                        ui.item.addClass('dummydrag');
89                },
90                over: function(event, ui) {
91                        if(ui.item.css('width') != rightWidth ) {
92                                ui.item.animate({ width: rightWidth }, 500);
93                                ui.placeholder.height(ui.item.height());
94                        }
95                },
96                update: function(event, ui) {
97                        testEmptyDragPane($j(this), 'right');
98                        sendParams('#right_drag_area', 'right');
99                },
100                stop: function() {
101                        $j('.dummydrag').removeClass('dummydrag');
102                }
103        });
104       
105        testEmptyDragPane($j("#left_drag_area"), "left");
106        testEmptyDragPane($j("#right_drag_area"), "right");
107       
108});
109