<class id="vms" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="vandelay::match_set" oils_persist:tablename="vandelay.match_set" reporter:label="Record Matching Definition Set">
<fields oils_persist:primary="id" oils_persist:sequence="vandelay.match_set_id_seq">
- <field reporter:label="Match Set ID" name="id" reporter:datatype="id"/>
+ <field reporter:label="Match Set ID" name="id" reporter:datatype="id" reporter:selector="name"/>
<field reporter:label="Name" name="name" reporter:datatype="text"/>
<field reporter:label="Owning Library" name="owner" reporter:datatype="link"/>
<field reporter:label="Match Set Type" name="mtype" reporter:datatype="text"/>
);
sub upload_records {
- my($self, $conn, $auth, $key) = @_;
+ my($self, $conn, $auth, $key, $args) = @_;
+ $args ||= {};
my $e = new_editor(authtoken => $auth, xact => 1);
return $e->die_event unless $e->checkauth;
my $cache = OpenSRF::Utils::Cache->new;
my $data = $cache->get_cache("vandelay_import_spool_$key");
- my $purpose = $data->{purpose};
my $filename = $data->{path};
- my $provider = $data->{provider};
- my $picklist = $data->{picklist};
- my $create_po = $data->{create_po};
- my $activate_po = $data->{activate_po};
- my $ordering_agency = $data->{ordering_agency};
- my $create_assets = $data->{create_assets};
+ my $provider = $args->{provider};
+ my $picklist = $args->{picklist};
+ my $create_po = $args->{create_po};
+ my $activate_po = $args->{activate_po};
+ my $ordering_agency = $args->{ordering_agency};
+ my $create_assets = $args->{create_assets};
my $po;
my $evt;
{ purpose => $purpose,
path => $outfile,
bib_source => $bib_source,
- provider => $provider,
- picklist => $picklist,
- create_po => $create_po,
- create_assets => $create_assets,
- ordering_agency => $ordering_agency
}
);
}
<tr>
<td>Create Purchase Order</td>
<td>
- <input dojoType='dijit.form.CheckBox' name='create_po'></input>
+ <input dojoType='dijit.form.CheckBox' jsId='acqPlUploadCreatePo'></input>
</td>
</tr>
<tr>
<td>Activate Purchase Order</td>
<td>
- <input dojoType='dijit.form.CheckBox' name='activate_po'></input>
- </td>
- </tr>
- <tr>
- <!-- XXX CHECK IMPORT PERMS TO ENABLE -->
- <td>Load Bibs and Items into the ILS</td>
- <td>
- <input dojoType='dijit.form.CheckBox' name='create_assets'></input>
+ <input dojoType='dijit.form.CheckBox' jsId='acqPlUploadActivatePo'></input>
</td>
</tr>
<tr>
<select jsId='acqPlUploadPlSelector' dojoType='dijit.form.ComboBox'></select>
</td>
</tr>
+
+ <tr><td colspan='2'><hr/></td></tr>
+
+ <tr>
+ <td>[% l('Record Match Set') %]</td>
+ <td><div id='acq-upload-vl-match-set'></div></td>
+ </tr>
+ <tr>
+ <td>[% l('Merge Profile') %]</td>
+ <td><div id='acq-upload-vl-merge-profile'></div></td>
+ </tr>
+ <tr>
+ <td>[% l('Import Non-Matching Records') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' jsId='acqPlUploadImportNomatch'></input></td>
+ </tr>
+ <tr>
+ <td>[% l('Select a Record Source') %]</td>
+ <td><div id='acq-upload-vl-bib-source'></div></td>
+ </tr>
+ <tr>
+ <td>[% l('Merge On Exact Match (901c)') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' jsId='acqPlUploadAutoOverlayExact'></input></td>
+ </tr>
+ <tr>
+ <td>[% l('Merge On Single Match') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' jsId='acqPlUploadAutoOverlay1Match'></input></td>
+ </tr>
+ <tr>
+ <td>[% l('Merge On Best Match') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' jsId='acqPlUploadAutoOverlayBestMatch'></input></td>
+ </tr>
+ <tr>
+ <td>[% l('Best/Single Match Minimum Quality Ratio') %]</td>
+ <td colspan='4'>
+ <input style='width:3em' value='0.0' jsId='vlUploadQueueAutoOverlayBestMatchRatio' dojoType='dijit.form.TextBox'/>
+ <span style='padding-left: 10px; font-size:90%'>[% l('New Record Quality / Quality of Best Match') %]</span>
+ </td>
+ </tr>
<tr>
- <td>Records File</td>
- <td><input size='36' type="file" name="marc_upload"></input></td>
+ <td>[% l('Insufficient Quality Fall-Through Profile') %]</td>
+ <td><div id='acq-upload-vl-fallthru-merge-profile'></div></td>
</tr>
+
+ <tr><td colspan='2'><hr/></td></tr>
+
<tr>
- <td align='center' colspan='2'>
- <button dojoType="dijit.form.Button" onClick="acqUploadRecords()">Upload</button>
+ <td colspan='5'>
+ <span id="vl-file-label">[% l('File to Upload:') %]</span>
+ <input size='48' style='border:1px solid #888;' type="file" name="marc_upload"/>
+ <span style='margin-left:10px;'><button dojoType="dijit.form.Button" onclick="acqUploadRecords()">[% l('Upload') %]</button></span>
</td>
</tr>
+
</tbody>
</table>
var providerWidget;
var orderAgencyWidget;
+var matchSet;
+var mergeProfile;
+var importNomatch;
+var importBibSource;
+var autoOveralayExact;
+
function init() {
dojo.byId('acq-pl-upload-ses').value = openils.User.authtoken;
function(w) { orderAgencyWidget = w }
);
+ new openils.widget.AutoFieldWidget({
+ fmClass : 'vms',
+ selfReference : true,
+ orgLimitPerms : ['CREATE_PURCHASE_ORDER'],
+ parentNode : dojo.byId('acq-upload-vl-match-set')
+ }).build(function(w) { });
+
+ new openils.widget.AutoFieldWidget({
+ fmClass : 'vmp',
+ selfReference : true,
+ orgLimitPerms : ['CREATE_PURCHASE_ORDER'],
+ parentNode : dojo.byId('acq-upload-vl-merge-profile')
+ }).build(function(w) { });
+
+ new openils.widget.AutoFieldWidget({
+ fmClass : 'vmp',
+ selfReference : true,
+ orgLimitPerms : ['CREATE_PURCHASE_ORDER'],
+ parentNode : dojo.byId('acq-upload-vl-fallthru-merge-profile')
+ }).build(function(w) { });
+
+ new openils.widget.AutoFieldWidget({
+ fmClass : 'cbs',
+ selfReference : true,
+ orgLimitPerms : ['CREATE_PURCHASE_ORDER'],
+ parentNode : dojo.byId('acq-upload-vl-bib-source')
+ }).build(function(w) { });
+
fieldmapper.standardRequest(
['open-ils.acq', 'open-ils.acq.picklist.user.retrieve.atomic'],
{ async: true,
method: "post",
handleAs: "html",
form: dojo.byId('acq-pl-upload-form'),
- content : {
- picklist : args.picklist,
- provider : providerWidget.attr('value'),
- ordering_agency : orderAgencyWidget.attr('value')
- },
handle: function(data, ioArgs){
acqHandlePostUpload(data.documentElement.textContent);
}
function acqHandlePostUpload(key) {
+
+ var args = {
+ picklist : args.picklist,
+ provider : providerWidget.attr('value'),
+ ordering_agency : orderAgencyWidget.attr('value'),
+ create_po : acqPlUploadCreatePo.attr('value'),
+ activate_po : acqPlUploadActivatePo.attr('value'),
+ vandelay : {
+ import_no_match : acqPlUploadImportNomatch.attr('value'),
+ auto_overlay_exact : acqPlUploadAutoOverlayExact.attr('value'),
+ auto_overlay_1match : acqPlUploadAutoOverlay1Match.attr('value'),
+ auto_overlay_best_match : acqPlUploadAutoOverlayBestMatch.attr('value')
+ }
+ };
+
fieldmapper.standardRequest(
['open-ils.acq', 'open-ils.acq.process_upload_records'],
{ async: true,