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

Last change on this file 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.