mirror of
https://github.com/transatoshi-mw/grin-web-wallet.git
synced 2025-10-07 00:02:47 +00:00
contents of zip
This commit is contained in:
180
scripts/cookie_acceptance.js
Executable file
180
scripts/cookie_acceptance.js
Executable file
@@ -0,0 +1,180 @@
|
||||
// Use strict
|
||||
"use strict";
|
||||
|
||||
|
||||
// Classes
|
||||
|
||||
// Cookie acceptance class
|
||||
class CookieAcceptance {
|
||||
|
||||
// Public
|
||||
|
||||
// Constructor
|
||||
constructor() {
|
||||
|
||||
// Get cookie acceptance display
|
||||
this.cookieAcceptanceDisplay = $("section.cookieAcceptance");
|
||||
|
||||
// Get acknowledge button
|
||||
this.acknowledgeButton = this.cookieAcceptanceDisplay.find("button");
|
||||
|
||||
// Set can show
|
||||
this.canShow = false;
|
||||
|
||||
// Set self
|
||||
var self = this;
|
||||
|
||||
// Cookie acceptance display transaition end event
|
||||
this.cookieAcceptanceDisplay.on("transitionend", function() {
|
||||
|
||||
// Check if cookie acceptance display is hiding
|
||||
if(self.cookieAcceptanceDisplay.hasClass("hide") === true) {
|
||||
|
||||
// Prevent focus on cookie acceptance display's elements
|
||||
self.cookieAcceptanceDisplay.addClass("noFocus");
|
||||
|
||||
// Trigger is hidden event
|
||||
$(self).trigger(CookieAcceptance.IS_HIDDEN_EVENT);
|
||||
}
|
||||
});
|
||||
|
||||
// Window storage event
|
||||
$(window).on("storage", function(event) {
|
||||
|
||||
// Check if cookie acceptance message acknowledged was changed
|
||||
if(event["originalEvent"]["key"] === CookieAcceptance.COOKIE_ACCEPTANCE_MESSAGE_ACKNOWLEDGED_LOCAL_STORAGE_NAME) {
|
||||
|
||||
// Hide
|
||||
self.hide();
|
||||
|
||||
// Clear can show
|
||||
self.canShow = false;
|
||||
}
|
||||
});
|
||||
|
||||
// Acknowledged button click event
|
||||
this.acknowledgeButton.on("click", function() {
|
||||
|
||||
// Hide
|
||||
self.hide();
|
||||
|
||||
// Clear can show
|
||||
self.canShow = false;
|
||||
|
||||
// Try
|
||||
try {
|
||||
|
||||
// Save cookie acceptance message acknowledged
|
||||
localStorage.setItem(CookieAcceptance.COOKIE_ACCEPTANCE_MESSAGE_ACKNOWLEDGED_LOCAL_STORAGE_NAME, CookieAcceptance.COOKIE_ACCEPTANCE_MESSAGE_ACKNOWLEDGED_TRUE_VALUE);
|
||||
}
|
||||
|
||||
// Catch errors
|
||||
catch(error) {
|
||||
|
||||
// Trigger a fatal error
|
||||
new FatalError(FatalError.LOCAL_STORAGE_ERROR);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Show
|
||||
show(canShow = true) {
|
||||
|
||||
// Check if can show
|
||||
if(canShow === true || this.canShow === true) {
|
||||
|
||||
// Set can show
|
||||
this.canShow = true;
|
||||
|
||||
// Check if not an app or extension and not loading from file
|
||||
if(Common.isApp() === false && Common.isExtension() === false && location["protocol"] !== Common.FILE_PROTOCOL) {
|
||||
|
||||
// Get cookie acceptance message acknowledged
|
||||
var cookieAcceptanceMessageAcknowledged = localStorage.getItem(CookieAcceptance.COOKIE_ACCEPTANCE_MESSAGE_ACKNOWLEDGED_LOCAL_STORAGE_NAME);
|
||||
|
||||
// Check if cookie acceptance message hasn't been acknowledged
|
||||
if(cookieAcceptanceMessageAcknowledged === Common.INVALID_LOCAL_STORAGE_ITEM || cookieAcceptanceMessageAcknowledged !== CookieAcceptance.COOKIE_ACCEPTANCE_MESSAGE_ACKNOWLEDGED_TRUE_VALUE) {
|
||||
|
||||
// Show cookie acceptance display and make it so that its elements can be focused
|
||||
this.cookieAcceptanceDisplay.removeClass("hide noFocus");
|
||||
|
||||
// Set self
|
||||
var self = this;
|
||||
|
||||
// Windows resize cookie acceptance event
|
||||
$(window).on("resize.cookieAcceptance", function() {
|
||||
|
||||
// Check if is an app
|
||||
if(Common.isApp() === true) {
|
||||
|
||||
// Turn off window resize cookie acceptance event
|
||||
$(window).off("resize.cookieAcceptance");
|
||||
|
||||
// Hide
|
||||
self.hide();
|
||||
|
||||
// Clear can show
|
||||
self.canShow = false;
|
||||
}
|
||||
});
|
||||
|
||||
// Return true
|
||||
return true;
|
||||
}
|
||||
|
||||
// Otherwise
|
||||
else {
|
||||
|
||||
// Trigger is hidden event
|
||||
$(this).trigger(CookieAcceptance.IS_HIDDEN_EVENT);
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise
|
||||
else {
|
||||
|
||||
// Trigger is hidden event
|
||||
$(this).trigger(CookieAcceptance.IS_HIDDEN_EVENT);
|
||||
}
|
||||
}
|
||||
|
||||
// Return false
|
||||
return false;
|
||||
}
|
||||
|
||||
// Is hidden event
|
||||
static get IS_HIDDEN_EVENT() {
|
||||
|
||||
// Return is hidden event
|
||||
return "CookieAcceptanceIsHiddenEvent";
|
||||
}
|
||||
|
||||
// Private
|
||||
|
||||
// Hide
|
||||
hide() {
|
||||
|
||||
// Hide cookie acceptance display
|
||||
this.cookieAcceptanceDisplay.addClass("hide");
|
||||
}
|
||||
|
||||
// Cookie acceptance message acknowledged local storage name
|
||||
static get COOKIE_ACCEPTANCE_MESSAGE_ACKNOWLEDGED_LOCAL_STORAGE_NAME() {
|
||||
|
||||
// Return cookie acceptance message acknowledged local storage name
|
||||
return "Cookie Acceptance Message Acknowledged";
|
||||
}
|
||||
|
||||
// Cookie acceptance message acknowledged true value
|
||||
static get COOKIE_ACCEPTANCE_MESSAGE_ACKNOWLEDGED_TRUE_VALUE() {
|
||||
|
||||
// Return cookie acceptance message acknowledged true value
|
||||
return "true";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Main function
|
||||
|
||||
// Set global object's cookie acceptance
|
||||
globalThis["CookieAcceptance"] = CookieAcceptance;
|
Reference in New Issue
Block a user