sailyond-cvat

use on sailyond cvat

// ==UserScript==
// @name         sailyond-cvat
// @namespace    http://cvat.sailyond.com/
// @version      20240512
// @description  use on sailyond cvat
// @author       Tianlu
// @license      MIT
// @match        http://cvat.sailyond.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net
// @grant        window.onurlchange
// @grant        GM_xmlhttpRequest
// @grant        GM_addStyle
// ==/UserScript==

(function () {
    "use strict";

    console.log("cvat");
    GM_addStyle(`
      .cvat-canvas-context-menu {min-width: 500px;}
      .cvat-canvas-context-menu .ant-row-middle .ant-col-10 { max-width: 20%; }
      .cvat-canvas-context-menu .ant-row-middle .ant-col-12 { max-width: 70%; }
     `
    )

    if (window.onurlchange === null) {
        window.addEventListener('urlchange', (info) => {
            checkSidebar()
        });
    }
    document.addEventListener("DOMContentLoaded", function () {
      checkSidebar()
    });
})();

function checkSidebar() {
    if(!(window.location.href.indexOf("http://cvat.sailyond.com/tasks") >= 0)) {
        return
    }

    var counter = 0;
    const invervalId = setInterval(() => {
        console.log('counter', counter)
        const sidebarElements = document.getElementsByClassName("cvat-objects-sidebar")
        if(sidebarElements.length >= 1) {
            sidebarStyle();
            clearInterval(invervalId);
        }
        counter += 1
        if(counter > 300) {
            clearInterval(invervalId);
        }
    }, 1000)
    // 这里的代码会在整个页面(包括所有依赖资源)加载完成后执行
    console.log("Page is fully loaded, including all dependencies.");
    // 在这里执行需要等待所有资源加载完成后的代码
}

function sidebarStyle() {
    const sidebar = document.getElementsByClassName("cvat-objects-sidebar")[0];
    // console.log("sidebar", sidebar);
    if (sidebar) {
        sidebar.style.minWidth = "550px";
    }
}