@@ -231,6 +231,14 @@ function BuildItemsGrid()
231231 gridColumn .OptionsColumn .ReadOnly = true ;
232232 gridColumn .Width = 50 ;
233233
234+ gridColumn = gridView .Columns :Add ();
235+ gridColumn .Caption = " Barcode" ;
236+ gridColumn .FieldName = " Barcode" ;
237+ gridColumn .Name = " gridColumnBarcode" ;
238+ gridColumn .Visible = true ;
239+ gridColumn .OptionsColumn .ReadOnly = true ;
240+ gridColumn .Width = 50 ;
241+
234242 catalogSearchForm .Grid .GridControl .DataSource = CreateItemsTable ();
235243
236244 gridControl :EndUpdate ();
@@ -245,6 +253,7 @@ function CreateItemsTable()
245253 itemsTable .Columns :Add (" CallNumber" );
246254 itemsTable .Columns :Add (" Author" );
247255 itemsTable .Columns :Add (" Volume" );
256+ itemsTable .Columns :Add (" Barcode" );
248257
249258 return itemsTable ;
250259end
@@ -382,12 +391,15 @@ function PopulateDataGrid()
382391
383392 for _ , v in ipairs (archivalObject .instances ) do
384393 local itemRow = itemsDataTable :NewRow ();
385- availableData [" ArchivalObjectContainer" ] = ExtractArchivalObjectContainer (sessionId , v );
394+ local topContainer = GetTopContainerFromAPI (sessionId , v )
395+ availableData [" ArchivalObjectContainer" ] = ExtractArchivalObjectContainer (v , topContainer );
396+ availableData [" ArchivalObjectContainerBarcode" ] = ExtractArchivalObjectContainerBarcode (topContainer );
386397 itemRow :set_item (mapping [" Title" ].ItemGridColumn , availableData [mapping [" Title" ].AspaceData ]);
387398 itemRow :set_item (mapping [" SubTitle" ].ItemGridColumn , availableData [mapping [" SubTitle" ].AspaceData ]);
388399 itemRow :set_item (mapping [" CallNumber" ].ItemGridColumn , availableData [mapping [" CallNumber" ].AspaceData ]);
389400 itemRow :set_item (mapping [" Author" ].ItemGridColumn , availableData [mapping [" Author" ].AspaceData ]);
390401 itemRow :set_item (mapping [" Volume" ].ItemGridColumn , availableData [mapping [" Volume" ].AspaceData ]);
402+ itemRow :set_item (mapping [" Barcode" ].ItemGridColumn , availableData [mapping [" Barcode" ].AspaceData ]);
391403 itemsDataTable .Rows :Add (itemRow );
392404 end
393405
@@ -494,7 +506,17 @@ function ExtractDigitalObjectCitation(sessionId, json)
494506 return availableData ;
495507end
496508
497- function ExtractArchivalObjectContainer (sessionId , archivalObjectInstance )
509+ function GetTopContainerFromAPI (sessionId , archivalObjectInstance )
510+ if (archivalObjectInstance .sub_container ~= nil and archivalObjectInstance .sub_container ~= JsonParser .NIL ) then
511+ local topContainerUri = archivalObjectInstance .sub_container .top_container .ref ;
512+ local topContainer = ArchivesSpaceGetRequest (sessionId , topContainerUri );
513+ return topContainer
514+ end
515+
516+ return nil
517+ end
518+
519+ function ExtractArchivalObjectContainer (archivalObjectInstance , topContainer )
498520 local container = " " ;
499521
500522 if (archivalObjectInstance .container ~= nil and archivalObjectInstance .container ~= JsonParser .NIL ) then
@@ -505,15 +527,23 @@ function ExtractArchivalObjectContainer(sessionId, archivalObjectInstance)
505527 if (archivalObjectInstance .container .type_2 ~= nil and archivalObjectInstance .container .type_2 ~= JsonParser .NIL ) then
506528 container = container .. ' , ' .. archivalObjectInstance .container .type_2 .. " " .. archivalObjectInstance .container .indicator_2 ;
507529 end
508- elseif (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 );
530+ elseif (topContainer ) then
511531 container = topContainer .long_display_string ;
512532 end
513533
514534 return container ;
515535end
516536
537+ function ExtractArchivalObjectContainerBarcode (topContainer )
538+ local barcode = " " ;
539+
540+ if topContainer and topContainer .barcode then
541+ barcode = topContainer .barcode ;
542+ end
543+
544+ return barcode ;
545+ end
546+
517547function ExtractProperty (object , propery )
518548 if object then
519549 return EmptyStringIfNil (object [propery ]);
0 commit comments