From d5fe23418ef70e373818e749bada2ef80743c85e Mon Sep 17 00:00:00 2001 From: Naomi Date: Mon, 17 Sep 2018 08:48:20 +0100 Subject: [PATCH] Saved reports (templates) are now just called "reports". --- .../install/views.view.reporting_actors.yml | 79 +------------------ .../config/schema/opencase_report.schema.yml | 12 +++ .../opencase_reporting.links.action.yml | 6 ++ .../opencase_reporting.links.menu.yml | 12 +-- .../opencase_reporting.module | 12 --- .../src/Entity/OpenCaseReport.php | 57 +++++++++++++ .../src/Entity/OpenCaseReportInterface.php | 13 +++ .../src/Form/OpenCaseReportDeleteForm.php | 53 +++++++++++++ .../src/Form/OpenCaseReportForm.php | 65 +++++++++++++++ .../src/OpenCaseReportHtmlRouteProvider.php | 28 +++++++ .../src/OpenCaseReportListBuilder.php | 32 ++++++++ .../src/Plugin/Block/Presets.php | 29 ------- ...lock--opencase-reporting-presets.html.twig | 5 -- 13 files changed, 274 insertions(+), 129 deletions(-) create mode 100644 modules/opencase_reporting/config/schema/opencase_report.schema.yml create mode 100644 modules/opencase_reporting/opencase_reporting.links.action.yml create mode 100644 modules/opencase_reporting/src/Entity/OpenCaseReport.php create mode 100644 modules/opencase_reporting/src/Entity/OpenCaseReportInterface.php create mode 100644 modules/opencase_reporting/src/Form/OpenCaseReportDeleteForm.php create mode 100644 modules/opencase_reporting/src/Form/OpenCaseReportForm.php create mode 100644 modules/opencase_reporting/src/OpenCaseReportHtmlRouteProvider.php create mode 100644 modules/opencase_reporting/src/OpenCaseReportListBuilder.php delete mode 100644 modules/opencase_reporting/src/Plugin/Block/Presets.php delete mode 100644 modules/opencase_reporting/templates/block--opencase-reporting-presets.html.twig diff --git a/modules/opencase_reporting/config/install/views.view.reporting_actors.yml b/modules/opencase_reporting/config/install/views.view.reporting_actors.yml index 7c81afc..4488704 100644 --- a/modules/opencase_reporting/config/install/views.view.reporting_actors.yml +++ b/modules/opencase_reporting/config/install/views.view.reporting_actors.yml @@ -398,43 +398,7 @@ display: footer: { } empty: { } relationships: { } - arguments: - 'null': - id: 'null' - table: views - field: 'null' - relationship: none - group_type: group - admin_label: '' - default_action: default - exception: - value: all - title_enable: false - title: All - title_enable: true - title: '{{ raw_arguments.null }}' - default_argument_type: query_parameter - default_argument_options: - query_param: preset_title - fallback: 'New actor report' - multiple: and - default_argument_skip_url: false - summary_options: - base_path: '' - count: true - items_per_page: 25 - override: false - summary: - sort_order: asc - number_of_records: 0 - format: default_summary - specify_validation: false - validate: - type: none - fail: 'not found' - validate_options: { } - must_not_be: false - plugin_id: 'null' + arguments: { } display_extenders: { } use_ajax: true cache_metadata: @@ -442,7 +406,6 @@ display: contexts: - 'languages:language_content' - 'languages:language_interface' - - url - url.query_args - user.permissions tags: { } @@ -491,43 +454,7 @@ display: type: none options: offset: 0 - arguments: - 'null': - id: 'null' - table: views - field: 'null' - relationship: none - group_type: group - admin_label: '' - default_action: default - exception: - value: all - title_enable: false - title: All - title_enable: true - title: '{{ raw_arguments.null }}' - default_argument_type: query_parameter - default_argument_options: - query_param: preset_title - fallback: 'Untitled actor report' - multiple: and - default_argument_skip_url: false - summary_options: - base_path: '' - count: true - items_per_page: 25 - override: false - summary: - sort_order: asc - number_of_records: 0 - format: default_summary - specify_validation: false - validate: - type: none - fail: 'not found' - validate_options: { } - must_not_be: false - plugin_id: 'null' + arguments: { } auth: - cookie cache_metadata: @@ -536,7 +463,6 @@ display: - 'languages:language_content' - 'languages:language_interface' - request_format - - url - user.permissions tags: { } page_1: @@ -556,7 +482,6 @@ display: contexts: - 'languages:language_content' - 'languages:language_interface' - - url - url.query_args - user.permissions tags: { } diff --git a/modules/opencase_reporting/config/schema/opencase_report.schema.yml b/modules/opencase_reporting/config/schema/opencase_report.schema.yml new file mode 100644 index 0000000..2c9b24a --- /dev/null +++ b/modules/opencase_reporting/config/schema/opencase_report.schema.yml @@ -0,0 +1,12 @@ +opencase_reporting.opencase_report.*: + type: config_entity + label: 'OpenCase Report config' + mapping: + id: + type: string + label: 'ID' + label: + type: label + label: 'Label' + uuid: + type: string diff --git a/modules/opencase_reporting/opencase_reporting.links.action.yml b/modules/opencase_reporting/opencase_reporting.links.action.yml new file mode 100644 index 0000000..d18ee38 --- /dev/null +++ b/modules/opencase_reporting/opencase_reporting.links.action.yml @@ -0,0 +1,6 @@ +entity.opencase_report.add_form: + route_name: entity.opencase_report.add_form + title: 'Add OpenCase Report' + appears_on: + - entity.opencase_report.collection + diff --git a/modules/opencase_reporting/opencase_reporting.links.menu.yml b/modules/opencase_reporting/opencase_reporting.links.menu.yml index 2bc4363..52569a6 100644 --- a/modules/opencase_reporting/opencase_reporting.links.menu.yml +++ b/modules/opencase_reporting/opencase_reporting.links.menu.yml @@ -1,14 +1,14 @@ opencase_reporting.reporting: title: 'Reporting' menu_name: main - url: internal:/opencase/reporting/actors + url: internal:/opencase/reporting weight: 1 -# Preset menu items definition -entity.preset.collection: - title: 'Preset' - route_name: entity.preset.collection - description: 'List Preset (bundles)' +# OpenCase Report menu items definition +entity.opencase_report.collection: + title: 'OpenCase Reports' + route_name: entity.opencase_report.collection + description: 'List OpenCase Reports' parent: system.admin_structure weight: 99 diff --git a/modules/opencase_reporting/opencase_reporting.module b/modules/opencase_reporting/opencase_reporting.module index 36383cf..2d3b018 100644 --- a/modules/opencase_reporting/opencase_reporting.module +++ b/modules/opencase_reporting/opencase_reporting.module @@ -23,18 +23,6 @@ function opencase_reporting_help($route_name, RouteMatchInterface $route_match) } } -/** - * Implements hook_theme(). - */ -function opencase_reporting_theme() { - return array( - 'opencase_reporting_presets' => array( - 'variables' => array('presets' => array()), - 'template' => 'block--opencase-reporting-presets', - ), - ); -} - /** * Implements hook_page_attachments * diff --git a/modules/opencase_reporting/src/Entity/OpenCaseReport.php b/modules/opencase_reporting/src/Entity/OpenCaseReport.php new file mode 100644 index 0000000..d5f0fe3 --- /dev/null +++ b/modules/opencase_reporting/src/Entity/OpenCaseReport.php @@ -0,0 +1,57 @@ +t('Are you sure you want to delete %name?', ['%name' => $this->entity->label()]); + } + + /** + * {@inheritdoc} + */ + public function getCancelUrl() { + return new Url('entity.opencase_report.collection'); + } + + /** + * {@inheritdoc} + */ + public function getConfirmText() { + return $this->t('Delete'); + } + + /** + * {@inheritdoc} + */ + public function submitForm(array &$form, FormStateInterface $form_state) { + $this->entity->delete(); + + drupal_set_message( + $this->t('content @type: deleted @label.', + [ + '@type' => $this->entity->bundle(), + '@label' => $this->entity->label(), + ] + ) + ); + + $form_state->setRedirectUrl($this->getCancelUrl()); + } + +} diff --git a/modules/opencase_reporting/src/Form/OpenCaseReportForm.php b/modules/opencase_reporting/src/Form/OpenCaseReportForm.php new file mode 100644 index 0000000..c72bf39 --- /dev/null +++ b/modules/opencase_reporting/src/Form/OpenCaseReportForm.php @@ -0,0 +1,65 @@ +entity; + $form['label'] = [ + '#type' => 'textfield', + '#title' => $this->t('Label'), + '#maxlength' => 255, + '#default_value' => $opencase_report->label(), + '#description' => $this->t("Label for the OpenCase Report."), + '#required' => TRUE, + ]; + + $form['id'] = [ + '#type' => 'machine_name', + '#default_value' => $opencase_report->id(), + '#machine_name' => [ + 'exists' => '\Drupal\opencase_reporting\Entity\OpenCaseReport::load', + ], + '#disabled' => !$opencase_report->isNew(), + ]; + + /* You will need additional form elements for your custom properties. */ + + return $form; + } + + /** + * {@inheritdoc} + */ + public function save(array $form, FormStateInterface $form_state) { + $opencase_report = $this->entity; + $status = $opencase_report->save(); + + switch ($status) { + case SAVED_NEW: + drupal_set_message($this->t('Created the %label OpenCase Report.', [ + '%label' => $opencase_report->label(), + ])); + break; + + default: + drupal_set_message($this->t('Saved the %label OpenCase Report.', [ + '%label' => $opencase_report->label(), + ])); + } + $form_state->setRedirectUrl($opencase_report->toUrl('collection')); + } + +} diff --git a/modules/opencase_reporting/src/OpenCaseReportHtmlRouteProvider.php b/modules/opencase_reporting/src/OpenCaseReportHtmlRouteProvider.php new file mode 100644 index 0000000..5a858e7 --- /dev/null +++ b/modules/opencase_reporting/src/OpenCaseReportHtmlRouteProvider.php @@ -0,0 +1,28 @@ +t('OpenCase Report'); + $header['id'] = $this->t('Machine name'); + return $header + parent::buildHeader(); + } + + /** + * {@inheritdoc} + */ + public function buildRow(EntityInterface $entity) { + $row['label'] = $entity->label(); + $row['id'] = $entity->id(); + // You probably want a few more properties here... + return $row + parent::buildRow($entity); + } + +} diff --git a/modules/opencase_reporting/src/Plugin/Block/Presets.php b/modules/opencase_reporting/src/Plugin/Block/Presets.php deleted file mode 100644 index e9fb6d3..0000000 --- a/modules/opencase_reporting/src/Plugin/Block/Presets.php +++ /dev/null @@ -1,29 +0,0 @@ - array(array('title'=>'me and you', 'basis'=>'actors', 'filter'=>'&f%5B0%5D=actor_type%3Afat&f%5B1%5D=created%3A2018-09'), array('title'=>'them', 'basis'=>'actors')), - '#theme' => 'opencase_reporting_presets' - ); - } -} diff --git a/modules/opencase_reporting/templates/block--opencase-reporting-presets.html.twig b/modules/opencase_reporting/templates/block--opencase-reporting-presets.html.twig deleted file mode 100644 index 322feaa..0000000 --- a/modules/opencase_reporting/templates/block--opencase-reporting-presets.html.twig +++ /dev/null @@ -1,5 +0,0 @@ -
- - - -