Index: coder.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/coder/coder.js,v retrieving revision 1.3 diff -u -p -r1.3 coder.js --- coder.js 7 Apr 2007 17:28:03 -0000 1.3 +++ coder.js 2 Sep 2008 10:16:50 -0000 @@ -15,34 +15,42 @@ if (Drupal.jsEnabled) { if (this == core || this == active) { modules = "input[@id^=edit-coder-modules-]"; themes = "input[@id^=edit-coder-themes-]"; + profiles = "input[@id^=edit-coder-profiles-]"; if (core.checked || active.checked) { $(modules).uncheck(); $(themes).uncheck(); + $(profiles).uncheck(); if (core.checked) { modules += '.coder-core'; themes += '.coder-core'; + profiles += '.coder-core'; } if (active.checked) { modules += '.coder-active'; themes += '.coder-active'; + profiles += '.coder-active'; } $(modules).check(); $(themes).check(); + $(profiles).check(); } else { if (this == active) { modules += ".coder-active"; themes += ".coder-active"; + profiles += ".coder-active"; } else { modules += ".coder-core"; themes += ".coder-core"; + profiles += ".coder-core"; } $(modules).uncheck(); $(themes).uncheck(); + $(profiles).uncheck(); } } - else if (this.id.substr(0, 19) == "edit-coder-modules-" || this.id.substr(0, 18) == "edit-coder-themes-") { + else if (this.id.substr(0, 19) == "edit-coder-modules-" || this.id.substr(0, 18) == "edit-coder-themes-" || this.id.substr(0,20) == "edit-coder-profiles-") { core.checked = false; active.checked = false; } Index: coder.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/coder/coder.module,v retrieving revision 1.88.2.46 diff -u -p -r1.88.2.46 coder.module --- coder.module 28 Aug 2008 14:31:19 -0000 1.88.2.46 +++ coder.module 2 Sep 2008 10:16:51 -0000 @@ -357,8 +357,20 @@ function _coder_settings_form($settings, $system_links[$system->name] = l($display_name, "coder/$system->name"); $files[$system->name] = $system->filename; } - asort($system_links); + // Get the list of profiles. + $profiles = file_scan_directory('profiles', '\.profile$', array('.', '..', 'CVS'), 0, TRUE, 'name', 0); + foreach ($profiles as $profile) { + $display_name = $profile->name; + $system_profiles[$profile->name] = $profile->name; + $files[$profile->name] = $profile->filename; + if (_coder_is_drupal_core($profile)) { + $display_name .= t(' (core)'); + $system_core[$profile->name] = $profile->name; + } + $system_links[$profile->name] = l($display_name, "coder/$profile->name"); + } + asort($system_links); // Display what to review options. $form['coder_what'] = array( @@ -469,6 +481,28 @@ function _coder_settings_form($settings, $themes = isset($settings['coder_themes']) && is_array($settings['coder_themes']) ? $settings['coder_themes'] : array(); } + // Display the profiles in a fieldset. + $form['coder_what']['coder_profiles'] = array( + '#type' => 'fieldset', + '#title' => t('Select specific profiles'), + '#collapsible' => TRUE, + '#collapsed' => TRUE, + 'checkboxes' => array( + '#theme' => 'cols', + '#cols' => 2, + ), + ); + if (isset($settings['coder_all'])) { + $profiles = $system_profiles; + } + elseif (isset($settings['coder_core']) && $settings['coder_core']) { + $profiles = array_intersect($system_core, $system_profiles); + } + else { + $profiles = isset($settings['coder_profiles']) && is_array($settings['coder_profiles']) ? $settings['coder_profiles'] : array(); + } + + foreach ($system_links as $name => $link) { $classes = array(); if (in_array($name, $system_active)) { @@ -481,6 +515,10 @@ function _coder_settings_form($settings, $type = 'theme'; $default_value = isset($themes[$name]); } + elseif (in_array($name, $system_profiles)) { + $type = 'profile'; + $default_value = isset($profiles[$name]); + } else { $type = 'module'; $default_value = isset($modules[$name]); @@ -493,7 +531,7 @@ function _coder_settings_form($settings, ); } - $system = array_merge($modules, $themes); + $system = array_merge($modules, $themes, $profiles); } return $form; } @@ -551,6 +589,7 @@ function coder_settings_form_submit($for $form_state['storage'] = $form_state['values']; variable_set('coder_modules', _coder_settings_array($form_state, 'module')); variable_set('coder_themes', _coder_settings_array($form_state, 'theme')); + variable_set('coder_profiles', _coder_settings_array($form_state, 'profile')); } /** @@ -639,6 +678,7 @@ function _coder_get_default_settings($ar $settings['coder_includes_exclusions'] = variable_get('coder_includes_exclusions', ''); $settings['coder_modules'] = variable_get('coder_modules', array()); $settings['coder_themes'] = variable_get('coder_themes', array()); + $settings['coder_profiles'] = variable_get('coder_profiles', array()); break; default: @@ -669,6 +709,7 @@ function coder_page_form($form_state) { $settings = $form_state['storage']; $settings['coder_modules'] = _coder_settings_array($form_state, 'module'); $settings['coder_themes'] = _coder_settings_array($form_state, 'theme'); + $settings['coder_profiles'] = _coder_settings_array($form_state, 'profile'); drupal_set_title(t('Code review (submitted options)')); } else { @@ -1650,6 +1691,9 @@ function _coder_is_drupal_core($module) 'marvin' => 1, 'minnelli' => 1, 'pushbutton' => 1, + + // Profiles: + 'default' => 1, ); } return isset($core[$module->name]) ? 1 : 0;