@@ -391,7 +391,8 @@ function PopulateDataGrid()
391391
392392 for _ , v in ipairs (archivalObject .instances ) do
393393 local itemRow = itemsDataTable :NewRow ();
394- availableData [" ArchivalObjectContainer" ] = ExtractArchivalObjectContainer (sessionId , v );
394+ local topContainer = GetTopContainerFromAPI (sessionId , v )
395+ availableData [" ArchivalObjectContainer" ] = ExtractArchivalObjectContainer (v , topContainer );
395396 itemRow :set_item (mapping [" Title" ].ItemGridColumn , availableData [mapping [" Title" ].AspaceData ]);
396397 itemRow :set_item (mapping [" SubTitle" ].ItemGridColumn , availableData [mapping [" SubTitle" ].AspaceData ]);
397398 itemRow :set_item (mapping [" CallNumber" ].ItemGridColumn , availableData [mapping [" CallNumber" ].AspaceData ]);
@@ -503,7 +504,17 @@ function ExtractDigitalObjectCitation(sessionId, json)
503504 return availableData ;
504505end
505506
506- function ExtractArchivalObjectContainer (sessionId , archivalObjectInstance )
507+ function GetTopContainerFromAPI (sessionId , archivalObjectInstance )
508+ if (archivalObjectInstance .sub_container ~= nil and archivalObjectInstance .sub_container ~= JsonParser .NIL ) then
509+ local topContainerUri = archivalObjectInstance .sub_container .top_container .ref ;
510+ local topContainer = ArchivesSpaceGetRequest (sessionId , topContainerUri );
511+ return topContainer
512+ end
513+
514+ return nil
515+ end
516+
517+ function ExtractArchivalObjectContainer (archivalObjectInstance , topContainer )
507518 local container = " " ;
508519
509520 if (archivalObjectInstance .container ~= nil and archivalObjectInstance .container ~= JsonParser .NIL ) then
@@ -514,9 +525,7 @@ function ExtractArchivalObjectContainer(sessionId, archivalObjectInstance)
514525 if (archivalObjectInstance .container .type_2 ~= nil and archivalObjectInstance .container .type_2 ~= JsonParser .NIL ) then
515526 container = container .. ' , ' .. archivalObjectInstance .container .type_2 .. " " .. archivalObjectInstance .container .indicator_2 ;
516527 end
517- elseif (archivalObjectInstance .sub_container ~= nil and archivalObjectInstance .sub_container ~= JsonParser .NIL ) then
518- local topContainerUri = archivalObjectInstance .sub_container .top_container .ref ;
519- local topContainer = ArchivesSpaceGetRequest (sessionId , topContainerUri );
528+ elseif (topContainer ) then
520529 container = topContainer .long_display_string ;
521530 end
522531
0 commit comments