@shift72/core-template 0.5.1 → 1.0.0-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. package/.github/pull_request_template.md +47 -0
  2. package/.github/workflows/node.js.yml +1 -1
  3. package/.nvmrc +1 -0
  4. package/CHANGELOG.md +65 -10
  5. package/kibble.json +4 -4
  6. package/package.json +1 -2
  7. package/scripts/translate.mjs +30 -22
  8. package/site/ar_LB.all.json +99 -23
  9. package/site/ca_ES.all.json +91 -23
  10. package/site/da_DK.all.json +90 -22
  11. package/site/de_DE.all.json +90 -22
  12. package/site/el_EL.all.json +90 -22
  13. package/site/en_AU.all.json +87 -19
  14. package/site/es_ES.all.json +92 -24
  15. package/site/es_MX.all.json +89 -21
  16. package/site/{ee_EE.all.json → et_ET.all.json} +90 -22
  17. package/site/fi_FI.all.json +93 -25
  18. package/site/fr_FR.all.json +91 -23
  19. package/site/hr_HR.all.json +93 -23
  20. package/site/hu_HU.all.json +91 -23
  21. package/site/it_IT.all.json +91 -23
  22. package/site/ja_JP.all.json +88 -22
  23. package/site/lt_LT.all.json +94 -22
  24. package/site/nl_BE.all.json +90 -22
  25. package/site/no_NO.all.json +91 -23
  26. package/site/pl_PL.all.json +95 -23
  27. package/site/plans.html.jet +17 -17
  28. package/site/pt_BR.all.json +91 -23
  29. package/site/pt_PT.all.json +91 -23
  30. package/site/ru_RU.all.json +103 -31
  31. package/site/sr_SR.all.json +95 -25
  32. package/site/static/fonts/fa-s72.woff +0 -0
  33. package/site/static/js/main.js +2 -1
  34. package/site/static/scripts/main.js.map +1 -1
  35. package/site/styles/_availability-tags.scss +63 -31
  36. package/site/styles/_awards.scss +4 -3
  37. package/site/styles/_buttons.scss +46 -29
  38. package/site/styles/_can-be-watched-button.scss +0 -20
  39. package/site/styles/_carousel.scss +126 -311
  40. package/site/styles/_collections.scss +6 -11
  41. package/site/styles/_cta-buttons.scss +262 -0
  42. package/site/styles/_forms.scss +6 -2
  43. package/site/styles/_icons.scss +182 -9
  44. package/site/styles/_legacy.scss +1 -50
  45. package/site/styles/_meta-detail.scss +80 -229
  46. package/site/styles/_meta-item-tagline.scss +33 -0
  47. package/site/styles/_meta-item.scss +0 -4
  48. package/site/styles/_meta-sub-item.scss +116 -0
  49. package/site/styles/_mixins.scss +45 -0
  50. package/site/styles/_nav.scss +6 -5
  51. package/site/styles/_pages.scss +4 -13
  52. package/site/styles/_plans.scss +24 -17
  53. package/site/styles/_poster.scss +3 -9
  54. package/site/styles/_share-modal.scss +86 -0
  55. package/site/styles/_shift72.scss +11 -0
  56. package/site/styles/_shopping.scss +0 -1
  57. package/site/styles/_skip-link.scss +1 -1
  58. package/site/styles/_tooltips.scss +7 -0
  59. package/site/styles/_variables.scss +11 -12
  60. package/site/styles/_wishlist.scss +2 -2
  61. package/site/styles/main.scss +5 -3
  62. package/site/subscriptions.html.jet +11 -0
  63. package/site/templates/application/application.jet +2 -2
  64. package/site/templates/application/google.jet +8 -13
  65. package/site/templates/application/nav/user_logged_in.jet +7 -2
  66. package/site/templates/bundle/item.jet +2 -4
  67. package/site/templates/collection/carousel/carousel.jet +27 -0
  68. package/site/templates/collection/carousel/item/image.jet +5 -0
  69. package/site/templates/collection/carousel/item/synopsis.jet +5 -0
  70. package/site/templates/collection/carousel/item/tagline.jet +7 -0
  71. package/site/templates/collection/carousel/item/title.jet +3 -0
  72. package/site/templates/collection/carousel/item.jet +41 -0
  73. package/site/templates/collection/carousel/pagination.jet +9 -0
  74. package/site/templates/collection/page_collection.jet +2 -2
  75. package/site/templates/common/cta_buttons.jet +70 -0
  76. package/site/templates/common/social-media-buttons.jet +2 -38
  77. package/site/templates/common/sponsor-image.jet +18 -0
  78. package/site/templates/film/item.jet +98 -102
  79. package/site/templates/items/sub_item.jet +22 -0
  80. package/site/templates/items/tagline.jet +2 -2
  81. package/site/templates/page/homepage.jet +2 -3
  82. package/site/templates/tv/detail.jet +39 -38
  83. package/site/tr_TR.all.json +90 -22
  84. package/site/uk_UA.all.json +95 -23
  85. package/site/zh_TW.all.json +88 -22
  86. package/site/static/fonts/FontAwesome.otf +0 -0
  87. package/site/static/fonts/fontawesome-webfont.eot +0 -0
  88. package/site/static/fonts/fontawesome-webfont.svg +0 -565
  89. package/site/static/fonts/fontawesome-webfont.ttf +0 -0
  90. package/site/static/fonts/fontawesome-webfont.woff +0 -0
  91. package/site/static/fonts/fontawesome-webfont.woff2 +0 -0
  92. package/site/styles/_homepage.scss +0 -3
  93. package/site/styles/_social-media-buttons.scss +0 -159
  94. package/site/templates/bundle/buttons.jet +0 -6
  95. package/site/templates/bundle/extras.jet +0 -13
  96. package/site/templates/collection/carousel.jet +0 -27
  97. package/site/templates/collection/carousel_item.jet +0 -66
  98. package/site/templates/items/bonus_item.jet +0 -23
  99. package/site/templates/items/featured_item.jet +0 -61
  100. package/site/templates/tv/episode.jet +0 -21
@@ -1,47 +1,11 @@
1
- {{block socialMediaButtons(path="", title="", letterboxdID="")}}
1
+ {{block socialMediaButtons(url="", title="", letterboxdID="")}}
2
2
  {{show_facebook_share := config("show_facebook_share", "true") == "true"}}
3
3
  {{show_twitter_share := config("show_twitter_share", "true") == "true"}}
4
4
  {{show_linkedin_share := config("show_linkedin_share", "true") == "true"}}
5
5
 
6
6
  {{if show_facebook_share || show_twitter_share || show_linkedin_share || letterboxdID}}
7
7
  <div class="social-media-buttons">
8
- <div class="social-media-buttons-title">
9
- <h2>{{i18n("social_media_buttons_title")}}</h2>
10
- </div>
11
- <div class="social-media-buttons-container">
12
- {{if show_facebook_share}}
13
- <a class="btn btn-social btn-social-facebook" aria-label="{{i18n("wcag_aria_label_facebook")}}" href="https://www.facebook.com/sharer/sharer.php?u={{site.SiteConfig.SiteURL + path | url}}" target="_blank">
14
- <i class="fa fa-facebook" title="Share on Facebook" aria-hidden="true"></i>
15
- </a>
16
- {{end}}
17
-
18
- {{if show_twitter_share}}
19
- <a class="btn btn-social btn-social-twitter" aria-label="{{i18n("wcag_aria_label_twitter")}}" href="https://twitter.com/intent/tweet?text={{title + " " + site.SiteConfig.SiteURL + path | url}}" target="_blank">
20
- <i class="fa fa-twitter" title="Share on Twitter" aria-hidden="true"></i>
21
- </a>
22
- {{end}}
23
-
24
- {{if show_linkedin_share}}
25
- <a class="btn btn-social btn-social-linkedin" aria-label="{{i18n("wcag_aria_label_linkedin")}}" href="https://www.linkedin.com/shareArticle?mini=true&url={{site.SiteConfig.SiteURL + path | url}}&title={{title|url}}" target="_blank">
26
- <i class="fa fa-linkedin" title="Share on LinkedIn" aria-hidden="true"></i>
27
- </a>
28
- {{end}}
29
-
30
- {{if letterboxdID}}
31
- <a class="btn btn-social btn-social-letterboxd" aria-label="{{i18n("wcag_aria_label_letterboxd")}}" href="https://boxd.it/{{letterboxdID}}" target="_blank">
32
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28px" height="28px" viewBox="0 0 334.79999 128" version="1.1">
33
- <title>{{i18n("wcag_aria_label_letterboxd")}}</title>
34
- <g transform="matrix(1.3333333,0,0,-1.3333333,0,128)">
35
- <g transform="scale(0.1)">
36
- <path d="M 857.793,735.43 C 775.559,870.309 630.23,960 464.551,960 207.984,960 0,745.098 0,480 0,214.902 207.984,0 464.551,0 630.23,0 775.559,89.6914 857.793,224.574 812.684,298.559 786.488,386.098 786.488,480 c 0,93.906 26.196,181.441 71.305,255.43"/>
37
- <path d="M 1648.76,728.125 C 1567.38,867.098 1419.72,960 1251.04,960 1085.36,960 940.031,870.309 857.793,735.43 902.902,661.441 929.102,573.906 929.102,480 c 0,-93.902 -26.2,-181.441 -71.309,-255.426 C 940.031,89.6914 1085.36,0 1251.04,0 c 168.68,0 316.34,92.9023 397.72,231.875 -42.4,72.41 -66.82,157.316 -66.82,248.125 0,90.809 24.42,175.719 66.82,248.125"/>
38
- <path d="m 2046.49,960 c -168.68,0 -316.34,-92.902 -397.73,-231.875 42.41,-72.406 66.83,-157.316 66.83,-248.125 0,-90.809 -24.42,-175.715 -66.83,-248.125 C 1730.15,92.9023 1877.81,0 2046.49,0 c 256.56,0 464.55,214.902 464.55,480 0,265.098 -207.99,480 -464.55,480"/>
39
- </g>
40
- </g>
41
- </svg>
42
- </a>
43
- {{end}}
44
- </div>
8
+ <s72-share-modal {{letterboxdID ? "letterboxd=" + letterboxdID : ""}} url="{{url}}"></s72-share-modal>
45
9
  </div>
46
10
  {{end}}
47
11
  {{end}}
@@ -0,0 +1,18 @@
1
+ {{block sponsor(hideLink)}}
2
+ {{sponsorImage := .ImageMap["Sponsor"]}}
3
+
4
+ {{if isset(sponsorImage)}}
5
+ {{sponsorText := .CustomFields.GetString("sponsor_image_text_film", "")}}
6
+ {{sponsorLink := .CustomFields.GetString("sponsor_image_link_film", "")}}
7
+ {{sponsorLinkIsExternal := .CustomFields.GetBool("sponsor_image_link_external_film", false)}}
8
+
9
+ <div class="sponsor">
10
+ {{if sponsorText}}
11
+ <div>{{sponsorText}}</div>
12
+ {{end}}
13
+ {{if sponsorLink && !hideLink}}<a href="{{sponsorLink}}" {{if sponsorLinkIsExternal}} target="_blank" {{end}}>{{end}}
14
+ <s72-image src="{{sponsorImage}}" alt="{{ i18n("sponsor_image_alt") }}" ></s72-image>
15
+ {{if sponsorLink && !hideLink}}</a>{{end}}
16
+ </div>
17
+ {{end}}
18
+ {{end}}
@@ -1,12 +1,13 @@
1
1
  {{extends "../application/application.jet"}}
2
2
  {{import "../common/slider.jet"}}
3
3
  {{import "../items/tagline.jet"}}
4
- {{import "../items/bonus_item.jet"}}
4
+ {{import "../items/sub_item.jet"}}
5
5
  {{import "../collection/page_collection_item.jet"}}
6
6
  {{import "../collection/slider.jet"}}
7
7
  {{import "../common/list.jet"}}
8
- {{import "../common/social-media-buttons.jet"}}
9
8
  {{import "../common/awards/item.jet"}}
9
+ {{import "../common/sponsor-image.jet"}}
10
+ {{import "../common/cta_buttons.jet"}}
10
11
 
11
12
  {{block head()}}
12
13
  {{yield seo() film}}
@@ -18,6 +19,7 @@
18
19
  {{end}}
19
20
 
20
21
  {{block body()}}
22
+
21
23
  <main id="main" class="page page-film meta-detail meta-detail-film">
22
24
  <div class="meta-detail-bg">
23
25
  <div class="right-gradient"></div>
@@ -25,14 +27,16 @@
25
27
  </div>
26
28
  <div class="container">
27
29
  <div class="meta-detail-main">
28
- {{if config("default_image_type") == "portrait"}}
30
+ <div class="poster-wrapper">
31
+ {{if config("default_image_type") == "portrait"}}
32
+ {{yield sponsor() film}}
29
33
  <div class="poster poster-portrait">
30
34
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
31
35
  <s72-image src="{{film.ImageMap["Classification"]}}" alt="" class="classification-image">
32
36
  <s72-image src="{{film.ImageMap["Portrait"]}}" alt="{{film.Title}}" class="poster poster-image poster-image-portrait"></s72-image>
33
-
34
37
  </div>
35
- {{end}}
38
+ {{end}}
39
+ </div>
36
40
  <div class="meta-detail-content">
37
41
  <h1>{{ film.Title }}</h1>
38
42
  <div class="meta-detail-tagline-and-classification">
@@ -42,125 +46,117 @@
42
46
  </div>
43
47
 
44
48
  <!-- {{film.CustomFields|json}} -->
49
+ <s72-availability-label data-slug="{{film.Slug}}"></s72-availability-label>
50
+
51
+ {{yield ctaButtons(itemType="film") film}}
45
52
 
46
- <div class="meta-detail-buttons">
47
- <s72-play-button data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-play-button>
48
- <s72-pricing-buttons data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-pricing-buttons>
49
- <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>
50
- <div class="meta-detail-extras">
51
- {{if len(film.Trailers) > 0 }}
52
- <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>
53
- {{end}}
54
- <s72-userwishlist-button data-slug="{{film.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
55
- {{yield socialMediaButtons(path=currentUrlPath, letterboxdID=film.Refs.LetterboxdID)}}
56
- </div>
57
- </div>
58
53
  {{if config("default_image_type") != "portrait"}}
59
54
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
60
55
  <br>
61
56
  {{end}}
62
- <s72-availability-label data-slug="{{film.Slug}}"></s72-availability-label>
63
57
 
64
58
  {{yield awardNominations() film}}
65
- <s72-element-switcher>
66
- {{if isEnabled("element_switcher_enabled")}}
67
- <div class="meta-detail-switcher-tagline">
68
- <p>{{film.Tagline}}</p>
69
- </div>
70
- {{end}}
71
- <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
72
- <div class="meta-detail-synopsis">{{film.Overview | raw}}</div>
73
- <div class="meta-detail-cast">
74
- {{if len(film.Cast) > 0 }}
75
- <h2>{{i18n("meta_detail_cast_title")}}</h2>
76
- {{end}}
77
- <p>
78
- {{range index, member := film.Cast}}
79
- {{ path := "/search.html?q=" + member.Name }}
80
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(film.Cast) - 1}}, {{end}}
81
- {{end}}
82
- </p>
83
- </div>
84
- <div class="meta-detail-crew d-flex">
85
- {{range index, member := film.Crew}}
86
- <div class="crew-member">
87
- <h2>{{member.Job}}</h2>
88
- {{ path := "/search.html?q=" + member.Name }}
89
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>
90
- </div>
91
- {{end}}
92
- </div>
93
- {{if len(film.Languages) > 0 }}
94
- <div class="meta-detail-language">
95
- <h2>{{i18n("meta_detail_languages", len(film.Languages))}}</h2>
96
- <p>{{ film.Languages }}</p>
59
+ <div class="element-switcher-wrapper">
60
+ <s72-element-switcher>
61
+ {{if isEnabled("element_switcher_enabled")}}
62
+ <div class="meta-detail-switcher-tagline">
63
+ <p>{{film.Tagline}}</p>
97
64
  </div>
98
65
  {{end}}
99
- {{allSubtitles := film.GetSubtitles()}}
100
- {{if len(allSubtitles) > 0 }}
101
- {{subtitles := ""}}
102
- {{captions := ""}}
103
- {{if len(film.SubtitleTracks) == 0}}
104
- {{subtitles = allSubtitles}}
105
- {{else}}
106
- {{range subTrack := film.SubtitleTracks}}
107
- {{if len(subTrack) >= 3}}
108
- {{if subTrack[2] == "caption"}}
109
- {{captions = captions ? captions + ", " + subTrack[1] : subTrack[1]}}
110
- {{else}}
111
- {{subtitles = subtitles ? subtitles + ", " + subTrack[1] : subTrack[1]}}
66
+ <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
67
+ <div class="meta-detail-synopsis">{{film.Overview | raw}}</div>
68
+ <div class="meta-detail-info">
69
+ {{if len(film.Cast) > 0 }}
70
+ <div class="meta-detail-cast">
71
+ <h2>{{i18n("meta_detail_cast_title")}}</h2>
72
+ <p>
73
+ {{range index, member := film.Cast}}
74
+ {{ path := "/search.html?q=" + member.Name }}
75
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(film.Cast) - 1}}, {{end}}
76
+ {{end}}
77
+ </p>
78
+ </div>
79
+ {{end}}
80
+ {{range index, member := film.Crew}}
81
+ <div class="meta-detail-crew">
82
+ <h2>{{member.Job}}</h2>
83
+ {{ path := "/search.html?q=" + member.Name }}
84
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>
85
+ </div>
86
+ {{end}}
87
+ {{if len(film.Languages) > 0 }}
88
+ <div class="meta-detail-language">
89
+ <h2>{{i18n("meta_detail_languages", len(film.Languages))}}</h2>
90
+ <p>{{ film.Languages }}</p>
91
+ </div>
92
+ {{end}}
93
+ {{allSubtitles := film.GetSubtitles()}}
94
+ {{if len(allSubtitles) > 0 }}
95
+ {{subtitles := ""}}
96
+ {{captions := ""}}
97
+ {{if len(film.SubtitleTracks) == 0}}
98
+ {{subtitles = allSubtitles}}
99
+ {{else}}
100
+ {{range subTrack := film.SubtitleTracks}}
101
+ {{if len(subTrack) >= 3}}
102
+ {{if subTrack[2] == "caption"}}
103
+ {{captions = captions ? captions + ", " + subTrack[1] : subTrack[1]}}
104
+ {{else}}
105
+ {{subtitles = subtitles ? subtitles + ", " + subTrack[1] : subTrack[1]}}
106
+ {{end}}
107
+ {{end}}
112
108
  {{end}}
113
109
  {{end}}
110
+ {{if subtitles}}
111
+ <div class="meta-detail-subtitle">
112
+ <h2>{{i18n("meta_detail_subtitles")}}</h2>
113
+ <p>{{subtitles}}</p>
114
+ </div>
115
+ {{end}}
116
+ {{if captions}}
117
+ <div class="meta-detail-subtitle">
118
+ <h2>{{i18n("meta_detail_captions")}}</h2>
119
+ <p>{{captions}}</p>
120
+ </div>
121
+ {{end}}
122
+ {{end}}
123
+ {{if len(film.Countries) > 0 }}
124
+ <div class="meta-detail-country">
125
+ <h2>{{i18n("meta_detail_countries", len(film.Countries))}}</h2>
126
+ <p>{{ film.Countries }}</p>
127
+ </div>
128
+ {{end}}
129
+ {{if len(film.Studio) > 0 }}
130
+ <div class="meta-detail-studio">
131
+ <h2>{{i18n("meta_detail_studios", len(film.Studio))}}</h2>
132
+ {*{ FORMAT STUDIOS }*}
133
+ {{ studios := "" }}
134
+ {{ range studio := film.Studio }}
135
+ {{ studios = studios + studio + ", "}}
136
+ {{ end }}
137
+ {{ if len(studios) > 0 }}
138
+ {{ studios = studios[0:len(studios) - 2] }}
139
+ {{ end }}
140
+ <p>{{ studios }}</p>
141
+ </div>
114
142
  {{end}}
115
- {{end}}
116
- {{if subtitles}}
117
- <div class="meta-detail-subtitle">
118
- <h2>{{i18n("meta_detail_subtitles")}}</h2>
119
- <p>{{subtitles}}</p>
120
- </div>
121
- {{end}}
122
- {{if captions}}
123
- <div class="meta-detail-subtitle">
124
- <h2>{{i18n("meta_detail_captions")}}</h2>
125
- <p>{{captions}}</p>
126
- </div>
127
- {{end}}
128
- {{end}}
129
- {{if len(film.Countries) > 0 }}
130
- <div class="meta-detail-country">
131
- <h2>{{i18n("meta_detail_countries", len(film.Countries))}}</h2>
132
- <p>{{ film.Countries }}</p>
133
- </div>
134
- {{end}}
135
- {{if len(film.Studio) > 0 }}
136
- <div class="meta-detail-studio">
137
- <h2>{{i18n("meta_detail_studios", len(film.Studio))}}</h2>
138
- {*{ FORMAT STUDIOS }*}
139
- {{ studios := "" }}
140
- {{ range studio := film.Studio }}
141
- {{ studios = studios + studio + ", "}}
142
- {{ end }}
143
- {{ if len(studios) > 0 }}
144
- {{ studios = studios[0:len(studios) - 2] }}
145
- {{ end }}
146
- <p>{{ studios }}</p>
147
143
  </div>
148
- {{end}}
149
- </div>
150
- </s72-element-switcher>
144
+ </div>
145
+ </s72-element-switcher>
146
+ {{yield sponsor() film}}
147
+ </div>
151
148
  {{if len(film.Bonuses) > 0 && !film.CustomFields.GetBool("hide_bonus_content", false)}}
152
149
  <section class="meta-detail-bonus-content" aria-label="{{i18n("meta_detail_bonus_title")}}">
153
150
  <h2>{{i18n("meta_detail_bonus_title")}}</h2>
154
151
  {{yield list(itemsPerRow=4, itemLayout="landscape") content}}
155
152
  {{range bonus := film.Bonuses}}
156
- <div class="bonus-item">
157
- {{yield bonusItem(item=bonus)}}
153
+ <div class="sub-item">
154
+ {{yield subItem(item=bonus)}}
158
155
  </div>
159
156
  {{end}}
160
157
  {{end}}
161
158
  </section>
162
- </div>
163
- {{end}}
159
+ {{end}}
164
160
  </div>
165
161
  </div>
166
162
  </div>
@@ -0,0 +1,22 @@
1
+ {{ block subItem(item) }}
2
+ <div class="poster-container">
3
+ <div class="poster">
4
+ <s72-availability-status slug="{{item.Slug}}"></s72-availability-status>
5
+ <s72-image src="{{item.Images.Landscape}}" alt="{{item.Title}}" class="poster-image poster-image-landscape"></s72-image>
6
+ <s72-play-button data-slug="{{item.Slug}}" title="{{item.Title}}"></s72-play-button>
7
+ <s72-playback-progress slug="{{item.Slug}}"></s72-playback-progress>
8
+ </div>
9
+ </div>
10
+ <h3>{{item.Title}}</h3>
11
+ {{if item.Runtime > 0 }}
12
+ <span class="runtime">
13
+ {{if item.Runtime.Hours() > 0}}
14
+ {{item.Runtime.Hours()}}{{i18n("runtime_hours")}}
15
+ {{end}}
16
+ {{item.Runtime.Minutes()}}{{i18n("runtime_minutes")}}
17
+ </span>
18
+ {{end}}
19
+ {{if item.Overview}}
20
+ <div class="synopsis">{{item.Overview | raw}}</div>
21
+ {{end}}
22
+ {{ end }}
@@ -28,7 +28,7 @@
28
28
  {{end}}
29
29
  {*{ There should be one less dividers than tagline items. }*}
30
30
  {{dividers = dividers - 1}}
31
-
31
+
32
32
  {{if classification}}
33
33
  <s72-classification-label data-slug="{{.Slug}}" data-layout="tooltip"></s72-classification-label>
34
34
  {{end}}
@@ -47,7 +47,7 @@
47
47
 
48
48
  {{if isset(.Items)}}
49
49
  {{yield taglineItem() content}}
50
- {{i18n("bundle_items_all_films", len(.Items))}}
50
+ {{i18n("bundle_items_generic", len(.Items))}}
51
51
  {{end}}
52
52
  {{yield taglineDivider(dividers=dividers)}}
53
53
  {{dividers = dividers - 1}}
@@ -1,7 +1,6 @@
1
1
  {{extends "templates/application/application.jet"}}
2
2
  {{import "templates/collection/page_collection.jet"}}
3
- {{import "templates/items/featured_item.jet"}}
4
- {{import "../collection/carousel.jet"}}
3
+ {{import "../collection/carousel/carousel.jet"}}
5
4
  {{import "templates/collection/wishlist.jet"}}
6
5
 
7
6
  {{block head()}}
@@ -19,7 +18,7 @@
19
18
  <h1 class="sr-only">{{i18n("wcag_homepage_h1")}}</h1>
20
19
 
21
20
  <main id="main" class="page page-{{page.PageType|lower}} carousel-len-{{len(page.PageCollections[0].Items)}}">
22
- {{yield pageCollectionCarousel() page.PageCollections[0]}}
21
+ {{yield carousel() page.PageCollections[0]}}
23
22
 
24
23
  <div class="other-sliders">
25
24
  <h2 class="sr-only">{{i18n("wcag_collections_h2")}}</h2>
@@ -1,11 +1,11 @@
1
1
  {{extends "../application/application.jet"}}
2
2
  {{import "../common/slider.jet"}}
3
3
  {{import "../items/tagline.jet"}}
4
- {{import "../items/bonus_item.jet"}}
4
+ {{import "../items/sub_item.jet"}}
5
5
  {{import "../collection/page_collection_item.jet"}}
6
- {{import "./episode.jet"}}
7
6
  {{import "../common/list.jet"}}
8
- {{import "../common/social-media-buttons.jet"}}
7
+ {{import "../common/cta_buttons.jet"}}
8
+
9
9
  {{block head()}}
10
10
  {{yield seo() tvseason}}
11
11
  {{end}}
@@ -34,38 +34,41 @@
34
34
  <div class="meta-detail-tagline">
35
35
  {{yield metaItemTagline() tvseason}}
36
36
  </div>
37
- <div class="meta-detail-buttons">
38
- <s72-play-button data-slug="{{tvseason.Slug}}" data-title="{{tvseason.Title}}"></s72-play-button>
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>
47
- </div>
48
37
  <s72-availability-label data-slug="{{tvseason.Slug}}"></s72-availability-label>
49
- <div class="meta-detail-synopsis">{{tvseason.Overview | raw}}</div>
50
- <div class="meta-detail-cast">
51
- {{if len(tvseason.Cast) > 0 }}
52
- <h2>{{i18n("meta_detail_cast_title")}}</h2>
53
- {{end}}
54
- <p>
55
- {{range index, member := tvseason.Cast}}
56
- {{ path := "/search.html?q=" + member.Name }}
57
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(tvseason.Cast) - 1}}, {{end}}
38
+
39
+ {{yield ctaButtons(itemType="tvseason") tvseason}}
40
+
41
+ <div class="element-switcher-wrapper">
42
+ <s72-element-switcher>
43
+ {{if isEnabled("element_switcher_enabled")}}
44
+ <div class="meta-detail-switcher-tagline">
45
+ <p>{{tvseason.Tagline}}</p>
46
+ </div>
58
47
  {{end}}
59
- </p>
60
- </div>
61
- <div class="meta-detail-crew d-flex">
62
- {{range index, member := tvseason.Crew}}
63
- <div class="crew-member">
64
- <h2>{{member.Job}}</h2>
65
- {{ path := "/search.html?q=" + member.Name }}
66
- <a href="{{ routeToPath(path) }}"">{{member.Name}}</a>
48
+ <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
49
+ <div class="meta-detail-synopsis">{{tvseason.Overview | raw}}</div>
50
+ <div class="meta-detail-info">
51
+ {{if len(tvseason.Cast) > 0 }}
52
+ <div class="meta-detail-cast">
53
+ <h2>{{i18n("meta_detail_cast_title")}}</h2>
54
+ <p>
55
+ {{range index, member := tvseason.Cast}}
56
+ {{ path := "/search.html?q=" + member.Name }}
57
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(tvseason.Cast) - 1}}, {{end}}
58
+ {{end}}
59
+ </p>
60
+ </div>
61
+ {{end}}
62
+ {{range index, member := tvseason.Crew}}
63
+ <div class="meta-detail-crew">
64
+ <h2>{{member.Job}}</h2>
65
+ {{ path := "/search.html?q=" + member.Name }}
66
+ <a href="{{ routeToPath(path) }}"">{{member.Name}}</a>
67
+ </div>
68
+ {{end}}
69
+ </div>
67
70
  </div>
68
- {{end}}
71
+ </s72-element-switcher>
69
72
  </div>
70
73
 
71
74
  {{if len(tvseason.Episodes) > 0}}
@@ -73,8 +76,8 @@
73
76
  <h2>{{i18n("meta_detail_episodes_title")}}</h2>
74
77
  {{yield list(itemsPerRow=4, itemLayout="portrait") content}}
75
78
  {{range episode := tvseason.Episodes}}
76
- <div class="episode-item">
77
- {{yield episodeCollectionItem(item=episode)}}
79
+ <div class="sub-item">
80
+ {{yield subItem(item=episode)}}
78
81
  </div>
79
82
  {{end}}
80
83
  {{end}}
@@ -86,8 +89,8 @@
86
89
  <h2>{{i18n("meta_detail_bonus_title")}}</h2>
87
90
  {{yield list(itemsPerRow=4, itemLayout="landscape") content}}
88
91
  {{range bonus := tvseason.Bonuses}}
89
- <div class="bonus-item">
90
- {{yield bonusItem(item=bonus)}}
92
+ <div class="sub-item">
93
+ {{yield subItem(item=bonus)}}
91
94
  </div>
92
95
  {{end}}
93
96
  {{end}}
@@ -95,8 +98,6 @@
95
98
  {{end}}
96
99
  </div>
97
100
  </div>
98
- </div>
99
- </div>
100
101
  </div>
101
102
  {{if len(tvseason.Recommendations) > 0 }}
102
103
  <section class="page-collection recommendations-collection" aria-label="{{i18n("meta_detail_recommendations_title")}}">