@shift72/core-template 0.4.1 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
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>