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

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

Potlatch 1.2a (source)

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