您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
better style for redmine
当前为
// ==UserScript== // @name redmine_tweaks // @namespace https://greasyfork.org/de/users/157797-lual // @match http*://*.redmine.tiss.tuwien.ac.at/* // @version 0.9 // @description better style for redmine // @author lual // @grant GM_addStyle // @grant GM_getResourceURL // ==/UserScript== // changes: 2011-03-17 initial // 2017-11-01 publish on greasyfork // 2020-09-29 kommentare optisch besser voneinander abtrennen // 2020-10-16 update auf redmine 4.1.1 // 2022-11-10 convert deprecated @include to @match // 2023-06-01 make textareas bigger ///////////////////////////////////////////////////////////////////////////////////////////////////////// var Util = { log: function () { var args = [].slice.call(arguments); args.unshift('%c' + SCRIPT_NAME + ':', 'font-weight: bold;color: purple;'); console.log.apply(console, args); }, storeGet: function(key) { if (typeof GM_getValue === "undefined") { var value = localStorage.getItem(key); if (value === "true" || value === "false") { return (value === "true") ? true : false; } return value; } return GM_getValue(key); }, storeSet: function(key, value) { if (typeof GM_setValue === "undefined") { return localStorage.setItem(key, value); } return GM_setValue(key, value); }, storeDel: function(key) { if (typeof GM_deleteValue === "undefined") { return localStorage.removeItem(key); } return GM_deleteValue(key); }, //moves an item in an array - (given arr will be altered!) move: function(arr, old_index, new_index) { while (old_index < 0) { old_index += arr.length; } while (new_index < 0) { new_index += arr.length; } if (new_index >= arr.length) { let k = new_index - arr.length; while ((k--) + 1) { arr.push(undefined); } } arr.splice(new_index, 0, arr.splice(old_index, 1)[0]); return arr; } }; var SCRIPT_NAME = 'redmine_tweaks'; Util.log('started'); //schoen farbig wird der code mit <pre><code class="ruby">der code</code></pre> // aber die zeilennummer sind stoerend.... // GM_addStyle(".syntaxhl .line-numbers {visibility: hidden;}"); //private tasks in der uebersicht als solche markieren... GM_addStyle("div.journal.private-notes .wiki:before {content: 'PRIVAT'; background-clip: border-box; background-color: #DD2222; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: repeat; background-size: auto auto; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; color: #FFFFFF; font-size: 60%; font-weight: bold; margin-right: 2px; padding-bottom: 0px; padding-left: 2px; padding-right: 2px; padding-top: 2px; position: relative; text-transform: uppercase;}"); //kommentare optisch besser voneinander abtrennen... GM_addStyle(".journal.has-notes { padding-top: 10px; border-top-width: 2px;border-top-color: ##3d454c; border-top-style: solid;}"); GM_addStyle("#history { border-bottom-width: 2px;border-bottom-style: solid; border-bottom-color: ##3d454c;}"); window.onload = function(){ var textareas = document.querySelectorAll('textarea#issue_description, textarea#issue_notes, textarea#wiki-edit'); for (const ta of textareas) { var rows_used = ta.value.split(/\r\n|\r|\n/).length; ta.rows = Math.max(ta.rows, rows_used, '40'); Util.log(ta.id, ' rows: ', ta.rows); } };