From 98d51471ddf6e56a3db2914956b5b1604d9eefa1 Mon Sep 17 00:00:00 2001
From: Konstantinos Platis <konstantinos.platis@cern.ch>
Date: Fri, 31 May 2019 15:37:19 +0000
Subject: [PATCH] Added Event Grid as display format

---
 assets/css/event-grid.css            |  6 +++++
 assets/scss/event-grid.scss          |  9 +++++++
 cern_display_formats.libraries.yml   |  8 +++++-
 cern_display_formats.module          |  3 +++
 src/Plugin/views/style/EventGrid.php | 38 ++++++++++++++++++++++++++++
 5 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 assets/css/event-grid.css
 create mode 100644 assets/scss/event-grid.scss
 create mode 100644 src/Plugin/views/style/EventGrid.php

diff --git a/assets/css/event-grid.css b/assets/css/event-grid.css
new file mode 100644
index 0000000..517c949
--- /dev/null
+++ b/assets/css/event-grid.css
@@ -0,0 +1,6 @@
+.event-grid .views-row {
+  height: 297px; }
+  .event-grid .views-row .agenda-box-pattern {
+    height: 100%; }
+
+/*# sourceMappingURL=event-grid.css.map */
diff --git a/assets/scss/event-grid.scss b/assets/scss/event-grid.scss
new file mode 100644
index 0000000..50471a5
--- /dev/null
+++ b/assets/scss/event-grid.scss
@@ -0,0 +1,9 @@
+.event-grid{
+  .views-row{
+    height: 297px;
+
+    .agenda-box-pattern{
+      height: 100%;
+    }
+  }
+}
\ No newline at end of file
diff --git a/cern_display_formats.libraries.yml b/cern_display_formats.libraries.yml
index bf19ffe..5d281eb 100644
--- a/cern_display_formats.libraries.yml
+++ b/cern_display_formats.libraries.yml
@@ -8,4 +8,10 @@ featured-banner-stylesheets:
   version: 1.x
   css:
     layout:
-      assets/css/featured-banner.css: {}
\ No newline at end of file
+      assets/css/featured-banner.css: {}
+
+event-grid-stylesheets:
+  version: 1.x
+  css:
+    layout:
+      assets/css/event-grid.css: {}
\ No newline at end of file
diff --git a/cern_display_formats.module b/cern_display_formats.module
index 0e6734d..1c8dc92 100755
--- a/cern_display_formats.module
+++ b/cern_display_formats.module
@@ -55,5 +55,8 @@ function cern_display_formats_views_post_render(ViewExecutable $view, &$output,
 		$view->display_handler->setOption('css_class', 'accordion-cern');
 	} elseif ($view->display_handler->view->style_plugin->getPluginId() == "card_grid") {
 		$view->display_handler->setOption('css_class', 'cern-view-display-page cern-view-display-resources');
+	} elseif ($view->display_handler->view->style_plugin->getPluginId() == "event_grid") {
+		$view->display_handler->setOption('css_class', 'event-grid');
+		$output['#attached']['library'][] = "cern_display_formats/event-grid-stylesheets";	//attaches the stylesheet
 	}
 }
\ No newline at end of file
diff --git a/src/Plugin/views/style/EventGrid.php b/src/Plugin/views/style/EventGrid.php
new file mode 100644
index 0000000..af00f81
--- /dev/null
+++ b/src/Plugin/views/style/EventGrid.php
@@ -0,0 +1,38 @@
+<?php
+
+
+namespace Drupal\cern_display_formats\Plugin\views\style;
+
+use Drupal\core\form\FormStateInterface;
+use Drupal\views\Plugin\views\style\DefaultStyle;
+
+/**
+ * Style plugin rendering as Event Grid
+ *
+ * @ingroup views_style_plugins
+ *
+ * @ViewsStyle(
+ *   id = "event_grid",
+ *   title = @Translation("Event Grid"),
+ *   help = @Translation("Displays content as an Event Grid"),
+ *   theme = "views_view_unformatted",
+ *   display_types = {"normal"}
+ * )
+ */
+class EventGrid extends DefaultStyle {
+
+	protected $usesRowPlugin = true;
+
+	/**
+	 * Does the style plugin support custom css class for the rows.
+	 *
+	 * @var bool
+	 */
+	protected $usesRowClass = true;
+
+	protected $usesoptions = true;
+
+	protected $renderFields = true;
+
+
+}
\ No newline at end of file
-- 
GitLab