root/trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/settings_dialog.js

Revision 345, 4.3 kB (checked in by calh, 2 years ago)

added a proxy settings button to the prefs dialog

Line 
1 /*
2  * Flickr Uploadr
3  *
4  * Copyright (c) 2007-2008 Yahoo! Inc.  All rights reserved.  This library is
5  * free software; you can redistribute it and/or modify it under the terms of
6  * the GNU General Public License (GPL), version 2 only.  This library is
7  * distributed WITHOUT ANY WARRANTY, whether express or implied. See the GNU
8  * GPL for more details (http://www.gnu.org/licenses/gpl.html)
9  */
10
11 var settings = {
12
13         nsid: window.arguments[0],
14         list: window.arguments[1],
15
16         load: function() {
17
18                 // Show a login message for non-logged-in users
19                 if (null == settings.nsid) {
20                         document.getElementById('dialog_settings').style.width = '300px';
21                         document.getElementById('notloggedin').style.display = '-moz-box';
22                         document.getElementById('loggedin').style.display = 'none';
23                 }
24
25                 // Show everything for logged in users
26                 else {
27                         document.getElementById('notloggedin').style.display = 'none';
28                         document.getElementById('loggedin').style.display = '-moz-box';
29
30                         // Setup the default state of the UI
31                         var dropdown = document.getElementById('user');
32                         dropdown.removeAllItems();
33                         var u = settings.list;
34                         var i = 0;
35                         for each (var user in u) {
36                                 dropdown.appendItem(user.username, user.nsid);
37                                 if (user.current) {
38                                         dropdown.selectedIndex = i;
39                                         settings._load(user.nsid);
40                                 }
41                                 ++i;
42                         }
43                         document.getElementById('resize_prompt').firstChild.nodeValue = window.arguments[2];
44
45                 }
46
47                 moveToAlertPosition();
48         },
49
50         // Load a user's data
51         _load: function(nsid) {
52                 var s = settings.list[nsid].settings;
53                 document.getElementById('is_public').value = s.is_public;
54                 document.getElementById('is_friend').checked = 1 == s.is_friend;
55                 document.getElementById('is_family').checked = 1 == s.is_family;
56                 settings.is_public(s.is_public);
57                 document.getElementById('content_type').value = s.content_type;
58                 document.getElementById('hidden').checked = 2 == s.hidden;
59                 document.getElementById('safety_level').value = s.safety_level;
60                 document.getElementById('resize').value = s.resize;
61         },
62
63         cancel: function() {
64         },
65
66         ok: function() {
67                 window.arguments[3].ok = true;
68         },
69
70         // Change the active user
71         change_user: function() {
72                 for each (var user in settings.list) {
73                         user.current = false;
74                 }
75                 var dropdown = document.getElementById('user');
76                 settings.nsid = dropdown.value;
77                 settings.list[settings.nsid].current = true;
78                 settings._load(settings.nsid);
79         },
80
81         // Remove a user from the list, which will be made permanent by pressing OK
82         remove_user: function() {
83                 var dropdown = document.getElementById('user');
84                 delete settings.list[settings.nsid];
85                 dropdown.removeItemAt(dropdown.selectedIndex);
86                 dropdown.selectedIndex = 0;
87                 settings.nsid = dropdown.value ? dropdown.value : null;
88                 if (null != settings.nsid) {
89                         settings.list[settings.nsid].current = true;
90                         settings._load(settings.nsid);
91                 }
92         },
93
94         // Close this dialog to start the auth process for a new user, after which we'll return here
95         add_user: function() {
96                 window.arguments[3].add_user = true;
97                 window.close();
98         },
99
100         // Copy form data back into storage whenever things are changed
101         is_public: function(value) {
102                 settings.list[settings.nsid].settings.is_public = parseInt(value);
103                 if (1 == parseInt(value)) {
104                         document.getElementById('is_friend').checked = false;
105                         document.getElementById('is_family').checked = false;
106                         document.getElementById('is_friend').disabled = true;
107                         document.getElementById('is_family').disabled = true;
108                 } else {
109                         document.getElementById('is_friend').disabled = false;
110                         document.getElementById('is_family').disabled = false;
111                 }
112         },
113         is_friend: function(checked) {
114                 settings.list[settings.nsid].settings.is_friend = checked ? 1 : 0;
115         },
116         is_family: function(checked) {
117                 settings.list[settings.nsid].settings.is_family = checked ? 1 : 0;
118         },
119         hidden: function(checked) {
120                 settings.list[settings.nsid].settings.hidden = checked ? 2 : 1;
121         },
122         safety_level: function(value) {
123                 settings.list[settings.nsid].settings.safety_level = parseInt(value);
124         },
125         content_type: function(value) {
126                 settings.list[settings.nsid].settings.content_type = parseInt(value);
127         },
128         resize: function(value) {
129                 settings.list[settings.nsid].settings.resize = parseInt(value);
130         },
131         config_proxy: function(){
132                 window.openDialog('chrome://uploadr/content/proxy.xul', 'dialog_proxy', 'chrome,titlebar,toolbar,centerscreen,modal');
133         }
134 };
Note: See TracBrowser for help on using the browser.