diff --git a/src/assetbundles/src/js/OrderDetails.js b/src/assetbundles/src/js/OrderDetails.js
index 20b12612..3253946b 100644
--- a/src/assetbundles/src/js/OrderDetails.js
+++ b/src/assetbundles/src/js/OrderDetails.js
@@ -97,8 +97,10 @@
if (haveDifferences(originalSourceSite, site.split(","))) return true;
// Validate Entries
- $originalElementIds = $('#originalElementIds').val().split(',');
- var currentElementIds = getEntryIds(false, true);
+ $originalElementIds = $('#originalElementIds').val();
+ // Check to prevent an array with empty string as value
+ $originalElementIds = $originalElementIds != '' ? $originalElementIds.split(',') : [];
+ var currentElementIds = getEntryIds(false, true);
if (haveDifferences($originalElementIds, currentElementIds)) return true;
diff --git a/src/elements/Order.php b/src/elements/Order.php
index 6f5307f9..c40f4c86 100644
--- a/src/elements/Order.php
+++ b/src/elements/Order.php
@@ -484,6 +484,16 @@ public function getElements()
return $this->_elements;
}
+ /**
+ * Returns array of element ids for an order. Ignores elements that are deleted
+ *
+ * @return array
+ */
+ public function getElementsId()
+ {
+ return array_keys($this->getElements());
+ }
+
/**
* User in order details settings tab entry table
*/
diff --git a/src/services/repository/OrderRepository.php b/src/services/repository/OrderRepository.php
index a746305d..05e467e8 100644
--- a/src/services/repository/OrderRepository.php
+++ b/src/services/repository/OrderRepository.php
@@ -523,7 +523,7 @@ public function getIsSourceChanged($order): ?array
$element = Craft::$app->getElements()->getElementById($file->elementId, null, $file->sourceSite);
/** Skip in case the source entry is deleted */
- if (! $element) throw new Exception('Source entry not found');
+ if (! $element) continue;
$wordCount = Translations::$plugin->elementTranslator->getWordCount($element);
$converter = Translations::$plugin->elementToFileConverter;
diff --git a/src/templates/_components/_forms/order-entries-table.twig b/src/templates/_components/_forms/order-entries-table.twig
index 9852f861..d62b3618 100644
--- a/src/templates/_components/_forms/order-entries-table.twig
+++ b/src/templates/_components/_forms/order-entries-table.twig
@@ -123,7 +123,7 @@
-
+
diff --git a/src/templates/_components/_forms/order-files-table.twig b/src/templates/_components/_forms/order-files-table.twig
index a82f16f2..b2f19a15 100644
--- a/src/templates/_components/_forms/order-files-table.twig
+++ b/src/templates/_components/_forms/order-files-table.twig
@@ -20,145 +20,147 @@
{% set registerDeltas = true %}
{% for file in order.files %}
{% set element = file.element(false) %}
-
+ {% if element is not null %}
+
-
- {% if file.isInProgress or file.isComplete or file.isReviewReady or file.isPublished %}
-
- {% else %}
-
- {% endif %}
-
-
+
+ {% if file.isInProgress or file.isComplete or file.isReviewReady or file.isPublished %}
+
+ {% else %}
+
+ {% endif %}
+
+
-
- {% if not file.hasPreview and file.isComplete %}
-
-
-
-
- {{ file.uiLabel }}
-
- {% set sourceUpdated = file.elementId in isSourceChanged %}
- {% set targetUpdated = order.trackTargetChanges and file.hasTmMisalignments and not file.isNew and not file.isModified %}
- {% if canUpdateFiles and not file.isPublished and (sourceUpdated or targetUpdated) %}
-
- {% if sourceUpdated %}
-
{{ 'Source entry content has been modified since order was created.' }}
- {% endif %}
+
+ {% if not file.hasPreview and file.isComplete %}
+
+
+
+
+ {{ file.uiLabel }}
+
+ {% set sourceUpdated = file.elementId in isSourceChanged %}
+ {% set targetUpdated = order.trackTargetChanges and file.hasTmMisalignments and not file.isNew and not file.isModified %}
+ {% if canUpdateFiles and not file.isPublished and (sourceUpdated or targetUpdated) %}
+
+ {% if sourceUpdated %}
+
{{ 'Source entry content has been modified since order was created.' }}
+ {% endif %}
- {% if targetUpdated %}
-
{{ 'Target entry content has been modified since order was created.' }}
- {% endif %}
-
- {% endif %}
-
-
-
- {% else %}
-
-
-
-
- {{ file.uiLabel }}
-
- {% set sourceUpdated = file.elementId in isSourceChanged %}
- {% set targetUpdated = order.trackTargetChanges and file.hasTmMisAlignments and not file.isNew and not file.isModified %}
+ {% if targetUpdated %}
+
{{ 'Target entry content has been modified since order was created.' }}
+ {% endif %}
+
+ {% endif %}
+
+
+
+ {% else %}
+
+
+
+
+ {{ file.uiLabel }}
+
+ {% set sourceUpdated = file.elementId in isSourceChanged %}
+ {% set targetUpdated = order.trackTargetChanges and file.hasTmMisAlignments and not file.isNew and not file.isModified %}
- {# Ignore target changes for api order that are completed #}
- {% if not order.hasDefaultTranslator and (order.isReviewReady or order.isComplete or order.isPublished) %}
- {% set targetUpdated = false %}
- {% endif %}
+ {# Ignore target changes for api order that are completed #}
+ {% if not order.hasDefaultTranslator and (order.isReviewReady or order.isComplete or order.isPublished) %}
+ {% set targetUpdated = false %}
+ {% endif %}
- {# Create Preview for each target entry #}
- {% if file.hasPreview %}
- {% set fileId = 'file_' ~ file.id %}
+ {# Create Preview for each target entry #}
+ {% if file.hasPreview %}
+ {% set fileId = 'file_' ~ file.id %}
-
+
- {% js %}
- new Craft.Translations.FilePreview($('#{{fileId}}'), {{ file.filePreviewSettings|json_encode|raw }});
- {% endjs %}
- {% endif %}
+ {% js %}
+ new Craft.Translations.FilePreview($('#{{fileId}}'), {{ file.filePreviewSettings|json_encode|raw }});
+ {% endjs %}
+ {% endif %}
- {% if canUpdateFiles and not file.isPublished and (sourceUpdated or targetUpdated) %}
-
- {% if sourceUpdated %}
-
{{ 'Source entry content has been modified since order was created.' }}
- {% endif %}
+ {% if canUpdateFiles and not file.isPublished and (sourceUpdated or targetUpdated) %}
+
+ {% if sourceUpdated %}
+
{{ 'Source entry content has been modified since order was created.' }}
+ {% endif %}
- {% if targetUpdated %}
-
{{ 'Target entry content has been modified since order was created.' }}