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

Last change on this file since 10776 was 10776, checked in by richard, 11 years ago

Potlatch 0.10c

File size: 4.0 KB
Line 
1
2        // =====================================================================================
3        // History functions
4
5        function getHistory() {
6                if      (_root.poiselected>0)    { remote.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.call('getnode_history',historyresponder,n); } }
9                else if (_root.wayselected>0)    { remote.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(275,90,new Array(iText('More','more'),iText('Cancel','cancel')),handleHistoryChoice);
23                _root.windows.history.box.createTextField("prompt",2,7,9,250,100);
24                writeText(_root.windows.history.box.prompt,iText("Revert to an earlier saved version:",'prompt_revertversion'));
25
26                _root.windows.history.box.createEmptyMovieClip('revert' ,21);
27                _root.windows.history.box.createEmptyMovieClip('contact',22);
28                drawButton(_root.windows.history.box.revert , 9,60,"Revert","");
29                _root.windows.history.box.revert.onPress=doRevert;
30                drawButton(_root.windows.history.box.contact,69,60,"Mail","");
31                _root.windows.history.box.contact.onPress=doMail;
32
33                with (_root.windows.history.box) {
34                        lineStyle(1,0x7F7F7F,100);
35                        moveTo(137,62); lineTo(137,75);
36                }
37
38                // Assemble list
39
40                var versionlist=new Array();
41                _root.versioninfo=result[2];
42                for (i=0; i<result[2].length; i+=1) {
43                        versionlist.push(result[2][i][1]+' ('+result[2][i][3]+')');
44                }
45                _root.windows.history.box.attachMovie("menu","version",23);
46                _root.windows.history.box.version.init(9,32,0,versionlist,
47                        iText('Choose the version to revert to','tip_revertversion'),
48                        function(n) {
49                                var a=100; if (versioninfo[n][2]==0) { var a=25; }
50                                _root.windows.history.box.revert._alpha=a;
51                                _root.revertversion=versioninfo[n][0]; 
52                                _root.revertauthor =versioninfo[n][4];
53                        },null,256);
54                _root.revertversion=versioninfo[0][0];
55                _root.revertauthor =versioninfo[0][4];
56        };
57
58        // Respond to buttons
59
60        function handleHistoryChoice(choice) {
61                if (choice==iText('Cancel','cancel')) { return; }
62                getURL("http://www.openstreetmap.org/browse/"+_root.reverttype+"/"+_root.revertid,"_blank");
63        };
64
65        function doMail() {
66                _root.windows.history.remove();
67                if (_root.revertauthor>0) {
68                        getURL("http://www.openstreetmap.org/message/new/"+_root.revertauthor,"_blank");
69                } else {
70                        handleError(-1,new Array(iText("You cannot contact an anonymous mapper.",'error_anonymous')));
71                }
72        };
73
74        function doRevert() {
75                if (_root.windows.history.box.revert._alpha<50) { return; }
76                _root.windows.history.remove();
77                if (_root.reverttype=='way') {
78                        _root.map.ways[_root.revertid].loadFromDeleted(_root.revertversion);
79                } else if (nodes[_root.revertid]) { // node in way
80                        noderesponder=function() {};
81                        noderesponder.onResult=function(result) {
82                                var n=result[0];
83                                _root.nodes[n].attr=result[3];
84                                var w=_root.nodes[n].moveTo(long2coord(result[1]),lat2coord(result[2]));
85                                _root.map.ways[w].clean=false;
86                                _root.map.ways[w].select();
87                        };
88                        remote.call('getpoi',noderesponder,_root.revertid,_root.revertversion);
89                } else { // POI
90                        _root.map.pois[_root.revertid].reload(_root.revertversion);
91                }
92        };
93
94
95        // getDeleted - load all deleted ways (like whichways), but locked
96
97        function getDeleted() {
98                whichdelresponder=function() {};
99                whichdelresponder.onResult=function(result) {
100                        waylist=result[0];
101                        for (i in waylist) {                                                                            // ways
102                                way=waylist[i];                                                                                 //  |
103                                if (!_root.map.ways[way]) {                                                             //  |
104                                        _root.map.ways.attachMovie("way",way,++waydepth);       //  |
105                                        _root.map.ways[way].loadFromDeleted(-1);                        //  |
106                                        _root.waycount+=1;                                                                      //  |
107                                }
108                        }
109                };
110                remote.call('whichways_deleted',whichdelresponder,_root.edge_l,_root.edge_b,_root.edge_r,_root.edge_t);
111        };
Note: See TracBrowser for help on using the repository browser.