diff --git a/src/omnix/static/js/main.js b/src/omnix/static/js/main.js index 3bf8c4b..8ee15d2 100644 --- a/src/omnix/static/js/main.js +++ b/src/omnix/static/js/main.js @@ -52,14 +52,16 @@ var previewPanel = jQuery(".preview-panel", element); var mediaTarget = jQuery(".media-target", previewPanel); var operationsTarget = jQuery(".operations-target", previewPanel); - var button = jQuery(".button", operationsTarget); + var buttonAdd = jQuery(".button-add", operationsTarget); + var buttonClear = jQuery(".button-clear", operationsTarget); var objectId = jQuery(".text-field[name=object_id]", element); var classInput = jQuery("input[name=class]", element); var representationInput = jQuery("input[name=representation]", element); var url = form.attr("action"); var mediaUrl = form.attr("data-media"); - var newUrl = button.attr("data-reference"); + var newUrlAdd = buttonAdd.attr("data-reference"); + var newUrlClear = buttonClear.attr("data-reference"); var value = objectId.uxvalue(); previewPanel.hide(); mediaTarget.empty(); @@ -89,7 +91,8 @@ mediaTarget.append(imageContainer); imageContainer.uxapply(); } - button.attr("data-link", newUrl + value); + buttonAdd.attr("data-link", newUrlAdd + value); + buttonClear.attr("data-link", newUrlClear + value); classInput.val(data._class); representationInput.val(data.representation); previewPanel.show(); diff --git a/src/omnix/templates/extra/browser.html.tpl b/src/omnix/templates/extra/browser.html.tpl index 26aae28..c3b43ec 100644 --- a/src/omnix/templates/extra/browser.html.tpl +++ b/src/omnix/templates/extra/browser.html.tpl @@ -30,7 +30,10 @@
- Add Media + Add Media + // + Clear Media
diff --git a/src/omnix/util/config.py b/src/omnix/util/config.py index f0e89fa..69e564f 100644 --- a/src/omnix/util/config.py +++ b/src/omnix/util/config.py @@ -92,6 +92,7 @@ "foundation.root_entity.update", "foundation.root_entity.show_media", "foundation.root_entity.set_media", + "foundation.root_entity.clear_media", "foundation.supplier_company.list", "foundation.supplier_company.show", "foundation.system_company.show.self", diff --git a/src/omnix/views/web/extra.py b/src/omnix/views/web/extra.py index fc28b17..67eee9f 100644 --- a/src/omnix/views/web/extra.py +++ b/src/omnix/views/web/extra.py @@ -1233,6 +1233,15 @@ def create_media_browser(id): flask.url_for("browser_extras", id = id) ) +@app.route("/extras/browser/clear_media/", methods = ("GET",)) +@quorum.ensure("foundation.root_entity.clear_media") +def clear_media_browser(id): + api = util.get_api() + api.clear_media_entity(id) + return flask.redirect( + flask.url_for("browser_extras", id = id) + ) + def _media_sorter(item): return ( item["label"] or "",