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

Last change on this file since 16388 was 16388, checked in by richard, 10 years ago

Potlatch 1.1 (source)

File size: 4.7 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][0]+' ('+result[2][i][1]+')');
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 date 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.reverttime   =versioninfo[n][0]; 
52                                _root.revertauthor =versioninfo[n][2];
53                                _root.revertname   =versioninfo[n][1];
54                        },null,256);
55                _root.reverttime  =versioninfo[0][0];
56                _root.revertname  =versioninfo[0][1];
57                _root.revertauthor=versioninfo[0][2];
58        };
59
60        // Respond to buttons
61
62        function handleHistoryChoice(choice) {
63                if (choice==iText('Cancel','cancel')) { return; }
64                getURL("http://www.openstreetmap.org/browse/"+_root.reverttype+"/"+_root.revertid,"_blank");
65        };
66
67        function doMail() {
68                _root.windows.history.remove();
69                if (_root.revertauthor>0) {
70                        getURL("http://www.openstreetmap.org/message/new/"+_root.revertname,"_blank");
71                } else {
72                        handleError(-1,new Array(iText("You cannot contact an anonymous mapper.",'error_anonymous')));
73                }
74        };
75
76        function doRevert() {
77                if (_root.windows.history.box.revert._alpha<50) { return; }
78                _root.windows.history.remove();
79                if (_root.reverttype=='way') {
80                        _root.undo.append(UndoStack.prototype.undo_changeway,
81                                                          new Array(_root.revertid,deepCopy(_root.map.ways[_root.revertid].path),
82                                                                                                           deepCopy(_root.map.ways[_root.revertid].deletednodes),
83                                                                                                           deepCopy(_root.map.ways[_root.revertid].attr)),
84                                                          iText("reverting a way",'action_revertway'));
85                        _root.map.ways[_root.revertid].loadFromDeleted(_root.reverttime);
86                } else if (nodes[_root.revertid]) { // node in way
87                        noderesponder=function() {};
88                        noderesponder.onResult=function(result) {
89                                var code=result.shift(); var msg=result.shift(); if (code) { handleError(code,msg,result); return; }
90                                var n=result[0];
91                                _root.nodes[n].attr=result[3];
92                                var w=_root.nodes[n].moveTo(long2coord(result[1]),lat2coord(result[2]));
93                                _root.map.ways[w].clean=false;
94                                _root.map.ways[w].select();
95                        };
96                        remote_read.call('getpoi',noderesponder,_root.revertid,_root.reverttime);
97                } else { // POI
98                        _root.map.pois[_root.revertid].clean=false;
99                        _root.map.pois[_root.revertid].reload(_root.reverttime);
100                }
101        };
102
103
104        // getDeleted - load all deleted ways (like whichways), but locked
105
106        function getDeleted() {
107                whichdelresponder=function() {};
108                whichdelresponder.onResult=function(result) {
109                        var code=result.shift(); var msg=result.shift(); if (code) { handleError(code,msg,result); return; }
110                        _root.versioninfo=null;
111                        waylist=result[0];
112                        for (i in waylist) {                                                                            // ways
113                                way=waylist[i];                                                                                 //  |
114                                if (!_root.map.ways[way]) {                                                             //  |
115                                        _root.map.ways.attachMovie("way",way,++waydepth);       //  |
116                                        _root.map.ways[way].loadFromDeleted('');                        //  |
117                                        _root.waycount+=1;                                                                      //  |
118                                }
119                        }
120                };
121                remote_read.call('whichways_deleted',whichdelresponder,_root.edge_l,_root.edge_b,_root.edge_r,_root.edge_t);
122        };
Note: See TracBrowser for help on using the repository browser.