mirror of
https://github.com/wallabag/wallabag.git
synced 2025-06-27 16:36:00 +00:00
Move global js to material
This commit is contained in:
parent
3c271aa7da
commit
c9c33e8afd
2 changed files with 121 additions and 126 deletions
|
@ -1,124 +0,0 @@
|
||||||
/* jQuery */
|
|
||||||
import $ from 'jquery';
|
|
||||||
|
|
||||||
/* Annotations */
|
|
||||||
import annotator from 'annotator';
|
|
||||||
|
|
||||||
import ClipboardJS from 'clipboard';
|
|
||||||
import 'mathjax/es5/tex-svg';
|
|
||||||
|
|
||||||
/* Fonts */
|
|
||||||
import 'material-design-icons-iconfont/dist/material-design-icons.css';
|
|
||||||
import 'lato-font/css/lato-font.css';
|
|
||||||
import 'open-dyslexic/open-dyslexic-regular.css';
|
|
||||||
import '@fontsource/atkinson-hyperlegible';
|
|
||||||
import '@fontsource/eb-garamond';
|
|
||||||
import '@fontsource/montserrat';
|
|
||||||
import '@fontsource/oswald';
|
|
||||||
import './global.scss';
|
|
||||||
|
|
||||||
/* Shortcuts */
|
|
||||||
import './js/shortcuts/entry';
|
|
||||||
import './js/shortcuts/main';
|
|
||||||
|
|
||||||
/* Highlight */
|
|
||||||
import './js/highlight';
|
|
||||||
|
|
||||||
import { savePercent, retrievePercent } from './js/tools';
|
|
||||||
|
|
||||||
/* ==========================================================================
|
|
||||||
Annotations & Remember position
|
|
||||||
========================================================================== */
|
|
||||||
|
|
||||||
$(document).ready(() => {
|
|
||||||
if ($('#article').length) {
|
|
||||||
const app = new annotator.App();
|
|
||||||
|
|
||||||
app.include(annotator.ui.main, {
|
|
||||||
element: document.querySelector('article'),
|
|
||||||
});
|
|
||||||
|
|
||||||
const authorization = {
|
|
||||||
permits() { return true; },
|
|
||||||
};
|
|
||||||
app.registry.registerUtility(authorization, 'authorizationPolicy');
|
|
||||||
|
|
||||||
const x = JSON.parse($('#annotationroutes').html());
|
|
||||||
app.include(annotator.storage.http, $.extend({}, x, {
|
|
||||||
onError(msg, xhr) {
|
|
||||||
if (!Object.prototype.hasOwnProperty.call(xhr, 'responseJSON')) {
|
|
||||||
annotator.notification.banner('An error occurred', 'error');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$.each(xhr.responseJSON.children, (k, v) => {
|
|
||||||
if (v.errors) {
|
|
||||||
$.each(v.errors, (n, errorText) => {
|
|
||||||
annotator.notification.banner(errorText, 'error');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
|
|
||||||
app.start().then(() => {
|
|
||||||
app.annotations.load({ entry: x.entryId });
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window).scroll(() => {
|
|
||||||
const scrollTop = $(window).scrollTop();
|
|
||||||
const docHeight = $(document).height();
|
|
||||||
const scrollPercent = (scrollTop) / (docHeight);
|
|
||||||
const scrollPercentRounded = Math.round(scrollPercent * 100) / 100;
|
|
||||||
savePercent(x.entryId, scrollPercentRounded);
|
|
||||||
});
|
|
||||||
|
|
||||||
retrievePercent(x.entryId);
|
|
||||||
|
|
||||||
$(window).resize(() => {
|
|
||||||
retrievePercent(x.entryId, true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
document.querySelectorAll('[data-handler=tag-rename]').forEach((item) => {
|
|
||||||
const current = item;
|
|
||||||
current.wallabag_edit_mode = false;
|
|
||||||
current.onclick = (event) => {
|
|
||||||
const target = event.currentTarget;
|
|
||||||
|
|
||||||
if (target.wallabag_edit_mode === false) {
|
|
||||||
$(target.parentNode.querySelector('[data-handle=tag-link]')).addClass('hidden');
|
|
||||||
$(target.parentNode.querySelector('[data-handle=tag-rename-form]')).removeClass('hidden');
|
|
||||||
target.parentNode.querySelector('[data-handle=tag-rename-form] input').focus();
|
|
||||||
target.querySelector('.material-icons').innerHTML = 'done';
|
|
||||||
|
|
||||||
target.wallabag_edit_mode = true;
|
|
||||||
} else {
|
|
||||||
target.parentNode.querySelector('[data-handle=tag-rename-form]').submit();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
// mimic radio button because emailTwoFactor is a boolean
|
|
||||||
$('#update_user_googleTwoFactor').on('change', () => {
|
|
||||||
$('#update_user_emailTwoFactor').prop('checked', false);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#update_user_emailTwoFactor').on('change', () => {
|
|
||||||
$('#update_user_googleTwoFactor').prop('checked', false);
|
|
||||||
});
|
|
||||||
|
|
||||||
// same mimic for super admin
|
|
||||||
$('#user_googleTwoFactor').on('change', () => {
|
|
||||||
$('#user_emailTwoFactor').prop('checked', false);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#user_emailTwoFactor').on('change', () => {
|
|
||||||
$('#user_googleTwoFactor').prop('checked', false);
|
|
||||||
});
|
|
||||||
|
|
||||||
// handle copy to clipboard for developer stuff
|
|
||||||
const clipboard = new ClipboardJS('.btn');
|
|
||||||
clipboard.on('success', (e) => {
|
|
||||||
e.clearSelection();
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -4,8 +4,30 @@ import $ from 'jquery';
|
||||||
import 'materialize-css/dist/css/materialize.css';
|
import 'materialize-css/dist/css/materialize.css';
|
||||||
import 'materialize-css/dist/js/materialize';
|
import 'materialize-css/dist/js/materialize';
|
||||||
|
|
||||||
/* Global imports */
|
/* Annotations */
|
||||||
import '../_global/index';
|
import annotator from 'annotator';
|
||||||
|
|
||||||
|
import ClipboardJS from 'clipboard';
|
||||||
|
import 'mathjax/es5/tex-svg';
|
||||||
|
|
||||||
|
/* Fonts */
|
||||||
|
import 'material-design-icons-iconfont/dist/material-design-icons.css';
|
||||||
|
import 'lato-font/css/lato-font.css';
|
||||||
|
import 'open-dyslexic/open-dyslexic-regular.css';
|
||||||
|
import '@fontsource/atkinson-hyperlegible';
|
||||||
|
import '@fontsource/eb-garamond';
|
||||||
|
import '@fontsource/montserrat';
|
||||||
|
import '@fontsource/oswald';
|
||||||
|
import '../_global/global.scss';
|
||||||
|
|
||||||
|
/* Shortcuts */
|
||||||
|
import '../_global/js/shortcuts/entry';
|
||||||
|
import '../_global/js/shortcuts/main';
|
||||||
|
|
||||||
|
/* Highlight */
|
||||||
|
import '../_global/js/highlight';
|
||||||
|
|
||||||
|
import { savePercent, retrievePercent } from '../_global/js/tools';
|
||||||
|
|
||||||
/* Tools */
|
/* Tools */
|
||||||
import {
|
import {
|
||||||
|
@ -21,6 +43,103 @@ import './css/index.scss';
|
||||||
|
|
||||||
const mobileMaxWidth = 993;
|
const mobileMaxWidth = 993;
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Annotations & Remember position
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
$(document).ready(() => {
|
||||||
|
if ($('#article').length) {
|
||||||
|
const app = new annotator.App();
|
||||||
|
|
||||||
|
app.include(annotator.ui.main, {
|
||||||
|
element: document.querySelector('article'),
|
||||||
|
});
|
||||||
|
|
||||||
|
const authorization = {
|
||||||
|
permits() { return true; },
|
||||||
|
};
|
||||||
|
app.registry.registerUtility(authorization, 'authorizationPolicy');
|
||||||
|
|
||||||
|
const x = JSON.parse($('#annotationroutes').html());
|
||||||
|
app.include(annotator.storage.http, $.extend({}, x, {
|
||||||
|
onError(msg, xhr) {
|
||||||
|
if (!Object.prototype.hasOwnProperty.call(xhr, 'responseJSON')) {
|
||||||
|
annotator.notification.banner('An error occurred', 'error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$.each(xhr.responseJSON.children, (k, v) => {
|
||||||
|
if (v.errors) {
|
||||||
|
$.each(v.errors, (n, errorText) => {
|
||||||
|
annotator.notification.banner(errorText, 'error');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
|
app.start().then(() => {
|
||||||
|
app.annotations.load({ entry: x.entryId });
|
||||||
|
});
|
||||||
|
|
||||||
|
$(window).scroll(() => {
|
||||||
|
const scrollTop = $(window).scrollTop();
|
||||||
|
const docHeight = $(document).height();
|
||||||
|
const scrollPercent = (scrollTop) / (docHeight);
|
||||||
|
const scrollPercentRounded = Math.round(scrollPercent * 100) / 100;
|
||||||
|
savePercent(x.entryId, scrollPercentRounded);
|
||||||
|
});
|
||||||
|
|
||||||
|
retrievePercent(x.entryId);
|
||||||
|
|
||||||
|
$(window).resize(() => {
|
||||||
|
retrievePercent(x.entryId, true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('[data-handler=tag-rename]').forEach((item) => {
|
||||||
|
const current = item;
|
||||||
|
current.wallabag_edit_mode = false;
|
||||||
|
current.onclick = (event) => {
|
||||||
|
const target = event.currentTarget;
|
||||||
|
|
||||||
|
if (target.wallabag_edit_mode === false) {
|
||||||
|
$(target.parentNode.querySelector('[data-handle=tag-link]')).addClass('hidden');
|
||||||
|
$(target.parentNode.querySelector('[data-handle=tag-rename-form]')).removeClass('hidden');
|
||||||
|
target.parentNode.querySelector('[data-handle=tag-rename-form] input').focus();
|
||||||
|
target.querySelector('.material-icons').innerHTML = 'done';
|
||||||
|
|
||||||
|
target.wallabag_edit_mode = true;
|
||||||
|
} else {
|
||||||
|
target.parentNode.querySelector('[data-handle=tag-rename-form]').submit();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// mimic radio button because emailTwoFactor is a boolean
|
||||||
|
$('#update_user_googleTwoFactor').on('change', () => {
|
||||||
|
$('#update_user_emailTwoFactor').prop('checked', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#update_user_emailTwoFactor').on('change', () => {
|
||||||
|
$('#update_user_googleTwoFactor').prop('checked', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
// same mimic for super admin
|
||||||
|
$('#user_googleTwoFactor').on('change', () => {
|
||||||
|
$('#user_emailTwoFactor').prop('checked', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#user_emailTwoFactor').on('change', () => {
|
||||||
|
$('#user_googleTwoFactor').prop('checked', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
// handle copy to clipboard for developer stuff
|
||||||
|
const clipboard = new ClipboardJS('.btn');
|
||||||
|
clipboard.on('success', (e) => {
|
||||||
|
e.clearSelection();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
(function darkTheme() {
|
(function darkTheme() {
|
||||||
const rootEl = document.querySelector('html');
|
const rootEl = document.querySelector('html');
|
||||||
const themeDom = {
|
const themeDom = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue