Skip to content

Commit 2e83b8d

Browse files
authored
Merge pull request #161 from BuildFire/launch-in-feature
feat/ handle launch In new feature
2 parents 80d385f + 7cd19e7 commit 2e83b8d

File tree

3 files changed

+54
-5
lines changed

3 files changed

+54
-5
lines changed

control/settings/index.html

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,32 @@ <h1 class="section-title">Settings</h1>
5858
</div>
5959
<div class="col-sm-6">
6060
<div class="button-switch" style="float: right;">
61-
<input type="checkbox" id="preferLinkPage" onchange="saveSettings()" disabled>
61+
<input type="checkbox" id="preferLinkPage" disabled>
6262
<label for="preferLinkPage" class="label-success"></label>
6363
</div>
6464
</div>
6565
</div>
66+
67+
<div id="launchContainer" class="hidden row padding-top-twenty flex">
68+
<div class="col-md-4">
69+
<label>Launch In</label>
70+
</div>
71+
<div class="col-md-8 text-left padding-zero">
72+
<div class="col-md-12 margin-bottom-fifteen">
73+
<div class="row">
74+
<div class="col-md-6 margin-top-zero radio radio-primary">
75+
<input type="radio" name="launchIn" id="launchInPopup" value="_blank" />
76+
<label for="launchInPopup">Popup Window</label>
77+
</div>
78+
<div class="col-md-6 margin-top-zero radio radio-primary">
79+
<input type="radio" name="launchIn" id="launchInBrowser" value="_system" checked />
80+
<label for="launchInBrowser">Native Browser</label>
81+
</div>
82+
</div>
83+
</div>
84+
</div>
85+
</div>
86+
6687
</div>
6788

6889
</body>

control/settings/settings.js

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,43 @@ window.onload = () => {
3131
}
3232

3333
readRequiresLogin.disabled = false;
34-
preferLinkPage.disabled = false;
34+
preferLinkPage.disabled = false;
3535
if (settings?.readRequiresLogin) {
3636
readRequiresLogin.checked = true;
3737
}
3838
if (settings?.preferLinkPage) {
3939
preferLinkPage.checked = true;
4040
}
41+
42+
const launchContainer = document.getElementById('launchContainer');
43+
if (!settings.preferLinkPage) {
44+
launchContainer.classList.add('hidden');
45+
} else {
46+
launchContainer.classList.remove('hidden');
47+
}
48+
49+
preferLinkPage.addEventListener('change', () => {
50+
settings.preferLinkPage = preferLinkPage.checked;
51+
saveSettings();
52+
53+
if (!settings.preferLinkPage) {
54+
launchContainer.classList.add('hidden');
55+
} else {
56+
launchContainer.classList.remove('hidden');
57+
}
58+
});
59+
60+
const launchInRadios = document.querySelectorAll('input[name="launchIn"]');
61+
launchInRadios.forEach(radio => {
62+
radio.addEventListener('change', (event) => {
63+
settings.launchIn = event.target.value;
64+
saveSettings();
65+
});
66+
});
4167
});
42-
}
68+
};
4369

4470
const saveSettings = () => {
4571
settings.readRequiresLogin = readRequiresLogin.checked;
46-
settings.preferLinkPage = preferLinkPage.checked;
4772
buildfire.datastore.save(settings, "RssFeedInfo", () => { });
4873
}

widget/controllers/widget.home.controller.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,9 @@
366366
if (!WidgetHome.data.design.showImages) {
367367
WidgetHome.data.design.showImages = FEED_IMAGES.YES;
368368
}
369+
if (!WidgetHome.data.launchIn) {
370+
WidgetHome.data.launchIn = '_system';
371+
}
369372
$scope.hideandshow = true;
370373
}
371374

@@ -704,7 +707,7 @@
704707
window.open(item.link, '_blank')
705708
}
706709
else {
707-
Buildfire.navigation.openWindow(item.link, '_system');
710+
Buildfire.navigation.openWindow(item.link, WidgetHome.data.launchIn);
708711
}
709712
return;
710713
}

0 commit comments

Comments
 (0)