* set up refactored onboarding * create onboarding page * add in first slide and change slide functionality * fix test suite * profile refactor * profile refactor * refactor to api * add checkbox fields * add checkbox fields * remove puts * add basic css * add styling * add redirect * hide back and next at first and last slides * test refactored onboarding * test refactored onboarding * remove article edits * Fix schema * Add deleted file back in * Add default value for checked_t&c column * Adjust HTML structure to keep nav buttons in place * Fix ESLint issues on Onboarding.jsx file * Handling for undefined or empty followedTags on getUserTags * Fix codeclimate issues * Fix codeclimate issues * Fix more codeclimate issues * Fix more codeclimate issues * Update Onboarding snapshots * Uncheck the CoC and T&C checkboxes on render * Update snapshots * Return false instead of raising error * Update spec to use new onboarding * Redirect to onboarding if haven't seen it yet * Prevent redirect to onboarding from /signout_confirm * Use assign_attributes instead of saving twice * Move COC and T&C checkbox page to second slide * Add 'go back to original page' functionality * Reuse ready prototype logic * Keep track of the last visited onboarding page * Fix email subscription bug * Fix overflow issue for tags page * Remove height to prevent page container scrolling * Check for CoC and T&C for displaying onboarding * Add InstantClick redirect and preserve referrer in client * Fix async update + check by using localStorage * Turn off onboarding for tests * Finalize design for onboarding * Finalize design for onboarding * Make bulk follows during onboarding * Fix bulk follow test
35 lines
1.3 KiB
JavaScript
35 lines
1.3 KiB
JavaScript
function initializePWAFunctionality() {
|
|
if (window.matchMedia('(display-mode: standalone)').matches) {
|
|
document
|
|
.getElementById('pwa-nav-buttons')
|
|
.classList.add('pwa-nav-buttons--showing');
|
|
document.getElementById('app-back-button').onclick = function(e) {
|
|
e.preventDefault();
|
|
window.history.back();
|
|
};
|
|
document.getElementById('app-forward-button').onclick = function(e) {
|
|
e.preventDefault();
|
|
window.history.forward();
|
|
};
|
|
document.getElementById('app-refresh-button').onclick = function(e) {
|
|
e.preventDefault();
|
|
window.location.reload();
|
|
};
|
|
var isTouchDevice = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|DEV-Native-ios/i.test(
|
|
navigator.userAgent,
|
|
);
|
|
if (!isTouchDevice) {
|
|
var domain = window.location.protocol + '//' + window.location.host;
|
|
var links = document.getElementsByTagName('a');
|
|
for (var i = 0, max = links.length; i < max; i++) {
|
|
var a = links[i];
|
|
if (a.href.indexOf(domain + '/') === 0 || a.href.indexOf('/') === 0) {
|
|
// Is internal link. Do nothing right now.
|
|
} else {
|
|
a.setAttribute('target', '_blank');
|
|
a.setAttribute('rel', 'noopener noreferrer');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|