Skip to content

Commit 6577697

Browse files
authored
Adding sponsor tile to the landing page. (#3697)
* Adding sponsor tile to the landing page. * Consistent naming. * Removing duplication for Sonar * Formatting update
1 parent 820d30b commit 6577697

File tree

6 files changed

+88
-63
lines changed

6 files changed

+88
-63
lines changed

src/css/tabs/landing.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
padding: 20px;
1414
background: #fff url(../../images/pattern.png);
1515
background-size: 300px;
16+
margin-bottom: 15px;
1617
}
1718
.content_mid {
1819
background-color: var(--accent);

src/js/BuildApi.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,8 @@ export default class BuildApi {
172172
this.load(url, onSuccess, onFailure);
173173
}
174174

175-
loadSponsorTile(mode, onSuccess, onFailure) {
176-
const url = `${this._url}/api/configurator/sponsors/${mode}`;
175+
loadSponsorTile(mode, page, onSuccess, onFailure) {
176+
const url = `${this._url}/api/configurator/sponsors/${mode}/${page}`;
177177
this.load(url, onSuccess, onFailure);
178178
}
179179
}

src/js/Sponsor.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import BuildApi from './BuildApi';
2+
import DarkTheme from './DarkTheme';
3+
4+
export default class Sponsor {
5+
6+
constructor () {
7+
this._api = new BuildApi();
8+
}
9+
10+
loadSponsorTile(name, div) {
11+
if (!navigator.onLine) {
12+
return;
13+
}
14+
15+
this._api.loadSponsorTile(DarkTheme.enabled ? 'dark' : 'light', name,
16+
(content) => {
17+
if (content) {
18+
div.html(content);
19+
div.show();
20+
} else {
21+
div.hide();
22+
}
23+
},
24+
);
25+
}
26+
}

src/js/tabs/firmware_flasher.js

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ import { gui_log } from '../gui_log';
1919
import semver from 'semver';
2020
import { checkChromeRuntimeError, urlExists } from '../utils/common';
2121
import { generateFilename } from '../utils/generate_filename';
22-
import DarkTheme from '../DarkTheme';
22+
import Sponsor from '../Sponsor';
2323

2424
const firmware_flasher = {
2525
targets: null,
2626
releaseLoader: new BuildApi(),
27+
sponsor: new Sponsor(),
2728
localFirmwareLoaded: false,
2829
selectedBoard: undefined,
2930
boardNeedsVerification: false,
@@ -58,23 +59,6 @@ firmware_flasher.initialize = function (callback) {
5859

5960
function onDocumentLoad() {
6061

61-
function loadSponsor() {
62-
if (!navigator.onLine) {
63-
return;
64-
}
65-
66-
self.releaseLoader.loadSponsorTile(DarkTheme.enabled ? 'dark' : 'light',
67-
(content) => {
68-
if (content) {
69-
$('div.tab_sponsor').html(content);
70-
$('div.tab_sponsor').show();
71-
} else {
72-
$('div.tab_sponsor').hide();
73-
}
74-
},
75-
);
76-
}
77-
7862
function parseHex(str, callback) {
7963
// parsing hex in different thread
8064
const worker = new Worker('./js/workers/hex_parser.js');
@@ -292,7 +276,7 @@ firmware_flasher.initialize = function (callback) {
292276
// translate to user-selected language
293277
i18n.localizePage();
294278

295-
loadSponsor();
279+
self.sponsor.loadSponsorTile('flash', $('div.tab_sponsor'));
296280

297281
buildType_e.on('change', function() {
298282
self.enableLoadRemoteFileButton(false);

src/js/tabs/landing.js

Lines changed: 54 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,70 @@
11
import GUI, { TABS } from '../gui';
22
import { i18n } from '../localization';
3+
import Sponsor from '../Sponsor';
34
import $ from 'jquery';
45

5-
const landing = {};
6+
const landing = {
7+
sponsor: new Sponsor(),
8+
};
9+
610
landing.initialize = function (callback) {
11+
const self = this;
712

8-
if (GUI.active_tab != 'landing') {
9-
GUI.active_tab = 'landing';
10-
}
11-
12-
$('#content').load("./tabs/landing.html", function () {
13-
function showLang(newLang) {
14-
bottomSection = $('.languageSwitcher');
15-
bottomSection.find('a').each(function(index) {
16-
const element = $(this);
17-
const languageSelected = element.attr('lang');
18-
if (newLang == languageSelected) {
19-
element.removeClass('selected_language');
20-
element.addClass('selected_language');
21-
} else {
22-
element.removeClass('selected_language');
23-
}
24-
});
13+
if (GUI.active_tab != 'landing') {
14+
GUI.active_tab = 'landing';
2515
}
26-
let bottomSection = $('.languageSwitcher');
27-
bottomSection.html(' <span i18n="language_choice_message"></span>');
28-
bottomSection.append(' <a href="#" i18n="language_default_pretty" lang="DEFAULT"></a>');
29-
const languagesAvailables = i18n.getLanguagesAvailables();
30-
languagesAvailables.forEach(function(element) {
31-
bottomSection.append(` <a href="#" lang="${element}" i18n="language_${element}"></a>`);
32-
});
33-
bottomSection.find('a').each(function(index) {
34-
let element = $(this);
35-
element.click(function(){
36-
element = $(this);
37-
const languageSelected = element.attr('lang');
38-
if (!languageSelected) { return; }
39-
if (i18n.selectedLanguage != languageSelected) {
40-
i18n.changeLanguage(languageSelected);
41-
showLang(languageSelected);
16+
17+
$('#content').load("./tabs/landing.html", () => {
18+
function showLang(newLang) {
19+
bottomSection = $('.languageSwitcher');
20+
bottomSection.find('a').each(function(index) {
21+
const element = $(this);
22+
const languageSelected = element.attr('lang');
23+
if (newLang == languageSelected) {
24+
element.removeClass('selected_language');
25+
element.addClass('selected_language');
26+
} else {
27+
element.removeClass('selected_language');
28+
}
29+
});
4230
}
43-
});
44-
});
45-
showLang(i18n.selectedLanguage);
46-
// translate to user-selected language
47-
i18n.localizePage();
4831

49-
GUI.content_ready(callback);
50-
});
32+
let bottomSection = $('.languageSwitcher');
33+
bottomSection.html(' <span i18n="language_choice_message"></span>');
34+
bottomSection.append(' <a href="#" i18n="language_default_pretty" lang="DEFAULT"></a>');
35+
const languagesAvailables = i18n.getLanguagesAvailables();
5136

37+
languagesAvailables.forEach((element) => {
38+
bottomSection.append(` <a href="#" lang="${element}" i18n="language_${element}"></a>`);
39+
});
40+
41+
bottomSection.find('a').each((index) => {
42+
let element = $(this);
43+
element.click(() => {
44+
element = $(this);
45+
const languageSelected = element.attr('lang');
46+
if (!languageSelected) { return; }
47+
if (i18n.selectedLanguage != languageSelected) {
48+
i18n.changeLanguage(languageSelected);
49+
showLang(languageSelected);
50+
}
51+
});
52+
});
53+
54+
showLang(i18n.selectedLanguage);
55+
// translate to user-selected language
56+
i18n.localizePage();
57+
58+
self.sponsor.loadSponsorTile('landing', $('div.tab_sponsor'));
59+
60+
GUI.content_ready(callback);
61+
});
5262
};
5363

5464
landing.cleanup = function (callback) {
55-
if (callback) callback();
65+
if (callback) {
66+
callback();
67+
}
5668
};
5769

5870
// TODO: remove after all is using modules

src/tabs/landing.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<div class="" i18n="defaultWelcomeIntro" align="center"></div>
77
</div>
88
</div>
9+
<div class="tab_sponsor">
10+
</div>
911
<div class="content_mid grid-row">
1012

1113
<div class="column third_left text1 grid-col col4">

0 commit comments

Comments
 (0)