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

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 (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")}}">