summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwebchick2014-09-08 18:12:14 (GMT)
committerwebchick2014-09-08 18:12:14 (GMT)
commitf92c2cb45f38743b30a539d523879a27b2268ad0 (patch)
tree3baa0679fa81116aa6a689cb7c9d8761a8edd68a
parentdf9431d7ae5322fbb161fdbb098d30ef4fe3986e (diff)
Issue #2329505 by Cottser, SebCorbin, joelpittet, drupalninja99, jenlampton, longwave, aboros, trevorkjorlien, socketwench, shanethehat, mbrett5062, rteijeiro: Convert theme_task_list to Twig template.
-rw-r--r--core/includes/theme.inc34
-rw-r--r--core/modules/system/templates/task-list.html.twig25
2 files changed, 39 insertions, 20 deletions
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 461ece9..fc70f82 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1562,45 +1562,38 @@ function template_preprocess_container(&$variables) {
$variables['attributes'] = $element['#attributes'];
}
-
/**
- * Returns HTML for a list of maintenance tasks to perform.
+ * Prepares variables for maintenance task list templates.
*
- * @param $variables
+ * Default template: task-list.html.twig.
+ *
+ * @param array $variables
* An associative array containing:
* - items: An associative array of maintenance tasks.
* It's the caller's responsibility to ensure this array's items contain no
* dangerous HTML such as SCRIPT tags.
* - active: The key for the currently active maintenance task.
- *
- * @ingroup themeable
*/
-function theme_task_list($variables) {
+function template_preprocess_task_list(&$variables) {
$items = $variables['items'];
$active = $variables['active'];
$done = isset($items[$active]) || $active == NULL;
- $output = '<h2 class="visually-hidden">Installation tasks</h2>';
- $output .= '<ol class="task-list">';
-
foreach ($items as $k => $item) {
+ $variables['tasks'][$k]['item'] = $item;
+ $variables['tasks'][$k]['attributes'] = new Attribute();
if ($active == $k) {
- $class = 'active';
- $status = '(' . t('active') . ')';
+ $variables['tasks'][$k]['attributes']->addClass('active');
+ $variables['tasks'][$k]['status'] = t('active');
$done = FALSE;
}
else {
- $class = $done ? 'done' : '';
- $status = $done ? '(' . t('done') . ')' : '';
+ if ($done) {
+ $variables['tasks'][$k]['attributes']->addClass('done');
+ $variables['tasks'][$k]['status'] = t('done');
+ }
}
- $output .= '<li';
- $output .= ($class ? ' class="' . $class . '"' : '') . '>';
- $output .= $item;
- $output .= ($status ? '<span class="visually-hidden"> ' . $status . '</span>' : '');
- $output .= '</li>';
}
- $output .= '</ol>';
- return $output;
}
/**
@@ -2361,6 +2354,7 @@ function drupal_common_theme() {
),
'task_list' => array(
'variables' => array('items' => NULL, 'active' => NULL, 'variant' => NULL),
+ 'template' => 'task-list',
),
'authorize_message' => array(
'variables' => array('message' => NULL, 'success' => TRUE),
diff --git a/core/modules/system/templates/task-list.html.twig b/core/modules/system/templates/task-list.html.twig
new file mode 100644
index 0000000..649cfa6
--- /dev/null
+++ b/core/modules/system/templates/task-list.html.twig
@@ -0,0 +1,25 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a list of maintenance tasks to perform.
+ *
+ * Available variables:
+ * - tasks: A list of maintenance tasks to perform. Each item in the list has
+ * the following variables:
+ * - item: The maintenance task.
+ * - attributes: HTML attributes for the maintenance task.
+ * - status: (optional) Text describing the status of the maintenance task,
+ * 'active' or 'done'.
+ *
+ * @ingroup themeable
+ */
+#}
+<h2 class="visually-hidden">Installation tasks</h2>
+<ol class="task-list">
+{% for task in tasks %}
+ <li{{ task.attributes }}>
+ {{ task.item }}
+ {% if task.status %}<span class="visually-hidden"> ({{ task.status }})</span>{% endif %}
+ </li>
+{% endfor %}
+</ol>