From 5c4dfd44f956cbffd7d201fd6c47e9a37e86ad2d Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sun, 19 Sep 2010 18:38:32 +0000 Subject: - Removing and adding files per #885228. --- modules/simpletest/drupal_web_test_case.php | 210 +++++++++----- modules/simpletest/tests/ajax.test | 15 +- modules/simpletest/tests/form.test | 6 +- modules/simpletest/tests/form_test.file.inc | 13 +- modules/system/admin-rtl.css | 67 ----- modules/system/admin.css | 173 ------------ modules/system/maintenance.css | 52 ---- modules/system/system-behavior-rtl.css | 89 ------ modules/system/system-behavior.css | 293 -------------------- modules/system/system-menus-rtl.css | 16 -- modules/system/system-menus.css | 50 ---- modules/system/system-messages.css | 55 ---- modules/system/system-rtl.css | 74 ----- modules/system/system.admin-rtl.css | 102 +++++++ modules/system/system.admin.css | 295 ++++++++++++++++++++ modules/system/system.base-rtl.css | 55 ++++ modules/system/system.base.css | 257 +++++++++++++++++ modules/system/system.css | 415 ---------------------------- modules/system/system.maintenance.css | 56 ++++ modules/system/system.menus-rtl.css | 38 +++ modules/system/system.menus.css | 119 ++++++++ modules/system/system.messages.css | 64 +++++ modules/system/system.theme-rtl.css | 59 ++++ modules/system/system.theme.css | 239 ++++++++++++++++ 24 files changed, 1443 insertions(+), 1369 deletions(-) delete mode 100644 modules/system/admin-rtl.css delete mode 100644 modules/system/admin.css delete mode 100644 modules/system/maintenance.css delete mode 100644 modules/system/system-behavior-rtl.css delete mode 100644 modules/system/system-behavior.css delete mode 100644 modules/system/system-menus-rtl.css delete mode 100644 modules/system/system-menus.css delete mode 100644 modules/system/system-messages.css delete mode 100644 modules/system/system-rtl.css create mode 100644 modules/system/system.admin-rtl.css create mode 100644 modules/system/system.admin.css create mode 100644 modules/system/system.base-rtl.css create mode 100644 modules/system/system.base.css delete mode 100644 modules/system/system.css create mode 100644 modules/system/system.maintenance.css create mode 100644 modules/system/system.menus-rtl.css create mode 100644 modules/system/system.menus.css create mode 100644 modules/system/system.messages.css create mode 100644 modules/system/system.theme-rtl.css create mode 100644 modules/system/system.theme.css (limited to 'modules') diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php index 36568a8d4..5b1849dd6 100644 --- a/modules/simpletest/drupal_web_test_case.php +++ b/modules/simpletest/drupal_web_test_case.php @@ -689,6 +689,13 @@ class DrupalWebTestCase extends DrupalTestCase { */ protected $plainTextContent; + /** + * The value of the Drupal.settings JavaScript variable for the page currently loaded in the internal browser. + * + * @var Array + */ + protected $drupalSettings; + /** * The parsed version of the page. * @@ -1698,8 +1705,14 @@ class DrupalWebTestCase extends DrupalTestCase { * Note that this is not the Drupal $form_id, but rather the HTML ID of the * form, which is typically the same thing but with hyphens replacing the * underscores. - */ - protected function drupalPost($path, $edit, $submit, array $options = array(), array $headers = array(), $form_html_id = NULL) { + * @param $extra_post + * (optional) A string of additional data to append to the POST submission. + * This can be used to add POST data for which there are no HTML fields, as + * is done by drupalPostAJAX(). This string is literally appended to the + * POST data, so it must already be urlencoded and contain a leading "&" + * (e.g., "&extra_var1=hello+world&extra_var2=you%26me"). + */ + protected function drupalPost($path, $edit, $submit, array $options = array(), array $headers = array(), $form_html_id = NULL, $extra_post = NULL) { $submit_matches = FALSE; $ajax = is_array($submit); if (isset($path)) { @@ -1750,23 +1763,7 @@ class DrupalWebTestCase extends DrupalTestCase { // http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 $post[$key] = urlencode($key) . '=' . urlencode($value); } - // For AJAX requests, add '_triggering_element_*' and - // 'ajax_html_ids' to the POST data, as ajax.js does. - if ($ajax) { - if (is_array($submit['triggering_element'])) { - // Get the first key/value pair in the array. - $post['_triggering_element_value'] = '_triggering_element_value=' . urlencode(reset($submit['triggering_element'])); - $post['_triggering_element_name'] = '_triggering_element_name=' . urlencode(key($submit['triggering_element'])); - } - else { - $post['_triggering_element_name'] = '_triggering_element_name=' . urlencode($submit['triggering_element']); - } - foreach ($this->xpath('//*[@id]') as $element) { - $id = (string) $element['id']; - $post[] = urlencode('ajax_html_ids[]') . '=' . urlencode($id); - } - } - $post = implode('&', $post); + $post = implode('&', $post) . $extra_post; } $out = $this->curlExec(array(CURLOPT_URL => $action, CURLOPT_POST => TRUE, CURLOPT_POSTFIELDS => $post, CURLOPT_HTTPHEADER => $headers)); // Ensure that any changes to variables in the other thread are picked up. @@ -1803,70 +1800,131 @@ class DrupalWebTestCase extends DrupalTestCase { * * @see ajax.js */ - protected function drupalPostAJAX($path, $edit, $triggering_element, $ajax_path = 'system/ajax', array $options = array(), array $headers = array(), $form_html_id = NULL, $ajax_settings = array()) { + protected function drupalPostAJAX($path, $edit, $triggering_element, $ajax_path = 'system/ajax', array $options = array(), array $headers = array(), $form_html_id = NULL, $ajax_settings = NULL) { // Get the content of the initial page prior to calling drupalPost(), since // drupalPost() replaces $this->content. if (isset($path)) { $this->drupalGet($path, $options); } - $content = $this->drupalGetContent(); - $return = drupal_json_decode($this->drupalPost(NULL, $edit, array('path' => $ajax_path, 'triggering_element' => $triggering_element), $options, $headers, $form_html_id)); + $content = $this->content; + $drupal_settings = $this->drupalSettings; + + // Get the AJAX settings bound to the triggering element. + if (!isset($ajax_settings)) { + if (is_array($triggering_element)) { + $xpath = '//*[@name="' . key($triggering_element) . '" and @value="' . current($triggering_element) . '"]'; + } + else { + $xpath = '//*[@name="' . $triggering_element . '"]'; + } + if (isset($form_html_id)) { + $xpath = '//form[@id="' . $form_html_id . '"]' . $xpath; + } + $element = $this->xpath($xpath); + $element_id = (string) $element[0]['id']; + $ajax_settings = $drupal_settings['ajax'][$element_id]; + } + + // Add extra information to the POST data as ajax.js does. + $extra_post = ''; + if (isset($ajax_settings['submit'])) { + foreach ($ajax_settings['submit'] as $key => $value) { + $extra_post .= '&' . urlencode($key) . '=' . urlencode($value); + } + } + foreach ($this->xpath('//*[@id]') as $element) { + $id = (string) $element['id']; + $extra_post .= '&' . urlencode('ajax_html_ids[]') . '=' . urlencode($id); + } - // We need $ajax_settings['wrapper'] to perform DOM manipulation. + // Submit the POST request. + $return = drupal_json_decode($this->drupalPost(NULL, $edit, array('path' => $ajax_path, 'triggering_element' => $triggering_element), $options, $headers, $form_html_id, $extra_post)); + + // Change the page content by applying the returned commands. if (!empty($ajax_settings) && !empty($return)) { + // ajax.js applies some defaults to the settings object, so do the same + // for what's used by this function. + $ajax_settings += array( + 'method' => 'replaceWith', + ); // DOM can load HTML soup. But, HTML soup can throw warnings, suppress // them. @$dom = DOMDocument::loadHTML($content); foreach ($return as $command) { - // @todo ajax.js can process commands other than 'insert' and can - // process commands that include a 'selector', but these are hard to - // emulate with DOMDocument. For now, we only implement 'insert' - // commands that use $ajax_settings['wrapper']. - if ($command['command'] == 'insert' && !isset($command['selector'])) { - // $dom->getElementById() doesn't work when drupalPostAJAX() is - // invoked multiple times for a page, so use XPath instead. This also - // sets us up for adding support for $command['selector'], though it - // will require transforming a jQuery selector to XPath. - $xpath = new DOMXPath($dom); - $wrapperNode = $xpath->query('//*[@id="' . $ajax_settings['wrapper'] . '"]')->item(0); - if ($wrapperNode) { - // ajax.js adds an enclosing DIV to work around a Safari bug. - $newDom = new DOMDocument(); - $newDom->loadHTML('
' . $command['data'] . '
'); - $newNode = $dom->importNode($newDom->documentElement->firstChild->firstChild, TRUE); - $method = isset($command['method']) ? $command['method'] : $ajax_settings['method']; - // The "method" is a jQuery DOM manipulation function. Emulate each - // one using PHP's DOMNode API. - switch ($method) { - case 'replaceWith': - $wrapperNode->parentNode->replaceChild($newNode, $wrapperNode); - break; - case 'append': - $wrapperNode->appendChild($newNode); - break; - case 'prepend': - // If no firstChild, insertBefore() falls back to appendChild(). - $wrapperNode->insertBefore($newNode, $wrapperNode->firstChild); - break; - case 'before': - $wrapperNode->parentNode->insertBefore($newNode, $wrapperNode); - break; - case 'after': - // If no nextSibling, insertBefore() falls back to appendChild(). - $wrapperNode->parentNode->insertBefore($newNode, $wrapperNode->nextSibling); - break; - case 'html': - foreach ($wrapperNode->childNodes as $childNode) { - $wrapperNode->removeChild($childNode); + switch ($command['command']) { + case 'settings': + $drupal_settings = array_merge_recursive($drupal_settings, $command['settings']); + break; + + case 'insert': + // @todo ajax.js can process commands that include a 'selector', but + // these are hard to emulate with DOMDocument. For now, we only + // implement 'insert' commands that use $ajax_settings['wrapper']. + if (!isset($command['selector'])) { + // $dom->getElementById() doesn't work when drupalPostAJAX() is + // invoked multiple times for a page, so use XPath instead. This + // also sets us up for adding support for $command['selector'] in + // the future, once we figure out how to transform a jQuery + // selector to XPath. + $xpath = new DOMXPath($dom); + $wrapperNode = $xpath->query('//*[@id="' . $ajax_settings['wrapper'] . '"]')->item(0); + if ($wrapperNode) { + // ajax.js adds an enclosing DIV to work around a Safari bug. + $newDom = new DOMDocument(); + $newDom->loadHTML('
' . $command['data'] . '
'); + $newNode = $dom->importNode($newDom->documentElement->firstChild->firstChild, TRUE); + $method = isset($command['method']) ? $command['method'] : $ajax_settings['method']; + // The "method" is a jQuery DOM manipulation function. Emulate + // each one using PHP's DOMNode API. + switch ($method) { + case 'replaceWith': + $wrapperNode->parentNode->replaceChild($newNode, $wrapperNode); + break; + case 'append': + $wrapperNode->appendChild($newNode); + break; + case 'prepend': + // If no firstChild, insertBefore() falls back to + // appendChild(). + $wrapperNode->insertBefore($newNode, $wrapperNode->firstChild); + break; + case 'before': + $wrapperNode->parentNode->insertBefore($newNode, $wrapperNode); + break; + case 'after': + // If no nextSibling, insertBefore() falls back to + // appendChild(). + $wrapperNode->parentNode->insertBefore($newNode, $wrapperNode->nextSibling); + break; + case 'html': + foreach ($wrapperNode->childNodes as $childNode) { + $wrapperNode->removeChild($childNode); + } + $wrapperNode->appendChild($newNode); + break; } - $wrapperNode->appendChild($newNode); - break; + } } - } + break; + + // @todo Add suitable implementations for these commands in order to + // have full test coverage of what ajax.js can do. + case 'remove': + break; + case 'changed': + break; + case 'css': + break; + case 'data': + break; + case 'restripe': + break; } } - $this->drupalSetContent($dom->saveHTML()); + $content = $dom->saveHTML(); } + $this->drupalSetContent($content); + $this->drupalSetSettings($drupal_settings); return $return; } @@ -2397,6 +2455,13 @@ class DrupalWebTestCase extends DrupalTestCase { return $this->content; } + /** + * Gets the value of the Drupal.settings JavaScript variable for the currently loaded page. + */ + protected function drupalGetSettings() { + return $this->drupalSettings; + } + /** * Gets an array containing all e-mails sent during this test case. * @@ -2435,6 +2500,17 @@ class DrupalWebTestCase extends DrupalTestCase { $this->url = $url; $this->plainTextContent = FALSE; $this->elements = FALSE; + $this->drupalSettings = array(); + if (preg_match('/jQuery\.extend\(Drupal\.settings, (.*?)\);/', $content, $matches)) { + $this->drupalSettings = drupal_json_decode($matches[1]); + } + } + + /** + * Sets the value of the Drupal.settings JavaScript variable for the currently loaded page. + */ + protected function drupalSetSettings($settings) { + $this->drupalSettings = $settings; } /** diff --git a/modules/simpletest/tests/ajax.test b/modules/simpletest/tests/ajax.test index 91572bda0..9377f4cdb 100644 --- a/modules/simpletest/tests/ajax.test +++ b/modules/simpletest/tests/ajax.test @@ -269,24 +269,17 @@ class AJAXMultiFormTestCase extends AJAXTestCase { // of field items and "add more" button for the multi-valued field within // each form. $this->drupalGet('form-test/two-instances-of-same-form'); - foreach ($field_xpaths as $form_id => $field_xpath) { + foreach ($field_xpaths as $form_html_id => $field_xpath) { $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == 1, t('Found the correct number of field items on the initial page.')); $this->assertFieldByXPath($field_xpath . $button_xpath_suffix, NULL, t('Found the "add more" button on the initial page.')); } $this->assertNoDuplicateIds(t('Initial page contains unique IDs'), 'Other'); // Submit the "add more" button of each form twice. After each corresponding - // page update, ensure the same as above. To successfully implement - // consecutive AJAX submissions, we need to manage $settings as ajax.js - // does for Drupal.settings. - preg_match('/jQuery\.extend\(Drupal\.settings, (.*?)\);/', $this->content, $matches); - $settings = drupal_json_decode($matches[1]); - foreach ($field_xpaths as $form_id => $field_xpath) { + // page update, ensure the same as above. + foreach ($field_xpaths as $form_html_id => $field_xpath) { for ($i=0; $i<2; $i++) { - $button = $this->xpath($field_xpath . $button_xpath_suffix); - $button_id = (string) $button[0]['id']; - $commands = $this->drupalPostAJAX(NULL, array(), array($button_name => $button_value), 'system/ajax', array(), array(), $form_id, $settings['ajax'][$button_id]); - $settings = array_merge_recursive($settings, $commands[0]['settings']); + $this->drupalPostAJAX(NULL, array(), array($button_name => $button_value), 'system/ajax', array(), array(), $form_html_id); $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == $i+2, t('Found the correct number of field items after an AJAX submission.')); $this->assertFieldByXPath($field_xpath . $button_xpath_suffix, NULL, t('Found the "add more" button after an AJAX submission.')); $this->assertNoDuplicateIds(t('Updated page contains unique IDs'), 'Other'); diff --git a/modules/simpletest/tests/form.test b/modules/simpletest/tests/form.test index c3ef7fd9d..969f3f398 100644 --- a/modules/simpletest/tests/form.test +++ b/modules/simpletest/tests/form.test @@ -996,11 +996,7 @@ class FormsRebuildTestCase extends DrupalWebTestCase { // submission and verify it worked by ensuring the updated page has two text // field items in the field for which we just added an item. $this->drupalGet('node/add/page'); - preg_match('/jQuery\.extend\(Drupal\.settings, (.*?)\);/', $this->content, $matches); - $settings = drupal_json_decode($matches[1]); - $button = $this->xpath('//input[@name="field_ajax_test_add_more"]'); - $button_id = (string) $button[0]['id']; - $this->drupalPostAJAX(NULL, array(), array('field_ajax_test_add_more' => t('Add another item')), 'system/ajax', array(), array(), 'page-node-form', $settings['ajax'][$button_id]); + $this->drupalPostAJAX(NULL, array(), array('field_ajax_test_add_more' => t('Add another item')), 'system/ajax', array(), array(), 'page-node-form'); $this->assert(count($this->xpath('//div[contains(@class, "field-name-field-ajax-test")]//input[@type="text"]')) == 2, t('AJAX submission succeeded.')); // Submit the form with the non-AJAX "Save" button, leaving the title field diff --git a/modules/simpletest/tests/form_test.file.inc b/modules/simpletest/tests/form_test.file.inc index 96681eaa8..808863ede 100644 --- a/modules/simpletest/tests/form_test.file.inc +++ b/modules/simpletest/tests/form_test.file.inc @@ -13,11 +13,17 @@ function form_test_load_include_menu($form, &$form_state) { // Submit the form via AJAX. That way the FAPI has to care about including // the file specified in hook_menu(). + $ajax_wrapper_id = drupal_html_id('form-test-load-include-menu-ajax-wrapper'); + $form['ajax_wrapper'] = array( + '#markup' => '
', + ); $form['button'] = array( '#type' => 'submit', '#value' => t('Save'), '#submit' => array('form_test_load_include_submit'), '#ajax' => array( + 'wrapper' => $ajax_wrapper_id, + 'method' => 'append', 'callback' => 'form_test_load_include_menu_ajax', ), ); @@ -32,9 +38,12 @@ function form_test_load_include_submit($form, $form_state) { } /** - * Ajax callback for the file inclusion via menu test. We don't need to return - * anything as the messages are added automatically. + * Ajax callback for the file inclusion via menu test. */ function form_test_load_include_menu_ajax($form) { + // We don't need to return anything, since #ajax['method'] is 'append', which + // does not remove the original #ajax['wrapper'] element, and status messages + // are automatically added by the AJAX framework as long as there's a wrapper + // element to add them to. return ''; } diff --git a/modules/system/admin-rtl.css b/modules/system/admin-rtl.css deleted file mode 100644 index 4331fab4d..000000000 --- a/modules/system/admin-rtl.css +++ /dev/null @@ -1,67 +0,0 @@ -/* $Id$ */ - -div.admin-panel .body { - padding: 0 8px 2px 4px; -} - -div.admin .left { - float: right; - margin-left: 0; - margin-right: 1em; -} -div.admin .right { - float: left; - margin-left: 1em; - margin-right: 0; -} - -div.admin .expert-link { - text-align: left; - margin-right: 0; - margin-left: 1em; - padding-right: 0; - padding-left: 4px; -} - -table.system-status-report th, -table.system-status-report tr.merge-up td { - padding-right: 30px; -} - -table.system-status-report th { - background-position: 95% 50%; -} - -table.screenshot { - margin-left: 1em; -} - -.date-container { - clear: right; -} -.date-container .select-container, -.date-container .custom-container { - float: right; -} -.date-container .custom-container { - margin-left: 0; - margin-right: 15px; -} - -/** - * Exposed filters - */ -.exposed-filters .filters { - float: right; - margin-left: 1em; - margin-right: 0; -} -.exposed-filters .form-item label { - float: right; -} -/* Current filters */ -.exposed-filters .additional-filters { - float: right; - margin-left: 1em; - margin-right: 0; -} diff --git a/modules/system/admin.css b/modules/system/admin.css deleted file mode 100644 index fbd32d427..000000000 --- a/modules/system/admin.css +++ /dev/null @@ -1,173 +0,0 @@ -/* $Id$ */ - -/* -** Formatting for administration page -*/ -div.admin-panel { - margin: 0; - padding: 5px 5px 15px 5px; -} - -div.admin-panel .description { - margin: 0 0 3px; - padding: 2px 0 3px 0; -} - -div.admin-panel .body { - padding: 0 4px 2px 8px; /* LTR */ -} - -div.admin { - padding-top: 15px; -} - -div.admin .left { - float: left; /* LTR */ - width: 47%; - margin-left: 1em; /* LTR */ -} -div.admin .right { - float: right; /* LTR */ - width: 47%; - margin-right: 1em; /* LTR */ -} - -div.admin .expert-link { - text-align: right; /* LTR */ - margin-right: 1em; /* LTR */ - padding-right: 4px; /* LTR */ -} - -table.package { - width: 100%; -} -table.package .description { - width: 100%; -} -table.package .version { - direction: ltr; -} -div.admin-requirements, -div.admin-required { - font-size: 0.9em; - color: #444; -} -span.admin-disabled { - color: #800; -} -span.admin-enabled { - color: #080; -} -span.admin-missing { - color: #f00; -} - -/** - * Formatting for status report - */ -table.system-status-report th { - border-bottom: 1px solid #ccc; -} -table.system-status-report th, -table.system-status-report tr.merge-up td { - padding-left: 30px; /* LTR */ -} -table.system-status-report th { - background-repeat: no-repeat; - background-position: 5px 50%; /* LTR */ - padding-top: 6px; - padding-bottom: 6px; -} -table.system-status-report tr.error th { - background-image: url(../../misc/watchdog-error.png); -} -table.system-status-report tr.warning th { - background-image: url(../../misc/watchdog-warning.png); -} -table.system-status-report tr.ok th { - background-image: url(../../misc/watchdog-ok.png); -} - -/** - * Formatting for theme configuration - */ -.theme-settings-left { - float: left; - width: 49%; -} -.theme-settings-right { - float: right; - width: 49%; -} -.theme-settings-bottom { - clear: both; -} - -/** - * Formatting for theme overview - */ -table.screenshot { - margin-right: 1em; /* LTR */ -} -.theme-info h2 { - margin-bottom: 0; -} -.theme-info p { - margin-top: 0; -} - - -/** - * Date and time settings page - */ -.date-container { - overflow: auto; - clear: left; /* LTR */ -} -.date-container .form-item { - margin-top: 0; -} -.date-container .select-container, -.date-container .custom-container { - float: left; /* LTR */ -} -.date-container .custom-container { - margin-left: 15px; /* LTR */ - width: 50%; -} -html.js .custom-container label { - visibility: hidden; -} - -/** - * Exposed filters - */ -.exposed-filters .filters { - float: left; /* LTR */ - margin-right: 1em; /* LTR */ - width: 25em; /* IE6 */ -} -.exposed-filters .form-item { - margin: 0 0 0.1em 0; - padding: 0; -} -.exposed-filters .form-item label { - float: left; /* LTR */ - font-weight: normal; - width: 10em; -} -.exposed-filters .form-select { - width: 14em; -} -/* Current filters */ -.exposed-filters .current-filters { - margin-bottom: 1em; -} -.exposed-filters .current-filters .placeholder { - font-style: normal; - font-weight: bold; -} -.exposed-filters .additional-filters { - float: left; /* LTR */ - margin-right: 1em; /* LTR */ -} diff --git a/modules/system/maintenance.css b/modules/system/maintenance.css deleted file mode 100644 index acd2917a2..000000000 --- a/modules/system/maintenance.css +++ /dev/null @@ -1,52 +0,0 @@ -/* $Id$ */ - -/* Update styles */ -#update-results { - margin-top: 3em; - padding: 0.25em; - border: 1px solid #ccc; - background: #eee; - font-size: smaller; -} -#update-results h2 { - margin-top: 0.25em; -} -#update-results h4 { - margin-bottom: 0.25em; -} -#update-results li.none { - color: #888; - font-style: italic; -} -#update-results li.failure strong { - color: #b63300; -} - -/* authorize.php styles */ -.connection-settings-update-filetransfer-default-wrapper { - float: left; -} -#edit-submit-connection { - clear: both; -} -.filetransfer { - display: none; - clear: both; -} -#edit-connection-settings-change-connection-type { - margin: 2.6em 0.5em 0em 1em; -} - -/** - * Installation task list - */ -ol.task-list li.active { - font-weight: bold; -} - -/** - * Installation clean URLs - */ -#clean-url.install { - display: none; -} diff --git a/modules/system/system-behavior-rtl.css b/modules/system/system-behavior-rtl.css deleted file mode 100644 index 0fcda3d1c..000000000 --- a/modules/system/system-behavior-rtl.css +++ /dev/null @@ -1,89 +0,0 @@ -/* $Id$ */ - -/** - * Autocomplete - */ - /* Animated throbber */ -html.js input.form-autocomplete { - background-position: 0% 2px; -} -html.js input.throbbing { - background-position: 0% -18px; -} - -/** - * Collapsing fieldsets - */ -html.js fieldset.collapsible .fieldset-legend { - padding-left: 0; - padding-right: 15px; - background-position: 98% 75%; -} -html.js fieldset.collapsed .fieldset-legend { - background-image: url(../../misc/menu-collapsed-rtl.png); - background-position: 98% 50%; -} - -/** - * Progress bar - */ -.progress .percentage { - float: left; -} -.progress-disabled { - float: right; -} -.ajax-progress { - float: right; -} -.ajax-progress .throbber { - float: right; -} - -/** - * Password strength indicator - */ -input.password-field { - margin-left: 10px; - margin-right: 0; -} -input.password-confirm { - margin-left: 10px; - margin-right: 0; -} -.password-strength-title { - float: right; -} -.password-parent { - float: right; -} - -/** - * Table drag and drop - */ -.draggable a.tabledrag-handle { - float: right; - margin: -0.4em -0.5em -0.4em 0; - padding: 0.42em 0.5em 0.42em 1.5em; -} -div.indentation { - margin: -0.4em -0.4em -0.4em 0.2em; - padding: 0.42em 0.6em 0.42em 0; - float: right; -} -div.tree-child, -div.tree-child-last { - background-position: -65px center; -} -.tabledrag-toggle-weight-wrapper { - text-align: left; /* RTL */ -} - -/** - * Multiselect form - */ -dl.multiselect dt, -dl.multiselect dd { - float: right; - margin: 0 0 0 1em; -} diff --git a/modules/system/system-behavior.css b/modules/system/system-behavior.css deleted file mode 100644 index 343cff68a..000000000 --- a/modules/system/system-behavior.css +++ /dev/null @@ -1,293 +0,0 @@ -/* $Id$ */ - -/** - * Autocomplete - */ -/* Suggestion list */ -#autocomplete { - position: absolute; - border: 1px solid; - overflow: hidden; - z-index: 100; -} -#autocomplete ul { - margin: 0; - padding: 0; - list-style: none; - list-style-image: none; -} -#autocomplete li { - background: #fff; - color: #000; - white-space: pre; - cursor: default; -} -#autocomplete li.selected { - background: #0072b9; - color: #fff; -} -/* Animated throbber */ -html.js input.form-autocomplete { - background-image: url(../../misc/throbber.gif); - background-repeat: no-repeat; - background-position: 100% 2px; /* LTR */ -} -html.js input.throbbing { - background-position: 100% -18px; /* LTR */ -} - -/** - * Collapsing fieldsets - */ -html.js fieldset.collapsed { - border-bottom-width: 0; - border-left-width: 0; - border-right-width: 0; - height: 1em; -} -html.js fieldset.collapsed .fieldset-wrapper { - display: none; -} -fieldset.collapsible { - position: relative; -} -fieldset.collapsible .fieldset-legend { - display: block; -} -html.js fieldset.collapsible .fieldset-legend { - padding-left: 15px; /* LTR */ - background: url(../../misc/menu-expanded.png) 5px 65% no-repeat; /* LTR */ -} -html.js fieldset.collapsed .fieldset-legend { - background-image: url(../../misc/menu-collapsed.png); /* LTR */ - background-position: 5px 50%; /* LTR */ -} -.fieldset-legend span.summary { - font-size: 0.9em; - color: #999; - margin-left: 0.5em; -} - -/** - * Resizable textareas - */ -.form-textarea-wrapper textarea { - margin: 0; - width: 100%; - display: block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.resizable-textarea .grippie { - height: 9px; - overflow: hidden; - background: #eee url(../../misc/grippie.png) no-repeat center 2px; - border: 1px solid #ddd; - border-top-width: 0; - cursor: s-resize; -} - -/** - * Table drag and drop - */ -body.drag { - cursor: move; -} -.draggable a.tabledrag-handle { - cursor: move; - float: left; /* LTR */ - height: 1.7em; - margin: -0.4em 0 -0.4em -0.5em; /* LTR */ - padding: 0.42em 1.5em 0.42em 0.5em; /* LTR */ - text-decoration: none; -} -a.tabledrag-handle:hover { - text-decoration: none; -} -a.tabledrag-handle .handle { - margin-top: 4px; - height: 13px; - width: 13px; - background: url(../../misc/draggable.png) no-repeat 0 0; -} -a.tabledrag-handle-hover .handle { - background-position: 0 -20px; -} -div.indentation { - width: 20px; - height: 1.7em; - margin: -0.4em 0.2em -0.4em -0.4em; /* LTR */ - padding: 0.42em 0 0.42em 0.6em; /* LTR */ - float: left; /* LTR */ -} -div.tree-child { - background: url(../../misc/tree.png) no-repeat 11px center; /* LTR */ -} -div.tree-child-last { - background: url(../../misc/tree-bottom.png) no-repeat 11px center; /* LTR */ -} -div.tree-child-horizontal { - background: url(../../misc/tree.png) no-repeat -11px center; -} -.tabledrag-toggle-weight-wrapper { - text-align: right; /* LTR */ -} -.tabledrag-toggle-weight { - font-size: 0.9em; -} -body div.tabledrag-changed-warning { - margin-bottom: 0.5em; -} - -/** - * Progress bar - */ -.progress { - font-weight: bold; -} -.progress .bar { - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - background: #ccc; - border: 1px solid #666; - margin: 0 0.2em; -} -.progress .filled { - background: #0072b9 url(../../misc/progress.gif); - height: 1.5em; - width: 5px; -} -.progress .percentage { - float: right; /* LTR */ -} -.progress-disabled { - float: left; /* LTR */ -} -.ajax-progress { - float: left; /* LTR */ -} -.ajax-progress .throbber { - width: 15px; - height: 15px; - margin: 2px; - background: transparent url(../../misc/throbber.gif) no-repeat 0px -18px; - float: left; /* LTR */ -} -tr .ajax-progress .throbber { - margin: 0 2px; -} -.ajax-progress-bar { - width: 16em; -} - -/** - * Password strength indicator - */ -.password-strength { - width: 17em; - float: right; /* LTR */ - margin-top: 1.4em; -} -.password-strength-title { - display: inline; -} -.password-strength-text { - float: right; /* LTR */ - font-weight: bold; -} -.password-indicator { - background-color: #C4C4C4; - height: 0.3em; - width: 100%; -} -.password-indicator div { - height: 100%; - width: 0%; - background-color: #47C965; -} -input.password-confirm, -input.password-field { - width: 16em; - margin-bottom: 0.4em; -} -div.password-confirm { - display: inline; - padding-left: 1em; -} -div.form-item div.password-suggestions { - padding: 0.2em 0.5em; - margin: 0.7em 0; - width: 38.5em; - border: 1px solid #B4B4B4; -} -div.password-suggestions ul { - margin-bottom: 0; -} -.password-parent { - margin: 0; - width: 34.3em; -} - -/** - * Password confirmation checker - */ -.confirm-parent { - margin: 0; -} -div.password-confirm { - visibility: hidden; -} - -/** - * Inline items (need to override above) - */ -.container-inline div, -.container-inline label { - display: inline; -} -/* Fieldset contents always need to be rendered as block. */ -.container-inline .fieldset-wrapper { - display: block; -} - -.nowrap { - white-space: nowrap; -} - -/** - * For anything you want to hide on page load when JS is enabled, so - * that you can use the JS to control visibility and avoid flicker. - */ -html.js .js-hide { - display: none; -} - -/** - * Hide elements from all users. - * - * Used for elements which should not be immediately displayed to any user. An - * example would be a collapsible fieldset that will be expanded with a click - * from a user. The effect of this class can be toggled with the jQuery show() - * and hide() functions. - */ -.element-hidden { - display: none; -} - -/** - * Hide elements visually, but keep them available for screen-readers. - * - * Used for information required for screen-reader users to understand and use - * the site where visual display is undesirable. Information provided in this - * manner should be kept concise, to avoid unnecessary burden on the user. Must - * not be used for focusable elements (such as links and form elements) as this - * causes issues for keyboard only or voice recognition users. "!important" is - * used to prevent unintentional overrides. - */ -.element-invisible { - position: absolute !important; - clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ - clip: rect(1px, 1px, 1px, 1px); -} diff --git a/modules/system/system-menus-rtl.css b/modules/system/system-menus-rtl.css deleted file mode 100644 index e5247dfed..000000000 --- a/modules/system/system-menus-rtl.css +++ /dev/null @@ -1,16 +0,0 @@ -/* $Id$ */ - -ul.menu { - text-align:right; -} -ul.menu li { - margin: 0 0.5em 0 0; -} -ul li.collapsed { - list-style-image: url(../../misc/menu-collapsed-rtl.png); -} -li.expanded, -li.collapsed, -li.leaf { - padding: 0.2em 0 0 0.5em; -} diff --git a/modules/system/system-menus.css b/modules/system/system-menus.css deleted file mode 100644 index abf18ad7f..000000000 --- a/modules/system/system-menus.css +++ /dev/null @@ -1,50 +0,0 @@ -/* $Id$ */ - -ul.menu { - list-style: none; - border: none; - text-align:left; /* LTR */ -} -ul.menu li { - margin: 0 0 0 0.5em; /* LTR */ -} -ul li.expanded { - list-style-type: circle; - list-style-image: url(../../misc/menu-expanded.png); -} -ul li.collapsed { - list-style-type: disc; - list-style-image: url(../../misc/menu-collapsed.png); /* LTR */ -} -ul li.leaf { - list-style-type: square; - list-style-image: url(../../misc/menu-leaf.png); -} -li.expanded, -li.collapsed, -li.leaf { - padding: 0.2em 0.5em 0 0; /* LTR */ - margin: 0; -} -li a.active { - color: #000; -} -td.menu-disabled { - background: #ccc; -} -ul.links { - margin: 0; - padding: 0; -} -ul.links.inline { - display: inline; -} -ul.links li { - display: inline; - list-style-type: none; - padding: 0 0.5em; -} -.block ul { - margin: 0; - padding: 0 0 0.25em 1em; /* LTR */ -} diff --git a/modules/system/system-messages.css b/modules/system/system-messages.css deleted file mode 100644 index b1a1406ee..000000000 --- a/modules/system/system-messages.css +++ /dev/null @@ -1,55 +0,0 @@ -/* $Id */ - -div.messages { - background-position: 8px 8px; /* LTR */ - background-repeat: no-repeat; - border: 1px solid; - margin: 6px 0; - padding: 10px 10px 10px 50px; /* LTR */ -} -div.status { - background-image: url(../../misc/message-24-ok.png); - border-color: #be7; -} -div.status, -.ok { - color: #234600; -} -div.status, -table tr.ok { - background-color: #f8fff0; -} -div.warning { - background-image: url(../../misc/message-24-warning.png); - border-color: #ed5; -} -div.warning, -.warning { - color: #840; -} -div.warning, -table tr.warning { - background-color: #fffce5; -} -div.error { - background-image: url(../../misc/message-24-error.png); - border-color: #ed541d; -} -div.error, -.error { - color: #8c2e0b; -} -div.error, -table tr.error { - background-color: #fef5f1; -} -div.error p.error { - color: #333; -} -div.messages ul { - margin: 0 0 0 1em; /* LTR */ - padding: 0; -} -div.messages ul li { - list-style-image: none; -} diff --git a/modules/system/system-rtl.css b/modules/system/system-rtl.css deleted file mode 100644 index 88c4072a2..000000000 --- a/modules/system/system-rtl.css +++ /dev/null @@ -1,74 +0,0 @@ -/* $Id$ */ - -th { - text-align: right; - padding-right: 0; - padding-left: 1em; -} - -thead th { - text-align: right; - padding-left: 1em; - padding-right: 0.5em; -} - -.item-list .icon { - float: left; - padding-left: 0; - padding-right: 0.25em; - clear: left; -} -.item-list ul li { - margin: 0 1.5em 0.25em 0; -} - -.more-link { - text-align: left; -} -.more-help-link { - text-align: left; -} -.more-help-link a { - padding: 1px 20px 1px 0; - background-position: 100% 50%; -} - -.block ul { - padding: 0 1em 0.25em 0; -} - -ul.primary { - padding: 0 1em 0 0; -} -ul.primary li a { - margin-right: 5px; - margin-left: 0.5em; -} -ul.secondary li { - display: inline; - padding: 0 1em; - border-right: none; - border-left: 1px solid #ccc; -} - -.system-themes-list-enabled .theme-selector .screenshot, -.system-themes-list-enabled .theme-selector .no-screenshot { - float: right; - margin: 0 0 0 20px; -} -.system-themes-list-disabled .theme-selector { - float: right; - padding: 20px 0 20px 20px; -} -.theme-selector .operations li { - float: right; - border-right: none; - border-left: 1px solid #cdcdcd; -} -.theme-selector .operations li.last { - padding: 0 0.7em 0 0; - border-left: none; -} -.theme-selector .operations li.first { - padding: 0 0 0 0.7em; -} diff --git a/modules/system/system.admin-rtl.css b/modules/system/system.admin-rtl.css new file mode 100644 index 000000000..c19adcd65 --- /dev/null +++ b/modules/system/system.admin-rtl.css @@ -0,0 +1,102 @@ +/* $Id$ */ + +/** + * @file + * RTL styles for administration pages. + */ + +/** + * Administration blocks. + */ +div.admin-panel .body { + padding: 0 8px 2px 4px; +} +div.admin .left { + float: right; + margin-left: 0; + margin-right: 1em; +} +div.admin .right { + float: left; + margin-left: 1em; + margin-right: 0; +} +div.admin .expert-link { + text-align: left; + margin-right: 0; + margin-left: 1em; + padding-right: 0; + padding-left: 4px; +} + +/** + * Status report. + */ +table.system-status-report th, +table.system-status-report tr.merge-up td { + padding-right: 30px; +} +table.system-status-report th { + background-position: 95% 50%; +} + +/** + * Appearance page. + */ +table.screenshot { + margin-left: 1em; +} +.system-themes-list-enabled .theme-selector .screenshot, +.system-themes-list-enabled .theme-selector .no-screenshot { + float: right; + margin: 0 0 0 20px; +} +.system-themes-list-disabled .theme-selector { + float: right; + padding: 20px 0 20px 20px; +} +.theme-selector .operations li { + float: right; + border-right: none; + border-left: 1px solid #cdcdcd; +} +.theme-selector .operations li.last { + padding: 0 0.7em 0 0; + border-left: none; +} +.theme-selector .operations li.first { + padding: 0 0 0 0.7em; +} + +/** + * Date and time settings page. + */ +.date-container { + clear: right; +} +.date-container .select-container, +.date-container .custom-container { + float: right; +} +.date-container .custom-container { + margin-left: 0; + margin-right: 15px; +} + +/** + * Exposed filters. + */ +.exposed-filters .filters { + float: right; + margin-left: 1em; + margin-right: 0; +} +.exposed-filters .form-item label { + float: right; +} +/* Current filters */ +.exposed-filters .additional-filters { + float: right; + margin-left: 1em; + margin-right: 0; +} diff --git a/modules/system/system.admin.css b/modules/system/system.admin.css new file mode 100644 index 000000000..2014b4a64 --- /dev/null +++ b/modules/system/system.admin.css @@ -0,0 +1,295 @@ +/* $Id$ */ + +/** + * @file + * Styles for administration pages. + */ + +/** + * Administration blocks. + */ +div.admin-panel { + margin: 0; + padding: 5px 5px 15px 5px; +} +div.admin-panel .description { + margin: 0 0 3px; + padding: 2px 0 3px 0; +} +div.admin-panel .body { + padding: 0 4px 2px 8px; /* LTR */ +} +div.admin { + padding-top: 15px; +} +div.admin .left { + float: left; /* LTR */ + width: 47%; + margin-left: 1em; /* LTR */ +} +div.admin .right { + float: right; /* LTR */ + width: 47%; + margin-right: 1em; /* LTR */ +} +div.admin .expert-link { + text-align: right; /* LTR */ + margin-right: 1em; /* LTR */ + padding-right: 4px; /* LTR */ +} + +/** + * Markup generated by theme_system_compact_link(). + */ +.compact-link { + margin: 0 0 0.5em 0; +} + +/** + * Modules page. + */ +#system-modules div.incompatible { + font-weight: bold; +} +table.package { + width: 100%; +} +table.package .description { + width: 100%; +} +table.package .version { + direction: ltr; +} +div.admin-requirements, +div.admin-required { + font-size: 0.9em; + color: #444; +} +span.admin-disabled { + color: #800; +} +span.admin-enabled { + color: #080; +} +span.admin-missing { + color: #f00; +} +a.module-link { + display: block; + padding: 1px 0 1px 20px; /* LTR */ + white-space: nowrap; +} +a.module-link-help { + background: url(../../misc/help.png) 0 50% no-repeat; /* LTR */ +} +a.module-link-permissions { + background: url(../../misc/permissions.png) 0 50% no-repeat; /* LTR */ +} +a.module-link-configure { + background: url(../../misc/configure.png) 0 50% no-repeat; /* LTR */ +} +.module-help { + margin-left: 1em; /* LTR */ + float: right; /* LTR */ +} + +/** + * Status report. + */ +table.system-status-report th { + border-bottom: 1px solid #ccc; +} +table.system-status-report th, +table.system-status-report tr.merge-up td { + padding-left: 30px; /* LTR */ +} +table.system-status-report th { + background-repeat: no-repeat; + background-position: 5px 50%; /* LTR */ + padding-top: 6px; + padding-bottom: 6px; +} +table.system-status-report tr.error th { + background-image: url(../../misc/watchdog-error.png); +} +table.system-status-report tr.warning th { + background-image: url(../../misc/watchdog-warning.png); +} +table.system-status-report tr.ok th { + background-image: url(../../misc/watchdog-ok.png); +} +tr.merge-down, +tr.merge-down td, +tr.merge-down th { + border-bottom-width: 0 !important; +} +tr.merge-up, +tr.merge-up td, +tr.merge-up th { + border-top-width: 0 !important; +} + +/** + * Theme settings. + */ +.theme-settings-left { + float: left; + width: 49%; +} +.theme-settings-right { + float: right; + width: 49%; +} +.theme-settings-bottom { + clear: both; +} + +/** + * Appearance page. + */ +table.screenshot { + margin-right: 1em; /* LTR */ +} +.theme-info h2 { + margin-bottom: 0; +} +.theme-info p { + margin-top: 0; +} +.system-themes-list { + margin-bottom: 20px; +} +.system-themes-list-disabled { + border-top: 1px solid #cdcdcd; + padding-top: 20px; +} +.system-themes-list h2 { + margin: 0; +} +.theme-selector { + padding-top: 20px; +} +.theme-selector .screenshot, +.theme-selector .no-screenshot { + border: 1px solid #e0e0d8; + padding: 2px; + vertical-align: bottom; + width: 294px; + height: 219px; + line-height: 219px; + text-align: center; +} +.theme-default .screenshot { + border: 1px solid #aaa; +} +.system-themes-list-enabled .theme-selector .screenshot, +.system-themes-list-enabled .theme-selector .no-screenshot { + float: left; /* LTR */ + margin: 0 20px 0 0; /* LTR */ +} +.system-themes-list-disabled .theme-selector .screenshot, +.system-themes-list-disabled .theme-selector .no-screenshot { + width: 194px; + height: 144px; + line-height: 144px; +} +.theme-selector h3 { + font-weight: normal; +} +.theme-default h3 { + font-weight: bold; +} +.system-themes-list-enabled .theme-selector h3 { + margin-top: 0; +} +.system-themes-list-disabled .theme-selector { + width: 300px; + float: left; /* LTR */ + padding: 20px 20px 20px 0; /* LTR */ +} +.system-themes-list-enabled .theme-info { + max-width: 940px; +} +.system-themes-list-disabled .theme-info { + min-height: 170px; +} +.theme-selector .incompatible { + margin-top: 10px; + font-weight: bold; +} +.theme-selector .operations { + margin: 10px 0 0 0; + padding: 0; +} +.theme-selector .operations li { + float: left; /* LTR */ + margin: 0; + padding: 0 0.7em; + list-style-type: none; + border-right: 1px solid #cdcdcd; /* LTR */ +} +.theme-selector .operations li.last { + padding: 0 0 0 0.7em; /* LTR */ + border-right: none; /* LTR */ +} +.theme-selector .operations li.first { + padding: 0 0.7em 0 0; /* LTR */ +} +#system-themes-admin-form { + clear: left; +} + +/** + * Date and time settings page. + */ +.date-container { + overflow: auto; + clear: left; /* LTR */ +} +.date-container .form-item { + margin-top: 0; +} +.date-container .select-container, +.date-container .custom-container { + float: left; /* LTR */ +} +.date-container .custom-container { + margin-left: 15px; /* LTR */ + width: 50%; +} +html.js .custom-container label { + visibility: hidden; +} + +/** + * Exposed filters. + */ +.exposed-filters .filters { + float: left; /* LTR */ + margin-right: 1em; /* LTR */ + width: 25em; /* IE6 */ +} +.exposed-filters .form-item { + margin: 0 0 0.1em 0; + padding: 0; +} +.exposed-filters .form-item label { + float: left; /* LTR */ + font-weight: normal; + width: 10em; +} +.exposed-filters .form-select { + width: 14em; +} +/* Current filters */ +.exposed-filters .current-filters { + margin-bottom: 1em; +} +.exposed-filters .current-filters .placeholder { + font-style: normal; + font-weight: bold; +} +.exposed-filters .additional-filters { + float: left; /* LTR */ + margin-right: 1em; /* LTR */ +} diff --git a/modules/system/system.base-rtl.css b/modules/system/system.base-rtl.css new file mode 100644 index 000000000..ac5f49b7e --- /dev/null +++ b/modules/system/system.base-rtl.css @@ -0,0 +1,55 @@ +/* $Id$ */ + +/** + * @file + * Generic theme-independent base styles. + */ + +/** + * Autocomplete. + */ +/* Animated throbber */ +html.js input.form-autocomplete { + background-position: 0% 2px; +} +html.js input.throbbing { + background-position: 0% -18px; +} + +/** + * Progress bar. + */ +.progress .percentage { + float: left; +} +.progress-disabled { + float: right; +} +.ajax-progress { + float: right; +} +.ajax-progress .throbber { + float: right; +} + +/** + * TableDrag behavior. + */ +.draggable a.tabledrag-handle { + float: right; + margin: -0.4em -0.5em -0.4em 0; + padding: 0.42em 0.5em 0.42em 1.5em; +} +div.indentation { + margin: -0.4em -0.4em -0.4em 0.2em; + padding: 0.42em 0.6em 0.42em 0; + float: right; +} +div.tree-child, +div.tree-child-last { + background-position: -65px center; +} +.tabledrag-toggle-weight-wrapper { + text-align: left; /* RTL */ +} + diff --git a/modules/system/system.base.css b/modules/system/system.base.css new file mode 100644 index 000000000..785acf47c --- /dev/null +++ b/modules/system/system.base.css @@ -0,0 +1,257 @@ +/* $Id$ */ + +/** + * @file + * Generic theme-independent base styles. + */ + +/** + * Autocomplete. + * + * @see autocomplete.js + */ +/* Suggestion list */ +#autocomplete { + position: absolute; + border: 1px solid; + overflow: hidden; + z-index: 100; +} +#autocomplete ul { + margin: 0; + padding: 0; + list-style: none; + list-style-image: none; +} +#autocomplete li { + background: #fff; + color: #000; + white-space: pre; + cursor: default; +} +/* Animated throbber */ +html.js input.form-autocomplete { + background-image: url(../../misc/throbber.gif); + background-repeat: no-repeat; + background-position: 100% 2px; /* LTR */ +} +html.js input.throbbing { + background-position: 100% -18px; /* LTR */ +} + +/** + * Collapsible fieldsets. + * + * @see collapse.js + */ +html.js fieldset.collapsed { + border-bottom-width: 0; + border-left-width: 0; + border-right-width: 0; + height: 1em; +} +html.js fieldset.collapsed .fieldset-wrapper { + display: none; +} +fieldset.collapsible { + position: relative; +} +fieldset.collapsible .fieldset-legend { + display: block; +} + +/** + * Resizable textareas. + * + * @see textarea.js + */ +.form-textarea-wrapper textarea { + margin: 0; + width: 100%; + display: block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.resizable-textarea .grippie { + height: 9px; + overflow: hidden; + background: #eee url(../../misc/grippie.png) no-repeat center 2px; + border: 1px solid #ddd; + border-top-width: 0; + cursor: s-resize; +} + +/** + * TableDrag behavior. + * + * @see tabledrag.js + */ +body.drag { + cursor: move; +} +.draggable a.tabledrag-handle { + cursor: move; + float: left; /* LTR */ + height: 1.7em; + margin: -0.4em 0 -0.4em -0.5em; /* LTR */ + padding: 0.42em 1.5em 0.42em 0.5em; /* LTR */ + text-decoration: none; +} +a.tabledrag-handle:hover { + text-decoration: none; +} +a.tabledrag-handle .handle { + margin-top: 4px; + height: 13px; + width: 13px; + background: url(../../misc/draggable.png) no-repeat 0 0; +} +a.tabledrag-handle-hover .handle { + background-position: 0 -20px; +} +div.indentation { + width: 20px; + height: 1.7em; + margin: -0.4em 0.2em -0.4em -0.4em; /* LTR */ + padding: 0.42em 0 0.42em 0.6em; /* LTR */ + float: left; /* LTR */ +} +div.tree-child { + background: url(../../misc/tree.png) no-repeat 11px center; /* LTR */ +} +div.tree-child-last { + background: url(../../misc/tree-bottom.png) no-repeat 11px center; /* LTR */ +} +div.tree-child-horizontal { + background: url(../../misc/tree.png) no-repeat -11px center; +} +.tabledrag-toggle-weight-wrapper { + text-align: right; /* LTR */ +} + +/** + * TableHeader behavior. + * + * @see tableheader.js + */ +table.sticky-header { + background-color: #fff; + margin-top: 0; +} + +/** + * Progress behavior. + * + * @see progress.js + */ +/* Bar */ +.progress .bar { + background-color: #fff; + border: 1px solid; +} +.progress .filled { + background-color: #000; + height: 1.5em; + width: 5px; +} +.progress .percentage { + float: right; /* LTR */ +} +.progress-disabled { + float: left; /* LTR */ +} +/* Throbber */ +.ajax-progress { + float: left; /* LTR */ +} +.ajax-progress .throbber { + width: 15px; + height: 15px; + margin: 2px; + background: transparent url(../../misc/throbber.gif) no-repeat 0px -18px; + float: left; /* LTR */ +} +tr .ajax-progress .throbber { + margin: 0 2px; +} +.ajax-progress-bar { + width: 16em; +} + +/** + * Inline items. + */ +.container-inline div, +.container-inline label { + display: inline; +} +/* Fieldset contents always need to be rendered as block. */ +.container-inline .fieldset-wrapper { + display: block; +} + +/** + * Prevent text wrapping. + */ +.nowrap { + white-space: nowrap; +} + +/** + * For anything you want to hide on page load when JS is enabled, so + * that you can use the JS to control visibility and avoid flicker. + */ +html.js .js-hide { + display: none; +} + +/** + * Hide elements from all users. + * + * Used for elements which should not be immediately displayed to any user. An + * example would be a collapsible fieldset that will be expanded with a click + * from a user. The effect of this class can be toggled with the jQuery show() + * and hide() functions. + */ +.element-hidden { + display: none; +} + +/** + * Hide elements visually, but keep them available for screen-readers. + * + * Used for information required for screen-reader users to understand and use + * the site where visual display is undesirable. Information provided in this + * manner should be kept concise, to avoid unnecessary burden on the user. Must + * not be used for focusable elements (such as links and form elements) as this + * causes issues for keyboard only or voice recognition users. "!important" is + * used to prevent unintentional overrides. + */ +.element-invisible { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); +} + +/** + * Markup free clearing. + * + * @see http://perishablepress.com/press/2009/12/06/new-clearfix-hack + */ +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +/* IE6 */ +* html .clearfix { + height: 1%; +} +/* IE7 */ +*:first-child + html .clearfix { + min-height: 1%; +} + diff --git a/modules/system/system.css b/modules/system/system.css deleted file mode 100644 index 0acff828a..000000000 --- a/modules/system/system.css +++ /dev/null @@ -1,415 +0,0 @@ -/* $Id$ */ - -/* -** HTML elements -*/ -fieldset { - margin-bottom: 1em; - padding: .5em; -} -form { - margin: 0; - padding: 0; -} -hr { - height: 1px; - border: 1px solid gray; -} -img { - border: 0; -} -table { - border-collapse: collapse; -} -th { - text-align: left; /* LTR */ - padding-right: 1em; /* LTR */ - border-bottom: 3px solid #ccc; -} -th.active img { - display: inline; -} -tr.even, -tr.odd { - background-color: #eee; - border-bottom: 1px solid #ccc; - padding: 0.1em 0.6em; -} -tr.drag { - background-color: #fffff0; -} -tr.drag-previous { - background-color: #ffd; -} -td.active { - background-color: #ddd; -} -td.checkbox, -th.checkbox { - text-align: center; -} -tbody { - border-top: 1px solid #ccc; -} -tbody th { - border-bottom: 1px solid #ccc; -} -thead th { - text-align: left; /* LTR */ - padding-right: 1em; /* LTR */ - border-bottom: 3px solid #ccc; -} - -/* -** Other common styles -*/ -.breadcrumb { - padding-bottom: .5em -} -.item-list .icon { - color: #555; - float: right; /* LTR */ - padding-left: 0.25em; /* LTR */ - clear: right; /* LTR */ -} -.item-list .title { - font-weight: bold; -} -.item-list ul { - margin: 0 0 0.75em 0; - padding: 0; -} -.item-list ul li { - margin: 0 0 0.25em 1.5em; /* LTR */ - padding: 0; -} -.form-item { - margin-top: 1em; - margin-bottom: 1em; -} -tr.odd .form-item, -tr.even .form-item { - margin-top: 0; - margin-bottom: 0; - white-space: nowrap; -} -tr.merge-down, -tr.merge-down td, -tr.merge-down th { - border-bottom-width: 0 !important; -} -tr.merge-up, -tr.merge-up td, -tr.merge-up th { - border-top-width: 0 !important; -} -.form-item input.error, -.form-item textarea.error, -.form-item select.error { - border: 2px solid red; -} -.form-item .description { - font-size: 0.85em; -} -.form-item label { - display: block; - font-weight: bold; -} -.form-item label.option { - display: inline; - font-weight: normal; -} -.form-checkboxes, -.form-radios { - margin: 1em 0; -} -.form-checkboxes .form-item, -.form-radios .form-item { - margin-top: 0.4em; - margin-bottom: 0.4em; -} -.form-type-radio .description, -.form-type-checkbox .description { - margin-left: 2.4em; -} -input.form-checkbox, -input.form-radio { - vertical-align: middle; -} -.marker, -.form-required { - color: #f00; -} -.more-help-link { - text-align: right; /* LTR */ -} -.more-help-link a, -a.module-link { - padding: 1px 0 1px 20px; /* LTR */ -} -a.module-link { - display: block; - white-space: nowrap; -} -.more-help-link a, -a.module-link-help { - background: url(../../misc/help.png) 0 50% no-repeat; /* LTR */ -} -a.module-link-permissions { - background: url(../../misc/permissions.png) 0 50% no-repeat; /* LTR */ -} -a.module-link-configure { - background: url(../../misc/configure.png) 0 50% no-repeat; /* LTR */ -} -.more-link { - text-align: right; /* LTR */ -} -.module-help { - margin-left: 1em; /* LTR */ - float: right; /* LTR */ -} -.item-list .pager { - clear: both; - text-align: center; -} -.item-list .pager li { - background-image:none; - display:inline; - list-style-type:none; - padding: 0.5em; -} -.pager-current { - font-weight:bold; -} -.tips { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; - font-size: 0.9em; -} -.compact-link { - margin: 0 0 0.5em 0; -} - -/* -** Tab navigation -*/ -ul.primary { - border-collapse: collapse; - padding: 0 0 0 1em; /* LTR */ - white-space: nowrap; - list-style: none; - margin: 5px; - height: auto; - line-height: normal; - border-bottom: 1px solid #bbb; -} -ul.primary li { - display: inline; -} -ul.primary li a { - background-color: #ddd; - border-color: #bbb; - border-width: 1px; - border-style: solid solid none solid; - height: auto; - margin-right: 0.5em; /* LTR */ - padding: 0 1em; - text-decoration: none; -} -ul.primary li.active a { - background-color: #fff; - border: 1px solid #bbb; - border-bottom: #fff 1px solid; -} -ul.primary li a:hover { - background-color: #eee; - border-color: #ccc; - border-bottom-color: #eee; -} -ul.secondary { - border-bottom: 1px solid #bbb; - padding: 0.5em 1em; - margin: 5px; -} -ul.secondary li { - display: inline; - padding: 0 1em; - border-right: 1px solid #ccc; /* LTR */ -} -ul.secondary a { - padding: 0; - text-decoration: none; -} -ul.secondary a.active { - border-bottom: 4px solid #999; -} - -/* -** To be used with tableselect.js -*/ -tr.selected td { - background: #ffc; -} - -/* -** To be used with displace.js -*/ -.displace-top, -.displace-bottom { - position: relative; - width: 100%; -} -.displace-processed .displace-top, -.displace-processed .displace-bottom { - position: fixed; - width: auto; - left: 0; - right: 0; -} -.displace-unsupported .displace-top, -.displace-unsupported .displace-bottom { - position: absolute; -} - -/* -** To be used with displace.js -*/ -.displace-top, -.displace-bottom { - position: relative; - width: 100%; -} -.displace-processed .displace-top, -.displace-processed .displace-bottom { - position: fixed; - width: auto; - left: 0; - right: 0; -} -.displace-unsupported .displace-top, -.displace-unsupported .displace-bottom { - position: absolute; -} - -/* -** Floating header for tableheader.js -*/ -table.sticky-header { - margin-top: 0; - background: #fff; -} - -/* -** Styles for the system modules page (admin/modules) -*/ -#system-modules div.incompatible { - font-weight: bold; -} - -/* -** Styles for the system themes page (admin/appearance) -*/ -.system-themes-list { - margin-bottom: 20px; -} -.system-themes-list-disabled { - border-top: 1px solid #cdcdcd; - padding-top: 20px; -} -.system-themes-list h2 { - margin: 0; -} -.theme-selector { - padding-top: 20px; -} -.theme-selector .screenshot, -.theme-selector .no-screenshot { - border: 1px solid #e0e0d8; - padding: 2px; - vertical-align: bottom; - width: 294px; - height: 219px; - line-height: 219px; - text-align: center; -} -.theme-default .screenshot { - border: 1px solid #aaa; -} -.system-themes-list-enabled .theme-selector .screenshot, -.system-themes-list-enabled .theme-selector .no-screenshot { - float: left; /* LTR */ - margin: 0 20px 0 0; /* LTR */ -} -.system-themes-list-disabled .theme-selector .screenshot, -.system-themes-list-disabled .theme-selector .no-screenshot { - width: 194px; - height: 144px; - line-height: 144px; -} -.theme-selector h3 { - font-weight: normal; -} -.theme-default h3 { - font-weight: bold; -} -.system-themes-list-enabled .theme-selector h3 { - margin-top: 0; -} -.system-themes-list-disabled .theme-selector { - width: 300px; - float: left; /* LTR */ - padding: 20px 20px 20px 0; /* LTR */ -} -.system-themes-list-enabled .theme-info { - max-width: 940px; -} -.system-themes-list-disabled .theme-info { - min-height: 170px; -} -.theme-selector .incompatible { - margin-top: 10px; - font-weight: bold; -} -.theme-selector .operations { - margin: 10px 0 0 0; - padding: 0; -} -.theme-selector .operations li { - float: left; /* LTR */ - margin: 0; - padding: 0 0.7em; - list-style-type: none; - border-right: 1px solid #cdcdcd; /* LTR */ -} -.theme-selector .operations li.last { - padding: 0 0 0 0.7em; /* LTR */ - border-right: none; /* LTR */ -} -.theme-selector .operations li.first { - padding: 0 0.7em 0 0; /* LTR */ -} -#system-themes-admin-form { - clear: left; -} - -/* -** Markup free clearing -** Details: http://perishablepress.com/press/2009/12/06/new-clearfix-hack -*/ -.clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} -/* IE6 */ -* html .clearfix { - height: 1%; -} -/* IE7 */ -*:first-child + html .clearfix { - min-height: 1%; -} diff --git a/modules/system/system.maintenance.css b/modules/system/system.maintenance.css new file mode 100644 index 000000000..a4a64c17e --- /dev/null +++ b/modules/system/system.maintenance.css @@ -0,0 +1,56 @@ +/* $Id$ */ + +/** + * Update styles + */ +#update-results { + margin-top: 3em; + padding: 0.25em; + border: 1px solid #ccc; + background: #eee; + font-size: smaller; +} +#update-results h2 { + margin-top: 0.25em; +} +#update-results h4 { + margin-bottom: 0.25em; +} +#update-results li.none { + color: #888; + font-style: italic; +} +#update-results li.failure strong { + color: #b63300; +} + +/** + * Authorize.php styles + */ +.connection-settings-update-filetransfer-default-wrapper { + float: left; +} +#edit-submit-connection { + clear: both; +} +.filetransfer { + display: none; + clear: both; +} +#edit-connection-settings-change-connection-type { + margin: 2.6em 0.5em 0em 1em; +} + +/** + * Installation task list + */ +ol.task-list li.active { + font-weight: bold; +} + +/** + * Installation clean URLs + */ +#clean-url.install { + display: none; +} diff --git a/modules/system/system.menus-rtl.css b/modules/system/system.menus-rtl.css new file mode 100644 index 000000000..9241db7cd --- /dev/null +++ b/modules/system/system.menus-rtl.css @@ -0,0 +1,38 @@ +/* $Id$ */ + +/** + * @file + * RTL styles for menus and navigation markup. + */ + +ul.menu { + text-align:right; +} +ul.menu li { + margin: 0 0.5em 0 0; +} +ul li.collapsed { + list-style-image: url(../../misc/menu-collapsed-rtl.png); +} +li.expanded, +li.collapsed, +li.leaf { + padding: 0.2em 0 0 0.5em; +} + +/** + * Markup generated by theme_menu_local_tasks(). + */ +ul.primary { + padding: 0 1em 0 0; +} +ul.primary li a { + margin-right: 5px; + margin-left: 0.5em; +} +ul.secondary li { + display: inline; + padding: 0 1em; + border-right: none; + border-left: 1px solid #ccc; +} diff --git a/modules/system/system.menus.css b/modules/system/system.menus.css new file mode 100644 index 000000000..52e9dd35e --- /dev/null +++ b/modules/system/system.menus.css @@ -0,0 +1,119 @@ +/* $Id$ */ + +/** + * @file + * Styles for menus and navigation markup. + */ + +/** + * Markup generated by theme_menu_tree(). + */ +ul.menu { + list-style: none; + border: none; + text-align:left; /* LTR */ +} +ul.menu li { + margin: 0 0 0 0.5em; /* LTR */ +} +ul li.expanded { + list-style-type: circle; + list-style-image: url(../../misc/menu-expanded.png); +} +ul li.collapsed { + list-style-type: disc; + list-style-image: url(../../misc/menu-collapsed.png); /* LTR */ +} +ul li.leaf { + list-style-type: square; + list-style-image: url(../../misc/menu-leaf.png); +} +li.expanded, +li.collapsed, +li.leaf { + padding: 0.2em 0.5em 0 0; /* LTR */ + margin: 0; +} +li a.active { + color: #000; +} +td.menu-disabled { + background: #ccc; +} + +/** + * Markup generated by theme_links(). + */ +ul.links { + margin: 0; + padding: 0; +} +ul.links.inline { + display: inline; +} +ul.links li { + display: inline; + list-style-type: none; + padding: 0 0.5em; +} + +/** + * Markup generated by theme_breadcrumb(). + */ +.breadcrumb { + padding-bottom: .5em; +} + +/** + * Markup generated by theme_menu_local_tasks(). + */ +ul.primary { + border-collapse: collapse; + padding: 0 0 0 1em; /* LTR */ + white-space: nowrap; + list-style: none; + margin: 5px; + height: auto; + line-height: normal; + border-bottom: 1px solid #bbb; +} +ul.primary li { + display: inline; +} +ul.primary li a { + background-color: #ddd; + border-color: #bbb; + border-width: 1px; + border-style: solid solid none solid; + height: auto; + margin-right: 0.5em; /* LTR */ + padding: 0 1em; + text-decoration: none; +} +ul.primary li.active a { + background-color: #fff; + border: 1px solid #bbb; + border-bottom: #fff 1px solid; +} +ul.primary li a:hover { + background-color: #eee; + border-color: #ccc; + border-bottom-color: #eee; +} +ul.secondary { + border-bottom: 1px solid #bbb; + padding: 0.5em 1em; + margin: 5px; +} +ul.secondary li { + display: inline; + padding: 0 1em; + border-right: 1px solid #ccc; /* LTR */ +} +ul.secondary a { + padding: 0; + text-decoration: none; +} +ul.secondary a.active { + border-bottom: 4px solid #999; +} diff --git a/modules/system/system.messages.css b/modules/system/system.messages.css new file mode 100644 index 000000000..46338f46d --- /dev/null +++ b/modules/system/system.messages.css @@ -0,0 +1,64 @@ +/* $Id$ */ + +/** + * @file + * Styles for system messages. + */ + +div.messages { + background-position: 8px 8px; /* LTR */ + background-repeat: no-repeat; + border: 1px solid; + margin: 6px 0; + padding: 10px 10px 10px 50px; /* LTR */ +} + +div.status { + background-image: url(../../misc/message-24-ok.png); + border-color: #be7; +} +div.status, +.ok { + color: #234600; +} +div.status, +table tr.ok { + background-color: #f8fff0; +} + +div.warning { + background-image: url(../../misc/message-24-warning.png); + border-color: #ed5; +} +div.warning, +.warning { + color: #840; +} +div.warning, +table tr.warning { + background-color: #fffce5; +} + +div.error { + background-image: url(../../misc/message-24-error.png); + border-color: #ed541d; +} +div.error, +.error { + color: #8c2e0b; +} +div.error, +table tr.error { + background-color: #fef5f1; +} +div.error p.error { + color: #333; +} + +div.messages ul { + margin: 0 0 0 1em; /* LTR */ + padding: 0; +} +div.messages ul li { + list-style-image: none; +} diff --git a/modules/system/system.theme-rtl.css b/modules/system/system.theme-rtl.css new file mode 100644 index 000000000..a4b775928 --- /dev/null +++ b/modules/system/system.theme-rtl.css @@ -0,0 +1,59 @@ +/* $Id$ */ + +/** + * @file + * RTL styles for common markup. + */ + +/** + * HTML elements. + */ +th { + text-align: right; + padding-right: 0; + padding-left: 1em; +} +thead th { + text-align: right; + padding-left: 1em; + padding-right: 0.5em; +} + +/** + * Markup generated by theme_item_list(). + */ +.item-list ul li { + margin: 0 1.5em 0.25em 0; +} + +/** + * Markup generated by theme_more_link(). + */ +.more-link { + text-align: left; +} + +/** + * Markup generated by theme_more_help_link(). + */ +.more-help-link { + text-align: left; +} +.more-help-link a { + padding: 1px 20px 1px 0; + background-position: 100% 50%; +} + +/** + * Collapsible fieldsets. + */ +html.js fieldset.collapsible .fieldset-legend { + padding-left: 0; + padding-right: 15px; + background-position: 98% 75%; +} +html.js fieldset.collapsed .fieldset-legend { + background-image: url(../../misc/menu-collapsed-rtl.png); + background-position: 98% 50%; +} + diff --git a/modules/system/system.theme.css b/modules/system/system.theme.css new file mode 100644 index 000000000..35609e48b --- /dev/null +++ b/modules/system/system.theme.css @@ -0,0 +1,239 @@ +/* $Id$ */ + +/** + * @file + * Basic styling for common markup. + */ + +/** + * HTML elements. + */ +fieldset { + margin-bottom: 1em; + padding: .5em; +} +form { + margin: 0; + padding: 0; +} +hr { + height: 1px; + border: 1px solid gray; +} +img { + border: 0; +} +table { + border-collapse: collapse; +} +th { + text-align: left; /* LTR */ + padding-right: 1em; /* LTR */ + border-bottom: 3px solid #ccc; +} +thead th { + text-align: left; /* LTR */ + padding-right: 1em; /* LTR */ + border-bottom: 3px solid #ccc; +} +tbody { + border-top: 1px solid #ccc; +} +tr.even, +tr.odd { + background-color: #eee; + border-bottom: 1px solid #ccc; + padding: 0.1em 0.6em; +} + +/** + * Markup generated by theme_tablesort_indicator(). + */ +th.active img { + display: inline; +} +td.active { + background-color: #ddd; +} + +/** + * Markup generated by theme_item_list(). + */ +.item-list .title { + font-weight: bold; +} +.item-list ul { + margin: 0 0 0.75em 0; + padding: 0; +} +.item-list ul li { + margin: 0 0 0.25em 1.5em; /* LTR */ + padding: 0; +} + +/** + * Markup generated by Form API. + */ +.form-item { + margin-top: 1em; + margin-bottom: 1em; +} +tr.odd .form-item, +tr.even .form-item { + margin-top: 0; + margin-bottom: 0; + white-space: nowrap; +} +.form-item .description { + font-size: 0.85em; +} +.form-item label { + display: block; + font-weight: bold; +} +.form-item label.option { + display: inline; + font-weight: normal; +} +.form-checkboxes, +.form-radios { + margin: 1em 0; +} +.form-checkboxes .form-item, +.form-radios .form-item { + margin-top: 0.4em; + margin-bottom: 0.4em; +} +.form-type-radio .description, +.form-type-checkbox .description { + margin-left: 2.4em; +} +input.form-checkbox, +input.form-radio { + vertical-align: middle; +} +.marker, +.form-required { + color: #f00; +} +.form-item input.error, +.form-item textarea.error, +.form-item select.error { + border: 2px solid red; +} + +/** + * Markup generated by theme_more_link(). + */ +.more-link { + text-align: right; /* LTR */ +} + +/** + * Markup generated by theme_more_help_link(). + */ +.more-help-link { + text-align: right; /* LTR */ +} +.more-help-link a { + background: url(../../misc/help.png) 0 50% no-repeat; /* LTR */ + padding: 1px 0 1px 20px; /* LTR */ +} + +/** + * Markup generated by theme_pager(). + */ +.item-list .pager { + clear: both; + text-align: center; +} +.item-list .pager li { + background-image:none; + display:inline; + list-style-type:none; + padding: 0.5em; +} +.pager-current { + font-weight:bold; +} + +/** + * Autocomplete. + * + * @see autocomplete.js + */ +/* Suggestion list */ +#autocomplete li.selected { + background: #0072b9; + color: #fff; +} + +/** + * Collapsible fieldsets. + * + * @see collapse.js + */ +html.js fieldset.collapsible .fieldset-legend { + padding-left: 15px; /* LTR */ + background: url(../../misc/menu-expanded.png) 5px 65% no-repeat; /* LTR */ +} +html.js fieldset.collapsed .fieldset-legend { + background-image: url(../../misc/menu-collapsed.png); /* LTR */ + background-position: 5px 50%; /* LTR */ +} +.fieldset-legend span.summary { + font-size: 0.9em; + color: #999; + margin-left: 0.5em; +} + +/** + * TableDrag behavior. + * + * @see tabledrag.js + */ +tr.drag { + background-color: #fffff0; +} +tr.drag-previous { + background-color: #ffd; +} +.tabledrag-toggle-weight { + font-size: 0.9em; +} +body div.tabledrag-changed-warning { + margin-bottom: 0.5em; +} + +/** + * TableSelect behavior. + * + * @see tableselect.js +*/ +tr.selected td { + background: #ffc; +} +td.checkbox, +th.checkbox { + text-align: center; +} + +/** + * Progress bar. + * + * @see progress.js + */ +.progress { + font-weight: bold; +} +.progress .bar { + background: #ccc; + border-color: #666; + margin: 0 0.2em; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} +.progress .filled { + background: #0072b9 url(../../misc/progress.gif); +} -- cgit v1.2.3