NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Joget extras features // @namespace wevioo.joget // @version 0.1 // @description Add Extras Features to joget Dashboard (Export All, Clear console logs...) // @author Mohamed Fahmi Chaar // @license MIT // @match *://*/jw/* // @icon https://www.google.com/s2/favicons?sz=64&domain=cdnjs.com // @grant none // ==/UserScript== (function () { 'use strict'; $(function () { $(document).bind("keydown", function (e) { if ($("#builder-steps").length) { if (e.which == 83 && event.ctrlKey) { console.log($("#builder-steps .last-inactive a")) $("#builder-steps .last-inactive a").click(); return false; } } return true; }); new MutationObserver(function (mutations) { mutations.some(function (mutation) { if (mutation.type === 'attributes' && mutation.attributeName === 'src' && mutation.target.id === 'jqueryDialogFrame') { // console.log(mutation); // console.log('New src: ', mutation.target.src); if (mutation.target.src && mutation.target.src.includes('exportconfig')) { addSelectAllButton(mutation.target) } return true; } return false; }); }).observe(document.body, { attributes: true, attributeFilter: ['src'], attributeOldValue: true, characterData: false, characterDataOldValue: false, childList: false, subtree: true }); $(document).on('change', '#selectAll', function () { $('#exportform input:checkbox').not(this).prop('checked', this.checked) $('label[for=selectAll] .btn').text(this.checked ? 'Unselect All' : 'Select All') }) $("body").on('copy', function () { const action = "copy" clickOnOption(action) }) $("body").on('paste', function () { $(".form-palette-options").each(function() { const style = $(this).attr('style') if (style && style.includes("visibility: visible")) { $(this).find('.element-paste').click() } }) }) }) function clickOnOption(action) { $(".element-clear").each(function() { const style = $(this).attr('style') if (style && style.includes("visibility: visible")) { const $options = $(this).prev('.form-palette-options') $options.find(`.element-${action}`).click() } }) } function addSelectAllButton(iframe) { if (!iframe) { return false; } $(iframe).on('load', function () { if (!$(iframe).contents().find('#selectAll').length) { $(iframe).contents().find("#exportform fieldset .alert").after(` <div class="form-row select-all-row"> <label for="selectAll"> <div class='btn'>Select All</div> </label> <div class="form-input"> <input id="selectAll" type="checkbox"> </div> </div> `) } }) } // Logs Options if (window.location.href.includes('/logs') || window.location.href.includes('/slogs')) { const containerStyle = ` position: fixed; z-index: 2; bottom: 75px; right: 63px; display: flex; align-items: center; gap: 10px; ` const btnStyle = ` --primary: white; color: black; border: 1px solid; ` $('#main-body-content').append(` <div style="${containerStyle}"> <div class="clear-logs btn" style="${btnStyle}"><i class="fas fa-trash"></i> Clear</div> <div class="scroll-up btn" style=""><i class="fas fa-arrow-alt-circle-up"></i></div> <div class="scroll-down btn" style=""><i class="fas fa-arrow-alt-circle-down"></i></div> </div> `); $(document).on('click', '.clear-logs', function() { $('#logs').html("") }) $(document).on('click', '.scroll-up', function() { $("html, body").animate({ scrollTop: 0 }, 300); }) $(document).on('click', '.scroll-down', function() { $("html, body").animate({ scrollTop: $(document).height() }, 300); }) } })();