Project

General

Profile

« Previous | Next » 

Revision 5a2e89b6

Added by Andreas Kohlbecker about 3 years ago

ref #7599 ref #6866 specimen details in floating tables - first part

View differences:

modules/cdm_dataportal/includes/occurrences_new.inc
2 2
/**
3 3
 * @file
4 4
 * Functions for dealing with CDM entities of type SpecimenOrOccurrences
5
 * This file contains new functions which are to replace functions in occurrences.inc
6
 * and should be merged with the latter one.
5
 * This file contains new functions which are to replace functions in
6
 *   occurrences.inc and should be merged with the latter one.
7
 *
8
 * @see http://www.mozilla.org/MPL/MPL-1.1.html
7 9
 *
8 10
 * @copyright
9 11
 *   (C) 2007-2021 EDIT
......
12 14
 *
13 15
 *   The contents of this module are subject to the Mozilla
14 16
 *   Public License Version 1.1.
15
 * @see http://www.mozilla.org/MPL/MPL-1.1.html
16
 *
17 17
 * @author
18 18
 *   - Andreas Kohlbecker <a.kohlbecker@BGBM.org>
19 19
 */
......
23 23
 * Composes the view on specimens and occurrences as derivate tree
24 24
 * starting from the field unit including all derivatives.
25 25
 *
26
 * @see CDM_SPECIMEN_LIST_VIEW_MODE_OPTION_DERIVATE_TREE
27
 *
28 26
 * @param array $root_unit_dtos
29 27
 *   list of SpecimenOrObservationDTOs
28
 *
30 29
 * @return array
31 30
 *   The Drupal render array
32 31
 *
33 32
 * @ingroup compose
33
 * @see CDM_SPECIMEN_LIST_VIEW_MODE_OPTION_DERIVATE_TREE
34
 *
34 35
 */
35
function compose_specimen_table_top_down_new(array $root_unit_dtos){
36
function compose_specimen_table_top_down_new(array $root_unit_dtos) {
36 37
  // add icons
37 38
  $expand_icon = font_awesome_icon_markup(
38 39
    'fa-plus-square-o',
39
    array(
40
    [
40 41
      'alt' => 'Show details',
41
      'class' => array('expand_icon')
42
    )
42
      'class' => ['expand_icon'],
43
    ]
43 44
  );
44 45
  $collapse_icon = font_awesome_icon_markup(
45 46
    'fa-minus-square-o',
46
    array(
47
    [
47 48
      'alt' => 'Show details',
48
      'class' => array('collapse_icon')
49
    )
49
      'class' => ['collapse_icon'],
50
    ]
50 51
  );
51 52

  
52 53
  $derivation_tree = derived_units_tree($root_unit_dtos);
......
66 67
 *
67 68
 * @param array $root_unit_dtos
68 69
 *     list of SpecimenOrObservationDTOs
70
 *
69 71
 * @return array
70 72
 *    An array which can be used in render arrays to be passed to the
71 73
 * theme_table() and theme_list().
72 74
 */
73
function derived_units_tree(array $root_unit_dtos){
75
function derived_units_tree(array $root_unit_dtos) {
74 76

  
75 77
  $root_items = [];
76 78
  //we need one more item to contain the items of one level (fieldunit, derivate data etc.)
77 79
  foreach ($root_unit_dtos as &$sob_dto) {
80
    $field_unit_dto_render_array = compose_cdm_specimen_or_observation_dto($sob_dto);
78 81
    $root_item = [
79 82
      '#prefix' => '<div class="derived-unit-tree">',
80 83
      '#suffix' => '</div>',
81 84
      '#type' => 'container',
82
      '#attributes' => ['class' => ['derived-unit-item derived-unit-tree-root',  html_class_attribute_ref($sob_dto)]],
83
      'div-container' => ['root-item-and-sub-tree' => [markup_to_render_array('<div class="unit-header"><div class="unit-label">' . $sob_dto->label .'</div></div>'
84
        .'<div class="unit-content-wrapper">' // allows to apply the borders between .derived-unit-tree-root and .unit-content
85
        .'<div class="unit-content">' . compose_cdm_specimen_or_observation_tree_entry($sob_dto) . '</div>'
86
      . '</div>')]],
85
      '#attributes' => [
86
        'class' => [
87
          'derived-unit-item derived-unit-tree-root',
88
          html_class_attribute_ref($sob_dto),
89
        ],
90
      ],
91
      'div-container' => [
92
        'root-item-and-sub-tree' => [
93
          markup_to_render_array('<div class="unit-header"><div class="unit-label">' . $sob_dto->label . '</div></div>'
94
            . '<div class="unit-content-wrapper">' // allows to apply the borders between .derived-unit-tree-root and .unit-content
95
            . '<div class="unit-content">' . drupal_render($field_unit_dto_render_array) . '</div>'
96
            . '</div>'),
97
        ],
98
      ],
87 99

  
88 100
    ];
89
    if (isset($sob_dto->derivatives) && sizeof($sob_dto->derivatives) > 0){
101
    if (isset($sob_dto->derivatives) && sizeof($sob_dto->derivatives) > 0) {
90 102
      usort($sob_dto->derivatives, 'compare_specimen_or_observation_dtos');
91 103
      // children are displayed in a nested list.
92 104
      $root_item['div-container']['root-item-and-sub-tree'][] = derived_units_sub_tree($sob_dto->derivatives);
......
122 134
 *
123 135
 * @param array $root_unit_dtos
124 136
 *     list of SpecimenOrObservationDTOs
137
 *
125 138
 * @return array
126 139
 *    An array which can be used in render arrays to be passed to the
127 140
 * theme_table() and theme_list().
128 141
 */
129
function derived_units_as_list_items(array $root_unit_dtos){
142
function derived_units_as_list_items(array $root_unit_dtos) {
130 143

  
131 144
  $list_items = [];
132 145
  //we need one more item to contain the items of one level (fieldunit, derivate data etc.)
133 146
  foreach ($root_unit_dtos as &$sob_dto) {
134 147
    $item = [];
135
    $item['class'] = ['derived-unit-item ',  html_class_attribute_ref($sob_dto)];
148
    $item['class'] = ['derived-unit-item ', html_class_attribute_ref($sob_dto)];
136 149
    // data" element of the array is used as the contents of the list item
137 150
    $item['data'] = [];
138
    $item['data'] = '<div class="unit-header"><div class="unit-label">' . $sob_dto->label .'</div></div>'
139
      . '<div class="unit-content">' . compose_cdm_specimen_or_observation_tree_entry($sob_dto) . '</div>';
140
    if (isset($sob_dto->derivatives) && sizeof($sob_dto->derivatives) > 0){
151
    $units_render_array = compose_cdm_specimen_or_observation_dto($sob_dto);
152
    $item['data'] = '<div class="unit-header"><div class="unit-label">' . $sob_dto->label . '</div></div>'
153
      . '<div class="unit-content">' . drupal_render($units_render_array) . '</div>';
154
    if (isset($sob_dto->derivatives) && sizeof($sob_dto->derivatives) > 0) {
141 155
      usort($sob_dto->derivatives, 'compare_specimen_or_observation_dtos');
142 156
      // children are displayed in a nested list.
143 157
      $item['children'] = derived_units_as_list_items($sob_dto->derivatives);
......
147 161

  
148 162
  return $list_items;
149 163
}
164

  
165
/**
166
 * Compose an render array from a CDM SpecimenOrObservationDTO, without
167
 * subordinate derivatives.
168
 *
169
 * The resulting render array will contain separate DOM block level elements
170
 * with header line for the various kind of information like, location,
171
 * gathering, specimen/observation, DNA, etc.
172
 *
173
 * For showing the derivation hierarchy see methods like
174
 * derived_units_sub_tree()
175
 *
176
 * compose_hook() implementation
177
 *
178
 * @param object $sob_dto
179
 *   the CDM FieldUnitDTO or DerivedUnitDTO to compose
180
 *   the render array for.
181
 * @param bool $compact_mode
182
 *   Currently unused, but added for compatibility with
183
 *   compose_cdm_specimen_or_observation($specimen_or_observation,
184
 *   $isSpecimen_page = false, &$derivatives = null)
185
 * @param array $derivatives
186
 *   the render array which contains the compositions of the derivatives
187
 *   of the supplied $specimenOrObservation
188
 *
189
 * @return array
190
 *  The render array for the SpecimenOrObservationDTO
191
 *
192
 * @throws \Exception
193
 * @ingroup compose
194
 */
195
function compose_cdm_specimen_or_observation_dto($sob_dto, $compact_mode = FALSE, &$derivatives = NULL) {
196
  //TODO !!!! add derivation event information like method, etc
197
  $render_array = [];
198
  if (!$sob_dto) {
199
    return $render_array;
200
  }
201
  if ($sob_dto->type == 'FieldUnit') {
202
    $render_array['field-unit'] = compose_cdm_field_unit_dto_location($sob_dto, $compact_mode);
203
    if(isset($sob_dto->gathering)){
204
      $render_array['gathering'] = compose_cdm_gathering_dto($sob_dto->gathering, $compact_mode);
205
    }
206
  }
207

  
208
  return $render_array;
209
}
210

  
211
/**
212
 * Compose an render array from a CDM FieldUnitDTO, without subordinate
213
 * derivatives.
214
 *
215
 * The resulting DOM block level element will have a header line and details.
216
 *
217
 * For showing the derivation hierarchy see methods like
218
 * derived_units_sub_tree()
219
 *
220
 * compose_hook() implementation
221
 *
222
 * @param object $sob_dto
223
 *   the CDM FieldUnitDTO
224
 *   the render array for.
225
 * @param bool $compact_mode
226
 *   Currently unused,
227
 *
228
 * @return array
229
 *  The render array for the SpecimenOrObservationDTO
230
 *
231
 * @throws \Exception
232
 * @ingroup compose
233
 */
234
function compose_cdm_field_unit_dto_location($fu_dto, $compact_mode = FALSE) {
235

  
236
  $table_heading = "Location";
237

  
238
  $table_row_data = [];
239
  if (isset_not_empty($fu_dto->sex)) {
240
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('sex'), cdm_term_representation($fu_dto->sex));
241
  }
242
  if (isset_not_empty($fu_dto->lifeStage)) {
243
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('lifeStage'), cdm_term_representation($fu_dto->lifeStage));
244
  }
245
  if (isset_not_empty($fu_dto->kindOfUnit)) {
246
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('kindOfUnit'), cdm_term_representation($fu_dto->kindOfUnit));
247
  }
248
  if (isset_not_empty($fu_dto->individualCount)) {
249
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('individualCount'), $fu_dto->individualCount);
250
  }
251
  if (isset_not_empty($fu_dto->definition)) {
252
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('definition'), $fu_dto->definition);
253
  }
254
  if (isset_not_empty($fu_dto->fieldNumber)) {
255
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('fieldNumber'), $fu_dto->fieldNumber);
256
  }
257
  if (isset_not_empty($fu_dto->primaryCollector)) {
258
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('primaryCollector'), $fu_dto->primaryCollector);
259
  }
260
  if (isset_not_empty($fu_dto->fieldNotes)) {
261
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('fieldNotes'), $fu_dto->fieldNotes);
262
  }
263

  
264
  return cdm_sob_dto_table($table_heading, $table_row_data, $fu_dto);
265
}
266

  
267
/**
268
 * Compose an render array from a CDM FieldUnitDTO, without subordinate
269
 * derivatives.
270
 *
271
 * The resulting DOM block level element will have a header line and details.
272
 *
273
 * For showing the derivation hierarchy see methods like
274
 * derived_units_sub_tree()
275
 *
276
 * compose_hook() implementation
277
 *
278
 * @param object $sob_dto
279
 *   the CDM FieldUnitDTO
280
 *   the render array for.
281
 * @param bool $compact_mode
282
 *   Currently unused,
283
 *
284
 * @return array
285
 *  The render array for the SpecimenOrObservationDTO
286
 *
287
 * @throws \Exception
288
 * @ingroup compose
289
 */
290
function compose_cdm_gathering_dto($gathering_dto, $compact_mode = FALSE) {
291

  
292
  $table_heading = "Gathering";
293

  
294
  $table_row_data = [];
295
  if (isset_not_empty($gathering_dto->date)) {
296
    $table_row_data[] = cdm_sob_dto_table_row(cdm_occurrence_field_name_label('date'), partialToDate($gathering_dto->date));
297
  }
298

  
299
  return cdm_sob_dto_table($table_heading, $table_row_data, $gathering_dto);
300
}
301

  
302
/**
303
 * Creates a form array for showing details of SpecimenOrObservationDTO in a
304
 * tabular form with heading.
305
 *
306
 * @param $table_heading
307
 * @param array $table_row_data
308
 * @param $sob_dto
309
 */
310
function cdm_sob_dto_table($table_heading, array $table_row_data, $sob_dto, $weight = null) {
311
  $sob_table = [
312
    "#theme" => "table",
313
    "#header" => [
314
      'data' => $table_heading,
315
      "#attributes" => [
316
        'colspan' => 2
317
      ]
318
    ],
319
    "#rows" => $table_row_data,
320
    "#attributes" => [
321
      "class" => [
322
        'specimen-or-observation-details',
323
        html_class_attribute_ref($sob_dto),
324
      ]
325
    ],
326
  ];
327
  if($weight){
328
    $sob_table['#weight'] = $weight;
329
  }
330
  return $sob_table;
331
}
332

  
333
function cdm_sob_dto_table_row($label, $value) {
334
  return [
335
    'data' => [
336
      [
337
        'data' => str_replace(':', '', $label),
338
         'class' => [
339
          'label'
340
        ]
341
      ],
342
      $value],
343
    'no_striping' => TRUE,
344
  ];
345
}
themes/zen_dataportal/css/cdm.css
309 309
  clear: both;
310 310
}
311 311

  
312
/* line 237, ../sass/cdm.scss */
312
/* line 238, ../sass/cdm.scss */
313 313
div.derived-unit-tree,
314 314
ul.derived-unit-sub-tree,
315 315
ul.derived-unit-sub-tree ul {
......
317 317
  margin: 0 0 0 3.2px;
318 318
  padding: 0;
319 319
}
320
/* line 242, ../sass/cdm.scss */
320
/* line 243, ../sass/cdm.scss */
321 321
div.derived-unit-tree .unit-header,
322 322
ul.derived-unit-sub-tree .unit-header,
323 323
ul.derived-unit-sub-tree ul .unit-header {
324 324
  padding-top: 7px;
325 325
}
326
/* line 244, ../sass/cdm.scss */
326
/* line 245, ../sass/cdm.scss */
327 327
div.derived-unit-tree .unit-header .unit-label,
328 328
ul.derived-unit-sub-tree .unit-header .unit-label,
329 329
ul.derived-unit-sub-tree ul .unit-header .unit-label {
......
331 331
  background-color: #dedede;
332 332
  padding-left: 5px;
333 333
}
334
/* line 249, ../sass/cdm.scss */
334
/* line 250, ../sass/cdm.scss */
335 335
div.derived-unit-tree .unit-header .unit-label:hover,
336 336
ul.derived-unit-sub-tree .unit-header .unit-label:hover,
337 337
ul.derived-unit-sub-tree ul .unit-header .unit-label:hover {
338 338
  background-color: #f8f8f8;
339 339
}
340
/* line 253, ../sass/cdm.scss */
340
/* line 254, ../sass/cdm.scss */
341 341
div.derived-unit-tree .unit-content,
342 342
ul.derived-unit-sub-tree .unit-content,
343 343
ul.derived-unit-sub-tree ul .unit-content {
344
  padding-left: 1em;
344
  padding: 11.2px;
345 345
  background-color: #ebebeb;
346 346
}
347
/* line 256, ../sass/cdm.scss */
347
/* line 257, ../sass/cdm.scss */
348 348
div.derived-unit-tree .unit-content dl,
349 349
ul.derived-unit-sub-tree .unit-content dl,
350 350
ul.derived-unit-sub-tree ul .unit-content dl {
351 351
  margin: 0;
352 352
}
353 353

  
354
/* line 261, ../sass/cdm.scss */
354
/* line 262, ../sass/cdm.scss */
355 355
div.derived-unit-tree {
356 356
  margin-top: -3.2px;
357 357
}
358
/* line 264, ../sass/cdm.scss */
359
div.derived-unit-tree table.specimen-or-observation-details {
360
  margin: 0;
361
  width: 50%;
362
  font-size: smaller;
363
  background-color: white;
364
}
365
/* line 269, ../sass/cdm.scss */
366
div.derived-unit-tree table.specimen-or-observation-details thead {
367
  border-bottom: thin solid #dedede;
368
}
369
/* line 273, ../sass/cdm.scss */
370
div.derived-unit-tree table.specimen-or-observation-details tbody {
371
  background-color: white;
372
}
373
/* line 275, ../sass/cdm.scss */
374
div.derived-unit-tree table.specimen-or-observation-details tbody .label {
375
  text-align: right;
376
  border-right: thin solid #dedede;
377
}
378
/* line 281, ../sass/cdm.scss */
379
div.derived-unit-tree table.specimen-or-observation-details td, div.derived-unit-tree table.specimen-or-observation-details th {
380
  padding-right: 11.2px;
381
  padding-left: 11.2px;
382
}
358 383

  
359
/* line 265, ../sass/cdm.scss */
384
/* line 288, ../sass/cdm.scss */
360 385
div.derived-unit-tree-root .unit-content-wrapper {
361 386
  border-left: 3px dotted #dedede;
362 387
  margin-left: 3.2px;
363 388
}
364 389

  
365
/* line 275, ../sass/cdm.scss */
390
/* line 298, ../sass/cdm.scss */
366 391
ul.derived-unit-sub-tree ul {
367 392
  margin-left: 1.0em;
368 393
}
369
/* line 278, ../sass/cdm.scss */
394
/* line 301, ../sass/cdm.scss */
370 395
ul.derived-unit-sub-tree li {
371 396
  position: relative;
372 397
  margin-left: 0;
......
375 400
  line-height: 22.4px;
376 401
  border-left: 3px dotted #dedede;
377 402
}
378
/* line 288, ../sass/cdm.scss */
403
/* line 311, ../sass/cdm.scss */
379 404
ul.derived-unit-sub-tree li:last-child {
380 405
  border-left: none;
381 406
}
382
/* line 290, ../sass/cdm.scss */
407
/* line 313, ../sass/cdm.scss */
383 408
ul.derived-unit-sub-tree li:last-child .unit-header, ul.derived-unit-sub-tree li:last-child .unit-content {
384 409
  margin-left: 3px;
385 410
}
386
/* line 294, ../sass/cdm.scss */
411
/* line 317, ../sass/cdm.scss */
387 412
ul.derived-unit-sub-tree li:before {
388 413
  position: absolute;
389 414
  top: 3.2px;
......
397 422
  content: "";
398 423
  display: inline-block;
399 424
}
400
/* line 306, ../sass/cdm.scss */
425
/* line 329, ../sass/cdm.scss */
401 426
ul.derived-unit-sub-tree li:last-child:before {
402 427
  border-left: 3px dotted #dedede;
403 428
}
......
405 430
/*
406 431
 * Map
407 432
 */
408
/* line 314, ../sass/cdm.scss */
433
/* line 337, ../sass/cdm.scss */
409 434
.openlayers-container {
410 435
  margin-top: 5px;
411 436
  margin-bottom: 5px;
......
414 439
/*
415 440
 * Registration page & items
416 441
 */
417
/* line 324, ../sass/cdm.scss */
442
/* line 347, ../sass/cdm.scss */
418 443
.registration .type-status {
419 444
  font-weight: bold;
420 445
}
421
/* line 328, ../sass/cdm.scss */
446
/* line 351, ../sass/cdm.scss */
422 447
.registration .registration-date-and-institute {
423 448
  color: #999;
424 449
}
425
/* line 334, ../sass/cdm.scss */
450
/* line 357, ../sass/cdm.scss */
426 451
.registration .published-name .TaxonName .name {
427 452
  font-weight: bold;
428 453
}
429
/* line 338, ../sass/cdm.scss */
454
/* line 361, ../sass/cdm.scss */
430 455
.registration .typified-name .cdm\:TaxonName {
431 456
  color: #999;
432 457
}
433
/* line 340, ../sass/cdm.scss */
458
/* line 363, ../sass/cdm.scss */
434 459
.registration .typified-name .cdm\:TaxonName a {
435 460
  color: #999;
436 461
}
437
/* line 343, ../sass/cdm.scss */
462
/* line 366, ../sass/cdm.scss */
438 463
.registration .typified-name .cdm\:TaxonName .TaxonName .name {
439 464
  font-weight: bold;
440 465
}
441
/* line 349, ../sass/cdm.scss */
466
/* line 372, ../sass/cdm.scss */
442 467
.registration .registration-summary .registered_name .name {
443 468
  font-weight: bold;
444 469
}
445
/* line 352, ../sass/cdm.scss */
470
/* line 375, ../sass/cdm.scss */
446 471
.registration .registration-summary .referenced_typified_name {
447 472
  color: #999;
448 473
}
449
/* line 355, ../sass/cdm.scss */
474
/* line 378, ../sass/cdm.scss */
450 475
.registration .registration-summary .label {
451 476
  font-weight: bold;
452 477
}
......
454 479
/*
455 480
 * Theme settings page
456 481
 */
457
/* line 366, ../sass/cdm.scss */
482
/* line 389, ../sass/cdm.scss */
458 483
#system-theme-settings .image-preview {
459 484
  width: 600px;
460 485
  max-height: 150px;
461 486
  overflow: auto;
462 487
}
463
/* line 370, ../sass/cdm.scss */
488
/* line 393, ../sass/cdm.scss */
464 489
#system-theme-settings .image-preview img {
465 490
  max-width: none;
466 491
  /* reset style in mormalize.scss */
......
471 496
 *
472 497
 * using the same media queries here as in layout/_responsive.scss
473 498
 *****************************************************************************************/
474
/* line 383, ../sass/cdm.scss */
499
/* line 406, ../sass/cdm.scss */
475 500
#classification-breadcrumbs {
476 501
  font-size: 1.5em;
477 502
  line-height: 1.5em;
478 503
}
479 504

  
480 505
@media all and (min-width: 960px) {
481
  /* line 394, ../sass/cdm.scss */
506
  /* line 417, ../sass/cdm.scss */
482 507
  #classification-breadcrumbs {
483 508
    font-size: 1em;
484 509
  }
......
486 511
/***************************
487 512
 * TESTING ONLY 2020-02-20
488 513
 */
489
/* line 402, ../sass/cdm.scss */
514
/* line 425, ../sass/cdm.scss */
490 515
.font-noto {
491 516
  font-family: "Noto Sans", sans-serif !important;
492 517
}
themes/zen_dataportal/css/styles.css
2370 2370
  clear: both;
2371 2371
}
2372 2372

  
2373
/* line 237, ../sass/cdm.scss */
2373
/* line 238, ../sass/cdm.scss */
2374 2374
div.derived-unit-tree,
2375 2375
ul.derived-unit-sub-tree,
2376 2376
ul.derived-unit-sub-tree ul {
......
2378 2378
  margin: 0 0 0 3.2px;
2379 2379
  padding: 0;
2380 2380
}
2381
/* line 242, ../sass/cdm.scss */
2381
/* line 243, ../sass/cdm.scss */
2382 2382
div.derived-unit-tree .unit-header,
2383 2383
ul.derived-unit-sub-tree .unit-header,
2384 2384
ul.derived-unit-sub-tree ul .unit-header {
2385 2385
  padding-top: 7px;
2386 2386
}
2387
/* line 244, ../sass/cdm.scss */
2387
/* line 245, ../sass/cdm.scss */
2388 2388
div.derived-unit-tree .unit-header .unit-label,
2389 2389
ul.derived-unit-sub-tree .unit-header .unit-label,
2390 2390
ul.derived-unit-sub-tree ul .unit-header .unit-label {
......
2392 2392
  background-color: #dedede;
2393 2393
  padding-left: 5px;
2394 2394
}
2395
/* line 249, ../sass/cdm.scss */
2395
/* line 250, ../sass/cdm.scss */
2396 2396
div.derived-unit-tree .unit-header .unit-label:hover,
2397 2397
ul.derived-unit-sub-tree .unit-header .unit-label:hover,
2398 2398
ul.derived-unit-sub-tree ul .unit-header .unit-label:hover {
2399 2399
  background-color: #f8f8f8;
2400 2400
}
2401
/* line 253, ../sass/cdm.scss */
2401
/* line 254, ../sass/cdm.scss */
2402 2402
div.derived-unit-tree .unit-content,
2403 2403
ul.derived-unit-sub-tree .unit-content,
2404 2404
ul.derived-unit-sub-tree ul .unit-content {
2405
  padding-left: 1em;
2405
  padding: 11.2px;
2406 2406
  background-color: #ebebeb;
2407 2407
}
2408
/* line 256, ../sass/cdm.scss */
2408
/* line 257, ../sass/cdm.scss */
2409 2409
div.derived-unit-tree .unit-content dl,
2410 2410
ul.derived-unit-sub-tree .unit-content dl,
2411 2411
ul.derived-unit-sub-tree ul .unit-content dl {
2412 2412
  margin: 0;
2413 2413
}
2414 2414

  
2415
/* line 261, ../sass/cdm.scss */
2415
/* line 262, ../sass/cdm.scss */
2416 2416
div.derived-unit-tree {
2417 2417
  margin-top: -3.2px;
2418 2418
}
2419
/* line 264, ../sass/cdm.scss */
2420
div.derived-unit-tree table.specimen-or-observation-details {
2421
  margin: 0;
2422
  width: 50%;
2423
  font-size: smaller;
2424
  background-color: white;
2425
}
2426
/* line 269, ../sass/cdm.scss */
2427
div.derived-unit-tree table.specimen-or-observation-details thead {
2428
  border-bottom: thin solid #dedede;
2429
}
2430
/* line 273, ../sass/cdm.scss */
2431
div.derived-unit-tree table.specimen-or-observation-details tbody {
2432
  background-color: white;
2433
}
2434
/* line 275, ../sass/cdm.scss */
2435
div.derived-unit-tree table.specimen-or-observation-details tbody .label {
2436
  text-align: right;
2437
  border-right: thin solid #dedede;
2438
}
2439
/* line 281, ../sass/cdm.scss */
2440
div.derived-unit-tree table.specimen-or-observation-details td, div.derived-unit-tree table.specimen-or-observation-details th {
2441
  padding-right: 11.2px;
2442
  padding-left: 11.2px;
2443
}
2419 2444

  
2420
/* line 265, ../sass/cdm.scss */
2445
/* line 288, ../sass/cdm.scss */
2421 2446
div.derived-unit-tree-root .unit-content-wrapper {
2422 2447
  border-left: 3px dotted #dedede;
2423 2448
  margin-left: 3.2px;
2424 2449
}
2425 2450

  
2426
/* line 275, ../sass/cdm.scss */
2451
/* line 298, ../sass/cdm.scss */
2427 2452
ul.derived-unit-sub-tree ul {
2428 2453
  margin-left: 1.0em;
2429 2454
}
2430
/* line 278, ../sass/cdm.scss */
2455
/* line 301, ../sass/cdm.scss */
2431 2456
ul.derived-unit-sub-tree li {
2432 2457
  position: relative;
2433 2458
  margin-left: 0;
......
2436 2461
  line-height: 22.4px;
2437 2462
  border-left: 3px dotted #dedede;
2438 2463
}
2439
/* line 288, ../sass/cdm.scss */
2464
/* line 311, ../sass/cdm.scss */
2440 2465
ul.derived-unit-sub-tree li:last-child {
2441 2466
  border-left: none;
2442 2467
}
2443
/* line 290, ../sass/cdm.scss */
2468
/* line 313, ../sass/cdm.scss */
2444 2469
ul.derived-unit-sub-tree li:last-child .unit-header, ul.derived-unit-sub-tree li:last-child .unit-content {
2445 2470
  margin-left: 3px;
2446 2471
}
2447
/* line 294, ../sass/cdm.scss */
2472
/* line 317, ../sass/cdm.scss */
2448 2473
ul.derived-unit-sub-tree li:before {
2449 2474
  position: absolute;
2450 2475
  top: 3.2px;
......
2458 2483
  content: "";
2459 2484
  display: inline-block;
2460 2485
}
2461
/* line 306, ../sass/cdm.scss */
2486
/* line 329, ../sass/cdm.scss */
2462 2487
ul.derived-unit-sub-tree li:last-child:before {
2463 2488
  border-left: 3px dotted #dedede;
2464 2489
}
......
2466 2491
/*
2467 2492
 * Map
2468 2493
 */
2469
/* line 314, ../sass/cdm.scss */
2494
/* line 337, ../sass/cdm.scss */
2470 2495
.openlayers-container {
2471 2496
  margin-top: 10px;
2472 2497
  margin-bottom: 10px;
......
2475 2500
/*
2476 2501
 * Registration page & items
2477 2502
 */
2478
/* line 324, ../sass/cdm.scss */
2503
/* line 347, ../sass/cdm.scss */
2479 2504
.registration .type-status {
2480 2505
  font-weight: bold;
2481 2506
}
2482
/* line 328, ../sass/cdm.scss */
2507
/* line 351, ../sass/cdm.scss */
2483 2508
.registration .registration-date-and-institute {
2484 2509
  color: #999;
2485 2510
}
2486
/* line 334, ../sass/cdm.scss */
2511
/* line 357, ../sass/cdm.scss */
2487 2512
.registration .published-name .TaxonName .name {
2488 2513
  font-weight: bold;
2489 2514
}
2490
/* line 338, ../sass/cdm.scss */
2515
/* line 361, ../sass/cdm.scss */
2491 2516
.registration .typified-name .cdm\:TaxonName {
2492 2517
  color: #999;
2493 2518
}
2494
/* line 340, ../sass/cdm.scss */
2519
/* line 363, ../sass/cdm.scss */
2495 2520
.registration .typified-name .cdm\:TaxonName a {
2496 2521
  color: #999;
2497 2522
}
2498
/* line 343, ../sass/cdm.scss */
2523
/* line 366, ../sass/cdm.scss */
2499 2524
.registration .typified-name .cdm\:TaxonName .TaxonName .name {
2500 2525
  font-weight: bold;
2501 2526
}
2502
/* line 349, ../sass/cdm.scss */
2527
/* line 372, ../sass/cdm.scss */
2503 2528
.registration .registration-summary .registered_name .name {
2504 2529
  font-weight: bold;
2505 2530
}
2506
/* line 352, ../sass/cdm.scss */
2531
/* line 375, ../sass/cdm.scss */
2507 2532
.registration .registration-summary .referenced_typified_name {
2508 2533
  color: #999;
2509 2534
}
2510
/* line 355, ../sass/cdm.scss */
2535
/* line 378, ../sass/cdm.scss */
2511 2536
.registration .registration-summary .label {
2512 2537
  font-weight: bold;
2513 2538
}
......
2515 2540
/*
2516 2541
 * Theme settings page
2517 2542
 */
2518
/* line 366, ../sass/cdm.scss */
2543
/* line 389, ../sass/cdm.scss */
2519 2544
#system-theme-settings .image-preview {
2520 2545
  width: 600px;
2521 2546
  max-height: 150px;
2522 2547
  overflow: auto;
2523 2548
}
2524
/* line 370, ../sass/cdm.scss */
2549
/* line 393, ../sass/cdm.scss */
2525 2550
#system-theme-settings .image-preview img {
2526 2551
  max-width: none;
2527 2552
  /* reset style in mormalize.scss */
......
2532 2557
 *
2533 2558
 * using the same media queries here as in layout/_responsive.scss
2534 2559
 *****************************************************************************************/
2535
/* line 383, ../sass/cdm.scss */
2560
/* line 406, ../sass/cdm.scss */
2536 2561
#classification-breadcrumbs {
2537 2562
  font-size: 1.5em;
2538 2563
  line-height: 1.5em;
2539 2564
}
2540 2565

  
2541 2566
@media all and (min-width: 960px) {
2542
  /* line 394, ../sass/cdm.scss */
2567
  /* line 417, ../sass/cdm.scss */
2543 2568
  #classification-breadcrumbs {
2544 2569
    font-size: 1em;
2545 2570
  }
......
2547 2572
/***************************
2548 2573
 * TESTING ONLY 2020-02-20
2549 2574
 */
2550
/* line 402, ../sass/cdm.scss */
2575
/* line 425, ../sass/cdm.scss */
2551 2576
.font-noto {
2552 2577
  font-family: "Noto Sans", sans-serif !important;
2553 2578
}
themes/zen_dataportal/sass/cdm.scss
226 226
  }
227 227

  
228 228
  // derivatives tree view (see also derivation-tree.js)
229
  // partially based on ideas found in https://jsfiddle.net/xuonpjmh/21/
229 230
  $tree-entry-vspace: 7px; //$base-font-size / 2 ???
230 231
  $tree-line-width: 3px;
231 232
  $tree-line-style: $tree-line-width dotted $menu-bar-background-color;
......
251 252
      }
252 253
    }
253 254
    .unit-content {
254
      padding-left: 1em;
255
      padding: $base-line-height / 2;
255 256
      background-color: lighten($menu-bar-background-color, 5%);
256 257
      dl {
257 258
        margin: 0;
......
260 261
  }
261 262
  div.derived-unit-tree {
262 263
    margin-top: -$tree-lines-top-offset; // needed for consistent spacing, see below
264
    table.specimen-or-observation-details {
265
      margin: 0;
266
      width: 50%;
267
      font-size: smaller;
268
      background-color: $page-background-color;
269
      thead {
270
        // background-color: $menu-bar-background-color;
271
        border-bottom: thin solid $menu-bar-background-color;
272
      }
273
      tbody {
274
        background-color: $page-background-color;
275
        .label {
276
          text-align: right;
277
          border-right: thin solid $menu-bar-background-color;
278

  
279
        }
280
      }
281
      td, th {
282
        padding-right: $base-line-height / 2;
283
        padding-left: $base-line-height / 2;
284
      }
285
    }
263 286
  }
264 287
  div.derived-unit-tree-root {
265 288
    .unit-content-wrapper {

Also available in: Unified diff