Browse Source
* Move ldp_contains to rdf_source bundle * Use a view to target the ldp_contains field * Coding stylepull/756/head
Jared Whiklo
8 years ago
committed by
dannylamb
6 changed files with 396 additions and 25 deletions
@ -0,0 +1,60 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
config: |
||||
- field.field.fedora_resource.rdf_source.field_ldp_contains |
||||
- islandora.fedora_resource_type.rdf_source |
||||
id: fedora_resource.rdf_source.default |
||||
targetEntityType: fedora_resource |
||||
bundle: rdf_source |
||||
mode: default |
||||
content: |
||||
fedora_has_parent: |
||||
type: entity_reference_autocomplete |
||||
weight: 2 |
||||
settings: |
||||
match_operator: CONTAINS |
||||
size: 60 |
||||
placeholder: '' |
||||
third_party_settings: { } |
||||
field_ldp_contains: |
||||
type: entity_reference_autocomplete |
||||
weight: 3 |
||||
settings: |
||||
match_operator: CONTAINS |
||||
size: 60 |
||||
placeholder: '' |
||||
third_party_settings: { } |
||||
langcode: |
||||
type: language_select |
||||
weight: 4 |
||||
settings: { } |
||||
third_party_settings: { } |
||||
name: |
||||
type: string_textfield |
||||
weight: 0 |
||||
settings: |
||||
size: 60 |
||||
placeholder: '' |
||||
third_party_settings: { } |
||||
promote: |
||||
type: boolean_checkbox |
||||
settings: |
||||
display_label: true |
||||
weight: 5 |
||||
third_party_settings: { } |
||||
sticky: |
||||
type: boolean_checkbox |
||||
settings: |
||||
display_label: true |
||||
weight: 6 |
||||
third_party_settings: { } |
||||
user_id: |
||||
type: entity_reference_autocomplete |
||||
weight: 1 |
||||
settings: |
||||
match_operator: CONTAINS |
||||
size: 60 |
||||
placeholder: '' |
||||
third_party_settings: { } |
||||
hidden: { } |
@ -0,0 +1,25 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
config: |
||||
- field.storage.fedora_resource.rdf_source.field_ldp_contains |
||||
- islandora.fedora_resource_type.non_rdf_source |
||||
- islandora.fedora_resource_type.rdf_source |
||||
id: fedora_resource.rdf_source.field_ldp_contains |
||||
field_name: field_ldp_contains |
||||
entity_type: fedora_resource |
||||
bundle: rdf_source |
||||
label: ldp:contains |
||||
description: 'Contains Fedora Resource.' |
||||
required: false |
||||
translatable: false |
||||
default_value: { } |
||||
default_value_callback: '' |
||||
settings: |
||||
handler: 'default:fedora_resource' |
||||
handler_settings: |
||||
view: |
||||
view_name: bundles_of_fedora |
||||
display_name: entity_reference_1 |
||||
arguments: { } |
||||
field_type: entity_reference |
@ -0,0 +1,18 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- islandora |
||||
id: fedora_resource.field_ldp_contains |
||||
field_name: field_ldp_contains |
||||
entity_type: fedora_resource |
||||
type: entity_reference |
||||
settings: |
||||
target_type: fedora_resource |
||||
module: core |
||||
locked: false |
||||
cardinality: -1 |
||||
translatable: true |
||||
indexes: { } |
||||
persist_with_no_fields: false |
||||
custom_storage: false |
@ -0,0 +1,163 @@
|
||||
langcode: en |
||||
status: true |
||||
dependencies: |
||||
module: |
||||
- islandora |
||||
- user |
||||
id: fedora_entities_reference |
||||
label: 'Fedora Entities Reference' |
||||
module: views |
||||
description: '' |
||||
tag: '' |
||||
base_table: fedora_resource_field_data |
||||
base_field: id |
||||
core: 8.x |
||||
display: |
||||
default: |
||||
display_plugin: default |
||||
id: default |
||||
display_title: Master |
||||
position: 0 |
||||
display_options: |
||||
access: |
||||
type: perm |
||||
options: |
||||
perm: 'access content' |
||||
cache: |
||||
type: tag |
||||
options: { } |
||||
query: |
||||
type: views_query |
||||
options: |
||||
disable_sql_rewrite: false |
||||
distinct: false |
||||
replica: false |
||||
query_comment: '' |
||||
query_tags: { } |
||||
exposed_form: |
||||
type: basic |
||||
options: |
||||
submit_button: Apply |
||||
reset_button: false |
||||
reset_button_label: Reset |
||||
exposed_sorts_label: 'Sort by' |
||||
expose_sort_order: true |
||||
sort_asc_label: Asc |
||||
sort_desc_label: Desc |
||||
pager: |
||||
type: mini |
||||
options: |
||||
items_per_page: 10 |
||||
offset: 0 |
||||
id: 0 |
||||
total_pages: null |
||||
expose: |
||||
items_per_page: false |
||||
items_per_page_label: 'Items per page' |
||||
items_per_page_options: '5, 10, 25, 50' |
||||
items_per_page_options_all: false |
||||
items_per_page_options_all_label: '- All -' |
||||
offset: false |
||||
offset_label: Offset |
||||
tags: |
||||
previous: ‹‹ |
||||
next: ›› |
||||
style: |
||||
type: default |
||||
row: |
||||
type: fields |
||||
fields: |
||||
name: |
||||
id: name |
||||
table: fedora_resource_field_data |
||||
field: name |
||||
entity_type: fedora_resource |
||||
entity_field: name |
||||
label: '' |
||||
alter: |
||||
alter_text: false |
||||
make_link: false |
||||
absolute: false |
||||
trim: false |
||||
word_boundary: false |
||||
ellipsis: false |
||||
strip_tags: false |
||||
html: false |
||||
hide_empty: false |
||||
empty_zero: false |
||||
settings: |
||||
link_to_entity: true |
||||
plugin_id: field |
||||
relationship: none |
||||
group_type: group |
||||
admin_label: '' |
||||
exclude: false |
||||
element_type: '' |
||||
element_class: '' |
||||
element_label_type: '' |
||||
element_label_class: '' |
||||
element_label_colon: true |
||||
element_wrapper_type: '' |
||||
element_wrapper_class: '' |
||||
element_default_classes: true |
||||
empty: '' |
||||
hide_alter_empty: true |
||||
click_sort_column: value |
||||
type: string |
||||
group_column: value |
||||
group_columns: { } |
||||
group_rows: true |
||||
delta_limit: 0 |
||||
delta_offset: 0 |
||||
delta_reversed: false |
||||
delta_first_last: false |
||||
multi_type: separator |
||||
separator: ', ' |
||||
field_api_classes: false |
||||
filters: |
||||
status: |
||||
value: '1' |
||||
table: fedora_resource_field_data |
||||
field: status |
||||
plugin_id: boolean |
||||
entity_type: fedora_resource |
||||
entity_field: status |
||||
id: status |
||||
expose: |
||||
operator: '' |
||||
group: 1 |
||||
sorts: { } |
||||
title: 'Bundles of Fedora' |
||||
header: { } |
||||
footer: { } |
||||
empty: { } |
||||
relationships: { } |
||||
arguments: { } |
||||
display_extenders: { } |
||||
cache_metadata: |
||||
max-age: -1 |
||||
contexts: |
||||
- 'languages:language_content' |
||||
- 'languages:language_interface' |
||||
- url.query_args |
||||
- user.permissions |
||||
tags: { } |
||||
entity_reference_1: |
||||
display_plugin: entity_reference |
||||
id: entity_reference_1 |
||||
display_title: 'All Fedora Resource Entities' |
||||
position: 2 |
||||
display_options: |
||||
display_extenders: { } |
||||
style: |
||||
type: entity_reference |
||||
options: |
||||
search_fields: |
||||
name: name |
||||
cache_metadata: |
||||
max-age: -1 |
||||
contexts: |
||||
- 'languages:language_content' |
||||
- 'languages:language_interface' |
||||
- user.permissions |
||||
tags: { } |
@ -0,0 +1,130 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\islandora\Plugin\views\wizard; |
||||
|
||||
use Drupal\views\Plugin\views\wizard\WizardPluginBase; |
||||
|
||||
/** |
||||
* Tests creating node views with the wizard. |
||||
* |
||||
* Mostly copied from Nodes wizard, look there for more options. |
||||
* |
||||
* @ViewsWizard( |
||||
* id = "fedora_resource", |
||||
* base_table = "fedora_resource_field_data", |
||||
* title = @Translation("Fedora Resource") |
||||
* ) |
||||
*/ |
||||
class FedoraResource extends WizardPluginBase { |
||||
|
||||
/** |
||||
* Set the created column. |
||||
* |
||||
* @var string |
||||
*/ |
||||
protected $createdColumn = 'fedora_resource_field_data-created'; |
||||
|
||||
/** |
||||
* Override base method. |
||||
* |
||||
* Drupal\views\Plugin\views\wizard\WizardPluginBase::getAvailableSorts(). |
||||
* |
||||
* @return array |
||||
* An array whose keys are the available sort options and whose |
||||
* corresponding values are human readable labels. |
||||
*/ |
||||
public function getAvailableSorts() { |
||||
// You can't execute functions in properties, so override the method. |
||||
return array( |
||||
'fedora_resource_field_data-name:ASC' => $this->t('Name'), |
||||
); |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
protected function defaultDisplayOptions() { |
||||
$display_options = parent::defaultDisplayOptions(); |
||||
|
||||
// Add permission-based access control. |
||||
$display_options['access']['type'] = 'perm'; |
||||
$display_options['access']['options']['perm'] = 'access content'; |
||||
|
||||
// Remove the default fields, since we are customizing them here. |
||||
unset($display_options['fields']); |
||||
|
||||
// Add the title field, so that the display has content if the user switches |
||||
// to a row style that uses fields. |
||||
/* Field: Content: Title */ |
||||
$display_options['fields']['name']['id'] = 'name'; |
||||
$display_options['fields']['name']['table'] = 'fedora_resource_field_data'; |
||||
$display_options['fields']['name']['field'] = 'name'; |
||||
$display_options['fields']['name']['entity_type'] = 'fedora_resource'; |
||||
$display_options['fields']['name']['entity_field'] = 'name'; |
||||
$display_options['fields']['name']['label'] = ''; |
||||
$display_options['fields']['name']['alter']['alter_text'] = 0; |
||||
$display_options['fields']['name']['alter']['make_link'] = 0; |
||||
$display_options['fields']['name']['alter']['absolute'] = 0; |
||||
$display_options['fields']['name']['alter']['trim'] = 0; |
||||
$display_options['fields']['name']['alter']['word_boundary'] = 0; |
||||
$display_options['fields']['name']['alter']['ellipsis'] = 0; |
||||
$display_options['fields']['name']['alter']['strip_tags'] = 0; |
||||
$display_options['fields']['name']['alter']['html'] = 0; |
||||
$display_options['fields']['name']['hide_empty'] = 0; |
||||
$display_options['fields']['name']['empty_zero'] = 0; |
||||
$display_options['fields']['name']['settings']['link_to_entity'] = 1; |
||||
$display_options['fields']['name']['plugin_id'] = 'field'; |
||||
|
||||
return $display_options; |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
protected function pageDisplayOptions(array $form, FormStateInterface $form_state) { |
||||
$display_options = parent::pageDisplayOptions($form, $form_state); |
||||
$row_plugin = $form_state->getValue(array('page', 'style', 'row_plugin')); |
||||
$row_options = $form_state->getValue(array('page', 'style', 'row_options'), array()); |
||||
$this->display_options_row($display_options, $row_plugin, $row_options); |
||||
return $display_options; |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
protected function blockDisplayOptions(array $form, FormStateInterface $form_state) { |
||||
$display_options = parent::blockDisplayOptions($form, $form_state); |
||||
$row_plugin = $form_state->getValue(array('block', 'style', 'row_plugin')); |
||||
$row_options = $form_state->getValue(array('block', 'style', 'row_options'), array()); |
||||
$this->displayOptionsRow($display_options, $row_plugin, $row_options); |
||||
return $display_options; |
||||
} |
||||
|
||||
/** |
||||
* Set the row style and row style plugins to the display_options. |
||||
*/ |
||||
protected function displayOptionsRow(&$display_options, $row_plugin, $row_options) { |
||||
switch ($row_plugin) { |
||||
case 'full_posts': |
||||
$display_options['row']['type'] = 'entity:fedora_resource'; |
||||
$display_options['row']['options']['view_mode'] = 'full'; |
||||
break; |
||||
|
||||
case 'teasers': |
||||
$display_options['row']['type'] = 'entity:fedora_resource'; |
||||
$display_options['row']['options']['view_mode'] = 'teaser'; |
||||
break; |
||||
|
||||
case 'titles_linked': |
||||
case 'titles': |
||||
$display_options['row']['type'] = 'fields'; |
||||
$display_options['fields']['title']['id'] = 'title'; |
||||
$display_options['fields']['title']['table'] = 'fedora_resource_field_data'; |
||||
$display_options['fields']['title']['field'] = 'title'; |
||||
$display_options['fields']['title']['settings']['link_to_entity'] = $row_plugin === 'titles_linked'; |
||||
$display_options['fields']['title']['plugin_id'] = 'field'; |
||||
break; |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue