您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add bulk tagging and untagging mechanism to message list
// ==UserScript== // @name Stud.IP message tagger // @namespace http://tampermonkey.net/ // @version 0.1 // @description Add bulk tagging and untagging mechanism to message list // @author Michael Chen // @match https://e-learning.tuhh.de/studip/dispatch.php/messages/* // @icon https://www.google.com/s2/favicons?domain=tuhh.de // @grant none // ==/UserScript== (function() { 'use strict'; $("head").append($(` <style> #tag_name_add_extension, #tag_name_remove_extension { box-sizing: border-box;border: 1px solid #7e92b0;border-right-width: 30px;float: left;height: 22px;width: 100%; } .sidebar-tagging .tagging { list-style: none;margin: 0;padding: 0; } .sidebar-tagging input[type=submit] { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; width: 29px; height: 20px; background-size: 16px; float: left; background-position: center 3px; background-repeat: no-repeat; vertical-align: top; margin-left: -30px; } .sidebar-tagging.remove_tag input[type=submit] { background-image: url(https://e-learning.tuhh.de/studip/assets/images/icons/white/remove.svg); } .sidebar-tagging.add_tag input[type=submit] { background-image: url(https://e-learning.tuhh.de/studip/assets/images/icons/white/add.svg); } </style>`)); const tagging_widget = $(`<div class="sidebar-widget"> <div class="sidebar-widget-header">Tagging</div> <div class="sidebar-widget-content"> <form class="sidebar-tagging add_tag" action="javascript:void(0);"> <ul class="tagging"> <li> <label for="tag_name_add_extension" style="display:none;">Add Tag</label> <input type="text" id="tag_name_add_extension" name="tagname" value="" placeholder="Add Tag"> <input type="submit" value="Add"> </li> </ul> </form> <form class="sidebar-tagging remove_tag" action="javascript:void(0);"> <ul class="tagging"> <li> <label for="tag_name_remove_extension" style="display:none;">Remove Tag</label> <input type="text" id="tag_name_remove_extension" name="tagname" value="" placeholder="Remove Tag"> <input type="submit" value="Remove"> </li> </ul> </form> </div> </div>`); const tagging_form = tagging_widget.find(".add_tag"); const tagging_value = tagging_form.find("#tag_name_add_extension"); const untagging_form = tagging_widget.find(".remove_tag"); const untagging_value = untagging_form.find("#tag_name_remove_extension"); function getCheckedMessageIds() { var messages = $("#messages").find("input[type=checkbox").filter(function(i) { return $( this ).attr("id") == undefined; }); messages = messages.filter(function(i) { return $( this )[0].checked; }); return Array.from(messages.map(function(i) { return $(this).val(); })); } tagging_form.on("submit", function(e) { e.preventDefault(); const tagname = tagging_value.val(); const urls = getCheckedMessageIds().map(id => `https://e-learning.tuhh.de/studip/dispatch.php/messages/tag/${id}`); Promise.all(urls.map(url => $.post(url, { add_tag: tagname }))).then(function() {location.reload();}); }); untagging_form.on("submit", function(e) { e.preventDefault(); const tagname = untagging_value.val(); const urls = getCheckedMessageIds().map(id => `https://e-learning.tuhh.de/studip/dispatch.php/messages/tag/${id}`); Promise.all(urls.map(url => $.post(url, { remove_tag: tagname }))).then(function() {location.reload();}); }); $(".sidebar").append(tagging_widget); })();