diff --git a/InvenTree/order/templates/order/sales_order_base.html b/InvenTree/order/templates/order/sales_order_base.html
index 4a8457d074..2781b26a30 100644
--- a/InvenTree/order/templates/order/sales_order_base.html
+++ b/InvenTree/order/templates/order/sales_order_base.html
@@ -167,8 +167,13 @@ src="{% static 'img/blank_image.png' %}"
{% if order.shipment_date %}
|
- {% trans "Shipped" %} |
- {{ order.shipment_date }}{{ order.shipped_by }} |
+ {% trans "Completed" %} |
+
+ {{ order.shipment_date }}
+ {% if order.shipped_by %}
+ {{ order.shipped_by }}
+ {% endif %}
+ |
{% endif %}
{% if order.responsible %}
diff --git a/InvenTree/templates/js/translated/forms.js b/InvenTree/templates/js/translated/forms.js
index fdd8b60d28..def7e41358 100644
--- a/InvenTree/templates/js/translated/forms.js
+++ b/InvenTree/templates/js/translated/forms.js
@@ -730,6 +730,9 @@ function submitFormData(fields, options) {
data = options.processBeforeUpload(data);
}
+ // Show the progress spinner
+ $(options.modal).find('#modal-progress-spinner').show();
+
// Submit data
upload_func(
options.url,
@@ -737,10 +740,13 @@ function submitFormData(fields, options) {
{
method: options.method,
success: function(response) {
+ $(options.modal).find('#modal-progress-spinner').hide();
handleFormSuccess(response, options);
},
error: function(xhr) {
+ $(options.modal).find('#modal-progress-spinner').hide();
+
switch (xhr.status) {
case 400:
handleFormErrors(xhr.responseJSON, fields, options);
diff --git a/InvenTree/templates/js/translated/modals.js b/InvenTree/templates/js/translated/modals.js
index 4cd0be8cec..c01bb6c34a 100644
--- a/InvenTree/templates/js/translated/modals.js
+++ b/InvenTree/templates/js/translated/modals.js
@@ -72,6 +72,7 @@ function createNewModal(options={}) {
+