From 1ed638c38b02a2f9bfa9df2ad8c47e63174451b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D0=BE=D0=B1=D1=86=D0=B5=D0=B2=20=D0=92?= =?UTF-8?q?=D0=B8=D1=82=D0=B0=D0=BB=D0=B8=D0=B9=20=D0=A1=D0=B5=D1=80=D0=B3?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2=D0=B8=D1=87?= Date: Mon, 9 Jun 2025 10:53:40 +0500 Subject: [PATCH] Please enter the commit message for your changes. Lines starting with '' will be ignored, and an empty message aborts the commit. On branch main Initial commit Changes to be committed: new file: README.md new file: main.user.js new file: screenshot1.png new file: screenshot2.png new file: screenshot3.webp --- README.md | 22 +++++ main.user.js | 238 +++++++++++++++++++++++++++++++++++++++++++++++ screenshot1.png | Bin 0 -> 5062 bytes screenshot2.png | Bin 0 -> 10429 bytes screenshot3.webp | Bin 0 -> 16848 bytes 5 files changed, 260 insertions(+) create mode 100644 README.md create mode 100644 main.user.js create mode 100644 screenshot1.png create mode 100644 screenshot2.png create mode 100644 screenshot3.webp diff --git a/README.md b/README.md new file mode 100644 index 0000000..8896dff --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +[← Homepage](../README.md) + +# Enhancements for Forgejo + +| [Install](../../../../raw/branch/master/enhancementsForForgejo/main.user.js) | +|------------------------------------------------------------------------------| + +## Features + +- ~~Fix alphabetical files ordering~~ ([`forgejo/forgejo@codeberg.org#317`](https://codeberg.org/forgejo/forgejo/issues/317), fixed by [`forgejo/forgejo@codeberg.org#2522`](https://codeberg.org/forgejo/forgejo/pulls/2522)) +- Fix comment buttons alignment ([`forgejo/forgejo@codeberg.org#560`](https://codeberg.org/forgejo/forgejo/issues/560)) +- Sticky navbar ([`forgejo/forgejo@codeberg.org#1318`](https://codeberg.org/forgejo/forgejo/issues/1318)) +- Scrollable code view +- Fix issues tab consistency ([`forgejo/forgejo@codeberg.org#365`](https://codeberg.org/forgejo/forgejo/issues/365)) +- Restore feature-rich Markdown editor ([`forgejo/forgejo@codeberg.org#3604`](https://codeberg.org/forgejo/forgejo/issues/3604)) +- Sort `/admin/users` by newest by default ([`forgejo/forgejo@codeberg.org#2574`](https://codeberg.org/forgejo/forgejo/issues/2574)) + +--- + +| ![](./screenshot1.png) | ![](./screenshot2.png) | +|-------------------------|------------------------| +| ![](./screenshot3.webp) | | \ No newline at end of file diff --git a/main.user.js b/main.user.js new file mode 100644 index 0000000..4f7d729 --- /dev/null +++ b/main.user.js @@ -0,0 +1,238 @@ +// ==UserScript== +// @match https://*/* +// @name Enhancements for Forgejo +// @description Enhancements for Forgejo +// @grant GM.getValue +// @grant GM.setValue +// @version 0.2.1 +// @author KaKi87 +// @license MIT +// @namespace https://git.kaki87.net/KaKi87/userscripts/src/branch/master/enhancementsForForgejo +// @require https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.prod.js +// ==/UserScript== + +const + APP_ID = 'enhancementsForForgejo', + APP_NAME = 'Enhancements for Forgejo'; + +(async () => { + if(!document.querySelector('[href$="/explore/repos"]')) return; + unsafeWindow.Vue = Vue; + let + tweaksModalAppMountedPromiseResolve, + setTweakModalActive, + getSettings; + const + tweaksModalElement = document.createElement('div'), + tweaksModalAppMountedPromise = new Promise(resolve => tweaksModalAppMountedPromiseResolve = resolve), + tweaksModalApp = Vue.createApp({ + data: () => ({ + isActive: false, + settings: { + isFixCommentButtonsAlignment: true, + isNavbarSticky: false, + isCodeViewScrollable: true, + isFixIssuesTabConsistency: true, + isRestoreFeatureRichMarkdownEditor: true, + isSortAdminUsersByNewestByDefault: true + } + }), + methods: { + refreshSettings: async function(){ + const settings = await GM.getValue('settings'); + if(settings) + Object.assign(this.settings, settings); + }, + applySettings: function(){ + document.body.classList.toggle(`__${APP_ID}--isFixCommentButtonsAlignment`, this.settings.isFixCommentButtonsAlignment); + document.body.classList.toggle(`__${APP_ID}--isNavbarSticky`, this.settings.isNavbarSticky); + document.body.classList.toggle(`__${APP_ID}--isCodeViewScrollable`, this.settings.isCodeViewScrollable); + } + }, + watch: { + isActive: async function(isActive, wasActive){ + document.body.classList.toggle('dimmable', isActive); + document.body.classList.toggle('dimmed', isActive); + if(!wasActive && isActive) + await this.refreshSettings(); + }, + settings: { + deep: true, + handler: async function(){ + await GM.setValue('settings', this.settings); + this.applySettings(); + } + } + }, + mounted: async function(){ + await this.refreshSettings(); + setTweakModalActive = isActive => this.isActive = isActive; + getSettings = () => this.settings; + tweaksModalAppMountedPromiseResolve(); + this.applySettings(); + }, + template: ` +
+ ` + }); + tweaksModalElement.setAttribute('class', `__${APP_ID}__tweaksModal`); + await Promise.all([ + tweaksModalApp.mount(tweaksModalElement), + tweaksModalAppMountedPromise + ]); + document.body.append(tweaksModalElement); + for(const userMenuNotificationsElement of document.querySelectorAll('[href="/notifications"]')){ + const userMenuTweaksElement = document.createElement(userMenuNotificationsElement.tagName); + userMenuTweaksElement.style.setProperty('--width', `${userMenuNotificationsElement.offsetWidth}px`); + userMenuTweaksElement.style.setProperty('--height', `${userMenuNotificationsElement.offsetHeight}px`); + userMenuTweaksElement.setAttribute('class', `__${APP_ID}__tweaksMenu ${userMenuNotificationsElement.className}`); + userMenuTweaksElement.setAttribute('data-tooltip-content', APP_NAME); + userMenuTweaksElement.setAttribute('href', '#'); + userMenuTweaksElement.innerHTML = ``; + userMenuTweaksElement.addEventListener( + 'click', + event => { + event.preventDefault(); + setTweakModalActive(true); + } + ); + userMenuNotificationsElement.parentElement.insertBefore(userMenuTweaksElement, userMenuNotificationsElement); + } + { + const issuesTabElement = document.querySelector(`[href="${window.location.pathname}/issues"]`); + if(issuesTabElement && getSettings().isFixIssuesTabConsistency) + issuesTabElement.setAttribute('href', `${issuesTabElement.getAttribute('href')}?state=open`); + } + if(getSettings().isRestoreFeatureRichMarkdownEditor){ + localStorage.setItem('markdown-editor-default', 'easymde'); + localStorage.setItem('markdown-editor-wiki', 'easymde'); + } + if(window.location.pathname.startsWith('/admin') && getSettings().isSortAdminUsersByNewestByDefault) + document.querySelector('[href="/admin/users"]').setAttribute('href', '/admin/users?sort=newest'); + document.documentElement.style.setProperty( + `--${APP_ID}-navbar-height`, + `${document.querySelector('#navbar').offsetHeight}px` + ); + document.head.append(Object.assign( + document.createElement('link'), + { 'rel': 'stylesheet', 'href': 'https://cdn.jsdelivr.net/npm/boxicons@2.1.4/css/boxicons.min.css' } + )); + { + const styles = new CSSStyleSheet(); + // language=CSS + await styles.replace(` + .__${APP_ID}__tweaksMenu { + padding: 0 !important; + justify-content: center; + width: var(--width); + height: var(--height); + font-size: 1.25rem; + color: inherit; + } + .__${APP_ID}__tweaksModal__container { + position: fixed !important; + } + .__${APP_ID}__tweaksModal__header { + display: flex !important; + justify-content: space-between; + } + .__${APP_ID}__tweaksModal__header__close { + border: none; + background: none; + padding: 0; + font-size: 1.5rem; + cursor: pointer; + } + .__${APP_ID}__tweaksModal__form { + display: flex !important; + flex-direction: column; + row-gap: 0.5rem; + } + .__${APP_ID}__tweaksModal__form .checkbox label { + user-select: initial; + } + .__${APP_ID}--isFixCommentButtonsAlignment div:has(> #status-button) { + display: flex; + justify-content: flex-end; + column-gap: 0.5rem; + } + .__${APP_ID}--isFixCommentButtonsAlignment #status-button { + margin-bottom: 0; + display: flex; + align-items: center; + justify-content: center; + } + .__${APP_ID}--isNavbarSticky [role="main"] { + padding-top: var(--${APP_ID}-navbar-height); + } + .__${APP_ID}--isNavbarSticky #navbar { + position: fixed; + width: 100%; + z-index: 1; + } + .__${APP_ID}--isCodeViewScrollable .code-view, + .__${APP_ID}--isCodeViewScrollable .code-block { + overflow: auto; + } + .__${APP_ID}--isCodeViewScrollable .code-view .code-inner, + .__${APP_ID}--isCodeViewScrollable .code-block .chroma { + white-space: pre; + } + `); + document.adoptedStyleSheets = [...document.adoptedStyleSheets, styles]; + } +})(); \ No newline at end of file diff --git a/screenshot1.png b/screenshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..68cb7d79a12e0361923fb5b191cb6887cfbe1600 GIT binary patch literal 5062 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 ZR9KTgu)lc|WbgF<$xRr?BWC~r{~u5l$G`vp literal 0 HcmV?d00001