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

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

Potlatch 0.10e

File size: 4.2 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(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].saveUndo(iText("reverting",'reverting'));
79                        _root.map.ways[_root.revertid].loadFromDeleted(_root.revertversion);
80                } else if (nodes[_root.revertid]) { // node in way
81                        noderesponder=function() {};
82                        noderesponder.onResult=function(result) {
83                                var n=result[0];
84                                _root.nodes[n].attr=result[3];
85                                var w=_root.nodes[n].moveTo(long2coord(result[1]),lat2coord(result[2]));
86                                _root.map.ways[w].clean=false;
87                                _root.map.ways[w].select();
88                        };
89                        remote_read.call('getpoi',noderesponder,_root.revertid,_root.revertversion);
90                } else { // POI
91                        _root.map.pois[_root.revertid].reload(_root.revertversion);
92                }
93        };
94
95
96        // getDeleted - load all deleted ways (like whichways), but locked
97
98        function getDeleted() {
99                whichdelresponder=function() {};
100                whichdelresponder.onResult=function(result) {
101                        _root.versioninfo=null;
102                        waylist=result[0];
103                        for (i in waylist) {                                                                            // ways
104                                way=waylist[i];                                                                                 //  |
105                                if (!_root.map.ways[way]) {                                                             //  |
106                                        _root.map.ways.attachMovie("way",way,++waydepth);       //  |
107                                        _root.map.ways[way].loadFromDeleted(-1);                        //  |
108                                        _root.waycount+=1;                                                                      //  |
109                                }
110                        }
111                };
112                remote_read.call('whichways_deleted',whichdelresponder,_root.edge_l,_root.edge_b,_root.edge_r,_root.edge_t);
113        };
Note: See TracBrowser for help on using the repository browser.