Skip to content
This repository was archived by the owner on Jun 9, 2022. It is now read-only.

Commit 4cf3f6a

Browse files
committedJul 3, 2018
toggle
1 parent e591582 commit 4cf3f6a

File tree

7 files changed

+83
-16
lines changed

7 files changed

+83
-16
lines changed
 

‎index.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,10 @@ app.get('/demo/:uuid', (req, res) => {
172172
app.get('/demo-static/:demoType', (req, res) => {
173173
const demoType = req.params.demoType;
174174
const availableDemos = ['side-by-side', 'toggle'];
175+
let toggle = false;
176+
if (demoType === 'toggle') toggle = true;
175177
if (availableDemos.includes(demoType)) {
176-
res.render('demoStatic', { demoType });
178+
res.render('demoStatic', { demoType, toggle });
177179
} else {
178180
res
179181
.status(500)

‎public/css/demoStatic/toggle.css

+21
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
11
.hidden {
22
display: none;
33
}
4+
5+
.translation-accordion {
6+
background-color: #f3e0ce;
7+
font-family: MetricWeb, sans-serif;
8+
padding: 7px;
9+
padding-left: 23px;
10+
}
11+
12+
.translation-prompt {
13+
font-weight: 500;
14+
margin-top: 6px;
15+
}
16+
17+
.accordion-button {
18+
min-width: 97px;
19+
}
20+
21+
.collapsed {
22+
display: flex;
23+
justify-content: space-between;
24+
}

‎public/js/demoStatic/toggle.js

+26-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,34 @@
1-
function init() {}
1+
var accordionButton = document.querySelector('.accordion-button');
22

3-
function toggleTranslation() {
4-
Array.from(document.getElementsByClassName('text-body')).forEach(e => {
5-
Array.from(e.classList).includes('hidden')
6-
? (e.className = 'text-body')
7-
: (e.className = 'text-body hidden');
3+
function init() {
4+
document.querySelector('.translation-body').classList.add('hidden');
5+
}
6+
7+
function toggleTranslationAccordion() {
8+
document.querySelector('.demo-target').classList.toggle('hidden');
9+
10+
accordionButton.innerText =
11+
accordionButton.innerText == 'Hide' ? 'Try it' : 'Hide';
12+
13+
accordionButton.classList.toggle('o-buttons-icon--arrow-down');
14+
accordionButton.classList.toggle('o-buttons-icon--arrow-up');
15+
}
16+
17+
function toggleTranslation(e) {
18+
e.preventDefault();
19+
Array.from(document.getElementsByClassName('text-body')).forEach(function(e) {
20+
e.classList.toggle('hidden');
821
});
22+
23+
toggleTranslationAccordion();
924
}
1025

1126
document
12-
.getElementById('translateButton')
27+
.querySelector('.translate-button')
1328
.addEventListener('click', toggleTranslation);
1429

30+
accordionButton.addEventListener('click', () =>
31+
toggleTranslationAccordion(accordionButton)
32+
);
33+
1534
document.addEventListener('DOMContentLoaded', init);

‎views/demoStatic.hbs

+3-3
Large diffs are not rendered by default.

‎views/partials/staticArticle.hbs

+1-4
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,6 @@
5757
</form>
5858
<span class="o-share__text">Save to myFT</span>
5959
</li>
60-
<li class="o-share__action" data-share="twitter">
61-
<button class="n-myft-ui__button" id="translateButton">Translate</button>
62-
</li>
63-
6460
</ul>
6561
</div>
6662
</div>
@@ -142,6 +138,7 @@
142138
</div>
143139
</div>
144140
</div>
141+
{{#if toggle }} {{> translationAccordion }} {{/if}}
145142
<div class="articles">
146143
{{> articleContent}}
147144
<div class="divider"></div> {{> translatedArticleContent}}

‎views/partials/translatedArticleContent.hbs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="text-body hidden">
1+
<div class="text-body translation-body">
22
<p>Capita a obtenu la cote de risque la plus élevée possible dans une évaluation interne du ministère de la Défense, peu
33
de temps avant de se voir attribuer un nouveau contrat pour la gestion des services militaires d'incendie et de sauvetage.</p>
44
<p>Selon le document, qui a été mis à jour le 7 juin, Capita a obtenu une note de 10/10 pour le risque, 1 indiquant la probabilité
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<div class="translation-accordion">
2+
<div class="collapsed">
3+
<div class="translation-prompt">Now you can translate articles on the FT</div>
4+
<button class="o-buttons o-buttons--big o-buttons-icon o-buttons-icon--arrow-down accordion-button" data-o-component="o-toggle">Try it</button>
5+
</div>
6+
<div class="demo-target hidden">
7+
<div>This is an experimental feature. Translations might not be accurate.</div>
8+
<div class="o-forms">
9+
<label aria-describedby="select-box-info" for="select-standard" class="o-forms__label">Translate to</label>
10+
<form>
11+
<div>
12+
<select id="select-standard" class="o-forms__select">
13+
<option value="" disabled selected>Choose your language</option>
14+
<option value="option2">French</option>
15+
</select>
16+
<button class="o-buttons o-buttons--primary o-buttons--big translate-button">Show translation for current page</button>
17+
</div>
18+
<fieldset class="o-forms">
19+
<div class="o-forms__group o-forms__group--inline">
20+
<input type="checkbox" name="checkbox" value="1" class="o-forms__checkbox" id="checkbox61">
21+
<label for="checkbox61" class="o-forms__label">Translate all articles from now on.</label>
22+
</div>
23+
</fieldset>
24+
</form>
25+
</div>
26+
</div>
27+
28+
</div>

0 commit comments

Comments
 (0)