source: subversion/applications/editors/potlatch/history.as @ 34598

Last change on this file since 34598 was 18186, checked in by avar, 10 years ago

Adjust size of history dialog so that it can at least show my username

File size: 4.9 KB
Line 
1
2        // =====================================================================================
3        // History functions
4
5        function getHistory() {
6                if      (_root.poiselected>0)    { remote_read.call('getnode_history',historyresponder,Number(_root.poiselected)); }
7                else if (_root.pointselected>=0) { var n=_root.ws.path[_root.pointselected].id;
8                                                                                   if (n>0) { remote_read.call('getnode_history',historyresponder,n); } }
9                else if (_root.wayselected>0)    { remote_read.call('getway_history' ,historyresponder,Number(_root.wayselected)); };
10        };
11
12        // Responder when AMF returns history of way/node
13
14        historyresponder = function() { };
15        historyresponder.onResult = function(result) {
16                _root.reverttype=result[0];             // 'node' or 'way'
17                _root.revertid  =result[1];             // id
18
19                // Draw window
20               
21                _root.windows.attachMovie("modal","history",++windowdepth);
22                _root.windows.history.init(375,90,new Array(iText('more'),iText('cancel')),handleHistoryChoice);
23                _root.windows.history.box.createTextField("prompt",2,7,9,250,100);
24                writeText(_root.windows.history.box.prompt,iText('prompt_revertversion'));
25                adjustTextField(_root.windows.history.box.prompt);
26
27                _root.windows.history.box.createEmptyMovieClip('revert' ,21);
28                _root.windows.history.box.createEmptyMovieClip('contact',22);
29                drawButton(_root.windows.history.box.revert , 9,60,iText('revert'),"");
30                _root.windows.history.box.revert.onPress=doRevert;
31                drawButton(_root.windows.history.box.contact,69,60,iText('mail'),"");
32                _root.windows.history.box.contact.onPress=doMail;
33
34                with (_root.windows.history.box) {
35                        lineStyle(1,0x7F7F7F,100);
36                        moveTo(137,62); lineTo(137,75);
37                }
38
39                // Assemble list
40
41                var versionlist=new Array();
42                _root.versioninfo=result[2];
43                if (Stage.height<versioninfo.length*16) {
44                        // too many entries, so trim the list
45                        var a=Math.floor((versioninfo.length+2)*16/Stage.height);
46                        var i=0;
47                        while (i<versioninfo.length) {
48                                versioninfo.splice(i,a); i++;
49                        }
50                }
51                for (i=0; i<versioninfo.length; i+=1) {
52                        versionlist.push(versioninfo[i][0]+' ('+versioninfo[i][1]+')');
53                }
54                _root.windows.history.box.attachMovie("menu","version",23);
55                _root.windows.history.box.version.init(9,32,0,versionlist,
56                        iText('tip_revertversion'),
57                        function(n) {
58                                var a=100; if (versioninfo[n][2]==0) { var a=25; }
59                                _root.windows.history.box.revert._alpha=a;
60                                _root.reverttime   =versioninfo[n][0]; 
61                                _root.revertauthor =versioninfo[n][2];
62                                _root.revertname   =versioninfo[n][1];
63                        },null,356);
64                _root.reverttime  =versioninfo[0][0];
65                _root.revertname  =versioninfo[0][1];
66                _root.revertauthor=versioninfo[0][2];
67        };
68
69        // Respond to buttons
70
71        function handleHistoryChoice(choice) {
72                if (choice==iText('cancel')) { return; }
73                getURL("http://www.openstreetmap.org/browse/"+_root.reverttype+"/"+_root.revertid,"_blank");
74        };
75
76        function doMail() {
77                _root.windows.history.remove();
78                if (_root.revertauthor>0) {
79                        getURL("http://www.openstreetmap.org/message/new/"+_root.revertname,"_blank");
80                } else {
81                        handleError(-1,new Array(iText('error_anonymous')));
82                }
83        };
84
85        function doRevert() {
86                if (_root.windows.history.box.revert._alpha<50) { return; }
87                _root.windows.history.remove();
88                if (_root.reverttype=='way') {
89                        _root.undo.append(UndoStack.prototype.undo_changeway,
90                                                          new Array(_root.revertid,deepCopy(_root.map.ways[_root.revertid].path),
91                                                                                                           deepCopy(_root.map.ways[_root.revertid].deletednodes),
92                                                                                                           deepCopy(_root.map.ways[_root.revertid].attr)),
93                                                          iText('action_revertway'));
94                        _root.map.ways[_root.revertid].loadFromDeleted(_root.reverttime);
95                } else if (nodes[_root.revertid]) { // node in way
96                        noderesponder=function() {};
97                        noderesponder.onResult=function(result) {
98                                var code=result.shift(); var msg=result.shift(); if (code) { handleError(code,msg,result); return; }
99                                var n=result[0];
100                                _root.nodes[n].attr=result[3];
101                                var w=_root.nodes[n].moveTo(long2coord(result[1]),lat2coord(result[2]));
102                                _root.map.ways[w].clean=false;
103                                _root.map.ways[w].select();
104                        };
105                        remote_read.call('getpoi',noderesponder,_root.revertid,_root.reverttime);
106                } else { // POI
107                        _root.map.pois[_root.revertid].clean=false;
108                        _root.map.pois[_root.revertid].reload(_root.reverttime);
109                }
110        };
111
112
113        // getDeleted - load all deleted ways (like whichways), but locked
114
115        function getDeleted() {
116                whichdelresponder=function() {};
117                whichdelresponder.onResult=function(result) {
118                        var code=result.shift(); var msg=result.shift(); if (code) { handleError(code,msg,result); return; }
119                        _root.versioninfo=null;
120                        waylist=result[0];
121                        for (i in waylist) {                                                                            // ways
122                                way=waylist[i];                                                                                 //  |
123                                if (!_root.map.ways[way]) {                                                             //  |
124                                        _root.map.ways.attachMovie("way",way,++waydepth);       //  |
125                                        _root.map.ways[way].loadFromDeleted('');                        //  |
126                                        _root.waycount+=1;                                                                      //  |
127                                }
128                        }
129                };
130                remote_read.call('whichways_deleted',whichdelresponder,_root.edge_l,_root.edge_b,_root.edge_r,_root.edge_t);
131        };
Note: See TracBrowser for help on using the repository browser.