@@ -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