short gitlab diff filename

shorten gitlab diff filename by remove middle path

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         short gitlab diff filename
// @namespace    http://gitlab.mafengwo.net/
// @version      0.1
// @description  shorten gitlab diff filename by remove middle path
// @author       You
// @include      https://gitlab.mfwdev.com/*
// @grant        none
// ==/UserScript==



(function() {
    'use strict';

    function modifyDiffFileFunc() {
        const es = document.getElementsByClassName("diff-file-changes-path append-right-5");
        for (var i = 0; i < es.length; i++) {
            const pathComponents = es[i].textContent.split("/");
            es[i].textContent = pathComponents.length > 1 ? pathComponents[0]+ "/" + pathComponents[pathComponents.length - 1] : pathComponents[0];
        }
    }

    function onDOMChanged(e) {
        if (e.target.nodeName == "DIV" && e.target.className == "commit-stat-summary dropdown") {
            modifyDiffFileFunc();
        }
    }

    const url = window.location.href;
    if (url.includes('merge')) {
        document.querySelector("#diff-notes-app").addEventListener("DOMSubtreeModified", onDOMChanged);
    }

})();