Parcourir la source

Issue #2312817: Make the record/field fieldset collapsible and streamline fields table

Lacey Sanderson il y a 9 ans
Parent
commit
c8155e5720

+ 8 - 0
tripal_bulk_loader/includes/tripal_bulk_loader.admin.templates.inc

@@ -31,6 +31,11 @@ function tripal_bulk_loader_modify_template_base_form($form, &$form_state = NULL
   $breadcrumb[] = l('Templates', 'admin/tripal/loaders/bulk/templates');
   drupal_set_breadcrumb($breadcrumb);
 
+  // Add CSS
+  $form['#attached']['css'] = array(
+    drupal_get_path('module', 'tripal_bulk_loader') . '/theme/tripal_bulk_loader.css',
+  );
+
    // get template id from path and rebuild form
   if (isset($form_state['build_info']['args'][1])) {
     $mode = 'edit';
@@ -198,7 +203,10 @@ function tripal_bulk_loader_modify_template_base_form($form, &$form_state = NULL
   );
 
   $form['fields']['fields-data'] = array(
+    '#prefix' => '<div id="tripal-bulk-loader-template-fields">',
+    '#suffix' => '</div>',
     '#tree' => TRUE,
+    '#theme' => 'tripal_bulk_loader_modify_template_base_form_fields'
   );
 
   if (array_key_exists('template', $form_state['storage'])) {

+ 0 - 116
tripal_bulk_loader/theme/templates/tripal_bulk_loader_modify_template_base_form.tpl.php

@@ -1,116 +0,0 @@
-
-<style>
-tr.odd .form-item, tr.even .form-item {
-  white-space: normal;
-  word-wrap: break-word;
-}
-fieldset {
-  padding: 20px;
-}
-td.active{
-  width: 10px;
-}
-td.tbl-action-record-links {
-  width: 150px;
-}
-td.tbl-action-field-links {
-  width: 100px;
-}
-</style>
-
-<div id="tripal-bulk-loader-fields"><?php 
-print drupal_render($form['template_name']); ?>
-
-<!-- For each table display details in a draggable table --><?php 
-if (!$form['records']['no_records']['#value']) { ?>
-  <fieldset><legend><?php print $form['records']['#title']; ?></legend> <?php
-    print drupal_render($form['records']['description']);
-
-    // generate table
-    drupal_add_tabledrag('records-table', 'order', 'sibling', 'records-reorder');
-    $header = array(' ', ' ', 'Record Name', 'Chado Table', 'Mode', 'Order',);
-    $rows = array();
-    foreach (element_children($form['records']['records-data']) as $key) {
-      $element = &$form['records']['records-data'][$key];
-      $element['new_priority']['#attributes']['class'] = array('records-reorder');
-
-      $row = array();
-      $row[] = '';
-      $row[] = array(
-        'class' => array('tbl-action-record-links'),
-        'data' => drupal_render($element['submit-edit_record']) . ' | '
-          . drupal_render($element['submit-delete_record']) . ' | '
-          . drupal_render($element['submit-duplicate_record']) . '<br>'
-          . drupal_render($element['view-fields-link']) . ' | '
-          . drupal_render($element['submit-add_field'])
-        );
-      $row[] = drupal_render($element['title']);
-      $row[] = drupal_render($element['chado_table']);
-      $row[] = drupal_render($element['mode']);
-      $row[] = drupal_render($element['new_priority'])
-        . drupal_render($element['id']);
-
-      $rows[] = array('data' => $row, 'class' => array('draggable'));
-    }
-
-    print theme(
-      'table',
-      array(
-        'header' => $header,
-        'rows' => $rows,
-        'attributes' => array('id' => 'records-table')
-      )
-    );
-
-    // Render submit
-    print drupal_render($form['records']['submit-new_record']);
-    print drupal_render($form['records']['submit-reorder']);
-    unset($form['records']); ?>
-  </fieldset> <?php 
-} ?>
-
-<!-- For each field display details plus edit/delete buttons--> <?php 
-if (array_key_exists('total_fields', $form['fields']) and
-    $form['fields']['total_fields']['#value'] > 0) { ?>
-  <fieldset><legend><?php print $form['fields']['#title']; ?></legend> <?php
-    // generate table
-    $header = array('','Record Name', 'Field Name', 'Chado Table', 'Chado Field', 'Data File Column', 'Constant Value', 'Foreign Record');
-    $rows = array();
-    foreach ($form['fields']['fields-data'] as $key => $element) {
-      if (preg_match('/^#/', $key)) { continue; }
-
-      $row = array();
-      $row[] = array(
-        'class' => array('tbl-action-field-links', 'active'),
-        'data' => drupal_render($element['edit_submit']) . ' | '
-          . drupal_render($element['delete_submit']) . '<br />'
-          . drupal_render($element['view-record-link'])
-        );
-      $row[] = drupal_render($element['record_id']);
-      $row[] = drupal_render($element['field_name']);
-      $row[] = drupal_render($element['chado_table_name']);
-      $row[] = drupal_render($element['chado_field_name']);
-      $row[] = drupal_render($element['column_num']);
-      $row[] = drupal_render($element['constant_value']);
-      $row[] = drupal_render($element['foreign_record_id']);
-
-      $rows[] = $row;
-    }
-    print theme(
-      'table',
-      array(
-        'header' => $header,
-        'rows' => $rows,
-        //'attributes' => array('style'=>'table-layout: fixed; width: 100%')
-      )
-    );
-
-    // Render other elements
-    print drupal_render($form['fields']['add_field']);
-    unset($form['fields']); ?>
-  </fieldset> <?php 
-} ?>
-
-<!-- Display Rest of form --><?php 
-print drupal_render_children($form); ?>
-</div>

Fichier diff supprimé car celui-ci est trop grand
+ 40 - 0
tripal_bulk_loader/theme/templates/tripal_bulk_loader_modify_template_base_form_fields.tpl.php


+ 55 - 0
tripal_bulk_loader/theme/templates/tripal_bulk_loader_modify_template_base_form_records.tpl.php

@@ -0,0 +1,55 @@
+<?php
+/**
+ * @file
+ * Defines how the records table in the Bulk Loader Template Edit form should be rendered.
+ *
+ * @param $element
+ *   The FAPI definition of the records table.
+ */
+
+// Define the header & tell drupal this table should implement table drag for row re-ordering.
+drupal_add_tabledrag('records-table', 'order', 'sibling', 'records-reorder');
+$header = array(' ', ' ', 'Record Name', 'Chado Table', 'Mode', 'Order',);
+$rows = array();
+
+// Create a row for each sub-element that is not a form-api key (ie: #title).
+foreach (element_children($element) as $key) {
+
+  $row_element = &$element[$key];
+  $row_element['new_priority']['#attributes']['class'] = array('records-reorder');
+  $row = array();
+  
+  // Add an empty cell for the tabledrag icon.
+  $row[] = array('class' => array('tbl-drag', 'active'), 'data' => '');
+  
+  // Add our action links.
+  $row[] = array(
+    'class' => array('tbl-action-record-links', 'active'),
+    'data' => drupal_render($row_element['submit-edit_record']) . ' | '
+      . drupal_render($row_element['submit-delete_record']) . ' | '
+      . drupal_render($row_element['submit-duplicate_record']) . '<br>'
+      . drupal_render($row_element['view-fields-link']) . ' | '
+      . drupal_render($row_element['submit-add_field'])
+    );
+  
+  // Add the record information.
+  $row[] = drupal_render($row_element['title']);
+  $row[] = drupal_render($row_element['chado_table']);
+  $row[] = drupal_render($row_element['mode']);
+  $row[] = drupal_render($row_element['new_priority'])
+    . drupal_render($row_element['id']);
+
+  // Finally add the current row to the table.
+  $rows[] = array('data' => $row, 'class' => array('draggable'));
+}
+
+// Finally print the generated table.
+print theme(
+  'table',
+  array(
+    'header' => $header,
+    'rows' => $rows,
+    'attributes' => array('id' => 'records-table')
+  )
+);
+?>

+ 29 - 1
tripal_bulk_loader/theme/tripal_bulk_loader.css

@@ -16,4 +16,32 @@
   border-color: #ed5;
   background-color: #DDDAC0;
   color: #840;
-}
+}
+
+/**
+ * Tripal Bulk Loader Edit Template Form.
+ */
+#tripal-bulk-loader-modify-template-base-form tr.odd .form-item, tr.even .form-item {
+  white-space: normal;
+  word-wrap: break-word;
+}
+#tripal-bulk-loader-modify-template-base-form .fieldset-description {
+  padding-top: 20px;
+}
+#tripal-bulk-loader-modify-template-base-form td.tbl-drag{
+  width: 20px;
+}
+#tripal-bulk-loader-modify-template-base-form td.tbl-action-record-links {
+  width: 150px;
+}
+#tripal-bulk-loader-modify-template-base-form td.tbl-action-field-links {
+  width: 100px;
+}
+#tripal-bulk-loader-modify-template-base-form td.data-column {
+  text-align: center;
+  width: 50px;
+}
+#tripal-bulk-loader-modify-template-base-form td.field-type {
+  text-align: center;
+  width: 50px;
+}

+ 8 - 3
tripal_bulk_loader/tripal_bulk_loader.module

@@ -306,10 +306,15 @@ function tripal_bulk_loader_theme($existing, $type, $theme, $path) {
     ),
 
     // form element themes
-    'tripal_bulk_loader_modify_template_base_form' => array(
-      'template' => 'tripal_bulk_loader_modify_template_base_form',
+    'tripal_bulk_loader_modify_template_base_form_records' => array(
+      'template' => 'tripal_bulk_loader_modify_template_base_form_records',
       'path' => "$path/theme/templates",
-      'render element' => 'form'
+      'render element' => 'element'
+    ),
+    'tripal_bulk_loader_modify_template_base_form_fields' => array(
+      'template' => 'tripal_bulk_loader_modify_template_base_form_fields',
+      'path' => "$path/theme/templates",
+      'render element' => 'element'
     ),
     'tripal_bulk_loader_field_regex_fieldset' => array(
       'file' => 'theme/tripal_bulk_loader.theme.inc',

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff