source: subversion/applications/editors/potlatch/changeset.as @ 16526

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

Potlatch 1.1a

File size: 3.4 KB
Line 
1
2        // Changeset management code
3       
4        // -----------------------------------------------------------------------
5        // closeChangeset
6        // prompts for a comment, then closes current changeset
7        // and starts a new one
8
9        function closeChangeset() {
10        if (_root.sandbox) {
11            if (!_root.changeset) { return; }
12            pleaseWait(iText("Closing changeset",'closechangeset'));
13                    startChangeset(false);
14        } else {
15                    changesetRequest(iText("Close changeset $1",'prompt_closechangeset',_root.changeset),completeClose,'');
16                }
17        }
18
19        // -----------------------------------------------------------------------
20        // renewChangeset
21        // renew a right changeset within us (if it's over an hour since the last)
22        // returns false if it hasn't requested a new one, true if it has
23       
24        function renewChangeset() {
25                if (!_root.changeset) { return false; }
26                var t=new Date(); if (t.getTime()-_root.csopened<3400000) { return false; }
27                pleaseWait(iText("Opening changeset",'openchangeset'));
28                _root.changeset=null; startChangeset(true);
29                return true;
30        }
31
32        // changesetRequest(text,exit routine,comment)
33
34        function changesetRequest(prompt,doOnClose,comment) {
35                _root.panel.properties.enableTabs(false);
36                _root.windows.attachMovie("modal","cs",++windowdepth);
37                _root.windows.cs.init(300, 140, [iText("Cancel",'cancel'), iText("Ok",'ok')], completeClose);
38
39                var z = 5;
40                var box = _root.windows.cs.box;
41               
42                box.createTextField("title",z++,7,7,280,20);
43                box.title.text = prompt;
44                with (box.title) { wordWrap=true; setTextFormat(boldText); selectable=false; type='dynamic'; }
45
46                box.createTextField("prompt",z++,7,27,280,20);
47                box.prompt.text = iText("Enter a description of your changes:",'prompt_changesetcomment');
48                with (box.prompt) { wordWrap=true; setTextFormat(plainSmall); selectable=false; type='dynamic'; }
49               
50                box.createTextField("cscomment",z++,10,50,280,50);
51                with (box.cscomment) {
52                        setNewTextFormat(plainSmall);
53                        type='input';
54                        backgroundColor=0xDDDDDD;
55                        background=true;
56                        border=true;
57                        borderColor=0xFFFFFF;
58                        wordWrap=true;
59                        text=comment;
60                }
61                _root.csswallowed=false;
62                Selection.setFocus(box.cscomment);
63                box.cscomment.onChanged=function() {                            // swallow 'C'
64                        fixUTF8();
65                        if ((box.cscomment.text.toUpperCase()=='C' || box.cscomment.text.toUpperCase()=='S') && !_root.csswallowed ) {
66                                box.cscomment.text='';
67                        }
68                        box.csswallowed=true;
69                };
70        }
71       
72        function completeClose(button) {
73                if (button!=iText("Ok",'ok')) { return false; }
74        _root.changecomment=_root.windows.cs.box.cscomment.text;
75                startChangeset(true);
76        }
77       
78
79        // -----------------------------------------------------------------------
80        // startChangeset
81        // Closes current changeset if it exists (with optional comment)
82        // then starts a new one
83       
84        function startChangeset(open_new) {
85                csresponder=function() {};
86                csresponder.onResult = function(result) {
87                        var code=result.shift(); var msg=result.shift(); if (code) { handleError(code,msg,result); return; }
88                        // ** probably needs to fail really catastrophically here...
89                        _root.changeset=result[0];
90                        var t=new Date(); _root.csopened=t.getTime();
91                        if (_root.windows.pleasewait) { _root.windows.pleasewait.remove(); }
92            if (_root.sandbox && !_root.uploading && _root.changeset) { startUpload(); }
93                };
94
95                var cstags=new Object();                                // Changeset tags
96                cstags['created_by']=_root.signature;   //  |
97
98                remote_write.call('startchangeset',csresponder,_root.usertoken,cstags,_root.changeset,_root.changecomment,open_new);
99        }
Note: See TracBrowser for help on using the repository browser.