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.' }}
  • - {% endif %} -
    - {% endif %} + {% if targetUpdated %} +
  • {{ 'Target entry content has been modified since order was created.' }}
  • + {% endif %} +
    + {% endif %} +
    -
    - {% js %} - new Craft.Translations.EntryPreview({{ file.entryPreviewSettings|json_encode|raw }}); - {% endjs %} - {% endif %} - + {% js %} + new Craft.Translations.EntryPreview({{ file.entryPreviewSettings|json_encode|raw }}); + {% endjs %} + {% endif %} + - - - - {% if siteObjects[file.targetSite] is defined %} - - {% else %} - - {% endif %} - -
    - {{siteObjects[file.targetSite].name}} ({{ siteObjects[file.targetSite].language }}) - - {{ "Deleted" }} -
    - + + + + {% if siteObjects[file.targetSite] is defined %} + + {% else %} + + {% endif %} + +
    + {{siteObjects[file.targetSite].name}} ({{ siteObjects[file.targetSite].language }}) + + {{ "Deleted" }} +
    + - - {% if element.className == constant('acclaro\\translations\\Constants::CLASS_GLOBAL_SET') %} - {{ 'Globals' }} - {% elseif element.className == constant('acclaro\\translations\\Constants::CLASS_CATEGORY') %} - {{ 'Category' }} - {% elseif element.className == constant('acclaro\\translations\\Constants::CLASS_ASSET') %} - {{ 'Asset' }} - {% else %} - {{ element.section.name }} - {% endif %} + + {% if element.className == constant('acclaro\\translations\\Constants::CLASS_GLOBAL_SET') %} + {{ 'Globals' }} + {% elseif element.className == constant('acclaro\\translations\\Constants::CLASS_CATEGORY') %} + {{ 'Category' }} + {% elseif element.className == constant('acclaro\\translations\\Constants::CLASS_ASSET') %} + {{ 'Asset' }} + {% else %} + {{ element.section.name }} + {% endif %} - + - - - - - -
    - {% if file.isReviewReady or file.isComplete or file.isPublished %} - {{ file.dateDelivered ? file.dateDelivered|date('M j, Y g:i a') : '--' }} - {% else %} - {{ '--' }} - {% endif %} -
    - + + + + + +
    + {% if file.isReviewReady or file.isComplete or file.isPublished %} + {{ file.dateDelivered ? file.dateDelivered|date('M j, Y g:i a') : '--' }} + {% else %} + {{ '--' }} + {% endif %} +
    + - - - - - -
    - - {{ file.statusLabel }} -
    - -
    - + + + + + +
    + + {{ file.statusLabel }} +
    + +
    + + {% endif %} {% endfor %} \ No newline at end of file