~ubuntu-branches/debian/sid/refcontrol/sid

« back to all changes in this revision

Viewing changes to chrome/content/refcontrolEdit.js

  • Committer: Package Import Robot
  • Author(s): Fabrizio Regalli
  • Date: 2012-01-07 00:33:43 UTC
  • Revision ID: package-import@ubuntu.com-20120107003343-uf2v9vzg6fft1ul9
Tags: upstream-0.8.16
ImportĀ upstreamĀ versionĀ 0.8.16

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
var refcontrolEdit = {
 
3
        
 
4
        dump: function dump(aMessage)
 
5
        {
 
6
                var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
 
7
                consoleService.logStringMessage("RefControl: " + aMessage);
 
8
        },
 
9
        
 
10
        dumpEx: function dumpEx(aException)
 
11
        {
 
12
                Components.utils.reportError(aException);
 
13
                if ('stack' in aException)
 
14
                {
 
15
                        var msg = new String(aException);
 
16
                        msg += "\n" + aException.stack;
 
17
                        this.dump(msg);
 
18
                }
 
19
        },
 
20
 
 
21
        getString: function getString(sStringName)
 
22
        {
 
23
                return document.getElementById('refcontrol-strings').getString(sStringName);
 
24
        },
 
25
        
 
26
        onLoad: function onLoad()
 
27
        {
 
28
                try {
 
29
                        var fldSite                     = document.getElementById("fldSite");
 
30
                        var fldActionGroup      = document.getElementById("fldActionGroup");
 
31
                        var fldActionNormal     = document.getElementById("fldActionNormal");
 
32
                        var fldActionBlock      = document.getElementById("fldActionBlock");
 
33
                        var fldActionForge      = document.getElementById("fldActionForge");
 
34
                        var fldActionCustom     = document.getElementById("fldActionCustom");
 
35
                        var fldAction           = document.getElementById("fldAction");
 
36
                        var fld3rdParty     = document.getElementById("fld3rdParty");
 
37
 
 
38
                        var site        = window.arguments[0].site;
 
39
                        var action      = window.arguments[0].action;
 
40
 
 
41
                        if (site == '@DEFAULT')
 
42
                        {
 
43
                                fldSite.value = this.getString("SiteDefault");
 
44
                                fldSite.style.fontWeight = "bold";
 
45
                                fldSite.disabled = true;
 
46
                        }
 
47
                        else
 
48
                        {
 
49
                                fldSite.value = site;
 
50
                        }
 
51
 
 
52
                        switch (action.str)
 
53
                        {
 
54
                                case '@NORMAL':
 
55
                                        fldActionGroup.selectedItem = fldActionNormal;
 
56
                                        fldAction.value = "";
 
57
                                        fldAction.disabled = true;
 
58
                                        break;
 
59
                                case '':
 
60
                                        fldActionGroup.selectedItem = fldActionBlock;
 
61
                                        fldAction.value = "";
 
62
                                        fldAction.disabled = true;
 
63
                                        break;
 
64
                                case '@FORGE':
 
65
                                        fldActionGroup.selectedItem = fldActionForge;
 
66
                                        fldAction.value = "";
 
67
                                        fldAction.disabled = true;
 
68
                                        break;
 
69
                                default:
 
70
                                        fldActionGroup.selectedItem = fldActionCustom;
 
71
                                        fldAction.value = action.str;
 
72
                                        fldAction.disabled = false;
 
73
                                        break;
 
74
                        }
 
75
                        
 
76
                        fld3rdParty.checked = action.if3rdParty;
 
77
                } catch (ex) {
 
78
                        this.dumpEx(ex);
 
79
                }
 
80
        },
 
81
        
 
82
        onOK: function onOK()
 
83
        {
 
84
                try {
 
85
                        var fldSite                     = document.getElementById("fldSite");
 
86
                        var fldActionGroup      = document.getElementById("fldActionGroup");
 
87
                        var fldActionNormal     = document.getElementById("fldActionNormal");
 
88
                        var fldActionBlock      = document.getElementById("fldActionBlock");
 
89
                        var fldActionForge      = document.getElementById("fldActionForge");
 
90
                        var fldActionCustom     = document.getElementById("fldActionCustom");
 
91
                        var fldAction           = document.getElementById("fldAction");
 
92
                        var fld3rdParty     = document.getElementById("fld3rdParty");
 
93
 
 
94
                        var site;
 
95
                        var action = {};
 
96
                        
 
97
                        if (fldSite.disabled)
 
98
                                site = '@DEFAULT';
 
99
                        else
 
100
                        {
 
101
                                // if user specified a complete URL, extract just the host from it
 
102
                                try {
 
103
                                        var svcIO = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
 
104
                                        site = svcIO.newURI(fldSite.value, null, null).host;
 
105
                                } catch (ex) {
 
106
                                        site = fldSite.value;
 
107
                                }
 
108
                                // strip off any leading "*." components
 
109
                                // "example.com" will do what users expect from "*.example.com"
 
110
                                while (site.search(/^\*\./) != -1)
 
111
                                        site = site.substr(2)
 
112
                                if (site == "")
 
113
                                {
 
114
                                        window.alert(this.getString("SiteNotFilledInAlert"));
 
115
                                        return false;
 
116
                                }
 
117
                                if (site.search(/[ =*]/) != -1)
 
118
                                {
 
119
                                        window.alert(this.getString("SiteInvalidCharactersAlert"));
 
120
                                        return false;
 
121
                                }
 
122
                        }
 
123
                        
 
124
                        switch (fldActionGroup.selectedItem)
 
125
                        {
 
126
                                case fldActionNormal:
 
127
                                        action.str = '@NORMAL';
 
128
                                        break;
 
129
                                case fldActionBlock:
 
130
                                        action.str = '';
 
131
                                        break;
 
132
                                case fldActionForge:
 
133
                                        action.str = '@FORGE';
 
134
                                        break;
 
135
                                case fldActionCustom:
 
136
                                        action.str = fldAction.value;
 
137
                                        break;
 
138
                                default:
 
139
                                        window.alert("Unable to determine selected action.");
 
140
                                        return false;
 
141
                        }
 
142
                        
 
143
                        action.if3rdParty = fld3rdParty.checked;
 
144
                        
 
145
                        window.arguments[0].site = site;
 
146
                        window.arguments[0].action = action;
 
147
                        window.arguments[0].ret = true;
 
148
                        return true;
 
149
                } catch (ex) {
 
150
                        this.dumpEx(ex);
 
151
                }
 
152
                return false;
 
153
        },
 
154
        
 
155
        onActionChange: function onActionChange(aEvent)
 
156
        {
 
157
                var fldAction           = document.getElementById("fldAction");
 
158
                fldAction.disabled = !(aEvent.target.id == "fldActionCustom");
 
159
        }
 
160
};
 
161