source: subversion/applications/editors/potlatch/start.as @ 34678

Last change on this file since 34678 was 20832, checked in by richard, 9 years ago

last point release of Potlatch 1.x...

  • Property svn:executable set to *
File size: 9.0 KB
Line 
1
2        // Potlatch introduction/welcome functions
3       
4        // -----------------------------------------------------------------------
5        // Load presets
6       
7        function loadPresets() {
8        pleaseWait("Please wait - loading presets.");
9                preresponder = function() { };
10                preresponder.onResult = function(result) {
11                        _root.presets=result[0];
12                        _root.presetmenus=result[1];
13                        _root.presetnames=result[2];
14                        _root.colours=result[3];
15                        _root.casing=result[4];
16                        _root.areas=result[5];
17                        _root.autotags=result[6];
18                        _root.relcolours=result[7];
19                        _root.relalphas=result[8];
20                        _root.relwidths=result[9];
21                        _root.iconlist=result[10];
22                        _root.iconnames=result[11];
23                        _root.icontags=result[12];
24                        _root.i18n=result[13];
25                        _root.panel.i_preset._visible=false;
26
27                        var pages=result[14].split('<page/>');
28                        _root.helppages=new Array();
29                        for (var i in pages) {
30                helppages[i]=pages[i].split('<column/>');
31                    }
32
33                        _root.waysloading._x=Stage.width-220;
34                        _root.waysloading._y=5;
35                        _root.waysloading.attachMovie("whirl","whirl",3);
36                        _root.waysloading.whirl._x=205;
37                        _root.waysloading.whirl._y=10;
38                        _root.waysloading.whirl._xscale=
39                        _root.waysloading.whirl._yscale=75;
40                        _root.io=0;
41
42                        for (var icon in iconlist) {
43                                Object.registerClass("poi_"+iconlist[icon],POI);
44                        }
45
46                        if (lat!=undefined) { startPotlatch(); }        // Parse GPX if supplied
47                        if (gpx) { parseGPX(gpx); }                                     //  |
48                                else { _root.windows.pleasewait.remove();
49                                           if (lat==undefined) { lat=0; long=0; startPotlatch(); }
50                        }
51                        splashScreen();
52                        welcomeButtons();
53                };
54                remote_read.call('getpresets',preresponder,_root.usertoken,_root.lang);
55        }
56
57    function pleaseWait(a,cancelFunction) {
58                _root.windows.attachMovie("modal","pleasewait",++windowdepth);
59                if (cancelFunction) {
60                        _root.windows.pleasewait.init(295,65,new Array(iText('cancel')),cancelFunction);
61                } else {
62                        _root.windows.pleasewait.init(295,35,new Array(),null);
63                }
64                _root.windows.pleasewait.box.createTextField("prompt",2,37,8,280,20);
65                _root.windows.pleasewait.box.attachMovie("whirl","whirl",3);
66                with (_root.windows.pleasewait.box.whirl) { _x=20; _y=18; }
67                writeText(_root.windows.pleasewait.box.prompt,a);
68        }
69       
70        // -----------------------------------------------------------------------
71        // Create splash screen
72       
73        function splashScreen() {
74        var h=267;
75        _root.dogpx=false;
76        if (gpx) { h+=20; }
77        if (preferences.data.launcher) { h+=30; }
78       
79                _root.windows.attachMovie("modal","splashscreen",++windowdepth);
80                _root.windows.splashscreen.init(350,h,[],null,2);
81        _root.windows.splashscreen.box._alpha=85;
82        var box=_root.windows.splashscreen.box;
83
84                box.createTextField("title",1,0,15,350,40);
85                with (box.title) {
86                        type='dynamic';
87                        text=iText('prompt_welcome'); setTextFormat(boldLarge);
88            _x=(350-textWidth)/2;
89                }
90                adjustTextField(box.title);
91               
92                box.createTextField("help",4,0,40,350,20);
93                with (box.help) {
94                        type='dynamic';
95                        text=iText('prompt_helpavailable'); setTextFormat(plainSmall);
96            _x=(350-textWidth)/2;
97                }
98                adjustTextField(box.help);
99
100        box.attachMovie("editwithsave","start_save",50);
101        with (box.start_save) {
102            _x=90; _y=125;
103            _xscale=500; _yscale=500;
104        }
105                box.start_save.onPress=function() { removeSplash(false); };
106
107        box.attachMovie("editlive","start_live",51);
108        with (box.start_live) {
109            _x=240; _y=107;
110            _xscale=375; _yscale=375;
111        }
112                box.start_live.onPress=function() { removeSplash(true); };
113
114                box.createEmptyMovieClip("button_save",2);
115                drawButton(box.button_save,50,225,iText('prompt_editsave'),'',100);
116                box.button_save.onPress=function() { removeSplash(false); };
117
118                box.createEmptyMovieClip("button_live",3);
119                drawButton(box.button_live,200,225,iText('prompt_editlive'),'',100);
120                box.button_live.onPress=function() { removeSplash(true); };
121
122        // Optional buttons
123
124        var h=260;
125        if (gpx) { 
126                box.attachMovie("checkbox","convert",5);
127                box.convert.init(0,h,iText('prompt_track'),false,function(n) { _root.dogpx=n; });
128            box.convert._x=(350-13-box.convert.prompt.textWidth)/2;
129            h+=20;
130        }
131        if (preferences.data.launcher) {
132                box.createEmptyMovieClip("button_launch",6);
133                drawButton(box.button_launch,100,h+5,iText('prompt_launch'),'',150);
134                        box.button_launch.onPress=function() { 
135                                var a=preferences.data.launcher.split('!');
136                                getUrl(a[0]+_root.scale+a[1]+centrelong(0)+a[2]+centrelat(0)+a[3],"_blank");
137                        };
138        }
139        }
140
141        // -----------------------------------------------------------------------
142        // Create welcome buttons
143       
144        function removeSplash(live) {
145                _root.panel.properties._visible=true;
146                _root.panel.presets._visible=true;
147                _root.windows.splashscreen.remove();
148                if (_root.panel.properties.proptype=='') { drawIconPanel(); }
149                if (_root.dogpx) { gpxToWays(); }
150                if (live && !preferences.data.livewarned) {
151                        _root.windows.attachMovie("modal","confirm",++windowdepth);
152                        _root.windows.confirm.init(275,140,new Array(iText('no'),iText('yes')),
153                                function(choice) {
154                                        preferences.data.livewarned=true;
155                                        preferences.flush();
156                                        if (choice==iText('yes')) { beginEditing(true); }
157                                                                                 else { beginEditing(false); }
158                                });
159                        _root.windows.confirm.box.createTextField("title",12,7,7,400-14,20);
160                        with (_root.windows.confirm.box.title) {
161                                type='dynamic'; text=iText("warning"); setTextFormat(boldText);
162                        }
163                        _root.windows.confirm.box.createTextField("prompt",13,7,29,250,140);
164                        writeText(_root.windows.confirm.box.prompt,iText('prompt_live'));
165                } else {
166                        beginEditing(live);
167                }
168        }
169
170        function beginEditing(live) {
171                if (live) {
172                        setEditingStatus(iText('editinglive'),0xFF0000);
173                        pleaseWait(iText('openchangeset'));
174                        _root.changecomment=''; startChangeset(true);
175                } else {
176                        _root.sandbox=true;
177                        setEditingStatus(iText('editingoffline'),0x008800);
178                        _root.panel.advanced.disableOption(5);
179                }
180        }
181
182
183        // -----------------------------------------------------------------------
184        // Main start function
185
186        function startPotlatch() {
187                _root.urllat  =Number(lat);                                             // LL from query string
188                _root.urllong =Number(long);                                    //  |
189                _root.baselong=urllong-xradius/masterscale/bscale;
190                _root.basey   =lat2y(urllat)+yradius/masterscale/bscale;
191                _root.baselat =y2lat(basey);
192                _root.ylat=baselat;      _root.lastylat=ylat;           // current Yahoo state
193                _root.ylon=baselong; _root.lastylon=ylon;               //  |
194                updateCoords(0,0);
195                updateLinks();
196                initBackground();
197                whichWays();
198
199                var x=7;
200                _root.panel.createEmptyMovieClip("help",80);
201                drawButton(_root.panel.help,x,114,iText('help'),"",undefined,true);
202                _root.panel.help.onPress=function() { openHelp(); };
203                x+=_root.panel.help._width+2;
204
205                _root.panel.createEmptyMovieClip("findtag",81);
206                drawButton(_root.panel.findtag,x,114,iText('tags_findtag'),"",undefined,true);
207                _root.panel.findtag.onPress=function() { openTagFinder(); _root.reinstatefocus=_root.windows.tf.box.comment; _root.tfswallowed=true; };
208                x+=_root.panel.findtag._width+7;
209
210                _root.panel.attachMovie("menu","advanced",82);
211                _root.panel.advanced.init(x,114,-1,
212                        new Array(iText("advanced_parallel"),
213                                          iText("advanced_history"),
214                                          "--",
215                                          iText("advanced_inspector"),
216                                          iText("advanced_undelete"),
217                                          iText("advanced_close"),
218                                          iText("advanced_maximise")),
219                        iText('advanced_tooltip'),advancedAction,null,85,iText("advanced"));
220                selectWay(0);   // just to update the menu items
221
222                _root.onEnterFrame=function() { everyFrame(); };
223        }
224
225        function setEditingStatus(str,col) {
226                _root.createEmptyMovieClip("status",62);
227
228                _root.status.createTextField("btext",1,0,-1,90,20);
229                with (_root.status.btext) {
230                        text=str;
231                        setTextFormat(boldWhite);
232                        selectable=false; type='dynamic';
233                };
234                adjustTextField(_root.status.btext);
235               
236                var tw=_root.status.btext.textWidth+5;
237                with (_root.status) {
238                        // if (preferences.data.baselayer==2) { _y-=32; }
239                        beginFill(col,100);
240                        moveTo(0,0); lineTo(tw,0); lineTo(tw,17);
241                        lineTo(0,17); lineTo(0,0); endFill();
242                };
243               
244                if (_root.sandbox) {
245                        _root.status.createEmptyMovieClip("save",3);
246                        drawButton(_root.status.save,tw+10,0,iText('save'),"");
247                        _root.status.save.onPress=function() { prepareUpload(); };
248                        _root.status.save._x=tw+10;     // we don't want it centred, even if internationalised!
249                }
250
251                setStatusPosition();
252        };
253
254        function setStatusPosition() {
255                _root.status._x=Stage.width-_root.status.btext.textWidth-10;
256                if (_root.sandbox) { _root.status._x-=_root.status.save._width+10; }
257                _root.status._y=Stage.height-21; // panelheight-22;
258                // if (preferences.data.baselayer==2) { _root.status._y-=32; }
259        };
260
261        function establishConnections() {
262                _root.remote_read=new NetConnection();
263                _root.remote_read.connect(apiurl+'/read');
264                _root.remote_read.onStatus=function(info) {
265                readError=true; 
266                    _root.panel.i_warning._visible=true;
267                };
268
269                _root.remote_write=new NetConnection();
270                _root.remote_write.connect(apiurl+'/write');
271                _root.remote_write.onStatus=function(info) {
272                writeError=true;
273                    _root.panel.i_warning._visible=true;
274                if (_root.uploading) { handleWarning(); }
275                };
276        };
Note: See TracBrowser for help on using the repository browser.