您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a button at the top middle of every webpage that redirects to elmo.
// ==UserScript== // @name Timesheets Button // @namespace http://tampermonkey.net/ // @version 1.0 // @description Adds a button at the top middle of every webpage that redirects to elmo. // @author Emma Nipperess // @match https://hub24.elmotalent.com.au/payroll/v5 // @grant none // ==/UserScript== (function() { 'use strict'; // Create a new button element var openTimesheetsBtn = document.createElement('button'); openTimesheetsBtn.innerHTML = "Go to Timesheets"; // Set the text inside the button // Style the button openTimesheetsBtn.style.position = 'fixed'; openTimesheetsBtn.style.top = '10px'; // Adjusted to not be exactly at the edge openTimesheetsBtn.style.left = '50%'; // Center the button horizontally openTimesheetsBtn.style.transform = 'translateX(-50%)'; // Adjust for exact centering openTimesheetsBtn.style.backgroundColor = '#4CAF50'; // green openTimesheetsBtn.style.color = 'white'; openTimesheetsBtn.style.padding = '10px 20px'; openTimesheetsBtn.style.zIndex = '10000'; // Ensure it's on top of other content openTimesheetsBtn.style.border = 'none'; openTimesheetsBtn.style.borderRadius = '5px'; openTimesheetsBtn.style.cursor = 'pointer'; // Change cursor on hover openTimesheetsBtn.style.fontSize = '16px'; openTimesheetsBtn.style.fontFamily = 'Arial, sans-serif'; function getEmployeeIdFromURL(currentUrl) { // Use a regular expression to find the digit(s) following "Employee/" const match = currentUrl.match(/Employee\/(\d+)/); // match[1] contains the first capturing group, which is the sequence of digits we're interested in // If a match is found, return it, otherwise return null or some default value return match ? match[1] : null; } function getLastDayOfCurrentMonth() { // Step 1: Create a Date object for the current date. const currentDate = new Date(); // Step 2: Extract the year and month from the current date. const year = currentDate.getFullYear(); const month = currentDate.getMonth(); // Note: January is 0, December is 11 // Step 3: Find the last day of the current month. // Adding 1 to the month and setting the day as 0 will give us the last day of the current month. const lastDayDate = new Date(year, month + 1, 0); // Step 4: Format the date in YYYY-MM-DD format. const formattedDate = `${lastDayDate.getFullYear()}-${String(lastDayDate.getMonth() + 1).padStart(2, '0')}-${String(lastDayDate.getDate()).padStart(2, '0')}`; return formattedDate; } // Add click event listener to the button openTimesheetsBtn.addEventListener('click', function() { var url = document.querySelector('[data-testid="elmo-menu-timesheet"]').href; var updatedUrl = url + "m/" + getLastDayOfCurrentMonth() + "/" + getEmployeeIdFromURL(url); window.location.href = updatedUrl; console.log(updatedUrl); }); // Append the button to the body document.body.appendChild(openTimesheetsBtn); })();