From 98af8eec67940ae814b5e0c60b75ded3fed26cdb Mon Sep 17 00:00:00 2001 From: oleghasjanov Date: Fri, 19 Apr 2024 07:37:20 +0300 Subject: [PATCH] test value --- app/packs/entrypoints/application.js | 4 +- .../controllers/profile_webpush_controller.js | 60 ++++++++++--------- .../push_notification_controller.js | 2 + .../controllers/wishlist_controller.js | 2 +- app/views/layouts/application.html.erb | 3 + 5 files changed, 39 insertions(+), 32 deletions(-) diff --git a/app/packs/entrypoints/application.js b/app/packs/entrypoints/application.js index d8f4a255d..096822f67 100644 --- a/app/packs/entrypoints/application.js +++ b/app/packs/entrypoints/application.js @@ -8,8 +8,8 @@ // appropriate layout file, like app/views/layouts/application.html.erb // Default Rails javascript and turbolinks -import Rails from 'rails-ujs'; -Rails.start(); +// import Rails from 'rails-ujs'; +// Rails.start(); import "chartkick/chart.js" import "highcharts" diff --git a/app/packs/entrypoints/controllers/profile_webpush_controller.js b/app/packs/entrypoints/controllers/profile_webpush_controller.js index 3067ba92e..a7bcaff96 100644 --- a/app/packs/entrypoints/controllers/profile_webpush_controller.js +++ b/app/packs/entrypoints/controllers/profile_webpush_controller.js @@ -23,37 +23,39 @@ export default class extends Controller { setupPushNotifications() { const applicationServerKey = this.urlBase64ToUint8Array(this.vapidPublicValue); - navigator.serviceWorker.register("/service-worker.js", {scope: "./" }).then((registration) => { - registration.pushManager.subscribe({ - userVisibleOnly: true, - applicationServerKey: applicationServerKey - }).then((subscription) => { - - const endpoint = subscription.endpoint; - const p256dh = btoa(String.fromCharCode.apply(null, new Uint8Array(subscription.getKey('p256dh')))); - const auth = btoa(String.fromCharCode.apply(null, new Uint8Array(subscription.getKey('auth')))); - - fetch('/push_subscriptions', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').getAttribute('content') - }, - body: JSON.stringify({ - subscription: { - endpoint: endpoint, - p256dh: p256dh, - auth: auth - } - }) + if (window.isSecureContext) { + navigator.serviceWorker.register("/service-worker.js", {scope: "./" }).then((registration) => { + registration.pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: applicationServerKey + }).then((subscription) => { + + const endpoint = subscription.endpoint; + const p256dh = btoa(String.fromCharCode.apply(null, new Uint8Array(subscription.getKey('p256dh')))); + const auth = btoa(String.fromCharCode.apply(null, new Uint8Array(subscription.getKey('auth')))); + + fetch('/push_subscriptions', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').getAttribute('content') + }, + body: JSON.stringify({ + subscription: { + endpoint: endpoint, + p256dh: p256dh, + auth: auth + } + }) + }); + + localStorage.setItem('block-webpush-modal', 'true'); + document.querySelector('.webpush-modal').style.display = 'none'; + this.buttonTarget.style.disabled = true; + this.buttonTarget.classList.add('disabled'); }); - - localStorage.setItem('block-webpush-modal', 'true'); - document.querySelector('.webpush-modal').style.display = 'none'; - this.buttonTarget.style.disabled = true; - this.buttonTarget.classList.add('disabled'); }); - }); + } } } \ No newline at end of file diff --git a/app/packs/entrypoints/controllers/push_notification_controller.js b/app/packs/entrypoints/controllers/push_notification_controller.js index 6e3f12486..1773f88a4 100644 --- a/app/packs/entrypoints/controllers/push_notification_controller.js +++ b/app/packs/entrypoints/controllers/push_notification_controller.js @@ -7,6 +7,8 @@ export default class extends Controller { }; connect() { + console.log('Push Notification Controller connected'); + if (!this.userLoginValue) return; let subscribed = localStorage.getItem('block-webpush-modal'); diff --git a/app/packs/entrypoints/controllers/wishlist_controller.js b/app/packs/entrypoints/controllers/wishlist_controller.js index 9599ec3e2..b54e4f4ae 100644 --- a/app/packs/entrypoints/controllers/wishlist_controller.js +++ b/app/packs/entrypoints/controllers/wishlist_controller.js @@ -1,5 +1,5 @@ import { Controller } from "@hotwired/stimulus" -// import Rails from 'rails-ujs'; +import Rails from 'rails-ujs'; export default class extends Controller { connect() { diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 2c79300c1..f250cd02f 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -7,6 +7,7 @@ <%= csp_meta_tag %> <%= javascript_pack_tag 'application', 'data-turbo-track': 'reload' %> <%= stylesheet_pack_tag 'application', "data-turbo-track": 'reload' %> + + <%= render 'google_analytics', tracking_id: google_analytics.tracking_id if google_analytics.enabled? && show_google_analytics? %> +