Passed
Push — master ( b0ecee...6897d9 )
by Kevin
56s queued 16s
created
drupal/sites/default/boinc/modules/boincuser/includes/boincuser.forms.inc 1 patch
Indentation   +429 added lines, -429 removed lines patch added patch discarded remove patch
@@ -15,59 +15,59 @@  discard block
 block discarded – undo
15 15
  * Form validation handler for login
16 16
  */
17 17
 function boincuser_login_validate($form, &$form_state) {
18
-  /* // SAMPLE: To try validation with Drupal first...
18
+    /* // SAMPLE: To try validation with Drupal first...
19 19
   global $user;
20 20
   if (!empty($user->uid)) {
21 21
     // Authentication with Drupal was successful
22 22
     return;
23 23
   }*/
24 24
   
25
-  // Set name for logging purposes
26
-  $form_state['values']['name'] = $form_state['values']['email'];
25
+    // Set name for logging purposes
26
+    $form_state['values']['name'] = $form_state['values']['email'];
27 27
   
28
-  // Bypass BOINC validation if passed the name of user 1
29
-  $user_1 = user_load(1);
30
-  if ($form_state['values']['email'] == $user_1->name) {
28
+    // Bypass BOINC validation if passed the name of user 1
29
+    $user_1 = user_load(1);
30
+    if ($form_state['values']['email'] == $user_1->name) {
31 31
     user_authenticate($form_state['values']);
32 32
     return;
33
-  }
33
+    }
34 34
   
35
-  // Call our custom authentication function to check for an existing BOINC user
36
-  if (!boincuser_login_authenticate($form_state['values'])) {
35
+    // Call our custom authentication function to check for an existing BOINC user
36
+    if (!boincuser_login_authenticate($form_state['values'])) {
37 37
     // Authentication failed; set an error accordingly
38 38
     form_set_error('name', bts('Sorry, unrecognized email address or password.', array(), NULL, 'boinc:forgot-password') . ' ' . l(bts('Have you forgotten your password?', array(), NULL, 'boinc:forgot-password'), 'user/password'));
39
-  }
39
+    }
40 40
 }
41 41
 
42 42
 /**
43 43
  * Custom authentication function to check BOINC account information
44 44
  */
45 45
 function boincuser_login_authenticate($form_values) {
46
-  global $boincuser_authenticated;
47
-  $lower_email_addr = strtolower($form_values['email']);
48
-  $passwd = $form_values['pass'];
49
-  $passwd_hash = md5($passwd.$lower_email_addr);
46
+    global $boincuser_authenticated;
47
+    $lower_email_addr = strtolower($form_values['email']);
48
+    $passwd = $form_values['pass'];
49
+    $passwd_hash = md5($passwd.$lower_email_addr);
50 50
   
51
-  // Include BOINC user library
52
-  require_boinc('boinc_db');
53
-  require_boinc('user_util');
51
+    // Include BOINC user library
52
+    require_boinc('boinc_db');
53
+    require_boinc('user_util');
54 54
 
55
-  // Get the BOINC user and check credentials
56
-  $boinc_user = BoincUser::lookup_email_addr($lower_email_addr);
57
-  if (!$boinc_user) return false;
55
+    // Get the BOINC user and check credentials
56
+    $boinc_user = BoincUser::lookup_email_addr($lower_email_addr);
57
+    if (!$boinc_user) return false;
58 58
 
59
-  if (!check_passwd_hash($boinc_user, $passwd_hash)) {
59
+    if (!check_passwd_hash($boinc_user, $passwd_hash)) {
60 60
     return false;
61
-  }
61
+    }
62 62
 
63
-  // BOINC authentication successful; log in and synchronize accounts
64
-  boincuser_login_register($boinc_user);
65
-  // Write session, update timestamp, run user 'login' hook.
66
-  user_authenticate_finalize($form_values);
67
-  // Use a global variable to save the fact that we did authentication.
68
-  $boincuser_authenticated = true;
63
+    // BOINC authentication successful; log in and synchronize accounts
64
+    boincuser_login_register($boinc_user);
65
+    // Write session, update timestamp, run user 'login' hook.
66
+    user_authenticate_finalize($form_values);
67
+    // Use a global variable to save the fact that we did authentication.
68
+    $boincuser_authenticated = true;
69 69
 
70
-  return true;
70
+    return true;
71 71
 }
72 72
 
73 73
 /**
@@ -75,18 +75,18 @@  discard block
 block discarded – undo
75 75
  * Drupal accounts
76 76
  */
77 77
 function boincuser_login_register($boinc_user) {
78
-  global $user;
79
-  require_boinc('boinc_db');
80
-  // If a Drupal account already exists, log in
81
-  $existing_user = user_load(array('mail' => $boinc_user->email_addr));
82
-  if (!empty($existing_user->uid)) {
78
+    global $user;
79
+    require_boinc('boinc_db');
80
+    // If a Drupal account already exists, log in
81
+    $existing_user = user_load(array('mail' => $boinc_user->email_addr));
82
+    if (!empty($existing_user->uid)) {
83 83
     $user = $existing_user;
84
-  } else {
84
+    } else {
85 85
     // Create a Drupal user from the BOINC user
86 86
     if ($user = boincuser_register_make_drupal_user($boinc_user)) {
87
-      watchdog('user', 'New external user: %email using module %module.', array('%email' => $email_addr, '%module' => $module), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
87
+        watchdog('user', 'New external user: %email using module %module.', array('%email' => $email_addr, '%module' => $module), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $user->uid .'/edit'));
88
+    }
88 89
     }
89
-  }
90 90
 }
91 91
 
92 92
 
@@ -98,113 +98,113 @@  discard block
 block discarded – undo
98 98
  * New user registration validation handler.
99 99
  */
100 100
 function boincuser_register_validate($form, &$form_state) {
101
-  // Include BOINC database objects library
102
-  require_boinc('boinc_db');
101
+    // Include BOINC database objects library
102
+    require_boinc('boinc_db');
103 103
 
104
-  // Check terms of use agreement
105
-  $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
106
-  if (!empty($termsofuse)) {
104
+    // Check terms of use agreement
105
+    $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
106
+    if (!empty($termsofuse)) {
107 107
     if (!$form_state['values']['termsofuse']['agreeTOU']) {
108
-      form_set_error('termsofuse', bts('ERROR: You must acknowledge our terms of use by clicking the checkbox before registering for an account.', NULL, 'boinc:register-new-user'));
109
-      return false;
108
+        form_set_error('termsofuse', bts('ERROR: You must acknowledge our terms of use by clicking the checkbox before registering for an account.', NULL, 'boinc:register-new-user'));
109
+        return false;
110
+    }
110 111
     }
111
-  }
112 112
 
113
-  // Lower-case the email address
114
-  $lower_email_addr = strtolower($form_state['values']['mail']);
115
-  $tmp_user = BoincUser::lookup_prev_email_addr($lower_email_addr);
116
-  if ($tmp_user) {
113
+    // Lower-case the email address
114
+    $lower_email_addr = strtolower($form_state['values']['mail']);
115
+    $tmp_user = BoincUser::lookup_prev_email_addr($lower_email_addr);
116
+    if ($tmp_user) {
117 117
     // User already exists
118 118
     rules_invoke_event('boincuser_change_email_error', $lower_email_addr, variable_get('boinc_admin_mailing_list_subject_tag', ''));
119 119
     form_set_error('mail',
120
-      bts('An account already exists for @email. The @project administrators have been notified.',
120
+        bts('An account already exists for @email. The @project administrators have been notified.',
121 121
         array(
122
-          '@email' => $lower_email_addr,
123
-          '@project' => variable_get('site_name', 'Drupal-BOINC')
122
+            '@email' => $lower_email_addr,
123
+            '@project' => variable_get('site_name', 'Drupal-BOINC')
124 124
         ), NULL, 'boinc:register-new-user')
125 125
     );
126
-  }
126
+    }
127 127
 
128
-  // Check for an existing BOINC user
129
-  // This is somewhat redundent as Drupal will also check if the email
130
-  // is a duplicate. However, in the case where there is no Drupal
131
-  // account, but a BOINC account exists with this email, the check
132
-  // will fail.
133
-  $boinc_user = BoincUser::lookup_email_addr($lower_email_addr);
134
-  if ($boinc_user) {
128
+    // Check for an existing BOINC user
129
+    // This is somewhat redundent as Drupal will also check if the email
130
+    // is a duplicate. However, in the case where there is no Drupal
131
+    // account, but a BOINC account exists with this email, the check
132
+    // will fail.
133
+    $boinc_user = BoincUser::lookup_email_addr($lower_email_addr);
134
+    if ($boinc_user) {
135 135
     // User already exists
136 136
     form_set_error('mail', bts('An account already exists for @email. Log in or request password assistance to access your @project account.', array('@email' => $lower_email_addr, '@project' => PROJECT), NULL, 'boinc:add-new-user'));
137 137
     return false;
138
-  }
138
+    }
139 139
 
140
-  // Check Drupal name is not a duplicate, and create a proper drupal
141
-  // name from the boinc username.
142
-  $form_state['values']['name'] = create_proper_drupalname($form_state['values']['boincuser_name']);
140
+    // Check Drupal name is not a duplicate, and create a proper drupal
141
+    // name from the boinc username.
142
+    $form_state['values']['name'] = create_proper_drupalname($form_state['values']['boincuser_name']);
143 143
 
144
-  return true;
144
+    return true;
145 145
 }
146 146
 
147 147
 /**
148 148
  * Create BOINC account
149 149
  */
150 150
 function boincuser_register_make_user($params) {    
151
-  // Include BOINC user library
152
-  require_boinc('user_util');
153
-  // Create the BOINC user
154
-  $boinc_user = make_user($params['email_addr'], $params['name'], $params['passwd_hash'], $params['country'], $params['postal_code']);
155
-  return $boinc_user;
151
+    // Include BOINC user library
152
+    require_boinc('user_util');
153
+    // Create the BOINC user
154
+    $boinc_user = make_user($params['email_addr'], $params['name'], $params['passwd_hash'], $params['country'], $params['postal_code']);
155
+    return $boinc_user;
156 156
 }
157 157
 
158 158
 /**
159 159
  * Create Drupal account from existing BOINC account
160 160
  */
161 161
 function boincuser_register_make_drupal_user($boinc_user) {
162
-  $account = null;
163
-  if (is_numeric($boinc_user)) {
162
+    $account = null;
163
+    if (is_numeric($boinc_user)) {
164 164
     $boinc_user = boincuser_load($boinc_user);
165
-  }
166
-  if ($boinc_user) {
165
+    }
166
+    if ($boinc_user) {
167 167
     $account = boincuser_create_drupal_user($boinc_user);
168 168
     if ($account) {
169
-      boincuser_create_drupal_profile($account, $boinc_user);
169
+        boincuser_create_drupal_profile($account, $boinc_user);
170
+    }
170 171
     }
171
-  }
172
-  return $account;
172
+    return $account;
173 173
 }
174 174
 
175 175
 function boincuser_create_drupal_user($boinc_user) {
176
-  require_boinc('forum_db');
177
-  BoincForumPrefs::lookup($boinc_user);
178
-  $account = NULL;
179
-  $module = 'boincuser';
176
+    require_boinc('forum_db');
177
+    BoincForumPrefs::lookup($boinc_user);
178
+    $account = NULL;
179
+    $module = 'boincuser';
180 180
   
181
-  // Verify that this account has not already been imported
182
-  $already_imported = db_result(db_query('
181
+    // Verify that this account has not already been imported
182
+    $already_imported = db_result(db_query('
183 183
     SELECT COUNT(*) FROM {boincuser} WHERE boinc_id = %d',
184 184
     $boinc_user->id)
185
-  );
186
-  if ($already_imported) {
185
+    );
186
+    if ($already_imported) {
187 187
     return NULL;
188
-  }
188
+    }
189 189
   
190
-  // Email is limited to 64 characters...
191
-  $boinc_email = substr($boinc_user->email_addr, 0, 64);
190
+    // Email is limited to 64 characters...
191
+    $boinc_email = substr($boinc_user->email_addr, 0, 64);
192 192
   
193
-  // Email should be unique
194
-  $already_imported = db_result(db_query("
193
+    // Email should be unique
194
+    $already_imported = db_result(db_query("
195 195
     SELECT COUNT(*) FROM {users} WHERE mail = '%s'",
196 196
     $boinc_email)
197
-  );
198
-  if ($already_imported) {
197
+    );
198
+    if ($already_imported) {
199 199
     drupal_set_message(t('An account for @email already exists', array('@email' => $boinc_email)), 'warning');
200 200
     watchdog('boincimport', 'An account for @email already exists', array('@email' => $boinc_email), WATCHDOG_WARNING); 
201 201
     return NULL;
202
-  }
202
+    }
203 203
   
204
-  // Make sure name is unique
205
-  $unique_name = create_proper_drupalname($boinc_user->name);
204
+    // Make sure name is unique
205
+    $unique_name = create_proper_drupalname($boinc_user->name);
206 206
   
207
-  $userinfo = array(
207
+    $userinfo = array(
208 208
     'name' => $unique_name,
209 209
     'pass' => $boinc_user->passwd_hash,
210 210
     'mail' => $boinc_email,
@@ -214,126 +214,126 @@  discard block
 block discarded – undo
214 214
     'status' => 1,
215 215
     "authname_{$module}" => $boinc_email,
216 216
     'access' => time()
217
-  );
217
+    );
218 218
   
219
-  $in_penalty = ($boinc_user->prefs->banished_until > time());
219
+    $in_penalty = ($boinc_user->prefs->banished_until > time());
220 220
   
221
-  // Add user to community member role (if no current penalty)
222
-  if (!$in_penalty) {
221
+    // Add user to community member role (if no current penalty)
222
+    if (!$in_penalty) {
223 223
     $community_role = array_search('community member', user_roles(true)); 
224 224
     $userinfo['roles'] = array(
225
-      $community_role => ''
225
+        $community_role => ''
226 226
     );
227
-  }
227
+    }
228 228
   
229
-  // Mark account as imported so a BOINC account is not created on Insert (i.e. user_save)
230
-  $_SESSION['importedUser'] = true;
231
-  $account = user_save('', $userinfo);
229
+    // Mark account as imported so a BOINC account is not created on Insert (i.e. user_save)
230
+    $_SESSION['importedUser'] = true;
231
+    $account = user_save('', $userinfo);
232 232
   
233
-  // Drupal overrides the original registration date, so update to the correct date
234
-  $account = user_save($account, array('created' => $userinfo['created']));
233
+    // Drupal overrides the original registration date, so update to the correct date
234
+    $account = user_save($account, array('created' => $userinfo['created']));
235 235
   
236
-  // Terminate if an error occured during user_save().
237
-  if (!$account) {
236
+    // Terminate if an error occured during user_save().
237
+    if (!$account) {
238 238
     drupal_set_message(t("Error saving user account."), 'error');
239 239
     return NULL;
240
-  }
240
+    }
241 241
   
242
-  // Cross reference the Drupal and BOINC accounts
243
-  boincuser_account_cross_reference($account->uid, $boinc_user->id);
242
+    // Cross reference the Drupal and BOINC accounts
243
+    boincuser_account_cross_reference($account->uid, $boinc_user->id);
244 244
   
245
-  if ($in_penalty) {
245
+    if ($in_penalty) {
246 246
     // Import the timestamp of when the penalty period will be over
247 247
     $boincuser_record = array(
248
-      'uid' => $account->uid,
249
-      'penalty_expiration' => $boinc_user->prefs->banished_until,
248
+        'uid' => $account->uid,
249
+        'penalty_expiration' => $boinc_user->prefs->banished_until,
250 250
     );
251 251
     drupal_write_record('boincuser', $boincuser_record, 'uid');
252
-  }
252
+    }
253 253
   
254
-  return $account;
254
+    return $account;
255 255
 }
256 256
 
257 257
 function boincuser_create_drupal_profile($account, $boinc_user) {
258 258
   
259
-  require_boinc('forum_db');
260
-  BoincForumPrefs::lookup($boinc_user);
259
+    require_boinc('forum_db');
260
+    BoincForumPrefs::lookup($boinc_user);
261 261
   
262
-  $image_dir = boinc_get_path('user_image');
262
+    $image_dir = boinc_get_path('user_image');
263 263
   
264
-  // Automatically create a content profile
265
-  $now = time();
266
-  $profile_background = null;
267
-  $profile_opinions = null;
268
-  $profile_image = null;
269
-  $avatar_image = null;
270
-  $profile_approved = NULL;
264
+    // Automatically create a content profile
265
+    $now = time();
266
+    $profile_background = null;
267
+    $profile_opinions = null;
268
+    $profile_image = null;
269
+    $avatar_image = null;
270
+    $profile_approved = NULL;
271 271
   
272
-  // Load the BOINC profile, if available
273
-  if ($boinc_user->has_profile) {
272
+    // Load the BOINC profile, if available
273
+    if ($boinc_user->has_profile) {
274 274
     $boinc_profile = BoincProfile::lookup("userid={$boinc_user->id}");
275 275
     $profile_background = $boinc_profile->response1;
276 276
     $profile_opinions = $boinc_profile->response2;
277 277
     if ($boinc_profile->has_picture) {
278
-      // Load picture; load validators; determine where to store it in Drupal
279
-      $image_path = "{$image_dir}/{$boinc_user->id}.jpg";
280
-      $profile_image = get_cck_image_object($image_path, 'field_profile_image', 'profile', TRUE);
281
-      // If the user does not have a different image as an avatar, use this one
282
-      if (!$boinc_user->prefs->avatar) {
278
+        // Load picture; load validators; determine where to store it in Drupal
279
+        $image_path = "{$image_dir}/{$boinc_user->id}.jpg";
280
+        $profile_image = get_cck_image_object($image_path, 'field_profile_image', 'profile', TRUE);
281
+        // If the user does not have a different image as an avatar, use this one
282
+        if (!$boinc_user->prefs->avatar) {
283 283
         $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE);
284
-      }
284
+        }
285 285
     }
286 286
     if ($boinc_user->prefs->avatar) {
287
-      $image_path = "{$image_dir}/{$boinc_user->id}_avatar.jpg";
288
-      $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE);
287
+        $image_path = "{$image_dir}/{$boinc_user->id}_avatar.jpg";
288
+        $avatar_image = get_cck_image_object($image_path, 'field_image', 'profile', TRUE);
289 289
     }
290 290
     $profile_approved = $boinc_profile->verification ? TRUE : FALSE;
291
-  }
292
-  $default_input_format = db_result(db_query("
291
+    }
292
+    $default_input_format = db_result(db_query("
293 293
     SELECT format FROM {filter_formats} WHERE name = '%s'", 'Rich text'));
294
-  if (!$default_input_format) $default_input_format = 1;
295
-  
296
-  // Populate the profile object
297
-  $profile_node = new stdClass();
298
-  $profile_node->title = $boinc_user->name;
299
-  $profile_node->uid = $account->uid;
300
-  $profile_node->body = '';
301
-  $profile_node->type = 'profile'; 
302
-  $profile_node->created = $now;
303
-  $profile_node->changed = $now;
304
-  $profile_node->status = 1;
305
-  $profile_node->promote = 0;
306
-  $profile_node->sticky = 0;
307
-  $profile_node->format = $default_input_format;
308
-  $profile_node->name = $account->name; // Set to link profile to account uid!
309
-  $profile_node->field_country[]['value'] = $boinc_user->country;
310
-  $profile_node->field_zip[]['value'] = $boinc_user->postal_code;
311
-  $profile_node->field_url[]['value'] = $boinc_user->url;
312
-  $profile_node->field_background[]['value'] = $profile_background;
313
-  $profile_node->field_opinions[]['value'] = $profile_opinions;
314
-  $profile_node->field_image[] = $avatar_image;
315
-  $profile_node->field_profile_image[] = $profile_image;
316
-  
317
-  // Save the profile object to the database
318
-  // This will automatically set the author uid if node->name has been set
319
-  $profile_node = node_submit($profile_node);
320
-  node_save($profile_node);
321
-  
322
-  // Mark profile as approved if it has already been vetted somehow
323
-  if ($profile_approved OR !$boinc_user->has_profile) {
294
+    if (!$default_input_format) $default_input_format = 1;
295
+  
296
+    // Populate the profile object
297
+    $profile_node = new stdClass();
298
+    $profile_node->title = $boinc_user->name;
299
+    $profile_node->uid = $account->uid;
300
+    $profile_node->body = '';
301
+    $profile_node->type = 'profile'; 
302
+    $profile_node->created = $now;
303
+    $profile_node->changed = $now;
304
+    $profile_node->status = 1;
305
+    $profile_node->promote = 0;
306
+    $profile_node->sticky = 0;
307
+    $profile_node->format = $default_input_format;
308
+    $profile_node->name = $account->name; // Set to link profile to account uid!
309
+    $profile_node->field_country[]['value'] = $boinc_user->country;
310
+    $profile_node->field_zip[]['value'] = $boinc_user->postal_code;
311
+    $profile_node->field_url[]['value'] = $boinc_user->url;
312
+    $profile_node->field_background[]['value'] = $profile_background;
313
+    $profile_node->field_opinions[]['value'] = $profile_opinions;
314
+    $profile_node->field_image[] = $avatar_image;
315
+    $profile_node->field_profile_image[] = $profile_image;
316
+  
317
+    // Save the profile object to the database
318
+    // This will automatically set the author uid if node->name has been set
319
+    $profile_node = node_submit($profile_node);
320
+    node_save($profile_node);
321
+  
322
+    // Mark profile as approved if it has already been vetted somehow
323
+    if ($profile_approved OR !$boinc_user->has_profile) {
324 324
     $profile_node->moderate = 0;
325 325
     node_save($profile_node);
326
-  }
326
+    }
327 327
   
328
-  return;
328
+    return;
329 329
 }
330 330
 
331 331
 function boincuser_account_cross_reference($uid, $boinc_id) {
332 332
     // Cross reference Drupal account with BOINC
333 333
     $reference = db_query("INSERT INTO {boincuser} SET uid=%d, boinc_id=%d", $uid, $boinc_id);
334 334
     if (!$reference) {
335
-      drupal_set_message(t("Error connecting BOINC account."), 'error');
336
-      return false;
335
+        drupal_set_message(t("Error connecting BOINC account."), 'error');
336
+        return false;
337 337
     }
338 338
     return true;
339 339
 }
@@ -342,35 +342,35 @@  discard block
 block discarded – undo
342 342
  * Convert any BOINC forum thread subscriptions to Drupal flag subscriptions
343 343
  */
344 344
 function boincuser_pull_subscriptions($account = NULL) {
345
-  if (!$account) {
345
+    if (!$account) {
346 346
     global $user;
347 347
     $account = user_load($user->id);
348
-  }
349
-  elseif (is_numeric($account)) {
348
+    }
349
+    elseif (is_numeric($account)) {
350 350
     $account = user_load($account);
351
-  }
351
+    }
352 352
   
353
-  // Get any subscriptions for this user
354
-  db_set_active('boinc_rw');
355
-  $subscriptions = db_query('
353
+    // Get any subscriptions for this user
354
+    db_set_active('boinc_rw');
355
+    $subscriptions = db_query('
356 356
     SELECT threadid FROM {subscriptions}
357 357
     WHERE userid = %d', $account->boincuser_id);
358
-  db_set_active('default');
358
+    db_set_active('default');
359 359
   
360
-  $flag = flag_get_flag('subscriptions') or die('no "subscriptions" flag defined');
361
-  $count = 0;
362
-  while ($thread_id = db_result($subscriptions)) {
360
+    $flag = flag_get_flag('subscriptions') or die('no "subscriptions" flag defined');
361
+    $count = 0;
362
+    while ($thread_id = db_result($subscriptions)) {
363 363
     // For each BOINC thread ID subscribed, look up the corresponding node ID
364 364
     $nid = db_result(db_query('
365 365
       SELECT nid FROM {boincimport_temp_topic}
366 366
       WHERE topic_id = %d', $thread_id));
367 367
     // Flag this node for the user
368 368
     if ($nid > 0) {
369
-      $flag->flag('flag', $nid, $account);
370
-      $count++;
369
+        $flag->flag('flag', $nid, $account);
370
+        $count++;
371
+    }
371 372
     }
372
-  }
373
-  return $count;
373
+    return $count;
374 374
 }
375 375
 
376 376
 
@@ -382,12 +382,12 @@  discard block
 block discarded – undo
382 382
  * User account update validation handler.
383 383
  */
384 384
 function boincuser_account_validate($edit, $account) {
385
-  // Include BOINC database objects library, load BOINC account data
386
-  require_boinc('boinc_db');
387
-  $boinc_user = BoincUser::lookup_email_addr($account->mail);
388
-  $changing_email = ($edit['mail'] AND $edit['mail'] != $account->mail) ? true : false;
389
-  $changing_pass = ($edit['pass']) ? true : false;
390
-  if ($changing_email) {
385
+    // Include BOINC database objects library, load BOINC account data
386
+    require_boinc('boinc_db');
387
+    $boinc_user = BoincUser::lookup_email_addr($account->mail);
388
+    $changing_email = ($edit['mail'] AND $edit['mail'] != $account->mail) ? true : false;
389
+    $changing_pass = ($edit['pass']) ? true : false;
390
+    if ($changing_email) {
391 391
     // E-mail address is set to change; check for an existing BOINC user
392 392
     // Check previous email addresses as well, this user's current
393 393
     // email cannot be the same as another user's previous email
@@ -398,50 +398,50 @@  discard block
 block discarded – undo
398 398
 
399 399
     $boinc_user_already_exists = ( BoincUser::lookup_email_addr($edit['mail']) || BoincUser::lookup_prev_email_addr($edit['mail']) );
400 400
     if ($boinc_user_already_exists) {
401
-      form_set_error('mail', bts('A BOINC account already exists for @email.', array('@email' => $edit['mail']), NULL, 'boinc:add-new-user'));
401
+        form_set_error('mail', bts('A BOINC account already exists for @email.', array('@email' => $edit['mail']), NULL, 'boinc:add-new-user'));
402 402
     }
403 403
 
404 404
     // Check email has not been changed in last X days (default X=7).
405 405
     $duration = 86400 * 7;
406 406
     if ( (($boinc_user->email_addr_change_time + $duration) > time()) and (!(user_access('administer users'))) ) {
407
-      form_set_error('email_addr_change_time',
407
+        form_set_error('email_addr_change_time',
408 408
         bts('Your email address was changed within the past seven (7) days. You must wait until !futuredate to change your email again. If you need to reverse this change, please look for an email sent to !prev_email_addr.',
409 409
         array(
410
-          '!futuredate' => date('F j, Y \a\t H:i T', $boinc_user->email_addr_change_time + $duration),
411
-          '!prev_email_addr' => $boinc_user->previous_email_addr,
410
+            '!futuredate' => date('F j, Y \a\t H:i T', $boinc_user->email_addr_change_time + $duration),
411
+            '!prev_email_addr' => $boinc_user->previous_email_addr,
412 412
         ),
413 413
         NULL, 'boinc:account-credentials-change')
414
-      );
414
+        );
415
+    }
415 416
     }
416
-  }
417 417
 
418
-  // If user is changing email or password, require that the current
419
-  // password has been given as well.
420
-  if (($changing_email OR $changing_pass) AND !user_access('administer users')) {
418
+    // If user is changing email or password, require that the current
419
+    // password has been given as well.
420
+    if (($changing_email OR $changing_pass) AND !user_access('administer users')) {
421 421
     // If changing email or password, require current password
422 422
     // (except in cases where password is being reset)
423 423
     if (isset($_SESSION['reset_pass'])) {
424
-      unset($_SESSION['reset_pass']);
424
+        unset($_SESSION['reset_pass']);
425 425
     }
426 426
     else {
427
-      $given_hash = md5($edit['current_pass'] . strtolower($account->mail));
428
-      if (!$edit['current_pass']) {
427
+        $given_hash = md5($edit['current_pass'] . strtolower($account->mail));
428
+        if (!$edit['current_pass']) {
429 429
         form_set_error('current_pass', bts('Authentication is required when changing E-mail address or setting new password.', array(), NULL, 'boinc:account-credentials-change'));
430
-      }
431
-      elseif ( (!password_verify($given_hash, $boinc_user->passwd_hash)) and ($given_hash != $boinc_user->passwd_hash) ) {
430
+        }
431
+        elseif ( (!password_verify($given_hash, $boinc_user->passwd_hash)) and ($given_hash != $boinc_user->passwd_hash) ) {
432 432
         form_set_error('current_pass', bts('Password entered is not valid. Please verify that it is correct.', array(), NULL, 'boinc:account-credentials-change'));
433
-      }
433
+        }
434 434
 
435 435
     }
436
-  }
436
+    }
437 437
 
438
-  // If an admin tries to change the email and NOT the password, show
439
-  // error message. BOINC requires both to be changed together.
440
-  if ($changing_email AND !$changing_pass AND user_access('administer users')) {
438
+    // If an admin tries to change the email and NOT the password, show
439
+    // error message. BOINC requires both to be changed together.
440
+    if ($changing_email AND !$changing_pass AND user_access('administer users')) {
441 441
     form_set_error('pass', bts('If changing a user\'s email, you must also change the password simultaneously.', array(), NULL, 'boinc:account-credentials-change'));
442
-  }
442
+    }
443 443
   
444
-  // Expansion required to allow account key in place of passwd...?
444
+    // Expansion required to allow account key in place of passwd...?
445 445
   
446 446
 }
447 447
 
@@ -454,12 +454,12 @@  discard block
 block discarded – undo
454 454
  * Password request validation handler.
455 455
  */
456 456
 function boincuser_request_pass_validate($form, &$form_state) {
457
-  $edit = $form_state['values'];
458
-  // The Drupal submit function expects a "name" field, even though
459
-  // it contains an email address and we will not allow a user name
460
-  if (!$edit['name']) form_set_error('name', bts('Please enter your email address', array(), NULL, 'boinc:forgot-password'));
461
-  elseif (!valid_email_address($edit['name'])) form_set_error('name', bts('@email is not a well formed email address, please verify', array('@email' => $edit['name']), NULL, 'boinc:forgot-password'));
462
-  else {
457
+    $edit = $form_state['values'];
458
+    // The Drupal submit function expects a "name" field, even though
459
+    // it contains an email address and we will not allow a user name
460
+    if (!$edit['name']) form_set_error('name', bts('Please enter your email address', array(), NULL, 'boinc:forgot-password'));
461
+    elseif (!valid_email_address($edit['name'])) form_set_error('name', bts('@email is not a well formed email address, please verify', array('@email' => $edit['name']), NULL, 'boinc:forgot-password'));
462
+    else {
463 463
     // set email addrress to lower case
464 464
     $lower_email_addr = strtolower($edit['name']);
465 465
 
@@ -469,110 +469,110 @@  discard block
 block discarded – undo
469 469
     require_boinc('boinc_db');
470 470
     $boinc_user = BoincUser::lookup_email_addr($lower_email_addr);
471 471
     if ($boinc_user) {
472
-      // If the user is in BOINC but not Drupal, bring them over...
473
-      boincuser_register_make_drupal_user($boinc_user);
472
+        // If the user is in BOINC but not Drupal, bring them over...
473
+        boincuser_register_make_drupal_user($boinc_user);
474 474
     } else {
475
-      // If there is no existing BOINC user either, show an error
476
-      form_set_error('name', bts('No account exists for @email -- please create an account using a BOINC client -- !instructions',
477
-      array(
478
-          '@email' => $edit['name'],
479
-          '!instructions' => l(bts('Instructions', array(), NULL, 'boinc:forgot-password'), 'join')
480
-      ), NULL, 'boinc:forgot-password'));
481
-    }
482
-  }
475
+        // If there is no existing BOINC user either, show an error
476
+        form_set_error('name', bts('No account exists for @email -- please create an account using a BOINC client -- !instructions',
477
+        array(
478
+            '@email' => $edit['name'],
479
+            '!instructions' => l(bts('Instructions', array(), NULL, 'boinc:forgot-password'), 'join')
480
+        ), NULL, 'boinc:forgot-password'));
481
+    }
482
+    }
483 483
 }
484 484
 
485 485
 /**
486 486
  * The definition of the authenticator login form.
487 487
  */
488 488
 function boincuser_authloginform() {
489
-  $headers = apache_request_headers();
490
-  $project_name = variable_get('site_name', 'Drupal-BOINC');
491
-  $project_domain = $headers['Host'];
492
-  $form['heading'] = array(
489
+    $headers = apache_request_headers();
490
+    $project_name = variable_get('site_name', 'Drupal-BOINC');
491
+    $project_domain = $headers['Host'];
492
+    $form['heading'] = array(
493 493
     '#type' => 'markup',
494 494
     '#value' => '<h3>' . bts("If you forgot your account's email address, or you can't receive email there:", array(), NULL, 'boinc:authenticator-login-page') . '</h3>'
495
-  );
496
-  $form['instructions'] = array(
495
+    );
496
+    $form['instructions'] = array(
497 497
     '#type' => 'markup',
498 498
     '#value' => '' .
499
-      '<p>' . bts("If you have run BOINC under the account, you can still access it. Here's how:", array(), NULL, 'boinc:authenticator-login-page') .
500
-      '  <ul>' .
501
-      '    <li>' . bts('Go to the BOINC data directory on your computer (see !boinc_wiki for help finding this).', array('!boinc_wiki' => l(bts('BOINC documentation', array(), NULL, 'boinc:authenticator-login-page'), 'http://boinc.berkeley.edu/wiki/BOINC_Data_directory')), NULL, 'boinc:authenticator-login-page') . '</li>' .
502
-      '    <li>' . bts('Find your account file for this project; it will have a name like %file (where the project URL is %url).', array('%file' => "account_{$project_domain}.xml", '%url' => "http://{$project_domain}"), NULL, 'boinc:authenticator-login-page') . '</li>' .
503
-      '    <li>' . bts("Open the file in a text editor like Notepad. You'll see something like:", array(), NULL, 'boinc:authenticator-login-page') .
504
-      '      <pre>' .
505
-      '&lt;account&gt;' . "\n" .
506
-      "  &lt;master_url&gt;http://{$project_domain}/&lt;/master_url&gt;" . "\n" .
507
-      '  &lt;authenticator&gt;8b8496fdd26df7dc0423ecd43c09a56b&lt;/authenticator&gt;' . "\n" .
508
-      "  &lt;project_name&gt;{$project_name}&lt;/project_name&gt;" . "\n" .
509
-      '  ...' . "\n" .
510
-      '&lt;/account&gt;' .
511
-      '      </pre>' .
512
-      '    </li>' .
513
-      '    <li>' . bts('Select and Copy the string between &lt;authenticator&gt; and &lt;/authenticator&gt; (%auth in the above example).', array('%auth' => '8b8496fdd26df7dc0423ecd43c09a56b'), NULL, 'boinc:authenticator-login-page') . '</li>' .
514
-      '    <li>' . bts('Paste the string into the field below, and click OK.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' .
515
-      '    <li>' . bts('You will now be logged in to your account; update the email and password of your account.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' .
516
-      '  </ul>' .
517
-      '</p>'
518
-  );
519
-  $form['authenticator'] = array(
499
+        '<p>' . bts("If you have run BOINC under the account, you can still access it. Here's how:", array(), NULL, 'boinc:authenticator-login-page') .
500
+        '  <ul>' .
501
+        '    <li>' . bts('Go to the BOINC data directory on your computer (see !boinc_wiki for help finding this).', array('!boinc_wiki' => l(bts('BOINC documentation', array(), NULL, 'boinc:authenticator-login-page'), 'http://boinc.berkeley.edu/wiki/BOINC_Data_directory')), NULL, 'boinc:authenticator-login-page') . '</li>' .
502
+        '    <li>' . bts('Find your account file for this project; it will have a name like %file (where the project URL is %url).', array('%file' => "account_{$project_domain}.xml", '%url' => "http://{$project_domain}"), NULL, 'boinc:authenticator-login-page') . '</li>' .
503
+        '    <li>' . bts("Open the file in a text editor like Notepad. You'll see something like:", array(), NULL, 'boinc:authenticator-login-page') .
504
+        '      <pre>' .
505
+        '&lt;account&gt;' . "\n" .
506
+        "  &lt;master_url&gt;http://{$project_domain}/&lt;/master_url&gt;" . "\n" .
507
+        '  &lt;authenticator&gt;8b8496fdd26df7dc0423ecd43c09a56b&lt;/authenticator&gt;' . "\n" .
508
+        "  &lt;project_name&gt;{$project_name}&lt;/project_name&gt;" . "\n" .
509
+        '  ...' . "\n" .
510
+        '&lt;/account&gt;' .
511
+        '      </pre>' .
512
+        '    </li>' .
513
+        '    <li>' . bts('Select and Copy the string between &lt;authenticator&gt; and &lt;/authenticator&gt; (%auth in the above example).', array('%auth' => '8b8496fdd26df7dc0423ecd43c09a56b'), NULL, 'boinc:authenticator-login-page') . '</li>' .
514
+        '    <li>' . bts('Paste the string into the field below, and click OK.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' .
515
+        '    <li>' . bts('You will now be logged in to your account; update the email and password of your account.', array(), NULL, 'boinc:authenticator-login-page') . '</li>' .
516
+        '  </ul>' .
517
+        '</p>'
518
+    );
519
+    $form['authenticator'] = array(
520 520
     '#title' => bts('Log in with authenticator', array(), NULL, 'boinc:authenticator-login-page'),
521 521
     '#type' => 'textfield',
522 522
     '#size' => 60,
523 523
     '#maxlength' => 32,
524 524
     '#required' => TRUE,
525 525
     '#description' => null
526
-  );
526
+    );
527 527
   
528
-  // Form control
529
-  $form['form control tabs prefix'] = array(
528
+    // Form control
529
+    $form['form control tabs prefix'] = array(
530 530
     '#value' => '<ul class="form-control tab-list">',
531 531
     '#weight' => 1001,
532
-  );
533
-  $form['submit'] = array(
532
+    );
533
+    $form['submit'] = array(
534 534
     '#prefix' => '<li class="first tab">',
535 535
     '#type' => 'submit',
536 536
     '#value' => bts('OK', array(), NULL, 'boinc:form-ok'),
537 537
     '#suffix' => '</li>',
538 538
     '#weight' => 1002,
539
-  );
540
-  $form['form control tabs'] = array(
539
+    );
540
+    $form['form control tabs'] = array(
541 541
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/password') . '</li>',
542 542
     '#weight' => 1003,
543
-  );
544
-  $form['form control tabs suffix'] = array(
543
+    );
544
+    $form['form control tabs suffix'] = array(
545 545
     '#value' => '</ul>',
546 546
     '#weight' => 1004,
547
-  );
548
-  return $form;
547
+    );
548
+    return $form;
549 549
 }
550 550
 
551 551
 /**
552 552
  * The authenticator login validation handler
553 553
  */
554 554
 function boincuser_authloginform_validate($form, &$form_state) {
555
-  $authenticator = $form_state['values']['authenticator'];
556
-  if (strlen($authenticator) != 32) {
555
+    $authenticator = $form_state['values']['authenticator'];
556
+    if (strlen($authenticator) != 32) {
557 557
     // We notify the form API that this field has failed validation.
558 558
     form_set_error('authenticator', bts('That authenticator is not valid.', array(), NULL, 'boinc:authenticator-login-page'));
559
-  } else {
559
+    } else {
560 560
     require_boinc('boinc_db');
561 561
     $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'");
562 562
     if (!$boinc_user) form_set_error('authenticator', bts('There is no account with that authenticator.', array(), NULL, 'boinc:authenticator-login-page'));
563
-  }
563
+    }
564 564
 }
565 565
 
566 566
 /**
567 567
  * The authenticator login submit handler
568 568
  */
569 569
 function boincuser_authloginform_submit($form, &$form_state) {
570
-  global $user;
571
-  $authenticator = $form_state['values']['authenticator'];
572
-  require_boinc('boinc_db');
573
-  $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'");
574
-  if (!$user = user_load(get_drupal_id($boinc_user->id))) drupal_set_message(t('An unresolved error occurred while logging into this account.'));
575
-  else $form_state['redirect'] = 'account/info/edit';
570
+    global $user;
571
+    $authenticator = $form_state['values']['authenticator'];
572
+    require_boinc('boinc_db');
573
+    $boinc_user = BoincUser::lookup("authenticator='".addslashes($authenticator)."'");
574
+    if (!$user = user_load(get_drupal_id($boinc_user->id))) drupal_set_message(t('An unresolved error occurred while logging into this account.'));
575
+    else $form_state['redirect'] = 'account/info/edit';
576 576
 }
577 577
 
578 578
 
@@ -580,44 +580,44 @@  discard block
 block discarded – undo
580 580
  * The definition of the moderator reject user profile form.
581 581
  */
582 582
 function boincuser_moderate_profile_reject_form(&$form_state, $uid) {
583
-  $form_state['storage']['reject_profile_uid'] = $uid;
584
-  $form['reason'] = array(
583
+    $form_state['storage']['reject_profile_uid'] = $uid;
584
+    $form['reason'] = array(
585 585
     '#title' => bts('Reason for rejecting this profile', array(), NULL, 'boinc:moderate-user'),
586 586
     '#type' => 'textarea',
587 587
     '#description' => bts('This reason will be included in an email to the user. Please write a brief explanation of the problem and how to fix it.', array(), NULL, 'boinc:moderate-user'),
588 588
     '#default_value' => '',
589
-  );
589
+    );
590 590
   
591
-  // Form control
592
-  $form['form control tabs prefix'] = array(
591
+    // Form control
592
+    $form['form control tabs prefix'] = array(
593 593
     '#value' => '<ul class="form-control tab-list">',
594 594
     '#weight' => 1001,
595
-  );
596
-  $form['submit'] = array(
595
+    );
596
+    $form['submit'] = array(
597 597
     '#prefix' => '<li class="first tab">',
598 598
     '#type' => 'submit',
599 599
     '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'),
600 600
     '#suffix' => '</li>',
601 601
     '#weight' => 1002,
602
-  );
603
-  $form['form control tabs'] = array(
602
+    );
603
+    $form['form control tabs'] = array(
604 604
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/{$uid}") . '</li>',
605 605
     '#weight' => 1003,
606
-  );
607
-  $form['form control tabs suffix'] = array(
606
+    );
607
+    $form['form control tabs suffix'] = array(
608 608
     '#value' => '</ul>',
609 609
     '#weight' => 1004,
610
-  );
611
-  return $form;
610
+    );
611
+    return $form;
612 612
 }
613 613
 
614 614
 /**
615 615
  * The moderator reject user profile submit handler
616 616
  */
617 617
 function boincuser_moderate_profile_reject_form_submit($form, &$form_state) {
618
-  $uid = $form_state['storage']['reject_profile_uid'];
619
-  $reason = $form_state['values']['reason'];
620
-  boincuser_moderate_profile_reject($uid, $reason);
618
+    $uid = $form_state['storage']['reject_profile_uid'];
619
+    $reason = $form_state['values']['reason'];
620
+    boincuser_moderate_profile_reject($uid, $reason);
621 621
 }
622 622
 
623 623
 
@@ -625,52 +625,52 @@  discard block
 block discarded – undo
625 625
  * The definition of the ban user form.
626 626
  */
627 627
 function boincuser_moderate_user_ban_form(&$form_state, $uid) {
628
-  $form_state['storage']['ban_user_uid'] = $uid;
629
-  $form['reason'] = array(
628
+    $form_state['storage']['ban_user_uid'] = $uid;
629
+    $form['reason'] = array(
630 630
     '#title' => bts('Reason for banning this user', array(), NULL, 'boinc:moderate-user'),
631 631
     '#type' => 'textarea',
632 632
     '#description' => bts('This reason will be included in an email to the user. Please write a brief explanation of why the user is being banned.', array(), NULL, 'boinc:moderate-user'),
633 633
     '#default_value' => '',
634
-  );
635
-  $form['duration'] = array(
634
+    );
635
+    $form['duration'] = array(
636 636
     '#title' => bts('Duration of the ban', array(), NULL, 'boinc:moderate-user'),
637 637
     '#type' => 'textfield',
638 638
     '#description' => bts('The number of days until the ban expires. Set to 0 to ban permanently.', array(), NULL, 'boinc:moderate-user'),
639 639
     '#default_value' => '',
640
-  );
640
+    );
641 641
   
642
-  // Form control
643
-  $form['form control tabs prefix'] = array(
642
+    // Form control
643
+    $form['form control tabs prefix'] = array(
644 644
     '#value' => '<ul class="form-control tab-list">',
645 645
     '#weight' => 1001,
646
-  );
647
-  $form['submit'] = array(
646
+    );
647
+    $form['submit'] = array(
648 648
     '#prefix' => '<li class="first tab">',
649 649
     '#type' => 'submit',
650 650
     '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'),
651 651
     '#suffix' => '</li>',
652 652
     '#weight' => 1002,
653
-  );
654
-  $form['form control tabs'] = array(
653
+    );
654
+    $form['form control tabs'] = array(
655 655
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/{$uid}") . '</li>',
656 656
     '#weight' => 1003,
657
-  );
658
-  $form['form control tabs suffix'] = array(
657
+    );
658
+    $form['form control tabs suffix'] = array(
659 659
     '#value' => '</ul>',
660 660
     '#weight' => 1004,
661
-  );
662
-  return $form;
661
+    );
662
+    return $form;
663 663
 }
664 664
 
665 665
 /**
666 666
  * The ban user submit handler
667 667
  */
668 668
 function boincuser_moderate_user_ban_form_submit($form, &$form_state) {
669
-  $uid = $form_state['storage']['ban_user_uid'];
670
-  $reason = $form_state['values']['reason'];
671
-  $duration = $form_state['values']['duration'];
672
-  if ($duration) $duration = $duration * 24*60*60;
673
-  boincuser_moderate_user_ban($uid, $reason, $duration);
669
+    $uid = $form_state['storage']['ban_user_uid'];
670
+    $reason = $form_state['values']['reason'];
671
+    $duration = $form_state['values']['duration'];
672
+    if ($duration) $duration = $duration * 24*60*60;
673
+    boincuser_moderate_user_ban($uid, $reason, $duration);
674 674
 }
675 675
 
676 676
 
@@ -678,10 +678,10 @@  discard block
 block discarded – undo
678 678
  * Hack to fix submission of the flag friend unfriend form
679 679
  */
680 680
 function boincuser_fix_unfriend_form_submit($form, &$form_state) {
681
-  // Leaving action as "unfriend" causes problems
682
-  if ($form_state['values']['action'] == 'unfriend') {
681
+    // Leaving action as "unfriend" causes problems
682
+    if ($form_state['values']['action'] == 'unfriend') {
683 683
     $form_state['values']['action'] = 'unflag';
684
-  }
684
+    }
685 685
 }
686 686
 
687 687
 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
@@ -689,102 +689,102 @@  discard block
 block discarded – undo
689 689
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
690 690
 
691 691
 function boincuser_termsofuse_form() {
692
-  global $user;
692
+    global $user;
693 693
 
694
-  // If user has already signed terms of use, and got to this form in error, send them to site home.
695
-  if (boincuser_check_termsofuse($user)) {
694
+    // If user has already signed terms of use, and got to this form in error, send them to site home.
695
+    if (boincuser_check_termsofuse($user)) {
696 696
     drupal_goto();
697
-  }
697
+    }
698 698
 
699
-  drupal_set_message( bts('WARNING: You have not agreed to our terms of use. Please agree to the terms of use before continuing.', array(), NULL, 'boinc:termsofuse-form'), 'warning' );
699
+    drupal_set_message( bts('WARNING: You have not agreed to our terms of use. Please agree to the terms of use before continuing.', array(), NULL, 'boinc:termsofuse-form'), 'warning' );
700 700
 
701
-  $form = array();
702
-  drupal_add_js(drupal_get_path('module', 'boincuser') . '/boincuser.js');
703
-  $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
701
+    $form = array();
702
+    drupal_add_js(drupal_get_path('module', 'boincuser') . '/boincuser.js');
703
+    $termsofuse = variable_get('boinc_weboptions_termsofuse', '');
704 704
 
705
-  // Fieldset to hold all of the form as a container
706
-  $form['termsofuse'] = array(
705
+    // Fieldset to hold all of the form as a container
706
+    $form['termsofuse'] = array(
707 707
     '#type'   => 'fieldset',
708 708
     '#prefix' => '<div id="termsofuse-wrapper">', // This is our wrapper div.
709 709
     '#suffix' => '</div>',
710 710
     '#tree'   => TRUE,
711
-  );
711
+    );
712 712
 
713
-  $form['termsofuse']['title1'] = array(
713
+    $form['termsofuse']['title1'] = array(
714 714
     '#weight' => -12,
715 715
     '#value' => '<h2>' . bts( variable_get('boinc_weboptions_registrationtitle', 'Please read and acknowledge our terms of use'), array(), NULL, 'project:termsofuse-form' ) . '</h2>',
716 716
     '#prefix' => '<div id="register-title1">',
717 717
     '#suffix' => '</div>',
718
-  );
718
+    );
719 719
 
720
-  // Terms of use section
721
-  $form['termsofuse']['body'] = array(
720
+    // Terms of use section
721
+    $form['termsofuse']['body'] = array(
722 722
     '#weight' => -10,
723 723
     '#value' => bts($termsofuse, array(), NULL, 'project:termsofuse-form'),
724 724
     '#prefix' => '<div id="register-termsofuse">',
725 725
     '#suffix' => '</div>',
726
-  );
726
+    );
727 727
 
728
-  $form['termsofuse']['agreeTOU'] = array(
728
+    $form['termsofuse']['agreeTOU'] = array(
729 729
     '#type'   => 'checkbox',
730 730
     '#title'  => bts(variable_get('boinc_weboptions_agreequestion', 'Do you agree with the above terms of use?'), array(), NULL, 'project:termsofuse-form'),
731 731
     '#weight' => -8,
732 732
     '#prefix' => '<div id="register-checkbox">',
733 733
     '#suffix' => '</div>',
734
-  );
734
+    );
735 735
 
736
-  $form['termsofuse']['spacer'] = array(
736
+    $form['termsofuse']['spacer'] = array(
737 737
     '#prefix' => '<div class="clearfix" id="register-title2">',
738 738
     '#value'  => '&nbsp;',
739 739
     '#suffix' => '</div>',
740
-  );
740
+    );
741 741
 
742
-  // Form Control
743
-  $form['submit'] = array(
742
+    // Form Control
743
+    $form['submit'] = array(
744 744
     '#prefix' => '<p><p><p><li class="first tab" id="register-submit">',
745 745
     '#type' => 'submit',
746 746
     '#value' => bts('Yes', array(), NULL, 'boinc:form-submit'),
747 747
     '#suffix' => '</li>',
748
-  );
749
-  $form['form control tabs'] = array(
748
+    );
749
+    $form['form control tabs'] = array(
750 750
     '#value' => '<li class="tab">' . l(bts('NO - LOGOUT', array(), NULL, 'boinc:form-cancel'), '/logout') . '</li>',
751
-  );
752
-  if (module_exists('boincuser_delete')) {
751
+    );
752
+    if (module_exists('boincuser_delete')) {
753 753
     $deletelink = '/user/' . $user->uid . '/delete';
754 754
     $form['deleteaccount'] = array(
755
-      '#value' => '<li class="tab">' . l(bts('NO - DELETE ACCOUNT', array(), NULL, 'boinc:form-delete-user'), $deletelink) . '</li>',
755
+        '#value' => '<li class="tab">' . l(bts('NO - DELETE ACCOUNT', array(), NULL, 'boinc:form-delete-user'), $deletelink) . '</li>',
756 756
     );
757
-  }
757
+    }
758 758
 
759
-  // Set form redirect
760
-  $form['#redirect'] = $_REQUEST['destination'];
759
+    // Set form redirect
760
+    $form['#redirect'] = $_REQUEST['destination'];
761 761
 
762
-  // Add the current user's data into the form
763
-  $form['#account'] = $user;
762
+    // Add the current user's data into the form
763
+    $form['#account'] = $user;
764 764
 
765
-  return $form;
765
+    return $form;
766 766
 }
767 767
 
768 768
 function boincuser_termsofuse_form_validate($form, &$form_state) {
769
-  // Check TOU agreement
770
-  if (!$form_state['values']['termsofuse']['agreeTOU']) {
769
+    // Check TOU agreement
770
+    if (!$form_state['values']['termsofuse']['agreeTOU']) {
771 771
     form_set_error('termsofuse', bts('ERROR: You must acknowledge our terms of use by clicking the checkbox before registering for an account.', array(), NULL, 'boinc:termsofuse-form'));
772
-  }
772
+    }
773 773
 }
774 774
 
775 775
 function boincuser_termsofuse_form_submit($form, &$form_state) {
776
-  $user = $form['#account'];
777
-  if (!boincuser_consentto_termsofuse($user)) {
776
+    $user = $form['#account'];
777
+    if (!boincuser_consentto_termsofuse($user)) {
778 778
     form_set_error('termsofuse',
779
-      bts('There was an error in agreeing to the terms of use. The @project administrators have been notified.',
779
+        bts('There was an error in agreeing to the terms of use. The @project administrators have been notified.',
780 780
         array('@project' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:termsofuse-form')
781 781
     );
782
-  }
782
+    }
783 783
 
784
-  // Delete session messages
785
-  if ($_SESSION['messages']['warning']) {
784
+    // Delete session messages
785
+    if ($_SESSION['messages']['warning']) {
786 786
     unset($_SESSION['messages']['warning']);
787
-  }
787
+    }
788 788
 }
789 789
 
790 790
 /**
@@ -793,89 +793,89 @@  discard block
 block discarded – undo
793 793
  * removed after used.
794 794
  */
795 795
 function boincuser_revertemail(&$form_state, $token) {
796
-  require_boinc('token');
797
-  require_boinc('util');
796
+    require_boinc('token');
797
+    require_boinc('util');
798 798
 
799
-  global $user;
800
-  $form = array();
799
+    global $user;
800
+    $form = array();
801 801
 
802
-  // drupal JS for dynamic password validation
803
-  _user_password_dynamic_validation();
802
+    // drupal JS for dynamic password validation
803
+    _user_password_dynamic_validation();
804 804
 
805
-  // check BOINC user exists
806
-  $account = user_load(array('uid' => $user->uid));
807
-  $uid = $user->uid;
808
-  $boincid = $account->boincuser_id;
809
-  // check $token is valid
810
-  if (!is_valid_token($boincid, $token, 'E')) {
805
+    // check BOINC user exists
806
+    $account = user_load(array('uid' => $user->uid));
807
+    $uid = $user->uid;
808
+    $boincid = $account->boincuser_id;
809
+    // check $token is valid
810
+    if (!is_valid_token($boincid, $token, 'E')) {
811 811
     drupal_set_message(bts('ERROR: You have supplied an incorrect (most likely expired) token. Please obtain a new token by !link your email address.',
812 812
     array(
813
-      '!link' => l(bts('changing', array(), NULL, 'boinc:revert-email-change'), "/account/info/edit"),
813
+        '!link' => l(bts('changing', array(), NULL, 'boinc:revert-email-change'), "/account/info/edit"),
814 814
     ),
815 815
     NULL, 'boinc:revert-email-change'), 'error');
816 816
     drupal_goto();
817
-  }
817
+    }
818 818
 
819
-  // Attach account and token to this form.
820
-  $form['_account'] = array('#type' => 'value', '#value' => $account);
821
-  $form['_token'] = array('#type' => 'value', '#value' => $token);
819
+    // Attach account and token to this form.
820
+    $form['_account'] = array('#type' => 'value', '#value' => $account);
821
+    $form['_token'] = array('#type' => 'value', '#value' => $token);
822 822
 
823
-  // Instructions
824
-  $form['main']['instructions1'] = array(
823
+    // Instructions
824
+    $form['main']['instructions1'] = array(
825 825
     '#value' => '<p>'.
826 826
     bts('In order to change your email back to your previous email address, <strong>!prev_email</strong>, you must also change your password.',
827
-      array(
827
+        array(
828 828
         '!prev_email' => $account->boincuser_previous_email_addr,
829
-      ),
830
-      NULL, 'boinc:revert-email-change').
829
+        ),
830
+        NULL, 'boinc:revert-email-change').
831 831
     '</p>',
832
-  );
832
+    );
833 833
 
834
-  $form['main']['pass'] = array(
834
+    $form['main']['pass'] = array(
835 835
     '#type' => 'password_confirm',
836 836
     '#description' => 'Enter a new password in both fields',
837 837
     '#size' => 17,
838
-  );
839
-
840
-  // Wrap action buttons for styling consistency
841
-  $form['buttons']['form control tabs prefix'] = array(
842
-      '#value' => '<ul class="form-control tab-list">',
843
-      '#weight' => 1001,
844
-  );
845
-  $form['buttons']['submit']['#type'] = 'submit';
846
-  $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
847
-  $form['buttons']['submit']['#value'] = bts('Submit', array(), NULL, 'boinc:form-submit');
848
-  $form['buttons']['submit']['#suffix'] = '</li>';
849
-  $form['buttons']['submit']['#weight'] = 1002;
850
-  $form['buttons']['cancel'] = array(
851
-      '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/info/edit') . '</li>',
852
-      '#weight' => 1005,
853
-  );
854
-  $form['buttons']['form control tabs suffix'] = array(
855
-      '#value' => '</ul>',
856
-      '#weight' => 1010,
857
-  );
858
-
859
-  return $form;
838
+    );
839
+
840
+    // Wrap action buttons for styling consistency
841
+    $form['buttons']['form control tabs prefix'] = array(
842
+        '#value' => '<ul class="form-control tab-list">',
843
+        '#weight' => 1001,
844
+    );
845
+    $form['buttons']['submit']['#type'] = 'submit';
846
+    $form['buttons']['submit']['#prefix'] = '<li class="first tab">';
847
+    $form['buttons']['submit']['#value'] = bts('Submit', array(), NULL, 'boinc:form-submit');
848
+    $form['buttons']['submit']['#suffix'] = '</li>';
849
+    $form['buttons']['submit']['#weight'] = 1002;
850
+    $form['buttons']['cancel'] = array(
851
+        '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'user/info/edit') . '</li>',
852
+        '#weight' => 1005,
853
+    );
854
+    $form['buttons']['form control tabs suffix'] = array(
855
+        '#value' => '</ul>',
856
+        '#weight' => 1010,
857
+    );
858
+
859
+    return $form;
860 860
 }
861 861
 
862 862
 /**
863 863
  * Validation handler for revertemail form
864 864
  */
865 865
 function boincuser_revertemail_validate($form, &$form_state) {
866
-  // Load account and boincuser
867
-  $account = $form_state['values']['_account'];
868
-  $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id);
866
+    // Load account and boincuser
867
+    $account = $form_state['values']['_account'];
868
+    $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id);
869 869
 
870
-  if (BoincUser::lookup_email_addr($boinc_user->previous_email_addr)) {
870
+    if (BoincUser::lookup_email_addr($boinc_user->previous_email_addr)) {
871 871
     rules_invoke_event('boincuser_revert_email_error', $boinc_user->previous_email_addr, variable_get('boinc_admin_mailing_list_subject_tag', ''));
872 872
     form_set_error('mail',
873
-      bts('An account already exists for @email. Previous email address cannot be used because another account is using it as their email address. The @project administrators have been notified.',
873
+        bts('An account already exists for @email. Previous email address cannot be used because another account is using it as their email address. The @project administrators have been notified.',
874 874
         array(
875
-          '@email' => $boinc_user->previous_email_addr,
876
-          '@project' => variable_get('site_name', 'Drupal-BOINC'),
875
+            '@email' => $boinc_user->previous_email_addr,
876
+            '@project' => variable_get('site_name', 'Drupal-BOINC'),
877 877
         ), NULL, 'boinc:add-new-user'));
878
-  }
878
+    }
879 879
 
880 880
 }
881 881
 
@@ -883,25 +883,25 @@  discard block
 block discarded – undo
883 883
  * Submit handler for revertemail form
884 884
  */
885 885
 function boincuser_revertemail_submit($form, &$form_state) {
886
-  require_boinc('password_compat/password');
886
+    require_boinc('password_compat/password');
887 887
 
888
-  // Load account and boincuser
889
-  $account = $form_state['values']['_account'];
890
-  $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id);
888
+    // Load account and boincuser
889
+    $account = $form_state['values']['_account'];
890
+    $boinc_user = BoincUser::lookup_id_nocache($account->boincuser_id);
891 891
 
892
-  $pem = strtolower($boinc_user->previous_email_addr);
892
+    $pem = strtolower($boinc_user->previous_email_addr);
893 893
 
894
-  // Set new password based on previous email address and entered
895
-  // password.
896
-  $new_passwd_hash = password_hash( md5($form_state['values']['pass'].$pem), PASSWORD_DEFAULT);
894
+    // Set new password based on previous email address and entered
895
+    // password.
896
+    $new_passwd_hash = password_hash( md5($form_state['values']['pass'].$pem), PASSWORD_DEFAULT);
897 897
 
898
-  $boinc_user->update("email_addr='${pem}', previous_email_addr='', email_addr_change_time=0, passwd_hash='${new_passwd_hash}'");
898
+    $boinc_user->update("email_addr='${pem}', previous_email_addr='', email_addr_change_time=0, passwd_hash='${new_passwd_hash}'");
899 899
 
900
-  // Set email in drupal database to previous email
901
-  user_save($account, array('mail' => $pem));
900
+    // Set email in drupal database to previous email
901
+    user_save($account, array('mail' => $pem));
902 902
 
903
-  // delete the token
904
-  $result = delete_token($account->boincuser_id, $form_state['values']['_token'], 'E');
903
+    // delete the token
904
+    $result = delete_token($account->boincuser_id, $form_state['values']['_token'], 'E');
905 905
 
906
-  drupal_goto('account');
906
+    drupal_goto('account');
907 907
 }
Please login to merge, or discard this patch.
drupal/sites/default/boinc/modules/boincuser/includes/boincuser.rules.inc 1 patch
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -16,59 +16,59 @@
 block discarded – undo
16 16
  */
17 17
 
18 18
 function boincuser_rules_event_info() {
19
-  return array(
19
+    return array(
20 20
     'boincuser_change_email_error' => array(
21
-      'label' => bts('Error from user changing e-mail address.', array(), NULL, 'boinc:rule-event'),
22
-      'module' => 'Boincuser',
23
-      'arguments' => rules_events_hook_boincuser_chemail_arguments(),
21
+        'label' => bts('Error from user changing e-mail address.', array(), NULL, 'boinc:rule-event'),
22
+        'module' => 'Boincuser',
23
+        'arguments' => rules_events_hook_boincuser_chemail_arguments(),
24 24
     ),
25 25
     'boincuser_revert_email_error' => array(
26
-      'label' => bts('Error from user reverting to previous e-mail address.', array(), NULL, 'boinc:rule-event'),
27
-      'module' => 'Boincuser',
28
-      'arguments' => rules_events_hook_boincuser_chemail_arguments(),
26
+        'label' => bts('Error from user reverting to previous e-mail address.', array(), NULL, 'boinc:rule-event'),
27
+        'module' => 'Boincuser',
28
+        'arguments' => rules_events_hook_boincuser_chemail_arguments(),
29 29
     ),
30 30
     'boincuser_general_consent_error' => array(
31
-      'label' => bts('Error from user consenting to terms-of-use.', array(), NULL, 'boinc:rule-event'),
32
-      'module' => 'Boincuser',
33
-      'arguments' => rules_events_hook_boincuser_adminnotify_argument(),
31
+        'label' => bts('Error from user consenting to terms-of-use.', array(), NULL, 'boinc:rule-event'),
32
+        'module' => 'Boincuser',
33
+        'arguments' => rules_events_hook_boincuser_adminnotify_argument(),
34 34
     ),
35 35
     'boincuser_general_consent_type_error' => array(
36
-      'label' => bts('Error dealing with missing consent type.', array(), NULL, 'boinc:rule-event'),
37
-      'module' => 'Boincuser',
38
-      'arguments' => rules_events_hook_boincuser_consenttype_argument(),
36
+        'label' => bts('Error dealing with missing consent type.', array(), NULL, 'boinc:rule-event'),
37
+        'module' => 'Boincuser',
38
+        'arguments' => rules_events_hook_boincuser_consenttype_argument(),
39 39
     ),
40
-  );
40
+    );
41 41
 }
42 42
 
43 43
 /**
44 44
  * Arguments suitable for boincuser
45 45
  **/
46 46
 function rules_events_hook_boincuser_chemail_arguments() {
47
-  return array(
47
+    return array(
48 48
     'new_email_addr' => array(
49
-      'type' => 'string',
50
-      'label' => 'New email address',
51
-      'required' => TRUE,
49
+        'type' => 'string',
50
+        'label' => 'New email address',
51
+        'required' => TRUE,
52 52
     ),
53
-  ) + rules_events_hook_boincuser_adminnotify_argument();
53
+    ) + rules_events_hook_boincuser_adminnotify_argument();
54 54
 }
55 55
 
56 56
 function rules_events_hook_boincuser_consenttype_argument() {
57
-  return array(
57
+    return array(
58 58
     'consent_type' => array(
59
-      'type' => 'string',
60
-      'label' => 'Consent type id that caused the error',
61
-      'required' => TRUE,
59
+        'type' => 'string',
60
+        'label' => 'Consent type id that caused the error',
61
+        'required' => TRUE,
62 62
     ),
63
-  ) + rules_events_hook_boincuser_adminnotify_argument();
63
+    ) + rules_events_hook_boincuser_adminnotify_argument();
64 64
 }
65 65
 
66 66
 function rules_events_hook_boincuser_adminnotify_argument() {
67
-  return array(
67
+    return array(
68 68
     'subject_tag' => array(
69
-      'type' => 'string',
70
-      'label' => 'Subject tag for email filtering',
71
-      'required' => TRUE,
69
+        'type' => 'string',
70
+        'label' => 'Subject tag for email filtering',
71
+        'required' => TRUE,
72 72
     ),
73
-  ) + rules_events_global_user_argument();
73
+    ) + rules_events_global_user_argument();
74 74
 }
75 75
\ No newline at end of file
Please login to merge, or discard this patch.
drupal/sites/default/boinc/modules/boincuser/includes/boincuser.helpers.inc 1 patch
Indentation   +244 added lines, -244 removed lines patch added patch discarded remove patch
@@ -11,12 +11,12 @@  discard block
 block discarded – undo
11 11
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
12 12
 
13 13
 if (!function_exists('user_load_by_mail')) {
14
-  /**
15
-   * user_load_by_mail will be broken out of user_load
16
-   */
17
-  function user_load_by_mail($mail) {
14
+    /**
15
+     * user_load_by_mail will be broken out of user_load
16
+     */
17
+    function user_load_by_mail($mail) {
18 18
     return user_load(array('mail' => $mail));
19
-  }
19
+    }
20 20
 }
21 21
  
22 22
 
@@ -28,14 +28,14 @@  discard block
 block discarded – undo
28 28
  * Get an image object from a given file and cck field
29 29
  */ 
30 30
 function get_cck_image_object($image_path, $field_name, $content_type, $ignore_resolution = FALSE) {
31
-  $field = content_fields($field_name, $content_type); 
32
-  $validators = array_merge(filefield_widget_upload_validators($field), imagefield_widget_upload_validators($field));
33
-  if ($ignore_resolution) {
31
+    $field = content_fields($field_name, $content_type); 
32
+    $validators = array_merge(filefield_widget_upload_validators($field), imagefield_widget_upload_validators($field));
33
+    if ($ignore_resolution) {
34 34
     unset($validators['filefield_validate_image_resolution']);
35
-  }
36
-  $target_path = filefield_widget_file_path($field);
37
-  // Create the image object
38
-  return field_file_save_file($image_path, $validators, $target_path, FILE_EXISTS_REPLACE);
35
+    }
36
+    $target_path = filefield_widget_file_path($field);
37
+    // Create the image object
38
+    return field_file_save_file($image_path, $validators, $target_path, FILE_EXISTS_REPLACE);
39 39
 }
40 40
 
41 41
 
@@ -47,73 +47,73 @@  discard block
 block discarded – undo
47 47
  * 
48 48
  */
49 49
 function boincuser_check_credit_requirements() {
50
-  global $user;
51
-  if (!$user->uid) {
50
+    global $user;
51
+    if (!$user->uid) {
52 52
     return FALSE;
53
-  }
54
-  $account = user_load($user->uid);
55
-  $min_credit_to_post = variable_get('boinc_comment_min_credit', 0);
56
-  $community_role = array_search('community member', user_roles(true));
57
-  $unrestricted_role = array_search('verified contributor', user_roles(true));
53
+    }
54
+    $account = user_load($user->uid);
55
+    $min_credit_to_post = variable_get('boinc_comment_min_credit', 0);
56
+    $community_role = array_search('community member', user_roles(true));
57
+    $unrestricted_role = array_search('verified contributor', user_roles(true));
58 58
   
59
-  // Set user roles based on current penalty status...
60
-  if ($account->boincuser_penalty_expiration > time()) {
59
+    // Set user roles based on current penalty status...
60
+    if ($account->boincuser_penalty_expiration > time()) {
61 61
     drupal_set_message(bts(
62
-      'You are banned from community participation until @date',
63
-      array('@date' => format_date($account->boincuser_penalty_expiration))
62
+        'You are banned from community participation until @date',
63
+        array('@date' => format_date($account->boincuser_penalty_expiration))
64 64
     ), 'warning', FALSE);
65 65
     if (isset($account->roles[$community_role])) {
66
-      // Remove from the community role, if not already
67
-      unset($account->roles[$community_role]);
66
+        // Remove from the community role, if not already
67
+        unset($account->roles[$community_role]);
68 68
     }
69 69
     if (isset($account->roles[$unrestricted_role])) {
70
-      // Likewise, revoke extra privileges
71
-      unset($account->roles[$unrestricted_role]);
70
+        // Likewise, revoke extra privileges
71
+        unset($account->roles[$unrestricted_role]);
72 72
     }
73 73
     user_save($account, array('roles' => $account->roles));
74
-  }
75
-  else {
74
+    }
75
+    else {
76 76
     if (!isset($account->roles[$community_role])) {
77
-      // The user should be a 'community member' role. If the user was
78
-      // previously banned, this will restore that role.
79
-      $account->roles[$community_role] = 'community member';
80
-      user_save($account, array('roles' => $account->roles));
77
+        // The user should be a 'community member' role. If the user was
78
+        // previously banned, this will restore that role.
79
+        $account->roles[$community_role] = 'community member';
80
+        user_save($account, array('roles' => $account->roles));
81 81
     }
82 82
 
83 83
     // ... and total credit.
84 84
     if ($account->boincuser_total_credit >= $min_credit_to_post) {
85
-      if (!isset($account->roles[$unrestricted_role])) {
85
+        if (!isset($account->roles[$unrestricted_role])) {
86 86
         // This user is now above the credit threshold and is allowed full
87 87
         // privileges
88 88
         $account->roles[$unrestricted_role] = 'verified contributor';
89 89
         user_save($account, array('roles' => $account->roles));
90
-      }
90
+        }
91 91
     }
92 92
     else {
93
-      drupal_set_message(bts(
93
+        drupal_set_message(bts(
94 94
         'You must earn @count more credits to be able to post comments on this site and create or modify your user profile.',
95 95
         array('@count' => $min_credit_to_post - $account->boincuser_total_credit)
96
-      ), 'warning', FALSE);
97
-      if (isset($account->roles[$unrestricted_role])) {
96
+        ), 'warning', FALSE);
97
+        if (isset($account->roles[$unrestricted_role])) {
98 98
         // Either the threshold has been raised or credits have been revoked;
99 99
         // this user no longer qualifies for full privileges
100 100
         unset($account->roles[$unrestricted_role]);
101 101
         user_save($account, array('roles' => $account->roles));
102
-      }
102
+        }
103 103
     }
104 104
 
105
-  }
105
+    }
106 106
 }
107 107
 
108 108
 /**
109 109
  * Get the cid of the first comment the user has not seen on a given node
110 110
  */
111 111
 function boincuser_get_first_unread_comment_id($nid, $uid = NULL) {
112
-  if (!$uid) {
112
+    if (!$uid) {
113 113
     global $user;
114 114
     $uid = $user->uid;
115
-  }
116
-  return db_result(db_query("
115
+    }
116
+    return db_result(db_query("
117 117
     SELECT c.cid
118 118
     FROM {node} n
119 119
     INNER JOIN {comments} c ON c.nid = n.nid
@@ -124,40 +124,40 @@  discard block
 block discarded – undo
124 124
     ORDER BY c.timestamp ASC
125 125
     LIMIT 1",
126 126
     $uid, $nid
127
-  ));
127
+    ));
128 128
 }
129 129
 
130 130
 /**
131 131
  * Choose and set the user of the day
132 132
  */
133 133
 function boincuser_select_user_of_the_day() {
134
-  // First get a list of users with recent credit
135
-  db_set_active('boinc_rw');
136
-  $users_with_credit = db_query("
134
+    // First get a list of users with recent credit
135
+    db_set_active('boinc_rw');
136
+    $users_with_credit = db_query("
137 137
     SELECT
138 138
       id
139 139
     FROM {user} u
140 140
     JOIN {profile} p ON p.userid = u.id
141 141
     WHERE expavg_credit > 1
142 142
     ORDER BY uotd_time ASC, RAND()"
143
-  );
144
-  db_set_active('default');
145
-  $active_users = array();
146
-  while ($user_with_credit = db_fetch_object($users_with_credit)) {
143
+    );
144
+    db_set_active('default');
145
+    $active_users = array();
146
+    while ($user_with_credit = db_fetch_object($users_with_credit)) {
147 147
     $active_users[] = $user_with_credit->id;
148
-  }
149
-  $active_users = implode(',', $active_users);
150
-  // Limit to users who have never been user of the day, if there are any
151
-  $never_been_picked = db_result(db_query("
148
+    }
149
+    $active_users = implode(',', $active_users);
150
+    // Limit to users who have never been user of the day, if there are any
151
+    $never_been_picked = db_result(db_query("
152 152
     SELECT COUNT(*)
153 153
     FROM {boincuser} bu
154 154
     WHERE bu.uotd_time = 0
155 155
     " . ($active_users ? " AND bu.boinc_id IN ({$active_users}) " : '')
156
-  ));
157
-  $new_uotd_uid = 0;
158
-  while (!$new_uotd_uid) {
156
+    ));
157
+    $new_uotd_uid = 0;
158
+    while (!$new_uotd_uid) {
159 159
     // Select a user of the day randomly from the pool
160
-      $new_uotd_uid = db_result(db_query("
160
+        $new_uotd_uid = db_result(db_query("
161 161
       SELECT
162 162
         n.uid
163 163
       FROM {node} n
@@ -171,31 +171,31 @@  discard block
 block discarded – undo
171 171
       LIMIT 1"
172 172
     ));
173 173
     if (!$new_uotd_uid) {
174
-      // Can't find a user with a profile; remove constraints on the pool
175
-      if ($never_been_picked) {
174
+        // Can't find a user with a profile; remove constraints on the pool
175
+        if ($never_been_picked) {
176 176
         // Allow users who have been previously selected
177 177
         $never_been_picked = FALSE;
178
-      }
179
-      elseif ($active_users) {
178
+        }
179
+        elseif ($active_users) {
180 180
         // Allow users who are not even active (getting desperate)
181 181
         $active_users = FALSE;
182
-      }
183
-      else {
182
+        }
183
+        else {
184 184
         // Process failed...
185 185
         return FALSE;
186
-      }
186
+        }
187 187
     }
188
-  }
189
-  $uotd = user_load($new_uotd_uid);
190
-  if ($uotd->uid) {
188
+    }
189
+    $uotd = user_load($new_uotd_uid);
190
+    if ($uotd->uid) {
191 191
     db_query("
192 192
       UPDATE {boincuser}
193 193
       SET uotd_time = '%d'
194 194
       WHERE uid = '%d'",
195
-      time(), $uotd->uid
195
+        time(), $uotd->uid
196 196
     );
197
-  }
198
-  return $uotd;
197
+    }
198
+    return $uotd;
199 199
 }
200 200
 
201 201
 
@@ -213,71 +213,71 @@  discard block
 block discarded – undo
213 213
  * new and prev email.
214 214
  */
215 215
 function _boincuser_send_emailchange($account, $new_email=NULL, $prev_email=NULL, $adminuser=FALSE) {
216
-  require_boinc('token');
217
-  module_load_include('inc', 'rules', 'modules/system.rules');
216
+    require_boinc('token');
217
+    module_load_include('inc', 'rules', 'modules/system.rules');
218 218
 
219
-  global $base_url;
220
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
219
+    global $base_url;
220
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
221 221
 
222
-  if (is_null($new_email)) {
222
+    if (is_null($new_email)) {
223 223
     $new_email = $account->mail;
224
-  }
225
-  if (is_null($prev_email)) {
224
+    }
225
+    if (is_null($prev_email)) {
226 226
     $prev_email = $account->boincuser_previous_email_addr;
227
-  }
228
-
229
-  // @todo - set constant in drupal, or use BOINC contsants
230
-  $duration = TOKEN_DURATION_ONE_WEEK;
231
-  $changedate = date('F j, Y \a\t G:i T', time());
232
-  $newdate = date('F j, Y \a\t G:i T', $account->boincuser_email_addr_change_time + $duration);
233
-  $token = create_token($account->boincuser_id, TOKEN_TYPE_CHANGE_EMAIL, $duration);
234
-  if ($adminuser) {
227
+    }
228
+
229
+    // @todo - set constant in drupal, or use BOINC contsants
230
+    $duration = TOKEN_DURATION_ONE_WEEK;
231
+    $changedate = date('F j, Y \a\t G:i T', time());
232
+    $newdate = date('F j, Y \a\t G:i T', $account->boincuser_email_addr_change_time + $duration);
233
+    $token = create_token($account->boincuser_id, TOKEN_TYPE_CHANGE_EMAIL, $duration);
234
+    if ($adminuser) {
235 235
     $graf1 = "Your email address was changed from {$prev_email} to {$new_email} "
236
-      . "on {$changedate}. If you need to reverse this change, please look for "
237
-      . "an email send to the email address: {$prev_email}.\n";
238
-  }
239
-  else {
236
+        . "on {$changedate}. If you need to reverse this change, please look for "
237
+        . "an email send to the email address: {$prev_email}.\n";
238
+    }
239
+    else {
240 240
     $graf1 = "Your email address was changed from {$prev_email} to {$new_email} "
241
-      . "on {$changedate}. You will not be able to change your email address "
242
-      . "until {$newdate}. If you need to reverse this change, please look for "
243
-      . "an email send to the email address: {$prev_email}.\n";
244
-  }
245
-
246
-  // Send email #1 to current address
247
-  $mysubject = "Notification of email change at {$site_name}";
248
-  $mymessage = ''
249
-      . "{$account->boincuser_name},\n"
250
-      . "\n"
251
-      . $graf1
252
-      . "\n"
253
-      . "Thanks, \n"
254
-      . "{$site_name} support team\n";
255
-
256
-  $settings = array(
241
+        . "on {$changedate}. You will not be able to change your email address "
242
+        . "until {$newdate}. If you need to reverse this change, please look for "
243
+        . "an email send to the email address: {$prev_email}.\n";
244
+    }
245
+
246
+    // Send email #1 to current address
247
+    $mysubject = "Notification of email change at {$site_name}";
248
+    $mymessage = ''
249
+        . "{$account->boincuser_name},\n"
250
+        . "\n"
251
+        . $graf1
252
+        . "\n"
253
+        . "Thanks, \n"
254
+        . "{$site_name} support team\n";
255
+
256
+    $settings = array(
257 257
     'from' => '',
258 258
     'to' => $new_email,
259 259
     'subject' => $mysubject,
260 260
     'message' => $mymessage,
261
-  );
262
-  rules_action_mail_to_user($account, $settings);
263
-
264
-  // Send email #2 to previous address.
265
-  $mymessage = ''
266
-      . "Your email address has been changed. If you did not intend to take this action, then please click this link to reverse this change, or copy-and-paste the link into your browser location bar. You will need to change your password as well.\n"
267
-      . "\n"
268
-      . "{$base_url}/user/{$account->uid}/recoveremail/{$token}\n"
269
-      . "\n"
270
-      . "Thanks, \n"
271
-      . "{$site_name} support team\n";
272
-
273
-  $settings = array(
261
+    );
262
+    rules_action_mail_to_user($account, $settings);
263
+
264
+    // Send email #2 to previous address.
265
+    $mymessage = ''
266
+        . "Your email address has been changed. If you did not intend to take this action, then please click this link to reverse this change, or copy-and-paste the link into your browser location bar. You will need to change your password as well.\n"
267
+        . "\n"
268
+        . "{$base_url}/user/{$account->uid}/recoveremail/{$token}\n"
269
+        . "\n"
270
+        . "Thanks, \n"
271
+        . "{$site_name} support team\n";
272
+
273
+    $settings = array(
274 274
     'from' => '',
275 275
     'to' => $prev_email,
276 276
     'subject' => $mysubject,
277 277
     'message' => $mymessage,
278
-  );
278
+    );
279 279
 
280
-  rules_action_mail($settings);
280
+    rules_action_mail($settings);
281 281
 }
282 282
 
283 283
 /**
@@ -287,32 +287,32 @@  discard block
 block discarded – undo
287 287
  *
288 288
  */
289 289
 function create_proper_drupalname($requested_name) {
290
-  if (!$requested_name) {
290
+    if (!$requested_name) {
291 291
     // If the name is empty, set it
292 292
     $requested_name = 'anonymous';
293
-  }
294
-  $same_name_tally = 1;
295
-
296
-  // Remove extra spaces
297
-  $name2 = preg_replace("/ {2,}/", " ", trim($requested_name));
298
-  // Remove any non-valid characters
299
-  $cleaned_name = preg_replace('/[^a-zA-Z0-9_ \.-]/s', '_', $name2);
300
-  // Truncate name
301
-  $name_length = strlen($cleaned_name);
302
-  if ($name_length > 56) {
293
+    }
294
+    $same_name_tally = 1;
295
+
296
+    // Remove extra spaces
297
+    $name2 = preg_replace("/ {2,}/", " ", trim($requested_name));
298
+    // Remove any non-valid characters
299
+    $cleaned_name = preg_replace('/[^a-zA-Z0-9_ \.-]/s', '_', $name2);
300
+    // Truncate name
301
+    $name_length = strlen($cleaned_name);
302
+    if ($name_length > 56) {
303 303
     // Name is limited to 60 characters, but we want to leave space to add a
304 304
     // tally if needed (for users with duplicate names); Limit to 56 chars and
305 305
     // replace the middle of the string with "..." if too long
306 306
     $cleaned_name = substr_replace($cleaned_name, '...', 28, ($name_length-56)+3);
307
-  }
307
+    }
308 308
 
309
-  // Determine if there are duplicate names, if so append a number to end.
310
-  $unique_name = $cleaned_name;
311
-  while (db_result(db_query("SELECT uid FROM {users} WHERE name = '{$unique_name}' LIMIT 1"))) {
309
+    // Determine if there are duplicate names, if so append a number to end.
310
+    $unique_name = $cleaned_name;
311
+    while (db_result(db_query("SELECT uid FROM {users} WHERE name = '{$unique_name}' LIMIT 1"))) {
312 312
     $same_name_tally++;
313 313
     $unique_name = "{$cleaned_name}_{$same_name_tally}";
314
-  }
315
-  return $unique_name;
314
+    }
315
+    return $unique_name;
316 316
 }
317 317
 
318 318
 
@@ -326,9 +326,9 @@  discard block
 block discarded – undo
326 326
  *
327 327
  */
328 328
 function boincuser_check_termsofuse($user) {
329
-  require_boinc('consent');
330
-  $boinc_user = boincuser_load($user->uid, TRUE);
331
-  return check_user_consent($boinc_user, CONSENT_TYPE_ENROLL);
329
+    require_boinc('consent');
330
+    $boinc_user = boincuser_load($user->uid, TRUE);
331
+    return check_user_consent($boinc_user, CONSENT_TYPE_ENROLL);
332 332
 }
333 333
 
334 334
 /**
@@ -339,33 +339,33 @@  discard block
 block discarded – undo
339 339
  *
340 340
  */
341 341
 function boincuser_consentto_termsofuse($user) {
342
-  require_boinc('consent');
343
-  $boinc_user = boincuser_load($user->uid, TRUE);
342
+    require_boinc('consent');
343
+    $boinc_user = boincuser_load($user->uid, TRUE);
344 344
 
345
-  list($checkct, $ctid) = check_consent_type(CONSENT_TYPE_ENROLL);
346
-  if ($checkct) {
345
+    list($checkct, $ctid) = check_consent_type(CONSENT_TYPE_ENROLL);
346
+    if ($checkct) {
347 347
     $rc1 = consent_to_a_policy($boinc_user, $ctid, 1, 0, 'Webform', time());
348 348
     if (!$rc1) {
349
-      drupal_set_message(
349
+        drupal_set_message(
350 350
         bts("ERROR: Database error when attempting to INSERT into table consent with ID=@id. The @project administrators have been notified.",
351 351
         array(
352
-          '@id' => $boinc_user->id,
353
-          '@project' => variable_get('site_name', 'Drupal-BOINC'), NULL, 'boinc:add-new-user'
352
+            '@id' => $boinc_user->id,
353
+            '@project' => variable_get('site_name', 'Drupal-BOINC'), NULL, 'boinc:add-new-user'
354 354
         ),
355 355
         'NULL', 'boinc:consent-termsofuse'),
356
-      'error');
357
-      rules_invoke_event('boincuser_general_consent_error', variable_get('boinc_admin_mailing_list_subject_tag', ''));
356
+        'error');
357
+        rules_invoke_event('boincuser_general_consent_error', variable_get('boinc_admin_mailing_list_subject_tag', ''));
358 358
     }
359 359
     return $rc1;
360
-  }
361
-  else {
360
+    }
361
+    else {
362 362
     drupal_set_message(
363
-      bts('ERROR: Consent type for enrollment not found. The @project administrators have been nofitifed.',
363
+        bts('ERROR: Consent type for enrollment not found. The @project administrators have been nofitifed.',
364 364
         array('@project' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:consent-termsofuse'),
365 365
     'error');
366 366
     rules_invoke_event('boincuser_general_consent_type_error', CONSENT_TYPE_ENROLL, variable_get('boinc_admin_mailing_list_subject_tag', ''));
367
-  }
368
-  return FALSE;
367
+    }
368
+    return FALSE;
369 369
 }
370 370
 
371 371
 /**
@@ -374,16 +374,16 @@  discard block
 block discarded – undo
374 374
  */
375 375
 function _boincuser_ignore_paths($path, $paths_to_ignore) {
376 376
 
377
-  foreach ($paths_to_ignore as $pi) {
377
+    foreach ($paths_to_ignore as $pi) {
378 378
     // @todo Currently this function uses {} as PHP regexp
379 379
     // delimiters. Curly brace is not really allowed un URLs, but a
380 380
     // more robust function would first check for these curly braces
381 381
     // in the path_to_ignore patterms, just in case.
382 382
     if (preg_match('{' . $pi . '}', $path)) {
383
-      return TRUE;
383
+        return TRUE;
384 384
     }
385
-  }
386
-  return FALSE;
385
+    }
386
+    return FALSE;
387 387
 }
388 388
 
389 389
 /**
@@ -391,20 +391,20 @@  discard block
 block discarded – undo
391 391
  * Drupal's recover email path.
392 392
  */
393 393
 function _boincuser_redirect_recover_email() {
394
-  $params = array(
394
+    $params = array(
395 395
     'boincid' => isset($_GET['id']) ? $_GET['id'] : '',
396 396
     'token' => isset($_GET['token']) ? $_GET['token'] : ''
397
-  );
397
+    );
398 398
 
399
-  // If boincid or token is not present, then go to the home page.
400
-  if (empty($params['boincid']) or empty($params['token'])) {
399
+    // If boincid or token is not present, then go to the home page.
400
+    if (empty($params['boincid']) or empty($params['token'])) {
401 401
     $redirect = '';
402
-  }
403
-  else {
402
+    }
403
+    else {
404 404
     $uid = boincuser_lookup_uid($params['boincid']);
405 405
     $redirect = "/user/${uid}/recoveremail/${params['token']}";
406
-  }
407
-  drupal_goto($redirect);
406
+    }
407
+    drupal_goto($redirect);
408 408
 }
409 409
 
410 410
 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
@@ -415,17 +415,17 @@  discard block
 block discarded – undo
415 415
  * Require BOINC library
416 416
  */
417 417
 function require_boinc($libraries) {
418
-  if ($include_dir = boinc_get_path('html_inc')) {
418
+    if ($include_dir = boinc_get_path('html_inc')) {
419 419
     $working_dir = getcwd();
420 420
     chdir($include_dir);
421 421
     if (!is_array($libraries)) {
422
-      $libraries = array($libraries);
422
+        $libraries = array($libraries);
423 423
     }
424 424
     foreach ($libraries as $library) {
425
-      require_once("{$library}.inc");
425
+        require_once("{$library}.inc");
426 426
     }
427 427
     chdir($working_dir);
428
-  }
428
+    }
429 429
 }
430 430
 
431 431
 /**
@@ -433,7 +433,7 @@  discard block
 block discarded – undo
433 433
  * The path from the BOINC html root must be included (e.g. user/file.php)
434 434
  */
435 435
 function include_boinc($file) {
436
-  if ($include_dir = boinc_get_path()) {
436
+    if ($include_dir = boinc_get_path()) {
437 437
     $include_dir .= '/html';
438 438
     $workingDir = getcwd();
439 439
     $path = dirname($file);
@@ -441,84 +441,84 @@  discard block
 block discarded – undo
441 441
     chdir("{$include_dir}/{$path}");
442 442
     include($file);
443 443
     chdir($workingDir);
444
-  }
444
+    }
445 445
 }
446 446
 
447 447
 /**
448 448
  * Get the BOINC include path
449 449
  */
450 450
 function boinc_get_path($type = 'root') {
451
-  $dir = "boinc_{$type}_dir";
452
-  if ($include_dir = variable_get("boinc_{$type}_dir", '')) {
451
+    $dir = "boinc_{$type}_dir";
452
+    if ($include_dir = variable_get("boinc_{$type}_dir", '')) {
453 453
     return $include_dir;
454
-  }
455
-  else {
454
+    }
455
+    else {
456 456
     // Don't show errors on blacklisted pages
457 457
     $page_blacklist = array(
458
-      'admin/boinc/environment'
458
+        'admin/boinc/environment'
459 459
     );
460 460
     if (!in_array($_GET['q'], $page_blacklist)) {
461
-      watchdog('boincuser', 'The BOINC environment is not configured. Please
461
+        watchdog('boincuser', 'The BOINC environment is not configured. Please
462 462
           !configure_it', array('!configure_it' => l(t('configure it now'),
463 463
             'admin/boinc/environment')), WATCHDOG_WARNING);
464
-      if (user_access('administer site configuration')) {
464
+        if (user_access('administer site configuration')) {
465 465
         drupal_set_message(t('The BOINC environment is not configured. Please
466 466
           !configure_it', array('!configure_it' => l(t('configure it now'),
467 467
             'admin/boinc/environment'))), 'warning', FALSE);
468
-      }
469
-      else {
468
+        }
469
+        else {
470 470
         drupal_set_message(t('There is a problem with the site. Please contact
471 471
           the system administrator.'), 'error', FALSE);
472
-      }
473
-      // Redirect home to display the error message and avoid fatal errors
474
-      // (unless on a blacklisted page)
475
-      $redirect_blacklist = array(
472
+        }
473
+        // Redirect home to display the error message and avoid fatal errors
474
+        // (unless on a blacklisted page)
475
+        $redirect_blacklist = array(
476 476
         'admin/settings/performance',
477 477
         'admin/boinc/environment',
478 478
         'home',
479 479
         ''
480
-      );
481
-      if (!in_array($_GET['q'], $redirect_blacklist)) {
480
+        );
481
+        if (!in_array($_GET['q'], $redirect_blacklist)) {
482 482
         drupal_goto('');
483
-      }
483
+        }
484 484
     }
485 485
     else {
486
-      // Clear the messages on the environment config page
487
-      drupal_get_messages();
486
+        // Clear the messages on the environment config page
487
+        drupal_get_messages();
488 488
     }
489
-  }
490
-  return FALSE;
489
+    }
490
+    return FALSE;
491 491
 }
492 492
 
493 493
 /**
494 494
  * Get the configured scheduler tags
495 495
  */
496 496
 function boinc_get_scheduler_tags() {
497
-  // Don't generate messages for blacklisted pages
498
-  $page_blacklist = array(
497
+    // Don't generate messages for blacklisted pages
498
+    $page_blacklist = array(
499 499
     'admin/boinc/environment',
500 500
     'admin/boinc/scheduler'
501
-  );
502
-  if ($url_config = variable_get('boinc_scheduler_urls', '')) {
501
+    );
502
+    if ($url_config = variable_get('boinc_scheduler_urls', '')) {
503 503
     return explode("\r\n", $url_config);
504
-  }
505
-  elseif (!in_array($_GET['q'], $page_blacklist)) {
504
+    }
505
+    elseif (!in_array($_GET['q'], $page_blacklist)) {
506 506
     watchdog('boincuser', 'The BOINC scheduling server settings are not yet
507 507
         configured. Please !verify for the settings to become effective.',
508
-          array('!verify' => l(t('verify the default values') . ' <strong>' . 
508
+            array('!verify' => l(t('verify the default values') . ' <strong>' . 
509 509
             t('and') . '</strong> ' . t('save the configuration'),
510 510
             'admin/boinc/scheduler', array('html' => TRUE))
511
-          ), WATCHDOG_WARNING);
511
+            ), WATCHDOG_WARNING);
512 512
     if (user_access('administer site configuration')) {
513
-      drupal_set_message(t('The BOINC scheduling server settings are not yet
513
+        drupal_set_message(t('The BOINC scheduling server settings are not yet
514 514
           configured. Please !verify for the settings to become effective',
515 515
             array('!verify' => l(t('verify the default values') . ' <strong>' . 
516
-              t('and') . '</strong> ' . t('save the configuration'),
517
-              'admin/boinc/scheduler', array('html' => TRUE))
516
+                t('and') . '</strong> ' . t('save the configuration'),
517
+                'admin/boinc/scheduler', array('html' => TRUE))
518 518
             )), 'warning', FALSE);
519 519
     }
520
-  }
521
-  return array();
520
+    }
521
+    return array();
522 522
 }
523 523
 
524 524
 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
@@ -530,41 +530,41 @@  discard block
 block discarded – undo
530 530
  * Determine if a BOINC ID matches the logged in user
531 531
  */
532 532
 function is_current_boinc_user($boinc_id) {
533
-  global $user;
534
-  if (!$user->uid) {
533
+    global $user;
534
+    if (!$user->uid) {
535 535
     return FALSE;
536
-  }
537
-  // boincuser_id is not stored in the global user, so load a new instance
538
-  $drupuser = user_load($user->uid);
539
-  return ($boinc_id == $drupuser->boincuser_id);
536
+    }
537
+    // boincuser_id is not stored in the global user, so load a new instance
538
+    $drupuser = user_load($user->uid);
539
+    return ($boinc_id == $drupuser->boincuser_id);
540 540
 }
541 541
 
542 542
 /**
543 543
  * Convert a BOINC ID to a Drupal ID
544 544
  */
545 545
 function boincuser_lookup_uid($boinc_id) {
546
-  $drupal_id = db_result(db_query("SELECT uid FROM {boincuser} WHERE boinc_id='%d'", $boinc_id));
547
-  return $drupal_id;
546
+    $drupal_id = db_result(db_query("SELECT uid FROM {boincuser} WHERE boinc_id='%d'", $boinc_id));
547
+    return $drupal_id;
548 548
 }
549 549
 function get_drupal_id($boinc_id) {
550
-  return boincuser_lookup_uid($boinc_id);
550
+    return boincuser_lookup_uid($boinc_id);
551 551
 }
552 552
 
553 553
 /**
554 554
  * Get a BOINC user object
555 555
  */
556 556
 function boincuser_load($user_id = NULL, $is_drupal_id = FALSE) {
557
-  if (!$user_id) {
557
+    if (!$user_id) {
558 558
     global $user;
559 559
     $user_id = $user->uid;
560 560
     $is_drupal_id = TRUE;
561
-  }
562
-  if ($is_drupal_id) {
561
+    }
562
+    if ($is_drupal_id) {
563 563
     $account = user_load($user_id);
564 564
     $user_id = $account->boincuser_id;
565
-  }
566
-  require_boinc('boinc_db');
567
-  return BoincUser::lookup_id($user_id);
565
+    }
566
+    require_boinc('boinc_db');
567
+    return BoincUser::lookup_id($user_id);
568 568
 }
569 569
 
570 570
 /**
@@ -574,10 +574,10 @@  discard block
 block discarded – undo
574 574
  * page, delete button.
575 575
  */
576 576
 function _boincuser_node_profile_delete_submit($form, &$form_state) {
577
-  $node = $form['#node'];
578
-  $deleteurl = 'node/'. $node->nid .'/delete';
579
-  $afterq = 'destination=account';
580
-  drupal_goto($deleteurl, $afterq);
577
+    $node = $form['#node'];
578
+    $deleteurl = 'node/'. $node->nid .'/delete';
579
+    $afterq = 'destination=account';
580
+    drupal_goto($deleteurl, $afterq);
581 581
 }
582 582
 
583 583
 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
@@ -588,8 +588,8 @@  discard block
 block discarded – undo
588 588
  * Wrapper for boinc_version() function
589 589
  */
590 590
 function get_boinc_version($x) {
591
-  require_boinc('host');
592
-  return function_exists('boinc_version') ? boinc_version($x) : 'err!';
591
+    require_boinc('host');
592
+    return function_exists('boinc_version') ? boinc_version($x) : 'err!';
593 593
 }
594 594
   
595 595
 
@@ -598,14 +598,14 @@  discard block
 block discarded – undo
598 598
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
599 599
 
600 600
 /**
601
-  * Generate the friend block header
602
-  */
601
+ * Generate the friend block header
602
+ */
603 603
 function boincuser_views_friends_block_header($context = null) {
604
-  // Get the friend count for the user being viewed
605
-  $view = views_get_current_view();
606
-  $account_id = $view->args[0];
607
-  $friend_count = flag_friend_get_friend_count($account_id);
608
-  return '<h2 class="pane-title">' . bts('Friends (@count)', 
604
+    // Get the friend count for the user being viewed
605
+    $view = views_get_current_view();
606
+    $account_id = $view->args[0];
607
+    $friend_count = flag_friend_get_friend_count($account_id);
608
+    return '<h2 class="pane-title">' . bts('Friends (@count)', 
609 609
     array('@count' => $friend_count)) . '</h2>';
610 610
 }
611 611
 
@@ -614,13 +614,13 @@  discard block
 block discarded – undo
614 614
  * database.
615 615
  */
616 616
 function _boincuser_user_name_autocomplete($string) {
617
-  $matches = array();
618
-  db_set_active('boinc_ro');
619
-  $result = db_query_range("SELECT id,name FROM {user} WHERE name LIKE '%s%'", $string, 0, 10);
620
-  db_set_active('default');
621
-  while ($user = db_fetch_object($result)) {
622
-      $matches[$user->name . '_' . $user->id] = htmlentities($user->name) . " (" . $user->id . ')';
623
-  }
624
-
625
-  drupal_json((object)$matches);
617
+    $matches = array();
618
+    db_set_active('boinc_ro');
619
+    $result = db_query_range("SELECT id,name FROM {user} WHERE name LIKE '%s%'", $string, 0, 10);
620
+    db_set_active('default');
621
+    while ($user = db_fetch_object($result)) {
622
+        $matches[$user->name . '_' . $user->id] = htmlentities($user->name) . " (" . $user->id . ')';
623
+    }
624
+
625
+    drupal_json((object)$matches);
626 626
 }
Please login to merge, or discard this patch.
drupal/sites/default/boinc/modules/boincuser/boincuser.admin.inc 1 patch
Indentation   +183 added lines, -183 removed lines patch added patch discarded remove patch
@@ -28,13 +28,13 @@  discard block
 block discarded – undo
28 28
 }*/
29 29
 
30 30
 /**
31
-  * The BOINC environment form allows paths to be set to connect Drupal to an
32
-  * existing BOINC web interface.
33
-  */
31
+ * The BOINC environment form allows paths to be set to connect Drupal to an
32
+ * existing BOINC web interface.
33
+ */
34 34
 function boincuser_admin_environment(&$form_state) {
35
-  global $base_url;
36
-  $form = array();
37
-  $default = array(
35
+    global $base_url;
36
+    $form = array();
37
+    $default = array(
38 38
     'boinc_root_dir' => variable_get('boinc_root_dir', ''),
39 39
     'boinc_config_xml_dir' => variable_get('boinc_config_xml_dir', ''),
40 40
     'boinc_html_inc_dir' => variable_get('boinc_html_inc_dir', ''),
@@ -47,303 +47,303 @@  discard block
 block discarded – undo
47 47
     'boinc_admin_mailing_list_subject_tag' => variable_get('boinc_admin_mailing_list_subject_tag', ''),
48 48
     'boinc_debug_mode' => variable_get('boinc_debug_mode', 0),
49 49
     'boinc_project_config_keywords' => variable_get('boinc_project_config_keywords', ''),
50
-  );
51
-  //drupal_set_message(print_r($default, true));
52
-  //drupal_set_message(print_r($form_state, true));
53
-  // Show overrides if the root dir is set and others have not been detected
54
-  $show_overrides = FALSE;
55
-  if ($default['boinc_root_dir']) {
50
+    );
51
+    //drupal_set_message(print_r($default, true));
52
+    //drupal_set_message(print_r($form_state, true));
53
+    // Show overrides if the root dir is set and others have not been detected
54
+    $show_overrides = FALSE;
55
+    if ($default['boinc_root_dir']) {
56 56
     foreach ($default as $key => $dir) {
57
-      switch ($key) {
58
-      case 'boinc_config_xml_dir':
57
+        switch ($key) {
58
+        case 'boinc_config_xml_dir':
59 59
       case 'boinc_html_inc_dir':
60 60
       case 'boinc_project_config_dir':
61 61
       case 'boinc_user_image_dir':
62 62
         // If any of these values are not set, show the overrides section
63 63
         if (!$dir) {
64
-          $default[$key] = $form_state['values'][$key];
65
-          $show_overrides = TRUE;
66
-          break;
64
+            $default[$key] = $form_state['values'][$key];
65
+            $show_overrides = TRUE;
66
+            break;
67 67
         }
68 68
         break;
69
-      default:
69
+        default:
70 70
       }
71
-      if ($show_overrides) {
71
+        if ($show_overrides) {
72 72
         break;
73
-      }
73
+        }
74
+    }
74 75
     }
75
-  }
76
-  // Define the form
77
-  $form['boinc_root_dir'] = array(
76
+    // Define the form
77
+    $form['boinc_root_dir'] = array(
78 78
     '#type' => 'textfield',
79 79
     '#title' => t('BOINC project root directory'),
80 80
     '#default_value' => $default['boinc_root_dir'], 
81 81
     '#description' => t('The filesystem path to the BOINC project root. This
82 82
       directory should contain config.xml as well as the html subdirectory,
83 83
       which itself contains inc/, project/, and user_profile/.'),
84
-  );
85
-  $form['overrides'] = array(
84
+    );
85
+    $form['overrides'] = array(
86 86
     '#title' => t('Overrides'),
87 87
     '#type' => 'fieldset',
88 88
     '#description' => '',
89 89
     '#collapsible' => TRUE,
90 90
     '#collapsed' => !$show_overrides,
91 91
     '#attributes' => array('class' => 'advanced-settings')
92
-  );
93
-  $form['overrides']['boinc_config_xml_dir'] = array(
92
+    );
93
+    $form['overrides']['boinc_config_xml_dir'] = array(
94 94
     '#type' => 'textfield',
95 95
     '#title' => t('BOINC config.xml directory'),
96 96
     '#default_value' => $default['boinc_config_xml_dir'],
97 97
     '#description' => t('The filesystem path that contains config.xml'),
98
-  );
99
-  $form['overrides']['boinc_html_inc_dir'] = array(
98
+    );
99
+    $form['overrides']['boinc_html_inc_dir'] = array(
100 100
     '#type' => 'textfield',
101 101
     '#title' => t('BOINC web includes directory'),
102 102
     '#default_value' => $default['boinc_html_inc_dir'],
103 103
     '#description' => t('The filesystem path to the html/inc/ directory that
104 104
       contains util.inc'),
105
-  );
106
-  $form['overrides']['boinc_project_config_dir'] = array(
105
+    );
106
+    $form['overrides']['boinc_project_config_dir'] = array(
107 107
     '#type' => 'textfield',
108 108
     '#title' => t('BOINC project config directory'),
109 109
     '#default_value' => $default['boinc_project_config_dir'],
110 110
     '#description' => t('The filesystem path to the project/ directory that
111 111
       contains project.inc'),
112
-  );
113
-  $form['overrides']['boinc_user_image_dir'] = array(
112
+    );
113
+    $form['overrides']['boinc_user_image_dir'] = array(
114 114
     '#type' => 'textfield',
115 115
     '#title' => t('BOINC user profile image directory'),
116 116
     '#default_value' => $default['boinc_user_image_dir'],
117 117
     '#description' => t('The filesystem directory that contains user images'),
118
-  );
119
-  $form['boinc_server_status_url'] = array(
118
+    );
119
+    $form['boinc_server_status_url'] = array(
120 120
     '#type' => 'textfield',
121 121
     '#title' => t('BOINC server status page URL (optional)'),
122 122
     '#default_value' => $default['boinc_server_status_url'],
123 123
     '#description' => t('An absolute URL or path relative to the site base to the server status page (e.g. %full_url or just %relative_url).',
124
-      array(
124
+        array(
125 125
         '%full_url' => $base_url . '/server_status.php',
126 126
         '%relative_url' => 'server_status.php',
127
-      )
127
+        )
128 128
     ),
129
-  );
130
-  $form['boinc_app_list_url'] = array(
129
+    );
130
+    $form['boinc_app_list_url'] = array(
131 131
     '#type' => 'textfield',
132 132
     '#title' => t('BOINC applications page URL (optional)'),
133 133
     '#default_value' => $default['boinc_app_list_url'],
134 134
     '#description' => t('An absolute URL or path relative to the site base to the applications page (e.g. %full_url or just %relative_url).',
135
-      array(
135
+        array(
136 136
         '%full_url' => $base_url . '/apps.php',
137 137
         '%relative_url' => 'apps.php',
138
-      )
138
+        )
139 139
     ),
140
-  );
141
-  $form['boinc_host_sched_logs_dir'] = array(
140
+    );
141
+    $form['boinc_host_sched_logs_dir'] = array(
142 142
     '#type' => 'textfield',
143 143
     '#title' => t('BOINC host scheduler log directory (optional)'),
144 144
     '#default_value' => $default['boinc_host_sched_logs_dir'],
145 145
     '#description' => t('The filesystem directory that contains host scheduler logs'),
146
-  );
147
-  $form['boinc_admin_mailing_list'] = array(
146
+    );
147
+    $form['boinc_admin_mailing_list'] = array(
148 148
     '#type' => 'textfield',
149 149
     '#title' => t('Admin mailing list'),
150 150
     '#default_value' => $default['boinc_admin_mailing_list'],
151 151
     '#description' => t('Enter an email-address which will be used to contact admisistrators. If empty, the site email configured in Settings -> Site Information will be used.'),
152
-  );
153
-  $form['boinc_admin_mailing_list_subject_tag'] = array(
152
+    );
153
+    $form['boinc_admin_mailing_list_subject_tag'] = array(
154 154
     '#type' => 'textfield',
155 155
     '#title' => t('Admin mailing list - subject tag'),
156 156
     '#default_value' => $default['boinc_admin_mailing_list_subject_tag'],
157 157
     '#description' => t('Text which will appear at the beginning of the subject for any admin notification emails. If empty, no tag will be included. Examples: [drupal-error].'),
158
-  );
159
-  $form['boinc_debug_mode'] = array(
158
+    );
159
+    $form['boinc_debug_mode'] = array(
160 160
     '#type' => 'checkbox',
161 161
     '#title' => t('Show debug messages in system log'),
162 162
     '#default_value' => $default['boinc_debug_mode']
163
-  );
164
-  $form['boinc_project_config_keywords'] = array(
163
+    );
164
+    $form['boinc_project_config_keywords'] = array(
165 165
     '#type' => 'textarea',
166 166
     '#title' => t('Project/Job Keywords for get_project_config RPC'),
167 167
     '#default_value' => $default['boinc_project_config_keywords'],
168 168
     '#description' => t('XML from this text box will be appended to the XML output from the get_project_config RPC. There is no check for XML validity! See !link for more details. It is okay to leave this blank.',
169 169
     array(
170
-      '!link' => l('BOINC wiki page', 'https://boinc.berkeley.edu/trac/wiki/JobKeywords')
170
+        '!link' => l('BOINC wiki page', 'https://boinc.berkeley.edu/trac/wiki/JobKeywords')
171 171
     )),
172
-  );
173
-  return system_settings_form($form);
172
+    );
173
+    return system_settings_form($form);
174 174
 }
175 175
 
176 176
 /**
177
-  * Validate the BOINC environment form.
178
-  */
177
+ * Validate the BOINC environment form.
178
+ */
179 179
 function boincuser_admin_environment_validate($form, &$form_state) {
180
-  $values = $form_state['values'];
181
-  if (!$values['boinc_root_dir']) {
180
+    $values = $form_state['values'];
181
+    if (!$values['boinc_root_dir']) {
182 182
     form_set_error('boinc_root_dir', t('BOINC project root directory must be
183 183
       defined!'));
184
-  }
185
-  elseif (!is_dir($values['boinc_root_dir'])) {
184
+    }
185
+    elseif (!is_dir($values['boinc_root_dir'])) {
186 186
     form_set_error('boinc_root_dir', t('BOINC project root not found at %directory',
187
-      array('%directory' => $values['boinc_root_dir'])
187
+        array('%directory' => $values['boinc_root_dir'])
188 188
     ));
189
-  }
190
-  else {
189
+    }
190
+    else {
191 191
     // By default, try to automatically set specific directories from the root
192 192
     if (!$values['boinc_config_xml_dir']) {
193
-      $values['boinc_config_xml_dir'] = $values['boinc_root_dir'];
194
-      form_set_value($form['overrides']['boinc_config_xml_dir'], $values['boinc_config_xml_dir'], $form_state);
193
+        $values['boinc_config_xml_dir'] = $values['boinc_root_dir'];
194
+        form_set_value($form['overrides']['boinc_config_xml_dir'], $values['boinc_config_xml_dir'], $form_state);
195 195
     }
196 196
     if (!$values['boinc_html_inc_dir']) {
197
-      $values['boinc_html_inc_dir'] = "{$values['boinc_root_dir']}/html/inc";
198
-      form_set_value($form['overrides']['boinc_html_inc_dir'], $values['boinc_html_inc_dir'], $form_state);
197
+        $values['boinc_html_inc_dir'] = "{$values['boinc_root_dir']}/html/inc";
198
+        form_set_value($form['overrides']['boinc_html_inc_dir'], $values['boinc_html_inc_dir'], $form_state);
199 199
     }
200 200
     if (!$values['boinc_project_config_dir']) {
201
-      $values['boinc_project_config_dir'] = "{$values['boinc_root_dir']}/html/project";
202
-      form_set_value($form['overrides']['boinc_project_config_dir'], $values['boinc_project_config_dir'], $form_state);
201
+        $values['boinc_project_config_dir'] = "{$values['boinc_root_dir']}/html/project";
202
+        form_set_value($form['overrides']['boinc_project_config_dir'], $values['boinc_project_config_dir'], $form_state);
203 203
     }
204 204
     if (!$values['boinc_user_image_dir']) {
205
-      $values['boinc_user_image_dir'] = "{$values['boinc_root_dir']}/html/user_profile/images";
206
-      form_set_value($form['overrides']['boinc_user_image_dir'], $values['boinc_user_image_dir'], $form_state);
205
+        $values['boinc_user_image_dir'] = "{$values['boinc_root_dir']}/html/user_profile/images";
206
+        form_set_value($form['overrides']['boinc_user_image_dir'], $values['boinc_user_image_dir'], $form_state);
207 207
     }
208 208
     // Validate that required BOINC content is found
209 209
     if (!is_readable("{$values['boinc_config_xml_dir']}/config.xml")) {
210
-      form_set_error('boinc_config_xml_dir', t('@file not found in %directory',
210
+        form_set_error('boinc_config_xml_dir', t('@file not found in %directory',
211 211
         array(
212
-          '@file' => 'config.xml',
213
-          '%directory' => "{$values['boinc_config_xml_dir']}/"
212
+            '@file' => 'config.xml',
213
+            '%directory' => "{$values['boinc_config_xml_dir']}/"
214 214
         )
215
-      ));
215
+        ));
216 216
     }
217 217
     if (!is_readable("{$values['boinc_html_inc_dir']}/util.inc")) {
218
-      form_set_error('boinc_html_inc_dir', t('@file not found in %directory',
218
+        form_set_error('boinc_html_inc_dir', t('@file not found in %directory',
219 219
         array(
220
-          '@file' => 'util.inc',
221
-          '%directory' => "{$values['boinc_html_inc_dir']}/"
220
+            '@file' => 'util.inc',
221
+            '%directory' => "{$values['boinc_html_inc_dir']}/"
222 222
         )
223
-      ));
223
+        ));
224 224
     }
225 225
     if (!is_readable("{$values['boinc_project_config_dir']}/project.inc")) {
226
-      form_set_error('boinc_project_config_dir', t('@file not found in %directory',
226
+        form_set_error('boinc_project_config_dir', t('@file not found in %directory',
227 227
         array(
228
-          '@file' => 'project.inc',
229
-          '%directory' => "{$values['boinc_project_config_dir']}/"
228
+            '@file' => 'project.inc',
229
+            '%directory' => "{$values['boinc_project_config_dir']}/"
230 230
         )
231
-      ));
231
+        ));
232 232
     }
233 233
     if (!is_dir($values['boinc_user_image_dir'])) {
234
-      form_set_error('boinc_user_image_dir', t('Profile image directory not found
234
+        form_set_error('boinc_user_image_dir', t('Profile image directory not found
235 235
         at %directory', array('%directory' => $values['boinc_user_image_dir'])
236
-      ));
236
+        ));
237 237
     }
238 238
     if ($values['boinc_host_sched_logs_dir']
239 239
         AND !is_dir($values['boinc_host_sched_logs_dir'])
240
-      ) {
241
-      form_set_error('boinc_host_sched_logs_dir', t('Host scheduler log
240
+        ) {
241
+        form_set_error('boinc_host_sched_logs_dir', t('Host scheduler log
242 242
         directory not found at %directory',
243 243
         array('%directory' => $values['boinc_host_sched_logs_dir'])
244
-      ));
244
+        ));
245
+    }
245 246
     }
246
-  }
247 247
 }
248 248
 
249 249
 /**
250
-  * Handle post-validation submission of BOINC environment form.
251
-  */
250
+ * Handle post-validation submission of BOINC environment form.
251
+ */
252 252
 function boincuser_admin_environment_submit($form, &$form_state) {
253
-  unset($_SESSION['boinc_env']);
254
-  drupal_set_message(t('BOINC environment settings have been updated.'));
253
+    unset($_SESSION['boinc_env']);
254
+    drupal_set_message(t('BOINC environment settings have been updated.'));
255 255
 }
256 256
 
257 257
 /**
258
-  * The BOINC scheduler form provides options for how scheduler tags are
259
-  * inserted into the front page
260
-  */
258
+ * The BOINC scheduler form provides options for how scheduler tags are
259
+ * inserted into the front page
260
+ */
261 261
 function boincuser_admin_scheduler(&$form_state) {
262
-  $form = array();
263
-  $config_cgi_url = '';
264
-  if ($config_xml_dir = variable_get('boinc_config_xml_dir', '')) {
262
+    $form = array();
263
+    $config_cgi_url = '';
264
+    if ($config_xml_dir = variable_get('boinc_config_xml_dir', '')) {
265 265
     // Get the cgi_url option from the config file as the default scheduler URL
266 266
     $xml = new DOMDocument();
267 267
     if ($xml->load("{$config_xml_dir}/config.xml")) {
268
-      $config = xml_to_array($xml);
269
-      if (isset($config['boinc']['config']['cgi_url']['@value'])) {
268
+        $config = xml_to_array($xml);
269
+        if (isset($config['boinc']['config']['cgi_url']['@value'])) {
270 270
         $config_cgi_url = rtrim(trim($config['boinc']['config']['cgi_url']['@value']), '/');
271 271
         $config_cgi_url .= '/cgi';
272
-      }
272
+        }
273 273
     }
274
-  }
275
-  $default = array(
274
+    }
275
+    $default = array(
276 276
     'boinc_scheduler_urls' => variable_get('boinc_scheduler_urls', $config_cgi_url),
277 277
     'boinc_scheduler_tag_format_old' => variable_get('boinc_scheduler_tag_format_old', 1),
278 278
     'boinc_scheduler_tag_format_new' => variable_get('boinc_scheduler_tag_format_new', 1)
279
-  );
279
+    );
280 280
   
281
-  // Define the form
282
-  $form['boinc_scheduler_urls'] = array(
281
+    // Define the form
282
+    $form['boinc_scheduler_urls'] = array(
283 283
     '#type' => 'textarea',
284 284
     '#title' => t('Scheduling server URLs'),
285 285
     '#default_value' => $default['boinc_scheduler_urls'],
286 286
     '#cols' => 60,
287 287
     '#rows' => 5,
288 288
     '#description' => t('If there are multiple URLs, please enter one per line.'),
289
-  );
290
-  $form['boinc_scheduler_tag_format_old'] = array(
289
+    );
290
+    $form['boinc_scheduler_tag_format_old'] = array(
291 291
     '#type' => 'checkbox',
292 292
     '#title' => t('Old format (@scheduler tag)', array('@scheduler' => '<scheduler>')),
293 293
     '#default_value' => $default['boinc_scheduler_tag_format_old']
294
-  );
295
-  $form['boinc_scheduler_tag_format_new'] = array(
294
+    );
295
+    $form['boinc_scheduler_tag_format_new'] = array(
296 296
     '#type' => 'checkbox',
297 297
     '#title' => t('New format (@link tag)', array('@link' => '<link>')),
298 298
     '#default_value' => $default['boinc_scheduler_tag_format_new']
299
-  );
299
+    );
300 300
   
301
-  return system_settings_form($form);
301
+    return system_settings_form($form);
302 302
 }
303 303
 
304 304
 /**
305
-  * Validate the BOINC scheduler form.
306
-  */
305
+ * Validate the BOINC scheduler form.
306
+ */
307 307
 function boincuser_admin_scheduler_validate($form, &$form_state) {
308
-  $values = $form_state['values'];
309
-  if (!$values['boinc_scheduler_urls']) {
308
+    $values = $form_state['values'];
309
+    if (!$values['boinc_scheduler_urls']) {
310 310
     form_set_error('boinc_scheduler_urls', t('At least one scheduling server
311 311
       URL must be specified.'));
312
-  }
313
-  else {
312
+    }
313
+    else {
314 314
     $urls = explode("\r\n", $values['boinc_scheduler_urls']);
315 315
     foreach ($urls as $key => $url) {
316
-      if (!$url) {
316
+        if (!$url) {
317 317
         unset($urls[$key]);
318 318
         continue;
319
-      }
320
-      if (!filter_var($url, FILTER_VALIDATE_URL)) {
319
+        }
320
+        if (!filter_var($url, FILTER_VALIDATE_URL)) {
321 321
         form_set_error('boinc_scheduler_urls', t('@url is not a valid URL
322 322
           format.', array('@url' => $url)));
323 323
         break;
324
-      }
324
+        }
325 325
     }
326 326
     $form_state['values']['boinc_scheduler_urls'] = implode("\r\n", $urls);
327
-  }
327
+    }
328 328
 }
329 329
 
330 330
 /**
331
-  * Handle post-validation submission of BOINC scheduler form.
332
-  */
331
+ * Handle post-validation submission of BOINC scheduler form.
332
+ */
333 333
 function boincuser_admin_scheduler_submit($form, &$form_state) {
334
-  drupal_set_message(t('BOINC scheduling server settings have been updated.'));
334
+    drupal_set_message(t('BOINC scheduling server settings have been updated.'));
335 335
 }
336 336
 
337 337
 
338 338
 /**
339
-  * Drupal-BOINC Web site related options.
340
-  */
339
+ * Drupal-BOINC Web site related options.
340
+ */
341 341
 function boincuser_admin_weboptions(&$form_state) {
342
-  global $base_url;
343
-  $form = array();
342
+    global $base_url;
343
+    $form = array();
344 344
 
345
-  //form defaults
346
-  $default = array(
345
+    //form defaults
346
+    $default = array(
347 347
     'boinc_weboptions_enableaccountcreateRPC' => variable_get('boinc_weboptions_enableaccountcreateRPC', TRUE),
348 348
     'boinc_weboptions_registrationtitle' => variable_get('boinc_weboptions_registrationtitle', 'Please read and acknowledge our terms of use'),
349 349
     'boinc_weboptions_termsofuse' => variable_get('boinc_weboptions_termsofuse', ''),
@@ -357,65 +357,65 @@  discard block
 block discarded – undo
357 357
     'boinc_weboptions_rulespolicies' => variable_get('boinc_weboptions_rulespolicies', ''),
358 358
     'boinc_other_frontpage' => variable_get('boinc_other_frontpage', ''),
359 359
     'boinc_weboptions_blacklisted_usernames' => variable_get('boinc_weboptions_blacklisted_usernames', "admin\nadministrator\nmoderator"),
360
-  );
360
+    );
361 361
 
362
-  // Define the form
363
-  $form['registrationtitle'] = array(
362
+    // Define the form
363
+    $form['registrationtitle'] = array(
364 364
     '#value' => '<h3>BOINC Registration</h3>',
365
-  );
365
+    );
366 366
 
367
-  $form['boinc_weboptions_enableaccountcreateRPC'] = array(
367
+    $form['boinc_weboptions_enableaccountcreateRPC'] = array(
368 368
     '#type' => 'checkbox',
369 369
     '#title' => t('Enable create_account.php RPC'),
370 370
     '#default_value' => $default['boinc_weboptions_enableaccountcreateRPC'],
371 371
     '#description' => t('If checked, users will be able to create an account remotely using the create_account.php RPC. This option is independent of the user regsitration option found in ') . l(t('User management -> User settings'), '/admin/user/settings') . '. If enabled, user <b>may not be able to see and agree to the terms-of-use</b> to your site\'s privacy and data retention policies!',
372
-  );
372
+    );
373 373
 
374
-  $form['boinc_weboptions_registrationtitle'] = array(
374
+    $form['boinc_weboptions_registrationtitle'] = array(
375 375
     '#type' => 'textfield',
376 376
     '#title' => t('Title of regsistration page'),
377 377
     '#description' => t('Title text presented above the terms of use text.'),
378 378
     '#default_value' => $default['boinc_weboptions_registrationtitle'],
379
-  );
379
+    );
380 380
 
381
-  $form['boinc_weboptions_termsofuse'] = array(
381
+    $form['boinc_weboptions_termsofuse'] = array(
382 382
     '#type' => 'textarea',
383 383
     '#title' => t('Terms of Use Message for User Registration Page'),
384 384
     '#default_value' => $default['boinc_weboptions_termsofuse'],
385 385
     '#cols' => 60,
386 386
     '#rows' => 8,
387 387
     '#description' => t('Text to be displayed on site\'s user registration page. Privacy policy and other data retention information goes here. If empty, there will be no terms of use message, and the title above and checkbox below will not be shown.'),
388
-  );
388
+    );
389 389
 
390
-  $form['boinc_weboptions_overrideboinctou'] = array(
390
+    $form['boinc_weboptions_overrideboinctou'] = array(
391 391
     '#type' => 'checkbox',
392 392
     '#title' => t('Override BOINC terms of use.'),
393 393
     '#default_value' => $default['boinc_weboptions_overrideboinctou'],
394 394
     '#description' => t('Override the BOINC terms_of_use.txt file for get_profject_config.php RPC. If TRUE, the get_project_config.php RPC will use the above terms of use text entered above. Otherwise, the original terms_of_use.txt text file in the project directory is used. And you will need to be responsible for keeping both the text file and the above terms of use text up-to-date and in sync with each other.'),
395
-  );
395
+    );
396 396
 
397
-  $form['boinc_weboptions_agreequestion'] = array(
397
+    $form['boinc_weboptions_agreequestion'] = array(
398 398
     '#type' => 'textfield',
399 399
     '#title' => t('Terms of use agreement question'),
400 400
     '#description' => t('This text is presented to the user as the question next to the \'I agree\' checkbox.'),
401 401
     '#default_value' => $default['boinc_weboptions_agreequestion'],
402
-  );
402
+    );
403 403
 
404
-  $form['boinc_weboptions_registrationtitle2'] = array(
404
+    $form['boinc_weboptions_registrationtitle2'] = array(
405 405
     '#type' => 'textfield',
406 406
     '#title' => t('Instructions for username/email/password questions'),
407 407
     '#description' => t('Title text presented below terms of use and above username/email/password textfields.'),
408 408
     '#default_value' => $default['boinc_weboptions_registrationtitle2'],
409
-  );
409
+    );
410 410
 
411
-  $form['boinc_weboptions_existinguser_tou'] = array(
411
+    $form['boinc_weboptions_existinguser_tou'] = array(
412 412
     '#type' => 'checkbox',
413 413
     '#title' => t('Are existing users forced to agree to the Terms of Use?'),
414 414
     '#default_value' => $default['boinc_weboptions_existinguser_tou'],
415 415
     '#description' => t('If TRUE, existing users are forced to agree to a terms of use (if present) when the login and the system has detected they have not agreed. Otherwise they may login as normal. This option has no affect on whether or not new users must agree to the terms of use.'),
416
-  );
416
+    );
417 417
 
418
-  $form['boinc_weboptions_pathstoignore'] = array(
418
+    $form['boinc_weboptions_pathstoignore'] = array(
419 419
     '#type' => 'textarea',
420 420
     '#title' => t('Paths to ignore the Terms of Use page'),
421 421
     '#default_value' => $default['boinc_weboptions_pathstoignore'],
@@ -424,80 +424,80 @@  discard block
 block discarded – undo
424 424
     '#description' => t('A list of Drupal URLs/paths to ignore for Terms of Use (ToU). If the option above \'Are existing users forced to agree to the Terms of Use?\' is activated, then some paths need to be ignored when checking if a user has agreed to the ToU. A good example is the logout path, "logout", or else users will not be able to logout!
425 425
 <p>There is a default list of paths that must be ignored or else the site will not function. They are not included in this box. Here you may provide additional paths to be ignored, for example the privacy policy page may be accessible so that users may read it before agreeing to the site\'s ToU.
426 426
 <p>Paths should be entered one per line. All paths should be <em>lower-case</em> and  should not include a leading \'/\'. Example: account/info/edit will allow the user to visit ' . $base_url . '/account/info/edit without first agreeing to the ToU. Regexp are allowed. Example: account/* will allow the user to visit any path starting with ' . $base_url . '/account/.'),
427
-  );
427
+    );
428 428
 
429
-  $form['pathtitle'] = array(
429
+    $form['pathtitle'] = array(
430 430
     '#value' => '<h3>Path Options</h3>',
431
-  );
431
+    );
432 432
 
433
-  $form['boinc_weboptions_accountfinish'] = array (
433
+    $form['boinc_weboptions_accountfinish'] = array (
434 434
     '#type' => 'textfield',
435 435
     '#title' => t('Path to a custom account_finish.php page, should be a path to a node'),
436 436
     '#description' => t('Provide a path to a node which will serve as your site\'s landing page for users create an account using the BOINC client manager. They will be directed to this page after the account is created. If blank, a default account_finish page will be used.<br>Examples: account_finish, content/welcome, node/123'),
437 437
     '#default_value' => $default['boinc_weboptions_accountfinish'],
438
-  );
439
-  $form['boinc_weboptions_moderationpage'] = array (
438
+    );
439
+    $form['boinc_weboptions_moderationpage'] = array (
440 440
     '#type' => 'textfield',
441 441
     '#title' => t('Path to the site\'s content moderation info page, should be a path to a node'),
442 442
     '#description' => t('Provide a path to a node which will serve as your site\'s page for account/content moderation information. This will be used on the default account_finish page. If blank, no link to a moderation page will be provided. If a path is provided to the custom account_finish.php page (above), this field will be ignored.<br>Examples: moderation, content/moderation, node/456'),
443 443
     '#default_value' => $default['boinc_weboptions_moderationpage'],
444
-  );
445
-  $form['boinc_weboptions_rulespolicies'] = array (
444
+    );
445
+    $form['boinc_weboptions_rulespolicies'] = array (
446 446
     '#type' => 'textfield',
447 447
     '#title' => t('Path to the site\'s rule and policies page, should be a path to a node'),
448 448
     '#description' => t('Provide a path to a node which will serve as your site\'s rules and policies page. This will be used on the Join page shown to new users. If blank, no link to a rules and policies page will be provided.<br>Examples: rules-and-policies, node/789'),
449 449
     '#default_value' => $default['boinc_weboptions_rulespolicies'],
450
-  );
451
-  $form['boinc_other_frontpage'] = array (
450
+    );
451
+    $form['boinc_other_frontpage'] = array (
452 452
     '#type' => 'textarea',
453 453
     '#title' => bts('Message for site\'s Home Page', array(), NULL, 'boinc:admin-boinc-other-options'),
454 454
     '#default_value' => $default['boinc_other_frontpage'],
455 455
     '#cols' => 60,
456 456
     '#rows' => 8,
457 457
     '#description' => bts('Text to be displayed on the site\'s Home landing page.', array(), NULL, 'boinc:admin-boinc-other-options'),
458
-  );
458
+    );
459 459
 
460
-  $form['Othertitle'] = array(
460
+    $form['Othertitle'] = array(
461 461
     '#value' => '<h3>Other Options</h3>',
462
-  );
462
+    );
463 463
 
464
-  $form['boinc_weboptions_blacklisted_usernames'] = array (
464
+    $form['boinc_weboptions_blacklisted_usernames'] = array (
465 465
     '#type' => 'textarea',
466 466
     '#title' => t('BOINC username blacklist'),
467 467
     '#default_value' => $default['boinc_weboptions_blacklisted_usernames'],
468 468
     '#cols' => 60,
469 469
     '#rows' => 7,
470 470
     '#description' => t('Username blacklist: List of names that users will not be able to choose as their BOINC username. This will only affect Web registration and when a user changes their name using the Web site. Names should be entered one per line.<p>All names should be <em>lower-case</em>. The comparison made is case-insensitive.<p>If you wish to <em>disable</em> this feature, remove all names from this textbox; the blacklist will be empty.'),
471
-  );
471
+    );
472 472
 
473
-  return system_settings_form($form);
473
+    return system_settings_form($form);
474 474
 }
475 475
 
476 476
 /**
477
-  * Validate BOINC other form
478
-  */
477
+ * Validate BOINC other form
478
+ */
479 479
 function boincuser_admin_weboptions_validate($form, &$form_state) {
480
-  $values = $form_state['values'];
480
+    $values = $form_state['values'];
481 481
 
482
-  $accountfinish = $values['boinc_weboptions_accountfinish'];
483
-  if ( ($accountfinish) AND (!drupal_lookup_path('source', $accountfinish)) ) {
482
+    $accountfinish = $values['boinc_weboptions_accountfinish'];
483
+    if ( ($accountfinish) AND (!drupal_lookup_path('source', $accountfinish)) ) {
484 484
     form_set_error('boinc weboptions_accountfinish', t('Path to custom account finish page not found. Please provide a valid path, or leave blank to unset.'));
485
-  }
485
+    }
486 486
 
487
-  $moderationpage = $values['boinc_weboptions_moderationpage'];
488
-  if ( ($moderationpage) AND (!drupal_lookup_path('source', $moderationpage)) ) {
487
+    $moderationpage = $values['boinc_weboptions_moderationpage'];
488
+    if ( ($moderationpage) AND (!drupal_lookup_path('source', $moderationpage)) ) {
489 489
     form_set_error('boinc weboptions_moderationpage', t('Path to moderation page not found. Please provide a valid path, or leave blank to unset.'));
490
-  }
490
+    }
491 491
 
492
-  $rulespolicies = $values['boinc_weboptions_rulespolicies'];
493
-  if ( ($rulespolicies) AND (!drupal_lookup_path('source', $rulespolicies)) ) {
492
+    $rulespolicies = $values['boinc_weboptions_rulespolicies'];
493
+    if ( ($rulespolicies) AND (!drupal_lookup_path('source', $rulespolicies)) ) {
494 494
     form_set_error('boinc weboptions_rulespolicies', t('Path to rules and policies page not found. Please provide a valid path, or leave blank to unset.'));
495
-  }
495
+    }
496 496
 }
497 497
 
498 498
 /**
499
-  * Submit BOINC other form
500
-  */
499
+ * Submit BOINC other form
500
+ */
501 501
 function boincuser_admin_weboptions_submit($form, &$form_state) {
502
-  drupal_set_message( bts("Status: Drupa-BOINC Web site options have been updated", array(), NULL, 'boinc:admin-boinc-website-options') );
502
+    drupal_set_message( bts("Status: Drupa-BOINC Web site options have been updated", array(), NULL, 'boinc:admin-boinc-website-options') );
503 503
 }
Please login to merge, or discard this patch.
default/boinc/modules/boincuser/boincuser_delete/boincuser_delete.module 1 patch
Indentation   +270 added lines, -270 removed lines patch added patch discarded remove patch
@@ -20,15 +20,15 @@  discard block
 block discarded – undo
20 20
  * Implementation of hook_perm().
21 21
  */
22 22
 function boincuser_delete_perm() {
23
-  return array('delete own account');
23
+    return array('delete own account');
24 24
 }
25 25
 
26 26
 /**
27 27
  * Implementation of hook_menu().
28 28
  */
29 29
 function boincuser_delete_menu() {
30
-  $items = array();
31
-  $items['admin/boinc/user_delete'] = array(
30
+    $items = array();
31
+    $items['admin/boinc/user_delete'] = array(
32 32
     'title' => t('Preferences: BOINC user delete'),
33 33
     'description' => t('Configure the BOINC user delete action.'),
34 34
     'page callback' => 'drupal_get_form',
@@ -36,9 +36,9 @@  discard block
 block discarded – undo
36 36
     'access arguments' => array('administer users'),
37 37
     'type' => MENU_NORMAL_ITEM,
38 38
     'file' => 'boincuser_delete.admin.inc',
39
-  );
39
+    );
40 40
 
41
-  $items['admin/boinc/user_delete/%'] = array(
41
+    $items['admin/boinc/user_delete/%'] = array(
42 42
     'title' => t('Admin delete user'),
43 43
     'description' => t('Deletes a user as an admin'),
44 44
     'page callback' => 'drupal_get_form',
@@ -46,9 +46,9 @@  discard block
 block discarded – undo
46 46
     'access arguments' => array('administer users'),
47 47
     'type' => MENU_CALLBACK,
48 48
     'file' => 'boincuser_delete.admin.inc',
49
-  );
49
+    );
50 50
 
51
-  $items['user/%user/deleteconfirm/%'] = array(
51
+    $items['user/%user/deleteconfirm/%'] = array(
52 52
     'title' => t('Final confirmation for account deletion'),
53 53
     'description' => t('Final confirmation for account deletion'),
54 54
     'page callback' => 'drupal_get_form',
@@ -56,9 +56,9 @@  discard block
 block discarded – undo
56 56
     'access callback' => 'boincuser_delete_access',
57 57
     'access arguments' => array(1),
58 58
     'type' => MENU_CALLBACK,
59
-  );
59
+    );
60 60
 
61
-  $items['user/%user/odeleteconfirm/%'] = array(
61
+    $items['user/%user/odeleteconfirm/%'] = array(
62 62
     'title' => t('Final confirmation for account deletion'),
63 63
     'description' => t('Final confirmation for account deletion'),
64 64
     'page callback' => 'drupal_get_form',
@@ -66,204 +66,204 @@  discard block
 block discarded – undo
66 66
     'access callback' => 'boincuser_delete_access',
67 67
     'access arguments' => array(1),
68 68
     'type' => MENU_CALLBACK,
69
-  );
69
+    );
70 70
 
71
-  return $items;
71
+    return $items;
72 72
 }
73 73
 
74 74
 /**
75 75
  * Checks whether a user can delete an account.
76 76
  */
77 77
 function boincuser_delete_access($account) {
78
-  global $user;
79
-  return ((user_access('administer users') || (user_access('delete own account') && $account->uid == $user->uid)) && $account->uid > 0);
78
+    global $user;
79
+    return ((user_access('administer users') || (user_access('delete own account') && $account->uid == $user->uid)) && $account->uid > 0);
80 80
 }
81 81
 
82 82
 /**
83 83
  * Implementation of hook_menu_alter().
84 84
  */
85 85
 function boincuser_delete_menu_alter(&$callbacks) {
86
-  $callbacks['user/%user/delete']['access callback'] = 'boincuser_delete_access';
87
-  $callbacks['user/%user/delete']['access arguments'] = array(1);
88
-  $callbacks['user/%user/delete']['type'] = MENU_CALLBACK;
86
+    $callbacks['user/%user/delete']['access callback'] = 'boincuser_delete_access';
87
+    $callbacks['user/%user/delete']['access arguments'] = array(1);
88
+    $callbacks['user/%user/delete']['type'] = MENU_CALLBACK;
89 89
 }
90 90
 
91 91
 /**
92 92
  * Implementation of hook_form_alter().
93 93
  */
94 94
 function boincuser_delete_form_alter(&$form, $form_state, $form_id) {
95
-  global $user;
95
+    global $user;
96 96
 
97
-  switch($form_id) {
97
+    switch($form_id) {
98 98
     case 'user_profile_form':
99 99
       if ( user_access('delete own account') AND ($form['#uid'] == $user->uid) AND (arg(3)=='') ) {
100 100
         $form['delete'] = array(
101
-          '#type' => 'submit',
102
-          '#value' => bts('Delete Account', array(), null, 'boinc:delete-user-account'),
103
-          '#weight' => 1009,
104
-          '#submit' => array('user_edit_delete_submit'),
105
-          '#prefix' => '<li class="tab">',
106
-          '#suffix' => '</li>',
101
+            '#type' => 'submit',
102
+            '#value' => bts('Delete Account', array(), null, 'boinc:delete-user-account'),
103
+            '#weight' => 1009,
104
+            '#submit' => array('user_edit_delete_submit'),
105
+            '#prefix' => '<li class="tab">',
106
+            '#suffix' => '</li>',
107 107
         );
108
-      }
109
-      else if ( user_access('administer users') ) {
108
+        }
109
+        else if ( user_access('administer users') ) {
110 110
         $form['delete'] = array(
111
-          '#type' => 'submit',
112
-          '#value' => bts('Delete Account', array(), null, 'boinc:delete-user-account'),
113
-          '#weight' => 1009,
114
-          '#submit' => array('_boincuser_delete_goto_admindelete'),
115
-          '#prefix' => '<li class="tab">',
116
-          '#suffix' => '</li>',
111
+            '#type' => 'submit',
112
+            '#value' => bts('Delete Account', array(), null, 'boinc:delete-user-account'),
113
+            '#weight' => 1009,
114
+            '#submit' => array('_boincuser_delete_goto_admindelete'),
115
+            '#prefix' => '<li class="tab">',
116
+            '#suffix' => '</li>',
117 117
         );
118
-      }
119
-      else {
118
+        }
119
+        else {
120 120
         unset($form['delete']);
121
-      }
122
-      break;
121
+        }
122
+        break;
123 123
     case 'user_confirm_delete':
124 124
 
125 125
       $disable_delete = FALSE;
126
-      // If email address was changed less than 7 days (7 * 86400 s)
127
-      // ago, it cannot be changed again.
128
-      $duration = TOKEN_DURATION_ONE_WEEK;
129
-      if (($form['_account']['#value']->boincuser_email_addr_change_time + $duration) > time()) {
126
+        // If email address was changed less than 7 days (7 * 86400 s)
127
+        // ago, it cannot be changed again.
128
+        $duration = TOKEN_DURATION_ONE_WEEK;
129
+        if (($form['_account']['#value']->boincuser_email_addr_change_time + $duration) > time()) {
130 130
         drupal_set_message(
131
-          bts("INFO: Your email address was changed within the past seven (7) days. You may not delete your account until after !time.",
131
+            bts("INFO: Your email address was changed within the past seven (7) days. You may not delete your account until after !time.",
132 132
             array(
133
-              '!time' => date('F j, Y \a\t G:i T', $form['_account']['#value']->boincuser_email_addr_change_time + $duration),
133
+                '!time' => date('F j, Y \a\t G:i T', $form['_account']['#value']->boincuser_email_addr_change_time + $duration),
134 134
             ), NULL, 'boinc:account-credentials-change')
135 135
         , 'info');
136 136
         $disable_delete = TRUE;
137
-      }
137
+        }
138 138
 
139
-      // Configure radio options
140
-      $common_acts = bts("All your posts and comments will be attributed to the Anonymous User. Your user profile will be deleted. Your host information will be deleted. And you will be removed from any team you are a member of.", array(), NULL, 'boinc:delete-user-account');
139
+        // Configure radio options
140
+        $common_acts = bts("All your posts and comments will be attributed to the Anonymous User. Your user profile will be deleted. Your host information will be deleted. And you will be removed from any team you are a member of.", array(), NULL, 'boinc:delete-user-account');
141 141
 
142
-      $deleteoptions = array(
142
+        $deleteoptions = array(
143 143
         'boincuser_delete_softdelete' => bts('<b>Soft delete</b> your account. Your account will be disabled. ', array(), NULL, 'boinc:delete-user-account'),
144 144
         'boincuser_delete_delete' => bts('<b>Delete</b> your account. ', array(), NULL, 'boinc:delete-user-account'),
145
-      );
145
+        );
146 146
 
147
-      $dtypes = variable_get('boincuser_delete_type', 'user_decides');
148
-      // Unset the other option if dtype is set. i.e., if dtype is set
149
-      // to soft delete, unset the hard delete option.  Likewise, add
150
-      // the 'common_acts' sentences to the option that remains.
151
-      switch ($dtypes) {
147
+        $dtypes = variable_get('boincuser_delete_type', 'user_decides');
148
+        // Unset the other option if dtype is set. i.e., if dtype is set
149
+        // to soft delete, unset the hard delete option.  Likewise, add
150
+        // the 'common_acts' sentences to the option that remains.
151
+        switch ($dtypes) {
152 152
         case 'soft_obfuscate':
153 153
           unset($deleteoptions['boincuser_delete_delete']);
154
-          $deleteoptions['boincuser_delete_softdelete'] .= $common_acts;
155
-          break;
154
+            $deleteoptions['boincuser_delete_softdelete'] .= $common_acts;
155
+            break;
156 156
         case 'hard_wipe':
157 157
           unset($deleteoptions['boincuser_delete_softdelete']);
158
-          $deleteoptions['boincuser_delete_delete'] .= $common_acts;
159
-          break;
160
-      }
158
+            $deleteoptions['boincuser_delete_delete'] .= $common_acts;
159
+            break;
160
+        }
161 161
 
162
-      $question = 'Are you sure you want to delete the account <em>' . htmlspecialchars($form['_account']['#value']->boincuser_name) . '</em>?';
163
-      drupal_set_title($question);
162
+        $question = 'Are you sure you want to delete the account <em>' . htmlspecialchars($form['_account']['#value']->boincuser_name) . '</em>?';
163
+        drupal_set_title($question);
164 164
 
165
-      unset($form['description']);
165
+        unset($form['description']);
166 166
 
167
-      $form['main'] = array(
167
+        $form['main'] = array(
168 168
         '#type' => 'fieldset',
169 169
         '#weight' => 1,
170
-      );
170
+        );
171 171
 
172
-      $form['main']['fs1'] = array(
172
+        $form['main']['fs1'] = array(
173 173
         '#type' => 'fieldset',
174 174
         '#title' => bts('Instructions', array(), NULL, 'boinc:delete-user-account'),
175 175
         '#weight' => 10,
176 176
         '#collapsible' => TRUE,
177 177
         '#collapsed' => TRUE,
178
-      );
179
-      $form['main']['fs1']['help'] = array(
178
+        );
179
+        $form['main']['fs1']['help'] = array(
180 180
         '#value' => bts(
181
-          "<p>In order to delete your account, you must provide your password below. You will then be sent an email to the email address on record, with a one-time token that expires in 24-hours. Clicking on this link will bring you to a second form where you must enter your password again. After doing so your account will be deleted.</p>" .
182
-          "<p>If necessary, you may !link first before deleting your account. But you must wait <b>seven (7) days</b> after an email address change before you may delete your account.</p>",
183
-          array(
181
+            "<p>In order to delete your account, you must provide your password below. You will then be sent an email to the email address on record, with a one-time token that expires in 24-hours. Clicking on this link will bring you to a second form where you must enter your password again. After doing so your account will be deleted.</p>" .
182
+            "<p>If necessary, you may !link first before deleting your account. But you must wait <b>seven (7) days</b> after an email address change before you may delete your account.</p>",
183
+            array(
184 184
             '!link' => l(bts('change your email address', array(), NULL, 'boinc:delete-user-account'), '/account/info/edit'),
185
-          ), NULL, 'boinc:delete-user-account'),
185
+            ), NULL, 'boinc:delete-user-account'),
186 186
         '#weight' => 11,
187 187
         '#prefix' => "<div id='delete-instructions'>",
188 188
         '#suffix' => "</div>",
189
-      );
189
+        );
190 190
 
191
-      if ($dtypes == 'user_decides') {
191
+        if ($dtypes == 'user_decides') {
192 192
         $form['main']['common'] = array(
193
-          '#value'  => bts('All choices: ', array(), NULL, 'boinc:delete-user-account') . $common_acts . '<p>' . bts('Disabled means some of your personal data, such as your username and email address, are kept on our systems. Choose \'delete your account\' if you want all personal data to be removed.', array(), NULL, 'boinc:delete-user-account'),
194
-          '#prefix' => "<div id='delete-instructions'>",
195
-          '#suffix' => "</div>",
196
-          '#weight' => 20,
193
+            '#value'  => bts('All choices: ', array(), NULL, 'boinc:delete-user-account') . $common_acts . '<p>' . bts('Disabled means some of your personal data, such as your username and email address, are kept on our systems. Choose \'delete your account\' if you want all personal data to be removed.', array(), NULL, 'boinc:delete-user-account'),
194
+            '#prefix' => "<div id='delete-instructions'>",
195
+            '#suffix' => "</div>",
196
+            '#weight' => 20,
197 197
         );
198
-      }
198
+        }
199 199
 
200
-      $form['main']['user_delete_action'] = array(
200
+        $form['main']['user_delete_action'] = array(
201 201
         '#type' => 'radios',
202 202
         '#options' => $deleteoptions,
203 203
         '#weight' => 21,
204
-      );
205
-      if ($disable_delete) {
204
+        );
205
+        if ($disable_delete) {
206 206
         $form['main']['user_delete_action']['#disabled'] = TRUE;
207
-      }
207
+        }
208 208
 
209
-      // Password field
210
-      if (!$disable_delete) {
209
+        // Password field
210
+        if (!$disable_delete) {
211 211
         $form['main']['current_pass'] = array(
212
-          '#type' => 'password',
213
-          '#title' => bts('Enter your password to delete your account', array(), NULL, 'boinc:delete-user-account'),
214
-          '#size' => 17,
215
-          '#attributes' => array(
212
+            '#type' => 'password',
213
+            '#title' => bts('Enter your password to delete your account', array(), NULL, 'boinc:delete-user-account'),
214
+            '#size' => 17,
215
+            '#attributes' => array(
216 216
             'autocomplete' => 'off',
217
-          ),
218
-          '#prefix' => "<div id='delete-password-field'>",
219
-          '#suffix' => "</div>",
220
-          '#weight' => 25,
217
+            ),
218
+            '#prefix' => "<div id='delete-password-field'>",
219
+            '#suffix' => "</div>",
220
+            '#weight' => 25,
221 221
         );
222
-      }
222
+        }
223 223
 
224
-      $form['separator_bottom'] = array(
224
+        $form['separator_bottom'] = array(
225 225
         '#value' => '<div class="separator buttons"></div>',
226 226
         '#weight' => 999,
227
-      );
227
+        );
228 228
 
229
-      // Configure the action buttons
230
-      $uid = $form['_account']['#value']->uid;
231
-      $form['actions']['#weight'] = 1000;
232
-      $form['actions']['form control tabs prefix'] = array(
229
+        // Configure the action buttons
230
+        $uid = $form['_account']['#value']->uid;
231
+        $form['actions']['#weight'] = 1000;
232
+        $form['actions']['form control tabs prefix'] = array(
233 233
         '#value' => '<ul class="form-control tab-list">',
234 234
         '#weight' => 1001,
235
-      );
236
-
237
-      unset($form['actions']['#prefix']);
238
-      unset($form['actions']['#suffix']);
239
-      $form['actions']['submit']['#prefix'] = '<li class="first tab">';
240
-      $form['actions']['submit']['#suffix'] = '</li>';
241
-      $form['actions']['submit']['#value'] = bts('Submit', array(), NULL, 'boinc:form-submit');
242
-      $form['actions']['submit']['#weight'] = 1002;
243
-      if ($disable_delete) {
235
+        );
236
+
237
+        unset($form['actions']['#prefix']);
238
+        unset($form['actions']['#suffix']);
239
+        $form['actions']['submit']['#prefix'] = '<li class="first tab">';
240
+        $form['actions']['submit']['#suffix'] = '</li>';
241
+        $form['actions']['submit']['#value'] = bts('Submit', array(), NULL, 'boinc:form-submit');
242
+        $form['actions']['submit']['#weight'] = 1002;
243
+        if ($disable_delete) {
244 244
         $form['actions']['submit']['#disabled'] = TRUE;
245 245
         $form['actions']['submit']['#value'] = '';
246
-      }
246
+        }
247 247
 
248
-      $form['actions']['cancel']['#prefix'] = '<li class="tab">';
249
-      $form['actions']['cancel']['#suffix'] = '</li>';
250
-      $form['actions']['cancel']['#weight'] = 1003;
251
-      $form['actions']['cancel']['#value'] = l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'account/info/edit');
252
-      if ($disable_delete) {
248
+        $form['actions']['cancel']['#prefix'] = '<li class="tab">';
249
+        $form['actions']['cancel']['#suffix'] = '</li>';
250
+        $form['actions']['cancel']['#weight'] = 1003;
251
+        $form['actions']['cancel']['#value'] = l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), 'account/info/edit');
252
+        if ($disable_delete) {
253 253
         $form['actions']['cancel']['#prefix'] = '<li class="first tab">';
254
-      }
254
+        }
255 255
 
256
-      $form['actions']['form control tabs suffix'] = array(
256
+        $form['actions']['form control tabs suffix'] = array(
257 257
         '#value' => '</ul>',
258 258
         '#weight' => 1010,
259
-      );
259
+        );
260 260
 
261
-      $form['#redirect'] = 'account/' . $uid;
262
-      $form['#validate'] = array('boincuser_delete_validate');
263
-      $form['#submit'] = array('boincuser_delete_submit');
264
-      break;
261
+        $form['#redirect'] = 'account/' . $uid;
262
+        $form['#validate'] = array('boincuser_delete_validate');
263
+        $form['#submit'] = array('boincuser_delete_submit');
264
+        break;
265 265
 
266
-  } // switch
266
+    } // switch
267 267
 }
268 268
 
269 269
 
@@ -274,29 +274,29 @@  discard block
 block discarded – undo
274 274
  * password.
275 275
  */
276 276
 function boincuser_delete_validate($form, &$form_state) {
277
-  require_boinc('boinc_db');
277
+    require_boinc('boinc_db');
278 278
 
279
-  if ($form_state['values']['user_delete_action'] == '') {
279
+    if ($form_state['values']['user_delete_action'] == '') {
280 280
     form_set_error('user_delete_action', bts('Please select an action to perform using the radio buttons.', array(), NULL, 'boinc:delete-user-account'));
281
-  }
281
+    }
282 282
 
283
-  // check BOINC user exists
284
-  $account = $form_state['values']['_account'];
285
-  $boinc_user = boincuser_load($account->uid, TRUE);
286
-  if (!$boinc_user) {
283
+    // check BOINC user exists
284
+    $account = $form_state['values']['_account'];
285
+    $boinc_user = boincuser_load($account->uid, TRUE);
286
+    if (!$boinc_user) {
287 287
     rules_invoke_event('boincuser_delete_general_error', variable_get('boinc_admin_mailing_list_subject_tag', ''));
288 288
     return form_set_error('current_pass',
289
-      bts('There was a problem deleting your account. The @project administrators have been contacted.',
290
-      array(
289
+        bts('There was a problem deleting your account. The @project administrators have been contacted.',
290
+        array(
291 291
         '@project' => variable_get('site_name', 'Drupal-BOINC'),
292
-      )
293
-      , NULL, 'boinc:delete-user-account')
292
+        )
293
+        , NULL, 'boinc:delete-user-account')
294 294
     );
295
-  }
295
+    }
296 296
 
297
-  if (_boincuser_delete_validatepasswd($boinc_user, $form_state['values']['current_pass'])) {
297
+    if (_boincuser_delete_validatepasswd($boinc_user, $form_state['values']['current_pass'])) {
298 298
     return true;
299
-  }
299
+    }
300 300
 }
301 301
 
302 302
 /**
@@ -307,46 +307,46 @@  discard block
 block discarded – undo
307 307
  * to delete the account.
308 308
  */
309 309
 function boincuser_delete_submit($form, &$form_state) {
310
-  require_boinc('token');
311
-  global $user;
310
+    require_boinc('token');
311
+    global $user;
312 312
 
313
-  $uid = $form_state['values']['_account']->uid;
314
-  $account = user_load(array('uid' => $uid));
313
+    $uid = $form_state['values']['_account']->uid;
314
+    $account = user_load(array('uid' => $uid));
315 315
 
316
-  if (!$account) {
316
+    if (!$account) {
317 317
     rules_invoke_event('boincuser_delete_uid_invalid_error', variable_get('boinc_admin_mailing_list_subject_tag', ''));
318 318
     drupal_set_message(
319
-      bts('ERROR: The user account @uid does not exist. The @project administrators have been notified.',
319
+        bts('ERROR: The user account @uid does not exist. The @project administrators have been notified.',
320 320
         array(
321
-          '@uid' => $uid,
322
-          '@project' => variable_get('site_name', 'Drupal-BOINC'),
321
+            '@uid' => $uid,
322
+            '@project' => variable_get('site_name', 'Drupal-BOINC'),
323 323
         ), NULL, 'delete-user-account'),
324
-      'error');
324
+        'error');
325 325
     watchdog('user', 'Attempted to cancel non-existing user account UID: %uid.', array('%uid' => $uid), WATCHDOG_ERROR);
326 326
     return;
327
-  }
328
-
329
-  global $base_url;
330
-  global $base_path;
331
-  module_load_include('inc', 'rules', 'modules/system.rules');
332
-  $site_name = variable_get('site_name', 'Drupal-BOINC');
333
-  $site_url = $base_url . $base_path . "user/login";
334
-
335
-  // Perform the requested operation
336
-  $op = $form_state['values']['user_delete_action'];
337
-  // create token with 1 day/24 hour expiration
338
-  $mytoken = create_token($account->boincuser_id, 'D', 24*60*60);
339
-  switch ($op) {
327
+    }
328
+
329
+    global $base_url;
330
+    global $base_path;
331
+    module_load_include('inc', 'rules', 'modules/system.rules');
332
+    $site_name = variable_get('site_name', 'Drupal-BOINC');
333
+    $site_url = $base_url . $base_path . "user/login";
334
+
335
+    // Perform the requested operation
336
+    $op = $form_state['values']['user_delete_action'];
337
+    // create token with 1 day/24 hour expiration
338
+    $mytoken = create_token($account->boincuser_id, 'D', 24*60*60);
339
+    switch ($op) {
340 340
     case 'boincuser_delete_softdelete':
341 341
       $myurl = "${base_url}/user/{$account->uid}/odeleteconfirm/$mytoken";
342
-      break;
342
+        break;
343 343
     case 'boincuser_delete_delete':
344 344
       $myurl = "${base_url}/user/{$account->uid}/deleteconfirm/$mytoken";
345
-      break;
346
-  }
345
+        break;
346
+    }
347 347
 
348
-  $mysubject = "Instructions for account deletion at {$site_name}";
349
-  $mymessage = ''
348
+    $mysubject = "Instructions for account deletion at {$site_name}";
349
+    $mymessage = ''
350 350
     . "{$account->boincuser_name},\n"
351 351
     . "\n"
352 352
     . "We have received a request to DELETE your user account at "
@@ -368,25 +368,25 @@  discard block
 block discarded – undo
368 368
     . "\n"
369 369
     . "{$site_name} support team";
370 370
 
371
-  // Create array for sending email to user to notify account is being
372
-  // disabled/deleted. Then send email.
373
-  $settings = array(
371
+    // Create array for sending email to user to notify account is being
372
+    // disabled/deleted. Then send email.
373
+    $settings = array(
374 374
     'from' => '',
375 375
     'subject' => $mysubject,
376 376
     'message' => $mymessage,
377
-  );
378
-  rules_action_mail_to_user($account, $settings);
377
+    );
378
+    rules_action_mail_to_user($account, $settings);
379 379
 
380
-  drupal_set_message(bts("INFO: You have requested account deletion. Please check your email for further instructions.", array(), NULL, 'boinc:delete-user-account'),'info');
380
+    drupal_set_message(bts("INFO: You have requested account deletion. Please check your email for further instructions.", array(), NULL, 'boinc:delete-user-account'),'info');
381 381
 
382
-  $redirect = variable_get('boincuser_delete_redirect', '<front>');
383
-  // Redirect
384
-  if (!empty($redirect)) {
382
+    $redirect = variable_get('boincuser_delete_redirect', '<front>');
383
+    // Redirect
384
+    if (!empty($redirect)) {
385 385
     drupal_goto($redirect);
386
-  }
387
-  else {
386
+    }
387
+    else {
388 388
     drupal_goto();
389
-  }
389
+    }
390 390
 }
391 391
 
392 392
 
@@ -398,88 +398,88 @@  discard block
 block discarded – undo
398 398
  * The final confirmation form for the user to delete their account.
399 399
  */
400 400
 function boincuser_delete_finalconfirmation(&$form_state, $token) {
401
-  require_boinc('token');
401
+    require_boinc('token');
402 402
 
403
-  global $user;
404
-  $form = array();
403
+    global $user;
404
+    $form = array();
405 405
 
406
-  // check BOINC user exists
407
-  $account = user_load(array('uid' => $user->uid));
408
-  $uid = $user->uid;
409
-  $boincid = $account->boincuser_id;
410
-  // check $token is valid
411
-  if (!is_valid_token($boincid, $token, 'D')) {
406
+    // check BOINC user exists
407
+    $account = user_load(array('uid' => $user->uid));
408
+    $uid = $user->uid;
409
+    $boincid = $account->boincuser_id;
410
+    // check $token is valid
411
+    if (!is_valid_token($boincid, $token, 'D')) {
412 412
     drupal_set_message(bts('ERROR: You have supplied an incorrect (most likely expired) token. Please obtain a new token by !link your account be deleted.',
413 413
     array(
414
-      '!link' => l(bts('re-requesting', array(), NULL, 'boinc:delete-user-account'), "/user/${uid}/delete"),
414
+        '!link' => l(bts('re-requesting', array(), NULL, 'boinc:delete-user-account'), "/user/${uid}/delete"),
415 415
     ),
416 416
     NULL, 'boinc:delete-user-account'), 'error');
417 417
     drupal_goto();
418
-  }
418
+    }
419 419
 
420
-  // Attach account to this form.
421
-  $form['_account'] = array('#type' => 'value', '#value' => $account);
420
+    // Attach account to this form.
421
+    $form['_account'] = array('#type' => 'value', '#value' => $account);
422 422
 
423
-  // This form is for hard/wipe delete
424
-  $form['_action'] = array('#type' => 'value', '#value' => 'hard_wipe');
423
+    // This form is for hard/wipe delete
424
+    $form['_action'] = array('#type' => 'value', '#value' => 'hard_wipe');
425 425
 
426
-  // Instructions
427
-  $form['main']['fs1'] = array(
426
+    // Instructions
427
+    $form['main']['fs1'] = array(
428 428
     '#type' => 'fieldset',
429 429
     '#title' => bts('Instructions', array(), NULL, 'boinc:delete-user-account'),
430 430
     '#weight' => 10,
431 431
     '#collapsible' => TRUE,
432 432
     '#collapsed' => TRUE,
433
-  );
434
-  $form['main']['fs1']['instructions1'] = array(
433
+    );
434
+    $form['main']['fs1']['instructions1'] = array(
435 435
     '#value' => '<p>'.
436 436
     bts('You are one-step away from deleting your account. Enter your password in the textbox below and click submit. This action is irreversable: once you delete your account, there is no way un-delete.', array(), NULL, 'boinc:delete-user-account').
437 437
     '</p>',
438 438
     '#prefix' => "<div id='delete-instructions'>",
439 439
     '#suffix' => "</div>",
440
-  );
440
+    );
441 441
 
442
-  $form['main']['fs1']['instructions2'] = array(
442
+    $form['main']['fs1']['instructions2'] = array(
443 443
     '#value' => '<p>'.
444 444
     bts('If you wish to cancel, click cancel and you will be taken to your account dashboard.', array(), NULL, 'boinc:delete-user-account').
445 445
     '</p>',
446 446
     '#prefix' => "<div id='delete-instructions'>",
447 447
     '#suffix' => "</div>",
448
-  );
448
+    );
449 449
 
450
-  // Password field
451
-  $form['main']['current_pass'] = array(
450
+    // Password field
451
+    $form['main']['current_pass'] = array(
452 452
     '#type' => 'password',
453 453
     '#title' => bts('Enter your password to delete your account', array(), NULL, 'boinc:delete-user-account'),
454 454
     '#size' => 17,
455 455
     '#attributes' => array(
456
-      'autocomplete' => 'off',
456
+        'autocomplete' => 'off',
457 457
     ),
458 458
     '#weight' => 25,
459
-  );
459
+    );
460 460
 
461
-  // Form control
462
-  $form['form control tabs prefix'] = array(
461
+    // Form control
462
+    $form['form control tabs prefix'] = array(
463 463
     '#value' => '<ul class="form-control tab-list">',
464 464
     '#weight' => 1001,
465
-  );
466
-  $form['submit'] = array(
465
+    );
466
+    $form['submit'] = array(
467 467
     '#prefix' => '<li class="first tab">',
468 468
     '#type' => 'submit',
469 469
     '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'),
470 470
     '#suffix' => '</li>',
471 471
     '#weight' => 1002,
472
-  );
473
-  $form['form control tabs'] = array(
472
+    );
473
+    $form['form control tabs'] = array(
474 474
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/") . '</li>',
475 475
     '#weight' => 1003,
476
-  );
477
-  $form['form control tabs suffix'] = array(
476
+    );
477
+    $form['form control tabs suffix'] = array(
478 478
     '#value' => '</ul>',
479 479
     '#weight' => 1004,
480
-  );
480
+    );
481 481
 
482
-  return $form;
482
+    return $form;
483 483
 }
484 484
 
485 485
 /**
@@ -487,133 +487,133 @@  discard block
 block discarded – undo
487 487
  * the soft/obfuscate method.
488 488
  */
489 489
 function boincuser_delete_softdelconfirmation(&$form_state, $token) {
490
-  require_boinc('token');
490
+    require_boinc('token');
491 491
 
492
-  global $user;
493
-  $form = array();
492
+    global $user;
493
+    $form = array();
494 494
 
495
-  // check BOINC user exists
496
-  $account = user_load(array('uid' => $user->uid));
497
-  $uid = $user->uid;
498
-  $boincid = $account->boincuser_id;
495
+    // check BOINC user exists
496
+    $account = user_load(array('uid' => $user->uid));
497
+    $uid = $user->uid;
498
+    $boincid = $account->boincuser_id;
499 499
 
500
-  // check $token is valid
501
-  if (!is_valid_token($boincid, $token, 'D')) {
500
+    // check $token is valid
501
+    if (!is_valid_token($boincid, $token, 'D')) {
502 502
     drupal_set_message(bts('ERROR: You have supplied an incorrect (most likely expired) token. Please obtain a new token by !link your account be deleted.',
503 503
     array(
504
-      '!link' => l(bts('re-requesting', array(), NULL, 'boinc:delete-user-account'), "/user/${uid}/delete"),
504
+        '!link' => l(bts('re-requesting', array(), NULL, 'boinc:delete-user-account'), "/user/${uid}/delete"),
505 505
     ),
506 506
     NULL, 'boinc:delete-user-account'), 'error');
507 507
     drupal_goto();
508
-  }
508
+    }
509 509
 
510
-  // Attach account to this form.
511
-  $form['_account'] = array('#type' => 'value', '#value' => $account);
510
+    // Attach account to this form.
511
+    $form['_account'] = array('#type' => 'value', '#value' => $account);
512 512
 
513
-  // This form is for hard/wipe delete
514
-  $form['_action'] = array('#type' => 'value', '#value' => 'soft_obfuscate');
513
+    // This form is for hard/wipe delete
514
+    $form['_action'] = array('#type' => 'value', '#value' => 'soft_obfuscate');
515 515
 
516
-  // Instructions
517
-  $form['main']['fs1'] = array(
516
+    // Instructions
517
+    $form['main']['fs1'] = array(
518 518
     '#type' => 'fieldset',
519 519
     '#title' => bts('Instructions', array(), NULL, 'boinc:delete-user-account'),
520 520
     '#weight' => 10,
521 521
     '#collapsible' => TRUE,
522 522
     '#collapsed' => TRUE,
523
-  );
524
-  $form['main']['fs1']['instructions1'] = array(
523
+    );
524
+    $form['main']['fs1']['instructions1'] = array(
525 525
     '#value' => '<p>'.
526 526
     bts('You are one-step away from deleting your account. Enter your password in the textbox below and click submit. This action is irreversable: once you delete your account, there is no way un-delete.', array(), NULL, 'boinc:delete-user-account').
527 527
     '</p>',
528 528
     '#prefix' => "<div id='delete-instructions'>",
529 529
     '#suffix' => "</div>",
530
-  );
530
+    );
531 531
 
532
-  $form['main']['fs1']['instructions2'] = array(
532
+    $form['main']['fs1']['instructions2'] = array(
533 533
     '#value' => '<p>'.
534 534
     bts('If you wish to cancel, click cancel and you will be taken to your account dashboard.', array(), NULL, 'boinc:delete-user-account').
535 535
     '</p>',
536 536
     '#prefix' => "<div id='delete-instructions'>",
537 537
     '#suffix' => "</div>",
538
-  );
538
+    );
539 539
 
540
-  // Password field
541
-  $form['main']['current_pass'] = array(
540
+    // Password field
541
+    $form['main']['current_pass'] = array(
542 542
     '#type' => 'password',
543 543
     '#title' => bts('Enter your password to delete your account', array(), NULL, 'boinc:delete-user-account'),
544 544
     '#size' => 17,
545 545
     '#attributes' => array(
546
-      'autocomplete' => 'off',
546
+        'autocomplete' => 'off',
547 547
     ),
548 548
     '#weight' => 25,
549
-  );
549
+    );
550 550
 
551
-  // Form control
552
-  $form['form control tabs prefix'] = array(
551
+    // Form control
552
+    $form['form control tabs prefix'] = array(
553 553
     '#value' => '<ul class="form-control tab-list">',
554 554
     '#weight' => 1001,
555
-  );
556
-  $form['submit'] = array(
555
+    );
556
+    $form['submit'] = array(
557 557
     '#prefix' => '<li class="first tab">',
558 558
     '#type' => 'submit',
559 559
     '#value' => bts('Submit', array(), NULL, 'boinc:form-submit'),
560 560
     '#suffix' => '</li>',
561 561
     '#weight' => 1002,
562
-  );
563
-  $form['form control tabs'] = array(
562
+    );
563
+    $form['form control tabs'] = array(
564 564
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "account/") . '</li>',
565 565
     '#weight' => 1003,
566
-  );
567
-  $form['form control tabs suffix'] = array(
566
+    );
567
+    $form['form control tabs suffix'] = array(
568 568
     '#value' => '</ul>',
569 569
     '#weight' => 1004,
570
-  );
570
+    );
571 571
 
572
-  //set validation and submit to the functions below
573
-  $form['#validate'][] = 'boincuser_delete_finalconfirmation_validate';
574
-  $form['#submit'][] = 'boincuser_delete_finalconfirmation_submit';
575
-  return $form;
572
+    //set validation and submit to the functions below
573
+    $form['#validate'][] = 'boincuser_delete_finalconfirmation_validate';
574
+    $form['#submit'][] = 'boincuser_delete_finalconfirmation_submit';
575
+    return $form;
576 576
 }
577 577
 
578 578
 /**
579 579
  * Validation for final confirmation
580 580
  */
581 581
 function boincuser_delete_finalconfirmation_validate($form, &$form_state) {
582
-  $account = $form_state['values']['_account'];
583
-  $boinc_user = BoincUser::lookup_id($account->boincuser_id);
582
+    $account = $form_state['values']['_account'];
583
+    $boinc_user = BoincUser::lookup_id($account->boincuser_id);
584 584
 
585
-  if (_boincuser_delete_validatepasswd($boinc_user, $form_state['values']['current_pass'])) {
585
+    if (_boincuser_delete_validatepasswd($boinc_user, $form_state['values']['current_pass'])) {
586 586
     return true;
587
-  }
587
+    }
588 588
 }
589 589
 
590 590
 /**
591 591
  * Submit for final confirmation
592 592
  */
593 593
 function boincuser_delete_finalconfirmation_submit($form, &$form_state) {
594
-  global $user;
594
+    global $user;
595 595
 
596
-  // Delete the user
597
-  $account = $form_state['values']['_account'];
598
-  $action = $form_state['values']['_action'];
599
-  _boincuser_delete_deleteuser($account, $action);
596
+    // Delete the user
597
+    $account = $form_state['values']['_account'];
598
+    $action = $form_state['values']['_action'];
599
+    _boincuser_delete_deleteuser($account, $action);
600 600
 
601
-  // Destroy the current session:
602
-  session_destroy();
603
-  // Only variables can be passed by reference workaround.
604
-  $null = NULL;
605
-  user_module_invoke('logout', $null, $user);
601
+    // Destroy the current session:
602
+    session_destroy();
603
+    // Only variables can be passed by reference workaround.
604
+    $null = NULL;
605
+    user_module_invoke('logout', $null, $user);
606 606
 
607
-  // Load the anonymous user
608
-  $user = drupal_anonymous_user();
607
+    // Load the anonymous user
608
+    $user = drupal_anonymous_user();
609 609
 
610
-  $redirect = variable_get('boincuser_delete_redirect', '<front>');
611
-  // Redirect
612
-  if (!empty($redirect)) {
610
+    $redirect = variable_get('boincuser_delete_redirect', '<front>');
611
+    // Redirect
612
+    if (!empty($redirect)) {
613 613
     drupal_goto($redirect);
614
-  }
615
-  else {
614
+    }
615
+    else {
616 616
     drupal_goto();
617
-  }
617
+    }
618 618
 
619 619
 }
Please login to merge, or discard this patch.
modules/boincuser/boincuser_delete/includes/boincuser_delete.rules.inc 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -16,18 +16,18 @@
 block discarded – undo
16 16
  */
17 17
 
18 18
 function boincuser_delete_rules_event_info() {
19
-  return array(
19
+    return array(
20 20
     'boincuser_delete_general_error' => array(
21
-      'label' => bts('Error from user deleting own account.', array(), NULL, 'boinc:rule-event'),
22
-      'module' => 'Boincuser_Delete',
23
-      'arguments' => rules_events_hook_boincuser_adminnotify_argument(),
21
+        'label' => bts('Error from user deleting own account.', array(), NULL, 'boinc:rule-event'),
22
+        'module' => 'Boincuser_Delete',
23
+        'arguments' => rules_events_hook_boincuser_adminnotify_argument(),
24 24
     ),
25 25
     'boincuser_delete_uid_invalid_error' => array(
26
-      'label' => bts('Error from user deleting own account. User ID is invalid', array(), NULL, 'boinc:rule-event'),
27
-      'module' => 'Boincuser_Delete',
28
-      'arguments' => rules_events_hook_boincuser_adminnotify_argument(),
26
+        'label' => bts('Error from user deleting own account. User ID is invalid', array(), NULL, 'boinc:rule-event'),
27
+        'module' => 'Boincuser_Delete',
28
+        'arguments' => rules_events_hook_boincuser_adminnotify_argument(),
29 29
     ),
30
-  );
30
+    );
31 31
 }
32 32
 
33 33
 // function rules_events_hook_boincuser_adminnotify_argument is located in boincuser_rules.inc
34 34
\ No newline at end of file
Please login to merge, or discard this patch.
drupal/sites/default/boinc/modules/boincwork/includes/boincwork.rules.inc 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -16,44 +16,44 @@
 block discarded – undo
16 16
  */
17 17
 
18 18
 function boincwork_rules_event_info() {
19
-  return array(
19
+    return array(
20 20
     'boincwork_circular_merge_error' => array(
21
-      'label' => bts('A circular merge of hosts was attempted with error.', array(), NULL, 'boinc:rule-event'),
22
-      'module' => 'BOINCwork',
23
-      'arguments' => rules_events_hook_boincwork_arguments(),
21
+        'label' => bts('A circular merge of hosts was attempted with error.', array(), NULL, 'boinc:rule-event'),
22
+        'module' => 'BOINCwork',
23
+        'arguments' => rules_events_hook_boincwork_arguments(),
24 24
     ),
25 25
     'boincwork_zombie_merge_error' => array(
26
-      'label' => bts('A host merge into a zombie host was attempted with error.', array(), NULL, 'boinc:rule-event'),
27
-      'module' => 'BOINCwork',
28
-      'arguments' => rules_events_hook_boincwork_arguments(),
26
+        'label' => bts('A host merge into a zombie host was attempted with error.', array(), NULL, 'boinc:rule-event'),
27
+        'module' => 'BOINCwork',
28
+        'arguments' => rules_events_hook_boincwork_arguments(),
29 29
     ),
30
-  );
30
+    );
31 31
 }
32 32
 
33 33
 /**
34 34
  * Arguments suitable for boincwork
35 35
  **/
36 36
 function rules_events_hook_boincwork_arguments() {
37
-  return array(
37
+    return array(
38 38
     'oldhost_id' => array(
39
-      'type' => 'number',
40
-      'label' => 'old host id',
41
-      'required' => TRUE,
39
+        'type' => 'number',
40
+        'label' => 'old host id',
41
+        'required' => TRUE,
42 42
     ),
43 43
     'targethost_id' => array(
44
-      'type' => 'number',
45
-      'label' => 'target host id',
46
-      'required' => TRUE,
44
+        'type' => 'number',
45
+        'label' => 'target host id',
46
+        'required' => TRUE,
47 47
     ),
48
-  ) + rules_events_hook_boincwork_adminnotify_argument();
48
+    ) + rules_events_hook_boincwork_adminnotify_argument();
49 49
 }
50 50
 
51 51
 function rules_events_hook_boincwork_adminnotify_argument() {
52
-  return array(
52
+    return array(
53 53
     'subject_tag' => array(
54
-      'type' => 'string',
55
-      'label' => 'Subject tag for email filtering',
56
-      'required' => TRUE,
54
+        'type' => 'string',
55
+        'label' => 'Subject tag for email filtering',
56
+        'required' => TRUE,
57 57
     ),
58
-  ) + rules_events_global_user_argument();
58
+    ) + rules_events_global_user_argument();
59 59
 }
60 60
\ No newline at end of file
Please login to merge, or discard this patch.
drupal/sites/default/boinc/modules/boincwork/includes/boincwork.forms.inc 1 patch
Indentation   +958 added lines, -958 removed lines patch added patch discarded remove patch
@@ -15,16 +15,16 @@  discard block
 block discarded – undo
15 15
  * The structure of the general preferences form
16 16
  */
17 17
 function boincwork_generalprefs_form(&$form_state, $venue, $prefs_preset = null, $advanced = FALSE) {
18
-  $form = array();
19
-  $prefs = null;
20
-  $established = TRUE;
18
+    $form = array();
19
+    $prefs = null;
20
+    $established = TRUE;
21 21
   
22
-  // Enable AHAH form support for dynamically updating content based on preset
23
-  ahah_helper_register($form, $form_state);
22
+    // Enable AHAH form support for dynamically updating content based on preset
23
+    ahah_helper_register($form, $form_state);
24 24
   
25
-  if (!$prefs_preset) {
25
+    if (!$prefs_preset) {
26 26
     if (isset($form_state['storage']['prefs']['preset'])) {
27
-      $prefs_preset = $form_state['storage']['prefs']['preset'];
27
+        $prefs_preset = $form_state['storage']['prefs']['preset'];
28 28
     }
29 29
     
30 30
     // Load preferences from BOINC account
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
     
33 33
     // Take note if this is not an established preference set on the account
34 34
     if (isset($prefs['@attributes']['cleared'])) {
35
-      $established = FALSE;
35
+        $established = FALSE;
36 36
     }
37 37
     
38 38
     // Determine if a preset is selected or if these are custom settings
@@ -47,45 +47,45 @@  discard block
 block discarded – undo
47 47
             $prefs_preset = $prefs['preset']['@value'];
48 48
         }
49 49
     }// if !$prefs_preset
50
-  }
51
-  // Extract mod_time tag if present, because it will be erased with
52
-  // boincwork_get_preset_prefs() below.
53
-  $mod_time = null;
54
-  if (isset($prefs['mod_time']['@value'])) {
55
-      $mod_time = $prefs['mod_time']['@value'];
56
-  }
57
-
58
-  if (isset($form_state['storage']['wip'])) {
59
-      switch ($prefs_preset) {
60
-      case 'standard':
50
+    }
51
+    // Extract mod_time tag if present, because it will be erased with
52
+    // boincwork_get_preset_prefs() below.
53
+    $mod_time = null;
54
+    if (isset($prefs['mod_time']['@value'])) {
55
+        $mod_time = $prefs['mod_time']['@value'];
56
+    }
57
+
58
+    if (isset($form_state['storage']['wip'])) {
59
+        switch ($prefs_preset) {
60
+        case 'standard':
61 61
       case 'maximum':
62 62
       case 'green':
63 63
       case 'minimum':
64 64
           $prefs = boincwork_get_preset_prefs($prefs_preset);
65
-          break;
66
-      case 'custom':
65
+            break;
66
+        case 'custom':
67 67
       default:
68 68
           // Just keeps prefs as they are
69 69
           unset($prefs['preset']);
70
-          break;
71
-      }// switch
72
-  } else {
73
-      $form_state['storage']['wip'] = TRUE;
74
-      if ( !in_array($prefs_preset, array('standard','maximum','green','minimum','custom')) ) {
75
-          if ($established) {
76
-              $prefs_preset = 'custom';
77
-          } else {
78
-              $prefs_preset = 'standard';
79
-              $prefs = boincwork_get_preset_prefs($prefs_preset);
80
-          }// if $established
81
-      }// if $prefs_preset
82
-  }// if WIP
83
-  
84
-  // This set of preferences is used in the form if no preferences
85
-  // have been set above, in variable $prefs.
86
-  require_boinc(array('db', 'prefs'));
87
-  $disk_space_config = get_disk_space_config();
88
-  $default = array(
70
+            break;
71
+        }// switch
72
+    } else {
73
+        $form_state['storage']['wip'] = TRUE;
74
+        if ( !in_array($prefs_preset, array('standard','maximum','green','minimum','custom')) ) {
75
+            if ($established) {
76
+                $prefs_preset = 'custom';
77
+            } else {
78
+                $prefs_preset = 'standard';
79
+                $prefs = boincwork_get_preset_prefs($prefs_preset);
80
+            }// if $established
81
+        }// if $prefs_preset
82
+    }// if WIP
83
+  
84
+    // This set of preferences is used in the form if no preferences
85
+    // have been set above, in variable $prefs.
86
+    require_boinc(array('db', 'prefs'));
87
+    $disk_space_config = get_disk_space_config();
88
+    $default = array(
89 89
     'preset' => $prefs_preset,
90 90
     // Processing...
91 91
     'run_on_batteries' => 0,
@@ -120,385 +120,385 @@  discard block
 block discarded – undo
120 120
     'daily_xfer_limit_mb' => 0,
121 121
     'daily_xfer_period_days' => 0,
122 122
     'dont_verify_images' => 0
123
-  );
124
-  foreach ($default as $name => $value) {
123
+    );
124
+    foreach ($default as $name => $value) {
125 125
     if (isset($prefs[$name])) {
126
-      if (is_array($prefs[$name])) {
126
+        if (is_array($prefs[$name])) {
127 127
         if (isset($prefs[$name]['@value'])) {
128
-          $default[$name] = $prefs[$name]['@value'];
128
+            $default[$name] = $prefs[$name]['@value'];
129
+        }
129 130
         }
130
-      }
131
-      else {
131
+        else {
132 132
         $default[$name] = $prefs[$name];
133
-      }
133
+        }
134
+    }
134 135
     }
135
-  }
136 136
 
137
-  // Standard option sets
138
-  $form['boolean_options'] = array(
137
+    // Standard option sets
138
+    $form['boolean_options'] = array(
139 139
     '#type' => 'value',
140 140
     '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
141
-  );
142
-  $form['hour_options'] = array(
141
+    );
142
+    $form['hour_options'] = array(
143 143
     '#type' => 'value',
144 144
     '#value' => array('0:00','1:00','2:00','3:00','4:00', 
145
-     '5:00','6:00','7:00','8:00','9:00','10:00','11:00', 
146
-     '12:00','13:00','14:00','15:00','16:00','17:00',
147
-     '18:00','19:00','20:00','21:00','22:00','23:00')
148
-  );
149
-  
150
-  // Identify preference sets that are established to distinguish what has been
151
-  // saved to the database from what is just showing default values
152
-  $form['#established'] = $established;
145
+        '5:00','6:00','7:00','8:00','9:00','10:00','11:00', 
146
+        '12:00','13:00','14:00','15:00','16:00','17:00',
147
+        '18:00','19:00','20:00','21:00','22:00','23:00')
148
+    );
149
+  
150
+    // Identify preference sets that are established to distinguish what has been
151
+    // saved to the database from what is just showing default values
152
+    $form['#established'] = $established;
153 153
    
154
-  // Set up the preference container for AHAH
155
-  $form['prefs'] = array(
154
+    // Set up the preference container for AHAH
155
+    $form['prefs'] = array(
156 156
     '#title' => '',
157 157
     '#type' => 'fieldset',
158 158
     '#prefix' => '<div id="prefs-wrapper">', // This is our wrapper div.
159 159
     '#attributes' => array('class' => 'ahah-container'),
160 160
     '#suffix' => '</div>',
161 161
     '#tree'   => TRUE
162
-  );
163
-  //$form['prefs']['debug'] = array('#value' => '<pre>' . print_r($form_state, true) . '</pre>');
162
+    );
163
+    //$form['prefs']['debug'] = array('#value' => '<pre>' . print_r($form_state, true) . '</pre>');
164 164
   
165
-  // Hidden elements
166
-  $form['prefs']['modified'] = array(
165
+    // Hidden elements
166
+    $form['prefs']['modified'] = array(
167 167
     '#type' => 'hidden',
168 168
     '#value' => $mod_time
169
-  );
170
-  $form['prefs']['venue'] = array(
169
+    );
170
+    $form['prefs']['venue'] = array(
171 171
     '#type' => 'hidden',
172 172
     '#value' => $venue
173
-  );
173
+    );
174 174
   
175
-  $form['prefs']['separator_top'] = array(
175
+    $form['prefs']['separator_top'] = array(
176 176
     '#value' => '<div class="separator"></div>'
177
-  );
177
+    );
178 178
   
179
-  // Simplified selectors
180
-  $form['prefs']['preset'] = array(
181
-      '#title' => bts('Presets', array(), NULL, 'boinc:account-preferences-preset:-1:for a user to choose a computing or project preference preset.'),
179
+    // Simplified selectors
180
+    $form['prefs']['preset'] = array(
181
+        '#title' => bts('Presets', array(), NULL, 'boinc:account-preferences-preset:-1:for a user to choose a computing or project preference preset.'),
182 182
     '#type' => 'radios',
183 183
     '#description' => ' ',
184 184
     '#options' => array(
185
-      'standard' => bts('Standard', array(), NULL, 'boinc:account-preferences-preset'),
186
-      'maximum' => bts('Maximum', array(), NULL, 'boinc:account-preferences-preset'),
187
-      'green' => bts('Green', array(), NULL, 'boinc:account-preferences-preset'),
188
-      'minimum' => bts('Minimum', array(), NULL, 'boinc:account-preferences-preset'),
189
-      'custom' => bts('Custom', array(), NULL, 'boinc:account-preferences-preset')
185
+        'standard' => bts('Standard', array(), NULL, 'boinc:account-preferences-preset'),
186
+        'maximum' => bts('Maximum', array(), NULL, 'boinc:account-preferences-preset'),
187
+        'green' => bts('Green', array(), NULL, 'boinc:account-preferences-preset'),
188
+        'minimum' => bts('Minimum', array(), NULL, 'boinc:account-preferences-preset'),
189
+        'custom' => bts('Custom', array(), NULL, 'boinc:account-preferences-preset')
190 190
     ),
191 191
     '#prefix' => '<div class="simple-form-controls">',
192 192
     '#suffix' => '</div>',
193 193
     '#default_value' => $default['preset'],
194 194
     '#ahah' => array(
195
-      'event' => 'change',
196
-      'path' => ahah_helper_path(array('prefs')),
197
-      'wrapper' => 'prefs-wrapper'
195
+        'event' => 'change',
196
+        'path' => ahah_helper_path(array('prefs')),
197
+        'wrapper' => 'prefs-wrapper'
198 198
     )
199
-  );
200
-  $form['prefs']['select preset'] = array(
199
+    );
200
+    $form['prefs']['select preset'] = array(
201 201
     '#type'  => 'submit',
202 202
     '#value' => bts('Update preset', array(), NULL, 'boinc:account-preferences-preset'),
203 203
     '#submit' => array('ahah_helper_generic_submit'),
204 204
     // The 'no-js' class only displays this button if javascript is disabled
205 205
     '#attributes' => array('class' => 'no-js'),
206
-  );
206
+    );
207 207
   
208
-  // Advanced preferences
209
-  $form['prefs']['advanced'] = array(
208
+    // Advanced preferences
209
+    $form['prefs']['advanced'] = array(
210 210
     '#title' => bts('Advanced settings', array(), NULL, 'boinc:account-preferences-option'),
211 211
     '#type' => 'fieldset',
212 212
     '#description' => '',
213 213
     '#collapsible' => TRUE,
214 214
     '#collapsed' => !$advanced,
215 215
     '#attributes' => array('class' => 'advanced-settings'),
216
-  );
216
+    );
217 217
   
218
-  // Processing preferences
218
+    // Processing preferences
219 219
   
220
-  $form['prefs']['advanced']['anchor'] = array(
220
+    $form['prefs']['advanced']['anchor'] = array(
221 221
     '#value' => '<a name="advanced"></a>'
222
-  );
222
+    );
223 223
   
224
-  $form['prefs']['advanced']['separator_top'] = array(
224
+    $form['prefs']['advanced']['separator_top'] = array(
225 225
     '#value' => '<div class="separator"></div>'
226
-  );
226
+    );
227 227
   
228
-  $form['prefs']['advanced']['processor'] = array(
228
+    $form['prefs']['advanced']['processor'] = array(
229 229
     '#title' => bts('Processor usage', array(), NULL, 'boinc:account-preferences-computing'),
230 230
     '#type' => 'fieldset',
231 231
     '#description' => '',
232 232
     '#collapsible' => FALSE,
233 233
     '#collapsed' => FALSE
234
-  );
235
-  $form['prefs']['advanced']['processor']['run_on_batteries'] = array(
234
+    );
235
+    $form['prefs']['advanced']['processor']['run_on_batteries'] = array(
236 236
     '#title' => bts('Suspend when computer is on battery?', array(), NULL, 'boinc:account-preferences-computing'),
237 237
     '#type' => 'radios',
238 238
     '#description' => bts('Suspends computing on portables when running on battery power.', array(), NULL, 'boinc:account-preferences-computing'),
239 239
     '#options' => $form['boolean_options']['#value'],
240 240
     '#attributes' => array('class' => 'fancy'),
241 241
     '#default_value' => ($default['run_on_batteries']) ? 0 : 1 // intentional inversion of setting
242
-  );
243
-  $form['prefs']['advanced']['processor']['run_if_user_active'] = array(
242
+    );
243
+    $form['prefs']['advanced']['processor']['run_if_user_active'] = array(
244 244
     '#title' => bts('Suspend when computer is in use?', array(), NULL, 'boinc:account-preferences-computing'),
245 245
     '#type' => 'radios',
246 246
     '#description' => bts("Suspends computing and file transfers when you're using the computer.", array(), NULL, 'boinc:account-preferences-computing'),
247 247
     '#options' => $form['boolean_options']['#value'],
248 248
     '#attributes' => array('class' => 'fancy'),
249 249
     '#default_value' => ($default['run_if_user_active']) ? 0 : 1 // intentional inversion of setting
250
-  );
251
-  $form['prefs']['advanced']['processor']['run_gpu_if_user_active'] = array(
250
+    );
251
+    $form['prefs']['advanced']['processor']['run_gpu_if_user_active'] = array(
252 252
     '#title' => bts('Suspend GPU computing when computer is in use?', array(), NULL, 'boinc:account-preferences-computing'),
253 253
     '#type' => 'radios',
254 254
     '#description' => bts("Suspends GPU computing when you're using the computer.", array(), NULL, 'boinc:account-preferences-computing'),
255 255
     '#options' => $form['boolean_options']['#value'],
256 256
     '#attributes' => array('class' => 'fancy'),
257 257
     '#default_value' => ($default['run_gpu_if_user_active']) ? 0 : 1 // intentional inversion of setting
258
-  );
259
-  $form['prefs']['advanced']['processor']['idle_time_to_run'] = array(
260
-      '#title' => bts('"In use" means mouse/keyboard input in last', array(), NULL, 'boinc:account-preferences-computing'),
258
+    );
259
+    $form['prefs']['advanced']['processor']['idle_time_to_run'] = array(
260
+        '#title' => bts('"In use" means mouse/keyboard input in last', array(), NULL, 'boinc:account-preferences-computing'),
261 261
     '#type' => 'textfield',
262 262
     '#field_suffix' => bts('minutes', array(), NULL, 'boinc:unit-of-time'),
263 263
     '#default_value' => $default['idle_time_to_run'],
264 264
     '#size' => 1,
265 265
     '#description' => bts('This determines when the computer is considered "in use".', array(), NULL, 'boinc:account-preferences-computing')
266
-  );
267
-  $form['prefs']['advanced']['processor']['suspend_if_no_recent_input'] = array(
266
+    );
267
+    $form['prefs']['advanced']['processor']['suspend_if_no_recent_input'] = array(
268 268
     '#title' => bts('Suspend when no mouse/keyboard input in last', array(), NULL, 'boinc:account-preferences-computing'),
269 269
     '#type' => 'textfield',
270 270
     '#field_suffix' => bts('minutes', array(), NULL, 'boinc:unit-of-time'),
271 271
     '#default_value' => $default['suspend_if_no_recent_input'],
272 272
     '#size' => 1,
273 273
     '#description' => bts('This allows some computers to enter low-power mode when not in use.', array(), NULL, 'boinc:account-preferences-computing')
274
-  );
275
-  $form['prefs']['advanced']['processor']['suspend_cpu_usage'] = array(
274
+    );
275
+    $form['prefs']['advanced']['processor']['suspend_cpu_usage'] = array(
276 276
     '#title' => bts('Suspend when non-BOINC CPU usage is above', array(), NULL, 'boinc:account-preferences-computing'),
277 277
     '#type' => 'textfield',
278 278
     '#field_suffix' => '%',
279 279
     '#default_value' => $default['suspend_cpu_usage'],
280 280
     '#size' => 1,
281 281
     '#description' => bts('Suspend computing when your computer is busy running other programs.', array(), NULL, 'boinc:account-preferences-computing'),
282
-  );
283
-  $form['prefs']['advanced']['processor']['hour_label'] = array(
282
+    );
283
+    $form['prefs']['advanced']['processor']['hour_label'] = array(
284 284
     '#value' => '<div class="form-item"><label>' . bts('Compute only between:', array(), NULL, 'boinc:account-preferences-computing') . '</label></div>'
285
-  );
286
-  $form['prefs']['advanced']['processor']['start_hour'] = array(
285
+    );
286
+    $form['prefs']['advanced']['processor']['start_hour'] = array(
287 287
     '#type' => 'select',
288 288
     '#options' => $form['hour_options']['#value'],
289 289
     '#default_value' => $default['start_hour']
290
-  );
291
-  $form['prefs']['advanced']['processor']['hour_delimiter'] = array(
290
+    );
291
+    $form['prefs']['advanced']['processor']['hour_delimiter'] = array(
292 292
     '#value' => '<span>' . bts('and', array(), NULL, 'boinc:account-preference') . '</span>'
293
-  );
294
-  $form['prefs']['advanced']['processor']['end_hour'] = array(
293
+    );
294
+    $form['prefs']['advanced']['processor']['end_hour'] = array(
295 295
     '#type' => 'select',
296 296
     '#options' => $form['hour_options']['#value'],
297 297
     '#default_value' => $default['end_hour']
298
-  );
299
-  $form['prefs']['advanced']['processor']['hour_description'] = array(
298
+    );
299
+    $form['prefs']['advanced']['processor']['hour_description'] = array(
300 300
     '#value' => '<div class="form-item slim"><div class="description">' . bts('Compute only during a particular period each day.', array(), NULL, 'boinc:account-preferences-computing') . '</div></div>'
301
-  );
302
-  $form['prefs']['advanced']['processor']['leave_apps_in_memory'] = array(
301
+    );
302
+    $form['prefs']['advanced']['processor']['leave_apps_in_memory'] = array(
303 303
     '#title' => bts('Leave non-GPU tasks in memory while suspended?', array(), NULL, 'boinc:account-preferences-computing'),
304 304
     '#type' => 'radios',
305 305
     '#options' => $form['boolean_options']['#value'],
306 306
     '#attributes' => array('class' => 'fancy'),
307 307
     '#default_value' => $default['leave_apps_in_memory'],
308 308
     '#description' => bts('If "Yes", suspended tasks stay in memory, and resume with no work lost. If "No", suspended tasks are removed from memory, and resume from their last checkpoint.', array(), NULL, 'boinc:account-preferences-computing')
309
-  );
310
-  $form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes'] = array(
309
+    );
310
+    $form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes'] = array(
311 311
     '#title' => bts('Switch between tasks every', array(), NULL, 'boinc:account-preferences-computing'),
312 312
     '#type' => 'textfield',
313 313
     '#field_suffix' => bts('minutes', array(), NULL, 'boinc:unit-of-time'),
314 314
     '#default_value' => $default['cpu_scheduling_period_minutes'],
315 315
     '#size' => 1,
316 316
     '#description' => bts('If you run several projects, BOINC may switch between them this often.', array(), NULL, 'boinc:account-preferences-computing')
317
-  );
318
-  $form['prefs']['advanced']['processor']['max_ncpus_pct'] = array(
317
+    );
318
+    $form['prefs']['advanced']['processor']['max_ncpus_pct'] = array(
319 319
     '#title' => bts('Use at most', array(), NULL, 'boinc:account-preferences-computing'),
320 320
     '#type' => 'textfield',
321 321
     '#field_suffix' => bts('% of the processors', array(), NULL, 'boinc:account-preferences-computing'),
322 322
     '#default_value' => $default['max_ncpus_pct'],
323 323
     '#size' => 1,
324 324
     '#description' => bts('Keep some CPUs free for other applications. Example: 75% means use 6 cores on an 8-core CPU.', array(), NULL, 'boinc:account-preferences-computing'),
325
-  );
326
-  $form['prefs']['advanced']['processor']['cpu_usage_limit'] = array(
325
+    );
326
+    $form['prefs']['advanced']['processor']['cpu_usage_limit'] = array(
327 327
     '#title' => bts('Use at most', array(), NULL, 'boinc:account-preferences-computing'),
328 328
     '#type' => 'textfield',
329 329
     '#field_suffix' => bts('% of the CPU time', array(), NULL, 'boinc:account-preferences-computing'),
330 330
     '#default_value' => $default['cpu_usage_limit'],
331 331
     '#size' => 1,
332 332
     '#description' => bts('Suspend/resume computing every few seconds to reduce CPU temperature and energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, and repeat.', array(), NULL, 'boinc:account-preferences-computing')
333
-  );
333
+    );
334 334
   
335
-  // Disk and memory preferences
336
-  $form['prefs']['advanced']['storage'] = array(
335
+    // Disk and memory preferences
336
+    $form['prefs']['advanced']['storage'] = array(
337 337
     '#title' => bts('Disk and memory usage', array(), NULL, 'boinc:account-preferences-computing'),
338 338
     '#type' => 'fieldset',
339 339
     '#description' => '',
340 340
     '#collapsible' => FALSE,
341 341
     '#collapsed' => FALSE
342
-  );
343
-  $form['prefs']['advanced']['storage']['disk_max_used_gb'] = array(
342
+    );
343
+    $form['prefs']['advanced']['storage']['disk_max_used_gb'] = array(
344 344
     '#title' => bts('Disk: use no more than', array(), NULL, 'boinc:account-preferences-computing'),
345 345
     '#type' => 'textfield',
346 346
     '#field_suffix' => 'GB',
347 347
     '#default_value' => $default['disk_max_used_gb'],
348 348
     '#size' => 1,
349 349
     '#description' => bts('Limit the total amount of disk space used by BOINC.', array(), NULL, 'boinc:account-preferences-computing'),
350
-  ); 
351
-  $form['prefs']['advanced']['storage']['disk_min_free_gb'] = array(
350
+    ); 
351
+    $form['prefs']['advanced']['storage']['disk_min_free_gb'] = array(
352 352
     '#title' => bts('Disk: leave at least', array(), NULL, 'boinc:account-preferences-computing'),
353 353
     '#type' => 'textfield',
354 354
     '#field_suffix' => 'GB free',
355 355
     '#default_value' => $default['disk_min_free_gb'],
356 356
     '#size' => 1,
357 357
     '#description' => bts('Limit disk usage to leave this much free space on the volume where BOINC stores data.', array(), NULL, 'boinc:account-preferences-computing'),
358
-  );
359
-  $form['prefs']['advanced']['storage']['disk_max_used_pct'] = array(
358
+    );
359
+    $form['prefs']['advanced']['storage']['disk_max_used_pct'] = array(
360 360
     '#title' => bts('Disk: use no more than', array(), NULL, 'boinc:account-preferences-computing'),
361 361
     '#type' => 'textfield',
362 362
     '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
363 363
     '#default_value' => $default['disk_max_used_pct'],
364 364
     '#size' => 1,
365 365
     '#description' => bts('Limit the percentage of disk space used by BOINC on the volume where it stores data.', array(), NULL, 'boinc:account-preferences-computing')
366
-  ); 
367
-  $form['prefs']['advanced']['storage']['disk_interval'] = array(
366
+    ); 
367
+    $form['prefs']['advanced']['storage']['disk_interval'] = array(
368 368
     '#title' => bts('Request tasks to checkpoint at most every', array(), NULL, 'boinc:account-preferences-computing'),
369 369
     '#type' => 'textfield',
370 370
     '#field_suffix' => bts('seconds', array(), NULL, 'boinc:unit-of-time'),
371 371
     '#default_value' => $default['disk_interval'],
372 372
     '#size' => 1,
373 373
     '#description' => bts('This controls how often tasks save their state to disk, so that later they can be continued from that point.', array(), NULL, 'boinc:account-preferences-computing')
374
-  );
375
-  $form['prefs']['advanced']['storage']['vm_max_used_pct'] = array(
374
+    );
375
+    $form['prefs']['advanced']['storage']['vm_max_used_pct'] = array(
376 376
     '#title' => bts('Page/swap file: use at most', array(), NULL, 'boinc:account-preferences-computing'),
377 377
     '#type' => 'textfield',
378 378
     '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
379 379
     '#default_value' => $default['vm_max_used_pct'],
380 380
     '#size' => 1,
381 381
     '#description' => bts('Limit the swap space (page file) used by BOINC.', array(), NULL, 'boinc:account-preferences-computing')
382
-  );
383
-  $form['prefs']['advanced']['storage']['ram_max_used_busy_pct'] = array(
382
+    );
383
+    $form['prefs']['advanced']['storage']['ram_max_used_busy_pct'] = array(
384 384
     '#title' => bts('Memory: when computer is in use, use at most', array(), NULL, 'boinc:account-preferences-computing'),
385 385
     '#type' => 'textfield',
386 386
     '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
387 387
     '#default_value' => $default['ram_max_used_busy_pct'],
388 388
     '#size' => 1,
389 389
     '#description' => bts("Limit the memory used by BOINC when you're using the computer.", array(), NULL, 'boinc:account-preferences-computing')
390
-  );
391
-  $form['prefs']['advanced']['storage']['ram_max_used_idle_pct'] = array(
390
+    );
391
+    $form['prefs']['advanced']['storage']['ram_max_used_idle_pct'] = array(
392 392
     '#title' => bts('Memory: when computer is not in use, use at most', array(), NULL, 'boinc:account-preferences-computing'),
393 393
     '#type' => 'textfield',
394 394
     '#field_suffix' => bts('% of total', array(), NULL, 'boinc:account-preferences-computing'),
395 395
     '#default_value' => $default['ram_max_used_idle_pct'],
396 396
     '#size' => 1,
397 397
     '#description' => bts("Limit the memory used by BOINC when you're not using the computer.", array(), NULL, 'boinc:account-preferences-computing')
398
-  );
398
+    );
399 399
   
400
-  // Network preferences
401
-  $form['prefs']['advanced']['network'] = array(
400
+    // Network preferences
401
+    $form['prefs']['advanced']['network'] = array(
402 402
     '#title' => bts('Network usage', array(), NULL, 'boinc:account-preferences-computing'),
403 403
     '#type' => 'fieldset',
404 404
     '#description' => '',
405 405
     '#collapsible' => FALSE,
406 406
     '#collapsed' => FALSE
407
-  );
408
-  $form['prefs']['advanced']['network']['work_buf_min_days'] = array(
407
+    );
408
+    $form['prefs']['advanced']['network']['work_buf_min_days'] = array(
409 409
     '#title' => bts('Store at least', array(), NULL, 'boinc:account-preferences-computing'),
410 410
     '#type' => 'textfield',
411 411
     '#field_suffix' => bts('days of work', array(), NULL, 'boinc:account-preferences-computing'),
412 412
     '#default_value' => $default['work_buf_min_days'],
413 413
     '#size' => 1,
414 414
     '#description' => bts('Store at least enough tasks to keep the computer busy for this long.', array(), NULL, 'boinc:account-preferences-computing')
415
-  ); 
416
-  $form['prefs']['advanced']['network']['work_buf_additional_days'] = array(
415
+    ); 
416
+    $form['prefs']['advanced']['network']['work_buf_additional_days'] = array(
417 417
     '#title' => bts('Store up to an additional', array(), NULL, 'boinc:account-preferences-computing'),
418 418
     '#type' => 'textfield',
419 419
     '#field_suffix' => bts('days', array(), NULL, 'boinc:unit-of-time'),
420 420
     '#default_value' => $default['work_buf_additional_days'],
421 421
     '#size' => 1,
422 422
     '#description' => bts('Store additional tasks above the minimum level.  Determines how much work is requested when contacting a project.', array(), NULL, 'boinc:account-preferences-computing')
423
-  ); 
424
-  $form['prefs']['advanced']['network']['confirm_before_connecting'] = array(
423
+    ); 
424
+    $form['prefs']['advanced']['network']['confirm_before_connecting'] = array(
425 425
     '#title' => bts('Confirm before connecting to Internet?', array(), NULL, 'boinc:account-preferences-computing'),
426 426
     '#type' => 'radios',
427 427
     '#options' => $form['boolean_options']['#value'],
428 428
     '#attributes' => array('class' => 'fancy'),
429 429
     '#default_value' => $default['confirm_before_connecting'],
430 430
     '#description' => bts('Useful only if you have a modem, ISDN or VPN connection.', array(), NULL, 'boinc:account-preferences-computing')
431
-  ); 
432
-  $form['prefs']['advanced']['network']['hangup_if_dialed'] = array(
431
+    ); 
432
+    $form['prefs']['advanced']['network']['hangup_if_dialed'] = array(
433 433
     '#title' => bts('Disconnect when done?', array(), NULL, 'boinc:account-preferences-computing'),
434 434
     '#type' => 'radios',
435 435
     '#options' => $form['boolean_options']['#value'],
436 436
     '#attributes' => array('class' => 'fancy'),
437 437
     '#default_value' => $default['hangup_if_dialed'],
438 438
     '#description' => bts('Useful only if you have a modem, ISDN or VPN connection.', array(), NULL, 'boinc:account-preferences-computing')
439
-  );
440
-  $form['prefs']['advanced']['network']['max_bytes_sec_down'] = array(
439
+    );
440
+    $form['prefs']['advanced']['network']['max_bytes_sec_down'] = array(
441 441
     '#title' => bts('Limit download rate to', array(), NULL, 'boinc:account-preferences-computing'),
442 442
     '#type' => 'textfield',
443 443
     '#field_suffix' => 'Kbytes/sec',
444 444
     '#default_value' => $default['max_bytes_sec_down']/1000,
445 445
     '#size' => 1,
446 446
     '#description' => bts('Limit the download rate of file transfers.', array(), NULL, 'boinc:account-preferences-computing')
447
-  ); 
448
-  $form['prefs']['advanced']['network']['max_bytes_sec_up'] = array(
447
+    ); 
448
+    $form['prefs']['advanced']['network']['max_bytes_sec_up'] = array(
449 449
     '#title' => bts('Limit upload rate to', array(), NULL, 'boinc:account-preferences-computing'),
450 450
     '#type' => 'textfield',
451 451
     '#field_suffix' => 'Kbytes/sec',
452 452
     '#default_value' => $default['max_bytes_sec_up']/1000,
453 453
     '#size' => 1,
454 454
     '#description' => bts('Limit the upload rate of file transfers.', array(), NULL, 'boinc:account-preferences-computing')
455
-  );
456
-  $form['prefs']['advanced']['network']['hour_label'] = array(
455
+    );
456
+    $form['prefs']['advanced']['network']['hour_label'] = array(
457 457
     '#value' => '<div class="form-item"><label>' . bts('Transfer files only between', array(), NULL, 'boinc:account-preferences-computing') . '</label></div>'
458
-  );
459
-  $form['prefs']['advanced']['network']['net_start_hour'] = array(
458
+    );
459
+    $form['prefs']['advanced']['network']['net_start_hour'] = array(
460 460
     '#type' => 'select',
461 461
     '#options' => $form['hour_options']['#value'],
462 462
     '#default_value' => $default['net_start_hour']
463
-  );
464
-  $form['prefs']['advanced']['network']['hour_delimiter'] = array(
463
+    );
464
+    $form['prefs']['advanced']['network']['hour_delimiter'] = array(
465 465
     '#value' => '<span>' . bts('and', array(), NULL, 'boinc:account-preference') . '</span>'
466
-  );
467
-  $form['prefs']['advanced']['network']['net_end_hour'] = array(
466
+    );
467
+    $form['prefs']['advanced']['network']['net_end_hour'] = array(
468 468
     '#type' => 'select',
469 469
     '#options' => $form['hour_options']['#value'],
470 470
     '#default_value' => $default['net_end_hour']
471
-  );
472
-  $form['prefs']['advanced']['network']['hour_description'] = array(
471
+    );
472
+    $form['prefs']['advanced']['network']['hour_description'] = array(
473 473
     '#value' => '<div class="form-item slim"><div class="description">' . bts('Transfer files only during a particular period each day.', array(), NULL, 'boinc:account-preferences-computing') . '</div></div>'
474
-  ); 
475
-  $form['prefs']['advanced']['network']['daily_xfer_limit_mb'] = array(
474
+    ); 
475
+    $form['prefs']['advanced']['network']['daily_xfer_limit_mb'] = array(
476 476
     '#title' => bts('Limit usage to', array(), NULL, 'boinc:account-preferences-computing'),
477 477
     '#type' => 'textfield',
478 478
     '#field_suffix' => 'Mbytes',
479 479
     '#default_value' => $default['daily_xfer_limit_mb'],
480 480
     '#size' => 1
481
-  ); 
482
-  $form['prefs']['advanced']['network']['daily_xfer_period_days'] = array(
481
+    ); 
482
+    $form['prefs']['advanced']['network']['daily_xfer_period_days'] = array(
483 483
     '#field_prefix' => 'every',
484 484
     '#type' => 'textfield',
485 485
     '#field_suffix' => bts('days', array(), NULL, 'boinc:unit-of-time'),
486 486
     '#default_value' => $default['daily_xfer_period_days'],
487 487
     '#size' => 1,
488 488
     '#description' => bts('Example: BOINC should transfer at most 2000 MB of data every 30 days.', array(), NULL, 'boinc:account-preferences-computing'),
489
-  ); 
490
-  $form['prefs']['advanced']['network']['dont_verify_images'] = array(
489
+    ); 
490
+    $form['prefs']['advanced']['network']['dont_verify_images'] = array(
491 491
     '#title' => bts('Skip data verification for image files?', array(), NULL, 'boinc:account-preferences-computing'),
492 492
     '#type' => 'radios',
493 493
     '#options' => $form['boolean_options']['#value'],
494 494
     '#attributes' => array('class' => 'fancy'),
495 495
     '#default_value' => $default['dont_verify_images'],
496 496
     '#description' => bts('Only select "Yes" if your Internet provider modifies image files. Skipping verification reduces the security of BOINC.', array(), NULL, 'boinc:account-preferences-computing')
497
-  );
497
+    );
498 498
   
499
-  // The "fancy radios" are made via javascript on document load. In order for
500
-  // these to work with AHAH, we need this crazy setTimeout() call.
501
-  $form['prefs']['fancy-radios'] = array(
499
+    // The "fancy radios" are made via javascript on document load. In order for
500
+    // these to work with AHAH, we need this crazy setTimeout() call.
501
+    $form['prefs']['fancy-radios'] = array(
502 502
     '#value' => '
503 503
       <script>
504 504
         setTimeout(
@@ -509,177 +509,177 @@  discard block
 block discarded – undo
509 509
           300
510 510
         )
511 511
       </script>'
512
-  );
513
-  $form['prefs']['view advanced'] = array(
512
+    );
513
+    $form['prefs']['view advanced'] = array(
514 514
     '#type' => 'hidden',
515 515
     '#value' => 1
516
-  );
516
+    );
517 517
   
518
-  $form['prefs']['separator_bottom'] = array(
518
+    $form['prefs']['separator_bottom'] = array(
519 519
     '#value' => '<div class="separator buttons"></div>'
520
-  );
520
+    );
521 521
   
522
-  // Form control
523
-  $form['prefs']['form control tabs prefix'] = array(
522
+    // Form control
523
+    $form['prefs']['form control tabs prefix'] = array(
524 524
     '#value' => '<ul class="form-control tab-list">'
525
-  );
526
-  $form['prefs']['submit'] = array(
525
+    );
526
+    $form['prefs']['submit'] = array(
527 527
     '#prefix' => '<li class="first tab">',
528 528
     '#type' => 'submit',
529 529
     '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
530 530
     '#suffix' => '</li>'
531
-  );
532
-  $form['prefs']['form control tabs'] = array(
531
+    );
532
+    $form['prefs']['form control tabs'] = array(
533 533
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), drupal_get_path_alias("account/prefs/computing/edit")) . '</li>'
534
-  );
535
-  if ($venue AND $venue != 'generic') {
534
+    );
535
+    if ($venue AND $venue != 'generic') {
536 536
     global $base_path;
537 537
     $form['prefs']['form control tabs']['#value'] .= '<li class="tab">' . 
538
-      l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/computing/clear/{$venue}",
538
+        l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/computing/clear/{$venue}",
539 539
         array(
540
-          'query' => 'destination=' . urlencode(drupal_get_path_alias('account/prefs/computing/combined')),
541
-          'attributes' => array(
540
+            'query' => 'destination=' . urlencode(drupal_get_path_alias('account/prefs/computing/combined')),
541
+            'attributes' => array(
542 542
             'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the @name preference set. Are you sure?',
543
-              array('@name' => $venue), NULL, 'boinc:account-preferences') . '\')'
544
-          )
543
+                array('@name' => $venue), NULL, 'boinc:account-preferences') . '\')'
544
+            )
545 545
         )
546
-      ) . '</li>';
547
-  }
548
-  $form['prefs']['view control'] = array(
546
+        ) . '</li>';
547
+    }
548
+    $form['prefs']['view control'] = array(
549 549
     '#value' => '<li class="first alt tab">' . l('(' . bts('Show comparison view', array(), NULL, 'boinc:account-preferences') . ')', 'account/prefs/computing/combined') . '</li>'
550
-  );
551
-  $form['prefs']['form control tabs suffix'] = array(
550
+    );
551
+    $form['prefs']['form control tabs suffix'] = array(
552 552
     '#value' => '</ul>'
553
-  );
554
-  $form['#submit'][] = 'boincwork_generalprefs_form_submit';
553
+    );
554
+    $form['#submit'][] = 'boincwork_generalprefs_form_submit';
555 555
   
556
-  return $form;
556
+    return $form;
557 557
 }
558 558
 
559 559
 /**
560
-  * Validate the general preferences form.
561
-  */
560
+ * Validate the general preferences form.
561
+ */
562 562
 function boincwork_generalprefs_form_validate($form, &$form_state) {
563
-  require_boinc('util');
564
-  $values = $form_state['values']['prefs']['advanced'];
565
-  
566
-  //drupal_set_message('<pre>' . print_r($form_state['values'], true) . '</pre>');
567
-  // Verify all non-boolean user input values and notify form API of failures
568
-  
569
-  // Processing preferences
570
-  if (!verify_numeric($values['processor']['idle_time_to_run'], 1, 9999)) form_set_error('idle_time_to_run', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['idle_time_to_run']['#title']} [x] {$form['prefs']['advanced']['processor']['idle_time_to_run']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
571
-  if (!verify_numeric($values['processor']['suspend_if_no_recent_input'], 0, 9999)) form_set_error('suspend_if_no_recent_input', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['suspend_if_no_recent_input']['#title']} [x] {$form['prefs']['advanced']['processor']['suspend_if_no_recent_input']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
572
-  if (!verify_numeric($values['processor']['suspend_cpu_usage'], 0, 100)) form_set_error('suspend_cpu_usage', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['suspend_cpu_usage']['#title']} [x] {$form['prefs']['advanced']['processor']['suspend_cpu_usage']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
573
-  if (!verify_numeric($values['processor']['start_hour'], 0, 23)) form_set_error('start_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['start_hour']['#title']} [x] {$form['prefs']['advanced']['processor']['start_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
574
-  if (!verify_numeric($values['processor']['end_hour'], 0, 23)) form_set_error('end_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['end_hour']['#title']} [x] {$form['prefs']['advanced']['processor']['end_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
575
-  if (!verify_numeric($values['processor']['cpu_scheduling_period_minutes'], 1, 9999)) form_set_error('cpu_scheduling_period_minutes', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes']['#title']} [x] {$form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
576
-  if (!verify_numeric($values['processor']['max_ncpus_pct'], 0, 100)) form_set_error('max_ncpus_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['max_ncpus_pct']['#title']} [x] {$form['prefs']['advanced']['processor']['max_ncpus_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
577
-  if (!verify_numeric($values['processor']['cpu_usage_limit'], 0, 100)) form_set_error('cpu_usage_limit', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['cpu_usage_limit']['#title']} [x] {$form['prefs']['advanced']['processor']['cpu_usage_limit']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
578
-
579
-  // Storage preferences
580
-  if (!verify_numeric($values['storage']['disk_max_used_gb'], 0, 9999999)) form_set_error('disk_max_used_gb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_max_used_gb']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_max_used_gb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
581
-  if (!verify_numeric($values['storage']['disk_min_free_gb'], 0.001, 9999999)) form_set_error('disk_min_free_gb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_min_free_gb']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_min_free_gb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
582
-  if (!verify_numeric($values['storage']['disk_max_used_pct'], 0, 100)) form_set_error('disk_max_used_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_max_used_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_max_used_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
583
-  if (!verify_numeric($values['storage']['disk_interval'], 0, 9999999)) form_set_error('disk_interval', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_interval']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_interval']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
584
-  if (!verify_numeric($values['storage']['vm_max_used_pct'], 0, 100)) form_set_error('vm_max_used_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['vm_max_used_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['vm_max_used_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
585
-  if (!verify_numeric($values['storage']['ram_max_used_busy_pct'], 0, 100)) form_set_error('ram_max_used_busy_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['ram_max_used_busy_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['ram_max_used_busy_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
586
-  if (!verify_numeric($values['storage']['ram_max_used_idle_pct'], 0, 100)) form_set_error('ram_max_used_idle_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['ram_max_used_idle_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['ram_max_used_idle_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
587
-
588
-  // Network preferences
589
-  if (!verify_numeric($values['network']['work_buf_min_days'], 0, 10)) form_set_error('work_buf_min_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['work_buf_min_days']['#title']} [x] {$form['prefs']['advanced']['network']['work_buf_min_days']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
590
-  if (!verify_numeric($values['network']['work_buf_additional_days'], 0, 10)) form_set_error('work_buf_additional_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['work_buf_additional_days']['#title']} [x] {$form['prefs']['advanced']['network']['work_buf_additional_days']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
591
-  if (!verify_numeric($values['network']['max_bytes_sec_down'], 0, 9999.999)) form_set_error('max_bytes_sec_down', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['max_bytes_sec_down']['#title']} [x] {$form['prefs']['advanced']['network']['max_bytes_sec_down']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
592
-  if (!verify_numeric($values['network']['max_bytes_sec_up'], 0, 9999.999)) form_set_error('max_bytes_sec_up', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['max_bytes_sec_up']['#title']} [x] {$form['prefs']['advanced']['network']['max_bytes_sec_up']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
593
-  if (!verify_numeric($values['network']['net_start_hour'], 0, 23)) form_set_error('net_start_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['net_start_hour']['#title']} [x] {$form['prefs']['advanced']['network']['net_start_hour']['#field_suffix']}"), NULL, 'boinc:account-prefrences-computing'));
594
-  if (!verify_numeric($values['network']['net_end_hour'], 0, 23)) form_set_error('net_end_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['net_end_hour']['#title']} [x] {$form['prefs']['advanced']['network']['net_end_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
595
-  if (!verify_numeric($values['network']['daily_xfer_limit_mb'], 0, 9999999)) form_set_error('daily_xfer_limit_mb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#title']} [x] {$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
596
-  if (!verify_numeric($values['network']['daily_xfer_period_days'], 0, 9999999)) form_set_error('daily_xfer_period_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#title']} [x] {$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
563
+    require_boinc('util');
564
+    $values = $form_state['values']['prefs']['advanced'];
565
+  
566
+    //drupal_set_message('<pre>' . print_r($form_state['values'], true) . '</pre>');
567
+    // Verify all non-boolean user input values and notify form API of failures
568
+  
569
+    // Processing preferences
570
+    if (!verify_numeric($values['processor']['idle_time_to_run'], 1, 9999)) form_set_error('idle_time_to_run', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['idle_time_to_run']['#title']} [x] {$form['prefs']['advanced']['processor']['idle_time_to_run']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
571
+    if (!verify_numeric($values['processor']['suspend_if_no_recent_input'], 0, 9999)) form_set_error('suspend_if_no_recent_input', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['suspend_if_no_recent_input']['#title']} [x] {$form['prefs']['advanced']['processor']['suspend_if_no_recent_input']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
572
+    if (!verify_numeric($values['processor']['suspend_cpu_usage'], 0, 100)) form_set_error('suspend_cpu_usage', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['suspend_cpu_usage']['#title']} [x] {$form['prefs']['advanced']['processor']['suspend_cpu_usage']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
573
+    if (!verify_numeric($values['processor']['start_hour'], 0, 23)) form_set_error('start_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['start_hour']['#title']} [x] {$form['prefs']['advanced']['processor']['start_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
574
+    if (!verify_numeric($values['processor']['end_hour'], 0, 23)) form_set_error('end_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['end_hour']['#title']} [x] {$form['prefs']['advanced']['processor']['end_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
575
+    if (!verify_numeric($values['processor']['cpu_scheduling_period_minutes'], 1, 9999)) form_set_error('cpu_scheduling_period_minutes', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes']['#title']} [x] {$form['prefs']['advanced']['processor']['cpu_scheduling_period_minutes']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
576
+    if (!verify_numeric($values['processor']['max_ncpus_pct'], 0, 100)) form_set_error('max_ncpus_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['max_ncpus_pct']['#title']} [x] {$form['prefs']['advanced']['processor']['max_ncpus_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
577
+    if (!verify_numeric($values['processor']['cpu_usage_limit'], 0, 100)) form_set_error('cpu_usage_limit', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['processor']['cpu_usage_limit']['#title']} [x] {$form['prefs']['advanced']['processor']['cpu_usage_limit']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
578
+
579
+    // Storage preferences
580
+    if (!verify_numeric($values['storage']['disk_max_used_gb'], 0, 9999999)) form_set_error('disk_max_used_gb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_max_used_gb']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_max_used_gb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
581
+    if (!verify_numeric($values['storage']['disk_min_free_gb'], 0.001, 9999999)) form_set_error('disk_min_free_gb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_min_free_gb']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_min_free_gb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
582
+    if (!verify_numeric($values['storage']['disk_max_used_pct'], 0, 100)) form_set_error('disk_max_used_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_max_used_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_max_used_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
583
+    if (!verify_numeric($values['storage']['disk_interval'], 0, 9999999)) form_set_error('disk_interval', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['disk_interval']['#title']} [x] {$form['prefs']['advanced']['storage']['disk_interval']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
584
+    if (!verify_numeric($values['storage']['vm_max_used_pct'], 0, 100)) form_set_error('vm_max_used_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['vm_max_used_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['vm_max_used_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
585
+    if (!verify_numeric($values['storage']['ram_max_used_busy_pct'], 0, 100)) form_set_error('ram_max_used_busy_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['ram_max_used_busy_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['ram_max_used_busy_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
586
+    if (!verify_numeric($values['storage']['ram_max_used_idle_pct'], 0, 100)) form_set_error('ram_max_used_idle_pct', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['storage']['ram_max_used_idle_pct']['#title']} [x] {$form['prefs']['advanced']['storage']['ram_max_used_idle_pct']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
587
+
588
+    // Network preferences
589
+    if (!verify_numeric($values['network']['work_buf_min_days'], 0, 10)) form_set_error('work_buf_min_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['work_buf_min_days']['#title']} [x] {$form['prefs']['advanced']['network']['work_buf_min_days']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
590
+    if (!verify_numeric($values['network']['work_buf_additional_days'], 0, 10)) form_set_error('work_buf_additional_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['work_buf_additional_days']['#title']} [x] {$form['prefs']['advanced']['network']['work_buf_additional_days']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
591
+    if (!verify_numeric($values['network']['max_bytes_sec_down'], 0, 9999.999)) form_set_error('max_bytes_sec_down', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['max_bytes_sec_down']['#title']} [x] {$form['prefs']['advanced']['network']['max_bytes_sec_down']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
592
+    if (!verify_numeric($values['network']['max_bytes_sec_up'], 0, 9999.999)) form_set_error('max_bytes_sec_up', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['max_bytes_sec_up']['#title']} [x] {$form['prefs']['advanced']['network']['max_bytes_sec_up']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
593
+    if (!verify_numeric($values['network']['net_start_hour'], 0, 23)) form_set_error('net_start_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['net_start_hour']['#title']} [x] {$form['prefs']['advanced']['network']['net_start_hour']['#field_suffix']}"), NULL, 'boinc:account-prefrences-computing'));
594
+    if (!verify_numeric($values['network']['net_end_hour'], 0, 23)) form_set_error('net_end_hour', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['net_end_hour']['#title']} [x] {$form['prefs']['advanced']['network']['net_end_hour']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
595
+    if (!verify_numeric($values['network']['daily_xfer_limit_mb'], 0, 9999999)) form_set_error('daily_xfer_limit_mb', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#title']} [x] {$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
596
+    if (!verify_numeric($values['network']['daily_xfer_period_days'], 0, 9999999)) form_set_error('daily_xfer_period_days', bts('Invalid setting for "%preference"', array('%preference' => "{$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#title']} [x] {$form['prefs']['advanced']['network']['daily_xfer_limit_mb']['#field_suffix']}"), NULL, 'boinc:account-preferences-computing'));
597 597
 }
598 598
 
599 599
 /**
600
-  * Handle post-validation submission of general preferences form.
601
-  */
600
+ * Handle post-validation submission of general preferences form.
601
+ */
602 602
 function boincwork_generalprefs_form_submit($form, &$form_state) {
603
-  global $user;
604
-  $account = user_load($user->uid);
605
-  
606
-  $values = $form_state['values']['prefs']['advanced'];
607
-  $venue = $form_state['values']['prefs']['venue'];
608
-  $preset = $form_state['values']['prefs']['preset'];
609
-  
610
-  // Load preferences from BOINC account
611
-  $prefs = boincwork_load_prefs('general', $venue);
612
-  
613
-  // Processing preferences
614
-  $prefs['run_on_batteries'] = ($values['processor']['run_on_batteries']) ? 0 : 1;
615
-  $prefs['run_if_user_active'] = ($values['processor']['run_if_user_active']) ? 0 : 1;
616
-  $prefs['run_gpu_if_user_active'] = ($values['processor']['run_gpu_if_user_active']) ? 0 : 1;
617
-  $prefs['idle_time_to_run'] = $values['processor']['idle_time_to_run'];
618
-  $prefs['suspend_if_no_recent_input'] = $values['processor']['suspend_if_no_recent_input'];
619
-  $prefs['suspend_cpu_usage'] = $values['processor']['suspend_cpu_usage'];
620
-  $prefs['start_hour'] = $values['processor']['start_hour'];
621
-  $prefs['end_hour'] = $values['processor']['end_hour'];
622
-  $prefs['leave_apps_in_memory'] = ($values['processor']['leave_apps_in_memory']) ? 1 : 0;
623
-  $prefs['cpu_scheduling_period_minutes'] = $values['processor']['cpu_scheduling_period_minutes'];
624
-  $prefs['max_ncpus_pct'] = $values['processor']['max_ncpus_pct'];
625
-  $prefs['cpu_usage_limit'] = $values['processor']['cpu_usage_limit'];
626
-  
627
-  // Storage preferences
628
-  $prefs['disk_max_used_gb'] = $values['storage']['disk_max_used_gb'];
629
-  $prefs['disk_min_free_gb'] = $values['storage']['disk_min_free_gb'];
630
-  $prefs['disk_max_used_pct'] = $values['storage']['disk_max_used_pct'];
631
-  $prefs['disk_interval'] = $values['storage']['disk_interval'];
632
-  $prefs['vm_max_used_pct'] = $values['storage']['vm_max_used_pct'];
633
-  $prefs['ram_max_used_busy_pct'] = $values['storage']['ram_max_used_busy_pct'];
634
-  $prefs['ram_max_used_idle_pct'] = $values['storage']['ram_max_used_idle_pct'];
635
-  
636
-  // Network preferences
637
-  $prefs['work_buf_min_days'] = $values['network']['work_buf_min_days'];
638
-  $prefs['work_buf_additional_days'] = $values['network']['work_buf_additional_days'];
639
-  $prefs['confirm_before_connecting'] = ($values['network']['confirm_before_connecting']) ? 1 : 0;
640
-  $prefs['hangup_if_dialed'] = ($values['network']['hangup_if_dialed']) ? 1 : 0;
641
-  $prefs['max_bytes_sec_down'] = $values['network']['max_bytes_sec_down']*1000;
642
-  $prefs['max_bytes_sec_up'] = $values['network']['max_bytes_sec_up']*1000;
643
-  $prefs['net_start_hour'] = $values['network']['net_start_hour'];
644
-  $prefs['net_end_hour'] = $values['network']['net_end_hour'];
645
-  $prefs['daily_xfer_limit_mb'] = $values['network']['daily_xfer_limit_mb'];
646
-  $prefs['daily_xfer_period_days'] = $values['network']['daily_xfer_period_days'];
647
-  $prefs['dont_verify_images'] = ($values['network']['dont_verify_images']) ? 1 : 0;
648
-
649
-  // transform old way to store the preset into new way
650
-  // ideally this should already have happened in boincwork_generalprefs_form()
651
-  if (isset($prefs['@attributes']['preset'])) {
603
+    global $user;
604
+    $account = user_load($user->uid);
605
+  
606
+    $values = $form_state['values']['prefs']['advanced'];
607
+    $venue = $form_state['values']['prefs']['venue'];
608
+    $preset = $form_state['values']['prefs']['preset'];
609
+  
610
+    // Load preferences from BOINC account
611
+    $prefs = boincwork_load_prefs('general', $venue);
612
+  
613
+    // Processing preferences
614
+    $prefs['run_on_batteries'] = ($values['processor']['run_on_batteries']) ? 0 : 1;
615
+    $prefs['run_if_user_active'] = ($values['processor']['run_if_user_active']) ? 0 : 1;
616
+    $prefs['run_gpu_if_user_active'] = ($values['processor']['run_gpu_if_user_active']) ? 0 : 1;
617
+    $prefs['idle_time_to_run'] = $values['processor']['idle_time_to_run'];
618
+    $prefs['suspend_if_no_recent_input'] = $values['processor']['suspend_if_no_recent_input'];
619
+    $prefs['suspend_cpu_usage'] = $values['processor']['suspend_cpu_usage'];
620
+    $prefs['start_hour'] = $values['processor']['start_hour'];
621
+    $prefs['end_hour'] = $values['processor']['end_hour'];
622
+    $prefs['leave_apps_in_memory'] = ($values['processor']['leave_apps_in_memory']) ? 1 : 0;
623
+    $prefs['cpu_scheduling_period_minutes'] = $values['processor']['cpu_scheduling_period_minutes'];
624
+    $prefs['max_ncpus_pct'] = $values['processor']['max_ncpus_pct'];
625
+    $prefs['cpu_usage_limit'] = $values['processor']['cpu_usage_limit'];
626
+  
627
+    // Storage preferences
628
+    $prefs['disk_max_used_gb'] = $values['storage']['disk_max_used_gb'];
629
+    $prefs['disk_min_free_gb'] = $values['storage']['disk_min_free_gb'];
630
+    $prefs['disk_max_used_pct'] = $values['storage']['disk_max_used_pct'];
631
+    $prefs['disk_interval'] = $values['storage']['disk_interval'];
632
+    $prefs['vm_max_used_pct'] = $values['storage']['vm_max_used_pct'];
633
+    $prefs['ram_max_used_busy_pct'] = $values['storage']['ram_max_used_busy_pct'];
634
+    $prefs['ram_max_used_idle_pct'] = $values['storage']['ram_max_used_idle_pct'];
635
+  
636
+    // Network preferences
637
+    $prefs['work_buf_min_days'] = $values['network']['work_buf_min_days'];
638
+    $prefs['work_buf_additional_days'] = $values['network']['work_buf_additional_days'];
639
+    $prefs['confirm_before_connecting'] = ($values['network']['confirm_before_connecting']) ? 1 : 0;
640
+    $prefs['hangup_if_dialed'] = ($values['network']['hangup_if_dialed']) ? 1 : 0;
641
+    $prefs['max_bytes_sec_down'] = $values['network']['max_bytes_sec_down']*1000;
642
+    $prefs['max_bytes_sec_up'] = $values['network']['max_bytes_sec_up']*1000;
643
+    $prefs['net_start_hour'] = $values['network']['net_start_hour'];
644
+    $prefs['net_end_hour'] = $values['network']['net_end_hour'];
645
+    $prefs['daily_xfer_limit_mb'] = $values['network']['daily_xfer_limit_mb'];
646
+    $prefs['daily_xfer_period_days'] = $values['network']['daily_xfer_period_days'];
647
+    $prefs['dont_verify_images'] = ($values['network']['dont_verify_images']) ? 1 : 0;
648
+
649
+    // transform old way to store the preset into new way
650
+    // ideally this should already have happened in boincwork_generalprefs_form()
651
+    if (isset($prefs['@attributes']['preset'])) {
652 652
     $prefs['preset'] = $prefs['@attributes']['preset'];
653 653
     unset($prefs['@attributes']['preset']);
654
-  }
655
-  // Save the preset selection (or lack thereof)
656
-  if (!$preset OR $preset == 'custom') {
654
+    }
655
+    // Save the preset selection (or lack thereof)
656
+    if (!$preset OR $preset == 'custom') {
657 657
     $prefs['preset'] = 'custom';
658
-  }
659
-  else {
658
+    }
659
+    else {
660 660
     $prefs['preset'] = $preset;
661
-  }
661
+    }
662 662
   
663
-  // If this is a new preference set, be sure to unset the "cleared" attribute
664
-  if (isset($prefs['@attributes']['cleared'])) {
663
+    // If this is a new preference set, be sure to unset the "cleared" attribute
664
+    if (isset($prefs['@attributes']['cleared'])) {
665 665
     unset($prefs['@attributes']['cleared']);
666
-  }
666
+    }
667 667
   
668
-  // Update database
669
-  $result = boincwork_save_prefs($prefs, 'general', $venue);
668
+    // Update database
669
+    $result = boincwork_save_prefs($prefs, 'general', $venue);
670 670
   
671
-  if (!$result) {
671
+    if (!$result) {
672 672
     watchdog('boincwork', 'Error updating global prefs for user @id: @message', array('@id' => $account->id, '@message' => mysqli_error()), WATCHDOG_ERROR);
673 673
     drupal_set_message(t('Your changes could not be saved. Please contact support!'), 'error');
674
-  }
675
-  elseif (!drupal_get_messages('status', FALSE)) {
674
+    }
675
+    elseif (!drupal_get_messages('status', FALSE)) {
676 676
     // Show this message if the set wasn't created automatically (in which case
677 677
     // there is a message tailored to that) {
678 678
     drupal_set_message(t('Your preferences have been updated.
679 679
       Client-related preferences will take effect when your computer 
680 680
       communicates with @project or you issue the "Update"
681 681
       command from the BOINC client.', array('@project' => PROJECT)));
682
-  }
682
+    }
683 683
 }
684 684
 
685 685
 
@@ -691,116 +691,116 @@  discard block
 block discarded – undo
691 691
  * Find compatible hosts for merging
692 692
  */
693 693
 function boincwork_host_get_compatible_hosts($host_id) {
694
-  require_boinc('host');
695
-  global $user;
696
-  $account = user_load($user->uid);
697
-  $compatible_hosts = array();
698
-  $host_count = 0;
699
-  db_set_active('boinc_ro');
700
-  $current_host = db_fetch_object(db_query("
694
+    require_boinc('host');
695
+    global $user;
696
+    $account = user_load($user->uid);
697
+    $compatible_hosts = array();
698
+    $host_count = 0;
699
+    db_set_active('boinc_ro');
700
+    $current_host = db_fetch_object(db_query("
701 701
     SELECT id, domain_name, create_time, total_credit, rpc_time, os_name,
702 702
       p_vendor, p_model
703 703
     FROM {host}
704 704
     WHERE userid = '%d' AND id = '%d'",
705 705
     $account->boincuser_id, $host_id
706
-  ));
707
-  db_set_active('default');
708
-  $current_host->task_count = boincwork_host_get_task_count($current_host->id);
709
-  $current_host->is_new = !$current_host->total_credit AND !$current_host->task_count;
710
-  // Get the list of all other hosts owned by this user for comparison
711
-  db_set_active('boinc_ro');
712
-  $all_other_hosts = db_query("
706
+    ));
707
+    db_set_active('default');
708
+    $current_host->task_count = boincwork_host_get_task_count($current_host->id);
709
+    $current_host->is_new = !$current_host->total_credit AND !$current_host->task_count;
710
+    // Get the list of all other hosts owned by this user for comparison
711
+    db_set_active('boinc_ro');
712
+    $all_other_hosts = db_query("
713 713
     SELECT id, domain_name, create_time, total_credit, rpc_time, os_name,
714 714
       p_vendor, p_model
715 715
     FROM {host}
716 716
     WHERE userid = '%d' AND id <> '%d'",
717 717
     $account->boincuser_id, $host_id
718
-  );
719
-  db_set_active('default');
720
-  // Compare all hosts to see if any are plausible duplicates
721
-  while ($other_host = db_fetch_object($all_other_hosts)) {
718
+    );
719
+    db_set_active('default');
720
+    // Compare all hosts to see if any are plausible duplicates
721
+    while ($other_host = db_fetch_object($all_other_hosts)) {
722 722
     // First, disqualify if hosts were active at the same time
723 723
     if (!$current_host->is_new) {
724
-      $other_host->task_count = boincwork_host_get_task_count($other_host->id);
725
-      $other_host->is_new = !$other_host->total_credit AND !$other_host->task_count;
726
-      if (!$other_host->is_new) {
724
+        $other_host->task_count = boincwork_host_get_task_count($other_host->id);
725
+        $other_host->is_new = !$other_host->total_credit AND !$other_host->task_count;
726
+        if (!$other_host->is_new) {
727 727
         // If both hosts being compared are not new, see if times overlap
728 728
         if (!times_disjoint($current_host, $other_host)) {
729
-          // Hosts were active at the same time; can't be a duplicate
730
-          continue;
729
+            // Hosts were active at the same time; can't be a duplicate
730
+            continue;
731
+        }
731 732
         }
732
-      }
733 733
     }
734 734
     // Next, disqualify if hosts have different OS platforms
735 735
     if (!os_compatible($current_host, $other_host)) {
736
-      // Hosts have different OS platforms; not really a duplicate
737
-      continue;
736
+        // Hosts have different OS platforms; not really a duplicate
737
+        continue;
738 738
     }
739 739
     // Finally, disqualify if hosts have different CPUs
740 740
     if (!cpus_compatible($current_host, $other_host)) {
741
-      // CPUs don't match; not a duplicate
742
-      continue;
741
+        // CPUs don't match; not a duplicate
742
+        continue;
743 743
     }
744 744
     // If not disqualified, this host is available for merging
745 745
     $hosts[] = $other_host;
746 746
     $host_count++;
747 747
     if ($host_count == 500) {
748
-      // This is enough!
749
-      break;
748
+        // This is enough!
749
+        break;
750 750
     }
751
-  }
752
-  return $hosts;
751
+    }
752
+    return $hosts;
753 753
 }
754 754
 
755 755
 /**
756 756
  * Perform the database updates to merge the old host into the new host
757 757
  */
758 758
 function boincwork_host_merge($old_host, $new_host, &$message = NULL) {
759
-  // Decay the average credit of the two hosts
760
-  require_boinc('credit');
761
-  $now = time();
762
-  update_average($now, 0, 0, $old_host->expavg_credit, $old_host->expavg_time);
763
-  update_average($now, 0, 0, $new_host->expavg_credit, $new_host->expavg_time);
759
+    // Decay the average credit of the two hosts
760
+    require_boinc('credit');
761
+    $now = time();
762
+    update_average($now, 0, 0, $old_host->expavg_credit, $old_host->expavg_time);
763
+    update_average($now, 0, 0, $new_host->expavg_credit, $new_host->expavg_time);
764 764
   
765
-  // Update the database:
766
-  // - add credit from old host to new host
767
-  // - change results to refer to the new host
768
-  // - put old host in "zombie" state (userid=0, rpc_seqno=[new_host_id])
765
+    // Update the database:
766
+    // - add credit from old host to new host
767
+    // - change results to refer to the new host
768
+    // - put old host in "zombie" state (userid=0, rpc_seqno=[new_host_id])
769 769
   
770
-  $total_credit = $old_host->total_credit + $new_host->total_credit;
771
-  $recent_credit = $old_host->expavg_credit + $new_host->expavg_credit;
770
+    $total_credit = $old_host->total_credit + $new_host->total_credit;
771
+    $recent_credit = $old_host->expavg_credit + $new_host->expavg_credit;
772 772
 
773
-  if ($new_host->rpc_seqno == $old_host->id) {
773
+    if ($new_host->rpc_seqno == $old_host->id) {
774 774
     rules_invoke_event('boincwork_circular_merge_error', $old_host->id, $new_host->id, variable_get('boinc_admin_mailing_list_subject_tag', ''));
775 775
     watchdog('boincwork',
776
-      'Circular merge attempted, target host rpc_seqno is equal to old host\'s id: old host id=%old_host, target host id=%new_host',
777
-      array(
776
+        'Circular merge attempted, target host rpc_seqno is equal to old host\'s id: old host id=%old_host, target host id=%new_host',
777
+        array(
778 778
         '%old_host' => $old_host->id,
779 779
         '%new_host' => $new_host->id,
780
-      ),
781
-      WATCHDOG_WARNING
780
+        ),
781
+        WATCHDOG_WARNING
782 782
     );
783 783
     $message = 'Could not merge due to a circular merge error. The site administrators have been contacted about this issue, and will investigate further.';
784 784
     return FALSE;
785
-  }
785
+    }
786 786
 
787
-  if ($new_host->userid==0) {
787
+    if ($new_host->userid==0) {
788 788
     rules_invoke_event('boincwork_zombie_merge_error', $old_host->id, $new_host->id, variable_get('boinc_admin_mailing_list_subject_tag', ''));
789 789
     watchdog('boincwork',
790
-      'Zombie merge attempted, target host has userid=0: old host id=%old_host, target host id=%new_host',
791
-      array(
790
+        'Zombie merge attempted, target host has userid=0: old host id=%old_host, target host id=%new_host',
791
+        array(
792 792
         '%old_host' => $old_host->id,
793 793
         '%new_host' => $new_host->id,
794
-      ),
795
-      WATCHDOG_WARNING
794
+        ),
795
+        WATCHDOG_WARNING
796 796
     );
797 797
     $message = 'Could not merge because the target host has userid=0. The site administrators have been contacted about this issue, and will investigate further.';
798 798
     return FALSE;
799
-  }
799
+    }
800 800
   
801
-  // Move credit from the old host to the new host
802
-  db_set_active('boinc_rw');
803
-  $credit_updated = db_query("
801
+    // Move credit from the old host to the new host
802
+    db_set_active('boinc_rw');
803
+    $credit_updated = db_query("
804 804
     UPDATE {host}
805 805
     SET
806 806
       total_credit = '%d',
@@ -808,34 +808,34 @@  discard block
 block discarded – undo
808 808
       expavg_time = '%d'
809 809
     WHERE id = '%d'",
810 810
     $total_credit, $recent_credit, $now, $new_host->id
811
-  );
812
-  db_set_active('default');
813
-  if (!$credit_updated) {
811
+    );
812
+    db_set_active('default');
813
+    if (!$credit_updated) {
814 814
     if ($message !== NULL) {
815
-      $message = bts('Could not update credit', array(), NULL, 'boinc:account-host-merge');
815
+        $message = bts('Could not update credit', array(), NULL, 'boinc:account-host-merge');
816 816
     }
817 817
     return FALSE;
818
-  }
818
+    }
819 819
   
820
-  // Move results from the old host to the new host
821
-  db_set_active('boinc_rw');
822
-  $results_updated = db_query("
820
+    // Move results from the old host to the new host
821
+    db_set_active('boinc_rw');
822
+    $results_updated = db_query("
823 823
     UPDATE {result}
824 824
     SET hostid = '%d'
825 825
     WHERE hostid = '%d'",
826 826
     $new_host->id, $old_host->id
827
-  );
828
-  db_set_active('default');
829
-  if (!$results_updated) {
827
+    );
828
+    db_set_active('default');
829
+    if (!$results_updated) {
830 830
     if ($message !== NULL) {
831
-      $message = bts('Could not update results', array(), NULL, 'boinc:account-host-merge');
831
+        $message = bts('Could not update results', array(), NULL, 'boinc:account-host-merge');
832 832
     }
833 833
     return FALSE;
834
-  }
834
+    }
835 835
   
836
-  // Retire the old host
837
-  db_set_active('boinc_rw');
838
-  $old_host_retired = db_query("
836
+    // Retire the old host
837
+    db_set_active('boinc_rw');
838
+    $old_host_retired = db_query("
839 839
     UPDATE {host}
840 840
     SET
841 841
       total_credit = '0',
@@ -844,16 +844,16 @@  discard block
 block discarded – undo
844 844
       rpc_seqno = '%d'
845 845
     WHERE id = '%d'",
846 846
     $new_host->id, $old_host->id
847
-  );
848
-  db_set_active('default');
849
-  if (!$old_host_retired) {
847
+    );
848
+    db_set_active('default');
849
+    if (!$old_host_retired) {
850 850
     if ($message !== NULL) {
851
-      $message = bts('Could not retire old computer', array(), NULL, 'boinc:account-host-merge');
851
+        $message = bts('Could not retire old computer', array(), NULL, 'boinc:account-host-merge');
852 852
     }
853 853
     return FALSE;
854
-  }
854
+    }
855 855
   
856
-  return TRUE;
856
+    return TRUE;
857 857
 }
858 858
 
859 859
 /**
@@ -861,75 +861,75 @@  discard block
 block discarded – undo
861 861
  */
862 862
 function boincwork_host_merge_form(&$form_state, $host_id) {
863 863
 
864
-  if (!boincwork_host_user_is_owner($host_id)) {
864
+    if (!boincwork_host_user_is_owner($host_id)) {
865 865
     drupal_goto("host/{$host_id}");
866
-  }
866
+    }
867 867
   
868
-  $form = array();
869
-  $form_state['storage']['current_host_id'] = $host_id;
870
-  $current_host = boincwork_host_get_info($host_id);
868
+    $form = array();
869
+    $form_state['storage']['current_host_id'] = $host_id;
870
+    $current_host = boincwork_host_get_info($host_id);
871 871
   
872
-  // Get hosts that could be merged with this one
873
-  $hosts = boincwork_host_get_compatible_hosts($host_id);
872
+    // Get hosts that could be merged with this one
873
+    $hosts = boincwork_host_get_compatible_hosts($host_id);
874 874
   
875
-  if (!$hosts) {
875
+    if (!$hosts) {
876 876
     drupal_set_message(t('There are no computers eligible for merging with this
877 877
       one'), 'warning'
878 878
     );
879 879
     drupal_goto("host/{$host_id}");
880
-  }
880
+    }
881 881
   
882
-  $form['overview'] = array(
882
+    $form['overview'] = array(
883 883
     '#value' => '<p>' . bts('Sometimes BOINC assigns separate identities to'
884
-      . ' the same computer by mistake. You can correct this by merging old'
885
-      . ' identities with the newest one.', array(), NULL, 'boinc:account-host-merge') . '</p>'
886
-      . '<p>'
887
-      . bts('Check the computers that are the same as @name'
888
-      . ' (created on @date at @time with computer ID @id)',
884
+        . ' the same computer by mistake. You can correct this by merging old'
885
+        . ' identities with the newest one.', array(), NULL, 'boinc:account-host-merge') . '</p>'
886
+        . '<p>'
887
+        . bts('Check the computers that are the same as @name'
888
+        . ' (created on @date at @time with computer ID @id)',
889 889
         array(
890
-          '@name' => $current_host->domain_name,
891
-          '@date' => date('j M Y', $current_host->create_time),
892
-          '@time' => date('G:i:s T', $current_host->create_time),
893
-          '@id' => $current_host->id,
890
+            '@name' => $current_host->domain_name,
891
+            '@date' => date('j M Y', $current_host->create_time),
892
+            '@time' => date('G:i:s T', $current_host->create_time),
893
+            '@id' => $current_host->id,
894 894
         ),
895 895
         NULL, 'boinc:account-host-merge') . '</p>',
896
-  );
896
+    );
897 897
   
898
-  $options = array();
899
-  foreach ($hosts as $host) {
898
+    $options = array();
899
+    foreach ($hosts as $host) {
900 900
     $options[$host->id] = array(
901
-      $host->domain_name,
902
-      date('j M Y G:i:s T', $host->create_time),
903
-      $host->id,
901
+        $host->domain_name,
902
+        date('j M Y G:i:s T', $host->create_time),
903
+        $host->id,
904 904
     );
905
-  }
905
+    }
906 906
   
907
-  $form['merge'] = array(
907
+    $form['merge'] = array(
908 908
     '#title' => '',
909 909
     '#type' => 'tableselect',
910 910
     '#header' => array(bts('Name', array(), NULL, 'boinc:details:-1:name-of-the-host-or-task-or-workunit-etc-being-viewed-ignoreoverwrite'), bts('Created', array(), NULL, 'boinc:host-details'), bts('Computer ID', array(), NULL, 'boinc:host-list')),
911 911
     '#options' => $options,
912
-  );
912
+    );
913 913
   
914
-  $form['prefs']['separator_bottom'] = array(
915
-  //  '#value' => '<div class="separator buttons"></div>'
916
-  );
914
+    $form['prefs']['separator_bottom'] = array(
915
+    //  '#value' => '<div class="separator buttons"></div>'
916
+    );
917 917
   
918
-  // Form control
919
-  $form['prefs']['form control tabs prefix'] = array(
918
+    // Form control
919
+    $form['prefs']['form control tabs prefix'] = array(
920 920
     '#value' => '<ul class="form-control tab-list">'
921
-  );
922
-  $form['prefs']['submit'] = array(
921
+    );
922
+    $form['prefs']['submit'] = array(
923 923
     '#prefix' => '<li class="first tab">',
924 924
     '#type' => 'submit',
925 925
     '#value' => bts('Merge', array(), NULL, 'boinc:form-merge'),
926 926
     '#suffix' => '</li>'
927
-  );
928
-  $form['prefs']['form control tabs'] = array(
927
+    );
928
+    $form['prefs']['form control tabs'] = array(
929 929
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), "host/{$host_id}") . '</li>'
930
-  );
930
+    );
931 931
   
932
-  return $form;
932
+    return $form;
933 933
 }
934 934
 
935 935
 /**
@@ -942,76 +942,76 @@  discard block
 block discarded – undo
942 942
  * Handle submission of the merge host form
943 943
  */
944 944
 function boincwork_host_merge_form_submit($form, &$form_state) {
945
-  $merged = array();
946
-  $errors = array();
947
-  $current_host_id = $form_state['storage']['current_host_id'];
948
-  $current_host = boincwork_host_get_info($current_host_id);
949
-  $selected_hosts = array_filter($form_state['values']['merge']);
945
+    $merged = array();
946
+    $errors = array();
947
+    $current_host_id = $form_state['storage']['current_host_id'];
948
+    $current_host = boincwork_host_get_info($current_host_id);
949
+    $selected_hosts = array_filter($form_state['values']['merge']);
950 950
   
951
-  foreach ($selected_hosts as $host_id) {
951
+    foreach ($selected_hosts as $host_id) {
952 952
     // Attempt to merge each host, noting the results
953 953
     $message = '';
954 954
     $old_host = boincwork_host_get_info($host_id);
955 955
     if (boincwork_host_merge($old_host, $current_host, $message)) {
956
-      $merged[$old_host->id] = $old_host->id;
957
-      $current_host = boincwork_host_get_info($current_host_id);
956
+        $merged[$old_host->id] = $old_host->id;
957
+        $current_host = boincwork_host_get_info($current_host_id);
958 958
     }
959 959
     else {
960
-      $errors[$old_host->id] = $message;
960
+        $errors[$old_host->id] = $message;
961
+    }
961 962
     }
962
-  }
963 963
   
964
-  if ($merged) {
964
+    if ($merged) {
965 965
     // Generate a natural language list of IDs that were merged
966 966
     $oxford_comma = ',';
967 967
     $conjunction = bts('and', array(), NULL, 'boinc:account-preference');
968 968
     $list = array_keys($merged);
969 969
     $last = array_pop($list);
970 970
     if ($list) {
971
-      if (count($merged) == 2) {
971
+        if (count($merged) == 2) {
972 972
         $oxford_comma = '';
973
-      }
974
-      $list = implode(', ', $list) . $oxford_comma . ' ' . $conjunction . ' ' . $last;
973
+        }
974
+        $list = implode(', ', $list) . $oxford_comma . ' ' . $conjunction . ' ' . $last;
975 975
     }
976 976
     else {
977
-      $list = $last;
977
+        $list = $last;
978 978
     }
979 979
     if (count($merged) == 1) {
980
-      drupal_set_message(bts(
980
+        drupal_set_message(bts(
981 981
         'Computer @old_id has been merged successfully into @id.',
982 982
         array(
983
-          '@old_id' => $list,
984
-          '@id' => $current_host_id
983
+            '@old_id' => $list,
984
+            '@id' => $current_host_id
985 985
         ),
986 986
         NULL, 'boinc:account-host-merge'));
987 987
     }
988 988
     else {
989
-      drupal_set_message(bts(
989
+        drupal_set_message(bts(
990 990
         'Computers @old_ids have been merged successfully into @id.',
991 991
         array(
992
-          '@old_ids' => $list,
993
-          '@id' => $current_host_id
992
+            '@old_ids' => $list,
993
+            '@id' => $current_host_id
994 994
         ),
995 995
         NULL, 'boinc:account-host-merge'));
996 996
     }
997
-  }
997
+    }
998 998
   
999
-  if ($errors) {
999
+    if ($errors) {
1000 1000
     // Report any hosts that failed to merge
1001 1001
     foreach ($errors as $id => $error) {
1002
-      drupal_set_message(
1002
+        drupal_set_message(
1003 1003
         bts('Computer @old_id failed to merge: @message',
1004
-          array(
1004
+            array(
1005 1005
             '@old_id' => $id,
1006 1006
             '@message' => $error,
1007
-          ),
1008
-          NULL, 'boinc:account-host-merge'),
1007
+            ),
1008
+            NULL, 'boinc:account-host-merge'),
1009 1009
         'warning'
1010
-      );
1010
+        );
1011
+    }
1011 1012
     }
1012
-  }
1013 1013
   
1014
-  drupal_goto("host/{$current_host_id}");
1014
+    drupal_goto("host/{$current_host_id}");
1015 1015
 }
1016 1016
 
1017 1017
 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
@@ -1023,44 +1023,44 @@  discard block
 block discarded – undo
1023 1023
  */
1024 1024
 function boincwork_projectprefs_form(&$form_state, $venue) {
1025 1025
   
1026
-  global $user;
1027
-  $account = user_load($user->uid);
1026
+    global $user;
1027
+    $account = user_load($user->uid);
1028 1028
   
1029
-  $established = TRUE;
1029
+    $established = TRUE;
1030 1030
   
1031
-  // Get availability of special BOINC preferences
1032
-  require_boinc(array('util'));
1033
-  $app_types = get_app_types();
1031
+    // Get availability of special BOINC preferences
1032
+    require_boinc(array('util'));
1033
+    $app_types = get_app_types();
1034 1034
   
1035
-  // Load any existing preferences from BOINC account
1036
-  $prefs = boincwork_load_prefs('project', $venue);
1035
+    // Load any existing preferences from BOINC account
1036
+    $prefs = boincwork_load_prefs('project', $venue);
1037 1037
   
1038
-  // Take note if this is not an established preference set on the account
1039
-  if (isset($prefs['@attributes']['cleared'])) {
1038
+    // Take note if this is not an established preference set on the account
1039
+    if (isset($prefs['@attributes']['cleared'])) {
1040 1040
     $established = FALSE;
1041
-  }
1041
+    }
1042 1042
 
1043
-  // Extract modified tag if present
1044
-  $modified = NULL;
1045
-  if (isset($prefs['modified']['@value'])) {
1043
+    // Extract modified tag if present
1044
+    $modified = NULL;
1045
+    if (isset($prefs['modified']['@value'])) {
1046 1046
     $modified = $prefs['modified']['@value'];
1047
-  }
1047
+    }
1048 1048
 
1049
-  $venue_is_default = FALSE;
1050
-  if ($account->boincuser_default_pref_set) {
1049
+    $venue_is_default = FALSE;
1050
+    if ($account->boincuser_default_pref_set) {
1051 1051
     if ($account->boincuser_default_pref_set == $venue) {
1052
-      $venue_is_default = TRUE;
1052
+        $venue_is_default = TRUE;
1053 1053
     }
1054
-  }
1055
-  elseif (!$venue OR $venue == 'generic') {
1054
+    }
1055
+    elseif (!$venue OR $venue == 'generic') {
1056 1056
     $venue_is_default = TRUE;
1057
-  }
1058
-  else {
1057
+    }
1058
+    else {
1059 1059
     $venue_is_default = FALSE;
1060
-  }
1060
+    }
1061 1061
   
1062
-  // Define form defaults
1063
-  $default = array(
1062
+    // Define form defaults
1063
+    $default = array(
1064 1064
     'resource_share' => 100,
1065 1065
     'no_cpu' => 0,
1066 1066
     'no_cuda' => 0,
@@ -1068,333 +1068,333 @@  discard block
 block discarded – undo
1068 1068
     'no_intel_gpu' => 0,
1069 1069
     'default_venue' => $venue_is_default,
1070 1070
     'allow_beta_work' => $prefs['allow_beta_work'],
1071
-  );
1072
-  foreach ($default as $name => $value) {
1071
+    );
1072
+    foreach ($default as $name => $value) {
1073 1073
     if (isset($prefs[$name])) {
1074
-      if (is_array($prefs[$name])) {
1074
+        if (is_array($prefs[$name])) {
1075 1075
         if (isset($prefs[$name]['@value'])) {
1076
-          $default[$name] = $prefs[$name]['@value'];
1076
+            $default[$name] = $prefs[$name]['@value'];
1077
+        }
1077 1078
         }
1078
-      }
1079
-      else {
1079
+        else {
1080 1080
         $default[$name] = $prefs[$name];
1081
-      }
1081
+        }
1082
+    }
1082 1083
     }
1083
-  }
1084 1084
   
1085
-  // Standard option sets
1086
-  $form['boolean_options'] = array(
1085
+    // Standard option sets
1086
+    $form['boolean_options'] = array(
1087 1087
     '#type' => 'value',
1088 1088
     '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
1089
-  );
1089
+    );
1090 1090
   
1091
-  // Identify preference sets that are established to distinguish what has been
1092
-  // saved to the database from what is just showing default values
1093
-  $form['#established'] = $established;
1091
+    // Identify preference sets that are established to distinguish what has been
1092
+    // saved to the database from what is just showing default values
1093
+    $form['#established'] = $established;
1094 1094
   
1095
-  // Top level form options
1096
-  $form['#tree'] = TRUE;
1095
+    // Top level form options
1096
+    $form['#tree'] = TRUE;
1097 1097
   
1098
-  // Hidden elements
1099
-  $form['modified'] = array(
1098
+    // Hidden elements
1099
+    $form['modified'] = array(
1100 1100
     '#type' => 'hidden',
1101 1101
     '#value' => $modified,
1102
-  );
1103
-  $form['venue'] = array(
1102
+    );
1103
+    $form['venue'] = array(
1104 1104
     '#type' => 'hidden',
1105 1105
     '#value' => $venue,
1106
-  );
1106
+    );
1107 1107
   
1108
-  $form['separator_top'] = array(
1108
+    $form['separator_top'] = array(
1109 1109
     '#value' => '<div class="separator"></div>'
1110
-  );
1110
+    );
1111 1111
   
1112
-  // Common project preferences  
1113
-  $form['resource'] = array(
1112
+    // Common project preferences  
1113
+    $form['resource'] = array(
1114 1114
     '#title' => bts('Resource settings', array(), NULL, 'boinc:account-preferences-project'),
1115 1115
     '#type' => 'fieldset',
1116 1116
     '#description' => null,
1117 1117
     '#collapsible' => TRUE,
1118 1118
     '#collapsed' => FALSE
1119
-  );
1120
-  $form['resource']['resource_share'] = array(
1119
+    );
1120
+    $form['resource']['resource_share'] = array(
1121 1121
     '#title' => bts('Resource share', array(), NULL, 'boinc:account-preferences-project'),
1122 1122
     '#type' => 'textfield',
1123 1123
     '#default_value' => $default['resource_share'],
1124 1124
     '#size' => 5,
1125 1125
     '#description' => bts("Determines the proportion of your computer's resources allocated to this project. Example: if you participate in two BOINC projects with resource shares of 100 and 200, the first will get 1/3 of your resources and the second will get 2/3.", array(), NULL, 'boinc:account-preferences-project')
1126
-  );
1127
-  if ($app_types->count > 1) {
1126
+    );
1127
+    if ($app_types->count > 1) {
1128 1128
     if ($app_types->cpu) {
1129
-      $form['resource']['no_cpu'] = array(
1129
+        $form['resource']['no_cpu'] = array(
1130 1130
         '#title' => bts('Use CPU', array(), NULL, 'boinc:account-preferences-project'),
1131 1131
         '#type' => 'radios',
1132 1132
         '#options' => $form['boolean_options']['#value'],
1133 1133
         '#attributes' => array('class' => 'fancy'),
1134 1134
         '#default_value' => $default['no_cpu'] ? 0 : 1,
1135 1135
         '#description' => bts('Request CPU-only tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
1136
-      );
1136
+        );
1137 1137
     }
1138 1138
     if ($app_types->cuda) {
1139
-      $form['resource']['no_cuda'] = array(
1139
+        $form['resource']['no_cuda'] = array(
1140 1140
         '#title' => bts('Use NVIDIA GPU', array(), NULL, 'boinc:account-preferences-project'),
1141 1141
         '#type' => 'radios',
1142 1142
         '#options' => $form['boolean_options']['#value'],
1143 1143
         '#attributes' => array('class' => 'fancy'),
1144 1144
         '#default_value' => $default['no_cuda'] ? 0 : 1,
1145 1145
         '#description' => bts('Request NVIDIA GPU tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
1146
-      );
1146
+        );
1147 1147
     }
1148 1148
     if ($app_types->ati) {
1149
-      $form['resource']['no_ati'] = array(
1149
+        $form['resource']['no_ati'] = array(
1150 1150
         '#title' => bts('Use AMD GPU', array(), NULL, 'boinc:account-preferences-project'),
1151 1151
         '#type' => 'radios',
1152 1152
         '#options' => $form['boolean_options']['#value'],
1153 1153
         '#attributes' => array('class' => 'fancy'),
1154 1154
         '#default_value' => $default['no_ati'] ? 0 : 1,
1155 1155
         '#description' => bts('Request AMD GPU tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
1156
-      );
1156
+        );
1157 1157
     }
1158 1158
     if ($app_types->intel_gpu) {
1159
-      $form['resource']['no_intel_gpu'] = array(
1159
+        $form['resource']['no_intel_gpu'] = array(
1160 1160
         '#title' => bts('Use INTEL GPU', array(), NULL, 'boinc:account-preferences-project'),
1161 1161
         '#type' => 'radios',
1162 1162
         '#options' => $form['boolean_options']['#value'],
1163 1163
         '#attributes' => array('class' => 'fancy'),
1164 1164
         '#default_value' => $default['no_intel_gpu'] ? 0 : 1,
1165 1165
         '#description' => bts('Request Intel GPU tasks from this project.', array(), NULL, 'boinc:account-preferences-project')
1166
-      );
1166
+        );
1167
+    }
1167 1168
     }
1168
-  }
1169 1169
   
1170
-  if (variable_get('boinc_prefs_options_beta', FALSE)) {
1170
+    if (variable_get('boinc_prefs_options_beta', FALSE)) {
1171 1171
     $form['beta'] = array(
1172
-      '#title' => bts('Beta settings', array(), NULL, 'boinc:account-preferences-project'),
1173
-      '#type' => 'fieldset',
1174
-      '#description' => null,
1175
-      '#collapsible' => TRUE,
1176
-      '#collapsed' => FALSE
1172
+        '#title' => bts('Beta settings', array(), NULL, 'boinc:account-preferences-project'),
1173
+        '#type' => 'fieldset',
1174
+        '#description' => null,
1175
+        '#collapsible' => TRUE,
1176
+        '#collapsed' => FALSE
1177 1177
     );
1178 1178
     $form['beta']['allow_beta_work'] = array(
1179
-      '#title' => bts('Run test applications?', array(), NULL, 'boinc:account-preferences-project'),
1180
-      '#type' => 'radios',
1181
-      '#options' => $form['boolean_options']['#value'],
1182
-      '#attributes' => array('class' => 'fancy'),
1183
-      '#default_value' => ($default['allow_beta_work']) ? 1 : 0,
1184
-      '#description' => bts('This helps us develop applications, but may cause jobs to fail on your computer', array(), NULL, 'boinc:account-preferences-project')
1179
+        '#title' => bts('Run test applications?', array(), NULL, 'boinc:account-preferences-project'),
1180
+        '#type' => 'radios',
1181
+        '#options' => $form['boolean_options']['#value'],
1182
+        '#attributes' => array('class' => 'fancy'),
1183
+        '#default_value' => ($default['allow_beta_work']) ? 1 : 0,
1184
+        '#description' => bts('This helps us develop applications, but may cause jobs to fail on your computer', array(), NULL, 'boinc:account-preferences-project')
1185 1185
     );
1186
-  }
1186
+    }
1187 1187
   
1188
-  // Add project specific prefs to the form
1189
-  boincwork_add_project_specific_prefs($form, $prefs);
1188
+    // Add project specific prefs to the form
1189
+    boincwork_add_project_specific_prefs($form, $prefs);
1190 1190
   
1191
-  // Set whether to use this preference set by default for new computers
1192
-  $form['default_set'] = array(
1191
+    // Set whether to use this preference set by default for new computers
1192
+    $form['default_set'] = array(
1193 1193
     '#title' => bts('Default set', array(), NULL, 'boinc:account-preferences-project'),
1194 1194
     '#type' => 'fieldset',
1195 1195
     '#description' => null,
1196 1196
     '#collapsible' => TRUE,
1197 1197
     '#collapsed' => FALSE
1198
-  );
1199
-  $form['default_set']['default_venue'] = array(
1198
+    );
1199
+    $form['default_set']['default_venue'] = array(
1200 1200
     '#title' => bts('Set used for new computers', array(), NULL, 'boinc:account-preferences-project'),
1201 1201
     '#type' => 'radios',
1202 1202
     '#options' => $form['boolean_options']['#value'],
1203 1203
     '#attributes' => array('class' => 'fancy'),
1204 1204
     '#default_value' => $default['default_venue'] ? 1 : 0,
1205 1205
     '#description' => ''
1206
-  );
1206
+    );
1207 1207
   
1208
-  $form['prefs']['separator_bottom'] = array(
1208
+    $form['prefs']['separator_bottom'] = array(
1209 1209
     '#value' => '<div class="separator buttons"></div>'
1210
-  );
1210
+    );
1211 1211
   
1212
-  // Form control
1213
-  $form['prefs']['form control tabs prefix'] = array(
1212
+    // Form control
1213
+    $form['prefs']['form control tabs prefix'] = array(
1214 1214
     '#value' => '<ul class="form-control tab-list">'
1215
-  );
1216
-  $form['prefs']['submit'] = array(
1215
+    );
1216
+    $form['prefs']['submit'] = array(
1217 1217
     '#prefix' => '<li class="first tab">',
1218 1218
     '#type' => 'submit',
1219 1219
     '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
1220 1220
     '#suffix' => '</li>'
1221
-  );
1222
-  $form['prefs']['form control tabs'] = array(
1221
+    );
1222
+    $form['prefs']['form control tabs'] = array(
1223 1223
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>'
1224
-  );
1225
-  if ($venue AND $venue != 'generic') {
1224
+    );
1225
+    if ($venue AND $venue != 'generic') {
1226 1226
     global $base_path;
1227 1227
     $form['prefs']['form control tabs']['#value'] .= '<li class="tab">' . 
1228
-      l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/project/clear/{$venue}",
1228
+        l(bts('Clear', array(), NULL, 'boinc:form-clear'), "account/prefs/project/clear/{$venue}",
1229 1229
         array(
1230
-          'query' => 'destination=' . urlencode(drupal_get_path_alias('account/prefs/project/combined')),
1231
-          'attributes' => array(
1230
+            'query' => 'destination=' . urlencode(drupal_get_path_alias('account/prefs/project/combined')),
1231
+            'attributes' => array(
1232 1232
             'onclick' => 'return confirm(\'' . bts('This will remove all of your settings from the @name preference set. Are you sure?',
1233
-              array('@name' => $venue), NULL, 'boinc:account-preferences') . '\')'
1234
-          )
1233
+                array('@name' => $venue), NULL, 'boinc:account-preferences') . '\')'
1234
+            )
1235 1235
         )
1236
-      ) . '</li>';
1237
-  }
1238
-  $form['prefs']['view control'] = array(
1239
-      '#value' => '<li class="first alt tab">' . l('(' . bts('Show comparison view', array(), NULL, 'boinc:account-preferences') . ')', 'account/prefs/project/combined') . '</li>'
1240
-  );
1241
-  $form['prefs']['form control tabs suffix'] = array(
1236
+        ) . '</li>';
1237
+    }
1238
+    $form['prefs']['view control'] = array(
1239
+        '#value' => '<li class="first alt tab">' . l('(' . bts('Show comparison view', array(), NULL, 'boinc:account-preferences') . ')', 'account/prefs/project/combined') . '</li>'
1240
+    );
1241
+    $form['prefs']['form control tabs suffix'] = array(
1242 1242
     '#value' => '</ul>'
1243
-  );
1243
+    );
1244 1244
   
1245
-  return $form;
1245
+    return $form;
1246 1246
 }
1247 1247
 
1248 1248
 /**
1249 1249
  * Add project specific preferences to the project preferences form
1250 1250
  */
1251 1251
 function boincwork_add_project_specific_prefs(&$form, $prefs) {
1252
-  // Load project specific preferences from XML config
1253
-  $xml = boincwork_get_project_specific_config();
1252
+    // Load project specific preferences from XML config
1253
+    $xml = boincwork_get_project_specific_config();
1254 1254
   
1255
-  // Respect the order of the top level elements
1256
-  $ordered_array = array();
1257
-  $unordered_array = array();
1258
-  foreach ($xml['project_specific_preferences'] as $type => $element) {
1255
+    // Respect the order of the top level elements
1256
+    $ordered_array = array();
1257
+    $unordered_array = array();
1258
+    foreach ($xml['project_specific_preferences'] as $type => $element) {
1259 1259
     if (is_array($element) AND is_numeric(key($element))) {
1260
-      foreach ($element as $ordered_element) {
1260
+        foreach ($element as $ordered_element) {
1261 1261
         if (isset($ordered_element['@position'])) {
1262
-          $ordered_array[$ordered_element['@position']] = array($type => $ordered_element);
1262
+            $ordered_array[$ordered_element['@position']] = array($type => $ordered_element);
1263 1263
         }
1264 1264
         else {
1265
-          $unordered_array[] = array($type => $ordered_element);
1265
+            $unordered_array[] = array($type => $ordered_element);
1266
+        }
1266 1267
         }
1267
-      }
1268 1268
     }
1269 1269
     elseif (isset($element['@position'])) {
1270
-      $ordered_array[$element['@position']] = array($type => $element);
1270
+        $ordered_array[$element['@position']] = array($type => $element);
1271 1271
     }
1272 1272
     else {
1273
-      $unordered_array[] = array($type => $element);
1273
+        $unordered_array[] = array($type => $element);
1274
+    }
1274 1275
     }
1275
-  }
1276
-  ksort($ordered_array);
1277
-  $primed_array = array_merge($ordered_array, $unordered_array);
1278
-  $xml = array('project_specific_preferences' => $primed_array);
1276
+    ksort($ordered_array);
1277
+    $primed_array = array_merge($ordered_array, $unordered_array);
1278
+    $xml = array('project_specific_preferences' => $primed_array);
1279 1279
     
1280
-  foreach ($xml['project_specific_preferences'] as $wrapped_element) {
1280
+    foreach ($xml['project_specific_preferences'] as $wrapped_element) {
1281 1281
     $type = key($wrapped_element);
1282 1282
     $element= reset($wrapped_element);
1283 1283
     boincwork_generate_prefs_element($form, $type, $element, $prefs['project_specific']);
1284
-  }
1284
+    }
1285 1285
 }
1286 1286
 
1287 1287
 /**
1288
-  * Validate the project preferences form.
1289
-  */
1288
+ * Validate the project preferences form.
1289
+ */
1290 1290
 function boincwork_projectprefs_form_validate($form, &$form_state) {
1291 1291
   
1292
-  // Verify all text user input values and notify form API of failures
1293
-  $validation_rules = array(
1292
+    // Verify all text user input values and notify form API of failures
1293
+    $validation_rules = array(
1294 1294
     'resource' => array(
1295
-      'resource_share' => array(
1295
+        'resource_share' => array(
1296 1296
         'datatype' => 'integer',
1297 1297
         'min' => 0
1298
-      ),
1298
+        ),
1299 1299
     ),
1300
-  );
1300
+    );
1301 1301
   
1302
-  // Add validation rules for project specific settings
1303
-  $validation_rules += boincwork_get_project_specific_config_validation_rules();
1302
+    // Add validation rules for project specific settings
1303
+    $validation_rules += boincwork_get_project_specific_config_validation_rules();
1304 1304
   
1305
-  // Perform validation
1306
-  boincwork_validate_form($validation_rules, $form_state['values']);
1305
+    // Perform validation
1306
+    boincwork_validate_form($validation_rules, $form_state['values']);
1307 1307
   
1308
-  // Check for app validation
1309
-  if (isset($validation_rules['apps'])) {
1308
+    // Check for app validation
1309
+    if (isset($validation_rules['apps'])) {
1310 1310
     if (isset($validation_rules['apps']['minimum selected'])
1311 1311
         AND $validation_rules['apps']['minimum selected'] > 0) {
1312
-      $apps_selected = 0;
1313
-      foreach ($validation_rules['apps']['list'] as $app) {
1312
+        $apps_selected = 0;
1313
+        foreach ($validation_rules['apps']['list'] as $app) {
1314 1314
         if ($form_state['values']['applications'][$app]) $apps_selected++;
1315
-      }
1316
-      if ($apps_selected < $validation_rules['apps']['minimum selected']) {
1315
+        }
1316
+        if ($apps_selected < $validation_rules['apps']['minimum selected']) {
1317 1317
         form_set_error(
1318
-          'applications',
1319
-          bts('At least one application must be selected', array(), NULL, 'boinc:account-preferences-project')
1318
+            'applications',
1319
+            bts('At least one application must be selected', array(), NULL, 'boinc:account-preferences-project')
1320 1320
         );
1321
-      }
1322
-      if ($apps_selected == count($validation_rules['apps']['list'])) {
1321
+        }
1322
+        if ($apps_selected == count($validation_rules['apps']['list'])) {
1323 1323
         foreach ($validation_rules['apps']['list'] as $app) {
1324
-          unset($form_state['values']['applications'][$app]);
1324
+            unset($form_state['values']['applications'][$app]);
1325 1325
         }
1326 1326
         $form_state['storage']['all apps selected'] = TRUE;
1327
-      }
1327
+        }
1328
+    }
1328 1329
     }
1329
-  }
1330 1330
 }
1331 1331
 
1332 1332
 /**
1333
-  * Handle post-validation submission of project preferences form.
1334
-  */
1333
+ * Handle post-validation submission of project preferences form.
1334
+ */
1335 1335
 function boincwork_projectprefs_form_submit($form, &$form_state) {
1336
-  global $user;
1337
-  global $site_name;
1336
+    global $user;
1337
+    global $site_name;
1338 1338
   
1339
-  require_boinc(array('util'));
1340
-  $app_types = get_app_types();
1339
+    require_boinc(array('util'));
1340
+    $app_types = get_app_types();
1341 1341
   
1342
-  $account = user_load($user->uid);
1343
-  $edit = $form_state['values'];
1344
-  $venue = $edit['venue'];
1342
+    $account = user_load($user->uid);
1343
+    $edit = $form_state['values'];
1344
+    $venue = $edit['venue'];
1345 1345
   
1346
-  // Load preferences from BOINC account
1347
-  $prefs = boincwork_load_prefs('project', $venue);
1346
+    // Load preferences from BOINC account
1347
+    $prefs = boincwork_load_prefs('project', $venue);
1348 1348
   
1349
-  // Resource preferences
1350
-  $prefs['resource_share'] = $edit['resource']['resource_share'];
1351
-  if ($app_types->count > 1) {
1349
+    // Resource preferences
1350
+    $prefs['resource_share'] = $edit['resource']['resource_share'];
1351
+    if ($app_types->count > 1) {
1352 1352
     if ($app_types->cpu) $prefs['no_cpu'] = ($edit['resource']['no_cpu']) ? 0 : 1;
1353 1353
     if ($app_types->cuda) $prefs['no_cuda'] = ($edit['resource']['no_cuda']) ? 0 : 1;
1354 1354
     if ($app_types->ati) $prefs['no_ati'] = ($edit['resource']['no_ati']) ? 0 : 1;
1355 1355
     if ($app_types->intel_gpu) $prefs['no_intel_gpu'] = ($edit['resource']['no_intel_gpu']) ? 0 : 1;
1356
-  }
1356
+    }
1357 1357
   
1358
-  // Beta preferences
1359
-  if (variable_get('boinc_prefs_options_beta', FALSE)) {
1358
+    // Beta preferences
1359
+    if (variable_get('boinc_prefs_options_beta', FALSE)) {
1360 1360
     $prefs['allow_beta_work'] = ($edit['beta']['allow_beta_work']) ? 1 : 0;
1361
-  }
1361
+    }
1362 1362
   
1363
-  // Load project specific preferences from XML config
1364
-  $xml = boincwork_get_project_specific_config();
1365
-  $updated_prefs = array(
1363
+    // Load project specific preferences from XML config
1364
+    $xml = boincwork_get_project_specific_config();
1365
+    $updated_prefs = array(
1366 1366
     'project_specific' => boincwork_format_project_specific_prefs_data($edit)
1367
-  );
1368
-  $prefs = $updated_prefs + $prefs;
1367
+    );
1368
+    $prefs = $updated_prefs + $prefs;
1369 1369
   
1370
-  // Don't specify apps if all are selected
1371
-  if (isset($form_state['storage']['all apps selected'])) {
1370
+    // Don't specify apps if all are selected
1371
+    if (isset($form_state['storage']['all apps selected'])) {
1372 1372
     unset($prefs['project_specific']['app_id']);
1373 1373
     unset($form_state['storage']['all apps selected']);
1374
-  }
1374
+    }
1375 1375
   
1376
-  // If this is a new preference set, be sure to unset the "cleared" attribute
1377
-  if (isset($prefs['@attributes']['cleared'])) {
1376
+    // If this is a new preference set, be sure to unset the "cleared" attribute
1377
+    if (isset($prefs['@attributes']['cleared'])) {
1378 1378
     unset($prefs['@attributes']['cleared']);
1379
-  }
1379
+    }
1380 1380
   
1381
-  // Save preferences back to the BOINC account
1382
-  $result = boincwork_save_prefs($prefs, 'project', $venue);
1381
+    // Save preferences back to the BOINC account
1382
+    $result = boincwork_save_prefs($prefs, 'project', $venue);
1383 1383
   
1384
-  // Update the user's default preference set
1385
-  if ($edit['default_set']['default_venue']) {
1384
+    // Update the user's default preference set
1385
+    if ($edit['default_set']['default_venue']) {
1386 1386
     boincwork_set_default_venue($venue);
1387
-  }
1388
-  elseif ($venue == $account->boincuser_default_pref_set) {
1387
+    }
1388
+    elseif ($venue == $account->boincuser_default_pref_set) {
1389 1389
     // User has cleared out the default venue setting
1390 1390
     boincwork_set_default_venue();
1391
-  }
1391
+    }
1392 1392
   
1393
-  if (!$result) {
1393
+    if (!$result) {
1394 1394
     watchdog('boincwork', 'Error updating project prefs for user @id: @message', array('@id' => $user->id, '@message' => mysqli_error()), WATCHDOG_ERROR);
1395 1395
     drupal_set_message(t('Your changes could not be saved. Please contact support!'), 'error');
1396
-  }
1397
-  elseif (!drupal_get_messages('status', FALSE)) {
1396
+    }
1397
+    elseif (!drupal_get_messages('status', FALSE)) {
1398 1398
     // Show this message if the set wasn't created automatically (in which case
1399 1399
     // there is a message tailored to that)
1400 1400
     drupal_set_message(t('Your preferences have been updated.
@@ -1402,53 +1402,53 @@  discard block
 block discarded – undo
1402 1402
         communicates with @project or you issue the "Update"
1403 1403
         command from the BOINC client.', 
1404 1404
         array('@project' => $site_name)));
1405
-  }
1405
+    }
1406 1406
 }
1407 1407
 
1408 1408
 /**
1409 1409
  * The structure of the community preferences form
1410 1410
  */
1411 1411
 function communityprefs_form(&$form_state) {
1412
-  global $user;
1413
-  $account = user_load($user->uid);
1414
-  $form = array();
1415
-  
1416
-  // Pull in some elements from the profile form
1417
-  $profile_form_state = array();
1418
-  $profile = new stdClass();
1419
-  $profile->type = 'profile';
1420
-  $profile->language = '';
1421
-  if ($profile_nid = content_profile_profile_exists($profile, $account->uid)) {
1412
+    global $user;
1413
+    $account = user_load($user->uid);
1414
+    $form = array();
1415
+  
1416
+    // Pull in some elements from the profile form
1417
+    $profile_form_state = array();
1418
+    $profile = new stdClass();
1419
+    $profile->type = 'profile';
1420
+    $profile->language = '';
1421
+    if ($profile_nid = content_profile_profile_exists($profile, $account->uid)) {
1422 1422
     $profile_node = node_load($profile_nid);
1423 1423
     $form_state['storage']['profile_node'] = $profile_node;
1424 1424
     module_load_include('inc', 'node', 'node.pages');    
1425 1425
     $profile_form = drupal_retrieve_form('profile_node_form', $profile_form_state, $profile_node);
1426 1426
     drupal_prepare_form('profile_node_form', $profile_form, $profile_form_state);
1427
-  }
1427
+    }
1428 1428
   
1429
-  // Standard option sets
1430
-  $form['boolean_options'] = array(
1429
+    // Standard option sets
1430
+    $form['boolean_options'] = array(
1431 1431
     '#type' => 'value',
1432 1432
     '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
1433
-  );
1433
+    );
1434 1434
   
1435
-  $default = array(
1435
+    $default = array(
1436 1436
     'pm_send_notification' => '', // This is set already in pm_email_notify_user
1437 1437
     'friend_notification' => isset($account->friend_notification) ? $account->friend_notification : 0,
1438 1438
     'comments_per_page' => (isset($account->comments_per_page) AND $account->comments_per_page) ? $account->comments_per_page : variable_get('comment_default_per_page_forum', 50),
1439 1439
     'comments_order' => (isset($account->sort) AND $account->sort) ? $account->sort : variable_get('comment_default_order_forum', COMMENT_ORDER_OLDEST_FIRST),
1440
-  );
1440
+    );
1441 1441
   
1442
-  // General options
1443
-  $form['general'] = array(
1442
+    // General options
1443
+    $form['general'] = array(
1444 1444
     '#type' => 'fieldset',
1445 1445
     '#title' => bts('General settings', array(), NULL, 'boinc:account-preferences-community'),
1446 1446
     '#weight' => 0,
1447 1447
     '#collapsible' => TRUE,
1448 1448
     '#collapsed' => FALSE
1449
-  );
1450
-  // Add the BOINC user name (non-unique, user editable)
1451
-  $form['general']['boincuser_name'] = array(
1449
+    );
1450
+    // Add the BOINC user name (non-unique, user editable)
1451
+    $form['general']['boincuser_name'] = array(
1452 1452
     '#type' => 'textfield',
1453 1453
     '#title' => bts('Name', array(), NULL, 'boinc:user-or-team-name'),
1454 1454
     '#default_value' => $account->boincuser_name,
@@ -1456,252 +1456,252 @@  discard block
 block discarded – undo
1456 1456
     '#required' => TRUE,
1457 1457
     '#description' => '',
1458 1458
     '#size' => 40
1459
-  );
1460
-  // Time zone
1461
-  if (variable_get('configurable_timezones', 1)) {
1459
+    );
1460
+    // Time zone
1461
+    if (variable_get('configurable_timezones', 1)) {
1462 1462
     $zones = _system_zonelist();
1463 1463
     $form['general']['timezone'] = array(
1464
-      '#type' => 'select',
1465
-      '#title' => bts('Time zone', array(), NULL, 'boinc:account-preferences-community'),
1466
-      '#default_value' => ($account->timezone !== NULL) ? $account->timezone : variable_get('date_default_timezone', 0),
1467
-      '#options' => $zones,
1468
-      '#description' => '',
1464
+        '#type' => 'select',
1465
+        '#title' => bts('Time zone', array(), NULL, 'boinc:account-preferences-community'),
1466
+        '#default_value' => ($account->timezone !== NULL) ? $account->timezone : variable_get('date_default_timezone', 0),
1467
+        '#options' => $zones,
1468
+        '#description' => '',
1469 1469
     );
1470
-  }
1470
+    }
1471 1471
   
1472
-  // Notification options
1473
-  $form['notifications'] = array(
1472
+    // Notification options
1473
+    $form['notifications'] = array(
1474 1474
     '#type' => 'fieldset',
1475 1475
     '#title' => bts('Notification settings', array(), NULL, 'boinc:account-preferences-community'),
1476 1476
     '#weight' => 5,
1477 1477
     '#collapsible' => TRUE,
1478 1478
     '#collapsed' => FALSE
1479
-  );
1480
-  // Pull in private message notification handling and tweak the form
1481
-  $pm_notify = pm_email_notify_user('form', $edit, $account, 'account');
1482
-  $form['notifications']['pm_send_notifications'] = array_replace(
1479
+    );
1480
+    // Pull in private message notification handling and tweak the form
1481
+    $pm_notify = pm_email_notify_user('form', $edit, $account, 'account');
1482
+    $form['notifications']['pm_send_notifications'] = array_replace(
1483 1483
     $pm_notify['enable_pm_mail']['pm_send_notifications'],
1484 1484
     array(
1485
-      '#type' => 'radios',
1486
-      '#title' => bts('Receive email notification for private messages?', array(), NULL, 'boinc:account-preferences-community'),
1487
-      '#description' => ' ',
1488
-      '#options' => $form['boolean_options']['#value'],
1489
-      '#attributes' => array('class' => 'fancy')
1485
+        '#type' => 'radios',
1486
+        '#title' => bts('Receive email notification for private messages?', array(), NULL, 'boinc:account-preferences-community'),
1487
+        '#description' => ' ',
1488
+        '#options' => $form['boolean_options']['#value'],
1489
+        '#attributes' => array('class' => 'fancy')
1490 1490
     )
1491
-  );
1492
-  $form['notifications']['friend_notification'] = array(
1491
+    );
1492
+    $form['notifications']['friend_notification'] = array(
1493 1493
     '#type' => 'radios',
1494 1494
     '#title' => bts('Receive email notification for friend requests?', array(), NULL, 'boinc:account-preferences-community'),
1495 1495
     '#description' => ' ',
1496 1496
     '#options' => array(0 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), -1 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes')),
1497 1497
     '#attributes' => array('class' => 'fancy'),
1498 1498
     '#default_value' => $default['friend_notification']
1499
-  );
1499
+    );
1500 1500
   
1501
-  // Internationalization options
1502
-  if (module_exists('internationalization')) {
1501
+    // Internationalization options
1502
+    if (module_exists('internationalization')) {
1503 1503
     $languages = language_list('enabled');
1504 1504
     $languages = $languages[1];
1505 1505
     $names = array();
1506 1506
     foreach ($languages as $langcode => $item) {
1507
-      $name = t($item->name);
1508
-      $names[check_plain($langcode)] = check_plain($name . ($item->native != $name ? ' ('. $item->native .')' : ''));
1507
+        $name = t($item->name);
1508
+        $names[check_plain($langcode)] = check_plain($name . ($item->native != $name ? ' ('. $item->native .')' : ''));
1509 1509
     }
1510 1510
     $form['locale'] = array(
1511
-      '#type' => 'fieldset',
1512
-      '#title' => bts('Language settings', array(), NULL, 'boinc:account-preferences-community'),
1513
-      '#weight' => 10,
1514
-      '#collapsible' => TRUE,
1515
-      '#collapsed' => FALSE,
1511
+        '#type' => 'fieldset',
1512
+        '#title' => bts('Language settings', array(), NULL, 'boinc:account-preferences-community'),
1513
+        '#weight' => 10,
1514
+        '#collapsible' => TRUE,
1515
+        '#collapsed' => FALSE,
1516 1516
     );
1517 1517
 
1518 1518
     // Get language negotiation settings.
1519 1519
     $mode = variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE);
1520 1520
     $user_preferred_language = user_preferred_language($account);
1521 1521
     $form['locale']['language'] = array(
1522
-      '#type' => 'select',
1523
-      '#title' => bts('Language', array(), NULL, 'boinc:account-preferences-community'),
1524
-      '#default_value' => check_plain($user_preferred_language->language),
1525
-      '#options' => $names,
1526
-      '#description' => ($mode == LANGUAGE_NEGOTIATION_PATH) ? bts("This account's default language for e-mails and preferred language for site presentation.", array(), NULL, 'boinc:account-preferences-community') : bts("This account's default language for e-mails.", array(), NULL, 'boinc:account-preferences-community'),
1522
+        '#type' => 'select',
1523
+        '#title' => bts('Language', array(), NULL, 'boinc:account-preferences-community'),
1524
+        '#default_value' => check_plain($user_preferred_language->language),
1525
+        '#options' => $names,
1526
+        '#description' => ($mode == LANGUAGE_NEGOTIATION_PATH) ? bts("This account's default language for e-mails and preferred language for site presentation.", array(), NULL, 'boinc:account-preferences-community') : bts("This account's default language for e-mails.", array(), NULL, 'boinc:account-preferences-community'),
1527 1527
     );
1528
-  }
1528
+    }
1529 1529
   
1530
-  // Avatar options
1531
-  $form['gravatar'] = array(
1530
+    // Avatar options
1531
+    $form['gravatar'] = array(
1532 1532
     '#type' => 'item',
1533 1533
     '#value' => bts('If you have a <a href="@gravatar-check">valid Gravatar</a> associated with your e-mail address, it will be used for your user picture.', array('@gravatar-check' => 'http://en.gravatar.com/site/check/' . $account->mail), NULL, 'boinc:account-preferences-community'),
1534 1534
     '#description' => bts('Your Gravatar will not be shown if you upload a user picture.', array(), NULL, 'boinc:account-preferences-community'),
1535
-  );
1536
-  if (user_access('disable own gravatar', $account)) {
1535
+    );
1536
+    if (user_access('disable own gravatar', $account)) {
1537 1537
     $form['gravatar'] = array(
1538
-      '#type' => 'checkbox',
1539
-      '#title' => bts('If you have a <a href="@gravatar-check">valid Gravatar</a> associated with your e-mail address, use it for your user picture.', array('@gravatar-check' => 'http://en.gravatar.com/site/check/' . $account->mail), NULL, 'boinc:account-preferences-community'),
1540
-      '#description' => bts('Gravatar will not be shown if an avatar is uploaded.', array(), NULL, 'boinc:account-preferences-community'),
1541
-      '#default_value' => isset($account->gravatar) ? $account->gravatar : 0,
1542
-      '#disabled' => !empty($account->picture),
1543
-    );
1544
-  }
1545
-  $form['gravatar']['#weight'] = 15;
1546
-  $form['gravatar']['#prefix'] = '<fieldset class="collapsible"><legend><a href="#">' . bts('Avatar settings', array(), NULL, 'boinc:account-preferences-community') . '</a></legend>';
1547
-  // Upload an avatar (pulled from profile_node_form):
1548
-  if (!empty($profile_form['field_image'])) {
1538
+        '#type' => 'checkbox',
1539
+        '#title' => bts('If you have a <a href="@gravatar-check">valid Gravatar</a> associated with your e-mail address, use it for your user picture.', array('@gravatar-check' => 'http://en.gravatar.com/site/check/' . $account->mail), NULL, 'boinc:account-preferences-community'),
1540
+        '#description' => bts('Gravatar will not be shown if an avatar is uploaded.', array(), NULL, 'boinc:account-preferences-community'),
1541
+        '#default_value' => isset($account->gravatar) ? $account->gravatar : 0,
1542
+        '#disabled' => !empty($account->picture),
1543
+    );
1544
+    }
1545
+    $form['gravatar']['#weight'] = 15;
1546
+    $form['gravatar']['#prefix'] = '<fieldset class="collapsible"><legend><a href="#">' . bts('Avatar settings', array(), NULL, 'boinc:account-preferences-community') . '</a></legend>';
1547
+    // Upload an avatar (pulled from profile_node_form):
1548
+    if (!empty($profile_form['field_image'])) {
1549 1549
     $form['field_image'] = $profile_form['field_image'];
1550
-  }
1551
-  else {
1550
+    }
1551
+    else {
1552 1552
     $form['field_image'] = array(
1553
-      '#value' => '<div class="form-item">'
1553
+        '#value' => '<div class="form-item">'
1554 1554
         . '<label class="placeholder">'
1555 1555
         . bts('This is not available until your profile is set up.', array(), NULL, 'boinc:account-preferences-community')
1556 1556
         . '</label>'
1557 1557
         . l(bts('Create a profile', array(), NULL, 'boinc:account-preferences-community'), 'account/profile/edit', array('attributes' => array('class' => 'form-link')))
1558 1558
         . '</div>',
1559 1559
     );
1560
-  }
1561
-  $form['field_image'][0]['#title'] = bts('Upload an avatar', array(), NULL, 'boinc:account-preferences-community');
1562
-  $form['field_image']['#weight'] = 20;
1563
-  $form['field_image']['#suffix'] = '</fieldset>';
1560
+    }
1561
+    $form['field_image'][0]['#title'] = bts('Upload an avatar', array(), NULL, 'boinc:account-preferences-community');
1562
+    $form['field_image']['#weight'] = 20;
1563
+    $form['field_image']['#suffix'] = '</fieldset>';
1564 1564
   
1565
-  // Forum options
1566
-  $form['forums'] = array(
1565
+    // Forum options
1566
+    $form['forums'] = array(
1567 1567
     '#type' => 'fieldset',
1568 1568
     '#title' => bts('Forum settings', array(), NULL, 'boinc:account-preferences-community'),
1569 1569
     '#weight' => 25,
1570 1570
     '#collapsible' => TRUE,
1571 1571
     '#collapsed' => FALSE
1572
-  );
1573
-  $form['forums']['comments_per_page'] = array(
1572
+    );
1573
+    $form['forums']['comments_per_page'] = array(
1574 1574
     '#type' => 'select',
1575 1575
     '#title' => bts('In discussion topics, show at most @comments_per_page', array('@comments_per_page' => ''), NULL, 'boinc:account-preferences-community'),
1576 1576
     '#options' => array(10 => 10, 20 => 20, 30 => 30, 50 => 50, 100 => 100),
1577 1577
     '#default_value' => $default['comments_per_page']
1578
-  );
1579
-  // Can't have a typical Drupal form suffix on a select box?
1580
-  $form['forums']['comments_per_page_suffix'] = array(
1578
+    );
1579
+    // Can't have a typical Drupal form suffix on a select box?
1580
+    $form['forums']['comments_per_page_suffix'] = array(
1581 1581
     '#value' => '<span>' . bts('comments per page', array(), NULL, 'boinc:account-preferences-community') . '</span>'
1582
-  );
1583
-  $form['forums']['comments_order'] = array(
1582
+    );
1583
+    $form['forums']['comments_order'] = array(
1584 1584
     '#type' => 'select',
1585 1585
     '#title' => bts('Sort comments in discussions', array(), NULL, 'boinc:account-preferences-community'),
1586 1586
     '#options' => array(1 => bts('Newest post first', array(), NULL, 'boinc:account-preferences-community'), 2 => bts('Oldest post first', array(), NULL, 'boinc:account-preferences-community')),
1587 1587
     '#default_value' => $default['comments_order']
1588
-  );
1589
-  // Signature (pulled from user_edit_form):
1590
-  if (variable_get('user_signatures', 0) && module_exists('comment')) {
1588
+    );
1589
+    // Signature (pulled from user_edit_form):
1590
+    if (variable_get('user_signatures', 0) && module_exists('comment')) {
1591 1591
     $form['forums']['signature'] = array(
1592
-      '#type' => 'textarea',
1593
-      '#title' => bts('Signature', array(), NULL, 'boinc:account-preferences-community'),
1594
-      '#description' => bts('Your signature will be publicly displayed at the end of your comments.', array(), NULL, 'boinc:account-preferences-community'),
1595
-      '#default_value' => $account->signature
1596
-      );
1592
+        '#type' => 'textarea',
1593
+        '#title' => bts('Signature', array(), NULL, 'boinc:account-preferences-community'),
1594
+        '#description' => bts('Your signature will be publicly displayed at the end of your comments.', array(), NULL, 'boinc:account-preferences-community'),
1595
+        '#default_value' => $account->signature
1596
+        );
1597 1597
     // Prevent a "validation error" message when the user attempts to save with a default value they
1598 1598
     // do not have access to.
1599 1599
     if (!filter_access($account->signature_format) && empty($_POST)) {
1600
-      drupal_set_message(t("The signature input format has been set to a format you don't have access to. It will be changed to a format you have access to when you save this page."));
1601
-      $edit['signature_format'] = FILTER_FORMAT_DEFAULT;
1600
+        drupal_set_message(t("The signature input format has been set to a format you don't have access to. It will be changed to a format you have access to when you save this page."));
1601
+        $edit['signature_format'] = FILTER_FORMAT_DEFAULT;
1602 1602
     }
1603 1603
     $form['forums']['signature_format'] = filter_form($account->signature_format, NULL, array('signature_format'));
1604 1604
     // Optionally hide signatures from comments
1605 1605
     $form['forums']['hide_signatures'] = array(
1606
-      '#type' => 'radios',
1607
-      '#title' => bts('Hide signatures in forums', array(), NULL, 'boinc:account-preferences-community'),
1608
-      '#description' => ' ',
1609
-      '#options' => $form['boolean_options']['#value'],
1610
-      '#attributes' => array('class' => 'fancy'),
1611
-      '#default_value' => isset($account->hide_signatures) ? $account->hide_signatures : 0,
1606
+        '#type' => 'radios',
1607
+        '#title' => bts('Hide signatures in forums', array(), NULL, 'boinc:account-preferences-community'),
1608
+        '#description' => ' ',
1609
+        '#options' => $form['boolean_options']['#value'],
1610
+        '#attributes' => array('class' => 'fancy'),
1611
+        '#default_value' => isset($account->hide_signatures) ? $account->hide_signatures : 0,
1612 1612
     );
1613
-  }
1613
+    }
1614 1614
 
1615
-  //Bottom separator
1616
-  $form['separator_bottom'] = array(
1615
+    //Bottom separator
1616
+    $form['separator_bottom'] = array(
1617 1617
     '#value' => '<div class="separator buttons"></div>',
1618 1618
     '#weight' => 999,
1619
-  );
1619
+    );
1620 1620
   
1621
-  // Form control
1622
-  $form['form control tabs prefix'] = array(
1621
+    // Form control
1622
+    $form['form control tabs prefix'] = array(
1623 1623
     '#value' => '<ul class="form-control tab-list">',
1624 1624
     '#weight' => 1001,
1625
-  );
1626
-  $form['submit'] = array(
1625
+    );
1626
+    $form['submit'] = array(
1627 1627
     '#prefix' => '<li class="first tab">',
1628 1628
     '#type' => 'submit',
1629 1629
     '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
1630 1630
     '#suffix' => '</li>',
1631 1631
     '#weight' => 1002,
1632
-  );
1633
-  $form['form control tabs'] = array(
1632
+    );
1633
+    $form['form control tabs'] = array(
1634 1634
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>',
1635 1635
     '#weight' => 1003,
1636
-  );
1637
-  $form['form control tabs suffix'] = array(
1636
+    );
1637
+    $form['form control tabs suffix'] = array(
1638 1638
     '#value' => '</ul>',
1639 1639
     '#weight' => 1004,
1640
-  );
1641
-  return $form;
1640
+    );
1641
+    return $form;
1642 1642
 }
1643 1643
 
1644 1644
 /**
1645
-  * Handle validation submission of community preferences form.
1646
-  */
1645
+ * Handle validation submission of community preferences form.
1646
+ */
1647 1647
 function communityprefs_form_validate($form, &$form_state) {
1648
-  // require_boinc();
1649
-  global $user;
1650
-  $account = user_load($user->uid);
1651
-  $boinc_user = BoincUser::lookup_id($account->boincuser_id);
1652
-  $edit = $form_state['values'];
1648
+    // require_boinc();
1649
+    global $user;
1650
+    $account = user_load($user->uid);
1651
+    $boinc_user = BoincUser::lookup_id($account->boincuser_id);
1652
+    $edit = $form_state['values'];
1653 1653
 
1654
-  if ($edit['boincuser_name'] != $boinc_user->name) {
1654
+    if ($edit['boincuser_name'] != $boinc_user->name) {
1655 1655
     $blacklist1 = preg_split('/\r\n|\r|\n/', variable_get('boinc_weboptions_blacklisted_usernames', "admin\nadministrator\nmoderator"));
1656 1656
     $blacklist2 = array();
1657 1657
     if (is_array($blacklist1)) {
1658
-      $blacklist2 = array_map('strtolower', $blacklist1);
1658
+        $blacklist2 = array_map('strtolower', $blacklist1);
1659 1659
     }
1660 1660
     if (in_array(strtolower($edit['boincuser_name']), $blacklist2)) {
1661
-      form_set_error('boincuser_name',
1661
+        form_set_error('boincuser_name',
1662 1662
         bts('You may not use username @blname, as that name is not allowed. Please choose another name.',
1663 1663
             array('@blname' => $edit['boincuser_name']),
1664 1664
             NULL, 'boinc:account-preferences-community'));
1665
-      return false;
1665
+        return false;
1666
+    }
1666 1667
     }
1667
-  }
1668 1668
 
1669
-  return true;
1669
+    return true;
1670 1670
 }
1671 1671
 
1672 1672
 /**
1673
-  * Handle post-validation submission of community preferences form.
1674
-  */
1673
+ * Handle post-validation submission of community preferences form.
1674
+ */
1675 1675
 function communityprefs_form_submit($form, &$form_state) {
1676
-  require_boinc('boinc_db');
1677
-  global $user;
1678
-  $account = user_load($user->uid);
1679
-  $boinc_user = BoincUser::lookup_id($account->boincuser_id);
1680
-  $edit = $form_state['values'];
1681
-  $profile_node = $form_state['storage']['profile_node'];
1682
-  
1683
-  // Display name
1684
-  if ($edit['boincuser_name'] != $boinc_user->name) {
1676
+    require_boinc('boinc_db');
1677
+    global $user;
1678
+    $account = user_load($user->uid);
1679
+    $boinc_user = BoincUser::lookup_id($account->boincuser_id);
1680
+    $edit = $form_state['values'];
1681
+    $profile_node = $form_state['storage']['profile_node'];
1682
+  
1683
+    // Display name
1684
+    if ($edit['boincuser_name'] != $boinc_user->name) {
1685 1685
     $boincuser_name = $edit['boincuser_name'];
1686 1686
     $result = $boinc_user->update(
1687 1687
         "name='{$boincuser_name}'"
1688 1688
     );
1689
-  }
1689
+    }
1690 1690
   
1691
-  // Private message settings
1692
-  pm_email_notify_user('submit', $edit, $user);
1691
+    // Private message settings
1692
+    pm_email_notify_user('submit', $edit, $user);
1693 1693
   
1694
-  // Avatar settings - only set if profile_node exists.
1695
-  if ($profile_node) {
1694
+    // Avatar settings - only set if profile_node exists.
1695
+    if ($profile_node) {
1696 1696
     if (!$edit['field_image']) $edit['field_image'] = array();
1697 1697
     $profile_node->field_image = $edit['field_image'];
1698 1698
     node_save($profile_node);
1699 1699
     // Flush this from the node cache or changes won't show up immediately!
1700 1700
     $profile_node = node_load($profile_node->nid, NULL, TRUE);
1701
-  }
1701
+    }
1702 1702
 
1703
-  // All other settings
1704
-  $settings = array(
1703
+    // All other settings
1704
+    $settings = array(
1705 1705
     'signature' => $edit['signature'],
1706 1706
     'signature_format' => $edit['signature_format'],
1707 1707
     'timezone' => $edit['timezone'],
@@ -1710,183 +1710,183 @@  discard block
 block discarded – undo
1710 1710
     'hide_signatures' => $edit['hide_signatures'],
1711 1711
     'sort' => $edit['comments_order'],
1712 1712
     'gravatar' => $edit['gravatar'],
1713
-  );
1714
-  if (module_exists('internationalization')) {
1713
+    );
1714
+    if (module_exists('internationalization')) {
1715 1715
     $settings['language'] = $edit['language'];
1716 1716
     global $language;
1717 1717
     if ($user->language != $edit['language']) {
1718
-      global $base_url;
1719
-      if ($edit['language'] != language_default('language')) {
1718
+        global $base_url;
1719
+        if ($edit['language'] != language_default('language')) {
1720 1720
         $form_state['redirect'] = $base_url . '/' . $edit['language'] . '/' . $_GET['q'];
1721
-      }
1722
-      else {
1721
+        }
1722
+        else {
1723 1723
         $form_state['redirect'] = $base_url . '/' . $_GET['q'];
1724
-      }
1724
+        }
1725
+    }
1725 1726
     }
1726
-  }
1727
-  user_save($user, $settings);
1727
+    user_save($user, $settings);
1728 1728
   
1729
-  drupal_set_message(bts('Your community preferences have been updated.', array(), NULL, 'boinc:account-preferences-community'));
1729
+    drupal_set_message(bts('Your community preferences have been updated.', array(), NULL, 'boinc:account-preferences-community'));
1730 1730
 
1731
-  // Form will not redirect if storage is set; not good if language changes
1732
-  unset($form_state['storage']);
1731
+    // Form will not redirect if storage is set; not good if language changes
1732
+    unset($form_state['storage']);
1733 1733
 }
1734 1734
 
1735 1735
 /**
1736 1736
  * The structure of the privacy preferences form
1737 1737
  */
1738 1738
 function boincwork_privacyprefs_form(&$form_state) {
1739
-  require_boinc(array('user', 'prefs', 'util', 'consent'));
1739
+    require_boinc(array('user', 'prefs', 'util', 'consent'));
1740 1740
   
1741
-  global $user;
1742
-  $account = user_load($user->uid);
1743
-  $boincuser = BoincUser::lookup_id($account->boincuser_id);
1741
+    global $user;
1742
+    $account = user_load($user->uid);
1743
+    $boincuser = BoincUser::lookup_id($account->boincuser_id);
1744 1744
   
1745
-  // Load preferences from BOINC account
1746
-  $prefs = boincwork_load_prefs('project');
1745
+    // Load preferences from BOINC account
1746
+    $prefs = boincwork_load_prefs('project');
1747 1747
   
1748
-  //if (!$prefs AND !$initialize_if_empty) return null;
1748
+    //if (!$prefs AND !$initialize_if_empty) return null;
1749 1749
 
1750
-  $privacy_consent_types = boincwork_load_privacyconsenttypes();
1750
+    $privacy_consent_types = boincwork_load_privacyconsenttypes();
1751 1751
   
1752
-  // Define form defaults
1753
-  $default = array(
1752
+    // Define form defaults
1753
+    $default = array(
1754 1754
     'privacy' => array(
1755
-      'send_email' => ($boincuser->send_email) ? 1 : 0,
1756
-      'show_hosts' => ($boincuser->show_hosts) ? 1 : 0
1755
+        'send_email' => ($boincuser->send_email) ? 1 : 0,
1756
+        'show_hosts' => ($boincuser->show_hosts) ? 1 : 0
1757 1757
     )
1758
-  );
1758
+    );
1759 1759
   
1760
-  // Standard option sets
1761
-  $form['boolean_options'] = array(
1760
+    // Standard option sets
1761
+    $form['boolean_options'] = array(
1762 1762
     '#type' => 'value',
1763 1763
     '#value' => array(1 => bts('yes', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-no'), 0 => bts('no', array(), NULL, 'boinc:form-yes-no:-1:binary-form-option-pairs-with-yes'))
1764
-  );
1764
+    );
1765 1765
   
1766
-  $form['privacy'] = array(
1766
+    $form['privacy'] = array(
1767 1767
     '#title' => bts('Privacy settings', array(), NULL, 'boinc:account-preferences-privacy'),
1768 1768
     '#type' => 'fieldset',
1769 1769
     '#description' => null,
1770 1770
     '#collapsible' => TRUE,
1771 1771
     '#collapsed' => FALSE
1772
-  );
1773
-  $form['privacy']['send_email'] = array(
1772
+    );
1773
+    $form['privacy']['send_email'] = array(
1774 1774
     '#title' => bts('Is it OK for @project and your team (if any) to email you?', array('@project' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:account-preferences-privacy'),
1775 1775
     '#type' => 'radios',
1776 1776
     '#options' => $form['boolean_options']['#value'],
1777 1777
     '#attributes' => array('class' => 'fancy'),
1778 1778
     '#default_value' => $default['privacy']['send_email']
1779
-  );
1780
-  $form['privacy']['show_hosts'] = array(
1779
+    );
1780
+    $form['privacy']['show_hosts'] = array(
1781 1781
     '#title' => bts('Should @project show your computers on its web site?', array('@project' => variable_get('site_name', 'Drupal-BOINC')), NULL, 'boinc:account-preferences-privacy'),
1782 1782
     '#description' => bts('At times, you may be asked to enable this option in order to receive help from the forums. Advanced users may need to be able to inspect your computers\' information in order to help diagnose any problems.', array(), NULL, 'boinc:account-preferences-privacy'),
1783 1783
     '#type' => 'radios',
1784 1784
     '#options' => $form['boolean_options']['#value'],
1785 1785
     '#attributes' => array('class' => 'fancy'),
1786 1786
     '#default_value' => $default['privacy']['show_hosts']
1787
-  );
1787
+    );
1788 1788
 
1789
-  // Loop over privacy consent types and create form question for each
1790
-  // option that deals with privacy.
1791
-  foreach ($privacy_consent_types as $ct) {
1789
+    // Loop over privacy consent types and create form question for each
1790
+    // option that deals with privacy.
1791
+    foreach ($privacy_consent_types as $ct) {
1792 1792
 
1793 1793
     $currstate = (check_user_consent($boincuser, $ct['shortname'])) ? 1 : 0 ;
1794 1794
     // Set name to 'privacyconsent_SHORTNAME', which can be parsed
1795 1795
     // later in the submit function.
1796 1796
     $form['privacy']['privacyconsent_'.$ct['shortname']] = array(
1797
-      '#title' => bts($ct['description'], array(), NULL, 'boinc:account-preferences-privacy'),
1798
-      '#type' => 'radios',
1799
-      '#options' => $form['boolean_options']['#value'],
1800
-      '#attributes' => array('class' => 'fancy'),
1801
-      '#default_value' => $currstate,
1797
+        '#title' => bts($ct['description'], array(), NULL, 'boinc:account-preferences-privacy'),
1798
+        '#type' => 'radios',
1799
+        '#options' => $form['boolean_options']['#value'],
1800
+        '#attributes' => array('class' => 'fancy'),
1801
+        '#default_value' => $currstate,
1802 1802
     );
1803
-  }
1803
+    }
1804 1804
 
1805
-  // Ignore and block users
1806
-  if (module_exists('ignore_user')) {
1805
+    // Ignore and block users
1806
+    if (module_exists('ignore_user')) {
1807 1807
     $form['ignoreblock'] = array(
1808
-      '#title' => bts('Ignore Users', array(), NULL, 'boinc:account-preferences-privacy'),
1809
-      '#type' => 'fieldset',
1810
-      '#description' => bts('<p>You may ignore users in the forums and block users from sending you private messages.<p>', array(), NULL, 'boinc:ignore-user-help'),
1811
-      '#collapsible' => TRUE,
1812
-      '#collapsed' => FALSE
1808
+        '#title' => bts('Ignore Users', array(), NULL, 'boinc:account-preferences-privacy'),
1809
+        '#type' => 'fieldset',
1810
+        '#description' => bts('<p>You may ignore users in the forums and block users from sending you private messages.<p>', array(), NULL, 'boinc:ignore-user-help'),
1811
+        '#collapsible' => TRUE,
1812
+        '#collapsed' => FALSE
1813 1813
     );
1814 1814
 
1815 1815
     // Table for ignored users
1816 1816
     $form['ignoreblock']['current_ignore_section'] = array(
1817
-      '#type' => 'item',
1818
-      '#value' => bts('Current users on your Ignore List', array(), NULL, 'boinc:ignore-user-list'),
1819
-      '#prefix' => '<h4>',
1820
-      '#suffix' => '</h4>',
1821
-      '#weight' => -20,
1817
+        '#type' => 'item',
1818
+        '#value' => bts('Current users on your Ignore List', array(), NULL, 'boinc:ignore-user-list'),
1819
+        '#prefix' => '<h4>',
1820
+        '#suffix' => '</h4>',
1821
+        '#weight' => -20,
1822 1822
     );
1823 1823
 
1824 1824
     $ignored_users = _ignore_user_ignored_users();
1825 1825
     foreach ($ignored_users as $ignored_user) {
1826
-      $form['ignoreblock']['username'][$ignored_user['iuid']] = array(
1826
+        $form['ignoreblock']['username'][$ignored_user['iuid']] = array(
1827 1827
         '#value' => $ignored_user['username'],
1828
-      );
1829
-      $form['ignoreblock']['delete'][$ignored_user['iuid']] = array(
1828
+        );
1829
+        $form['ignoreblock']['delete'][$ignored_user['iuid']] = array(
1830 1830
         '#value' => l(
1831
-          bts('delete', array(), NULL, 'boinc:ignore-user-delete-button'),
1832
-          'account/prefs/privacy/ignore_user/remove/'. $ignored_user['iuid'],
1833
-          array()
1831
+            bts('delete', array(), NULL, 'boinc:ignore-user-delete-button'),
1832
+            'account/prefs/privacy/ignore_user/remove/'. $ignored_user['iuid'],
1833
+            array()
1834 1834
         ),
1835
-      );
1835
+        );
1836 1836
     }
1837 1837
     $form['ignoreblock']['pager'] = array('#value' => theme('pager', NULL, 10, 0));
1838 1838
 
1839 1839
     // Sub-form to add user to ignore list
1840 1840
     $form['ignoreblock']['add_ignore_user_section'] = array(
1841
-      '#type' => 'item',
1842
-      '#value' => bts('Add user to Ignore List', array(), NULL, 'boinc:ignore-user-add'),
1843
-      '#prefix' => '<h4>',
1844
-      '#suffix' => '</h4>',
1845
-      '#weight' => 10,
1841
+        '#type' => 'item',
1842
+        '#value' => bts('Add user to Ignore List', array(), NULL, 'boinc:ignore-user-add'),
1843
+        '#prefix' => '<h4>',
1844
+        '#suffix' => '</h4>',
1845
+        '#weight' => 10,
1846 1846
     );
1847 1847
 
1848 1848
     $form['ignoreblock']['addusername_toignorelist'] = array(
1849
-      '#type' => 'textfield',
1850
-      '#title' => bts('Username', array(), NULL, 'boinc:ignore-user-searchbox'),
1851
-      '#description' => bts('To lookup a username start typing in the search box. A list of usernames will appear as you type. The number appearing in the suffix is the BOINC id. You can find a user\'s BOINC id on their user profile page.', array(), NULL, 'boinc:ignore-user-searchbox-help'),
1852
-      '#weight' => 11,
1853
-      '#size' => 50,
1854
-      '#autocomplete_path' => 'boincuser/autocomplete',
1849
+        '#type' => 'textfield',
1850
+        '#title' => bts('Username', array(), NULL, 'boinc:ignore-user-searchbox'),
1851
+        '#description' => bts('To lookup a username start typing in the search box. A list of usernames will appear as you type. The number appearing in the suffix is the BOINC id. You can find a user\'s BOINC id on their user profile page.', array(), NULL, 'boinc:ignore-user-searchbox-help'),
1852
+        '#weight' => 11,
1853
+        '#size' => 50,
1854
+        '#autocomplete_path' => 'boincuser/autocomplete',
1855 1855
     );
1856 1856
 
1857 1857
     $form['ignoreblock']['addusername_submit'] = array(
1858
-      '#type' => 'submit',
1859
-      '#value' => bts('Ignore user', array(), NULL, 'boinc:ignore-user-add'),
1860
-      '#submit' => array('_boincwork_ignore_list_form_submit'),
1861
-      '#weight' => 12,
1862
-      '#attributes' => array('class' => 'add_ignore_user'),
1858
+        '#type' => 'submit',
1859
+        '#value' => bts('Ignore user', array(), NULL, 'boinc:ignore-user-add'),
1860
+        '#submit' => array('_boincwork_ignore_list_form_submit'),
1861
+        '#weight' => 12,
1862
+        '#attributes' => array('class' => 'add_ignore_user'),
1863 1863
     );
1864
-  }// endif module_exists
1864
+    }// endif module_exists
1865 1865
 
1866
-  $form['prefs']['separator_bottom'] = array(
1866
+    $form['prefs']['separator_bottom'] = array(
1867 1867
     '#value' => '<div class="separator buttons"></div>'
1868
-  );
1868
+    );
1869 1869
   
1870
-  // Form control
1871
-  $form['prefs']['form control tabs prefix'] = array(
1870
+    // Form control
1871
+    $form['prefs']['form control tabs prefix'] = array(
1872 1872
     '#value' => '<ul class="form-control tab-list">'
1873
-  );
1874
-  $form['prefs']['submit'] = array(
1873
+    );
1874
+    $form['prefs']['submit'] = array(
1875 1875
     '#prefix' => '<li class="first tab">',
1876 1876
     '#type' => 'submit',
1877 1877
     '#value' => bts('Save changes', array(), NULL, 'boinc:form-save'),
1878 1878
     '#validate' => array('boincwork_privacyprefs_form_validate'),
1879 1879
     '#submit' => array('boincwork_privacyprefs_form_submit'),
1880 1880
     '#suffix' => '</li>'
1881
-  );
1882
-  $form['prefs']['form control tabs'] = array(
1881
+    );
1882
+    $form['prefs']['form control tabs'] = array(
1883 1883
     '#value' => '<li class="tab">' . l(bts('Cancel', array(), NULL, 'boinc:form-cancel'), $_GET['q']) . '</li>'
1884
-  );
1885
-  $form['prefs']['form control tabs suffix'] = array(
1884
+    );
1885
+    $form['prefs']['form control tabs suffix'] = array(
1886 1886
     '#value' => '</ul>'
1887
-  );
1887
+    );
1888 1888
   
1889
-  return $form;
1889
+    return $form;
1890 1890
 }
1891 1891
 
1892 1892
 /**
@@ -1894,93 +1894,93 @@  discard block
 block discarded – undo
1894 1894
  */
1895 1895
 function theme_boincwork_privacyprefs_form($form) {
1896 1896
 
1897
-  $output = '';
1898
-  $output .= drupal_render($form['privacy']);
1897
+    $output = '';
1898
+    $output .= drupal_render($form['privacy']);
1899 1899
 
1900
-  $header = array(
1900
+    $header = array(
1901 1901
     bts('Username', array(), NULL, 'boinc:ignore-user-list'),
1902 1902
     bts('Operations', array(), NULL, 'boinc:ignore-user-list')
1903
-  );
1903
+    );
1904 1904
 
1905
-  $rows = array();
1906
-  if (isset($form['ignoreblock']['username']) && is_array($form['ignoreblock']['username'])) {
1905
+    $rows = array();
1906
+    if (isset($form['ignoreblock']['username']) && is_array($form['ignoreblock']['username'])) {
1907 1907
     foreach (element_children($form['ignoreblock']['username']) as $key) {
1908
-      $row = array();
1909
-      $row[] = drupal_render($form['ignoreblock']['username'][$key]);
1910
-      $row[] = drupal_render($form['ignoreblock']['delete'][$key]);
1911
-      $rows[] = $row;
1908
+        $row = array();
1909
+        $row[] = drupal_render($form['ignoreblock']['username'][$key]);
1910
+        $row[] = drupal_render($form['ignoreblock']['delete'][$key]);
1911
+        $rows[] = $row;
1912 1912
     }
1913
-  }
1914
-  else {
1913
+    }
1914
+    else {
1915 1915
     $rows[] = array(
1916
-      array(
1916
+        array(
1917 1917
         'data' => bts('You have not added any users to your Ignore List.', array(), NULL, 'boinc:ignore-user-list'),
1918 1918
         'colspan' => '2',
1919
-      )
1919
+        )
1920 1920
     );
1921
-  }
1921
+    }
1922 1922
 
1923
-  $attr = array('class' => 'ignore_user');
1924
-  $form['ignoreblock']['current_list']['ignored_users']['#value'] = theme('table', $header, $rows, $attr);
1925
-  $output .= drupal_render($form['current_list']);
1923
+    $attr = array('class' => 'ignore_user');
1924
+    $form['ignoreblock']['current_list']['ignored_users']['#value'] = theme('table', $header, $rows, $attr);
1925
+    $output .= drupal_render($form['current_list']);
1926 1926
 
1927
-  if ($form['pager']['#value']) {
1927
+    if ($form['pager']['#value']) {
1928 1928
     $output .= drupal_render($form['pager']);
1929
-  }
1929
+    }
1930 1930
 
1931
-  $output .= drupal_render($form);
1931
+    $output .= drupal_render($form);
1932 1932
 
1933
-  return $output;
1933
+    return $output;
1934 1934
 }
1935 1935
 
1936 1936
 /**
1937
-  * Validate the privacy preferences form.
1938
-  */
1937
+ * Validate the privacy preferences form.
1938
+ */
1939 1939
 function boincwork_privacyprefs_form_validate($form, &$form_state) {
1940
-  require_boinc('util');
1940
+    require_boinc('util');
1941 1941
   
1942
-  // Verify all non-boolean user input values and notify form API of failures
1943
-  // ... currently there are no non-boolean values!
1942
+    // Verify all non-boolean user input values and notify form API of failures
1943
+    // ... currently there are no non-boolean values!
1944 1944
 }
1945 1945
 
1946 1946
 /**
1947
-  * Handle post-validation submission of privacy preferences form.
1948
-  */
1947
+ * Handle post-validation submission of privacy preferences form.
1948
+ */
1949 1949
 function boincwork_privacyprefs_form_submit($form, &$form_state) {
1950
-  require_boinc(array('user', 'prefs', 'consent'));
1950
+    require_boinc(array('user', 'prefs', 'consent'));
1951 1951
 
1952
-  global $user;
1953
-  $account = user_load($user->uid);
1952
+    global $user;
1953
+    $account = user_load($user->uid);
1954 1954
 
1955
-  // Load BOINC account
1956
-  $boincuser = BoincUser::lookup_id($account->boincuser_id);
1955
+    // Load BOINC account
1956
+    $boincuser = BoincUser::lookup_id($account->boincuser_id);
1957 1957
   
1958
-  // Privacy preferences
1959
-  $boincuser->send_email = ($form_state['values']['send_email']) ? true : false;
1960
-  $boincuser->show_hosts = ($form_state['values']['show_hosts']) ? true : false;
1958
+    // Privacy preferences
1959
+    $boincuser->send_email = ($form_state['values']['send_email']) ? true : false;
1960
+    $boincuser->show_hosts = ($form_state['values']['show_hosts']) ? true : false;
1961 1961
 
1962
-  // Privacy consent options, extract the 'privacyconsent_SHORTNAME'
1963
-  // from values array, and loop over them; each is checked with
1964
-  // check_consent_type(). Also check the current state of the option
1965
-  // in the database. If the form value is a new state, then set it.
1966
-  $result = preg_grep("/^privacyconsent/", array_keys($form_state['values']));
1967
-  $privacyconsent_prefs = array_intersect_key($form_state['values'], array_flip($result));
1968
-  foreach ($privacyconsent_prefs as $name => $newstate) {
1962
+    // Privacy consent options, extract the 'privacyconsent_SHORTNAME'
1963
+    // from values array, and loop over them; each is checked with
1964
+    // check_consent_type(). Also check the current state of the option
1965
+    // in the database. If the form value is a new state, then set it.
1966
+    $result = preg_grep("/^privacyconsent/", array_keys($form_state['values']));
1967
+    $privacyconsent_prefs = array_intersect_key($form_state['values'], array_flip($result));
1968
+    foreach ($privacyconsent_prefs as $name => $newstate) {
1969 1969
     $subname = explode('_', $name)[1];
1970 1970
     $currstate = (check_user_consent($boincuser, $subname)) ? 1 : 0 ;
1971 1971
     list($checkct, $ctid) = check_consent_type($subname);
1972 1972
     if ($checkct && ($currstate != $newstate)) {
1973
-      consent_to_a_policy($boincuser, $ctid, $newstate, 0, 'Webform', time());
1973
+        consent_to_a_policy($boincuser, $ctid, $newstate, 0, 'Webform', time());
1974
+    }
1974 1975
     }
1975
-  }
1976 1976
 
1977
-  //project_prefs_update($boincuser, $main_prefs);
1977
+    //project_prefs_update($boincuser, $main_prefs);
1978 1978
   
1979
-  db_set_active('boinc_rw');
1980
-  db_query("UPDATE user SET send_email = '{$boincuser->send_email}', show_hosts = '{$boincuser->show_hosts}' WHERE id = '{$boincuser->id}'");
1981
-  db_set_active('default');
1979
+    db_set_active('boinc_rw');
1980
+    db_query("UPDATE user SET send_email = '{$boincuser->send_email}', show_hosts = '{$boincuser->show_hosts}' WHERE id = '{$boincuser->id}'");
1981
+    db_set_active('default');
1982 1982
   
1983
-  drupal_set_message(t('Your privacy preferences have been updated.'));
1983
+    drupal_set_message(t('Your privacy preferences have been updated.'));
1984 1984
 }
1985 1985
 
1986 1986
 /**
@@ -1988,14 +1988,14 @@  discard block
 block discarded – undo
1988 1988
  * ignore list.
1989 1989
  */
1990 1990
 function _boincwork_ignore_list_form_submit($form, $form_state) {
1991
-  boincwork_ignore_user_add_user_username($form_state['values']['addusername_toignorelist']);
1992
-  drupal_set_message(
1991
+    boincwork_ignore_user_add_user_username($form_state['values']['addusername_toignorelist']);
1992
+    drupal_set_message(
1993 1993
     bts('@username has been added to your ignore list. See your !privacy_preferences for more details.',
1994
-      array(
1994
+        array(
1995 1995
         '@username' => $form_state['values']['addusername_toignorelist'],
1996 1996
         '!privacy_preferences' => l(bts('privacy preferences', array(), NULL, 'boinc:ignore-user-add'), 'account/prefs/privacy'),
1997
-      ),
1998
-      NULL, 'boinc:ignore-user-add'),
1997
+        ),
1998
+        NULL, 'boinc:ignore-user-add'),
1999 1999
     'status');
2000 2000
 }
2001 2001
 
@@ -2004,37 +2004,37 @@  discard block
 block discarded – undo
2004 2004
  */
2005 2005
 function boincwork_selectapp_form(&$form_state, $apps, $current_app) {
2006 2006
 
2007
-  $form['selectapp'] = array(
2007
+    $form['selectapp'] = array(
2008 2008
     '#type' => 'select',
2009 2009
     '#attributes' => array(
2010
-      'class' => 'task-app-filter',
2011
-      'onchange' => 'this.form.submit();',
2010
+        'class' => 'task-app-filter',
2011
+        'onchange' => 'this.form.submit();',
2012 2012
     ),
2013 2013
     '#default_value' => $current_app,
2014 2014
     '#options' => $apps,
2015 2015
     '#post_render' => array('_boincwork_selectapp_form_callback'),
2016
-  );
2016
+    );
2017 2017
 
2018
-  // Class task-app-filter-submit for this form is used in
2019
-  // theming. CSS sets 'display:none' if javascript is present. Thus
2020
-  // only non-js users/browsers will see the Apply Filter button.
2021
-  $form['submit'] = array(
2018
+    // Class task-app-filter-submit for this form is used in
2019
+    // theming. CSS sets 'display:none' if javascript is present. Thus
2020
+    // only non-js users/browsers will see the Apply Filter button.
2021
+    $form['submit'] = array(
2022 2022
     '#type' => 'submit',
2023 2023
     '#value' => bts('Apply Filter', array(), NULL, 'boinc:form-save'),
2024 2024
     '#attributes' => array('class' => 'js-hide',),
2025
-  );
2025
+    );
2026 2026
 
2027
-  return $form;
2027
+    return $form;
2028 2028
 }
2029 2029
 
2030 2030
 /**
2031 2031
  * Submit function for select appliacation form.
2032 2032
  */
2033 2033
 function boincwork_selectapp_form_submit($form, &$form_state) {
2034
-  $myargs = arg();
2035
-  array_pop($myargs);
2036
-  $newpath = implode('/', $myargs ) . '/' . $form['selectapp']['#value'];
2037
-  $form_state['redirect'] = $newpath;
2034
+    $myargs = arg();
2035
+    array_pop($myargs);
2036
+    $newpath = implode('/', $myargs ) . '/' . $form['selectapp']['#value'];
2037
+    $form_state['redirect'] = $newpath;
2038 2038
 }
2039 2039
 
2040 2040
 /**
@@ -2044,7 +2044,7 @@  discard block
 block discarded – undo
2044 2044
  * 'title' for the Application drop down box.
2045 2045
  */
2046 2046
 function _boincwork_selectapp_form_callback($theContent, $theElement) {
2047
-  $disabled = '<option value="-1" disabled hidden';
2048
-  $newContent = preg_replace('/<option value="-1"/', $disabled, $theContent);
2049
-  return $newContent;
2047
+    $disabled = '<option value="-1" disabled hidden';
2048
+    $newContent = preg_replace('/<option value="-1"/', $disabled, $theContent);
2049
+    return $newContent;
2050 2050
 }
Please login to merge, or discard this patch.
html/inc/user.inc 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -286,11 +286,11 @@
 block discarded – undo
286 286
 
287 287
         require_once("../inc/account_ownership.inc");
288 288
         if (file_exists($account_ownership_private_key_file_path)) {
289
-          // If the server has keys configured show the account ownership form
290
-          row2(
291
-              tra("Account Ownership"),
292
-              "<a href=\"account_ownership.php?$url_tokens\">Generate ownership proof</a>"
293
-          );
289
+            // If the server has keys configured show the account ownership form
290
+            row2(
291
+                tra("Account Ownership"),
292
+                "<a href=\"account_ownership.php?$url_tokens\">Generate ownership proof</a>"
293
+            );
294 294
         }
295 295
 
296 296
     }
Please login to merge, or discard this patch.