Fdans has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/383798 )

Change subject: Add central notice component and detect adblock
......................................................................


Add central notice component and detect adblock

Adblockers prevent wikistats from reaching AQS. This change adds an
ad test to see if there is an adblocker and warns the user about it.

Bug: T177491
Change-Id: I817dad5edd07682cfb1808384d3b9455a559d35b
---
M src/App.vue
A src/components/CentralNotice.vue
M src/store/index.js
3 files changed, 80 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  Fdans: Looks good to me, approved



diff --git a/src/App.vue b/src/App.vue
index 2d3f91f..91e4167 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,5 +1,6 @@
 <template>
 <div class="app">
+    <central-notice v-if="$store.state.centralNotice" />
     <section class="ui top attached clearing segment">
         <top-nav :wikiCode="project"></top-nav>
     </section>
@@ -19,6 +20,7 @@
 
 <script>
 import TopNav from './components/TopNav';
+import CentralNotice from './components/CentralNotice';
 import TopicExplorer from './components/TopicExplorer';
 import SiteLanguage from './components/SiteLanguage';
 import BottomFooter from './components/BottomFooter';
@@ -35,6 +37,26 @@
         BottomFooter,
         Dashboard,
         Detail,
+        CentralNotice
+    },
+    mounted () {
+        this.isAdblockerOn() && this.warnAdBlocker();
+    },
+
+    methods: {
+        isAdblockerOn () {
+            let adTest = document.createElement('div');
+            adTest.innerHTML = '&nbsp;';
+            adTest.className = 'adsbox';
+            $(this.$el).append(adTest);
+            return adTest.offsetHeight === 0;
+        },
+        warnAdBlocker () {
+            this.$store.state.centralNotice = {
+                message: 'Your ad blocker is preventing Wikistats from 
reaching the server. Disable it to be able to see all metrics correctly.',
+                level: 'error'
+            }
+        }
     },
     data () {
         return {
diff --git a/src/components/CentralNotice.vue b/src/components/CentralNotice.vue
new file mode 100644
index 0000000..bd5d462
--- /dev/null
+++ b/src/components/CentralNotice.vue
@@ -0,0 +1,57 @@
+<template>
+    <div :class="notice.level" class="central notice">
+        <p class="message">
+            {{notice.message}}
+        </p>
+        <i@click="hide" class="close icon large inverted"></i>
+    </div>
+</template>
+<script>
+    let CentralNotice = {
+        name: 'central-notice',
+        computed: {
+            notice () {
+                return this.$store.state.centralNotice;
+            }
+        },
+        methods: {
+            hide () {
+                $(this.$el).fadeOut();
+            }
+        }
+    };
+
+    export default CentralNotice;
+</script>
+<style>
+    .central.notice {
+        position: fixed;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 40px;
+        background-color: #CC0000;
+        z-index: 20;
+    }
+    .central.notice p {
+        text-align: center;
+        color: #fff;
+        line-height: 40px;
+    }
+
+    .central.notice.warn {
+        background-color: #EECC00;
+    }
+    .central.notice.info {
+        background-color: #087408;
+    }
+    .central.notice.error {
+        background-color: #CC0000;
+    }
+    .close.icon {
+        position: absolute;
+        right: 10px;
+        top: 25%;
+        cursor: pointer;
+    }
+</style>
\ No newline at end of file
diff --git a/src/store/index.js b/src/store/index.js
index 59ef409..038581d 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -12,6 +12,7 @@
         mainComponent: '',
         breakdowns: null,
         topicsMinimized: true,
+        centralNotice: null,
     },
     getters: {
         // Do not add mainComponent to mainState

-- 
To view, visit https://gerrit.wikimedia.org/r/383798
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I817dad5edd07682cfb1808384d3b9455a559d35b
Gerrit-PatchSet: 4
Gerrit-Project: analytics/wikistats2
Gerrit-Branch: master
Gerrit-Owner: Fdans <[email protected]>
Gerrit-Reviewer: Fdans <[email protected]>
Gerrit-Reviewer: Mforns <[email protected]>
Gerrit-Reviewer: Milimetric <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to