├── sass ├── _fonts.scss ├── _sidebar.scss ├── _variables.scss ├── _su.scss ├── _susy.scss ├── _footer.scss ├── susy │ ├── _su.scss │ ├── output │ │ ├── _float.scss │ │ ├── _support.scss │ │ ├── _shared.scss │ │ ├── shared │ │ │ ├── _output.scss │ │ │ ├── _margins.scss │ │ │ ├── _padding.scss │ │ │ ├── _inspect.scss │ │ │ ├── _container.scss │ │ │ ├── _background.scss │ │ │ └── _direction.scss │ │ ├── support │ │ │ ├── _clearfix.scss │ │ │ ├── _prefix.scss │ │ │ ├── _rem.scss │ │ │ ├── _box-sizing.scss │ │ │ ├── _background.scss │ │ │ └── _support.scss │ │ └── float │ │ │ ├── _container.scss │ │ │ ├── _isolate.scss │ │ │ ├── _end.scss │ │ │ └── _span.scss │ ├── language │ │ ├── susy │ │ │ ├── _validation.scss │ │ │ ├── _context.scss │ │ │ ├── _box-sizing.scss │ │ │ ├── _grids.scss │ │ │ ├── _isolate.scss │ │ │ ├── _padding.scss │ │ │ ├── _container.scss │ │ │ ├── _margins.scss │ │ │ ├── _gallery.scss │ │ │ └── _rows.scss │ │ └── _susy.scss │ └── su │ │ ├── _validation.scss │ │ ├── _settings.scss │ │ ├── _utilities.scss │ │ └── _grid.scss ├── _movies.scss ├── style.scss ├── _homepage.scss ├── _reset.scss ├── _header.scss ├── _globals.scss └── _mixins.scss ├── images ├── Put your images here.txt ├── hero.jpg └── logo.png ├── lib └── main.js ├── endymion.libraries.yml ├── partials ├── footer.html.twig └── header.html.twig ├── templates ├── views │ ├── views-view-mapping-test.html.twig │ ├── views-view-row-opml.html.twig │ ├── views-exposed-form.html.twig │ ├── views-view-grouping.html.twig │ ├── views-view-opml.html.twig │ ├── views-view-field.html.twig │ ├── views-view-row-rss.html.twig │ ├── views-view-unformatted.html.twig │ ├── views-view-rss.html.twig │ ├── views-view-list.html.twig │ ├── views-view-summary.html.twig │ ├── views-view-summary-unformatted.html.twig │ ├── views-mini-pager.html.twig │ ├── views-view.html.twig │ ├── views-view-fields.html.twig │ └── views-view-grid.html.twig ├── admin │ ├── image-anchor.html.twig │ ├── indentation.html.twig │ ├── language-content-settings-table.html.twig │ ├── views-ui-container.html.twig │ ├── system-config-form.html.twig │ ├── views-ui-style-plugin-table.html.twig │ ├── views-ui-view-preview-section.html.twig │ ├── authorize-report.html.twig │ ├── update-last-check.html.twig │ ├── tablesort-indicator.html.twig │ ├── block-list.html.twig │ ├── block-content-add-list.html.twig │ ├── update-report.html.twig │ ├── simpletest-result-summary.html.twig │ ├── admin-page.html.twig │ ├── views-ui-view-info.html.twig │ ├── locale-translation-last-check.html.twig │ ├── config_translation_manage_form_element.html.twig │ ├── system-admin-index.html.twig │ ├── maintenance-task-list.html.twig │ ├── views-ui-rearrange-filter-form.html.twig │ ├── color-scheme-form.html.twig │ ├── admin-block.html.twig │ ├── image-resize-summary.html.twig │ ├── image-rotate-summary.html.twig │ ├── image-crop-summary.html.twig │ ├── image-scale-summary.html.twig │ ├── admin-block-content.html.twig │ ├── views-ui-display-tab-bucket.html.twig │ ├── views-ui-display-tab-setting.html.twig │ ├── language-negotiation-configure-form.html.twig │ ├── status-report.html.twig │ ├── update-version.html.twig │ ├── views-ui-build-group-filter-form.html.twig │ ├── views-ui-expose-filter-form.html.twig │ ├── locale-translation-update-info.html.twig │ ├── field-ui-table.html.twig │ ├── system-modules-uninstall.html.twig │ ├── image-style-preview.html.twig │ ├── system-themes-page.html.twig │ ├── system-modules-details.html.twig │ └── update-project-status.html.twig ├── block │ ├── block--local-actions-block.html.twig │ ├── block--system-messages-block.html.twig │ ├── block--system-branding-block.html.twig │ ├── block.html.twig │ └── block--system-menu-block.html.twig ├── form │ ├── confirm-form.html.twig │ ├── radios.html.twig │ ├── form.html.twig │ ├── input.html.twig │ ├── datetime-form.html.twig │ ├── dropbutton-wrapper.html.twig │ ├── checkboxes.html.twig │ ├── textarea.html.twig │ ├── form-element-label.html.twig │ ├── datetime-wrapper.html.twig │ ├── container.html.twig │ ├── details.html.twig │ ├── select.html.twig │ ├── field-multiple-value-form.html.twig │ └── fieldset.html.twig ├── field │ ├── image.html.twig │ ├── file-link.html.twig │ ├── image-formatter.html.twig │ ├── responsive-image-formatter.html.twig │ ├── link-formatter-link-separate.html.twig │ ├── image-style.html.twig │ ├── field--node--uid.html.twig │ ├── field--node--title.html.twig │ ├── field--node--created.html.twig │ ├── time.html.twig │ ├── responsive-image.html.twig │ ├── field--comment.html.twig │ └── field.html.twig ├── content-edit │ ├── file-upload-help.html.twig │ ├── file-widget-multiple.html.twig │ ├── image-widget.html.twig │ ├── node-edit-form.html.twig │ ├── file-managed-file.html.twig │ ├── filter-caption.html.twig │ ├── text-format-wrapper.html.twig │ ├── filter-guidelines.html.twig │ ├── node-add-list.html.twig │ └── filter-tips.html.twig ├── misc │ ├── rdf-wrapper.html.twig │ ├── feed-icon.html.twig │ ├── rdf-metadata.html.twig │ ├── progress-bar.html.twig │ └── status-messages.html.twig ├── navigation │ ├── menu-local-action.html.twig │ ├── vertical-tabs.html.twig │ ├── menu-local-task.html.twig │ ├── breadcrumb.html.twig │ ├── book-all-books-block.html.twig │ ├── menu-local-tasks.html.twig │ ├── book-tree.html.twig │ ├── menu--account.html.twig │ ├── menu.html.twig │ ├── toolbar.html.twig │ ├── menu--toolbar.html.twig │ ├── book-navigation.html.twig │ └── links.html.twig ├── layout │ ├── region.html.twig │ ├── page.html.twig │ ├── maintenance-page.html.twig │ ├── book-export-html.html.twig │ ├── install-page.html.twig │ └── html.html.twig ├── content │ ├── mark.html.twig │ ├── book-node-export-html.html.twig │ ├── aggregator-item.html.twig │ ├── page-title.html.twig │ ├── taxonomy-term.html.twig │ └── search-result.html.twig ├── dataset │ ├── forums.html.twig │ ├── aggregator-feed.html.twig │ ├── forum-icon.html.twig │ ├── item-list.html.twig │ └── forum-list.html.twig └── user │ ├── forum-submitted.html.twig │ ├── user.html.twig │ └── username.html.twig ├── README.md ├── endymion.info.yml ├── node--movies.html.twig ├── page--front.html.twig ├── package.json └── gulpfile.js /sass/_fonts.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sass/_sidebar.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sass/_variables.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/Put your images here.txt: -------------------------------------------------------------------------------- 1 | Put your images here -------------------------------------------------------------------------------- /sass/_su.scss: -------------------------------------------------------------------------------- 1 | // Su 2 | // == 3 | 4 | @import 'susy/su'; 5 | -------------------------------------------------------------------------------- /sass/_susy.scss: -------------------------------------------------------------------------------- 1 | // Susy 2 | // ==== 3 | 4 | @import 'susy/language/susy'; 5 | -------------------------------------------------------------------------------- /images/hero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivandoric/d8theming/HEAD/images/hero.jpg -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivandoric/d8theming/HEAD/images/logo.png -------------------------------------------------------------------------------- /sass/_footer.scss: -------------------------------------------------------------------------------- 1 | .main-footer{ 2 | background: #464646; 3 | padding:40px 0; 4 | margin:60px 0 0 0; 5 | color:#fff; 6 | } -------------------------------------------------------------------------------- /sass/susy/_su.scss: -------------------------------------------------------------------------------- 1 | // Su 2 | // == 3 | 4 | @import "su/utilities"; 5 | @import "su/settings"; 6 | @import "su/validation"; 7 | @import "su/grid"; 8 | -------------------------------------------------------------------------------- /lib/main.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($) { 2 | $('#block-endymion-main-menu li').hover(function(){ 3 | $(this).find('.sub-menu').toggle(); 4 | }); 5 | }); -------------------------------------------------------------------------------- /endymion.libraries.yml: -------------------------------------------------------------------------------- 1 | global-css: 2 | css: 3 | theme: 4 | css/style.css: {} 5 | 6 | global-js: 7 | js: 8 | js/main.js: {} 9 | dependencies: 10 | - core/jquery -------------------------------------------------------------------------------- /partials/footer.html.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sass/susy/output/_float.scss: -------------------------------------------------------------------------------- 1 | // Float API 2 | // ========= 3 | 4 | @import "shared"; 5 | 6 | @import "float/container"; 7 | @import "float/span"; 8 | @import "float/end"; 9 | @import "float/isolate"; 10 | -------------------------------------------------------------------------------- /partials/header.html.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sass/_movies.scss: -------------------------------------------------------------------------------- 1 | .director{ 2 | margin-top: 50px; 3 | } 4 | 5 | .director, .actors{ 6 | strong{ 7 | font-weight: bold; 8 | font-size: 24px; 9 | } 10 | } 11 | 12 | .movie-description{ 13 | padding:20px; 14 | background: #efefef; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /sass/susy/output/_support.scss: -------------------------------------------------------------------------------- 1 | // Susy Browser Support 2 | // ==================== 3 | 4 | @import "support/support"; 5 | @import "support/prefix"; 6 | @import "support/background"; 7 | @import "support/box-sizing"; 8 | @import "support/rem"; 9 | @import "support/clearfix"; 10 | -------------------------------------------------------------------------------- /templates/views/views-view-mapping-test.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for testing the mapping row style. 5 | * 6 | * Available variables: 7 | * - element: The view content. 8 | * 9 | * @see template_preprocess_views_view_mapping_test() 10 | */ 11 | #} 12 | {{ element }} 13 | -------------------------------------------------------------------------------- /templates/admin/image-anchor.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a 3x3 grid of checkboxes for image anchors. 5 | * 6 | * Available variables: 7 | * - table: HTML for the table of image anchors. 8 | * 9 | * @see template_preprocess_image_anchor() 10 | */ 11 | #} 12 | {{ table }} 13 | -------------------------------------------------------------------------------- /templates/block/block--local-actions-block.html.twig: -------------------------------------------------------------------------------- 1 | {% extends "block.html.twig" %} 2 | {# 3 | /** 4 | * @file 5 | * Theme override for local actions (primary admin actions.) 6 | */ 7 | #} 8 | {% block content %} 9 | {% if content %} 10 | 11 | {% endif %} 12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /sass/susy/output/_shared.scss: -------------------------------------------------------------------------------- 1 | // Shared API 2 | // ========== 3 | 4 | @import "support"; 5 | 6 | @import "shared/inspect"; 7 | @import "shared/output"; 8 | @import "shared/direction"; 9 | @import "shared/background"; 10 | @import "shared/container"; 11 | @import "shared/margins"; 12 | @import "shared/padding"; 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /templates/form/confirm-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for confirm form. 5 | * 6 | * By default this does not alter the appearance of a form at all, 7 | * but is provided as a convenience for themers. 8 | * 9 | * Available variables: 10 | * - form: The confirm form. 11 | */ 12 | #} 13 | {{ form }} 14 | -------------------------------------------------------------------------------- /templates/views/views-view-row-opml.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display an item in a views OPML feed. 5 | * 6 | * Available variables: 7 | * - attributes: Attributes for outline element. 8 | * 9 | * @see template_preprocess_views_view_row_opml() 10 | */ 11 | #} 12 | 13 | -------------------------------------------------------------------------------- /sass/susy/output/shared/_output.scss: -------------------------------------------------------------------------------- 1 | // Output 2 | // ====== 3 | 4 | // Output 5 | // ------ 6 | // Output CSS with proper browser support. 7 | // - $styles : 8 | @mixin output( 9 | $styles 10 | ) { 11 | @each $prop, $val in $styles { 12 | @include susy-support($prop, $val); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /templates/field/image.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override of an image. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the img tag. 8 | * - style_name: (optional) The name of the image style applied. 9 | * 10 | * @see template_preprocess_image() 11 | */ 12 | #} 13 | 14 | -------------------------------------------------------------------------------- /templates/content-edit/file-upload-help.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display help text for file fields. 5 | * 6 | * Available variables: 7 | * - descriptions: Lines of help text for uploading a file. 8 | * 9 | * @see template_preprocess_file_upload_help() 10 | */ 11 | #} 12 | {{ descriptions|safe_join('
') }} 13 | -------------------------------------------------------------------------------- /templates/field/file-link.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a link to a file. 5 | * 6 | * Available variables: 7 | * - attributes: The HTML attributes for the containing element. 8 | * - link: A link to the file. 9 | * 10 | * @see template_preprocess_file_link() 11 | */ 12 | #} 13 | {{ link }} 14 | -------------------------------------------------------------------------------- /templates/block/block--system-messages-block.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the messages block. 5 | * 6 | * Removes wrapper elements from block so that empty block does not appear when 7 | * there are no messages. 8 | * 9 | * Available variables: 10 | * - content: The content of this block. 11 | */ 12 | #} 13 | {{ content }} 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a repository for Drupal 8 Theming video tutorial series. You can [check out the series here](http://watch-learn.com/video-tutorials/tags/drupal-8/). 2 | 3 | You can go to [releases](https://github.com/ivandoric/d8theming/releases) to download the code for most of the videos of the series. 4 | Youtube Channel (https://www.youtube.com/c/WatchandLearnTutorials) 5 | -------------------------------------------------------------------------------- /templates/form/radios.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a 'radios' #type form element. 5 | * 6 | * Available variables 7 | * - attributes: A list of HTML attributes for the wrapper element. 8 | * - children: The rendered radios. 9 | * 10 | * @see template_preprocess_radios() 11 | */ 12 | #} 13 | {{ children }} 14 | -------------------------------------------------------------------------------- /templates/misc/rdf-wrapper.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for wrapping content with RDF attributes. 5 | * 6 | * Available variables: 7 | * - content: The content being wrapped with RDF attributes. 8 | * - attributes: HTML attributes, including RDF attributes for wrapper element. 9 | */ 10 | #} 11 | {{ content }} 12 | -------------------------------------------------------------------------------- /templates/form/form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a 'form' element. 5 | * 6 | * Available variables 7 | * - attributes: A list of HTML attributes for the wrapper element. 8 | * - children: The child elements of the form. 9 | * 10 | * @see template_preprocess_form() 11 | */ 12 | #} 13 | 14 | {{ children }} 15 | 16 | -------------------------------------------------------------------------------- /templates/form/input.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for an 'input' #type form element. 5 | * 6 | * Available variables: 7 | * - attributes: A list of HTML attributes for the input element. 8 | * - children: Optional additional rendered elements. 9 | * 10 | * @see template_preprocess_input() 11 | */ 12 | #} 13 | {{ children }} 14 | -------------------------------------------------------------------------------- /templates/navigation/menu-local-action.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a single local action link. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the wrapper element. 8 | * - link: A rendered link element. 9 | * 10 | * @see template_preprocess_menu_local_action() 11 | */ 12 | #} 13 | {{ link }} 14 | -------------------------------------------------------------------------------- /sass/style.scss: -------------------------------------------------------------------------------- 1 | /* Vendor */ 2 | @import "susy"; 3 | @import "su"; 4 | 5 | 6 | /* Setup */ 7 | @import "reset"; 8 | @import "foundation"; 9 | @import "mixins"; 10 | @import "variables"; 11 | @import "fonts"; 12 | @import "globals"; 13 | 14 | 15 | 16 | @import "header"; 17 | @import "homepage"; 18 | @import "sidebar"; 19 | @import "footer"; 20 | @import "movies"; 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_validation.scss: -------------------------------------------------------------------------------- 1 | // Validation 2 | // ========== 3 | 4 | 5 | // Validate Column Math 6 | // -------------------- 7 | @function valid-column-math( 8 | $math, 9 | $column-width 10 | ) { 11 | @if $math == static and not($column-width) { 12 | @warn 'Static math requires a valid column-width setting.'; 13 | } @else { 14 | @return $column-width; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /templates/admin/indentation.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a set of indentation divs. 5 | * 6 | * These
tags are used for drag and drop tables. 7 | * 8 | * Available variables: 9 | * - size: Optional. The number of indentations to create. 10 | */ 11 | #} 12 | {% for i in 1..size if size > 0 %}
 
{% endfor %} 13 | -------------------------------------------------------------------------------- /templates/content-edit/file-widget-multiple.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a multi file form widget. 5 | * 6 | * Available variables: 7 | * - table: Table of previously uploaded files. 8 | * - element: The form element for uploading another file. 9 | * 10 | * @see template_preprocess_file_widget_multiple() 11 | */ 12 | #} 13 | {{ table }} 14 | {{ element }} 15 | -------------------------------------------------------------------------------- /templates/form/datetime-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override of a datetime form element. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the datetime form element. 8 | * - content: The datelist form element to be output. 9 | * 10 | * @see template_preprocess_datetime_form() 11 | */ 12 | #} 13 | 14 | {{ content }} 15 |
16 | -------------------------------------------------------------------------------- /templates/admin/language-content-settings-table.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a language content settings table. 5 | * 6 | * Available variables: 7 | * - title: The title of the table. 8 | * - build: Table of content language settings. 9 | * 10 | * @see template_preprocess_language_content_settings_table() 11 | */ 12 | #} 13 |

{{ title }}

14 | {{ build }} 15 | -------------------------------------------------------------------------------- /templates/navigation/vertical-tabs.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for vertical tabs. 5 | * 6 | * Available variables 7 | * - attributes: A list of HTML attributes for the wrapper element. 8 | * - children: The rendered checkboxes. 9 | * 10 | * @see template_preprocess_vertical_tabs() 11 | */ 12 | #} 13 | {{ children }} 14 | -------------------------------------------------------------------------------- /templates/admin/views-ui-container.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a generic views UI container/wrapper. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes to apply to the container element. 8 | * - children: The remaining elements such as dropbuttons and tabs. 9 | * 10 | * @see template_preprocess_views_ui_container() 11 | */ 12 | #} 13 | {{ children }} 14 | -------------------------------------------------------------------------------- /sass/susy/output/support/_clearfix.scss: -------------------------------------------------------------------------------- 1 | // Susy Fallback Clearfix 2 | // ====================== 3 | 4 | 5 | // Clearfix 6 | // -------- 7 | // Check for an existing support mixin, or provide a simple fallback. 8 | @mixin susy-clearfix { 9 | @if susy-support(clearfix, (mixin: clearfix)) { 10 | @include clearfix; 11 | } @else { 12 | &:after { 13 | content: " "; 14 | display: block; 15 | clear: both; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /sass/susy/output/float/_container.scss: -------------------------------------------------------------------------------- 1 | // Float Container API 2 | // =================== 3 | 4 | // Float Container 5 | // --------------- 6 | // - [$width] : 7 | // - [$justify] : left | center | right 8 | // - [$math] : fluid | static 9 | @mixin float-container( 10 | $width, 11 | $justify: auto auto, 12 | $property: max-width 13 | ) { 14 | @include susy-clearfix; 15 | @include container-output($width, $justify, $property); 16 | } 17 | -------------------------------------------------------------------------------- /templates/field/image-formatter.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a formatted image field. 5 | * 6 | * Available variables: 7 | * - image: A collection of image data. 8 | * - image_style: An optional image style. 9 | * - url: An optional URL the image can be linked to. 10 | * 11 | * @see template_preprocess_image_formatter() 12 | */ 13 | #} 14 | {% if url %} 15 | {{ image }} 16 | {% else %} 17 | {{ image }} 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /sass/susy/output/float/_isolate.scss: -------------------------------------------------------------------------------- 1 | // Float Isolation API 2 | // =================== 3 | 4 | // Isolate Output 5 | // -------------- 6 | // - $push : 7 | // - [$flow] : ltr | rtl 8 | @mixin isolate-output( 9 | $push, 10 | $flow: map-get($susy-defaults, flow) 11 | ) { 12 | $to: to($flow); 13 | $from: from($flow); 14 | 15 | $output: ( 16 | float: $from, 17 | margin-#{$from}: $push, 18 | margin-#{$to}: -100%, 19 | ); 20 | 21 | @include output($output); 22 | } 23 | -------------------------------------------------------------------------------- /sass/susy/output/shared/_margins.scss: -------------------------------------------------------------------------------- 1 | // Margins API 2 | // =========== 3 | 4 | // Margin Output 5 | // ------------- 6 | // - $before : 7 | // - $after : 8 | // - [$flow] : ltr | rtl 9 | @mixin margin-output( 10 | $before, 11 | $after, 12 | $flow: map-get($susy-defaults, flow) 13 | ) { 14 | $to: to($flow); 15 | $from: from($flow); 16 | 17 | $output: ( 18 | margin-#{$from}: $before, 19 | margin-#{$to}: $after, 20 | ); 21 | 22 | @include output($output); 23 | } 24 | -------------------------------------------------------------------------------- /sass/susy/output/support/_prefix.scss: -------------------------------------------------------------------------------- 1 | // Susy Prefix 2 | // =========== 3 | 4 | // Prefix 5 | // ------ 6 | // Output simple prefixed properties. 7 | // - $prop : 8 | // - $val : 9 | // - [$prefix] : 10 | @mixin susy-prefix( 11 | $prop, 12 | $val, 13 | $prefix: official 14 | ) { 15 | @each $fix in $prefix { 16 | $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}'); 17 | @include susy-rem($fix, $val); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /endymion.info.yml: -------------------------------------------------------------------------------- 1 | name: Endymion 2 | description: Drupal 8 Starter Theme 3 | type: theme 4 | core: 8.x 5 | libraries: 6 | - endymion/global-css 7 | - endymion/global-js 8 | stylesheets-remove: 9 | - core/themes/stable/css/views/views.module.css 10 | - core/themes/stable/css/system/components/align.module.css 11 | 12 | regions: 13 | content: 'Main Content' 14 | header: 'Header' 15 | footer: 'Footer' 16 | sidebar: 'Sidebar' 17 | main_navigation: 'Main Navigation' 18 | latest_movies: 'Latest Movies' -------------------------------------------------------------------------------- /sass/susy/output/shared/_padding.scss: -------------------------------------------------------------------------------- 1 | // Padding API 2 | // =========== 3 | 4 | // Padding Output 5 | // -------------- 6 | // - $before : 7 | // - $after : 8 | // - [$flow] : ltr | rtl 9 | @mixin padding-output( 10 | $before, 11 | $after, 12 | $flow: map-get($susy-defaults, flow) 13 | ) { 14 | $to: to($flow); 15 | $from: from($flow); 16 | 17 | $output: ( 18 | padding-#{$from}: $before, 19 | padding-#{$to}: $after, 20 | ); 21 | 22 | @include output($output); 23 | } 24 | -------------------------------------------------------------------------------- /templates/content-edit/image-widget.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for an image field widget. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the containing element. 8 | * - data: Render elements of the image widget. 9 | * 10 | * @see template_preprocess_image_widget() 11 | */ 12 | #} 13 | 14 | {{ data.preview }} 15 | {# Render widget data without the image preview that was output already. #} 16 | {{ data|without('preview') }} 17 | 18 | -------------------------------------------------------------------------------- /templates/field/responsive-image-formatter.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a formatted responsive image field. 5 | * 6 | * Available variables: 7 | * - responsive_image: A collection of responsive image data. 8 | * - url: An optional URL the image can be linked to. 9 | * 10 | * @see template_preprocess_responsive_image_formatter() 11 | */ 12 | #} 13 | {% if url %} 14 | {{ responsive_image }} 15 | {% else %} 16 | {{ responsive_image }} 17 | {% endif %} 18 | -------------------------------------------------------------------------------- /templates/admin/system-config-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a system settings form. 5 | * 6 | * This template will be used when a system config form specifies 'config_form' 7 | * as its #theme callback. Otherwise, by default, system config forms will be 8 | * themed by theme_form(). This does not alter the appearance of a form at all, 9 | * but is provided as a convenience for themers. 10 | * 11 | * Available variables: 12 | * - form: The confirm form. 13 | */ 14 | #} 15 | {{ form }} 16 | -------------------------------------------------------------------------------- /templates/layout/region.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a region. 5 | * 6 | * Available variables: 7 | * - content: The content for this region, typically blocks. 8 | * - attributes: HTML attributes for the region div. 9 | * - region: The name of the region variable as defined in the theme's 10 | * .info.yml file. 11 | * 12 | * @see template_preprocess_region() 13 | */ 14 | #} 15 | {% if content %} 16 | 17 | {{ content }} 18 | 19 | {% endif %} 20 | -------------------------------------------------------------------------------- /templates/views/views-exposed-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override of a views exposed form. 5 | * 6 | * Available variables: 7 | * - form: A render element representing the form. 8 | * 9 | * @see template_preprocess_views_exposed_form() 10 | */ 11 | #} 12 | {% if q is not empty %} 13 | {# 14 | This ensures that, if clean URLs are off, the 'q' is added first, 15 | as a hidden form element, so that it shows up first in the POST URL. 16 | #} 17 | {{ q }} 18 | {% endif %} 19 | {{ form }} 20 | -------------------------------------------------------------------------------- /sass/_homepage.scss: -------------------------------------------------------------------------------- 1 | main{ 2 | margin-top: 100px; 3 | } 4 | 5 | .layout-content{ 6 | @include span(8); 7 | } 8 | 9 | .layout-sidebar-first{ 10 | @include span(2); 11 | } 12 | 13 | .layout-sidebar-second{ 14 | @include span(2 last); 15 | } 16 | 17 | .article-list{ 18 | h3{ 19 | a{ 20 | color:#464646; 21 | text-decoration: none; 22 | } 23 | } 24 | 25 | p{ 26 | line-height:1.5; 27 | } 28 | 29 | .views-row{ 30 | margin:40px 0; 31 | } 32 | } -------------------------------------------------------------------------------- /sass/susy/output/shared/_inspect.scss: -------------------------------------------------------------------------------- 1 | // Debugging 2 | // ========= 3 | 4 | // Susy Inspect 5 | // ------------ 6 | // Output arguments passed to a inspect. 7 | // - $mixin : 8 | // - $inspec : 9 | 10 | @mixin susy-inspect($mixin, $inspect...) { 11 | $show: false; 12 | 13 | @each $item in $inspect { 14 | @if index($item, inspect) { 15 | $show: true; 16 | } 17 | } 18 | 19 | @if $show or susy-get(debug inspect) { 20 | -susy-#{$mixin}: inspect($inspect); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /templates/content-edit/node-edit-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a node edit form. 5 | * 6 | * Two column template for the node add/edit form. 7 | * 8 | * This template will be used when a node edit form specifies 'node_edit_form' 9 | * as its #theme callback. Otherwise, by default, node add/edit forms will be 10 | * themed by form.html.twig. 11 | * 12 | * Available variables: 13 | * - form: The node add/edit form. 14 | * 15 | * @see seven_form_node_form_alter() 16 | */ 17 | #} 18 | {{ form }} 19 | -------------------------------------------------------------------------------- /templates/navigation/menu-local-task.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a local task link. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the wrapper element. 8 | * - is_active: Whether the task item is an active tab. 9 | * - link: A rendered link element. 10 | * 11 | * Note: This template renders the content for each task item in 12 | * menu-local-tasks.html.twig. 13 | * 14 | * @see template_preprocess_menu_local_task() 15 | */ 16 | #} 17 | {{ link }} 18 | -------------------------------------------------------------------------------- /templates/content-edit/file-managed-file.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a file form widget. 5 | * 6 | * Available variables: 7 | * - element: Form element for the file upload. 8 | * - attributes: HTML attributes for the containing element. 9 | * 10 | * @see template_preprocess_file_managed_file() 11 | */ 12 | #} 13 | {% 14 | set classes = [ 15 | 'js-form-managed-file', 16 | 'form-managed-file', 17 | ] 18 | %} 19 | 20 | {{ element }} 21 | 22 | -------------------------------------------------------------------------------- /sass/susy/output/support/_rem.scss: -------------------------------------------------------------------------------- 1 | // rem Support 2 | // =========== 3 | 4 | // rem 5 | // --- 6 | // Check for an existing support mixin, or output directly. 7 | // - $prop : 8 | // - $val : 9 | @mixin susy-rem( 10 | $prop, 11 | $val 12 | ) { 13 | $_reqs: ( 14 | variable: rhythm-unit rem-with-px-fallback, 15 | mixin: rem, 16 | ); 17 | @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem { 18 | @include rem($prop, $val); 19 | } @else { 20 | #{$prop}: $val; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /templates/admin/views-ui-style-plugin-table.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the settings of a table style views display. 5 | * 6 | * Available variables: 7 | * - table: A table of options for each field in this display. 8 | * - form: Any remaining form fields not included in the table. 9 | * - description_markup: An overview for the settings of this display. 10 | * 11 | * @see template_preprocess_views_ui_style_plugin_table() 12 | */ 13 | #} 14 | {{ form.description_markup }} 15 | {{ table }} 16 | {{ form }} 17 | -------------------------------------------------------------------------------- /templates/misc/feed-icon.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a feed icon. 5 | * 6 | * Available variables: 7 | * - url: An internal system path or a fully qualified external URL of the feed. 8 | * - attributes: Remaining HTML attributes for the feed link. 9 | * - title: A descriptive title of the feed link. 10 | * - class: HTML classes to be applied to the feed link. 11 | */ 12 | #} 13 | 14 | {{ 'Subscribe to @title'|t({'@title': title}) }} 15 | 16 | -------------------------------------------------------------------------------- /sass/susy/output/support/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | // Box Sizing 2 | // ========== 3 | 4 | // Box Sizing 5 | // ---------- 6 | // Check for an existing support mixin, or provide a simple fallback. 7 | // - $model: 8 | @mixin susy-box-sizing( 9 | $model: content-box 10 | ) { 11 | @if $model { 12 | @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) { 13 | @include box-sizing($model); 14 | } @else { 15 | $prefix: (moz, webkit, official); 16 | @include susy-prefix(box-sizing, $model, $prefix); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /templates/content/mark.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a marker for new or updated content. 5 | * 6 | * Available variables: 7 | * - status: Number representing the marker status to display. Use the constants 8 | * below for comparison: 9 | * - MARK_NEW 10 | * - MARK_UPDATED 11 | * - MARK_READ 12 | */ 13 | #} 14 | {% if logged_in %} 15 | {% if status is constant('MARK_NEW') %} 16 | {{ 'New'|t }} 17 | {% elseif status is constant('MARK_UPDATED') %} 18 | {{ 'Updated'|t }} 19 | {% endif %} 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /templates/form/dropbutton-wrapper.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a dropbutton wrapper. 5 | * 6 | * Available variables: 7 | * - children: Contains the child elements of the dropbutton menu. 8 | * 9 | * @see template_preprocess() 10 | * @see template_preprocess_dropbutton_wrapper() 11 | */ 12 | #} 13 | {% if children %} 14 | {% spaceless %} 15 |
16 |
17 | {{ children }} 18 |
19 |
20 | {% endspaceless %} 21 | {% endif %} 22 | -------------------------------------------------------------------------------- /templates/views/views-view-grouping.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a single views grouping. 5 | * 6 | * Available variables: 7 | * - view: The view object. 8 | * - grouping: The grouping instruction. 9 | * - grouping_level: A number indicating the hierarchical level of the grouping. 10 | * - title: The group heading. 11 | * - content: The content to be grouped. 12 | * - rows: The rows returned from the view. 13 | * 14 | * @see template_preprocess_views_view_grouping() 15 | */ 16 | #} 17 | {{ title }} 18 | {{ content }} 19 | -------------------------------------------------------------------------------- /sass/susy/output/shared/_container.scss: -------------------------------------------------------------------------------- 1 | // Shared Container API 2 | // ==================== 3 | 4 | // Container Output 5 | // ---------------- 6 | // - [$width] : 7 | // - [$justify] : left | center | right 8 | // - [$math] : fluid | static 9 | @mixin container-output( 10 | $width, 11 | $justify: auto auto, 12 | $property: max-width 13 | ) { 14 | $output: ( 15 | #{$property}: $width or 100%, 16 | margin-left: nth($justify, 1), 17 | margin-right: nth($justify, 2), 18 | ); 19 | 20 | @include output($output); 21 | } 22 | -------------------------------------------------------------------------------- /templates/form/checkboxes.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a 'checkboxes' #type form element. 5 | * 6 | * Available variables 7 | * - attributes: A list of HTML attributes for the wrapper element. 8 | * - children: The rendered checkboxes. 9 | * 10 | * @see template_preprocess_checkboxes() 11 | */ 12 | @todo: remove this file once https://www.drupal.org/node/1819284 is resolved. 13 | This is identical to core/modules/system/templates/container.html.twig 14 | #} 15 | {{ children }} 16 | -------------------------------------------------------------------------------- /templates/field/link-formatter-link-separate.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override of a link with separate title and URL elements. 5 | * 6 | * Available variables: 7 | * - link: The link that has already been formatted by l(). 8 | * - title: (optional) A descriptive or alternate title for the link, which may 9 | * be different than the actual link text. 10 | * 11 | * @see template_preprocess() 12 | * @see template_preprocess_link_formatter_link_separate() 13 | */ 14 | #} 15 | {% spaceless %} 16 | {{ title }} 17 | {{ link }} 18 | {% endspaceless %} 19 | -------------------------------------------------------------------------------- /templates/admin/views-ui-view-preview-section.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a views UI preview section. 5 | * 6 | * Available variables: 7 | * - title: The human readable section title. 8 | * - links: A list of contextual links. 9 | * - content: The content for this section preview. 10 | * 11 | * @see template_preprocess_views_ui_view_preview_section() 12 | */ 13 | #} 14 |

{{ title }}

15 | {% if links %} 16 |
{{ links }}
17 | {% endif %} 18 |
{{ content }}
19 | -------------------------------------------------------------------------------- /templates/content/book-node-export-html.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a single node in a printer-friendly outline. 5 | * 6 | * Available variables: 7 | * - node: Fully loaded node. 8 | * - depth: Depth of the current node inside the outline. 9 | * - title: Node title. 10 | * - content: Node content. 11 | * - children: All the child nodes recursively rendered through this file. 12 | * 13 | * @see template_preprocess_book_node_export_html() 14 | */ 15 | #} 16 |
17 |

{{ title }}

18 | {{ content }} 19 | {{ children }} 20 |
21 | -------------------------------------------------------------------------------- /templates/dataset/forums.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a forum. 5 | * 6 | * May contain forum containers as well as forum topics. 7 | * 8 | * Available variables: 9 | * - forums: The forums to display (as processed by forum-list.html.twig). 10 | * - topics: The topics to display. 11 | * - topics_pager: The topics pager. 12 | * - forums_defined: A flag to indicate that the forums are configured. 13 | * 14 | * @see template_preprocess_forums() 15 | */ 16 | #} 17 | {% if forums_defined %} 18 | {{ forums }} 19 | {{ topics }} 20 | {{ topics_pager }} 21 | {% endif %} 22 | -------------------------------------------------------------------------------- /sass/susy/language/_susy.scss: -------------------------------------------------------------------------------- 1 | // Susy Next Syntax 2 | // ================ 3 | 4 | $susy-version: 2.1; 5 | 6 | @import "../su"; 7 | @import "../output/float"; 8 | 9 | @import "susy/settings"; 10 | @import "susy/validation"; 11 | @import "susy/grids"; 12 | @import "susy/box-sizing"; 13 | @import "susy/context"; 14 | @import "susy/background"; 15 | @import "susy/container"; 16 | @import "susy/span"; 17 | @import "susy/gutters"; 18 | @import "susy/isolate"; 19 | @import "susy/gallery"; 20 | @import "susy/rows"; 21 | @import "susy/margins"; 22 | @import "susy/padding"; 23 | @import "susy/bleed"; 24 | @import "susy/breakpoint-plugin"; 25 | -------------------------------------------------------------------------------- /templates/admin/authorize-report.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for authorize.php operation report templates. 5 | * 6 | * This report displays the results of an operation run via authorize.php. 7 | * 8 | * Available variables: 9 | * - messages: A list of result messages. 10 | * - attributes: HTML attributes for the element. 11 | * 12 | * @see template_preprocess_authorize_report() 13 | */ 14 | #} 15 | {% if messages %} 16 | 17 | {% for message_group in messages %} 18 | {{ message_group }} 19 | {% endfor %} 20 | 21 | {% endif %} 22 | -------------------------------------------------------------------------------- /templates/admin/update-last-check.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the last time update data was checked. 5 | * 6 | * Available variables: 7 | * - last: The timestamp that the site was last checked for updates. 8 | * - time: The formatted time since the site last checked for updates. 9 | * - link: A link to check for updates manually. 10 | * 11 | * @see template_preprocess_update_last_check() 12 | */ 13 | #} 14 |

15 | {% if last %} 16 | {{ 'Last checked: @time ago'|t({'@time': time}) }} 17 | {% else %} 18 | {{ 'Last checked: never'|t }} 19 | {% endif %} 20 | ({{ link }}) 21 |

22 | -------------------------------------------------------------------------------- /templates/views/views-view-opml.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for feed displays that use the OPML style. 5 | * 6 | * Available variables: 7 | * - title: The title of the feed (as set in the view). 8 | * - updated: The modified date of the feed. 9 | * - items: The feed items themselves. 10 | * 11 | * @see template_preprocess_views_view_opml() 12 | */ 13 | #} 14 | 15 | 16 | 17 | {{ title }} 18 | {{ updated }} 19 | 20 | 21 | {{ items }} 22 | 23 | 24 | -------------------------------------------------------------------------------- /templates/form/textarea.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a 'textarea' #type form element. 5 | * 6 | * Available variables 7 | * - wrapper_attributes: A list of HTML attributes for the wrapper element. 8 | * - attributes: A list of HTML attributes for the textarea element. 9 | * - resizable: An indicator for whether the textarea is resizable. 10 | * - required: An indicator for whether the textarea is required. 11 | * - value: The textarea content. 12 | * 13 | * @see template_preprocess_textarea() 14 | */ 15 | #} 16 | 17 | {{ value }} 18 | 19 | -------------------------------------------------------------------------------- /templates/field/image-style.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for an image using a specific image style. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the image, including the following: 8 | * - src: Full URL or relative path to the image file. 9 | * - class: One or more classes to be applied to the image. 10 | * - width: The width of the image (if known). 11 | * - height: The height of the image (if known). 12 | * - title: The title of the image. 13 | * - alt: The alternative text for the image. 14 | * 15 | * @see template_preprocess_image_style() 16 | */ 17 | #} 18 | {{ image }} 19 | -------------------------------------------------------------------------------- /templates/content-edit/filter-caption.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a filter caption. 5 | * 6 | * Returns HTML for a captioned image, audio, video or other tag. 7 | * 8 | * Available variables 9 | * - string node: The complete HTML tag whose contents are being captioned. 10 | * - string tag: The name of the HTML tag whose contents are being captioned. 11 | * - string caption: The caption text. 12 | * - string classes: The classes of the captioned HTML tag. 13 | */ 14 | #} 15 |
16 | {{ node }} 17 |
{{ caption }}
18 |
19 | -------------------------------------------------------------------------------- /templates/admin/tablesort-indicator.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for displaying a tablesort indicator. 5 | * 6 | * Available variables: 7 | * - style: Either 'asc' or 'desc', indicating the sorting direction. 8 | * 9 | * @see template_preprocess_tablesort_indicator() 10 | */ 11 | #} 12 | {% 13 | set classes = [ 14 | 'tablesort', 15 | 'tablesort--' ~ style, 16 | ] 17 | %} 18 | 19 | 20 | {% if style == 'asc' -%} 21 | {{ 'Sort ascending'|t }} 22 | {% else -%} 23 | {{ 'Sort descending'|t }} 24 | {% endif %} 25 | 26 | 27 | -------------------------------------------------------------------------------- /templates/layout/page.html.twig: -------------------------------------------------------------------------------- 1 | {% include directory ~ '/partials/header.html.twig' %} 2 | 3 |
4 |
5 | {# link is in html.html.twig #} 6 | 7 |
8 |
9 | {{ page.content }} 10 |
11 |
{# /.layout-content #} 12 | 13 | {% if page.sidebar %} 14 | 17 | {% endif %} 18 | 19 |
20 |
{# /.layout-container #} 21 | 22 | {% include directory ~ '/partials/footer.html.twig' %} -------------------------------------------------------------------------------- /templates/navigation/breadcrumb.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a breadcrumb trail. 5 | * 6 | * Available variables: 7 | * - breadcrumb: Breadcrumb trail items. 8 | */ 9 | #} 10 | {% if breadcrumb %} 11 | 25 | {% endif %} 26 | -------------------------------------------------------------------------------- /templates/admin/block-list.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Two column template for the block add/edit form. 5 | * 6 | * This template will be used when a block edit form specifies 'block_edit_form' 7 | * as its #theme callback. Otherwise, by default, block add/edit forms will be 8 | * themed by form.html.twig. 9 | * 10 | * Available variables: 11 | * - form: The block add/edit form. 12 | */ 13 | #} 14 |
15 |
16 | {{ form|without('place_blocks') }} 17 |
18 |
19 | {{ form.place_blocks }} 20 |
21 |
22 | -------------------------------------------------------------------------------- /templates/user/forum-submitted.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a forum post submission string. 5 | * 6 | * The submission string indicates when and by whom a topic was submitted. 7 | * 8 | * Available variables: 9 | * - author: The author of the post. 10 | * - time: How long ago the post was created. 11 | * - topic: An object with the raw data of the post. Potentially unsafe. Be 12 | * sure to clean this data before printing. 13 | * 14 | * @see template_preprocess_forum_submitted() 15 | */ 16 | #} 17 | {% if time %} 18 | {% trans %}By {{ author }} {{ time }} ago{% endtrans %} 19 | {% else %} 20 | {{ 'n/a'|t }} 21 | {% endif %} 22 | -------------------------------------------------------------------------------- /templates/admin/block-content-add-list.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to present a list of custom block types. 5 | * 6 | * Available variables: 7 | * - types: A collection of all the available custom block types. 8 | * Each block type contains the following: 9 | * - link: A link to add a block of this type. 10 | * - description: A description of this custom block type. 11 | * 12 | * @see template_preprocess_block_content_add_list() 13 | */ 14 | #} 15 | {% spaceless %} 16 |
17 | {% for type in types %} 18 |
{{ type.link }}
19 |
{{ type.description }}
20 | {% endfor %} 21 |
22 | {% endspaceless %} 23 | -------------------------------------------------------------------------------- /templates/admin/update-report.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the project status report. 5 | * 6 | * Available variables: 7 | * - last_checked: Themed last time update data was checked. 8 | * - no_updates_message: Message when there are no project updates. 9 | * - project_types: A list of project types. 10 | * - label: The project type label. 11 | * - table: The project status table. 12 | * 13 | * @see template_preprocess_update_report() 14 | */ 15 | #} 16 | {{ last_checked }} 17 | 18 | {% for project_type in project_types %} 19 |

{{ project_type.label }}

20 | {{ project_type.table }} 21 | {% else %} 22 |

{{ no_updates_message }}

23 | {% endfor %} 24 | -------------------------------------------------------------------------------- /node--movies.html.twig: -------------------------------------------------------------------------------- 1 | {% for actor in content.field_actors['#items'].getValue() %} 2 | {{actor.value}}
3 | {% endfor %} 4 | 5 | {% if content.field_show_poster_['#items'].getValue()|first.value == "1" %} 6 |
7 | {{content.field_movie_poster}} 8 |
9 | {% else %} 10 |

I don't want you to see Movie Poster

11 | {% endif %} 12 | 13 |
14 | {{content.field_director}} 15 |
16 |
17 |
18 |
19 | {{content.field_actors}} 20 |
21 |
22 |
23 |
24 | {{content.field_premeires}} 25 |
26 |
27 | {{content.body}} 28 |
-------------------------------------------------------------------------------- /page--front.html.twig: -------------------------------------------------------------------------------- 1 | {% include directory ~ '/partials/header.html.twig' %} 2 | 3 |
4 |
5 | {# link is in html.html.twig #} 6 | 7 |
8 |
9 | {{ page.content }} 10 |
11 |
{# /.layout-content #} 12 | 13 | {% if page.sidebar %} 14 | 18 | {% endif %} 19 | 20 |
21 | 22 |
{# /.layout-container #} 23 | 24 | {% include directory ~ '/partials/footer.html.twig' %} 25 | 26 | 27 | -------------------------------------------------------------------------------- /templates/admin/simpletest-result-summary.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for simpletest result summaries. 5 | * 6 | * Available variables: 7 | * - label: An optional label to be rendered before the results. 8 | * - items: Pluralized summaries for each result type (number of passes, fails, 9 | * exceptions, and debug messages). 10 | * - pass: The number of passes. 11 | * - fail: The number of fails. 12 | * - exception: The number of exceptions. 13 | * - debug: The number of debug messages. 14 | * 15 | * @see template_preprocess_simpletest_result_summary() 16 | */ 17 | #} 18 |
19 | {{ label }} {{ items|join(', ') }} 20 |
21 | -------------------------------------------------------------------------------- /templates/content-edit/text-format-wrapper.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a text format-enabled form element. 5 | * 6 | * Available variables: 7 | * - children: Text format element children. 8 | * - description: Text format element description. 9 | * - attributes: HTML attributes for the containing element. 10 | * - aria_description: Flag for whether or not an ARIA description has been 11 | * added to the description container. 12 | * 13 | * @see template_preprocess_text_format_wrapper() 14 | */ 15 | #} 16 |
17 | {{ children }} 18 | {% if description %} 19 | {{ description }}
20 | {% endif %} 21 | 22 | -------------------------------------------------------------------------------- /templates/misc/rdf-metadata.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for empty spans with RDF attributes. 5 | * 6 | * The XHTML+RDFa doctype allows either or syntax to 7 | * be used, but for maximum browser compatibility, W3C recommends the 8 | * former when serving pages using the text/html media type, see 9 | * http://www.w3.org/TR/xhtml1/#C_3. 10 | * 11 | * Available variables: 12 | * - metadata: Each item within corresponds to its own set of attributes, 13 | * and therefore, needs its own 'attributes' element. 14 | * 15 | * @see template_preprocess_rdf_metadata() 16 | */ 17 | #} 18 | {% for attributes in metadata %} 19 | 20 | {% endfor %} 21 | -------------------------------------------------------------------------------- /templates/admin/admin-page.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for an administrative page. 5 | * 6 | * Available variables: 7 | * - system_compact_link: Themed link to toggle compact view. 8 | * - containers: An list of administrative blocks keyed by position: left or 9 | * right. Contains: 10 | * - blocks: A list of blocks within a container. 11 | * 12 | * @see template_preprocess_admin_page() 13 | */ 14 | #} 15 | 16 |
17 | {{ system_compact_link }} 18 | {% for container in containers %} 19 |
20 | {% for block in container.blocks %} 21 | {{ block }} 22 | {% endfor %} 23 |
24 | {% endfor %} 25 |
26 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "olympos-gulp", 3 | "version": "1.0.0", 4 | "description": "Gulp dependencies for Olympos WordPress theme", 5 | "main": "gulpfile.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/ivandoric/olympos.git" 12 | }, 13 | "author": "Ivan Dorić", 14 | "license": "ISC", 15 | "devDependencies": { 16 | "gulp": "^3.9.0", 17 | "gulp-autoprefixer": "^3.0.2", 18 | "gulp-imagemin": "^2.3.0", 19 | "gulp-livereload": "^3.8.0", 20 | "gulp-sass": "^2.0.4", 21 | "gulp-sourcemaps": "^1.5.2", 22 | "gulp-uglifyjs": "^0.6.2", 23 | "imagemin-pngquant": "^4.2.0" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /sass/susy/output/shared/_background.scss: -------------------------------------------------------------------------------- 1 | // Grid Background API 2 | // =================== 3 | // - Sub-pixel rounding can lead to several pixels variation between browsers. 4 | 5 | // Grid Background Output 6 | // ---------------------- 7 | // - $image: background-image 8 | // - $size: background-size 9 | // - $clip: background-clip 10 | // - [$flow]: ltr | rtl 11 | @mixin background-grid-output ( 12 | $image, 13 | $size: null, 14 | $clip: null, 15 | $flow: map-get($susy-defaults, flow) 16 | ) { 17 | $output: ( 18 | background-image: $image, 19 | background-size: $size, 20 | background-origin: $clip, 21 | background-clip: $clip, 22 | background-position: from($flow) top, 23 | ); 24 | 25 | @include output($output); 26 | } 27 | -------------------------------------------------------------------------------- /templates/navigation/book-all-books-block.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for rendering book outlines within a block. 5 | * 6 | * This template is used only when the block is configured to "show block on all 7 | * pages", which presents multiple independent books on all pages. 8 | * 9 | * Available variables: 10 | * - book_menus: Book outlines. 11 | * - id: The parent book ID. 12 | * - title: The parent book title. 13 | * - menu: The top-level book links. 14 | * 15 | * @see template_preprocess_book_all_books_block() 16 | */ 17 | #} 18 | {% for book in book_menus %} 19 | 22 | {% endfor %} 23 | -------------------------------------------------------------------------------- /templates/admin/views-ui-view-info.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for basic administrative info about a View. 5 | * 6 | * Available variables: 7 | * - displays: List of displays. 8 | */ 9 | #} 10 |

{{ view.label }}

11 |
12 | {% if displays %} 13 | {% trans %} 14 | Display 15 | {% plural displays %} 16 | Displays 17 | {% endtrans %}: 18 | {{ displays|safe_join(', ') }} 19 | {% else %} 20 | {{ 'None'|t }} 21 | {% endif %} 22 |
23 |
24 | {{ 'Machine name:'|t }} 25 | {{ view.id }} 26 |
27 | -------------------------------------------------------------------------------- /templates/content/aggregator-item.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to present a feed item in an aggregator page. 5 | * 6 | * Available variables: 7 | * - url: URL to the originating feed item. 8 | * - title: Title of the feed item. 9 | * - content: All field items. Use {{ content }} to print them all, 10 | * or print a subset such as {{ content.field_example }}. Use 11 | * {{ content|without('field_example') }} to temporarily suppress the printing 12 | * of a given element. 13 | * 14 | * @see template_preprocess_aggregator_item() 15 | */ 16 | #} 17 | 18 | {{ title_prefix }} 19 |

20 | {{ title }} 21 |

22 | {{ title_suffix }} 23 | {{ content }} 24 | 25 | -------------------------------------------------------------------------------- /templates/navigation/menu-local-tasks.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display primary and secondary local tasks. 5 | * 6 | * Available variables: 7 | * - primary: HTML list items representing primary tasks. 8 | * - secondary: HTML list items representing primary tasks. 9 | * 10 | * Each item in these variables (primary and secondary) can be individually 11 | * themed in menu-local-task.html.twig. 12 | * 13 | * @see template_preprocess_menu_local_tasks() 14 | */ 15 | #} 16 | {% if primary %} 17 |

{{ 'Primary tabs'|t }}

18 |
    {{ primary }}
19 | {% endif %} 20 | {% if secondary %} 21 |

{{ 'Secondary tabs'|t }}

22 |
    {{ secondary }}
23 | {% endif %} 24 | -------------------------------------------------------------------------------- /templates/content/page-title.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for page titles. 5 | * 6 | * Available variables: 7 | * - title_attributes: HTML attributes for the page title element. 8 | * - title_prefix: Additional output populated by modules, intended to be 9 | * displayed in front of the main title tag that appears in the template. 10 | * - title: The page title, for use in the actual content. 11 | * - title_suffix: Additional output populated by modules, intended to be 12 | * displayed after the main title tag that appears in the template. 13 | * 14 | * @see template_preprocess_page_title() 15 | */ 16 | #} 17 | {{ title_prefix }} 18 | {% if title %} 19 | {{ title }} 20 | {% endif %} 21 | {{ title_suffix }} 22 | -------------------------------------------------------------------------------- /templates/admin/locale-translation-last-check.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the last time we checked for update data. 5 | * 6 | * Available variables: 7 | * - last_checked: Whether or not locale updates have been checked before. 8 | * - time: The formatted time ago when the site last checked for available 9 | * updates. 10 | * - link: A link to manually check available updates. 11 | * 12 | * @see template_preprocess_locale_translation_last_check() 13 | */ 14 | #} 15 |
16 |

17 | {% if last_checked %} 18 | {% trans %} Last checked: {{ time }} ago {% endtrans %} 19 | {% else %} 20 | {{ 'Last checked: never'|t }} 21 | {% endif %} 22 | ({{ link }})

23 |
24 | -------------------------------------------------------------------------------- /templates/misc/progress-bar.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a progress bar. 5 | * 6 | * Note that the core Batch API uses this only for non-JavaScript batch jobs. 7 | * 8 | * Available variables: 9 | * - label: The label of the working task. 10 | * - percent: The percentage of the progress. 11 | * - message: A string containing information to be displayed. 12 | */ 13 | #} 14 |
15 | {% if label %} 16 |
{{ label }}
17 | {% endif %} 18 |
19 |
{{ percent }}%
20 |
{{ message }}
21 |
22 | -------------------------------------------------------------------------------- /templates/user/user.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to present all user data. 5 | * 6 | * This template is used when viewing a registered user's page, 7 | * e.g., example.com/user/123. 123 being the user's ID. 8 | * 9 | * Available variables: 10 | * - content: A list of content items. Use 'content' to print all content, or 11 | * print a subset such as 'content.field_example'. Fields attached to a user 12 | * such as 'user_picture' are available as 'content.user_picture'. 13 | * - attributes: HTML attributes for the container element. 14 | * - user: A Drupal User entity. 15 | * 16 | * @see template_preprocess_user() 17 | */ 18 | #} 19 | 20 | {% if content %} 21 | {{- content -}} 22 | {% endif %} 23 | 24 | -------------------------------------------------------------------------------- /templates/views/views-view-field.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a single field in a view. 5 | * 6 | * Available variables: 7 | * - view: The view that the field belongs to. 8 | * - field: The field handler that can process the input. 9 | * - row: The raw result of the database query that generated this field. 10 | * - output: The processed output that will normally be used. 11 | * 12 | * When fetching output from the row this construct should be used: 13 | * data = row[field.field_alias] 14 | * 15 | * The above will guarantee that you'll always get the correct data, regardless 16 | * of any changes in the aliasing that might happen if the view is modified. 17 | * 18 | * @see template_preprocess_views_view_field() 19 | */ 20 | #} 21 | {{ output -}} 22 | -------------------------------------------------------------------------------- /templates/admin/config_translation_manage_form_element.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a form element in config_translation. 5 | * 6 | * Available variables: 7 | * - element: Array that represents the element shown in the form. 8 | * - source: The source of the translation. 9 | * - translation: The translation for the target language. 10 | * 11 | * @see template_preprocess() 12 | * @see template_preprocess_config_translation_manage_form_element() 13 | */ 14 | #} 15 |
16 |
17 | {{ element.source }} 18 |
19 |
20 | {{ element.translation }} 21 |
22 |
23 | -------------------------------------------------------------------------------- /sass/_reset.scss: -------------------------------------------------------------------------------- 1 | /* Eric Meyer's Reset CSS v2.0 - http://cssreset.com */ 2 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0} -------------------------------------------------------------------------------- /templates/form/form-element-label.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a form element label. 5 | * 6 | * Available variables: 7 | * - title: The label's text. 8 | * - title_display: Elements title_display setting. 9 | * - required: An indicator for whether the associated form element is required. 10 | * - attributes: A list of HTML attributes for the label. 11 | * 12 | * @see template_preprocess_form_element_label() 13 | */ 14 | #} 15 | {% 16 | set classes = [ 17 | title_display == 'after' ? 'option', 18 | title_display == 'invisible' ? 'visually-hidden', 19 | required ? 'js-form-required', 20 | required ? 'form-required', 21 | ] 22 | %} 23 | {% if title is not empty or required -%} 24 | {{ title }} 25 | {%- endif %} 26 | -------------------------------------------------------------------------------- /templates/admin/system-admin-index.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the admin index page. 5 | * 6 | * Available variables: 7 | * - system_compact_link: Themed link to toggle compact view. 8 | * - containers: A list of administrative containers keyed by position: left or 9 | * right. Each container in the list contains: 10 | * - blocks: A list of administrative blocks, rendered 11 | * through admin-block.html.twig. 12 | * 13 | * @see template_preprocess_system_admin_index() 14 | */ 15 | #} 16 |
17 | {{ system_compact_link }} 18 | {% for position, blocks in containers %} 19 |
20 | {% for block in blocks %} 21 | {{ block }} 22 | {% endfor %} 23 |
24 | {% endfor %} 25 |
26 | -------------------------------------------------------------------------------- /templates/dataset/aggregator-feed.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to present an aggregator feed. 5 | * 6 | * The contents are rendered above feed listings when browsing source feeds. 7 | * For example, "example.com/aggregator/sources/1". 8 | * 9 | * Available variables: 10 | * - title: Title of the feed item. 11 | * - content: All field items. Use {{ content }} to print them all, 12 | * or print a subset such as {{ content.field_example }}. Use 13 | * {{ content|without('field_example') }} to temporarily suppress the printing 14 | * of a given element. 15 | * 16 | * @see template_preprocess_aggregator_feed() 17 | */ 18 | #} 19 | {{ title_prefix }} 20 | {% if not full %} 21 | {{ title }} 22 | {% endif %} 23 | {{ title_suffix }} 24 | 25 | {{ content }} 26 | -------------------------------------------------------------------------------- /templates/views/views-view-row-rss.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display an item in a views RSS feed. 5 | * 6 | * Available variables: 7 | * - title: RSS item title. 8 | * - link: RSS item link. 9 | * - description: RSS body text. 10 | * - item_elements: RSS item elements to be rendered as XML (pubDate, creator, 11 | * guid). 12 | * 13 | * @see template_preprocess_views_view_row_rss() 14 | */ 15 | #} 16 | 17 | {{ title }} 18 | {{ link }} 19 | {{ description }} 20 | {% for item in item_elements -%} 21 | <{{ item.key }}{{ item.attributes -}} 22 | {% if item.value -%} 23 | >{{ item.value }} 24 | {% else -%} 25 | {{ ' />' }} 26 | {% endif %} 27 | {%- endfor %} 28 | 29 | -------------------------------------------------------------------------------- /templates/admin/maintenance-task-list.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a list of maintenance tasks to perform. 5 | * 6 | * Available variables: 7 | * - tasks: A list of maintenance tasks to perform. Each item in the list has 8 | * the following variables: 9 | * - item: The maintenance task. 10 | * - attributes: HTML attributes for the maintenance task. 11 | * - status: (optional) Text describing the status of the maintenance task, 12 | * 'active' or 'done'. 13 | */ 14 | #} 15 |

{{ 'Installation tasks'|t }}

16 |
    17 | {% for task in tasks %} 18 | 19 | {{ task.item }} 20 | {% if task.status %} ({{ task.status }}){% endif %} 21 | 22 | {% endfor %} 23 |
24 | -------------------------------------------------------------------------------- /templates/content-edit/filter-guidelines.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for guidelines for a text format. 5 | * 6 | * Available variables: 7 | * - format: Contains information about the current text format, including the 8 | * following: 9 | * - name: The name of the text format, potentially unsafe and needs to be 10 | * escaped. 11 | * - format: The machine name of the text format, e.g. 'basic_html'. 12 | * - attributes: HTML attributes for the containing element. 13 | * - tips: Descriptions and a CSS ID in the form of 'module-name/filter-id' 14 | * (only used when 'long' is TRUE) for each filter in one or more text 15 | * formats. 16 | * 17 | * @see template_preprocess_filter_tips() 18 | */ 19 | #} 20 | 21 |

{{ format.label }}

22 | {{ tips }} 23 | 24 | -------------------------------------------------------------------------------- /templates/admin/views-ui-rearrange-filter-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for Views UI rearrange filter form. 5 | * 6 | * Available variables: 7 | * - form: A render element representing the form. 8 | * - grouping: A flag whether or not there is more than one group. 9 | * - ungroupable_table: The ungroupable filter table. 10 | * - table: The groupable filter table. 11 | * 12 | * @see template_preprocess_views_ui_rearrange_filter_form() 13 | */ 14 | #} 15 | {{ form.override }} 16 |
17 | {% if grouping %} 18 | {{ form.filter_groups.operator }} 19 | {% else %} 20 | {{ form.filter_groups.groups.0 }} 21 | {% endif %} 22 | {{ ungroupable_table }} 23 | {{ table }} 24 |
25 | {{ form|without('override', 'filter_groups', 'remove_groups', 'filters') }} 26 | -------------------------------------------------------------------------------- /sass/susy/output/float/_end.scss: -------------------------------------------------------------------------------- 1 | // Float Ends API 2 | // ============== 3 | 4 | // Susy End Defaults 5 | // ----------------- 6 | // - PRIVATE 7 | @include susy-defaults(( 8 | last-flow: to, 9 | )); 10 | 11 | // Float Last 12 | // ---------- 13 | // - [$flow] : ltr | rtl 14 | @mixin float-last( 15 | $flow: map-get($susy-defaults, flow), 16 | $last-flow: map-get($susy-defaults, last-flow), 17 | $margin: 0 18 | ) { 19 | $to: to($flow); 20 | 21 | $output: ( 22 | float: if($last-flow == to, $to, null), 23 | margin-#{$to}: $margin, 24 | ); 25 | 26 | @include output($output); 27 | } 28 | 29 | // Float First 30 | // ----------- 31 | // - [$flow] : ltr | rtl 32 | @mixin float-first( 33 | $flow: map-get($susy-defaults, flow) 34 | ) { 35 | $output: ( 36 | margin-#{from($flow)}: 0, 37 | ); 38 | 39 | @include output($output); 40 | } 41 | -------------------------------------------------------------------------------- /templates/admin/color-scheme-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a theme's color form. 5 | * 6 | * Available variables: 7 | * - form: Form elements for the color scheme form, including: 8 | * - scheme: A color scheme form element. For example: a select element with 9 | * color theme presets, or a color picker widget. 10 | * - palette: Color fields that can be changed by entering in a new hex value. 11 | * - html_preview: A HTML preview of the theme's current color scheme. 12 | * 13 | * @see template_preprocess_color_scheme_form() 14 | */ 15 | #} 16 |
17 | {{ form.scheme }} 18 |
19 | {{ form.palette }} 20 |
21 | {{ form|without('scheme', 'palette') }} 22 |

{{ 'Preview'|t }}

23 | {{ html_preview }} 24 |
25 | -------------------------------------------------------------------------------- /templates/admin/admin-block.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for an administrative block. 5 | * 6 | * Available variables: 7 | * - block: An array of information about the block, including: 8 | * - show: A flag indicating if the block should be displayed. 9 | * - title: The block title. 10 | * - content: (optional) The content of the block. 11 | * - description: (optional) A description of the block. 12 | * (Description should only be output if content is not available). 13 | */ 14 | #} 15 |
16 | {% if block.title %} 17 |

{{ block.title }}

18 | {% endif %} 19 | {% if block.content %} 20 |
{{ block.content }}
21 | {% elseif block.description %} 22 |
{{ block.description }}
23 | {% endif %} 24 |
25 | -------------------------------------------------------------------------------- /templates/views/views-view-unformatted.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a view of unformatted rows. 5 | * 6 | * Available variables: 7 | * - title: The title of this group of rows. May be empty. 8 | * - rows: A list of the view's row items. 9 | * - attributes: The row's HTML attributes. 10 | * - content: The row's content. 11 | * - view: The view object. 12 | * - default_row_class: A flag indicating whether default classes should be 13 | * used on rows. 14 | * 15 | * @see template_preprocess_views_view_unformatted() 16 | */ 17 | #} 18 | {% if title %} 19 |

{{ title }}

20 | {% endif %} 21 | {% for row in rows %} 22 | {% 23 | set row_classes = [ 24 | default_row_class ? 'views-row', 25 | ] 26 | %} 27 | 28 | {{ row.content }} 29 | 30 | {% endfor %} 31 | -------------------------------------------------------------------------------- /templates/admin/image-resize-summary.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a summary of an image resize effect. 5 | * 6 | * Available variables: 7 | * - data: The current configuration for this resize effect, including: 8 | * - width: The width of the resized image. 9 | * - height: The height of the resized image. 10 | * - effect: The effect information, including: 11 | * - id: The effect identifier. 12 | * - label: The effect name. 13 | * - description: The effect description. 14 | */ 15 | #} 16 | {% if data.width and data.height -%} 17 | {{ data.width|e }}×{{ data.height|e }} 18 | {%- else -%} 19 | {% if data.width %} 20 | {% trans %} 21 | width {{ data.width|e }} 22 | {% endtrans %} 23 | {% elseif data.height %} 24 | {% trans %} 25 | height {{ data.height|e }} 26 | {% endtrans %} 27 | {% endif %} 28 | {%- endif %} 29 | -------------------------------------------------------------------------------- /templates/user/username.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for displaying a username. 5 | * 6 | * Available variables: 7 | * - account: The full account information for the user. 8 | * - name: The user's name, sanitized. 9 | * - extra: Additional text to append to the user's name, sanitized. 10 | * - link_path: The path or URL of the user's profile page, home page, 11 | * or other desired page to link to for more information about the user. 12 | * - link_options: Options to pass to the url() function's $options parameter if 13 | * linking the user's name to the user's page. 14 | * - attributes: HTML attributes for the containing element. 15 | * 16 | * @see template_preprocess_username() 17 | */ 18 | #} 19 | {% if link_path -%} 20 | {{ name }}{{ extra }} 21 | {%- else -%} 22 | {{ name }}{{ extra }} 23 | {%- endif -%} 24 | -------------------------------------------------------------------------------- /templates/field/field--node--uid.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the node user field. 5 | * 6 | * This is an override of field.html.twig for the node user field. See that 7 | * template for documentation about its details and overrides. 8 | * 9 | * Available variables: 10 | * - attributes: HTML attributes for the containing span element. 11 | * - items: List of all the field items. Each item contains: 12 | * - attributes: List of HTML attributes for each item. 13 | * - content: The field item content. 14 | * - entity_type: The entity type to which the field belongs. 15 | * - field_name: The name of the field. 16 | * - field_type: The type of the field. 17 | * - label_display: The display settings for the label. 18 | * 19 | * @see field.html.twig 20 | */ 21 | #} 22 | 23 | {%- for item in items -%} 24 | {{ item.content }} 25 | {%- endfor -%} 26 | 27 | -------------------------------------------------------------------------------- /templates/form/datetime-wrapper.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override of a datetime form wrapper. 5 | * 6 | * Available variables: 7 | * - content: The form element to be output, usually a datelist, or datetime. 8 | * - title: The title of the form element. 9 | * - title_attributes: HTML attributes for the title wrapper. 10 | * - description: Description text for the form element. 11 | * - required: An indicator for whether the associated form element is required. 12 | * 13 | * @see template_preprocess_datetime_wrapper() 14 | */ 15 | #} 16 | {% 17 | set title_classes = [ 18 | required ? 'js-form-required', 19 | required ? 'form-required', 20 | ] 21 | %} 22 | {% if title %} 23 | {{ title }} 24 | {% endif %} 25 | {{ content }} 26 | {% if errors %} 27 |
28 | {{ errors }} 29 |
30 | {% endif %} 31 | {{ description }} 32 | -------------------------------------------------------------------------------- /templates/field/field--node--title.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the node title field. 5 | * 6 | * This is an override of field.html.twig for the node title field. See that 7 | * template for documentation about its details and overrides. 8 | * 9 | * Available variables: 10 | * - attributes: HTML attributes for the containing span element. 11 | * - items: List of all the field items. Each item contains: 12 | * - attributes: List of HTML attributes for each item. 13 | * - content: The field item content. 14 | * - entity_type: The entity type to which the field belongs. 15 | * - field_name: The name of the field. 16 | * - field_type: The type of the field. 17 | * - label_display: The display settings for the label. 18 | * 19 | * @see field.html.twig 20 | */ 21 | #} 22 | 23 | {%- for item in items -%} 24 | {{ item.content }} 25 | {%- endfor -%} 26 | 27 | -------------------------------------------------------------------------------- /templates/admin/image-rotate-summary.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a summary of an image rotate effect. 5 | * 6 | * Available variables: 7 | * - data: The current configuration for this resize effect, including: 8 | * - degrees: Degrees to rotate the image, positive values will rotate the 9 | * image clockwise, negative values counter-clockwise. 10 | * - bgcolor: The hex background color of the new areas created as consequence 11 | * of rotation. 12 | * - random: If the rotation angle is randomized. 13 | * - effect: The effect information, including: 14 | * - id: The effect identifier. 15 | * - label: The effect name. 16 | * - description: The effect description. 17 | */ 18 | #} 19 | {% if data.random %} 20 | {% trans %} 21 | random between -{{ data.degrees|abs }}° and {{ data.degrees|abs }}° 22 | {% endtrans %} 23 | {% else %} 24 | {{ data.degrees }}° 25 | {% endif %} 26 | -------------------------------------------------------------------------------- /templates/field/field--node--created.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the node created field. 5 | * 6 | * This is an override of field.html.twig for the node created field. See that 7 | * template for documentation about its details and overrides. 8 | * 9 | * Available variables: 10 | * - attributes: HTML attributes for the containing span element. 11 | * - items: List of all the field items. Each item contains: 12 | * - attributes: List of HTML attributes for each item. 13 | * - content: The field item content. 14 | * - entity_type: The entity type to which the field belongs. 15 | * - field_name: The name of the field. 16 | * - field_type: The type of the field. 17 | * - label_display: The display settings for the label. 18 | * 19 | * @see field.html.twig 20 | */ 21 | #} 22 | 23 | {%- for item in items -%} 24 | {{ item.content }} 25 | {%- endfor -%} 26 | 27 | -------------------------------------------------------------------------------- /templates/form/container.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override of a container used to wrap child elements. 5 | * 6 | * Used for grouped form items. Can also be used as a theme wrapper for any 7 | * renderable element, to surround it with a
and HTML attributes. 8 | * See the @link forms_api_reference.html Form API reference @endlink for more 9 | * information on the #theme_wrappers render array property. 10 | * 11 | * Available variables: 12 | * - attributes: HTML attributes for the containing element. 13 | * - children: The rendered child elements of the container. 14 | * - has_parent: A flag to indicate that the container has one or more parent 15 | containers. 16 | * 17 | * @see template_preprocess_container() 18 | */ 19 | #} 20 | {% 21 | set classes = [ 22 | has_parent ? 'js-form-wrapper', 23 | has_parent ? 'form-wrapper', 24 | ] 25 | %} 26 | {{ children }}
27 | -------------------------------------------------------------------------------- /templates/form/details.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a details element. 5 | * 6 | * Available variables 7 | * - attributes: A list of HTML attributes for the details element. 8 | * - errors: (optional) Any errors for this details element, may not be set. 9 | * - title: (optional) The title of the element, may not be set. 10 | * - description: (optional) The description of the element, may not be set. 11 | * - children: (optional) The children of the element, may not be set. 12 | * - value: (optional) The value of the element, may not be set. 13 | * 14 | * @see template_preprocess_details() 15 | */ 16 | #} 17 | 18 | {%- if title -%} 19 | {{ title }} 20 | {%- endif -%} 21 | 22 | {% if errors %} 23 |
24 | {{ errors }} 25 |
26 | {% endif %} 27 | 28 | {{ description }} 29 | {{ children }} 30 | {{ value }} 31 | 32 | -------------------------------------------------------------------------------- /templates/dataset/forum-icon.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a status icon for a forum post. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes to be applied to the wrapper element. 8 | * - class: HTML classes that determine which icon to display. May be one of 9 | * 'hot', 'hot-new', 'new', 'default', 'closed', or 'sticky'. 10 | * - title: Text alternative for the forum icon. 11 | * - icon_title: Text alternative for the forum icon, same as above. 12 | * - new_posts: '1' when this topic contains new posts, otherwise '0'. 13 | * - first_new: '1' when this is the first topic with new posts, otherwise '0'. 14 | * - icon_status: Indicates which status icon should be used. 15 | * 16 | * @see template_preprocess_forum_icon() 17 | */ 18 | #} 19 | 20 | {% if first_new -%} 21 | 22 | {%- endif %} 23 | {{ icon_title }} 24 | 25 | -------------------------------------------------------------------------------- /templates/form/select.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a select element. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the select tag. 8 | * - options: The option element children. 9 | * 10 | * @see template_preprocess_select() 11 | */ 12 | #} 13 | {% spaceless %} 14 | 15 | {% for option in options %} 16 | {% if option.type == 'optgroup' %} 17 | 18 | {% for sub_option in option.options %} 19 | 20 | {% endfor %} 21 | 22 | {% elseif option.type == 'option' %} 23 | 24 | {% endif %} 25 | {% endfor %} 26 | 27 | {% endspaceless %} 28 | -------------------------------------------------------------------------------- /templates/views/views-view-rss.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for feed displays that use the RSS style. 5 | * 6 | * Available variables: 7 | * - link: The link to the feed (the view path). 8 | * - namespaces: The XML namespaces (added automatically). 9 | * - title: The title of the feed (as set in the view). 10 | * - description: The feed description (from feed settings). 11 | * - langcode: The language encoding. 12 | * - channel_elements: The formatted channel elements. 13 | * - items: The feed items themselves. 14 | * 15 | * @see template_preprocess_views_view_rss() 16 | */ 17 | #} 18 | 19 | 20 | 21 | {{ title }} 22 | {{ link }} 23 | {{ description }} 24 | {{ langcode }} 25 | {{ channel_elements }} 26 | {{ items }} 27 | 28 | 29 | -------------------------------------------------------------------------------- /templates/block/block--system-branding-block.html.twig: -------------------------------------------------------------------------------- 1 | {% extends "block.html.twig" %} 2 | {# 3 | /** 4 | * @file 5 | * Theme override for a branding block. 6 | * 7 | * Each branding element variable (logo, name, slogan) is only available if 8 | * enabled in the block configuration. 9 | * 10 | * Available variables: 11 | * - site_logo: Logo for site as defined in Appearance or theme settings. 12 | * - site_name: Name for site as defined in Site information settings. 13 | * - site_slogan: Slogan for site as defined in Site information settings. 14 | */ 15 | #} 16 | {% block content %} 17 | {% if site_logo %} 18 |

19 | 20 | {{ 'Home'|t }} 21 | 22 |

23 | {% endif %} 24 | {% if site_name %} 25 | {{ site_name }} 26 | {% endif %} 27 | {{ site_slogan }} 28 | {% endblock %} 29 | -------------------------------------------------------------------------------- /templates/content-edit/node-add-list.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to list node types available for adding content. 5 | * 6 | * This list is displayed on the Add content admin page. 7 | * 8 | * Available variables: 9 | * - types: A list of content types, each with the following properties: 10 | * - add_link: Link to create a piece of content of this type. 11 | * - description: Description of this type of content. 12 | * 13 | * @see template_preprocess_node_add_list() 14 | */ 15 | #} 16 | {% if types is not empty %} 17 |
18 | {% for type in types %} 19 |
{{ type.add_link }}
20 |
{{ type.description }}
21 | {% endfor %} 22 |
23 | {% else %} 24 |

25 | {% set create_content = path('node.type_add') %} 26 | {% trans %} 27 | You have not created any content types yet. Go to the content type creation page to add a new content type. 28 | {% endtrans %} 29 |

30 | {% endif %} 31 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_context.scss: -------------------------------------------------------------------------------- 1 | // Context Syntax 2 | // ============== 3 | 4 | // Nested [function] 5 | // ----------------- 6 | // Return a subset grid for nested context. 7 | // - $context : 8 | @function nested( 9 | $context 10 | ) { 11 | $context : parse-span($context); 12 | $span : susy-get(span, $context); 13 | $location : get-location($context); 14 | $columns : susy-get(columns, $context); 15 | 16 | @return susy-slice($span, $location, $columns); 17 | } 18 | 19 | // Nested [mixin] 20 | // -------------- 21 | // Use a subset grid for a nested context 22 | // - $context : 23 | // - @content : 24 | @mixin nested( 25 | $context 26 | ) { 27 | $inspect : $context; 28 | $context : parse-span($context); 29 | $old : susy-get(columns); 30 | $susy : map-merge($susy, (columns: nested($context))) !global; 31 | 32 | @include susy-inspect(nested, $inspect); 33 | @content; 34 | 35 | $susy : map-merge($susy, (columns: $old)) !global; 36 | } 37 | -------------------------------------------------------------------------------- /templates/admin/image-crop-summary.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a summary of an image crop effect. 5 | * 6 | * Available variables: 7 | * - data: The current configuration for this resize effect, including: 8 | * - width: The width of the resized image. 9 | * - height: The height of the resized image. 10 | * - anchor: The part of the image that will be retained after cropping. 11 | * - anchor_label: The translated label of the crop anchor. 12 | * - effect: The effect information, including: 13 | * - id: The effect identifier. 14 | * - label: The effect name. 15 | * - description: The effect description. 16 | */ 17 | #} 18 | {% if data.width and data.height -%} 19 | {{ data.width|e }}×{{ data.height|e }} 20 | {%- else -%} 21 | {% if data.width %} 22 | {% trans %} 23 | width {{ data.width|e }} 24 | {% endtrans %} 25 | {% elseif data.height %} 26 | {% trans %} 27 | height {{ data.height|e }} 28 | {% endtrans %} 29 | {% endif %} 30 | {%- endif %} 31 | -------------------------------------------------------------------------------- /templates/views/views-view-list.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a view template to display a list of rows. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the container. 8 | * - rows: A list of rows for this list. 9 | * - attributes: The row's HTML attributes. 10 | * - content: The row's contents. 11 | * - title: The title of this group of rows. May be empty. 12 | * - list: @todo. 13 | * - type: Starting tag will be either a ul or ol. 14 | * - attributes: HTML attributes for the list element. 15 | * 16 | * @see template_preprocess_views_view_list() 17 | */ 18 | #} 19 | {% if attributes -%} 20 | 21 | {% endif %} 22 | {% if title %} 23 |

{{ title }}

24 | {% endif %} 25 | 26 | <{{ list.type }}{{ list.attributes }}> 27 | 28 | {% for row in rows %} 29 | {{ row.content }} 30 | {% endfor %} 31 | 32 | 33 | 34 | {% if attributes -%} 35 | 36 | {% endif %} 37 | -------------------------------------------------------------------------------- /templates/views/views-view-summary.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a list of summary lines. 5 | * 6 | * Available variables: 7 | * - rows: The rows contained in this view. 8 | * Each row contains: 9 | * - url: The summary link URL. 10 | * - link: The summary link text. 11 | * - count: The number of items under this grouping. 12 | * - attributes: HTML attributes to apply to each row. 13 | * - active: A flag indicating whtether the row is active. 14 | * - options: Flags indicating how the summary should be displayed. 15 | * This contains: 16 | * - count: A flag indicating whether the count should be displayed. 17 | * 18 | * @see template_preprocess_views_view_summary() 19 | */ 20 | #} 21 |
    22 | {% for row in rows %} 23 |
  • {{ row.link }} 24 | {% if options.count %} 25 | ({{ row.count }}) 26 | {% endif %} 27 |
  • 28 | {% endfor %} 29 |
30 | -------------------------------------------------------------------------------- /templates/field/time.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a date / time element. 5 | * 6 | * Available variables 7 | * - timestamp: (optional) A UNIX timestamp for the datetime attribute. If the 8 | * datetime cannot be represented as a UNIX timestamp, use a valid datetime 9 | * attribute value in attributes.datetime. 10 | * - text: (optional) The content to display within the
' : '' }} 31 | {% endfor %} 32 | -------------------------------------------------------------------------------- /sass/_header.scss: -------------------------------------------------------------------------------- 1 | .main-header{ 2 | height:300px; 3 | background:url(../images/hero.jpg) no-repeat center center; 4 | } 5 | 6 | .logo{ 7 | @include span(2); 8 | 9 | img{ 10 | max-width:100%; 11 | } 12 | } 13 | 14 | .main-navigation{ 15 | margin-top:25px; 16 | @include span(5 last); 17 | 18 | li{ 19 | float: left; 20 | position: relative; 21 | } 22 | 23 | ul ul{ 24 | position: absolute; 25 | width:200px; 26 | background: #FFF; 27 | display: none; 28 | 29 | li{ 30 | float:none; 31 | 32 | a{ 33 | color:#2BA6CB; 34 | display: block; 35 | padding:5px; 36 | border-bottom: 1px solid #efefef; 37 | 38 | &:hover{ 39 | background: #2BA6CB; 40 | color:#fff; 41 | text-decoration: none; 42 | } 43 | } 44 | } 45 | } 46 | 47 | a{ 48 | display: block; 49 | color:#fff; 50 | text-decoration: none; 51 | padding: 0 10px; 52 | 53 | &:hover{ 54 | text-decoration: underline; 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /templates/content-edit/filter-tips.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a set of filter tips. 5 | * 6 | * Available variables: 7 | * - tips: Descriptions and a CSS ID in the form of 'module-name/filter-id' 8 | * (only used when 'long' is TRUE) for each filter in one or more text 9 | * formats. 10 | * - long: A flag indicating whether the passed-in filter tips contain extended 11 | * explanations, i.e. intended to be output on the path 'filter/tips' 12 | * (TRUE), or are in a short format, i.e. suitable to be displayed below a 13 | * form element. Defaults to FALSE. 14 | * - multiple: A flag indicating there is more than one filter tip. 15 | * 16 | * @see template_preprocess_filter_tips() 17 | */ 18 | #} 19 | {% if multiple %} 20 |

{{ 'Text Formats'|t }}

21 | {% endif %} 22 | 23 | {% if tips|length %} 24 | {% for name, tip in tips %} 25 | 26 | {% if multiple %} 27 | 28 |

{{ tip.name }}

29 | {% endif %} 30 | 31 | {% if tip.list|length %} 32 |
    33 | {% for item in tip.list %} 34 | {{ item.tip }} 35 | {% endfor %} 36 |
37 | {% endif %} 38 | 39 | {% if multiple %} 40 | 41 | {% endif %} 42 | 43 | {% endfor %} 44 | {% endif %} 45 | -------------------------------------------------------------------------------- /templates/dataset/item-list.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for an item list. 5 | * 6 | * Available variables: 7 | * - items: A list of items. Each item contains: 8 | * - attributes: HTML attributes to be applied to each list item. 9 | * - value: The content of the list element. 10 | * - title: The title of the list. 11 | * - list_type: The tag for list element ("ul" or "ol"). 12 | * - wrapper_attributes: HTML attributes to be applied to the list wrapper. 13 | * - attributes: HTML attributes to be applied to the list. 14 | * - empty: A message to display when there are no items. Allowed value is a 15 | * string or render array. 16 | * - context: A list of contextual data associated with the list. May contain: 17 | * - list_style: The custom list style. 18 | * 19 | * @see template_preprocess_item_list() 20 | */ 21 | #} 22 | {% if context.list_style %} 23 | {%- set attributes = attributes.addClass('item-list__' ~ context.list_style) %} 24 | {% endif %} 25 | {% if items or empty %} 26 | {%- if title is not empty -%} 27 |

{{ title }}

28 | {%- endif -%} 29 | 30 | {%- if items -%} 31 | <{{ list_type }}{{ attributes }}> 32 | {%- for item in items -%} 33 | {{ item.value }} 34 | {%- endfor -%} 35 | 36 | {%- else -%} 37 | {{- empty -}} 38 | {%- endif -%} 39 | {%- endif %} 40 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_grids.scss: -------------------------------------------------------------------------------- 1 | // Grid Syntax 2 | // =========== 3 | 4 | 5 | // Layout 6 | // ------ 7 | // Set a new layout using a shorthand 8 | // - $layout: 9 | // - $clean: boolean 10 | @mixin layout( 11 | $layout, 12 | $clean: false 13 | ) { 14 | $inspect : $layout; 15 | $susy : _get-layout($layout, $clean) !global; 16 | 17 | @include susy-inspect(layout, $inspect); 18 | } 19 | 20 | 21 | // Use Grid 22 | // -------- 23 | // Use an arbitrary layout for a section of code 24 | // - $layout: 25 | // - $clean: boolean 26 | @mixin with-layout( 27 | $layout, 28 | $clean: false 29 | ) { 30 | $inspect : $layout; 31 | $old : $susy; 32 | $susy : _get-layout($layout, $clean) !global; 33 | 34 | @include susy-inspect(with-layout, $inspect); 35 | 36 | @content; 37 | 38 | $susy: $old !global; 39 | } 40 | 41 | 42 | // Layout 43 | // ------ 44 | // Return a parsed layout map based on shorthand syntax 45 | // - $layout: 46 | @function layout( 47 | $layout: $susy 48 | ) { 49 | @return parse-grid($layout); 50 | } 51 | 52 | 53 | // Get Layout 54 | // ---------- 55 | // Return a new layout based on current and given settings 56 | // - $layout: 57 | // - $clean: boolean 58 | @function _get-layout( 59 | $layout, 60 | $clean: false 61 | ) { 62 | $layout: layout($layout); 63 | @return if($clean, $layout, _susy-deep-merge($susy, $layout)); 64 | } 65 | -------------------------------------------------------------------------------- /sass/_globals.scss: -------------------------------------------------------------------------------- 1 | /* ======================================================================= 2 | ## ++ Susy 3 | ========================================================================== */ 4 | $susy:( 5 | container-position: center, 6 | last-flow: to, 7 | columns: 12, 8 | gutters: 1/4, 9 | gutter-position: inside, 10 | ); 11 | 12 | /* ======================================================================= 13 | ## ++ Globals 14 | ========================================================================== */ 15 | html{ 16 | font-size: 100%; 17 | } 18 | 19 | body{ 20 | -webkit-font-smoothing: antialiased; 21 | background:#fff; 22 | font-family: sans-serif; 23 | } 24 | 25 | *{ 26 | box-sizing:border-box; 27 | } 28 | 29 | .container{ 30 | @include container(1100px); 31 | } 32 | 33 | 34 | /* ======================================================================= 35 | ## ++ Cleafix 36 | ========================================================================== */ 37 | 38 | /* float clearing for IE6 */ 39 | * html .clearfix{ 40 | height: 1%; 41 | overflow: visible; 42 | } 43 | 44 | /* float clearing for IE7 */ 45 | *+html .clearfix{ 46 | min-height: 1%; 47 | } 48 | 49 | /* float clearing for everyone else */ 50 | .clearfix:after{ 51 | clear: both; 52 | content: "."; 53 | display: block; 54 | height: 0; 55 | visibility: hidden; 56 | font-size: 0; 57 | } 58 | 59 | .clr{clear:both;} 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /sass/susy/su/_validation.scss: -------------------------------------------------------------------------------- 1 | // Math Validation 2 | // =============== 3 | 4 | 5 | // Valid Columns 6 | // ------------- 7 | // Check that a column setting is valid. 8 | @function valid-columns( 9 | $columns, 10 | $silent: false 11 | ) { 12 | $type: type-of($columns); 13 | $return: null; 14 | 15 | @if $type == number and unitless($columns) { 16 | $return: $columns; 17 | } @else if $type == list { 18 | $fail: null; 19 | @each $col in $columns { 20 | @if type-of($col) == number { 21 | $fail: $fail or if(unitless($col), null, true); 22 | } @else { 23 | $fail: true; 24 | } 25 | } 26 | $return: if($fail, $return, $columns); 27 | } 28 | 29 | @if $return != $columns and not($silent) { 30 | $return: null; 31 | $warn: '$columns must be a unitless number or list of unitless numbers.'; 32 | @warn $warn + ' Current value [#{$type}]: #{$columns}'; 33 | } 34 | 35 | @return $return; 36 | } 37 | 38 | 39 | // Valid Gutters 40 | // ------------- 41 | // Check that a gutter setting is valid. 42 | @function valid-gutters( 43 | $gutters, 44 | $silent: false 45 | ) { 46 | $type: type-of($gutters); 47 | $return: null; 48 | 49 | @if $type == number and unitless($gutters) { 50 | $return: $gutters; 51 | } @else if not($silent) { 52 | $warn: '$gutters must be a unitless number.'; 53 | @warn $warn + ' Current value [#{$type}]: #{$gutters}'; 54 | } 55 | 56 | @return $return; 57 | } 58 | -------------------------------------------------------------------------------- /templates/layout/maintenance-page.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a single Drupal page while offline. 5 | * 6 | * All available variables are mirrored in page.html.twig. 7 | * Some may be blank but they are provided for consistency. 8 | * 9 | * @see template_preprocess_maintenance_page() 10 | */ 11 | #} 12 |
13 | {% if logo %} 14 | 15 | {{ 'Home'|t }} 16 | 17 | {% endif %} 18 | 19 | {% if site_name or site_slogan %} 20 | {% if site_name %} 21 |

22 | {{ site_name }} 23 |

24 | {% endif %} 25 | 26 | {% if site_slogan %} 27 |
{{ site_slogan }}
28 | {% endif %} 29 | {% endif %} 30 |
31 | 32 |
33 | {% if title %} 34 |

{{ title }}

35 | {% endif %} 36 | 37 | {{ page.highlighted }} 38 | 39 | {{ page.content }} 40 |
41 | 42 | {% if page.sidebar_first %} 43 | 46 | {% endif %} 47 | 48 | {% if page.sidebar_second %} 49 | 52 | {% endif %} 53 | 54 | {% if page.footer %} 55 |
56 | {{ page.footer }} 57 |
58 | {% endif %} 59 | -------------------------------------------------------------------------------- /templates/admin/language-negotiation-configure-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a language negotiation configuration form. 5 | * 6 | * Available variables: 7 | * - language_types: A list of language negotiation types. Each language type 8 | * contains the following: 9 | * - type: The machine name for the negotiation type. 10 | * - title: The language negotiation type name. 11 | * - description: A description for how the language negotiation type operates. 12 | * - configurable: A radio element to toggle the table. 13 | * - table: A draggable table for the language detection methods of this type. 14 | * - children: Remaining form items for the group. 15 | * - attributes: A list of HTML attributes for the wrapper element. 16 | * - children: Remaining form items for all groups. 17 | * 18 | * @see template_preprocess_language_negotiation_configure_form() 19 | */ 20 | #} 21 | {% for language_type in language_types %} 22 | {% 23 | set language_classes = [ 24 | 'js-form-item', 25 | 'form-item', 26 | 'table-language-group', 27 | 'table-' ~ language_type.type ~ '-wrapper', 28 | ] 29 | %} 30 | 31 |

{{ language_type.title }}

32 |
{{ language_type.description }}
33 | {{ language_type.configurable }} 34 | {{ language_type.table }} 35 | {{ language_type.children }} 36 | 37 | {% endfor %} 38 | {{ children }} 39 | -------------------------------------------------------------------------------- /templates/views/views-mini-pager.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a views mini-pager. 5 | * 6 | * Available variables: 7 | * - items: List of pager items. 8 | * 9 | * @see template_preprocess_views_mini_pager() 10 | */ 11 | #} 12 | {% if items.previous or items.next %} 13 | 41 | {% endif %} 42 | -------------------------------------------------------------------------------- /templates/block/block.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a block. 5 | * 6 | * Available variables: 7 | * - plugin_id: The ID of the block implementation. 8 | * - label: The configured label of the block if visible. 9 | * - configuration: A list of the block's configuration values. 10 | * - label: The configured label for the block. 11 | * - label_display: The display settings for the label. 12 | * - provider: The module or other provider that provided this block plugin. 13 | * - Block plugin specific settings will also be stored here. 14 | * - content: The content of this block. 15 | * - attributes: array of HTML attributes populated by modules, intended to 16 | * be added to the main container tag of this template. 17 | * - id: A valid HTML ID and guaranteed unique. 18 | * - title_attributes: Same as attributes, except applied to the main title 19 | * tag that appears in the template. 20 | * - title_prefix: Additional output populated by modules, intended to be 21 | * displayed in front of the main title tag that appears in the template. 22 | * - title_suffix: Additional output populated by modules, intended to be 23 | * displayed after the main title tag that appears in the template. 24 | * 25 | * @see template_preprocess_block() 26 | */ 27 | #} 28 | 29 | {{ title_prefix }} 30 | {% if label %} 31 | {{ label }} 32 | {% endif %} 33 | {{ title_suffix }} 34 | {% block content %} 35 | {{ content }} 36 | {% endblock %} 37 | 38 | -------------------------------------------------------------------------------- /templates/layout/book-export-html.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for printed version of book outline. 5 | * 6 | * Available variables: 7 | * - title: Top level node title. 8 | * - head: Header tags. 9 | * - language: Language object. 10 | * - language_rtl: A flag indicating whether the current display language is a 11 | * right to left language. 12 | * - base_url: URL to the home page. 13 | * - contents: Nodes within the current outline rendered through 14 | * book-node-export-html.html.twig. 15 | * 16 | * @see template_preprocess_book_export_html() 17 | */ 18 | #} 19 | 20 | 21 | 22 | {{ title }} 23 | {{ page.head }} 24 | 25 | 26 | 27 | 28 | {# 29 | The given node is embedded to its absolute depth in a top level section. 30 | For example, a child node with depth 2 in the hierarchy is contained in 31 | (otherwise empty) div elements corresponding to depth 0 and depth 1. This 32 | is intended to support WYSIWYG output - e.g., level 3 sections always look 33 | like level 3 sections, no matter their depth relative to the node selected 34 | to be exported as printer-friendly HTML. 35 | #} 36 | 37 | {% for i in 1..depth-1 if depth > 1 %} 38 |
39 | {% endfor %} 40 | {{ contents }} 41 | {% for i in 1..depth-1 if depth > 1 %} 42 |
43 | {% endfor %} 44 | 45 | 46 | -------------------------------------------------------------------------------- /templates/admin/status-report.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the status report. 5 | * 6 | * Available variables: 7 | * - requirements: Contains multiple requirement instances. 8 | * Each requirement contains: 9 | * - title: The title of the requirement. 10 | * - value: (optional) The requirement's status. 11 | * - description: (optional) The requirement's description. 12 | * - severity_title: The title of the severity. 13 | * - severity_status: Indicates the severity status. 14 | * 15 | * @see template_preprocess_status_report() 16 | */ 17 | #} 18 | 19 | 20 | {% for requirement in requirements %} 21 | 22 | {% if requirement.severity_status in ['warning', 'error'] %} 23 | 30 | 36 | 37 | {% endfor %} 38 | 39 |
24 | {{ requirement.severity_title }} 25 | {% else %} 26 | 27 | {% endif %} 28 | {{ requirement.title }} 29 | 31 | {{ requirement.value }} 32 | {% if requirement.description %} 33 |
{{ requirement.description }}
34 | {% endif %} 35 |
40 | -------------------------------------------------------------------------------- /templates/admin/update-version.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the version display of a project. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes suitable for a container element. 8 | * - title: The title of the project. 9 | * - version: A list of data about the latest released version, containing: 10 | * - version: The version number. 11 | * - date: The date of the release. 12 | * - download_link: The URL for the downloadable file. 13 | * - release_link: The URL for the release notes. 14 | * 15 | * @see template_preprocess_update_version() 16 | */ 17 | #} 18 |
19 |
20 |
{{ title }}
21 |
22 | {{ version.version }} 23 | ({{ version.date|date('Y-M-d') }}) 24 |
25 |
26 | 34 |
35 |
36 |
37 | -------------------------------------------------------------------------------- /templates/layout/install-page.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a Drupal installation page. 5 | * 6 | * All available variables are mirrored in page.html.twig. 7 | * Some may be blank but they are provided for consistency. 8 | * 9 | * @see template_preprocess_install_page() 10 | */ 11 | #} 12 |
13 | 14 |
15 | {% if site_name or site_slogan %} 16 |
17 | {% if site_name %} 18 |

{{ site_name }}

19 | {% endif %} 20 | {% if site_slogan %} 21 |
{{ site_slogan }}
22 | {% endif %} 23 |
{# /.name-and-slogan #} 24 | {% endif %} 25 |
26 | 27 |
28 | {% if title %} 29 |

{{ title }}

30 | {% endif %} 31 | {{ page.highlighted }} 32 | {{ page.content }} 33 |
34 | 35 | {% if page.sidebar_first %} 36 | {# /.layout-sidebar-first #} 39 | {% endif %} 40 | 41 | {% if page.sidebar_second %} 42 | {# /.layout-sidebar-second #} 45 | {% endif %} 46 | 47 | {% if page.footer %} 48 |
49 | {{ page.footer }} 50 |
51 | {% endif %} 52 | 53 |
{# /.layout-container #} 54 | -------------------------------------------------------------------------------- /templates/navigation/book-tree.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a book tree. 5 | * 6 | * Returns HTML for a wrapper for a book sub-tree. 7 | * 8 | * Available variables: 9 | * - items: A nested list of book items. Each book item contains: 10 | * - attributes: HTML attributes for the book item. 11 | * - below: The book item child items. 12 | * - title: The book link title. 13 | * - url: The book link URL, instance of \Drupal\Core\Url. 14 | * - is_expanded: TRUE if the link has visible children within the current 15 | * book tree. 16 | * - is_collapsed: TRUE if the link has children within the current book tree 17 | * that are not currently visible. 18 | * - in_active_trail: TRUE if the link is in the active trail. 19 | */ 20 | #} 21 | {% import _self as book_tree %} 22 | 23 | {# 24 | We call a macro which calls itself to render the full tree. 25 | @see http://twig.sensiolabs.org/doc/tags/macro.html 26 | #} 27 | {{ book_tree.book_links(items, attributes, 0) }} 28 | 29 | {% macro book_links(items, attributes, menu_level) %} 30 | {% import _self as book_tree %} 31 | {% if items %} 32 | {% if menu_level == 0 %} 33 | 34 | {% else %} 35 |
    36 | {% endif %} 37 | {% for item in items %} 38 | 39 | {{ link(item.title, item.url) }} 40 | {% if item.below %} 41 | {{ book_tree.book_links(item.below, attributes, menu_level + 1) }} 42 | {% endif %} 43 | 44 | {% endfor %} 45 |
46 | {% endif %} 47 | {% endmacro %} 48 | -------------------------------------------------------------------------------- /sass/_mixins.scss: -------------------------------------------------------------------------------- 1 | /* ======================================================================= 2 | ## ++ Media Queries 3 | ========================================================================== */ 4 | 5 | /* 6 | Used for media queries. 7 | Add these mixins in your normal scss flow. 8 | 9 | Eg. 10 | .container{ 11 | width:1024px; 12 | 13 | @include tablets{ 14 | width:90%; 15 | } 16 | } 17 | */ 18 | 19 | @mixin lowresmonitors{ 20 | @media screen and (max-width: 1350px){ @content;} 21 | } 22 | 23 | @mixin tablets{ 24 | @media screen and (max-width: 1100px){ @content; } 25 | } 26 | 27 | @mixin phones{ 28 | @media screen and (max-width: 720px){ @content; } 29 | } 30 | 31 | /* ======================================================================= 32 | ## ++ Unit transform 33 | ========================================================================== */ 34 | 35 | /* 36 | Used for making containers have width in percentages. 37 | Usage: define elemnt width in px and the width of parent elemnt in px. 38 | eg. .block{width:cp(512px, 1024px)} this will result in .block{width:50%;} 39 | */ 40 | 41 | @function cp($target, $container) { 42 | @return ($target / $container) * 100%; 43 | } 44 | 45 | /* 46 | Used for making px values convert to rem values 47 | Usage: define font-size in px and it will convert to rems 48 | eg. font-size: rem(14px); 49 | */ 50 | 51 | @function rem($target, $context: $base-font-size) { 52 | @if $target == 0 { @return 0 } 53 | @return $target / $context + 0rem; 54 | } 55 | $base-font-size:16px; -------------------------------------------------------------------------------- /sass/susy/su/_settings.scss: -------------------------------------------------------------------------------- 1 | // Settings 2 | // ======== 3 | 4 | // Version 5 | // ------- 6 | $su-version: 1.1; 7 | 8 | 9 | // Default Settings 10 | // ---------------- 11 | // PRIVATE: The basic settings 12 | $susy-defaults: ( 13 | columns: 4, 14 | gutters: .25, 15 | ); 16 | 17 | 18 | // User Settings 19 | // ------------- 20 | // - Define the $susy variable with a map of your own settings. 21 | // - Set EITHER $column-width OR $container 22 | // - Use $column-width for static layouts 23 | $susy: () !default; 24 | 25 | 26 | // Susy Defaults 27 | // ------------- 28 | // PRIVATE: Add defaults to Susy 29 | @mixin susy-defaults( 30 | $defaults 31 | ) { 32 | $susy-defaults: map-merge($susy-defaults, $defaults) !global; 33 | } 34 | 35 | 36 | // Susy Set 37 | // -------- 38 | // Change one setting 39 | // - $key : setting name 40 | // - $value : setting value 41 | @mixin susy-set( 42 | $key-value... 43 | ) { 44 | $susy: _susy-deep-set($susy, $key-value...) !global; 45 | } 46 | 47 | 48 | // Susy Get 49 | // -------- 50 | // Return one setting from a grid 51 | // - $key : 52 | // - $layout : 53 | @function susy-get( 54 | $key, 55 | $layout: map-merge($susy-defaults, $susy) 56 | ) { 57 | $layout: parse-grid($layout); 58 | $_options: $layout $susy $susy-defaults; 59 | $_break: false; 60 | $_return: null; 61 | 62 | @each $opt in $_options { 63 | @if type-of($opt) == map and not($_break) { 64 | $_keyset: _susy-deep-has-key($opt, $key...); 65 | @if $_keyset { 66 | $_return: _susy-deep-get($opt, $key...); 67 | $_break: true; 68 | } 69 | } 70 | } 71 | 72 | @return $_return; 73 | } 74 | -------------------------------------------------------------------------------- /templates/navigation/menu--account.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a menu. 5 | * 6 | * Available variables: 7 | * - menu_name: The machine name of the menu. 8 | * - items: A nested list of menu items. Each menu item contains: 9 | * - attributes: HTML attributes for the menu item. 10 | * - below: The menu item child items. 11 | * - title: The menu link title. 12 | * - url: The menu link url, instance of \Drupal\Core\Url 13 | * - localized_options: Menu link localized options. 14 | * - is_expanded: TRUE if the link has visible children within the current 15 | * menu tree. 16 | * - is_collapsed: TRUE if the link has children within the current menu tree 17 | * that are not currently visible. 18 | * - in_active_trail: TRUE if the link is in the active trail. 19 | */ 20 | #} 21 | {% import _self as menus %} 22 | 23 | {# 24 | We call a macro which calls itself to render the full tree. 25 | @see http://twig.sensiolabs.org/doc/tags/macro.html 26 | #} 27 | {{ menus.menu_links(items, attributes, 0) }} 28 | 29 | {% macro menu_links(items, attributes, menu_level) %} 30 | {% import _self as menus %} 31 | {% if items %} 32 | {% if menu_level == 0 %} 33 | 34 | {% else %} 35 |
    36 | {% endif %} 37 | {% for item in items %} 38 | 39 | {{ link(item.title, item.url, item.attributes.addClass('a-link')) }} 40 | {% if item.below %} 41 | {{ menus.menu_links(item.below, attributes, menu_level + 1) }} 42 | {% endif %} 43 | 44 | {% endfor %} 45 |
46 | {% endif %} 47 | {% endmacro %} -------------------------------------------------------------------------------- /templates/navigation/menu.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a menu. 5 | * 6 | * Available variables: 7 | * - menu_name: The machine name of the menu. 8 | * - items: A nested list of menu items. Each menu item contains: 9 | * - attributes: HTML attributes for the menu item. 10 | * - below: The menu item child items. 11 | * - title: The menu link title. 12 | * - url: The menu link url, instance of \Drupal\Core\Url 13 | * - localized_options: Menu link localized options. 14 | * - is_expanded: TRUE if the link has visible children within the current 15 | * menu tree. 16 | * - is_collapsed: TRUE if the link has children within the current menu tree 17 | * that are not currently visible. 18 | * - in_active_trail: TRUE if the link is in the active trail. 19 | */ 20 | #} 21 | {% import _self as menus %} 22 | 23 | {# 24 | We call a macro which calls itself to render the full tree. 25 | @see http://twig.sensiolabs.org/doc/tags/macro.html 26 | #} 27 | {{ menus.menu_links(items, attributes, 0) }} 28 | 29 | {% macro menu_links(items, attributes, menu_level) %} 30 | {% import _self as menus %} 31 | {% if items %} 32 | {% if menu_level == 0 %} 33 | 34 | {% else %} 35 | 46 | {% endif %} 47 | {% endmacro %} 48 | -------------------------------------------------------------------------------- /templates/field/field--comment.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for comment fields. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the containing element. 8 | * - label_hidden: Whether to show the field label or not. 9 | * - title_attributes: HTML attributes for the title. 10 | * - label: The label for the field. 11 | * - title_prefix: Additional output populated by modules, intended to be 12 | * displayed in front of the main title tag that appears in the template. 13 | * - title_suffix: Additional title output populated by modules, intended to 14 | * be displayed after the main title tag that appears in the template. 15 | * - comments: List of comments rendered through comment.html.twig. 16 | * - content_attributes: HTML attributes for the form title. 17 | * - comment_form: The 'Add new comment' form. 18 | * - comment_display_mode: Is the comments are threaded. 19 | * - comment_type: The comment type bundle ID for the comment field. 20 | * - entity_type: The entity type to which the field belongs. 21 | * - field_name: The name of the field. 22 | * - field_type: The type of the field. 23 | * - label_display: The display settings for the label. 24 | * 25 | * @see template_preprocess_field() 26 | * @see comment_preprocess_field() 27 | */ 28 | #} 29 | 30 | {% if comments and not label_hidden %} 31 | {{ title_prefix }} 32 | {{ label }} 33 | {{ title_suffix }} 34 | {% endif %} 35 | 36 | {{ comments }} 37 | 38 | {% if comment_form %} 39 | {{ 'Add new comment'|t }} 40 | {{ comment_form }} 41 | {% endif %} 42 | 43 | 44 | -------------------------------------------------------------------------------- /templates/layout/html.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the basic structure of a single Drupal page. 5 | * 6 | * Variables: 7 | * - logged_in: A flag indicating if user is logged in. 8 | * - root_path: The root path of the current page (e.g., node, admin, user). 9 | * - node_type: The content type for the current node, if the page is a node. 10 | * - head_title: List of text elements that make up the head_title variable. 11 | * May contain or more of the following: 12 | * - title: The title of the page. 13 | * - name: The name of the site. 14 | * - slogan: The slogan of the site. 15 | * - page_top: Initial rendered markup. This should be printed before 'page'. 16 | * - page: The rendered page markup. 17 | * - page_bottom: Closing rendered markup. This variable should be printed after 18 | * 'page'. 19 | * - db_offline: A flag indicating if the database is offline. 20 | * - placeholder_token: The token for generating head, css, js and js-bottom 21 | * placeholders. 22 | * 23 | * @see template_preprocess_html() 24 | */ 25 | #} 26 | 27 | 28 | 29 | 30 | {{ head_title|safe_join(' | ') }} 31 | 32 | 33 | 34 | 35 | 36 | {{ 'Skip to main content'|t }} 37 | 38 | {{ page_top }} 39 | {{ page }} 40 | {{ page_bottom }} 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /templates/misc/status-messages.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for status messages. 5 | * 6 | * Displays status, error, and warning messages, grouped by type. 7 | * 8 | * An invisible heading identifies the messages for assistive technology. 9 | * Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html 10 | * for info. 11 | * 12 | * Add an ARIA label to the contentinfo area so that assistive technology 13 | * user agents will better describe this landmark. 14 | * 15 | * Available variables: 16 | * - message_list: List of messages to be displayed, grouped by type. 17 | * - status_headings: List of all status types. 18 | * - display: (optional) May have a value of 'status' or 'error' when only 19 | * displaying messages of that specific type. 20 | * - attributes: HTML attributes for the element, including: 21 | * - class: HTML classes. 22 | * 23 | * @see template_preprocess_status_messages() 24 | */ 25 | #} 26 | {% for type, messages in message_list %} 27 |
28 | {% if type == 'error' %} 29 |
30 | {% endif %} 31 | {% if status_headings[type] %} 32 |

{{ status_headings[type] }}

33 | {% endif %} 34 | {% if messages|length > 1 %} 35 |
    36 | {% for message in messages %} 37 |
  • {{ message }}
  • 38 | {% endfor %} 39 |
40 | {% else %} 41 | {{ messages|first }} 42 | {% endif %} 43 | {% if type == 'error' %} 44 |
45 | {% endif %} 46 |
47 | {% endfor %} 48 | -------------------------------------------------------------------------------- /sass/susy/output/support/_background.scss: -------------------------------------------------------------------------------- 1 | // Background Properties 2 | // ===================== 3 | 4 | // Susy Background Image 5 | // --------------------- 6 | // Check for an existing support mixin, or provide a simple fallback. 7 | // - $image: 8 | @mixin susy-background-image( 9 | $image 10 | ) { 11 | @if susy-support(background-image, (mixin: background-image), $warn: false) { 12 | @include background-image($image...); 13 | } @else { 14 | background-image: $image; 15 | } 16 | } 17 | 18 | // Susy Background Size 19 | // --------------------- 20 | // Check for an existing support mixin, or provide a simple fallback. 21 | // - $image: 22 | @mixin susy-background-size( 23 | $size 24 | ) { 25 | @if susy-support(background-options, (mixin: background-size)) { 26 | @include background-size($size); 27 | } @else { 28 | background-size: $size; 29 | } 30 | } 31 | 32 | // Susy Background Origin 33 | // ---------------------- 34 | // Check for an existing support mixin, or provide a simple fallback. 35 | // - $image: 36 | @mixin susy-background-origin( 37 | $origin 38 | ) { 39 | @if susy-support(background-options, (mixin: background-origin)) { 40 | @include background-origin($origin); 41 | } @else { 42 | background-origin: $origin; 43 | } 44 | } 45 | 46 | // Susy Background Clip 47 | // -------------------- 48 | // Check for an existing support mixin, or provide a simple fallback. 49 | // - $image: 50 | @mixin susy-background-clip( 51 | $clip 52 | ) { 53 | @if susy-support(background-options, (mixin: background-clip)) { 54 | @include background-clip($clip); 55 | } @else { 56 | background-clip: $clip; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var livereload = require('gulp-livereload') 3 | var uglify = require('gulp-uglifyjs'); 4 | var sass = require('gulp-sass'); 5 | var autoprefixer = require('gulp-autoprefixer'); 6 | var sourcemaps = require('gulp-sourcemaps'); 7 | var imagemin = require('gulp-imagemin'); 8 | var pngquant = require('imagemin-pngquant'); 9 | 10 | 11 | 12 | 13 | gulp.task('imagemin', function () { 14 | return gulp.src('./themes/custom/endymion/images/*') 15 | .pipe(imagemin({ 16 | progressive: true, 17 | svgoPlugins: [{removeViewBox: false}], 18 | use: [pngquant()] 19 | })) 20 | .pipe(gulp.dest('./themes/custom/endymion/images')); 21 | }); 22 | 23 | 24 | gulp.task('sass', function () { 25 | gulp.src('./themes/custom/endymion/sass/**/*.scss') 26 | .pipe(sourcemaps.init()) 27 | .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError)) 28 | .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 7', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) 29 | .pipe(sourcemaps.write('./')) 30 | .pipe(gulp.dest('./themes/custom/endymion/css')); 31 | }); 32 | 33 | 34 | gulp.task('uglify', function() { 35 | gulp.src('./themes/custom/endymion/lib/*.js') 36 | .pipe(uglify('main.js')) 37 | .pipe(gulp.dest('./themes/custom/endymion/js')) 38 | }); 39 | 40 | gulp.task('watch', function(){ 41 | livereload.listen(); 42 | 43 | gulp.watch('./themes/custom/endymion/sass/**/*.scss', ['sass']); 44 | gulp.watch('./themes/custom/endymion/lib/*.js', ['uglify']); 45 | gulp.watch(['./themes/custom/endymion/css/style.css', './themes/custom/endymion/**/*.twig', './themes/custom/endymion/js/*.js'], function (files){ 46 | livereload.changed(files) 47 | }); 48 | }); -------------------------------------------------------------------------------- /templates/navigation/toolbar.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the administrative toolbar. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the wrapper. 8 | * - toolbar_attributes: HTML attributes to apply to the toolbar. 9 | * - toolbar_heading: The heading or label for the toolbar. 10 | * - tabs: List of tabs for the toolbar. 11 | * - attributes: HTML attributes for the tab container. 12 | * - link: Link or button for the menu tab. 13 | * - trays: Toolbar tray list, each associated with a tab. Each tray in trays 14 | * contains: 15 | * - attributes: HTML attributes to apply to the tray. 16 | * - label: The tray's label. 17 | * - links: The tray menu links. 18 | * - remainder: Any non-tray, non-tab elements left to be rendered. 19 | * 20 | * @see template_preprocess_toolbar() 21 | */ 22 | #} 23 | 24 | 25 |

{{ toolbar_heading }}

26 | {% for key, tab in tabs %} 27 | {% set tray = trays[key] %} 28 | 29 | {{ tab.link }} 30 | {% spaceless %} 31 | 32 | {% if tray.label %} 33 | 45 | {{ remainder }} 46 | 47 | -------------------------------------------------------------------------------- /templates/admin/views-ui-build-group-filter-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for Views UI build group filter form. 5 | * 6 | * Available variables: 7 | * - form: A render element representing the form. Contains the following: 8 | * - form_description: The exposed filter's description. 9 | * - expose_button: The button to toggle the expose filter form. 10 | * - group_button: Toggle options between single and grouped filters. 11 | * - label: A filter label input field. 12 | * - description: A filter description field. 13 | * - value: The filters available values. 14 | * - optional: A checkbox to require this filter or not. 15 | * - remember: A checkbox to remember selected filter value(s) (per user). 16 | * - widget: Radio Buttons to select the filter widget. 17 | * - add_group: A button to add another row to the table. 18 | * - more: A details element for additional field exposed filter fields. 19 | * - table: A rendered table element of the group filter form. 20 | * 21 | * @see template_preprocess_views_ui_build_group_filter_form() 22 | */ 23 | #} 24 | {{ form.form_description }} 25 | {{ form.expose_button }} 26 | {{ form.group_button }} 27 |
28 | {{ form.optional }} 29 | {{ form.remember }} 30 |
31 |
32 | {{ form.widget }} 33 | {{ form.label }} 34 | {{ form.description }} 35 |
36 | {# 37 | Render the rest of the form elements excluding elements that are rendered 38 | elsewhere. 39 | #} 40 | {{ form|without( 41 | 'form_description', 42 | 'expose_button', 43 | 'group_button', 44 | 'optional', 45 | 'remember', 46 | 'widget', 47 | 'label', 48 | 'description', 49 | 'add_group', 50 | 'more' 51 | ) 52 | }} 53 | {{ table }} 54 | {{ form.add_group }} 55 | {{ form.more }} 56 | -------------------------------------------------------------------------------- /templates/admin/views-ui-expose-filter-form.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for exposed filter form. 5 | * 6 | * Available variables: 7 | * - form_description: The exposed filter's description. 8 | * - expose_button: The button to toggle the expose filter form. 9 | * - group_button: Toggle options between single and grouped filters. 10 | * - required: A checkbox to require this filter or not. 11 | * - label: A filter label input field. 12 | * - description: A filter description field. 13 | * - operator: The operators for how the filters value should be treated. 14 | * - #type: The operator type. 15 | * - value: The filters available values. 16 | * - use_operator: Checkbox to allow the user to expose the operator. 17 | * - more: A details element for additional field exposed filter fields. 18 | */ 19 | #} 20 | {{ form.form_description }} 21 | {{ form.expose_button }} 22 | {{ form.group_button }} 23 | {{ form.required }} 24 | {{ form.label }} 25 | {{ form.description }} 26 | 27 | {{ form.operator }} 28 | {{ form.value }} 29 | 30 | {% if form.use_operator %} 31 |
32 | {{ form.use_operator }} 33 |
34 | {% endif %} 35 | 36 | {# 37 | Collect a list of elements printed to exclude when printing the 38 | remaining elements. 39 | #} 40 | {% set remaining_form = form|without( 41 | 'form_description', 42 | 'expose_button', 43 | 'group_button', 44 | 'required', 45 | 'label', 46 | 'description', 47 | 'operator', 48 | 'value', 49 | 'use_operator', 50 | 'more' 51 | ) 52 | %} 53 | 54 | {# 55 | Only output the right column markup if there's a left column to begin with. 56 | #} 57 | {% if form.operator['#type'] %} 58 |
59 | {{ remaining_form }} 60 |
61 | {% else %} 62 | {{ remaining_form }} 63 | {% endif %} 64 | 65 | {{ form.more }} 66 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_isolate.scss: -------------------------------------------------------------------------------- 1 | // Isolation Syntax 2 | // ================ 3 | 4 | 5 | // Isolate [Mixin] 6 | // --------------- 7 | // Set isolation as an override. 8 | // - $location: 9 | @mixin isolate( 10 | $isolate: 1 11 | ) { 12 | $inspect: $isolate; 13 | 14 | $output: ( 15 | push: isolate($isolate), 16 | flow: susy-get(flow, $isolate), 17 | ); 18 | 19 | @include susy-inspect(isolate, $inspect); 20 | @include isolate-output($output...); 21 | } 22 | 23 | 24 | // Isolate [function] 25 | // ------------------ 26 | // Return an isolation offset width. 27 | // - $location: 28 | @function isolate( 29 | $isolate: 1 30 | ) { 31 | $isolate: parse-span($isolate); 32 | $isolation: susy-get(span, $isolate); 33 | 34 | @if $isolation and not(get-location($isolate)) { 35 | $new: ( 36 | span: null, 37 | location: $isolation, 38 | ); 39 | $isolate: map-merge($isolate, $new); 40 | } 41 | 42 | @return get-isolation($isolate); 43 | } 44 | 45 | 46 | // Get Isolation 47 | // ------------- 48 | // Return the isolation offset width 49 | // - $input: 50 | @function get-isolation( 51 | $input 52 | ) { 53 | $location : get-location($input); 54 | $columns : susy-get(columns, $input); 55 | $width : null; 56 | 57 | @if type-of($location) == number and not(unitless($location)) { 58 | $width: $location; 59 | } @else if $location { 60 | $push: $location - 1; 61 | @if $push > 0 { 62 | $push: map-merge($input, ( 63 | span: $push, 64 | location: 1, 65 | spread: wide, 66 | )); 67 | $width: get-span-width($push); 68 | } 69 | } 70 | 71 | @if susy-get(gutter-position, $input) == split 72 | and susy-get(gutters, $input) > 0 { 73 | $width: if($width == null, gutters($input), $width + gutters($input)); 74 | } 75 | 76 | @return $width or 0; 77 | } 78 | -------------------------------------------------------------------------------- /templates/navigation/menu--toolbar.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a toolbar menu. 5 | * 6 | * Available variables: 7 | * - menu_name: The machine name of the menu. 8 | * - items: A nested list of menu items. Each menu item contains: 9 | * - attributes: HTML attributes for the menu item. 10 | * - below: The menu item child items. 11 | * - title: The menu link title. 12 | * - url: The menu link url, instance of \Drupal\Core\Url 13 | * - localized_options: Menu link localized options. 14 | * - is_expanded: TRUE if the link has visible children within the current 15 | * menu tree. 16 | * - is_collapsed: TRUE if the link has children within the current menu tree 17 | * that are not currently visible. 18 | * - in_active_trail: TRUE if the link is in the active trail. 19 | */ 20 | #} 21 | {% import _self as menus %} 22 | 23 | {# 24 | We call a macro which calls itself to render the full tree. 25 | @see http://twig.sensiolabs.org/doc/tags/macro.html 26 | #} 27 | {{ menus.menu_links(items, attributes, 0) }} 28 | 29 | {% macro menu_links(items, attributes, menu_level) %} 30 | {% import _self as menus %} 31 | {% if items %} 32 | {% if menu_level == 0 %} 33 | 34 | {% else %} 35 |
    36 | {% endif %} 37 | {% for item in items %} 38 | {% 39 | set classes = [ 40 | 'menu-item', 41 | item.is_expanded ? 'menu-item--expanded', 42 | item.is_collapsed ? 'menu-item--collapsed', 43 | item.in_active_trail ? 'menu-item--active-trail', 44 | ] 45 | %} 46 | 47 | {{ link(item.title, item.url) }} 48 | {% if item.below %} 49 | {{ menus.menu_links(item.below, attributes, menu_level + 1) }} 50 | {% endif %} 51 | 52 | {% endfor %} 53 |
54 | {% endif %} 55 | {% endmacro %} 56 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_padding.scss: -------------------------------------------------------------------------------- 1 | // Padding Syntax 2 | // ============== 3 | 4 | // Prefix 5 | // ------ 6 | // Add spanning-padding before an element. 7 | // - $span : 8 | @mixin prefix( 9 | $span 10 | ) { 11 | $inspect : $span; 12 | $span : map-merge((spread: wide), parse-span($span)); 13 | $flow : susy-get(flow, $span); 14 | $width : span($span); 15 | 16 | @if is-inside($span) { 17 | $gutter: gutter($span); 18 | $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); 19 | } 20 | 21 | @include susy-inspect(prefix, $inspect); 22 | @include padding-output($width, null, $flow); 23 | } 24 | 25 | // Suffix 26 | // ------ 27 | // Add spanning-padding after an element. 28 | // - $span : 29 | @mixin suffix( 30 | $span 31 | ) { 32 | $inspect : $span; 33 | $span : map-merge((spread: wide), parse-span($span)); 34 | $flow : susy-get(flow, $span); 35 | $width : span($span); 36 | 37 | @if is-inside($span) { 38 | $gutter: gutter($span); 39 | $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); 40 | } 41 | 42 | @include susy-inspect(suffix, $inspect); 43 | @include padding-output(null, $width, $flow); 44 | } 45 | 46 | // Pad 47 | // --- 48 | // Add spanning-padding before and after an element. 49 | // - $pre : 50 | // - [$post] : 51 | @mixin pad( 52 | $pre, 53 | $post: false 54 | ) { 55 | $inspect : $pre, $post; 56 | $pre : map-merge((spread: wide), parse-span($pre)); 57 | 58 | @if $post { 59 | $post: map-merge((spread: wide), parse-span($post)); 60 | } @else { 61 | $span: susy-get(span, $pre); 62 | @if length($span) > 1 { 63 | $pre: map-merge($pre, (span: nth($span, 1))); 64 | $post: map-merge($pre, (span: nth($span, 2))); 65 | } @else { 66 | $post: $pre; 67 | } 68 | } 69 | 70 | @include susy-inspect(pad, $inspect...); 71 | @include prefix($pre); 72 | @include suffix($post); 73 | 74 | } 75 | -------------------------------------------------------------------------------- /templates/views/views-view.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for main view template. 5 | * 6 | * Available variables: 7 | * - attributes: Remaining HTML attributes for the element. 8 | * - css_name: A css-safe version of the view name. 9 | * - css_class: The user-specified classes names, if any. 10 | * - header: The optional header. 11 | * - footer: The optional footer. 12 | * - rows: The results of the view query, if any. 13 | * - empty: The content to display if there are no rows. 14 | * - pager: The optional pager next/prev links to display. 15 | * - exposed: Exposed widget form/info to display. 16 | * - feed_icons: Optional feed icons to display. 17 | * - more: An optional link to the next page of results. 18 | * - title: Title of the view, only used when displaying in the admin preview. 19 | * - title_prefix: Additional output populated by modules, intended to be 20 | * displayed in front of the view title. 21 | * - title_suffix: Additional output populated by modules, intended to be 22 | * displayed after the view title. 23 | * - attachment_before: An optional attachment view to be displayed before the 24 | * view content. 25 | * - attachment_after: An optional attachment view to be displayed after the 26 | * view content. 27 | * - dom_id: Unique id for every view being printed to give unique class for 28 | * Javascript. 29 | * 30 | * @see template_preprocess_views_view() 31 | */ 32 | #} 33 | {% 34 | set classes = [ 35 | dom_id ? 'js-view-dom-id-' ~ dom_id, 36 | ] 37 | %} 38 | 39 | {{ title_prefix }} 40 | {{ title }} 41 | {{ title_suffix }} 42 | 43 | {% if header %} 44 |
45 | {{ header }} 46 |
47 | {% endif %} 48 | 49 | {{ exposed }} 50 | {{ attachment_before }} 51 | 52 | {{ rows }} 53 | {{ empty }} 54 | {{ pager }} 55 | 56 | {{ attachment_after }} 57 | {{ more }} 58 | 59 | {% if footer %} 60 |
61 | {{ footer }} 62 |
63 | {% endif %} 64 | 65 | {{ feed_icons }} 66 | 67 | -------------------------------------------------------------------------------- /templates/navigation/book-navigation.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to navigate books. 5 | * 6 | * Presented under nodes that are a part of book outlines. 7 | * 8 | * Available variables: 9 | * - tree: The immediate children of the current node rendered as an unordered 10 | * list. 11 | * - current_depth: Depth of the current node within the book outline. Provided 12 | * for context. 13 | * - prev_url: URL to the previous node. 14 | * - prev_title: Title of the previous node. 15 | * - parent_url: URL to the parent node. 16 | * - parent_title: Title of the parent node. Not printed by default. Provided 17 | * as an option. 18 | * - next_url: URL to the next node. 19 | * - next_title: Title of the next node. 20 | * - has_links: Flags TRUE whenever the previous, parent or next data has a 21 | * value. 22 | * - book_id: The book ID of the current outline being viewed. Same as the node 23 | * ID containing the entire outline. Provided for context. 24 | * - book_url: The book/node URL of the current outline being viewed. Provided 25 | * as an option. Not used by default. 26 | * - book_title: The book/node title of the current outline being viewed. 27 | * 28 | * @see template_preprocess_book_navigation() 29 | */ 30 | #} 31 | {% if tree or has_links %} 32 | 55 | {% endif %} 56 | -------------------------------------------------------------------------------- /templates/admin/locale-translation-update-info.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for displaying translation status information. 5 | * 6 | * Displays translation status information per language. 7 | * 8 | * Available variables: 9 | * - modules: A list of modules names that have available translation updates. 10 | * - updates: A list of available translation updates. 11 | * - not_found: A list of modules missing translation updates. 12 | * 13 | * @see template_preprocess_locale_translation_update_info() 14 | */ 15 | #} 16 |
17 | Show description 18 | {% if modules %} 19 | {% set module_list = modules|safe_join(', ') %} 20 | {% trans %}Updates for: {{ module_list }}{% endtrans %} 21 | {% elseif not_found %} 22 | 23 | {%- trans -%} 24 | Missing translations for one project 25 | {%- plural not_found|length -%} 26 | Missing translations for @count projects 27 | {%- endtrans -%} 28 | 29 | {% endif %} 30 | {% if updates or not_found %} 31 |
32 | {% if updates %} 33 |
    34 | {% for update in updates %} 35 |
  • {{ update.name }} ({{ update.timestamp|format_date('html_date') }})
  • 36 | {% endfor %} 37 |
38 | {% endif %} 39 | {% if not_found %} 40 | {# 41 | Prefix the missing updates list if there is an available updates lists 42 | before it. 43 | #} 44 | {% if updates %} 45 | {{ 'Missing translations for:'|t }} 46 | {% endif %} 47 | {% if not_found %} 48 |
    49 | {% for update in not_found %} 50 |
  • {{ update.name }} ({{ update.version|default('no version'|t) }}). {{ update.info }}
  • 51 | {% endfor %} 52 |
53 | {% endif %} 54 | {% endif %} 55 |
56 | {% endif %} 57 |
58 | -------------------------------------------------------------------------------- /templates/form/fieldset.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a fieldset element and its children. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the fieldset element. 8 | * - errors: (optional) Any errors for this fieldset element, may not be set. 9 | * - required: Boolean indicating whether the fieldeset element is required. 10 | * - legend: The legend element containing the following properties: 11 | * - title: Title of the fieldset, intended for use as the text of the legend. 12 | * - attributes: HTML attributes to apply to the legend. 13 | * - description: The description element containing the following properties: 14 | * - content: The description content of the fieldset. 15 | * - attributes: HTML attributes to apply to the description container. 16 | * - children: The rendered child elements of the fieldset. 17 | * - prefix: The content to add before the fieldset children. 18 | * - suffix: The content to add after the fieldset children. 19 | * 20 | * @see template_preprocess_fieldset() 21 | */ 22 | #} 23 | {% 24 | set classes = [ 25 | 'js-form-item', 26 | 'form-item', 27 | 'js-form-wrapper', 28 | 'form-wrapper', 29 | ] 30 | %} 31 | 32 | {% 33 | set legend_span_classes = [ 34 | 'fieldset-legend', 35 | required ? 'js-form-required', 36 | required ? 'form-required', 37 | ] 38 | %} 39 | {# Always wrap fieldset legends in a SPAN for CSS positioning. #} 40 | 41 | {{ legend.title }}
42 | 43 |
44 | {% if errors %} 45 |
46 | {{ errors }} 47 |
48 | {% endif %} 49 | {% if prefix %} 50 | {{ prefix }} 51 | {% endif %} 52 | {{ children }} 53 | {% if suffix %} 54 | {{ suffix }} 55 | {% endif %} 56 | {% if description.content %} 57 | {{ description.content }}
58 | {% endif %} 59 | 60 | 61 | -------------------------------------------------------------------------------- /sass/susy/output/support/_support.scss: -------------------------------------------------------------------------------- 1 | // Browser Support 2 | // =============== 3 | 4 | // Susy Support Defaults 5 | // --------------------- 6 | @include susy-defaults(( 7 | use-custom: ( 8 | clearfix: false, 9 | background-image: true, 10 | background-options: false, 11 | breakpoint: true, 12 | box-sizing: true, 13 | rem: true, 14 | ), 15 | )); 16 | 17 | 18 | // Susy Support [mixin] 19 | // -------------------- 20 | // Send property-value pairs to the proper support modules. 21 | // - $prop : 22 | // - $val : 23 | @mixin susy-support( 24 | $prop, 25 | $val 26 | ) { 27 | // Background Support 28 | @if $prop == background-image { 29 | @include susy-background-image($val); 30 | } @else if $prop == background-size { 31 | @include susy-background-size($val); 32 | } @else if $prop == background-origin { 33 | @include susy-background-origin($val); 34 | } @else if $prop == background-clip { 35 | @include susy-background-clip($val); 36 | } 37 | 38 | // Box-Sizing Support 39 | @else if $prop == box-sizing { 40 | @include susy-box-sizing($val); 41 | } 42 | 43 | // Rem Support 44 | @else { 45 | @include susy-rem($prop, $val); 46 | } 47 | } 48 | 49 | 50 | // Susy Support [function] 51 | // ----------------------- 52 | // Check for support of a feature. 53 | // - $feature : 54 | // - e.g "rem" or "box-sizing" 55 | // - $requirements : 56 | // - e.g (variable: rem-with-px-fallback, mixin: rem) 57 | // - $warn : 58 | @function susy-support( 59 | $feature, 60 | $requirements: (), 61 | $warn: true 62 | ) { 63 | $_support: susy-get(use-custom $feature); 64 | 65 | @if $_support { 66 | $_fail: false; 67 | 68 | @each $_type, $_req in $requirements { 69 | @each $_i in $_req { 70 | $_pass: call(#{$_type}-exists, $_i); 71 | 72 | @if not($_pass) { 73 | $_fail: true; 74 | @if $warn { 75 | @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available."; 76 | } 77 | } 78 | } 79 | } 80 | 81 | $_support: if($_fail, false, $_support); 82 | } 83 | 84 | @return $_support; 85 | } 86 | -------------------------------------------------------------------------------- /templates/admin/field-ui-table.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a Field UI table. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes to apply to the tag. 8 | * - caption: A localized string for the tag. 11 | * Note: Drupal currently supports only one table header row, see 12 | * https://www.drupal.org/node/893530 and 13 | * http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109. 14 | * - header: Table header cells. Each cell contains the following properties: 15 | * - tag: The HTML tag name to use; either TH or TD. 16 | * - attributes: HTML attributes to apply to the tag. 17 | * - content: A localized string for the title of the column. 18 | * - field: Field name (required for column sorting). 19 | * - sort: Default sort order for this column ("asc" or "desc"). 20 | * - sticky: A flag indicating whether to use a "sticky" table header. 21 | * - rows: Table rows. Each row contains the following properties: 22 | * - attributes: HTML attributes to apply to the tag. 23 | * - data: Table cells. 24 | * - no_striping: A flag indicating that the row should receive no 25 | * 'even / odd' styling. Defaults to FALSE. 26 | * - cells: Table cells of the row. Each cell contains the following keys: 27 | * - tag: The HTML tag name to use; either TH or TD. 28 | * - attributes: Any HTML attributes, such as "colspan", to apply to the 29 | * table cell. 30 | * - content: The string to display in the table cell. 31 | * - active_table_sort: A boolean indicating whether the cell is the active 32 | table sort. 33 | * - footer: Table footer rows, in the same format as the rows variable. 34 | * - empty: The message to display in an extra row if table does not have 35 | * any rows. 36 | * - no_striping: A boolean indicating that the row should receive no striping. 37 | * - header_columns: The number of columns in the header. 38 | * 39 | * @see template_preprocess_field_ui_table() 40 | */ 41 | #} 42 | {# Add Ajax wrapper. #} 43 |
44 | {% include 'table.html.twig' %} 45 |
46 | -------------------------------------------------------------------------------- /templates/views/views-view-fields.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display all the fields in a row. 5 | * 6 | * Available variables: 7 | * - view: The view in use. 8 | * - fields: A list of fields, each one contains: 9 | * - content: The output of the field. 10 | * - raw: The raw data for the field, if it exists. This is NOT output safe. 11 | * - class: The safe class ID to use. 12 | * - handler: The Views field handler controlling this field. 13 | * - inline: Whether or not the field should be inline. 14 | * - wrapper_element: An HTML element for a wrapper. 15 | * - wrapper_attributes: List of attributes for wrapper element. 16 | * - separator: An optional separator that may appear before a field. 17 | * - label: The field's label text. 18 | * - label_element: An HTML element for a label wrapper. 19 | * - label_attributes: List of attributes for label wrapper. 20 | * - label_suffix: Colon after the label. 21 | * - element_type: An HTML element for the field content. 22 | * - element_attributes: List of attributes for HTML element for field content. 23 | * - has_label_colon: A boolean indicating whether to display a colon after 24 | * the label. 25 | * - element_type: An HTML element for the field content. 26 | * - element_attributes: List of attributes for HTML element for field content. 27 | * - row: The raw result from the query, with all data it fetched. 28 | * 29 | * @see template_preprocess_views_view_fields() 30 | */ 31 | #} 32 | {% for field in fields -%} 33 | {{ field.separator }} 34 | {%- if field.wrapper_element -%} 35 | <{{ field.wrapper_element }}{{ field.wrapper_attributes }}> 36 | {%- endif %} 37 | {%- if field.label -%} 38 | {%- if field.label_element -%} 39 | <{{ field.label_element }}{{ field.label_attributes }}>{{ field.label }}{{ field.label_suffix }} 40 | {%- else -%} 41 | {{ field.label }}{{ field.label_suffix }} 42 | {%- endif %} 43 | {%- endif %} 44 | {%- if field.element_type -%} 45 | <{{ field.element_type }}{{ field.element_attributes }}>{{ field.content }} 46 | {%- else -%} 47 | {{ field.content }} 48 | {%- endif %} 49 | {%- if field.wrapper_element -%} 50 | 51 | {%- endif %} 52 | {%- endfor %} 53 | -------------------------------------------------------------------------------- /templates/field/field.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a field. 5 | * 6 | * To override output, copy the "field.html.twig" from the templates directory 7 | * to your theme's directory and customize it, just like customizing other 8 | * Drupal templates such as page.html.twig or node.html.twig. 9 | * 10 | * Instead of overriding the theming for all fields, you can also just override 11 | * theming for a subset of fields using 12 | * @link themeable Theme hook suggestions. @endlink For example, 13 | * here are some theme hook suggestions that can be used for a field_foo field 14 | * on an article node type: 15 | * - field--node--field-foo--article.html.twig 16 | * - field--node--field-foo.html.twig 17 | * - field--node--article.html.twig 18 | * - field--field-foo.html.twig 19 | * - field--text-with-summary.html.twig 20 | * - field.html.twig 21 | * 22 | * Available variables: 23 | * - attributes: HTML attributes for the containing element. 24 | * - label_hidden: Whether to show the field label or not. 25 | * - title_attributes: HTML attributes for the title. 26 | * - label: The label for the field. 27 | * - multiple: TRUE if a field can contain multiple items. 28 | * - items: List of all the field items. Each item contains: 29 | * - attributes: List of HTML attributes for each item. 30 | * - content: The field item's content. 31 | * - entity_type: The entity type to which the field belongs. 32 | * - field_name: The name of the field. 33 | * - field_type: The type of the field. 34 | * - label_display: The display settings for the label. 35 | * 36 | * @see template_preprocess_field() 37 | */ 38 | #} 39 | 40 | {% if label_hidden %} 41 | {% if multiple %} 42 | 43 | {% for item in items %} 44 | {{ item.content }} 45 | {% endfor %} 46 | 47 | {% else %} 48 | {% for item in items %} 49 | {{ item.content }} 50 | {% endfor %} 51 | {% endif %} 52 | {% else %} 53 | 54 | {{ label }} 55 | {% if multiple %} 56 |
57 | {% endif %} 58 | {% for item in items %} 59 | {{ item.content }}
60 | {% endfor %} 61 | {% if multiple %} 62 | 63 | {% endif %} 64 | 65 | {% endif %} 66 | -------------------------------------------------------------------------------- /templates/block/block--system-menu-block.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a menu block. 5 | * 6 | * Available variables: 7 | * - plugin_id: The ID of the block implementation. 8 | * - label: The configured label of the block if visible. 9 | * - configuration: A list of the block's configuration values. 10 | * - label: The configured label for the block. 11 | * - label_display: The display settings for the label. 12 | * - provider: The module or other provider that provided this block plugin. 13 | * - Block plugin specific settings will also be stored here. 14 | * - content: The content of this block. 15 | * - attributes: HTML attributes for the containing element. 16 | * - id: A valid HTML ID and guaranteed unique. 17 | * - title_attributes: HTML attributes for the title element. 18 | * - content_attributes: HTML attributes for the content element. 19 | * - title_prefix: Additional output populated by modules, intended to be 20 | * displayed in front of the main title tag that appears in the template. 21 | * - title_suffix: Additional output populated by modules, intended to be 22 | * displayed after the main title tag that appears in the template. 23 | * 24 | * Headings should be used on navigation menus that consistently appear on 25 | * multiple pages. When this menu block's label is configured to not be 26 | * displayed, it is automatically made invisible using the 'visually-hidden' CSS 27 | * class, which still keeps it visible for screen-readers and assistive 28 | * technology. Headings allow screen-reader and keyboard only users to navigate 29 | * to or skip the links. 30 | * See http://juicystudio.com/article/screen-readers-display-none.php and 31 | * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. 32 | */ 33 | #} 34 | {% set heading_id = attributes.id ~ '-menu'|clean_id %} 35 | 49 | -------------------------------------------------------------------------------- /templates/navigation/links.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for a set of links. 5 | * 6 | * Available variables: 7 | * - attributes: Attributes for the UL containing the list of links. 8 | * - links: Links to be output. 9 | * Each link will have the following elements: 10 | * - title: The link text. 11 | * - href: The link URL. If omitted, the 'title' is shown as a plain text 12 | * item in the links list. If 'href' is supplied, the entire link is passed 13 | * to l() as its $options parameter. 14 | * - attributes: (optional) HTML attributes for the anchor, or for the 15 | * tag if no 'href' is supplied. 16 | * - link_key: The link CSS class. 17 | * - heading: (optional) A heading to precede the links. 18 | * - text: The heading text. 19 | * - level: The heading level (e.g. 'h2', 'h3'). 20 | * - attributes: (optional) A keyed list of attributes for the heading. 21 | * If the heading is a string, it will be used as the text of the heading and 22 | * the level will default to 'h2'. 23 | * 24 | * Headings should be used on navigation menus and any list of links that 25 | * consistently appears on multiple pages. To make the heading invisible use 26 | * the 'visually-hidden' CSS class. Do not use 'display:none', which 27 | * removes it from screen readers and assistive technology. Headings allow 28 | * screen reader and keyboard only users to navigate to or skip the links. 29 | * See http://juicystudio.com/article/screen-readers-display-none.php and 30 | * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. 31 | * 32 | * @see template_preprocess_links() 33 | */ 34 | #} 35 | {% if links -%} 36 | {%- if heading -%} 37 | {%- if heading.level -%} 38 | <{{ heading.level }}{{ heading.attributes }}>{{ heading.text }} 39 | {%- else -%} 40 | {{ heading.text }} 41 | {%- endif -%} 42 | {%- endif -%} 43 | 44 | {%- for key, item in links -%} 45 | 46 | {%- if item.link -%} 47 | {{ item.link }} 48 | {%- elseif item.text_attributes -%} 49 | {{ item.text }} 50 | {%- else -%} 51 | {{ item.text }} 52 | {%- endif -%} 53 | 54 | {%- endfor -%} 55 | 56 | {%- endif %} 57 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_container.scss: -------------------------------------------------------------------------------- 1 | // Container Syntax 2 | // ================ 3 | 4 | // Container [mixin] 5 | // ----------------- 6 | // Set a container element 7 | // - [$layout] : 8 | @mixin container( 9 | $layout: $susy 10 | ) { 11 | $inspect : $layout; 12 | $layout : parse-grid($layout); 13 | 14 | $_width : get-container-width($layout); 15 | $_justify : parse-container-position(susy-get(container-position, $layout)); 16 | $_property : if(susy-get(math, $layout) == static, width, max-width); 17 | 18 | $_box : susy-get(box-sizing, $layout); 19 | 20 | @if $_box { 21 | @include output((box-sizing: $_box)); 22 | } 23 | 24 | @include susy-inspect(container, $inspect); 25 | @include float-container($_width, $_justify, $_property); 26 | @include show-grid($layout); 27 | } 28 | 29 | // Container [function] 30 | // -------------------- 31 | // Return container width 32 | // - [$layout] : 33 | @function container( 34 | $layout: $susy 35 | ) { 36 | $layout: parse-grid($layout); 37 | @return get-container-width($layout); 38 | } 39 | 40 | // Get Container Width 41 | // ------------------- 42 | // Calculate the container width 43 | // - [$layout]: 44 | @function get-container-width( 45 | $layout: $susy 46 | ) { 47 | $layout : parse-grid($layout); 48 | $_width : susy-get(container, $layout); 49 | $_column-width : susy-get(column-width, $layout); 50 | $_math : susy-get(math, $layout); 51 | 52 | @if not($_width) or $_width == auto { 53 | @if valid-column-math($_math, $_column-width) { 54 | $_columns : susy-get(columns, $layout); 55 | $_gutters : susy-get(gutters, $layout); 56 | $_spread : if(is-split($layout), wide, narrow); 57 | $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width; 58 | } @else { 59 | $_width: 100%; 60 | } 61 | } 62 | 63 | @return $_width; 64 | } 65 | 66 | // Parse Container Position 67 | // ------------------------ 68 | // Parse the $container-position into margin values. 69 | // - [$justify] : left | center | right | [] 70 | @function parse-container-position( 71 | $justify: map-get($susy-defaults, container-position) 72 | ) { 73 | $_return: if($justify == left, 0, auto) if($justify == right, 0, auto); 74 | 75 | @if not(index(left right center, $justify)) { 76 | $_return: nth($justify, 1); 77 | $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return); 78 | } 79 | 80 | @return $_return; 81 | } 82 | -------------------------------------------------------------------------------- /sass/susy/su/_utilities.scss: -------------------------------------------------------------------------------- 1 | // Map Functions 2 | // ============= 3 | 4 | 5 | // Truncate List 6 | // ------------- 7 | // - Return a list, truncated to a given length 8 | @function _susy-truncate-list( 9 | $list, 10 | $length 11 | ) { 12 | $_return: (); 13 | 14 | @for $i from 1 through length($list) { 15 | $_return: if($i <= $length, append($_return, nth($list, $i)), $_return); 16 | } 17 | 18 | @return $_return; 19 | } 20 | 21 | 22 | // Deep Get 23 | // -------- 24 | // - Return a value deep in nested maps 25 | @function _susy-deep-get( 26 | $map, 27 | $keys... 28 | ) { 29 | $_return: $map; 30 | 31 | @each $key in $keys { 32 | @if type-of($_return) == map { 33 | $_return: map-get($_return, $key); 34 | } 35 | } 36 | 37 | @return $_return; 38 | } 39 | 40 | 41 | // Deep Set 42 | // -------- 43 | // - Set a value deep in nested maps 44 | @function _susy-deep-set( 45 | $map, 46 | $keys-value... 47 | ) { 48 | $_value: nth($keys-value, -1); 49 | $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1); 50 | $_length: length($_keys); 51 | $_return: (); 52 | 53 | @for $i from 1 through $_length { 54 | $_n: 0 - $i; 55 | $_level: _susy-truncate-list($_keys, $_length + $_n); 56 | $_level: _susy-deep-get($map, $_level...); 57 | $_merge: nth($_keys, $_n); 58 | $_merge: ($_merge: $_value); 59 | $_return: if($_level, map-merge($_level, $_merge), $_merge); 60 | $_value: $_return; 61 | } 62 | 63 | @return $_return; 64 | } 65 | 66 | 67 | // Deep Merge 68 | // ---------- 69 | // Return 2 objects of any depth, merged 70 | @function _susy-deep-merge( 71 | $map1, 72 | $map2 73 | ) { 74 | 75 | @if type-of($map1) != map or type-of($map2) != map { 76 | $map1: $map2; 77 | } @else { 78 | @each $key, $value in $map2 { 79 | $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value)); 80 | $map1: map-merge($map1, $_new); 81 | } 82 | } 83 | 84 | @return $map1; 85 | } 86 | 87 | 88 | // Deep Has-Key 89 | // ------------ 90 | // - Return true if a deep key exists 91 | @function _susy-deep-has-key( 92 | $map, 93 | $keys... 94 | ) { 95 | $_return: null; 96 | $_stop: false; 97 | 98 | @each $key in $keys { 99 | @if not($_stop) { 100 | $_return: map-has-key($map, $key); 101 | } 102 | 103 | @if $_return { 104 | $map: map-get($map, $key); 105 | } @else { 106 | $_stop: true; 107 | } 108 | } 109 | 110 | @return $_return; 111 | } 112 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_margins.scss: -------------------------------------------------------------------------------- 1 | // Margin Syntax 2 | // ============= 3 | 4 | // Pre 5 | // --- 6 | // Add spanning-margins before an element. 7 | // - $span : 8 | @mixin pre( 9 | $span 10 | ) { 11 | $inspect: $span; 12 | $span : map-merge((spread: wide), parse-span($span)); 13 | $flow : susy-get(flow, $span); 14 | $split : if(susy-get(gutter-position, $span) == split, true, false); 15 | $gutter : gutter($span); 16 | $span : span($span); 17 | $width : if($split and $gutter, $span + $gutter, $span); 18 | 19 | @include susy-inspect(pre, $inspect); 20 | @include margin-output($width, null, $flow); 21 | } 22 | 23 | // Post 24 | // ---- 25 | // Add spanning-margins after an element. 26 | // - $span : 27 | @mixin post( 28 | $span 29 | ) { 30 | $inspect : $span; 31 | $span : map-merge((spread: wide), parse-span($span)); 32 | $flow : susy-get(flow, $span); 33 | $split : if(susy-get(gutter-position, $span) == split, true, false); 34 | $width : if($split, span($span) + gutter($span), span($span)); 35 | 36 | @include susy-inspect(post, $inspect); 37 | @include margin-output(null, $width, $flow); 38 | } 39 | 40 | // Push 41 | // ---- 42 | // Simple synonymn for pre. 43 | // - $span : 44 | @mixin push( 45 | $span 46 | ) { 47 | @include pre($span); 48 | } 49 | 50 | // Pull 51 | // ---- 52 | // Add negative spanning-margins before an element. 53 | // - $span : 54 | @mixin pull( 55 | $span 56 | ) { 57 | $inspect : $span; 58 | $span : map-merge((spread: wide), parse-span($span)); 59 | $flow : susy-get(flow, $span); 60 | $split : if(susy-get(gutter-position, $span) == split, true, false); 61 | $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); 62 | 63 | @include susy-inspect(pull, $inspect); 64 | @include margin-output($width, null, $flow); 65 | } 66 | 67 | // Squish 68 | // ------ 69 | // Add spanning-margins before and after an element. 70 | // - $pre : 71 | // - [$post] : 72 | @mixin squish( 73 | $pre, 74 | $post: false 75 | ) { 76 | $inspect : $pre, $post; 77 | $pre : map-merge((spread: wide), parse-span($pre)); 78 | 79 | @if $post { 80 | $post: map-merge((spread: wide), parse-span($post)); 81 | } @else { 82 | $span: susy-get(span, $pre); 83 | @if length($span) > 1 { 84 | $pre: map-merge($pre, (span: nth($span, 1))); 85 | $post: map-merge($pre, (span: nth($span, 2))); 86 | } @else { 87 | $post: $pre; 88 | } 89 | } 90 | 91 | @include susy-inspect(squish, $inspect...); 92 | @include pre($pre); 93 | @include post($post); 94 | } 95 | -------------------------------------------------------------------------------- /templates/views/views-view-grid.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for views to display rows in a grid. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the wrapping element. 8 | * - title: The title of this group of rows. 9 | * - view: The view object. 10 | * - rows: The rendered view results. 11 | * - options: The view plugin style options. 12 | * - row_class_default: A flag indicating whether default classes should be 13 | * used on rows. 14 | * - col_class_default: A flag indicating whether default classes should be 15 | * used on columns. 16 | * - items: A list of grid items. Each item contains a list of rows or columns. 17 | * The order in what comes first (row or column) depends on which alignment 18 | * type is chosen (horizontal or vertical). 19 | * - attributes: HTML attributes for each row or column. 20 | * - content: A list of columns or rows. Each row or column contains: 21 | * - attributes: HTML attributes for each row or column. 22 | * - content: The row or column contents. 23 | * 24 | * @see template_preprocess_views_view_grid() 25 | */ 26 | #} 27 | {% 28 | set classes = [ 29 | 'views-view-grid', 30 | options.alignment, 31 | 'cols-' ~ options.columns, 32 | 'clearfix', 33 | ] 34 | %} 35 | {% if options.row_class_default %} 36 | {% 37 | set row_classes = [ 38 | 'views-row', 39 | options.alignment == 'horizontal' ? 'clearfix', 40 | ] 41 | %} 42 | {% endif %} 43 | {% if options.col_class_default %} 44 | {% 45 | set col_classes = [ 46 | 'views-col', 47 | options.alignment == 'vertical' ? 'clearfix', 48 | ] 49 | %} 50 | {% endif %} 51 | {% if title %} 52 |

{{ title }}

53 | {% endif %} 54 | 55 | {% if options.alignment == 'horizontal' %} 56 | {% for row in items %} 57 | 58 | {% for column in row.content %} 59 | 60 | {{ column.content }} 61 | 62 | {% endfor %} 63 | 64 | {% endfor %} 65 | {% else %} 66 | {% for column in items %} 67 | 68 | {% for row in column.content %} 69 | 70 | {{ row.content }} 71 | 72 | {% endfor %} 73 | 74 | {% endfor %} 75 | {% endif %} 76 | 77 | -------------------------------------------------------------------------------- /templates/admin/system-modules-uninstall.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the modules uninstall page. 5 | * 6 | * Available variables: 7 | * - form: The modules uninstall form. 8 | * - modules: Contains multiple module instances. Each module contains: 9 | * - attributes: Attributes on the row. 10 | * - module_name: The name of the module. 11 | * - checkbox: A checkbox for uninstalling the module. 12 | * - checkbox_id: A unique identifier for interacting with the checkbox 13 | * element. 14 | * - name: The human-readable name of the module. 15 | * - description: The description of the module. 16 | * - disabled_reasons: (optional) A list of reasons why this module cannot be 17 | * uninstalled. 18 | * 19 | * @see template_preprocess_system_modules_uninstall() 20 | */ 21 | #} 22 | {{ form.filters }} 23 | 24 |
tag. 9 | * - colgroups: Column groups. Each group contains the following properties: 10 | * - attributes: HTML attributes to apply to the
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | {% for module in modules %} 34 | {% set zebra = cycle(['odd', 'even'], loop.index0) -%} 35 | 36 | 39 | 42 | 64 | 65 | {% else %} 66 | 67 | 68 | 69 | {% endfor %} 70 | 71 |
{{ 'Uninstall'|t }}{{ 'Name'|t }}{{ 'Description'|t }}
37 | {{- module.checkbox -}} 38 | 40 | 41 | 43 | {{ module.description }} 44 | {% if module.reasons_count > 0 %} 45 |
46 | {%- trans -%} 47 | The following reason prevents {{ module.module_name }} from being uninstalled: 48 | {%- plural module.reasons_count -%} 49 | The following reasons prevent {{ module.module_name }} from being uninstalled: 50 | {%- endtrans %} 51 |
52 |
    53 | {%- for reason in module.validation_reasons -%} 54 |
  • {{ reason }}
  • 55 | {%- endfor -%} 56 | {%- if module.required_by -%} 57 |
  • {{ 'Required by: @module-list'|t({'@module-list': module.required_by|safe_join(', ') }) }}
  • 58 | {%- endif -%} 59 |
60 |
61 |
62 | {% endif %} 63 |
{{ 'No modules are available to uninstall.'|t }}
72 | 73 | {{ form|without('filters', 'modules', 'uninstall') }} 74 | -------------------------------------------------------------------------------- /templates/content/search-result.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for displaying a single search result. 5 | * 6 | * This template renders a single search result. The list of results is 7 | * rendered using '#theme' => 'item_list', with suggestions of: 8 | * - item_list__search_results__(plugin_id) 9 | * - item_list__search_results 10 | * 11 | * Available variables: 12 | * - url: URL of the result. 13 | * - title: Title of the result. 14 | * - snippet: A small preview of the result. Does not apply to user searches. 15 | * - info: String of all the meta information ready for print. Does not apply 16 | * to user searches. 17 | * - plugin_id: The machine-readable name of the plugin being executed,such 18 | * as "node_search" or "user_search". 19 | * - title_prefix: Additional output populated by modules, intended to be 20 | * displayed in front of the main title tag that appears in the template. 21 | * - title_suffix: Additional output populated by modules, intended to be 22 | * displayed after the main title tag that appears in the template. 23 | * - info_split: Contains same data as info, but split into separate parts. 24 | * - info_split.type: Node type (or item type string supplied by module). 25 | * - info_split.user: Author of the node linked to users profile. Depends 26 | * on permission. 27 | * - info_split.date: Last update of the node. Short formatted. 28 | * - info_split.comment: Number of comments output as "% comments", % 29 | * being the count. (Depends on comment.module). 30 | * @todo The info variable needs to be made drillable and each of these sub 31 | * items should instead be within info and renamed info.foo, info.bar, etc. 32 | * 33 | * Other variables: 34 | * - title_attributes: HTML attributes for the title. 35 | * - content_attributes: HTML attributes for the content. 36 | * 37 | * Since info_split is keyed, a direct print of the item is possible. 38 | * This array does not apply to user searches so it is recommended to check 39 | * for its existence before printing. The default keys of 'type', 'user' and 40 | * 'date' always exist for node searches. Modules may provide other data. 41 | * @code 42 | * {% if (info_split.comment) %} 43 | * 44 | * {{ info_split.comment }} 45 | * 46 | * {% endif %} 47 | * @endcode 48 | * 49 | * To check for all available data within info_split, use the code below. 50 | * @code 51 | *
52 |  *     {{ dump(info_split) }}
53 |  *   
54 | * @endcode 55 | * 56 | * @see template_preprocess_search_result() 57 | */ 58 | #} 59 | {{ title_prefix }} 60 | 61 | {{ title }} 62 | 63 | {{ title_suffix }} 64 | {% if snippet %} 65 | {{ snippet }}

66 | {% endif %} 67 | {% if info %} 68 |

{{ info }}

69 | {% endif %} 70 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_gallery.scss: -------------------------------------------------------------------------------- 1 | // Gallery Syntax 2 | // ============== 3 | 4 | // Gallery 5 | // ------- 6 | // Create an isolated gallery 7 | // - $span : 8 | // - [$selector] : child | of-type 9 | @mixin gallery( 10 | $span, 11 | $selector: child 12 | ) { 13 | $inspect : $span; 14 | $span : parse-span($span); 15 | $span : map-merge($span, (location: 1)); 16 | 17 | $n : susy-get(span, $span); 18 | $columns : susy-get(columns, $span); 19 | $context : susy-count($columns); 20 | $flow : susy-get(flow, $span); 21 | 22 | $inside : is-inside($span); 23 | $from : from($flow); 24 | $line : floor($context / $n); 25 | $symmetrical : is-symmetrical($columns); 26 | 27 | $output: ( 28 | width : null, 29 | float : from, 30 | margin-before : null, 31 | margin-after : null, 32 | padding-before : null, 33 | padding-after : null, 34 | flow : $flow, 35 | ); 36 | 37 | @if $inside { 38 | $gutters: get-gutters($span); 39 | $output: map-merge($output, ( 40 | padding-before: map-get($gutters, before), 41 | padding-after: map-get($gutters, after), 42 | )); 43 | } 44 | 45 | @if $symmetrical { 46 | $output: map-merge($output, (width: get-span-width($span))); 47 | } 48 | 49 | $box : susy-get(box-sizing, $span); 50 | $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false); 51 | 52 | @include susy-inspect(gallery, $inspect); 53 | 54 | // Collective Output 55 | @if $box == border-box or ($inside and not($box) and not($global-box)) { 56 | @include output((box-sizing: border-box)); 57 | } @else if $box == content-box { 58 | @include output((box-sizing: content-box)); 59 | } 60 | 61 | @include float-span-output($output...); 62 | 63 | // Individual Loop 64 | @for $item from 1 through $line { 65 | $nth: '#{$line}n + #{$item}'; 66 | &:nth-#{$selector}(#{$nth}) { 67 | // Individual Prep 68 | $output: ( 69 | width : if($symmetrical, null, get-span-width($span)), 70 | float : null, 71 | margin-before : get-isolation($span), 72 | margin-after : -100%, 73 | padding-before : null, 74 | padding-after : null, 75 | flow : $flow, 76 | ); 77 | 78 | // Individual Output 79 | @include float-span-output($output...); 80 | 81 | @if get-edge($span) == first { 82 | @include break; 83 | @include first($span); 84 | } @else { 85 | @include nobreak; 86 | } 87 | 88 | // Individual Location Increment 89 | $location: get-location($span) + $n; 90 | $location: if($location > $context, 1, $location); 91 | $span: map-merge($span, (location: $location)); 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /templates/admin/image-style-preview.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a preview of an image style. 5 | * 6 | * Available variables: 7 | * - style_id: The ID of the image style. 8 | * - style_name: The name of the image style. 9 | * - cache_bypass: A timestamp token used to avoid browser caching of images. 10 | * - original: An associative array containing: 11 | * - url: The URL of the original image. 12 | * - width: The width in pixels of the original image. 13 | * - height: The height in pixels of the original image. 14 | * - rendered: The render array for the original image. 15 | * - derivative: An associative array containing: 16 | * - url: The URL of the derivative image. 17 | * - width: The width in pixels of the derivative image. 18 | * - height: The height in pixels of the derivative image. 19 | * - rendered: The rendered derivative image. 20 | * - preview: An associative array containing: 21 | * - original: An associative array containing: 22 | * - width: The width in pixels of the original image in the preview. 23 | * - height: The height in pixels of the original image in the preview. 24 | * - derivative: An associative array containing: 25 | * - width: The width in pixels of the derivative image in the preview. 26 | * - height: The height in pixels of the derivative image in the preview. 27 | * 28 | * @see template_preprocess_image_style_preview() 29 | */ 30 | #} 31 |
32 | {# Preview of the original image. #} 33 |
34 | {{ 'original'|t }} ({{ 'view actual size'|t }}) 35 |
36 | 37 | {{ original.rendered }} 38 | 39 |
{{ original.height }}px
40 |
{{ original.width }}px
41 |
42 |
43 | 44 | {# Derivative of the image style. #} 45 |
46 | {{ style_name }} ({{ 'view actual size'|t }}) 47 |
48 | 49 | {{ derivative.rendered }} 50 | 51 |
{{ derivative.height }}px
52 |
{{ derivative.width }}px
53 |
54 |
55 |
56 | -------------------------------------------------------------------------------- /sass/susy/su/_grid.scss: -------------------------------------------------------------------------------- 1 | // Column math 2 | // =========== 3 | 4 | 5 | // Is Symmetrical 6 | // -------------- 7 | // Returns true if a grid is symmetrical. 8 | // - [$columns] : | 9 | @function is-symmetrical( 10 | $columns: susy-get(columns) 11 | ) { 12 | $columns: valid-columns($columns); 13 | @return if(type-of($columns) == number, $columns, null); 14 | } 15 | 16 | 17 | // Susy Count 18 | // ---------- 19 | // Find the number of columns in a given layout 20 | // - [$columns] : | 21 | @function susy-count( 22 | $columns: susy-get(columns) 23 | ) { 24 | $columns: valid-columns($columns); 25 | @return is-symmetrical($columns) or length($columns); 26 | } 27 | 28 | 29 | // Susy Sum 30 | // -------- 31 | // Find the total sum of column-units in a layout 32 | // - [$columns] : | 33 | // - [$gutters] : 34 | // - [$spread] : false/narrow | wide | wider 35 | @function susy-sum( 36 | $columns : susy-get(columns), 37 | $gutters : susy-get(gutters), 38 | $spread : false 39 | ) { 40 | $columns: valid-columns($columns); 41 | $gutters: valid-gutters($gutters); 42 | 43 | $spread: if($spread == wide, 0, if($spread == wider, 1, -1)); 44 | $gutter-sum: (susy-count($columns) + $spread) * $gutters; 45 | $column-sum: is-symmetrical($columns); 46 | 47 | @if not($column-sum) { 48 | @each $column in $columns { 49 | $column-sum: ($column-sum or 0) + $column; 50 | } 51 | } 52 | 53 | @return $column-sum + $gutter-sum; 54 | } 55 | 56 | 57 | // Susy Slice 58 | // ---------- 59 | // Return a subset of columns at a given location. 60 | // - $span : 61 | // - $location : 62 | // - [$columns] : | 63 | @function susy-slice( 64 | $span, 65 | $location, 66 | $columns: susy-get(columns) 67 | ) { 68 | $columns: valid-columns($columns); 69 | $sub-columns: $span; 70 | 71 | @if not(is-symmetrical($columns)) { 72 | $location: $location or 1; 73 | $sub-columns: (); 74 | @for $i from $location to ($location + $span) { 75 | $sub-columns: append($sub-columns, nth($columns, $i)); 76 | } 77 | } 78 | 79 | @return $sub-columns; 80 | } 81 | 82 | 83 | // Susy 84 | // ---- 85 | // Find the sum of a column-span. 86 | // - $span : 87 | // - $location : 88 | // - [$columns] : | 89 | // - [$gutters] : 90 | // - [$spread] : false/narrow | wide | wider 91 | @function susy( 92 | $span, 93 | $location : false, 94 | $columns : susy-get(columns), 95 | $gutters : susy-get(gutters), 96 | $spread : false 97 | ) { 98 | $columns: valid-columns($columns); 99 | $gutters: valid-gutters($gutters); 100 | $span: susy-slice($span, $location, $columns); 101 | 102 | @return susy-sum($span, $gutters, $spread); 103 | } 104 | -------------------------------------------------------------------------------- /templates/admin/system-themes-page.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the Appearance page. 5 | * 6 | * Available variables: 7 | * - attributes: HTML attributes for the main container. 8 | * - theme_groups: A list of theme groups. Each theme group contains: 9 | * - attributes: HTML attributes specific to this theme group. 10 | * - title: Title for the theme group. 11 | * - state: State of the theme group, e.g. installed or uninstalled. 12 | * - themes: A list of themes within the theme group. Each theme contains: 13 | * - attributes: HTML attributes specific to this theme. 14 | * - screenshot: A screenshot representing the theme. 15 | * - description: Description of the theme. 16 | * - name: Theme name. 17 | * - version: The theme's version number. 18 | * - is_default: Boolean indicating whether the theme is the default theme 19 | * or not. 20 | * - is_admin: Boolean indicating whether the theme is the admin theme or 21 | * not. 22 | * - notes: Identifies what context this theme is being used in, e.g., 23 | * default theme, admin theme. 24 | * - incompatible: Text describing any compatibility issues. 25 | * - operations: A list of operation links, e.g., Settings, Enable, Disable, 26 | * etc. these links should only be displayed if the theme is compatible. 27 | * 28 | * @see template_preprocess_system_themes_page() 29 | */ 30 | #} 31 | 32 | {% for theme_group in theme_groups %} 33 | {% 34 | set theme_group_classes = [ 35 | 'system-themes-list', 36 | 'system-themes-list-' ~ theme_group.state, 37 | 'clearfix', 38 | ] 39 | %} 40 | 41 |

{{ theme_group.title }}

42 | {% for theme in theme_group.themes %} 43 | {% 44 | set theme_classes = [ 45 | theme.is_default ? 'theme-default', 46 | theme.is_admin ? 'theme-admin', 47 | 'theme-selector', 48 | 'clearfix', 49 | ] 50 | %} 51 | 52 | {% if theme.screenshot %} 53 | {{ theme.screenshot }} 54 | {% endif %} 55 |
56 |

57 | {{- theme.name }} {{ theme.version -}} 58 | {% if theme.notes %} 59 | ({{ theme.notes|safe_join(', ') }}) 60 | {%- endif -%} 61 |

62 |
{{ theme.description }}
63 | {# Display operation links if the theme is compatible. #} 64 | {% if theme.incompatible %} 65 |
{{ theme.incompatible }}
66 | {% else %} 67 | {{ theme.operations }} 68 | {% endif %} 69 |
70 | 71 | {% endfor %} 72 | 73 | {% endfor %} 74 | 75 | -------------------------------------------------------------------------------- /templates/dataset/forum-list.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override to display a list of forums and containers. 5 | * 6 | * Available variables: 7 | * - forums: A collection of forums and containers to display. It is keyed to 8 | * the numeric IDs of all child forums and containers. Each forum in forums 9 | * contains: 10 | * - is_container: A flag indicating if the forum can contain other 11 | * forums. Otherwise, the forum can only contain topics. 12 | * - depth: How deep the forum is in the current hierarchy. 13 | * - zebra: 'even' or 'odd', used for row class. 14 | * - icon_class: 'default' or 'new', used for forum icon class. 15 | * - icon_title: Text alternative for the forum icon. 16 | * - name: The name of the forum. 17 | * - link: The URL to link to this forum. 18 | * - description: The description field for the forum, containing: 19 | * - value: The descriptive text for the forum. 20 | * - new_topics: A flag indicating if the forum contains unread posts. 21 | * - new_url: A URL to the forum's unread posts. 22 | * - new_text: Text for the above URL, which tells how many new posts. 23 | * - old_topics: A count of posts that have already been read. 24 | * - num_posts: The total number of posts in the forum. 25 | * - last_reply: Text representing the last time a forum was posted or 26 | * commented in. 27 | * - forum_id: Forum ID for the current forum. Parent to all items within the 28 | * forums array. 29 | * 30 | * @see template_preprocess_forum_list() 31 | */ 32 | #} 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | {% for child_id, forum in forums %} 44 | 45 | 46 | {# 47 | Enclose the contents of this cell with X divs, where X is the 48 | depth this forum resides at. This will allow us to use CSS 49 | left-margin for indenting. 50 | #} 51 | {% for i in 1..forum.depth if forum.depth > 0 %}
{% endfor %} 52 |
53 | {{ forum.icon_title }} 54 |
55 | 56 | {% if forum.description.value %} 57 |
{{ forum.description.value }}
58 | {% endif %} 59 | {% for i in 1..forum.depth if forum.depth > 0 %}
{% endfor %} 60 | 61 | {% if forum.is_container == false %} 62 |
69 | 70 | 71 | {% endif %} 72 | 73 | {% endfor %} 74 | 75 |
{{ 'Forum'|t }}{{ 'Topics'|t }}{{ 'Posts'|t }}{{ 'Last post'|t }}
63 | {{ forum.num_topics }} 64 | {% if forum.new_topics == true %} 65 |
66 | {{ forum.new_text }} 67 | {% endif %} 68 |
{{ forum.num_posts }}{{ forum.last_reply }}
76 | -------------------------------------------------------------------------------- /sass/susy/language/susy/_rows.scss: -------------------------------------------------------------------------------- 1 | // Row Start & End 2 | // =============== 3 | 4 | // Break 5 | // ----- 6 | // Apply to any element that should force a line break. 7 | @mixin break { 8 | @include output((clear: both)); 9 | } 10 | 11 | 12 | // NoBreak 13 | // ------- 14 | // Cancel the break() effect, e.g. when using media queries. 15 | @mixin nobreak { 16 | @include output((clear: none)); 17 | } 18 | 19 | 20 | // Full 21 | // ---- 22 | // - [$context]: 23 | @mixin full( 24 | $context: $susy 25 | ) { 26 | $inspect : $context; 27 | @include susy-inspect(full, $inspect); 28 | @include span(full of parse-grid($context) break); 29 | } 30 | 31 | 32 | // First 33 | // ----- 34 | // - [$context]: 35 | @mixin first( 36 | $context: $susy 37 | ) { 38 | $inspect : $context; 39 | $context : parse-grid($context); 40 | $flow : susy-get(flow, $context); 41 | 42 | @include susy-inspect(first, $inspect); 43 | @if not(is-split($context)) { 44 | @include float-first($flow); 45 | } 46 | } 47 | 48 | @mixin alpha( 49 | $context: $susy 50 | ) { 51 | @include first($context); 52 | } 53 | 54 | 55 | // Last 56 | // ---- 57 | // - [$context]: 58 | @mixin last( 59 | $context: $susy 60 | ) { 61 | $inspect : $context; 62 | $context : parse-grid($context); 63 | 64 | @include susy-inspect(last, $inspect); 65 | 66 | $output: ( 67 | flow: susy-get(flow, $context), 68 | last-flow: susy-get(last-flow, $context), 69 | margin: if(is-split($context), null, 0), 70 | ); 71 | 72 | @include float-last($output...); 73 | } 74 | 75 | @mixin omega( 76 | $context: $susy 77 | ) { 78 | @include last($context); 79 | } 80 | 81 | 82 | // Get Edge 83 | // -------- 84 | // Calculate edge value based on location, if possible 85 | @function get-edge( 86 | $span 87 | ) { 88 | $span : parse-span($span); 89 | $edge : susy-get(edge, $span); 90 | 91 | @if not($edge) { 92 | $count: susy-count(susy-get(columns, $span)); 93 | $location: susy-get(location, $span); 94 | $n: susy-get(span, $span); 95 | 96 | $number: if(type-of($location) == number, true, false); 97 | $index: if($number and unitless($location), true, false); 98 | 99 | @if $n == $count { 100 | $edge: full; 101 | } @else if $location and $n and $index { 102 | @if $location == 1 { 103 | $edge: if($n == $count, full, first); 104 | } @else if $location + $n - 1 == $count { 105 | $edge: last; 106 | } 107 | } 108 | } 109 | 110 | @if $edge == alpha or $edge == omega { 111 | $edge: if($edge == alpha, first, last); 112 | } 113 | 114 | @return $edge; 115 | } 116 | 117 | 118 | // Get Location 119 | // ------------ 120 | // Calculate location value based on edge, if possible 121 | @function get-location( 122 | $span 123 | ) { 124 | $span : parse-span($span); 125 | $location : susy-get(location, $span); 126 | $edge : get-edge($span); 127 | $n : susy-get(span, $span); 128 | 129 | @if $edge and not($location) and type-of($n) == number and unitless($n) { 130 | @if $edge == first { 131 | $location: 1; 132 | } @else if $edge == last { 133 | $location: susy-count(susy-get(columns, $span)) - $n + 1; 134 | } 135 | } 136 | 137 | @return $location 138 | } 139 | -------------------------------------------------------------------------------- /templates/admin/system-modules-details.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the modules listing page. 5 | * 6 | * Displays a list of all packages in a project. 7 | * 8 | * Available variables: 9 | * - modules: Contains multiple module instances. Each module contains: 10 | * - attributes: Attributes on the row. 11 | * - checkbox: A checkbox for enabling the module. 12 | * - name: The human-readable name of the module. 13 | * - id: A unique identifier for interacting with the details element. 14 | * - enable_id: A unique identifier for interacting with the checkbox element. 15 | * - description: The description of the module. 16 | * - machine_name: The module's machine name. 17 | * - version: Information about the module version. 18 | * - requires: A list of modules that this module requires. 19 | * - required_by: A list of modules that require this module. 20 | * - links: A list of administration links provided by the module. 21 | * 22 | * @see template_preprocess_system_modules_details() 23 | */ 24 | #} 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | {% for module in modules %} 35 | {% set zebra = cycle(['odd', 'even'], loop.index0) %} 36 | 37 | 40 | 43 | 71 | 72 | {% endfor %} 73 | 74 |
{{ 'Installed'|t }}{{ 'Name'|t }}{{ 'Description'|t }}
38 | {{ module.checkbox }} 39 | 41 | 42 | 44 |
45 | 46 |
47 |
48 |
49 |
{{ 'Machine name: @machine-name'|t({'@machine-name': module.machine_name }) }}
50 | {% if module.version %} 51 |
{{ 'Version: @module-version'|t({'@module-version': module.version }) }}
52 | {% endif %} 53 | {% if module.requires %} 54 |
{{ 'Requires: @module-list'|t({'@module-list': module.requires }) }}
55 | {% endif %} 56 | {% if module.required_by %} 57 |
{{ 'Required by: @module-list'|t({'@module-list': module.required_by }) }}
58 | {% endif %} 59 |
60 | {% if module.links %} 61 | 66 | {% endif %} 67 |
68 |
69 |
70 |
75 | -------------------------------------------------------------------------------- /templates/admin/update-project-status.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | /** 3 | * @file 4 | * Theme override for the project status report. 5 | * 6 | * Available variables: 7 | * - title: The project title. 8 | * - url: The project url. 9 | * - status: The project status. 10 | * - label: The project status label. 11 | * - attributes: HTML attributes for the project status. 12 | * - reason: The reason you should update the project. 13 | * - icon: The project status version indicator icon. 14 | * - existing_version: The version of the installed project. 15 | * - versions: The available versions of the project. 16 | * - install_type: The type of project (e.g., dev). 17 | * - datestamp: The date/time of a project version's release. 18 | * - extras: HTML attributes and additional information about the project. 19 | * - attributes: HTML attributes for the extra item. 20 | * - label: The label for an extra item. 21 | * - data: The data about an extra item. 22 | * - includes: The projects within the project. 23 | * - disabled: The currently disabled projects in the project. 24 | * 25 | * @see template_preprocess_update_project_status() 26 | */ 27 | #} 28 | {% 29 | set status_classes = [ 30 | project.status == constant('UPDATE_NOT_SECURE') ? 'project-update__status--security-error', 31 | project.status == constant('UPDATE_REVOKED') ? 'project-update__status--revoked', 32 | project.status == constant('UPDATE_NOT_SUPPORTED') ? 'project-update__status--not-supported', 33 | project.status == constant('UPDATE_NOT_CURRENT') ? 'project-update__status--not-current', 34 | project.status == constant('UPDATE_CURRENT') ? 'project-update__status--current', 35 | ] 36 | %} 37 | 38 | {%- if status.label -%} 39 | {{ status.label }} 40 | {%- else -%} 41 | {{ status.reason }} 42 | {%- endif %} 43 | 44 | {{ status.icon }} 45 | 46 | 47 | 48 |
49 | {%- if url -%} 50 | {{ title }} 51 | {%- else -%} 52 | {{ title }} 53 | {%- endif %} 54 | {{ existing_version }} 55 | {% if install_type == 'dev' and datestamp %} 56 | ({{ datestamp }}) 57 | {% endif %} 58 |
59 | 60 | {% if versions %} 61 | {% for version in versions %} 62 | {{ version }} 63 | {% endfor %} 64 | {% endif %} 65 | 66 | {% 67 | set extra_classes = [ 68 | project.status == constant('UPDATE_NOT_SECURE') ? 'project-not-secure', 69 | project.status == constant('UPDATE_REVOKED') ? 'project-revoked', 70 | project.status == constant('UPDATE_NOT_SUPPORTED') ? 'project-not-supported', 71 | ] 72 | %} 73 |
74 | {% if extras %} 75 |
76 | {% for extra in extras %} 77 | 78 | {{ extra.label }}: {{ extra.data }} 79 |
80 | {% endfor %} 81 |
82 | {% endif %} 83 | {% set includes = includes|join(', ') %} 84 | {% if disabled %} 85 | {{ 'Includes:'|t }} 86 |
    87 |
  • 88 | {% trans %} 89 | Enabled: {{ includes|placeholder }} 90 | {% endtrans %} 91 |
  • 92 |
  • 93 | {% set disabled = disabled|join(', ') %} 94 | {% trans %} 95 | Disabled: {{ disabled|placeholder }} 96 | {% endtrans %} 97 |
  • 98 |
99 | {% else %} 100 | {% trans %} 101 | Includes: {{ includes|placeholder }} 102 | {% endtrans %} 103 | {% endif %} 104 | 105 | --------------------------------------------------------------------------------