$rec->edit_date('now');
$rec->marc($U->entityize($marc_doc->documentElement->toString));
+ my ($arn, $evt) = find_arn($e, $marc_doc);
+ return $evt if $evt;
+ $rec->arn_value($arn);
+
$rec = $e->create_authority_record_entry($rec) or return $e->die_event;
# we don't care about the result, just fire off the request
return $rec;
}
+sub find_arn {
+ my($e, $marc_doc) = @_;
+
+ my $xpath = '//marc:controlfield[@tag="001"]';
+ my ($arn) = $marc_doc->documentElement->findvalue($xpath);
+
+ if(my $existing_rec = $e->search_authority_record_entry({arn_value => $arn, deleted => 'f'})->[0]) {
+ # this arn is taken
+ return (
+ undef,
+ OpenILS::Event->new(
+ 'AUTHORITY_RECORD_NUMBER_EXISTS',
+ payload => {existing_record => $existing_rec, arn => $arn}
+ )
+ );
+ }
+
+ return ($arn);
+}
+
1;
_load_events() unless $events;
throw OpenSRF::EX ("Bad event name: $event") unless $event;
- my $e = $events->{$event};
+ my $e = $events->{$event} || -1;
my( $m, $f, $l ) = caller(0);
my( $mm, $ff, $ll ) = caller(1);
--- /dev/null
+#!BINDIR/srfsh
+request open-ils.cstore open-ils.cstore.json_query {"from":["container.clear_all_expired_circ_history_items"]}
onresponse : function(r) {
var item = openils.Util.readResponse(r);
self.store.newItem(item.toStoreItem());
- }
+ },
});
if(search)
new openils.PermaCrud().search(this.fmClass, search, opts);
fmField: this.field,
widgetValue : val,
readOnly : true,
- forceSync : true
});
- //autoWidget.build();
- return autoWidget.getDisplayString();
- }
+
+ var syncTest = 0;
+ var self = this;
+
+ autoWidget.build(
+ function(w, ww) {
+ if(syncTest == 1) { //async
+ var node = self.grid.views.views[0].getCellNode(rowIndex, self.index);
+ if(node && !node.__autogrid_value_set) {
+ node.innerHTML = ww.getDisplayString();
+ node.__autogrid_value_set = true;
+ }
+ }
+ syncTest = 2;
+ }
+ );
+
+ var val = '';
+
+ if(syncTest == 2) // sync
+ val = autoWidget.getDisplayString(); // sync
+
+ syncTest = 1;
+ return val;
+ };
}
<link rel='stylesheet' type='text/css'
href='[% ctx.media_prefix %]/css/theme/[% ctx.skin %].css'></link>
<script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/dojo.js"
- djConfig="parseOnLoad: true, isDebug:false"></script>
+ djConfig="parseOnLoad: true, isDebug:true"></script>
<script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/openils_dojo.js"
djConfig="parseOnLoad: true, isDebug:false"></script>
<script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/md5.js"></script>