This makes HRMS more user friendly and easy to use for dealers
// ==UserScript==
// @name Dealer Userscript
// @namespace http://tampermonkey.net/
// @version 0.2
// @description This makes HRMS more user friendly and easy to use for dealers
// @author You
// @match https://hrms.indianrail.gov.in/HRMS/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=gov.in
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Your code here...
$(document).ready(function() {
var currentUrl = window.location.href;
if (currentUrl === "https://hrms.indianrail.gov.in/HRMS/assign-bill-unit") {
console.log('On Assign Bill Unit page');
var ids = prompt('Enter HRMS ids with comma').replace(/\s+/g, '').split(",");
for (i = 0; i < ids.length; i++) {
$("#addRowButton").click(); console.log(ids[i]); $("#ipasEmployeeId" + i).val(ids[i]).change();
}
}
else if (currentUrl === "https://hrms.indianrail.gov.in/HRMS/cadre-management/seniority-list-updation-status#") {
$("#cadre-heirarchy-reset").after('<button type="button" onclick="serializeSeniority()" class="btn btn-primary-grad" id="serialize-seniority">Serialize</button>');
}
else if (currentUrl === "https://hrms.indianrail.gov.in/HRMS/leave-management/periodic-credit-of-leave") {
console.log('On Periodic Credit leave page');
$("#fetch-employee-list").after('<button type="button" onclick="leaveCreditReport()" class="btn btn-primary-grad" id="fetch-report">Get Report</button>');
}
else {
console.log('Not on expected pages. Current URL:', currentUrl);
}
window.serializeSeniority = function () {
$("input.seniorityPosition").each(function(i) {
$(this).val(i+1);
});
}
window.leaveCreditReport = async function () {
var billUnitCount = $("#billUnit").children().length;
var output = '';
var count = '';
var txt = '';
for (var i=1; i < billUnitCount; i++) {
$(`#billUnit option:eq(${i})`).prop("selected", true);
$("#fetch-employee-list").click();
count = $("#empCount").text();
if (count != '0') {
txt = $(`#billUnit option:eq(${i})`).val() + " \t" + count + " ";
$("#employeeListTBody tr").each(function() {
txt += $(this).find("td:eq(3)").text().substring(0,3) + ",";
});
$("#proceedButtonDiv").after(`<div>${txt}</div>`)
}
await delay(500);
}
}
window.delay = function (ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
window.exit = function () {
throw new Error('This is not an error. This is just to abort javascript');
}
});
})();