diff --git a/ui/media/js/main.js b/ui/media/js/main.js index e0f77636..95b6ade1 100644 --- a/ui/media/js/main.js +++ b/ui/media/js/main.js @@ -381,18 +381,25 @@ function showImages(reqBody, res, outputContainer, livePreview) { Object.assign(buttons, PLUGINS['IMAGE_INFO_BUTTONS']) const imgItemInfo = imageItemElem.querySelector('.imgItemInfo') + const img = imageItemElem.querySelector('img') const createButton = function(name, btnInfo) { const newButton = document.createElement('button') newButton.classList.add(name) newButton.classList.add('tasksBtns') newButton.innerText = btnInfo.text newButton.addEventListener('click', function() { - let img = imageItemElem.querySelector('img') btnInfo.on_click(req, img) }) imgItemInfo.appendChild(newButton) } - Object.keys(buttons).forEach((name) => createButton(name, buttons[name])) + Object.keys(buttons).forEach((name) => { + const btn = buttons[name] + if (btn.filter && btn.filter(req, img) === false) { + return + } + + createButton(name, btn) + }) } }) } diff --git a/ui/media/js/plugins.js b/ui/media/js/plugins.js index 91d16c3c..51c30ecf 100644 --- a/ui/media/js/plugins.js +++ b/ui/media/js/plugins.js @@ -16,6 +16,11 @@ const PLUGINS = { * }) * newTaskRequest.seed = newTaskRequest.reqBody.seed * createTask(newTaskRequest) + * }, + * filter: function(origRequest, image) { + * // this is an optional function. return true/false to show/hide the button + * // if this function isn't set, the button will always be visible + * return true * } * } */