diff --git a/web/themes/asc_bootstrap/asc_bootstrap.theme b/web/themes/asc_bootstrap/asc_bootstrap.theme index dee8ebcc9b9bd3d30d0c69d657e70c1363661619..ed531369aced9a1f484edb9eb357686c0feb2207 100755 --- a/web/themes/asc_bootstrap/asc_bootstrap.theme +++ b/web/themes/asc_bootstrap/asc_bootstrap.theme @@ -70,7 +70,7 @@ function asc_bootstrap_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $ /* * events and news filters */ - if (($form['#id'] == 'views-exposed-form-events-page-1')||($form['#id'] == 'views-exposed-form-news-page-1')) { + if (($form['#id'] == 'views-exposed-form-events-page-1')||($form['#id'] == 'views-exposed-form-news-page-1')||($form['#id'] == 'views-exposed-form-research-project-directory-page-1')) { /* * add new HTML content to filters (headers and spacer) * and setting weights for where they should appear in the form hierarchy @@ -117,6 +117,32 @@ function asc_bootstrap_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $ if(count($form['field_news_terms_2_target_id']['#options']) == 1) { $form['field_news_terms_2_target_id']['#access'] = FALSE; } + + if(count($form['field_research_departments_target_id']['#options']) == 1) { + $form['field_research_departments_target_id']['#access'] = FALSE; + } + + if(count($form['field_research_other_target_id']['#options']) == 1) { + $form['field_research_other_target_id']['#access'] = FALSE; + } + + if(count($form['field_research_year_target_id']['#options']) == 1) { + $form['field_research_year_target_id']['#access'] = FALSE; + } + /* + * research filters - setting default value on select box to taxonomy vocabulary + */ + if(count($form['field_research_departments_target_id']['#options']['#value']) == "All") { + $form['field_research_departments_target_id']['#options']['All'] = $form['#info']['filter-field_research_departments_target_id']['label']; + } + + if(count($form['field_research_other_target_id']['#options']['#value']) == "All") { + $form['field_research_other_target_id']['#options']['All'] = $form['#info']['filter-field_research_other_target_id']['label']; + } + + if(count($form['field_research_year_target_id']['#options']['#value']) == "All") { + $form['field_research_year_target_id']['#options']['All'] = $form['#info']['filter-field_research_year_target_id']['label']; + } } /* diff --git a/web/themes/asc_bootstrap/assets/sass/components/_research.scss b/web/themes/asc_bootstrap/assets/sass/components/_research.scss index e6214fd5fc95992cfcf6758d0e3e806e830eff1f..58bcd467583e76d9d0a9378db46680665a16ef2b 100644 --- a/web/themes/asc_bootstrap/assets/sass/components/_research.scss +++ b/web/themes/asc_bootstrap/assets/sass/components/_research.scss @@ -5,6 +5,117 @@ // Research // -------------------------------------------------- -//## Research. +//## Research Directory. +.view-research-project-directory { + table { + + .views-field-title { + width: 35% + } + } +} + +// -------------------------------------------------- + +//## Research Article. + +.page-node-type-research { + + article { + margin-bottom: 16px; + } + + .page-header { + display: none; + } + + .research-title-wrapper { + padding-left: 0; + } + + .research-cont { + padding-left: 0; + + .field--name-field-research-body { + margin: 20px 0 40px; + } + } + + .research-users { + margin-bottom: 15px; + + h2 { + line-height: 0; + font-size: 18px; + } + } + + .taxonomy-research-heading { + width: 100%; + padding-top: 15px; + + h3 { + line-height: 0; + font-size: 18px; + } + } + +} + +.research { + + .field--name-field-research-body { + margin-bottom: 20px; + } +} + + + +// -------------------------------------------------- + +//## Research Project Gallery. +.view-research-project-gallery { + + .row { + display: flex; + margin-bottom: 40px; + } + + .form-actions { + .button { + text-transform: uppercase; + border-radius: 0; + } + } + + .view-filters { + background: #D8D8D8; + padding: 10px; + } +} + +.page-node-type-research-project-gallery { + + article { + margin-bottom: 16px; + } + + .page-header { + display: none; + } + + .rgall-title-wrapper { + padding-left: 0; + } + + .rgall-cont { + padding-left: 0; + + .field--name-body { + margin: 20px 0 40px; + } + } + +} diff --git a/web/themes/asc_bootstrap/assets/sass/components/_webforms.scss b/web/themes/asc_bootstrap/assets/sass/components/_webforms.scss index 132a0b62017987d2f4ba1d9099c8356f29e079a6..7bf66139ad9c98f470f81ef0014977e8b7240b91 100644 --- a/web/themes/asc_bootstrap/assets/sass/components/_webforms.scss +++ b/web/themes/asc_bootstrap/assets/sass/components/_webforms.scss @@ -18,3 +18,12 @@ textarea.form-control { label { width: 100%; } + +form { + + .form-required:after { + background-size: 7px 7px; + height: 7px; + width: 7px; + } +} diff --git a/web/themes/asc_bootstrap/css/style.css b/web/themes/asc_bootstrap/css/style.css index e923a54de280b596b85fe279c5cd12b3ac20a33a..4518ccb193ebf4dd9b5f13bacac807d8354f7eb1 100644 --- a/web/themes/asc_bootstrap/css/style.css +++ b/web/themes/asc_bootstrap/css/style.css @@ -11953,6 +11953,93 @@ article.news-story { #block-views-block-people-directory-block-1 .views-field.views-field-mail a { font-size: smaller; }*/ +/* line 14, ../assets/sass/components/_research.scss */ +.view-research-project-directory table .views-field-title { + width: 35%; +} + +/* line 26, ../assets/sass/components/_research.scss */ +.page-node-type-research article { + margin-bottom: 16px; +} +/* line 30, ../assets/sass/components/_research.scss */ +.page-node-type-research .page-header { + display: none; +} +/* line 34, ../assets/sass/components/_research.scss */ +.page-node-type-research .research-title-wrapper { + padding-left: 0; +} +/* line 38, ../assets/sass/components/_research.scss */ +.page-node-type-research .research-cont { + padding-left: 0; +} +/* line 41, ../assets/sass/components/_research.scss */ +.page-node-type-research .research-cont .field--name-field-research-body { + margin: 20px 0 40px; +} +/* line 46, ../assets/sass/components/_research.scss */ +.page-node-type-research .research-users { + margin-bottom: 15px; +} +/* line 49, ../assets/sass/components/_research.scss */ +.page-node-type-research .research-users h2 { + line-height: 0; + font-size: 18px; +} +/* line 55, ../assets/sass/components/_research.scss */ +.page-node-type-research .taxonomy-research-heading { + width: 100%; + padding-top: 15px; +} +/* line 59, ../assets/sass/components/_research.scss */ +.page-node-type-research .taxonomy-research-heading h3 { + line-height: 0; + font-size: 18px; +} + +/* line 69, ../assets/sass/components/_research.scss */ +.research .field--name-field-research-body { + margin-bottom: 20px; +} + +/* line 81, ../assets/sass/components/_research.scss */ +.view-research-project-gallery .row { + display: flex; + margin-bottom: 40px; +} +/* line 87, ../assets/sass/components/_research.scss */ +.view-research-project-gallery .form-actions .button { + text-transform: uppercase; + border-radius: 0; +} +/* line 93, ../assets/sass/components/_research.scss */ +.view-research-project-gallery .view-filters { + background: #D8D8D8; + padding: 10px; +} + +/* line 101, ../assets/sass/components/_research.scss */ +.page-node-type-research-project-gallery article { + margin-bottom: 16px; +} +/* line 105, ../assets/sass/components/_research.scss */ +.page-node-type-research-project-gallery .page-header { + display: none; +} +/* line 109, ../assets/sass/components/_research.scss */ +.page-node-type-research-project-gallery .rgall-title-wrapper { + padding-left: 0; +} +/* line 113, ../assets/sass/components/_research.scss */ +.page-node-type-research-project-gallery .rgall-cont { + padding-left: 0; +} +/* line 116, ../assets/sass/components/_research.scss */ +.page-node-type-research-project-gallery .rgall-cont .field--name-body { + margin: 20px 0 40px; +} + /* line 1, ../assets/sass/components/_simplemenu.scss */ body { overflow-x: hidden; @@ -12251,6 +12338,13 @@ label { width: 100%; } +/* line 24, ../assets/sass/components/_webforms.scss */ +form .form-required:after { + background-size: 7px 7px; + height: 7px; + width: 7px; +} + /* line 9, ../assets/sass/components/_wysiwyg.scss */ .align-right .field--name-field-media-image { padding: 0 0 15px 15px; diff --git a/web/themes/asc_bootstrap/templates/node/node--research-project-gallery.html.twig b/web/themes/asc_bootstrap/templates/node/node--research-project-gallery.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..77fdd0cf93e808ccaff6d33568938d3318775a87 --- /dev/null +++ b/web/themes/asc_bootstrap/templates/node/node--research-project-gallery.html.twig @@ -0,0 +1,137 @@ +{# +/** + * @file + * Theme override to display a Research Project Gallery node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + Only "getter" methods (method names starting with "get", "has", or "is") + and a few common methods such as "id" and "label" are available. Calling + other methods (such as node.delete) will result in an exception. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @ingroup templates + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} +{% + set classes = [ + node.bundle|clean_class, + node.isPromoted() ? 'is-promoted', + node.isSticky() ? 'is-sticky', + not node.isPublished() ? 'is-unpublished', + view_mode ? view_mode|clean_class, + 'clearfix', + ] +%} +<article{{ attributes.addClass(classes) }}> +<div class="col-sm-12 rgall-title-wrapper"> + <div class="col-xs-12 col-sm-8 rgall-title-wrapper"> + + <h1 class="rgall-title"> + {{ label }} + </h1> + + {{ title_prefix }} + {% if not page %} + <h2{{ title_attributes }}> + <a href="{{ url }}" rel="bookmark">{{ label }}</a> + </h2> + {% endif %} + {{ title_suffix }} + {# + {% if display_submitted %} + <footer> + {{ author_picture }} + <div{{ author_attributes.addClass('author') }}> + {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %} + {{ metadata }} + </div> + </footer> + {% endif %} + #} + </div> +</div> + + <div class="col-sm-4 col-sm-push-8 rgall-img"> + {{ content.field_research_gallery_image }} + </div> + <div{{ content_attributes.addClass('content') }}> + <div class="col-sm-8 col-sm-pull-4 rgall-cont"> + {{ content.body }} + + {% if content.research_gallery_tags.0 != '' %} + <div class="taxonomy-rgall-heading"> + <h2>Project Tags:</h2> + </div> + {% endif %} + + {% for item in content.research_gallery_tags %} + {% if item['#title'] %} + <div class="taxonomy-rgall"> + <a href="/news?field_news_terms_1_target_id={{ item['#url']|render|split('/')|last }}"> + {{ item['#title'] }} + </a> + </div> + {% endif %} + {% endfor %} + + <hr/> + {% if node.field_research_gallery_social.value == 1 %} + {{ content.field_research_gallery_social }} + {% endif %} + </div> + </div> + +</article> diff --git a/web/themes/asc_bootstrap/templates/node/node--research.html.twig b/web/themes/asc_bootstrap/templates/node/node--research.html.twig index b6be68adb9b9e6307dbb2d1be7e0360e368f5f30..2cbc3e8afd7431947640bb48a1d6fd37ec9e6352 100644 --- a/web/themes/asc_bootstrap/templates/node/node--research.html.twig +++ b/web/themes/asc_bootstrap/templates/node/node--research.html.twig @@ -1,7 +1,7 @@ {# /** * @file - * Theme override to display a research article node. + * Theme override to display a Research Project node. * * Available variables: * - node: The node entity with limited access to object properties and methods. @@ -76,11 +76,87 @@ ] %} <article{{ attributes.addClass(classes) }}> +<div class="col-sm-12 research-title-wrapper"> + <div class="col-xs-12 col-sm-8 research-title-wrapper"> + <h1 class="research-title"> + {{ label }} + </h1> + + {{ title_prefix }} + {% if not page %} + <h2{{ title_attributes }}> + <a href="{{ url }}" rel="bookmark">{{ label }}</a> + </h2> + {% endif %} + {{ title_suffix }} + {# + {% if display_submitted %} + <footer> + {{ author_picture }} + <div{{ author_attributes.addClass('author') }}> + {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %} + {{ metadata }} + </div> + </footer> + {% endif %} + #} + </div> +</div> + + <div class="col-sm-4 col-sm-push-8 research-img"> + {# content.field_research_image2 #} + </div> <div{{ content_attributes.addClass('content') }}> - <div class="col-sm-12 research-cont"> - {{ content }} + <div class="col-sm-8 col-sm-pull-4 research-cont"> + <div class="research-users"> + <h2>Investigators:</h2> + {{content.field_research_user}} + </div> + {{ content.field_research_body }} + + {% if (content.field_research_departments.0 != '') or (content.field_research_other.0 != '') or (content.field_research_year.0 != '') %} + <div class="taxonomy-research-heading"> + <h3>Research Filters:</h3> + </div> + {% endif %} + + {% for item in content.field_research_year %} + {% if item['#title'] %} + <div class="taxonomy-research"> + <a href="/research-project-directory?field_research_year_target_id={{ item['#url']|render|split('/')|last }}"> + {{ item['#title'] }} + </a> + </div> + {% endif %} + {% endfor %} + + {% for item in content.field_research_departments %} + {% if item['#title'] %} + <div class="taxonomy-research"> + <a href="/research-project-directory?field_research_departments_target_id={{ item['#url']|render|split('/')|last }}"> + {{ item['#title'] }} + </a> + </div> + {% endif %} + {% endfor %} + + {% for item in content.field_research_other %} + {% if item['#title'] %} + <div class="taxonomy-research"> + <a href="/research-project-directory?field_research_other_target_id={{ item['#url']|render|split('/')|last }}"> + {{ item['#title'] }} + </a> + </div> + {% endif %} + {% endfor %} + + <hr/> + {% if node.field_research_social_media.value == 1 %} + {{ content.field_research_social_media }} + {% endif %} </div> </div> </article> +