diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 55be8df7935f3f2709cdbeeb5443a39004f464b7..3faa878aab104e4c6980795c8cf4d79f6a69001b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,16 @@ and this project adheres to `Semantic Versioning`_. Unreleased ---------- +Changed +~~~~~~~ + +* Make External Link Widget icons clickable + +Fixed +~~~~~ + +* The progress page for background tasks didn't show all status messages. + `2.10`_ - 2022-06-25 -------------------- diff --git a/aleksis/core/static/js/progress.js b/aleksis/core/static/js/progress.js index 5fa0213f8466738466158a56ca6e1df50654a811..8a97577e93d276cd62c69ead4c65b448a7631d49 100644 --- a/aleksis/core/static/js/progress.js +++ b/aleksis/core/static/js/progress.js @@ -24,25 +24,32 @@ function renderMessageBox(level, text) { return '<div class="alert ' + STYLE_CLASSES[level] + '"><p><i class="material-icons iconify left" data-icon="' + ICONS[level] + '"></i>' + text + '</p></div>'; } +function updateMessages(messages) { + const messagesBox = $("#messages"); + + // Clear container + messagesBox.html(""); + + // Render message boxes + $.each(messages, function (i, message) { + messagesBox.append(renderMessageBox(message[0], message[1])); + }); +} + function customProgress(progressBarElement, progressBarMessageElement, progress) { setProgress(progress.percent); if (progress.hasOwnProperty("messages")) { - const messagesBox = $("#messages"); - - // Clear container - messagesBox.html("") - - // Render message boxes - $.each(progress.messages, function (i, message) { - messagesBox.append(renderMessageBox(message[0], message[1])); - }) + updateMessages(progress.messages); } } -function customSuccess(progressBarElement, progressBarMessageElement) { +function customSuccess(progressBarElement, progressBarMessageElement, result) { setProgress(100); + if (result) { + updateMessages(result); + } $("#result-alert").addClass("success"); $("#result-icon").attr("data-icon", "mdi:check-circle-outline"); $("#result-text").text(OPTIONS.success); @@ -54,8 +61,11 @@ function customSuccess(progressBarElement, progressBarMessageElement) { } } -function customError(progressBarElement, progressBarMessageElement) { +function customError(progressBarElement, progressBarMessageElement, excMessage) { setProgress(100); + if (excMessage) { + updateMessages([40, excMessage]); + } $("#result-alert").addClass("error"); $("#result-icon").attr("data-icon", "mdi:alert-octagon-outline"); $("#result-text").text(OPTIONS.error); diff --git a/aleksis/core/templates/core/dashboard_widget/external_link_widget.html b/aleksis/core/templates/core/dashboard_widget/external_link_widget.html index bfbb5bda23e0e5034425ff745efab7f630119355..4f2a940b7b59b84b3fa03a9a3dbc10a0045cf51e 100644 --- a/aleksis/core/templates/core/dashboard_widget/external_link_widget.html +++ b/aleksis/core/templates/core/dashboard_widget/external_link_widget.html @@ -1,6 +1,6 @@ <div class="card"> <div class="card-image"> - <img src="{{ icon_url }}" alt="{{ title }}" /> + <a href="{{ url }}"><img src="{{ icon_url }}" alt="{{ title }}" /></a> </div> <div class="card-action"> <a href="{{ url }}">{{ title }}</a> diff --git a/aleksis/core/util/celery_progress.py b/aleksis/core/util/celery_progress.py index ef42f1692dab60dc9bc88f3c6bba4ce4beef3222..91b5b7168f215da509c71806f137483a422872d3 100644 --- a/aleksis/core/util/celery_progress.py +++ b/aleksis/core/util/celery_progress.py @@ -155,7 +155,8 @@ def recorded_task(orig: Optional[Callable] = None, **kwargs) -> Union[Callable, @wraps(orig) def _inject_recorder(task, *args, **kwargs): recorder = ProgressRecorder(task) - return orig(*args, **kwargs, recorder=recorder) + orig(*args, **kwargs, recorder=recorder) + return recorder._messages # Force bind to True because _inject_recorder needs the Task object kwargs["bind"] = True