diff --git a/core/modules/project_browser/config/project_browser.settings.yml b/core/modules/project_browser/config/project_browser.settings.yml index f6751d5..fd66849 100644 --- a/core/modules/project_browser/config/project_browser.settings.yml +++ b/core/modules/project_browser/config/project_browser.settings.yml @@ -2,5 +2,6 @@ cache_lifetime: 86400 # @todo - Change the link once drupal.org is ready. default_server: http://drupal:drupal@pbs-drupal_7.redesign.devdrupal.org/project_browser/server: - name: "Drupal.org" - method: "json" + name: Drupal.org + method: json +project_browser_servers: "" diff --git a/core/modules/project_browser/lib/Drupal/project_browser/Tests/ProjectBrowserTest.php b/core/modules/project_browser/lib/Drupal/project_browser/Tests/ProjectBrowserTest.php index cab4a0e..bd09e79 100644 --- a/core/modules/project_browser/lib/Drupal/project_browser/Tests/ProjectBrowserTest.php +++ b/core/modules/project_browser/lib/Drupal/project_browser/Tests/ProjectBrowserTest.php @@ -56,14 +56,15 @@ function setUp() { } /** - * Tests a search for the Views string, ensuring that there are results. + * Tests a search for the Token string, ensuring that token shows. */ - public function testProjectBrowserSearchViews() { - // Create node to edit. + public function testProjectBrowserSearchToken() { + // Search for 'token'. $edit = array(); - $edit['search_text'] = 'views'; + $edit['search_text'] = 'token'; $this->drupalPost('admin/modules/project-browser/modules', $edit, t('Filter')); $this->assertText('Showing 1 to'); + $this->assertText('Tokens are small bits of text'); } /** @@ -106,21 +107,5 @@ public function testProjectBrowserAddRemoveQueue() { $this->assertText('Install queue is empty.'); $this->assertNoText('Error: The project was not found.'); } - - /** - * Tests that the select releases page displays properly. - */ - public function testProjectBrowserSelectReleasesPage() { - // Refresh the page. - $this->drupalGet('admin/modules/project-browser/modules'); - - // Simulate adding a project to the install queue. - $this->drupalGet('project-browser/nojs/install-queue/add/views', - array('query' => array('destination' => 'admin/modules/project-browser'))); - $this->assertNoText('Install queue is empty.'); - $this->assertNoText('Error: The project was not found.'); - - - } } ?> diff --git a/core/modules/project_browser/project_browser.admin.inc b/core/modules/project_browser/project_browser.admin.inc index 9b9cad6..1312598 100644 --- a/core/modules/project_browser/project_browser.admin.inc +++ b/core/modules/project_browser/project_browser.admin.inc @@ -9,10 +9,10 @@ * Page callback: Form constructor for admin settings. * * @see project_browser_menu() - * @see system_settings_form() + * @see project_browser_admin_form_submit() * @ingroup forms */ -function project_browser_admin($form, &$form_state) { +function project_browser_admin_form($form, &$form_state) { $form['main'] = array( '#type' => 'fieldset', '#title' => t('Main settings'), @@ -24,12 +24,23 @@ function project_browser_admin($form, &$form_state) { $form['main']['project_browser_servers'] = array( '#type' => 'textarea', '#title' => t('Repositories'), - '#default_value' => variable_get('project_browser_servers', ''), + '#default_value' => config('project_browser.settings')->get('project_browser_servers'), '#description' => t("Add new repositories to use for the Project Browser, one per line, in the 'url|method|Site Name' format. Drupal.org is added by default, and doesn't need to be set here."), '#required' => FALSE, ); - return system_settings_form($form); + return $form; +} + +/** + * Form submission handler for project_browser_admin_form(). + * + * @ingroup forms + */ +function project_browser_admin_form_submit($form, &$form_state) { + $config = config('project_browser.settings'); + $config->set('project_browser_servers', $form_state['values']['project_browser_servers']); + $config->save(); } diff --git a/core/modules/project_browser/project_browser.inc b/core/modules/project_browser/project_browser.inc index 5e2b27a..f17611c 100644 --- a/core/modules/project_browser/project_browser.inc +++ b/core/modules/project_browser/project_browser.inc @@ -672,7 +672,7 @@ function project_browser_fetch_categories($type, $use_server = 'all') { function project_browser_get_servers($use_server = 'all') { $servers = config('project_browser.settings')->get('default_server'); - if ($servers_raw = variable_get('project_browser_servers', '')) { + if ($servers_raw = config('project_browser.settings')->get('project_browser_servers')) { // Process the variable and add the servers to the list. $custom_servers = array(); @@ -736,16 +736,7 @@ function project_browser_get_project_release_data(array $project) { } /** - * Uses the update module to download a project. - * - * This code is mostly copied and pasted from modules/update/update.manager.inc - * because there were no suitable functions that could be used besides - * drupal_form_submit('update_manager_install_form', $form_state, $project['type']); - * and it wouldn't work because this is being run from a Batch function. - * - * @todo - Ideally, this should be in the update module as a standalone - * function, to reduce coupling and duplication. Issue is here: - * http://drupal.org/node/1846078 + * Uses the update module to download and install a project. * * @param string $url * The url of the release download. @@ -855,7 +846,7 @@ function _project_browser_batch_install_releases_finished($success, array $resul // Restore the maintenance mode to what it was at the start. if (isset($_SESSION['maintenance_mode'])) { - variable_set('maintenance_mode', $_SESSION['maintenance_mode']); + config('system.maintenance')->set('enabled', $_SESSION['maintenance_mode'])->save(); unset($_SESSION['maintenance_mode']); } diff --git a/core/modules/project_browser/project_browser.info b/core/modules/project_browser/project_browser.info index 5fbdf19..4a7d7d4 100644 --- a/core/modules/project_browser/project_browser.info +++ b/core/modules/project_browser/project_browser.info @@ -4,4 +4,4 @@ dependencies[] = update package = Core version = VERSION core = 8.x -configure = admin/config/development/project_browser \ No newline at end of file +configure = admin/config/development/project_browser diff --git a/core/modules/project_browser/project_browser.pages.inc b/core/modules/project_browser/project_browser.pages.inc index f16cc5e..b92c32f 100644 --- a/core/modules/project_browser/project_browser.pages.inc +++ b/core/modules/project_browser/project_browser.pages.inc @@ -320,9 +320,9 @@ function project_browser_installation_select_versions_form($form, &$form_state, function project_browser_installation_select_versions_form_submit($form, &$form_state) { module_load_include('inc', 'project_browser', 'project_browser'); // Store maintenance_mode setting so we can restore it when done. - $_SESSION['maintenance_mode'] = variable_get('maintenance_mode', FALSE); + $_SESSION['maintenance_mode'] = config('system.maintenance')->get('enabled'); if ($form_state['values']['maintenance_mode'] == TRUE) { - variable_set('maintenance_mode', TRUE); + config('system.maintenance')->set('enabled', TRUE)->save(); } foreach ($form_state['values']['releases'] as $item) {