@shift72/core-template 0.4.1 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/kibble.json +2 -2
  3. package/package.json +7 -4
  4. package/scripts/css-local-get.js +34 -0
  5. package/scripts/css-local-put.js +110 -0
  6. package/scripts/language-file-validator.js +16 -2
  7. package/site/ar_LB.all.json +22 -18
  8. package/site/ca_ES.all.json +16 -32
  9. package/site/da_DK.all.json +47 -32
  10. package/site/de_DE.all.json +130 -2
  11. package/site/ee_EE.all.json +90 -23
  12. package/site/el_EL.all.json +89 -18
  13. package/site/en_AU.all.json +27 -24
  14. package/site/es_ES.all.json +129 -3
  15. package/site/es_MX.all.json +165 -3
  16. package/site/fi_FI.all.json +164 -2
  17. package/site/fr_FR.all.json +131 -3
  18. package/site/hr_HR.all.json +64 -5
  19. package/site/hu_HU.all.json +90 -23
  20. package/site/it_IT.all.json +127 -3
  21. package/site/ja_JP.all.json +163 -3
  22. package/site/lt_LT.all.json +50 -15
  23. package/site/nl_BE.all.json +53 -16
  24. package/site/no_NO.all.json +87 -23
  25. package/site/pl_PL.all.json +162 -3
  26. package/site/pt_BR.all.json +24 -32
  27. package/site/pt_PT.all.json +93 -19
  28. package/site/ru_RU.all.json +85 -16
  29. package/site/se_SE.all.json +64 -31
  30. package/site/static/images/common/sponsors-md.png +0 -0
  31. package/site/static/images/common/sponsors-xs.png +0 -0
  32. package/site/static/images/common/sponsors-xxxs.png +0 -0
  33. package/site/styles/_awards.scss +6 -6
  34. package/site/styles/_bootstrap4.scss +90 -0
  35. package/site/styles/_buttons.scss +9 -8
  36. package/site/styles/_can-be-watched-button.scss +2 -0
  37. package/site/styles/_card.scss +2 -2
  38. package/site/styles/_carousel.scss +43 -28
  39. package/site/styles/_collections.scss +4 -4
  40. package/site/styles/_cookie-consent.scss +1 -1
  41. package/site/styles/_devices.scss +3 -3
  42. package/site/styles/_footer.scss +45 -2
  43. package/site/styles/_forms.scss +6 -6
  44. package/site/styles/_globals.scss +1 -1
  45. package/site/styles/_icons.scss +2 -2
  46. package/site/styles/_language-selector.scss +2 -2
  47. package/site/styles/_legacy.scss +3 -3
  48. package/site/styles/_meta-detail.scss +44 -24
  49. package/site/styles/_mixins.scss +2 -2
  50. package/site/styles/_nav.scss +40 -40
  51. package/site/styles/_pages.scss +12 -12
  52. package/site/styles/_pin-codes.scss +2 -2
  53. package/site/styles/_plans.scss +1 -1
  54. package/site/styles/_poster.scss +5 -4
  55. package/site/styles/_shift72.scss +22 -22
  56. package/site/styles/_shopping.scss +8 -8
  57. package/site/styles/_slider.scss +4 -10
  58. package/site/styles/_social-media-buttons.scss +20 -20
  59. package/site/styles/_swiper.scss +2 -2
  60. package/site/styles/_variables.scss +107 -82
  61. package/site/styles/_wishlist.scss +2 -2
  62. package/site/styles/main.scss +1 -3
  63. package/site/templates/application/application.jet +13 -1
  64. package/site/templates/application/footer/footer.jet +3 -0
  65. package/site/templates/application/footer/sponsor-banner.jet +9 -0
  66. package/site/templates/bundle/buttons.jet +2 -1
  67. package/site/templates/bundle/item.jet +1 -2
  68. package/site/templates/collection/carousel_item.jet +12 -13
  69. package/site/templates/common/awards/item.jet +1 -1
  70. package/site/templates/film/item.jet +36 -12
  71. package/site/templates/tv/detail.jet +7 -7
  72. package/site/tr_TR.all.json +88 -22
  73. package/site/uk_UA.all.json +50 -34
  74. package/site/zh_TW.all.json +19 -36
  75. package/site/styles/_functions.scss +0 -8
@@ -3,6 +3,59 @@
3
3
  // This file contains any variables used by the site.
4
4
  // These variables should be reasonably generic so that overrides are placed in main.scss.
5
5
 
6
+ :root {
7
+ --primary-rgb: 53, 160, 168;
8
+ --secondary-rgb: 76, 211, 221;
9
+ --body-color-rgb: 255, 255, 255;
10
+ --body-bg-rgb: 15, 15, 15;
11
+ --body-bg-accent-rgb: 25, 25, 25; // darken(body-bg, 10%) OR lighten(body-bg, 10%)
12
+ --link-color-hover-rgb: 217, 217, 217; // darken(body-color, 15%)
13
+ --input-focus-border-color-rgb: 131, 210, 216; // lighten(primary, 25%)
14
+
15
+ --primary: rgb(var(--primary-rgb));
16
+ --secondary: rgb(var(--secondary-rgb));
17
+ --body-color: rgb(var(--body-color-rgb));
18
+ --body-bg: rgb(var(--body-bg-rgb));
19
+ --body-bg-accent: rgb(var(--body-bg-accent-rgb));
20
+ --link-color: var(--body-color);
21
+ --link-color-hover: rgb(var(--link-color-hover-rgb));
22
+ --input-focus-border-color: rgb(var(--input-focus-border-color-rgb));
23
+
24
+ --navbar-brand-padding-y: 25px;
25
+ --navbar-brand-min-width: 126px;
26
+ --navbar-brand-min-width-md: 126px;
27
+ --navbar-brand-min-width-lg: 126px;
28
+ --navbar-brand-min-width-xl: 126px;
29
+
30
+ --carousel-height: 470px;
31
+ --carousel-height-sm: 470px;
32
+ --carousel-height-md: 620px;
33
+ --carousel-caption-top: 150px;
34
+ --carousel-caption-top-md: 175px;
35
+
36
+ --page-padding-top: 120px;
37
+ --page-padding-top-md: 120px;
38
+ --page-padding-top-lg: 180px;
39
+ --page-detail-padding-top: 120px;
40
+ --page-detail-padding-top-md: 120px;
41
+ --page-detail-padding-top-lg: 180px;
42
+ }
43
+
44
+ // Bootstrap 4 overrides START
45
+ $input-btn-focus-color: rgba(var(--primary-rgb), 0.25) !default;
46
+ $input-focus-border-color: var(--input-focus-border-color) !default;
47
+ $custom-control-indicator-checked-disabled-bg: rgba(var(--primary-rgb), 0.5) !default;
48
+ $progress-bar-bg: var(--primary) !default;
49
+ $body-color: var(--body-color) !default;
50
+ $body-bg: var(--body-bg) !default;
51
+ $body-bg-accent: var(--body-bg-accent) !default;
52
+ $error-color: var(--body-color) !default;
53
+ $error-background: rgba(var(--body-color-rgb), 0.1) !default;
54
+ $hr-border-color: rgba(var(--body-color-rgb), 0.5) !default;
55
+ $list-group-bg: var(--body-bg) !default;
56
+ $list-group-border-color: rgba(var(--body-color-rgb), 0.125) !default;
57
+ // Bootstrap 4 overrides END
58
+
6
59
  // Bootstrap variables copied here, that some of the below are dependent on.
7
60
  $grid-gutter-width-base: 30px !default;
8
61
 
@@ -36,76 +89,63 @@ $spacer: math.div(5, 8) * 1rem; // 10px
36
89
 
37
90
  $spacers: (
38
91
  '0': 0,
39
- 'p5': ($spacer * 0.5), // 5px
40
- 'p75': ($spacer * 0.75), // 7.5px
41
- '1': $spacer, // 10px
42
- '2': ($spacer * 2), // 20px
43
- '2p5': ($spacer * 2.5), // 25px
44
- '3': ($spacer * 3), // 30px
45
- '4': ($spacer * 4), // 40px
46
- '5': ($spacer * 5), // 50px
92
+ 'p5': $spacer * 0.5,
93
+ // 5px
94
+ 'p75': $spacer * 0.75,
95
+ // 7.5px
96
+ '1': $spacer,
97
+ // 10px
98
+ '2': $spacer * 2,
99
+ // 20px
100
+ '2p5': $spacer * 2.5,
101
+ // 25px
102
+ '3': $spacer * 3,
103
+ // 30px
104
+ '4': $spacer * 4,
105
+ // 40px
106
+ '5': $spacer * 5,
107
+ // 50px
47
108
  );
48
109
 
49
- // Body / Core
50
- // ------------------------------------
51
-
52
- $primary: #35a0a8 !default;
53
- $secondary: #4cd3dd !default;
54
- $body-color: #fff !default;
55
- $body-bg: #0f0f0f !default;
56
- $body-bg-accent: get-accent-color($body-bg) !default;
57
- $error-color: $body-color !default;
58
- $error-background: rgba($body-color, 0.1) !default;
59
- $hr-border-color: rgba($body-color, 0.5) !default;
60
- $list-group-bg: $body-bg !default;
61
- $list-group-border-color: rgba($body-color, 0.125) !default;
62
-
63
110
  // Cookie Consent
64
111
  $cookie-consent-color: #000;
65
- $cookie-consent-link-color: $primary;
66
- $cookie-consent-hover-link-color: $secondary;
112
+ $cookie-consent-link-color: var(--primary);
113
+ $cookie-consent-hover-link-color: var(--secondary);
67
114
 
68
115
  // Nav
69
116
  // ------------------------------------
70
117
  $navbar-background-color: transparent !default;
71
- $navbar-show-background-color: $body-bg-accent !default;
72
- $navbar-dark-active-color: $primary !default;
118
+ $navbar-show-background-color: var(--body-bg-accent) !default;
119
+ $navbar-dark-active-color: var(--primary) !default;
73
120
  $navbar-nav-link-padding-x: 1em !default;
74
121
  $navbar-nav-link-padding-y: 1em !default;
75
- $navbar-search-background-color: $body-bg-accent !default;
122
+ $navbar-search-background-color: var(--body-bg-accent) !default;
76
123
 
77
124
  // Uses navbar-dark theme so we can use variables for colouring
78
125
  $navbar-dark-active-color: #fd4766 !default;
79
- $navbar-dark-color: $body-color !default;
126
+ $navbar-dark-color: var(--body-color) !default;
80
127
  $navbar-dark-hover-color: #fd4766 !default;
81
128
 
82
- // Navbar Logo (Brand)
83
- $navbar-brand-padding-y: 25px !default;
84
- $navbar-brand-min-width: 126px !default;
85
- $navbar-brand-min-width-md: 126px !default;
86
- $navbar-brand-min-width-lg: 126px !default;
87
- $navbar-brand-min-width-xl: 126px !default;
88
-
89
129
  // Sub Navivgation
90
- $subnav-nav-item-color: $body-color !default;
91
- $subnav-nav-item-hover-background-color: $primary !default;
92
- $subnav-nav-item-active-background-color: $primary !default;
93
- $subnav-dropdown-background: $body-bg-accent !default;
130
+ $subnav-nav-item-color: var(--body-color) !default;
131
+ $subnav-nav-item-hover-background-color: var(--primary) !default;
132
+ $subnav-nav-item-active-background-color: var(--primary) !default;
133
+ $subnav-dropdown-background: var(--body-bg-accent) !default;
94
134
 
95
135
  // Buttons
96
- $button-text-color: $body-color !default;
97
- $button-text-color-hover: $body-color !default;
98
- $button-background: $primary !default;
99
- $button-background-hover: $secondary !default;
100
- $trailer-button-text-color: $body-color !default;
101
- $mobile-nav-link-color: $body-color !default;
102
-
103
- $signin-text-color: $body-color !default;
104
- $signin-text-color-hover: $primary !default;
136
+ $button-text-color: var(--body-color) !default;
137
+ $button-text-color-hover: var(--body-color) !default;
138
+ $button-background: var(--primary) !default;
139
+ $button-background-hover: var(--secondary) !default;
140
+ $trailer-button-text-color: var(--body-color) !default;
141
+ $mobile-nav-link-color: var(--body-color) !default;
142
+
143
+ $signin-text-color: var(--body-color) !default;
144
+ $signin-text-color-hover: var(--primary) !default;
105
145
  $signin-border-color: transparent !default;
106
146
  $signin-border-color-hover: transparent !default;
107
- $signin-background: rgba($body-color, 0.1) !default;
108
- $signin-background-hover: rgba($body-color, 0.2) !default;
147
+ $signin-background: rgba(var(--body-color-rgb), 0.1) !default;
148
+ $signin-background-hover: rgba(var(--body-color-rgb), 0.2) !default;
109
149
  $signin-background-lg: transparent !default;
110
150
  $signin-background-hover-lg: transparent !default;
111
151
 
@@ -116,54 +156,39 @@ $signup-border-color-hover: transparent !default;
116
156
  $signup-background: $button-background !default;
117
157
  $signup-background-hover: $button-background-hover !default;
118
158
 
119
- $signout-background: rgba($body-color, 0.1) !default;
120
- $signout-background-hover: rgba($body-color, 0.2) !default;
121
- $signout-text-color: $body-color !default;
122
- $signout-text-color-hover: $body-color !default;
123
-
124
- $link-color: $body-color !default;
159
+ $signout-background: rgba(var(--body-color-rgb), 0.1) !default;
160
+ $signout-background-hover: rgba(var(--body-color-rgb), 0.2) !default;
161
+ $signout-text-color: var(--body-color) !default;
162
+ $signout-text-color-hover: var(--body-color) !default;
125
163
 
126
164
  // Image Gradient Overlays
127
- $top-gradient-color: $body-bg !default;
128
- $right-gradient-bg-color: $body-bg !default;
129
- $bottom-gradient-bg-color: $body-bg !default;
130
- $left-gradient-bg-color: $body-bg !default;
165
+ $top-gradient-color: var(--body-bg-rgb) !default;
166
+ $right-gradient-bg-color: var(--body-bg-rgb) !default;
167
+ $bottom-gradient-bg-color: var(--body-bg-rgb) !default;
168
+ $left-gradient-bg-color: var(--body-bg-rgb) !default;
131
169
 
132
170
  // Carousel
133
- $carousel-bg-color: $body-bg !default;
134
- $carousel-height: 470px !default;
135
- $carousel-height-sm: 470px !default;
136
- $carousel-height-md: 620px !default;
137
- $carousel-caption-top: 150px !default;
138
- $carousel-caption-top-md: 175px !default;
139
-
140
- // Pages
141
- $page-padding-top: 120px !default;
142
- $page-padding-top-md: 120px !default;
143
- $page-padding-top-lg: 180px !default;
144
- $page-detail-padding-top: 120px !default;
145
- $page-detail-padding-top-md: 120px !default;
146
- $page-detail-padding-top-lg: 180px !default;
171
+ $carousel-bg-color: var(--body-bg) !default;
147
172
 
148
173
  // Footer
149
174
  $footer-brand-min-width: 100px !default;
150
175
  $footer-brand-min-width-md: 100px !default;
151
- $footer-bar-background-color: $body-bg-accent !default;
176
+ $footer-bar-background-color: var(--body-bg-accent) !default;
152
177
 
153
178
  // Social
154
179
  // ------------------------------------
155
- $facebook-color: $body-color !default;
156
- $instagram-color: $body-color !default;
157
- $twitter-color: $body-color !default;
158
- $youtube-color: $body-color !default;
159
- $linkedin-color: $body-color !default;
160
- $letterboxd-color: $body-color !default;
180
+ $facebook-color: var(--body-color) !default;
181
+ $instagram-color: var(--body-color) !default;
182
+ $twitter-color: var(--body-color) !default;
183
+ $youtube-color: var(--body-color) !default;
184
+ $linkedin-color: var(--body-color) !default;
185
+ $letterboxd-color: var(--body-color) !default;
161
186
 
162
187
  // Meta Items
163
188
  // ------------------------------------
164
189
  $meta-item-border-radius: 3px !default;
165
190
  $featured-meta-item-body-padding: 10px !default;
166
- $meta-item-body-color: $body-color !default;
191
+ $meta-item-body-color: var(--body-color) !default;
167
192
  $meta-item-tagline-classification-border-radius: $meta-item-border-radius !default;
168
193
  $meta-item-availability-tag-margin: 5px !default;
169
194
 
@@ -28,7 +28,7 @@
28
28
  @extend .btn;
29
29
  font-size: 12px;
30
30
  font-weight: $font-weight-bold;
31
- margin-right: 32px; // was 10px before awards needed some space
31
+ margin-right: 0.5rem;
32
32
  padding-bottom: 3px;
33
33
  padding-left: 0;
34
34
  padding-top: 3px;
@@ -50,4 +50,4 @@
50
50
  .poster .s72-userwishlist-buttons .s72-btn-wishlist {
51
51
  margin: 0;
52
52
  padding: 0;
53
- }
53
+ }
@@ -1,5 +1,3 @@
1
- @import '_functions';
2
-
3
1
  @import '_variables';
4
2
 
5
3
  @import '_bootstrap4';
@@ -53,4 +51,4 @@
53
51
  // @import local must be last in this file.
54
52
  @import 'local/local';
55
53
 
56
- // DO NOT PUT ANYTHING IN THIS FILE.
54
+ // DO NOT PUT ANYTHING IN THIS FILE.
@@ -3,8 +3,16 @@
3
3
  {{import "./nav/nav.jet"}}
4
4
  {{import "./google.jet" }}
5
5
  {{import "./footer/footer.jet" }}
6
+
6
7
  {{CDN := "//cdn.shift72.com/1.3"}}
7
8
  {*{CDN := "//localhost:3000"}*}
9
+
10
+ {{CSSFilename := ""}}
11
+ {{if isEnabled("self_service_css") && site.CSSFilename != "" }}
12
+ {{CSSFilename = site.CSSFilename}}
13
+ {{end}}
14
+ {*{CSSFilename = "local.css"}*}
15
+
8
16
  <!DOCTYPE html>
9
17
  <html lang="{{lang.Code}}">
10
18
  <head>
@@ -21,6 +29,9 @@
21
29
 
22
30
  {{yield font()}}
23
31
  <link rel="stylesheet" href="/styles/main.css">
32
+ {{if CSSFilename != "" }}
33
+ <link rel="stylesheet" href="/styles/{{CSSFilename}}">
34
+ {{end}}
24
35
 
25
36
  <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
26
37
  <link rel="icon" href="/favicon.ico" type="image/x-icon">
@@ -33,7 +44,7 @@
33
44
  <script src="{{CDN}}/s72.core.js" defer></script>
34
45
  <script src="{{CDN}}/s72.ui.js" defer></script>
35
46
 
36
- <script src="/scripts/main.js" defer></script>
47
+ <script src="/scripts/main.js" defer></script>
37
48
 
38
49
  <script src="{{CDN}}/s72.transactional.js" defer></script>
39
50
  <script src="https://js.stripe.com/v3/" defer></script>
@@ -78,5 +89,6 @@
78
89
  {{yield footer()}}
79
90
 
80
91
  {{yield googleScripts()}}
92
+ <s72-donate-button></s72-donate-button>
81
93
  </body>
82
94
  </html>
@@ -2,11 +2,14 @@
2
2
  {{import "./info.jet"}}
3
3
  {{import "./nav.jet"}}
4
4
  {{import "./app-badges.jet"}}
5
+ {{import "./sponsor-banner.jet"}}
5
6
 
6
7
  {{block footer()}}
7
8
 
8
9
  {{yield appBadges()}}
9
10
 
11
+ {{yield sponsorBanner()}}
12
+
10
13
  {*{ID is used for skip links.}*}
11
14
  <footer id="footer">
12
15
  {{yield footerBrand()}}
@@ -0,0 +1,9 @@
1
+ {{block sponsorBanner()}}
2
+ {{if config("show_sponsor_banner") == "true"}}
3
+ <div class="sponsor-banner">
4
+ <s72-image class="sponsors-xxxs" src="/images/common/sponsors-xxxs.png"></s72-image>
5
+ <s72-image class="sponsors-xs" src="/images/common/sponsors-xs.png"></s72-image>
6
+ <s72-image class="sponsors-md" src="/images/common/sponsors-md.png"></s72-image>
7
+ </div>
8
+ {{end}}
9
+ {{end}}
@@ -1,5 +1,6 @@
1
- {{block bundleButtons(class, slug, title)}}
1
+ {{block bundleButtons(class, slug, title, promoURL)}}
2
2
  <div class="{{class}}">
3
3
  <s72-pricing-buttons data-slug="{{slug}}" data-title="{{title}}"></s72-pricing-buttons>
4
+ {{yield bundleExtras(class="meta-detail-extras", slug=slug, promoURL=promoURL)}}
4
5
  </div>
5
6
  {{end}}
@@ -28,11 +28,10 @@
28
28
 
29
29
  {{yield bundleTagline(class="meta-detail-tagline") bundle}}
30
30
 
31
- {{yield bundleButtons(class="meta-detail-buttons", slug=bundle.Slug, title=bundle.Title)}}
31
+ {{yield bundleButtons(class="meta-detail-buttons", slug=bundle.Slug, title=bundle.Title, promoURL=bundle.PromoURL)}}
32
32
 
33
33
  {{yield bundleSynopsis(class="meta-detail-synopsis", synopsis=bundle.Description)}}
34
34
 
35
- {{yield bundleExtras(class="meta-detail-extras", slug=bundle.Slug, promoURL=bundle.PromoURL)}}
36
35
  </div>
37
36
 
38
37
  {{yield bundleList(items=bundle.Items)}}
@@ -35,6 +35,18 @@
35
35
  {{ if item.ItemType == "film" }}
36
36
  <can-be-watched-button data-slug="{{item.InnerItem.Slug}}" data-url="{{ item.InnerItem.CustomFields.GetString("can_be_watched_button_link", "") }}" data-label="{{ item.InnerItem.CustomFields.GetString("can_be_watched_button_text", "can_be_watched_button_text") }}"></can-be-watched-button>
37
37
  {{ end }}
38
+ <div class="meta-item-extras">
39
+ {{if len(trailer) > 0 }}
40
+ <div class="s72-btn-trailer btn-trailer" data-url="{{routeToSlug(item.Slug)}}?autoplay">
41
+ <button class="s72-btn s72-btn-play btn-sm s72-btn-trailer">
42
+ <span class="s72-btn-play-icon"><s72-play-icon></s72-play-icon></span>
43
+ <span class="verb s72-btn-play-label">{{i18n("play_trailer")}}</span>
44
+ </button>
45
+ </div>
46
+ {{end}}
47
+ <s72-userwishlist-button data-slug="{{item.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
48
+ <s72-share-buttons item="::item.meta" class="hidden-sm hidden-xs pull-right"></s72-share-buttons>
49
+ </div>
38
50
  </div>
39
51
 
40
52
  <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
@@ -42,19 +54,6 @@
42
54
  <div class="meta-item-synopsis">
43
55
  <p>{{item.InnerItem.Tagline | stripHTML}}</p>
44
56
  </div>
45
-
46
- <div class="meta-item-extras">
47
- {{if len(trailer) > 0 }}
48
- <div class="s72-btn-trailer btn-trailer" data-url="{{routeToSlug(item.Slug)}}?autoplay">
49
- <button class="s72-btn s72-btn-play btn-sm s72-btn-trailer">
50
- <span class="s72-btn-play-icon"><s72-play-icon></s72-play-icon></span>
51
- <span class="verb s72-btn-play-label">{{i18n("play_trailer")}}</span>
52
- </button>
53
- </div>
54
- {{end}}
55
- <s72-userwishlist-button data-slug="{{item.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
56
- <s72-share-buttons item="::item.meta" class="hidden-sm hidden-xs pull-right"></s72-share-buttons>
57
- </div>
58
57
  {{yield awardsCarousel() item.InnerItem}}
59
58
  </div>
60
59
  </div>
@@ -4,7 +4,7 @@
4
4
  {{ range .AwardCategories }}
5
5
  <div class="meta-award-nomination mb-2p5 col-12 col-sm-8 col-lg-6 col-xl-4">
6
6
  <span><i class="meta-award-nomination-icon"></i></span>
7
- <span class="font-weight-bold">{{ i18n("awards_nominated_for") }} {{ .DisplayLabel }}</span>
7
+ <span class="font-weight-bold">{{ .IsWinner ? i18n("awards_winner_of") : i18n("awards_nominated_for") }} {{ .DisplayLabel }}</span>
8
8
  </div>
9
9
  {{ end }}
10
10
  </div>
@@ -48,6 +48,13 @@
48
48
  <s72-play-button data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-play-button>
49
49
  <s72-pricing-buttons data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-pricing-buttons>
50
50
  <can-be-watched-button data-slug="{{film.Slug}}" data-url="{{ film.CustomFields.GetString("can_be_watched_button_link", "") }}" data-label="{{ film.CustomFields.GetString("can_be_watched_button_text", "can_be_watched_button_text") }}"></can-be-watched-button>
51
+ <div class="meta-detail-extras">
52
+ {{if len(film.Trailers) > 0 }}
53
+ <s72-modal-player src="{{film.Trailers[0].URL}}" class="s72-btn-trailer" data-slug="{{film.Slug}}" data-label="{{i18n("play_trailer")}}" autoplay="querystring"></s72-modal-player>
54
+ {{end}}
55
+ <s72-userwishlist-button data-slug="{{film.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
56
+ {{yield socialMediaButtons(path=currentUrlPath, letterboxdID=film.Refs.LetterboxdID)}}
57
+ </div>
51
58
  </div>
52
59
  {{if config("default_image_type") != "portrait"}}
53
60
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
@@ -58,13 +65,6 @@
58
65
  {{yield awardNominations() film}}
59
66
 
60
67
  <div class="meta-detail-synopsis">{{film.Overview | raw}}</div>
61
- <div class="meta-detail-extras">
62
- {{if len(film.Trailers) > 0 }}
63
- <s72-modal-player src="{{film.Trailers[0].URL}}" class="s72-btn-trailer" data-slug="{{film.Slug}}" data-label="{{i18n("play_trailer")}}" autoplay="querystring"></s72-modal-player>
64
- {{end}}
65
- <s72-userwishlist-button data-slug="{{film.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
66
- {{yield socialMediaButtons(path=currentUrlPath, letterboxdID=film.Refs.LetterboxdID)}}
67
- </div>
68
68
  <div class="meta-detail-cast">
69
69
  {{if len(film.Cast) > 0 }}
70
70
  <h2>{{i18n("meta_detail_cast_title")}}</h2>
@@ -91,11 +91,35 @@
91
91
  <p>{{ film.Languages }}</p>
92
92
  </div>
93
93
  {{end}}
94
- {{if len(film.GetSubtitles()) > 0 }}
95
- <div class="meta-detail-subtitle">
96
- <h2>{{i18n("meta_detail_subtitles")}}</h2>
97
- <p>{{ film.GetSubtitles() }}</p>
98
- </div>
94
+ {{allSubtitles := film.GetSubtitles()}}
95
+ {{if len(allSubtitles) > 0 }}
96
+ {{subtitles := ""}}
97
+ {{captions := ""}}
98
+ {{if len(film.SubtitleTracks) == 0}}
99
+ {{subtitles = allSubtitles}}
100
+ {{else}}
101
+ {{range subTrack := film.SubtitleTracks}}
102
+ {{if len(subTrack) >= 3}}
103
+ {{if subTrack[2] == "caption"}}
104
+ {{captions = captions ? captions + ", " + subTrack[1] : subTrack[1]}}
105
+ {{else}}
106
+ {{subtitles = subtitles ? subtitles + ", " + subTrack[1] : subTrack[1]}}
107
+ {{end}}
108
+ {{end}}
109
+ {{end}}
110
+ {{end}}
111
+ {{if subtitles}}
112
+ <div class="meta-detail-subtitle">
113
+ <h2>{{i18n("meta_detail_subtitles")}}</h2>
114
+ <p>{{subtitles}}</p>
115
+ </div>
116
+ {{end}}
117
+ {{if captions}}
118
+ <div class="meta-detail-subtitle">
119
+ <h2>{{i18n("meta_detail_captions")}}</h2>
120
+ <p>{{captions}}</p>
121
+ </div>
122
+ {{end}}
99
123
  {{end}}
100
124
  {{if len(film.Countries) > 0 }}
101
125
  <div class="meta-detail-country">
@@ -37,16 +37,16 @@
37
37
  <div class="meta-detail-buttons">
38
38
  <s72-play-button data-slug="{{tvseason.Slug}}" data-title="{{tvseason.Title}}"></s72-play-button>
39
39
  <s72-pricing-buttons data-slug="{{tvseason.Slug}}" data-title="{{tvseason.Title}}"></s72-pricing-buttons>
40
+ <div class="meta-detail-extras">
41
+ {{if len(tvseason.Trailers) > 0 }}
42
+ <s72-modal-player src="{{tvseason.Trailers[0].URL}}" class="s72-btn-trailer" data-slug="{{tvseason.Slug}}" data-label="{{i18n("play_trailer")}}" autoplay="querystring"></s72-modal-player>
43
+ {{end}}
44
+ <s72-userwishlist-button data-slug="{{tvseason.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
45
+ {{yield socialMediaButtons(path=currentUrlPath)}}
46
+ </div>
40
47
  </div>
41
48
  <s72-availability-label data-slug="{{tvseason.Slug}}"></s72-availability-label>
42
49
  <div class="meta-detail-synopsis">{{tvseason.Overview | raw}}</div>
43
- <div class="meta-detail-extras">
44
- {{if len(tvseason.Trailers) > 0 }}
45
- <s72-modal-player src="{{tvseason.Trailers[0].URL}}" class="s72-btn-trailer" data-slug="{{tvseason.Slug}}" data-label="{{i18n("play_trailer")}}" autoplay="querystring"></s72-modal-player>
46
- {{end}}
47
- <s72-userwishlist-button data-slug="{{tvseason.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
48
- {{yield socialMediaButtons(path=currentUrlPath)}}
49
- </div>
50
50
  <div class="meta-detail-cast">
51
51
  {{if len(tvseason.Cast) > 0 }}
52
52
  <h2>{{i18n("meta_detail_cast_title")}}</h2>