Skip to content

Commit d239416

Browse files
authored
Merge pull request #159 from BuildFire/add-preferlinkpage-setting
feat(preferLinkPage): handle open web view config
2 parents 9c4c79f + e3a43a7 commit d239416

File tree

7 files changed

+63
-26
lines changed

7 files changed

+63
-26
lines changed

control/settings/index.html

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<link rel="stylesheet" href="../../../../styles/control/siteIcons-control.css">
88
<link rel="stylesheet" href="../../../../styles/helper.css">
99
<script src="../../../../scripts/buildfire.min.js"></script>
10-
10+
1111
<!-- build:bundleCSSFiles -->
1212
<link rel="stylesheet" href="../content/assets/css/base.css">
1313
<!-- endbuild -->
@@ -28,6 +28,7 @@
2828

2929
<body>
3030
<div class="settings-container">
31+
<h1 class="section-title">Settings</h1>
3132
<div class="row">
3233
<div class="col-sm-6">
3334
<label class="tooltip-container">Restrict Access
@@ -45,8 +46,25 @@
4546
</div>
4647
</div>
4748
</div>
49+
<div class="row padding-top-twenty">
50+
<div class="col-sm-6">
51+
<label class="tooltip-container">Show Original Page
52+
<span class="btn-info-icon btn-primary">
53+
<span class="cp-tooltip top-cp-tooltip">
54+
Opens the full web page in the browser, including site menus and ads. When off, users see a simplified RSS version inside the app with just the main content.
55+
</span>
56+
</span>
57+
</label>
58+
</div>
59+
<div class="col-sm-6">
60+
<div class="button-switch" style="float: right;">
61+
<input type="checkbox" id="preferLinkPage" onchange="saveSettings()" disabled>
62+
<label for="preferLinkPage" class="label-success"></label>
63+
</div>
64+
</div>
65+
</div>
4866
</div>
4967

5068
</body>
5169

52-
</html>
70+
</html>

control/settings/settings.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,20 @@ window.onload = () => {
2929
if (!Object.keys(settings).length) {
3030
settings = _defaultData;
3131
}
32-
32+
3333
readRequiresLogin.disabled = false;
34+
preferLinkPage.disabled = false;
3435
if (settings?.readRequiresLogin) {
3536
readRequiresLogin.checked = true;
3637
}
38+
if (settings?.preferLinkPage) {
39+
preferLinkPage.checked = true;
40+
}
3741
});
3842
}
3943

4044
const saveSettings = () => {
4145
settings.readRequiresLogin = readRequiresLogin.checked;
46+
settings.preferLinkPage = preferLinkPage.checked;
4247
buildfire.datastore.save(settings, "RssFeedInfo", () => { });
43-
}
48+
}

widget/app.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@
5252
var reg1 = /^\/nowplaying/;
5353
if (reg.test($location.path())) {
5454
$timeout(function () {
55-
$rootScope.showFeed = true;
55+
$rootScope.showFeedList = true;
5656
}, 200);
5757
Location.goTo('#/');
5858
} else if (reg1.test($location.path())) {
5959
if ($rootScope.playlist) {
6060
$rootScope.playlist = false;
6161
} else {
62-
$rootScope.showFeed = false;
62+
$rootScope.showFeedList = false;
6363
Location.goTo('#/item');
6464
}
6565
}
@@ -108,4 +108,4 @@
108108
}
109109
};
110110
})
111-
})(window.angular, window.buildfire);
111+
})(window.angular, window.buildfire);

widget/controllers/widget.home.controller.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@
226226
*/
227227
WidgetHome.isItems = true;
228228

229-
$rootScope.showFeed = true;
229+
$rootScope.showFeedList = true;
230230

231231
/**
232232
* @name resetDefaults()
@@ -661,6 +661,8 @@
661661
*/
662662
WidgetHome.goToItem = function (index, item, pushToHistory = true) {
663663
$rootScope.preventResetDefaults = true;
664+
if (!WidgetHome.data.preferLinkPage || !item.link) $rootScope.showFeedList = false;
665+
664666
if(WidgetHome.data.readRequiresLogin) {
665667
buildfire.auth.getCurrentUser(function (err, user) {
666668
if (err) {
@@ -676,14 +678,12 @@
676678
return console.error(err);
677679
}
678680
if (user) {
679-
$rootScope.showFeed = false;
680681
WidgetHome.proceedToItem(index, item, pushToHistory);
681682
}
682683
});
683684
}
684685
});
685686
} else {
686-
$rootScope.showFeed = false;
687687
WidgetHome.proceedToItem(index, item, pushToHistory);
688688
}
689689
};
@@ -694,6 +694,15 @@
694694
}, 500);
695695
WidgetHome.items[index].index = index;
696696
}
697+
if (WidgetHome.data.preferLinkPage && item.link) {
698+
if (Buildfire.getContext().device.platform === 'web'){
699+
window.open(item.link, '_blank')
700+
}
701+
else {
702+
Buildfire.navigation.openWindow(item.link, '_system');
703+
}
704+
return;
705+
}
697706
toggleDeeplinkSkeleton();
698707
ItemDetailsService.setData(item);
699708
// Buildfire.history.push(WidgetHome.items[index].title, {});

widget/controllers/widget.media.controller.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
(function (angular) {
44
angular
55
.module('mediaCenterRSSPluginWidget')
6-
.controller('WidgetMediaCtrl', ['$scope', '$sce', 'DataStore', 'Buildfire', 'TAG_NAMES', 'ItemDetailsService', '$filter', 'Location', 'MEDIUM_TYPES', '$rootScope', 'trackAnalyticsActions', 'utils',
6+
.controller('WidgetMediaCtrl', ['$scope', '$sce', 'DataStore', 'Buildfire', 'TAG_NAMES', 'ItemDetailsService', '$filter', 'Location', 'MEDIUM_TYPES', '$rootScope', 'trackAnalyticsActions', 'utils',
77
function ($scope, $sce, DataStore, Buildfire, TAG_NAMES, ItemDetailsService, $filter, Location, MEDIUM_TYPES, $rootScope, trackAnalyticsActions, utils) {
88

99
$rootScope.deviceHeight = window.innerHeight;
@@ -61,12 +61,12 @@
6161
*/
6262
WidgetMedia.item = ItemDetailsService.getData();
6363
var regex = /(style=".+?")/gm;
64-
64+
6565
if (!WidgetMedia.item) {
6666
return Location.goTo('#/');
6767
}
6868
WidgetMedia.item.description = (WidgetMedia && WidgetMedia.item && WidgetMedia.item.description) ? WidgetMedia.item.description.replace(regex, '') : "";
69-
69+
7070
$rootScope.preventResetDefaults = false;
7171

7272
/*
@@ -219,7 +219,7 @@
219219
}
220220
if (WidgetMedia.data && WidgetMedia.data.design && WidgetMedia.data.design.itemDetailsLayout === 'Feed_Layout_3') {
221221
WidgetMedia.scrollableContainer = document.querySelectorAll('.slide')[1];
222-
WidgetMedia.scrollHandler = function() {
222+
WidgetMedia.scrollHandler = function() {
223223
if ((window.innerHeight - WidgetMedia.scrollableContainer.scrollTop) >= 0 ) {
224224
document.getElementById('fullscreenImageDiv').style.opacity = (window.innerHeight - WidgetMedia.scrollableContainer.scrollTop) / window.innerHeight;
225225
}
@@ -245,7 +245,7 @@
245245
if ($rootScope.data.design.itemDetailsLayout == WidgetMedia.data.design.itemDetailsLayout) {
246246
resetDefaults();
247247
currentRssUrl = WidgetMedia.data.content.rssUrl;
248-
$rootScope.showFeed = true;
248+
$rootScope.showFeedList = true;
249249
Buildfire.history.pop();
250250
Location.goTo('#/');
251251
} else {
@@ -263,7 +263,7 @@
263263
WidgetMedia.data = $rootScope.data;
264264
$scope.hideandshow = true;
265265
currentRssUrl = $rootScope.data.currentRssUrl;
266-
$rootScope.showFeed = false;
266+
$rootScope.showFeedList = false;
267267
initScrollHandler();
268268
if (WidgetMedia.data && WidgetMedia.data.design && WidgetMedia.data.design.itemDetailsLayout === 'Feed_Layout_3') {
269269
Buildfire.spinner.show();
@@ -312,7 +312,7 @@
312312
// check if a audio is playing
313313
audioPlayer.isPaused((err, isPaused) => {
314314
if (err) return console.err(err);
315-
315+
316316
if (isPaused) {
317317
$rootScope.audioPlayerPlaying = false;
318318
} else {
@@ -495,7 +495,12 @@
495495
};
496496

497497
WidgetMedia.openLink = function (link) {
498-
Buildfire.navigation.openWindow(link, '_system');
498+
if (Buildfire.getContext().device.platform === 'web'){
499+
window.open(link, '_blank')
500+
}
501+
else {
502+
Buildfire.navigation.openWindow(link, '_system');
503+
}
499504
};
500505

501506
WidgetMedia.videoLoaded = function () {
@@ -645,4 +650,4 @@
645650

646651
}
647652
]);
648-
})(window.angular);
653+
})(window.angular);

widget/controllers/widget.nowplaying.controller.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
function ($scope, Buildfire, $rootScope, $timeout, Location, ItemDetailsService, Modals, trackAnalyticsActions) {
1212
console.log('----------------------------Now Playing controller loaded-------------------');
1313
//$rootScope.blackBackground = true;
14-
$rootScope.showFeed = false;
14+
$rootScope.showFeedList = false;
1515

1616
var NowPlaying = this;
1717
NowPlaying.playing = false;
@@ -363,4 +363,4 @@
363363
});
364364
}
365365
]);
366-
})(window.angular);
366+
})(window.angular);

widget/index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
77
<meta name="buildfire" content="enablePluginJsonLoad, disableBootstrap">
88

9-
9+
1010
<!-- CSS -->
1111
<!-- build:bundleCSSFiles -->
1212
<link rel="stylesheet" href="assets/css/style.css">
@@ -55,7 +55,7 @@
5555
<script src="./global/models/Feed.js"></script>
5656
<script src="./global/AnalyticsManager.js"></script>
5757
<!-- endbuild -->
58-
58+
5959
<!-- build:bundleJSFiles -->
6060
<script src="assets/js/youtubePlayer.min.js"></script>
6161
<script src="assets/js/vimeoPlayer.min.js"></script>
@@ -82,14 +82,14 @@
8282
</head>
8383
<body class="body-scroll">
8484
<div class="main_view">
85-
<div ng-show="showFeed" data-back-img="{{backgroundImage}}" class="slide content infinite-scroll-parent">
85+
<div ng-show="showFeedList" data-back-img="{{backgroundImage}}" class="slide content infinite-scroll-parent">
8686
<div ng-controller="WidgetHomeCtrl as WidgetHome">
8787
<div ng-if="WidgetHome.data.design.itemListLayout"
8888
ng-include="'templates/' + WidgetHome.data.design.itemListLayout+ '.html'">
8989
</div>
9090
</div>
9191
</div>
92-
<div data-back-img="{{backgroundImageItem}}" ng-view="" class="slide content" ng-hide="showFeed"></div>
92+
<div data-back-img="{{backgroundImageItem}}" ng-view="" class="slide content" ng-hide="showFeedList"></div>
9393
<!-- Deeplink Skeleton -->
9494
<div id="deeplinkSkeleton" class="hidden deeplink-item-skeleton"></div>
9595
</div>
@@ -119,4 +119,4 @@
119119
iframe.contentWindow.postMessage({method: 'pause'}, url);
120120
}
121121
</script>
122-
</html>
122+
</html>

0 commit comments

Comments
 (0)