Skip to content

Commit 47f7ab6

Browse files
committed
Fixed merge logic with removing archived values & adding new values
1 parent 2290ead commit 47f7ab6

1 file changed

Lines changed: 16 additions & 59 deletions

File tree

dt-assets/js/merge-post-details.js

Lines changed: 16 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -315,54 +315,13 @@ jQuery(function ($) {
315315
case 'communication_channel':
316316
case 'location_meta':
317317
case 'location':
318+
case 'link':
318319
// Disable field accordingly, based on read-only flag
319320
$(td)
320321
.find('#' + field_id)
321322
.prop('disabled', read_only);
322323
break;
323324

324-
case 'link': {
325-
// Disable/Display field accordingly, based on read-only flag
326-
$(td).find('input.link-input').prop('disabled', read_only);
327-
$(td).find('button.link-delete-button').prop('disabled', read_only);
328-
329-
// Ensure add link functionality is suppressed.
330-
$(td).find('div.add-link-dropdown').remove();
331-
332-
if (!read_only) {
333-
$(td)
334-
.find('input.link-input')
335-
.each(function (idx, input) {
336-
if (window.lodash.isEmpty($(input).val())) {
337-
$(input).parent().hide();
338-
}
339-
});
340-
341-
/**
342-
* Remove
343-
*/
344-
345-
$(document).on('click', '.link-delete-button', (evt) => {
346-
const delete_but = $(evt.currentTarget);
347-
348-
// Keep a record of deleted meta_ids.
349-
let meta_id = $(delete_but).data('meta-id');
350-
let deleted_items = $(field_meta).val()
351-
? JSON.parse($(field_meta).val())
352-
: [];
353-
if (!window.lodash.includes(deleted_items, meta_id)) {
354-
deleted_items.push(meta_id);
355-
$(field_meta).val(JSON.stringify(deleted_items));
356-
}
357-
358-
// Finally, remove from parent.
359-
$(delete_but).parent().parent().remove();
360-
});
361-
}
362-
363-
break;
364-
}
365-
366325
case 'user_select': {
367326
let user_select_typeahead_field_input = '.js-typeahead-' + field_id;
368327

@@ -582,12 +541,18 @@ jQuery(function ($) {
582541
(x) => x.meta_id === sourceItem.meta_id,
583542
);
584543
if (is_selected) {
585-
// Add, if not already present
586-
if (valIdx < 0 || mergeContact) {
544+
if (mergeContact) {
545+
sourceItem.tempKey = sourceItem.meta_id;
546+
sourceItem.meta_id = null;
587547
mergedValue.push(sourceItem);
588-
// Remove old meta_id if we're adding values from the merged contact
589-
if (mergeContact) {
590-
sourceItem.meta_id = '';
548+
} else {
549+
if (valIdx < 0) {
550+
mergedValue.push(sourceItem);
551+
} else {
552+
// set delete to false IF source item has delete as false
553+
if (!sourceItem.delete) {
554+
mergedValue[valIdx].delete = false;
555+
}
591556
}
592557
}
593558
} else {
@@ -601,19 +566,11 @@ jQuery(function ($) {
601566
) {
602567
if (mergeContact) {
603568
mergedValue.splice(valIdx, 1);
604-
}
605-
}
606-
}
607-
}
608-
609-
// set delete flag to remove values from primary record
610-
if (!mergeContact) {
611-
for (const item of mergedValue) {
612-
if (item.meta_id !== '') {
613-
if (is_selected) {
614-
item.delete = false;
615569
} else {
616-
item.delete = true;
570+
if (valIdx >= 0) {
571+
// set delete to true
572+
mergedValue[valIdx].delete = true;
573+
}
617574
}
618575
}
619576
}

0 commit comments

Comments
 (0)