ValueEdge: Highlight save button when unsaved changes exist

In ValueEdge you have to manually save changes. This script reminds you by highlighting the save button when there are unsaved changes.

  1. // ==UserScript==
  2. // @name ValueEdge: Highlight save button when unsaved changes exist
  3. // @namespace https://github.com/ahr-huber/monkey-scripts/
  4. // @version 2025-03-28
  5. // @description In ValueEdge you have to manually save changes. This script reminds you by highlighting the save button when there are unsaved changes.
  6. // @license MIT
  7. // @author Andreas Huber
  8. // @match https://*.saas.microfocus.com/*
  9. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSIVBzuIOmRodbGLijiWKhbBQmkrtOpgcukXNGlIUlwcBdeCgx+LVQcXZ10dXAVB8APEXXBSdJES/5cUWsR4cNyPd/ced+8AoVllqtkTA1TNMtKJuJjLr4qBV/gxigAimJCYqSczi1l4jq97+Ph6F+VZ3uf+HANKwWSATySOMd2wiDeIZzctnfM+cYiVJYX4nHjSoAsSP3JddvmNc8lhgWeGjGx6njhELJa6WO5iVjZU4hnisKJqlC/kXFY4b3FWq3XWvid/YbCgrWS4TnMMCSwhiRREyKijgiosRGnVSDGRpv24h3/E8afIJZOrAkaOBdSgQnL84H/wu1uzOD3lJgXjQO+LbX9EgMAu0GrY9vexbbdOAP8zcKV1/LUmMPdJeqOjhY+AwW3g4rqjyXvA5Q4w/KRLhuRIfppCsQi8n9E35YGhW6B/ze2tvY/TByBLXS3fAAeHwHiJstc93t3X3du/Z9r9/QDakHLQl3fAPwAAAAZiS0dEAO8A7wDvwcyDBQAAAAlwSFlzAAAN1wAADdcBQiibeAAAActJREFUOMutk8trU1EQxn8zuUnqq6Du1I1ulCwtguCj6W3xH5Do0p2iIsabEJdpuxKrtKU7RcxKXLhzIaKGQgPiQnwuhFisLlqEiqGtkOccF7U18UZQdGAOHL7zfcOc+Qb+MaTjlhqO6ZelUTMpIBwF+wxUEDlAxLujrUbWiuNBOyXSIbDtYK/TepnIhgpam8Pz5mjZPOJ9pLVx3ml9lp39xqdSdY3itfM1Vpu0hlzWWC1jjydzbVAFgHz+vZaWbxucCjczmLlIMt8DwLHsbvwg1bXpQ7kt+MHZ9aI/lBXHC/qpA1BvfsWsTD6vIYFqpYqz12vY6lFamcJzHxgZMQCmJyqI7mBm+UxI4PmNBrhFnVm5ujqFocxhTBcojs2GHidzu4g0T+CIdm3HyUvF2Ce0boXAvtNR0eZDNRIKW7sliAepVET8S68YCI53CPhBWgYyj/7MSH7WF+ymizcSPJiqMXh+u7h4WXAFc/ouzLIFiuP3f06heK2I8IZaNA2gLj4MvEXYpGp9vybI/rCVh9J7xPSZQ08KdteZJJi+vvhXu6B+MObggjjuWcQK4V/nG08mnv5+mZLnNqv0XHHI3u7lbMkd6U2t++V/xHcXZav/DXBUYwAAAABJRU5ErkJggg==
  10. // @grant none
  11. // @sandbox DOM
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. function cssFix_saveButton() {
  18. const style = document.createElement("style");
  19. style.textContent = `
  20. button[icon="save"]:enabled::after {
  21. content: "";
  22. box-shadow: 0px 0px 8px 8px red;
  23. width: 0;
  24. display: block;
  25. height: 0;
  26. position: relative;
  27. animation: wobble 1 3s;
  28. animation-iteration-count: 3
  29. }
  30. @keyframes wobble {
  31. 25%,
  32. 75% {
  33. box-shadow: 0px 0px 8px 8px rgb(245 3 3);
  34. }
  35.  
  36. 50% {
  37. box-shadow: 0px 0px 2px 2px rgb(245 3 3);
  38. }
  39. }
  40. `;
  41. document.body.appendChild(style);
  42. }
  43.  
  44. cssFix_saveButton(); // add visual hint that there are unsaved changes
  45. })();