您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Makes the entity Privacy checkbox visible on both the Entry and Permissions tabs
- // ==UserScript==
- // @name Kanka Entity Privacy Setting on the Entry Tab
- // @namespace http://tampermonkey.net/
- // @version 2
- // @description Makes the entity Privacy checkbox visible on both the Entry and Permissions tabs
- // @author Salvatos
- // @license MIT
- // @match https://app.kanka.io/*/create*
- // @match https://app.kanka.io/*/edit*
- // @exclude https://app.kanka.io/*/posts/*
- // @icon https://www.google.com/s2/favicons?domain=kanka.io
- // ==/UserScript==
- /* Only run if the current user has access to the Permissions tab */
- let permissionsTab = document.getElementById('form-permissions') ?? false;
- if (permissionsTab) {
- const privBox = document.getElementsByClassName('privacy-callout')[0];
- const entryTab = document.getElementById('form-entry');
- // At page load, move checkbox to top of Entry tab
- setTimeout(() => { // Give it half a second for the form’s JS to set the classes
- if (entryTab.classList.contains("active")) {
- entryTab.insertBefore(privBox, entryTab.firstChild);
- observePermissions();
- }
- // Unless the page is being reloaded in a different tab
- else {
- observeEntry();
- }
- }, 500);
- /* When Permissions or Entry tab is focused, move checkbox to it.
- * Don’t rely on onClick, because the Back/Forward browser action also cycles between previously visited tabs.
- * Use mutation observers instead to watch the .active class. */
- function observeEntry() {
- // Set and run an observer until the tab is activated
- let observer = new MutationObserver(function(mutations) {
- if (entryTab.classList.contains("active")) {
- entryTab.prepend(privBox);
- //console.log("Moved tab to Entry at " + Date.now());
- observer.disconnect();
- observePermissions();
- }
- });
- observer.observe(entryTab, {attributes: true, childList: false, characterData: false, subtree: false});
- }
- function observePermissions() {
- // Set and run an observer until the tab is activated
- let observer = new MutationObserver(function(mutations) {
- if (permissionsTab.classList.contains("active")) {
- permissionsTab.prepend(privBox);
- //console.log("Moved tab to Permissions at " + Date.now());
- observer.disconnect();
- observeEntry();
- }
- });
- observer.observe(permissionsTab, {attributes: true, childList: false, characterData: false, subtree: false});
- }
- }