Merge branch 'master' of git.evergreen-ils.org:Evergreen into template-toolkit-opac...
authorBill Erickson <berick@esilibrary.com>
Mon, 29 Aug 2011 17:08:15 +0000 (13:08 -0400)
committerBill Erickson <berick@esilibrary.com>
Mon, 29 Aug 2011 17:08:15 +0000 (13:08 -0400)
12 files changed:
1  2 
Open-ILS/examples/fm_IDL.xml
Open-ILS/src/Makefile.am
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/templates/default/acq/common/li_table.tt2
Open-ILS/src/templates/default/acq/lineitem/related.tt2
Open-ILS/src/templates/default/conify/global/booking/resource.tt2
Open-ILS/src/templates/default/conify/global/booking/resource_attr.tt2
Open-ILS/src/templates/default/conify/global/booking/resource_attr_map.tt2
Open-ILS/src/templates/default/conify/global/booking/resource_attr_value.tt2
Open-ILS/src/templates/default/conify/global/booking/resource_type.tt2
Open-ILS/src/templates/default/vandelay/inc/queue.tt2
Open-ILS/src/templates/default/vandelay/inc/upload.tt2

Simple merge
Simple merge
index 28ef757,0000000..1851833
mode 100644,000000..100644
--- /dev/null
@@@ -1,471 -1,0 +1,473 @@@
 +<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/base64.js"> </script>
 +<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/common/li_table.js'> </script>
 +<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/acq/financial/claim_voucher.js'> </script>
 +<div id='acq-lit-table-container'>
 +    <div id='acq-lit-table-div' class='hidden'>
 +
 +        <!-- Lineitem (bib record) list -->
 +        <table id='acq-lit-table' class='oils-generic-table'>
 +            <thead>
 +                <tr>
 +                    <th colspan='0'>
 +                        <table style='width:100%;'>
 +                            <tr>
 +                                <td>
 +                                    <span>
 +                                        <select id="acq-lit-li-actions-selector">
 +                                            <option mask='*'  value='_'>--Actions--</option>
 +                                            <option mask='sr' value='save_picklist'>Save Items To Selection List</option>
 +                                            <option mask='pl' value='selector_ready'>Mark Ready for Selector</option>
 +                                            <option mask='pl' value='order_ready'>Mark Ready for Order</option>
 +                                            <option mask='*'  value='delete_selected'>Delete Selected Items</option>
 +                                            <option mask='*'  value='add_brief_record'>Add Brief Record</option>
 +                                            <option mask='*'  value='export_attr_list'>Export Single Attribute List</option>
 +                                            <option mask='*'  value='batch_apply_funds'>Apply Funds to Selected Items</option>
 +                                            <option mask='po' value='' disabled='disabled'>----PO----</option>
 +                                            <option mask='sr|pl' value='create_order'>Create Purchase Order</option>
 +                                            <option mask='po' value='create_assets'>Load Bibs and Items</option>
 +                                            <option mask='po' value='cancel_lineitems'>Cancel Selected Lineitems</option>
 +                                            <option mask='po' value='change_claim_policy'>Change Claim Policy</option>
 +                                            <option mask='po' value='receive_po'>Mark Purchase Order as Received</option>
 +                                            <option mask='po' value='rollback_receive_po'>Un-Receive Purchase Order</option>
 +                                            <option mask='po' value='print_po'>Print Purchase Order</option>
 +                                            <option mask='po' value='po_history'>View PO History</option>
 +                                        </select>
 +                                        <span id="acq-lit-export-attr-holder" class="hidden">
 +                                            <input dojoType="dijit.form.FilteringSelect" id="acq-lit-export-attr" jsId="acqLitExportAttrSelector" labelAttr="description" searchAttr="description" />
 +                                            <span dojoType="dijit.form.Button" jsId="acqLitExportAttrButton">Export List</span>
 +                                        </span>
 +                                        <span id="acq-lit-cancel-reason" class="hidden">
 +                                            <span id="acq-lit-cancel-reason-selector"></span>
 +                                            <span dojoType="dijit.form.Button" jsId="acqLitCancelLineitemsButton">Cancel Line Items</span>
 +                                        </span>
 +                                    </span>
 +                                    <span id='acq-lit-generic-progress' class='hidden'>
 +                                        <span dojoType="dijit.ProgressBar" style="width:300px" jsId="litGenericProgress"></span>
 +                                    </span>
 +                                </td>
 +                                <td>
 +                                    <div style='width:100%;text-align:right;'>
 +                                        <span style='padding-right:15px;'>
 +                                            <a href='javascript:void(0);' id='acq-lit-prev' style='visibility:hidden'>&#171; Previous</a>
 +                                            <a href='javascript:void(0);' id='acq-lit-next' style='visibility:hidden'>Next &#187;</a>
 +                                        </span>
 +                                    </div>
 +                                </td>
 +                            </tr>
 +                        </table>
 +                    </th>
 +                </tr>
 +            </thead>
 +            <tbody><tr><td colspan='0' style='height:20px;'/></tr></tbody>
 +            <tbody style='font-weight:bold;border:1px solid #aaa;'>
 +                <tr>
 +                    <td><span><a id='acq-lit-select-toggle' href='javascript:void(0);'>&#x2713</a></span></td>
 +                    <td>Line Items</td>
 +                    <td>Items</td>
 +                    <td>Notes</td>
 +                    <td>Actions</td>
 +                    <td>Status</td>
 +                    <td>Estimated Price</td>
 +                </tr>
 +            </tbody>
 +            <tbody id='acq-lit-tbody'>
 +                <tr id='acq-lit-row' class='acq-lit-row'>
 +                    <td name='selector'><input type='checkbox' name='selectbox'/></td>
 +                    <td style='width:75%;'>
 +                        <table style='width:100%;'>
 +                            <tbody>
 +                                <tr>
 +                                    <td rowspan='3' style='width:43px;'><img style='width:40px;height:65px;' name='jacket'></td>
 +                                    <td style='width:70%;font-weight:bold;'>
 +                                        <span name="bib_origin" class="hidden">
 +                                            <img src="/opac/images/book-icon.png" />
 +                                        </span><a attr='title' href='javascript:void(0);'></a>
 +                                    </td>
 +                                    <td rowspan='2' style='text-align:right'>
 +                                    </td>
 +                                </tr>
 +                                <tr class='acq-lit-alt-row'>
 +                                    <td colspan='0'>
 +                                        <span attr='author'></span>
 +                                        <span attr='isbn'></span>
 +                                        <span attr='issn'></span>
 +                                        <span attr='edition'></span>
 +                                        <span attr='pubdate'></span>
 +                                        <span attr='publisher'></span>
 +                                        <span name='source_label'></span>
 +                                    </td>
 +                                </tr>
 +                                <tr>
 +                                    <td colspan='0'>
 +                                        <span name="liid"># </span> 
 +                                        <span name="catalog" class='hidden'> | <a title='Show In Catalog' name="catalog_link" href="javascript:void(0);">&#x279F; catalog</a></span> 
 +                                        <span name="link_to_catalog" class='hidden'> | <a title='Link To Catalog Record' name="link_to_catalog_link" href="javascript:void(0);">&#x27BE; link to catalog</a></span> 
 +                                        <span name="worksheet"> | <a title='Generate Worksheet' name="worksheet_link" href="javascript:void(0);">&#x270D; worksheet</a></span>
 +                                        <span name='pl' class='hidden'> | <a title='Select List' name='pl_link' href='javascript:void(0);'>&#x2756; </a></span>
 +                                        <span name='po' class='hidden'> | <a title='Purchase Order' name='po_link' href='javascript:void(0);'>&#x2318; </a></span>
 +                                    </td>
 +                                </tr>
 +                            </tbody>
 +                        </table>
 +                    </td>
 +                    <td><a title='FOOOBAR' name='copieslink' href='javascript:void(0);'>Copies(<span name='count'>0</span>)</a></td>
 +                    <td>
 +                        <a name='noteslink' href='javascript:void(0);'>Notes(<span name='notes_count'>0</span>)</a><span name="notes_alert_flag"></span>
 +                    </td>
 +                    <td>
 +                        <select name='actions'>
 +                            <option name='action_none'>-- Actions --</option>
 +                            <option name='action_mark_recv' disabled='disabled'>Mark Received</option>
 +                            <option name='action_mark_unrecv' disabled='disabled'>Un-Receive</option>
 +                            <option name='action_update_barcodes' disabled='disabled'>Update Barcodes</option>
 +                            <option name='action_holdings_maint' disabled='disabled'>Holdings Maint.</option>
 +                            <option name='action_new_invoice' disabled='disabled'>New Invoice</option>
 +                            <option name='action_link_invoice' disabled='disabled'>Link to Invoice</option>
 +                            <option name='action_view_invoice' disabled='disabled'>View Invoice(s)</option>
 +                            <option name='action_view_claim_policy'>Apply Claim Policy</option>
 +                            <option name='action_manage_claims' disabled='disabled'>Claims</option>
 +                            <option name='action_view_history'>View History</option>
 +                        </select>
 +                    </td>
 +                    <td><span name='li_state'></span></td>
 +                    <td><input type='text' size='8' name='price'/></td>
 +                </tr>
 +            </tbody>
 +        </table>
 +    </div>
 +
 +    <!-- Bib record / Lineitem info table -->
 +    [% INCLUDE "default/acq/common/info.tt2" which = "Lit" %]
 +
 +    <!-- Lineitem notes table -->
 +    [% INCLUDE "default/acq/common/notes.tt2" which = "Lit" %]
 +
 +    <!-- Copies table -->
 +    <div id='acq-lit-li-details' class='hidden'>
 +
 +        <div id='acq-lit-copies-li-summary'></div>
 +
 +        <h3>Add/Edit Items</h3>
 +        <hr/>
 +
 +        <div class='acq-lit-li-menu-bar'>
 +            <table style='width:100%'>
 +                <tr>
 +                    <td class="acq-lit-li-menu-left">
 +                        <div dojoType='dijit.form.Button' id='acq-lit-copies-back-button' scrollOnFocus='false'>&#x2196; Return</div>
 +                        <span style='margin-left:10px;padding-left:10px;border-left:2px solid #aaa;'>
 +                            Item Count: 
 +                            <input dojoType='dijit.form.NumberTextBox' jsId='acqLitCopyCountInput'  
 +                                constraints="{min:0,max:1000,places:0}" style='width:40px' value='0'></input> 
 +                            <div dojoType='dijit.form.Button' jsId='acqLitAddCopyCount' scrollOnFocus='false'>Go</div>
 +                        </span>
 +                        <span style='margin-left:10px;padding-left:10px;border-left:2px solid #aaa;'>
 +                            <div dojoType='dijit.form.Button' jsId='acqLitSaveCopies' scrollOnFocus='false'>Save Changes</div>
 +                        </span>
 +                        <span id='acq-lit-update-copies-progress' class='hidden'>
 +                            <span dojoType="dijit.ProgressBar" style="width:300px" jsId="litUpdateCopiesProgress"></span>
 +                        </span>
 +                    </td>
 +                </tr>
 +            </table>
 +        </div>
 +
 +        <hr/>
 +        <table id='acq-lit-distrib-formula-table'>
 +            <tbody id='acq-lit-distrib-formula-tbody'>
 +                <tr id='acq-lit-distrib-form-row'>
 +                    <td colspan='0'>
 +                        <span>Distribution Formulas</span>
 +                        <div name='selector'></div>
 +                        <div name='set_button'></div>
 +                        <div name="reset_button"></div>
 +                    </td>
 +                </tr>
 +            </tbody>
 +            <tbody id="acq-lit-distrib-applied-tbody" class="hidden">
 +                <tr>
 +                    <td colspan="5" id="acq-lit-distrib-applied-heading">
 +                        Distribution formulas applied to this lineitem:
 +                    </td>
 +                </tr>
 +                <tr id="acq-lit-distrib-applied-row" class="acq-lit-distrib-applied-row">
 +                    <th></th>
 +                    <td colspan="4"></td>
 +                </tr>
 +            </tbody>
 +        <table>
 +
 +        <table id='acq-lit-li-details-table'>
 +            <tbody><tr><td class='acq-lit-table-spacer' colspan='0'/></tr></tbody>
 +            <tbody style='font-weight:bold;'>
 +                <tr>
 +                    <td style='margin-top:30px;'>Owning Branch</td>
 +                    <td>Shelving Location</td>
 +                    <td>Collection Code</td>
 +                    <td>Fund</td>
 +                    <td>Circ Modifier</td>
 +                    <td>Callnumber</td>
 +                    <td colspan='0'></td>
 +                </tr>
 +            </tbody>
 +            <tbody style='background-color:#ddd;'>
 +                <tr id='acq-lit-li-details-batch-row'>
 +                    <td><div name='owning_lib'></div></td>
 +                    <td><div name='location'></div></td>
 +                    <td><div name='collection_code'></div></td>
 +                    <td><div name='fund'></div></td>
 +                    <td><div name='circ_modifier'></div></td>
 +                    <td><div name='cn_label'></div></td>
 +                    <td colspan='3' style='text-align:left;'>
 +                        <div dojoType='dijit.form.Button' jsId='acqLitBatchUpdateCopies' scrollOnFocus='false'>Batch Update</div>
 +                    </td>
 +                </tr>
 +            </tbody>
 +
 +
 +            <tbody><tr><td class='acq-lit-table-spacer' colspan='0'></td></tr></tbody>
 +            <tbody style='font-weight:bold;'>
 +                <tr>
 +                    <td style='margin-top:30px;'>Owning Branch</td>
 +                    <td>Shelving Location</td>
 +                    <td>Collection Code</td>
 +                    <td>Fund</td>
 +                    <td>Circ Modifier</td>
 +                    <td>Callnumber</td>
 +                    <td>Barcode</td>
 +                    <td>Notes</td>
++                    <td>Receiver</td>
 +                    <td colspan='0'></td>
 +                </tr>
 +            </tbody>
 +            <tbody id='acq-lit-li-details-tbody' class='oils-generic-table'>
 +                <tr id='acq-lit-li-details-row'>
 +                    <td><div name='owning_lib'></div></td>
 +                    <td><div name='location'></div></td>
 +                    <td><div name='collection_code'></div></td>
 +                    <td><div name='fund'></div></td>
 +                    <td><div name='circ_modifier'></div></td>
 +                    <td><div name='cn_label'></div></td>
 +                    <td><div name='barcode'></div></td>
 +                    <td><div name='note'></div></td>
++                    <td><div name='receiver'></div></td>
 +                    <td><a href="javascript:void(0);" name="receive">Mark&nbsp;Received</a><a href="javascript:void(0);" name="unreceive">Un-Receive</a>&nbsp;<a href="javascript:void(0);" name="cancel">Cancel</a><span class="hidden" name="cancel_reason"></span>&nbsp;<a href="javascript:void(0);" name="claim">Claim</a></td>
 +                    <td><div name='delete' dojoType='dijit.form.Button' style='color:red;' scrollOnFocus='false'>X</div></td>
 +                </tr>
 +            </tbody>
 +        </table>
 +    </div>
 +
 +
 +    <!-- Copies table -->
 +    <div id='acq-lit-real-copies-div' class='hidden'>
 +        <h2>Copies</h2>
 +
 +        <div class='acq-lit-li-menu-bar'>
 +            <table style='width:100%'>
 +                <tr>
 +                    <td style='text-align:left;'>
 +                        <div dojoType='dijit.form.Button' id='acq-lit-real-copies-back-button' scrollOnFocus='false'>&#x2196; Return</div>
 +                    </td>
 +                    <td style='text-align:right;'>
 +                        <span>
 +                            <div dojoType='dijit.form.Button' jsId='acqLitSaveRealCopies' scrollOnFocus='false'>Save Changes</div>
 +                        </span>
 +                    </td>
 +                </tr>
 +            </table>
 +        </div>
 +
 +        <table id='acq-lit-real-copies-table'>
 +            <tbody style='font-weight:bold;'>
 +                <tr>
 +                    <td style='margin-top:30px;'>Owning Branch</td>
 +                    <td>Shelving Location</td>
 +                    <td>Circ Modifier</td>
 +                    <td>Callnumber</td>
 +                    <td>Barcode</td>
 +                    <td colspan='0'></td>
 +                </tr>
 +            </tbody>
 +            <tbody id='acq-lit-real-copies-tbody' class='oils-generic-table'>
 +                <tr id='acq-lit-real-copies-row'>
 +                    <td><div name='owning_lib'></div></td>
 +                    <td><div name='location'></div></td>
 +                    <td><div name='circ_modifier'></div></td>
 +                    <td><div name='label'></div></td>
 +                    <td><div name='barcode'></div></td>
 +                </tr>
 +            </tbody>
 +        </table>
 +    </div>
 +
 +    <div class="hidden">
 +        <div jsId="acqLitLinkInvoiceDialog" dojoType="dijit.Dialog">
 +            [% INCLUDE "default/acq/common/inv_dialog.tt2" which = "li" %]
 +        </div>
 +    </div>
 +
 +    <div class='hidden' id='acq-lit-progress-numbers'>
 +        <table class='oils-generic-table'>
 +            <tbody>
 +                <tr>
 +                    <td>Lineitems Processed</td>
 +                    <td><span id='acq-pl-lit-li-processed'>0</span></td>
 +                </tr>
 +                <tr>
 +                    <td>Items Processed</td>
 +                    <td><span id='acq-pl-lit-lid-processed'>0</span></td>
 +                </tr>
 +                <tr>
 +                    <td>Debits Encumbered</td>
 +                    <td><span id='acq-pl-lit-debits-processed'>0</span></td>
 +                </tr>
 +                <tr>
 +                    <td>Bib Records Imported</td>
 +                    <td><span id='acq-pl-lit-bibs-processed'>0</span></td>
 +                </tr>
 +                <tr>
 +                    <td>Bib Records Indexed</td>
 +                    <td><span id='acq-pl-lit-indexed-processed'>0</span></td>
 +                </tr>
 +                <tr>
 +                    <td>Copies Processed</td>
 +                    <td><span id='acq-pl-lit-copies-processed'>0</span></td>
 +                </tr>
 +            </tbody>
 +        </table>
 +    </div>
 +
 +    <div class='hidden'>
 +        <div dojoType='dijit.Dialog' jsId='acqLitPoCreateDialog'>
 +            <table class='oils-generic-table'>
 +                <tr>
 +                    <td>Ordering Agency</td>
 +                    <td><div name='ordering_agency' id='acq-lit-po-agency'></div></td>
 +                </tr>
 +                <tr>
 +                    <td>Provider</td>
 +                    <td><div name='provider' id='acq-lit-po-provider'></div></td>
 +                </tr>
 +                <tr>
 +                    <td>Prepayment Required</td>
 +                    <td><input id="acq-lit-po-prepay" name="prepayment_required" dojoType="dijit.form.CheckBox"/></td>
 +                </tr>
 +                <tr>
 +                    <td>All Lineitems</td>
 +                    <td><input checked='checked' name='create_from' value='all' dojoType='dijit.form.RadioButton'/></td>
 +                </tr>
 +                <tr>
 +                    <td>Selected Lineitems</td>
 +                    <td><input name='create_from' value='selected' dojoType='dijit.form.RadioButton'/></td>
 +                </tr>
 +                <tr>
 +                    <td>Import Bibs and Create Copies</td>
 +                    <td><input name='create_assets' dojoType='dijit.form.CheckBox'/></td>
 +                </tr>
 +                <tr>
 +                    <td colspan='2'>
 +                        <div dojoType='dijit.form.Button' type='submit' jsId='acqLitCreatePoSubmit'>Submit</div>
 +                    </td>
 +                </tr>
 +            </table>
 +        </div>
 +    </div>
 +
 +    <div class="hidden">
 +        <div dojoType="dijit.Dialog" jsId='acqLitSavePlDialog'>
 +            <table class='dijitTooltipTable'>
 +                <tr>
 +                    <td colspan='2'>
 +                        <input dojoType="dijit.form.RadioButton" name="which" type='radio' checked='checked' value='selected'/>
 +                        <label for="name">Save selected</label>
 +                        <input dojoType="dijit.form.RadioButton" name="which" type='radio' value='all'/>
 +                        <label for="name">Save all</label>
 +                    </td>
 +                </tr>
 +                <tr><td colspan='2'><hr/></td></tr>
 +                <tr>
 +                    <td><label for="new_name">Save as Selection List: </label></td>
 +                    <td><input dojoType="dijit.form.TextBox" name="new_name"/></td>
 +                </tr>
 +                <tr>
 +                    <td><label for="existing_pl">Add to Selection List: </label></td>
 +                    <td>
 +                        <input jsId="acqLitAddExistingSelect" dojoType="openils.widget.PCrudAutocompleteBox" fmclass="acqpl" searchAttr="name" name="existing_pl" />
 +                    </td>
 +                </tr>
 +                <tr>
 +                    <td colspan='2' align='center'>
 +                        <button dojoType='dijit.form.Button' type="submit" jsId='acqLitSavePlButton'>Save</button>
 +                    </td>
 +                </tr>
 +            </table>
 +        </div>
 +
 +        <div dojoType="dijit.Dialog" jsId="lidCancelDialog">
 +            <label for="acq-lit-lid-cancel-reason">Reason:</label>
 +            <span id="acq-lit-lid-cancel-reason"></span>
 +            <span dojoType="dijit.form.Button"
 +                jsId="acqLidCancelButton">Cancel Copy</span>
 +        </div>
 +        <div dojoType="dijit.Dialog" jsId="liClaimPolicyDialog">
 +            <label for="acq-lit-li-claim-policy">Claim policy:</label>
 +            <span id="acq-lit-li-claim-policy"></span> &nbsp;
 +            <span dojoType="dijit.form.Button"
 +                jsId="liClaimPolicySave">Save</span>
 +        </div>
 +        <div dojoType="dijit.Dialog" jsId="liClaimDialog">
 +            [% INCLUDE "default/acq/common/claim_dialog.tt2" %]
 +        </div>
 +        <div dojoType="dijit.Dialog" jsId="finalClaimDialog">
 +            [% INCLUDE "default/acq/common/final_claim_dialog.tt2" %]
 +        </div>
 +        <div dojoType="dijit.Dialog" jsId="batchFundUpdateDialog" title="Batch Update Funds">
 +            <div>
 +                This will update the fund for all copies attached to these lineitems.<br/>
 +                This will also update any existing encumbered or spent debits.
 +            </div>
 +            <br/>
 +            <table class='oils-generic-table'>
 +                <tr>
 +                    <td>
 +                        <span>Select a new fund:</span>
 +                    </td>
 +                    <td>
 +                        <div id='acq-lit-batch-fund-selector'></div>
 +                    </td>
 +                </tr>
 +                <tr>
 +                    <td><button dojoType='dijit.form.Button' jsId='batchFundUpdateCancel'>Cancel</button></td>
 +                    <td><button dojoType='dijit.form.Button' jsId='batchFundUpdateSubmit'>Submit</button></td>
 +                </tr>
 +            </table>
 +        </div>
 +    </div>
 +
 +    <div dojoType="dijit.Dialog" jsId='acqLitChangeLiStateDialog'>
 +        <table class='dijitTooltipTable'>
 +            <tr>
 +                <td>
 +                    <input dojoType="dijit.form.RadioButton" name="which" type='radio' checked='checked' value='selected'/>
 +                    <label for="name">Mark selected</label>
 +                    <input dojoType="dijit.form.RadioButton" name="which" type='radio' value='all'/>
 +                    <label for="name">Mark all</label>
 +                </td>
 +            </tr>
 +            <tr>
 +                <td colspan='2' align='center'>
 +                    <button dojoType='dijit.form.Button' type="submit" jsId='acqLitCancelLiStateButton'>Cancel</button>
 +                    <button dojoType='dijit.form.Button' type="submit" jsId='acqLitSaveLiStateButton'>Go</button>
 +                </td>
 +            </tr>
 +        </table>
 +    </div>
 +
 +
 +    <div class='hidden'>
 +        <div dojoType='openils.widget.ProgressDialog' jsId='progressDialog'></div>
 +    </div>
 +
 +</div>
 +
index 6d47ec9,0000000..61ee19f
mode 100644,000000..100644
--- /dev/null
@@@ -1,52 -1,0 +1,71 @@@
 +[% WRAPPER "default/base.tt2" %]
 +[% ctx.page_title = "Related Lineitems" %]
 +<script type="text/javascript">var targetId = "[% ctx.page_args.0 %]";</script>
 +<h1>Related Lineitems</h1>
 +<div id="acq-related-mini">
 +    <script type="text/javascript">
 +        function iterateSubfields(item) {
 +            var out = '';
 +            dojo.query('subfield', item).forEach(
 +                function(item) { out += item.textContent + ' '; } );
 +            return out;
 +        }
 +    </script>
 +    <ul id="acq-related-mini-display">
 +        <li>
 +            <div type='opac/slot-data' query='datafield[tag=245]'>
 +                <script type='opac/slot-format'>return iterateSubfields(item)</script>
 +            </div>
 +        </li>
 +        <li>
 +            <div type='opac/slot-data' query='datafield[tag=100] subfield[code=a]'/>
 +        </li>
 +        <li>
 +            <div type='opac/slot-data' query='datafield[tag=020]'>
 +                <script type='opac/slot-format'>return iterateSubfields(item)</script>
 +            </div> 
 +            <div type='opac/slot-data' query='datafield[tag=024]'>
 +                <script type='opac/slot-format'>return iterateSubfields(item)</script>
 +            </div> 
 +            <div type='opac/slot-data' query='datafield[tag=022]'>
 +                <script type='opac/slot-format'>return iterateSubfields(item)</script>
 +            </div>
 +        </li>
 +        <li>
 +            <div type='opac/slot-data' query='datafield[tag=260] subfield[code=c]'/>
 +        </li>
 +    </ul>
 +
 +    <div id="acq-related-li-create-holder">
 +        <button jsId="addToPlButton" dojoType="dijit.form.Button">
 +            Add to Selection List
 +        </button>
++        <button jsId="addToPoButton" dojoType="dijit.form.Button">
++            Add to Purchase Order
++        </button>
 +        <button jsId="createPoButton" dojoType="dijit.form.Button">
 +            Create Purchase Order
 +        </button>
 +    </div>
 +
++    <div class="hidden">
++        <div dojoType="dijit.Dialog" jsId='addToPoDialog'>
++            <table class='dijitTooltipTable'>
++                <tr>
++                    <td><label>Enter the PO #: </label></td>
++                    <td><input jsId='addToPoInput' dojoType="dijit.form.TextBox" /></td>
++                </tr>
++                <tr>
++                    <td colspan='2' align='center'>
++                        <button dojoType='dijit.form.Button' jsId='addToPoSave' type="submit">Save</button>
++                    </td>
++                </tr>
++            </table>
++        </div>
++    </div>
++
 +</div>
 +[% INCLUDE "default/acq/common/info.tt2" which = "Related" %]
 +[% INCLUDE "default/acq/common/li_table.tt2" %]
 +<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/related.js"></script>
 +[% END %]
index 380edad,0000000..4e3fe1f
mode 100644,000000..100644
--- /dev/null
@@@ -1,42 -1,0 +1,70 @@@
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-     <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-         <div>Resources</div>
-         <div>
-             <button dojoType='dijit.form.Button' onClick='brsrcGrid.showCreateDialog()'>New Resource</button>
-             <button dojoType='dijit.form.Button' onClick='brsrcGrid.deleteSelected()'>Delete Selected</button>
-         </div>
 +[% WRAPPER default/base.tt2 %]
 +[% ctx.page_title = 'Resources' %]
++<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
++    <div>Resources</div>
++    <div>
++        <button dojoType='dijit.form.Button' onClick='brsrcGrid.showCreateDialog()'>New Resource</button>
++        <button dojoType='dijit.form.Button' onClick='brsrcGrid.deleteSelected()'>Delete Selected</button>
 +    </div>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
++    <span>Context Org Unit</span>
++    <select dojoType="openils.widget.OrgUnitFilteringSelect"
++            jsId='contextOrgSelector'
++            searchAttr='shortname'
++            labelAttr='shortname'>
++    </select>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
 +    <table  jsId="brsrcGrid"
 +            dojoType="openils.widget.AutoGrid"
 +            fieldOrder="['owner', 'type', 'barcode',
 +                'overbook', 'deposit', 'deposit_amount', 'user_fee']"
 +            query="{id: '*'}"
 +            fmClass='brsrc'
 +            showPaginator='true'
++            autoHeight='true'
 +            editOnEnter='true'>
 +    </table>
 +</div>
-             var search = {"id": {"!=": null}};
 +<script type ="text/javascript">
 +    dojo.require('dijit.form.FilteringSelect');
 +    dojo.require('openils.widget.AutoGrid');
 +    dojo.require("openils.widget.PCrudAutocompleteBox");
++    dojo.require('openils.widget.OrgUnitFilteringSelect');
++
++    function filterGrid() {
++        brsrcGrid.resetStore();
++        var unit = contextOrgSelector.getValue();
++        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
++
++        if(unit){
++            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, { 'owner' : list });
++        } else {
++            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}});
++        }
++    }
 +
 +    openils.Util.addOnLoad(
 +        function() {
++            var org_id = openils.User.user.ws_ou();
++            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
++
++            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE', contextOrgSelector, null, function() {
++                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
++
++            var search = {'owner':list};
++
 +            if (xulG && xulG.resultant_brsrc)
 +                search = {id: xulG.resultant_brsrc};
 +
 +            brsrcGrid.overrideEditWidgets.type =
 +                new openils.widget.PCrudAutocompleteBox({
 +                    "fmclass": "brt", "searchAttr": "name"
 +                });
 +            brsrcGrid.overrideEditWidgets.type.shove = {"create": ""};
 +            brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, search);
 +        }
 +    );
 +</script>
 +[% END %]
index b917b8e,0000000..b9a3ece
mode 100644,000000..100644
--- /dev/null
@@@ -1,36 -1,0 +1,63 @@@
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-     <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
-         <div>Resource Attributes</div>
-         <div>
-             <button dojoType='dijit.form.Button' onClick='braGrid.showCreateDialog()'>New Resource Attribute</button>
-             <button dojoType='dijit.form.Button' onClick='braGrid.deleteSelected()'>Delete Selected</button>
-         </div>
 +[% WRAPPER default/base.tt2 %]
 +[% ctx.page_title = 'Resource Attributes' %]
-             braGrid.loadAll({order_by:{bra : 'name'}}, {"id": {"!=": null}});
++<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
++    <div>Resource Attributes</div>
++    <div>
++        <button dojoType='dijit.form.Button' onClick='braGrid.showCreateDialog()'>New Resource Attribute</button>
++        <button dojoType='dijit.form.Button' onClick='braGrid.deleteSelected()'>Delete Selected</button>
 +    </div>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
++    <span>Context Org Unit</span>
++    <select dojoType="openils.widget.OrgUnitFilteringSelect"
++            jsId='contextOrgSelector'
++            searchAttr='shortname'
++            labelAttr='shortname'>
++    </select>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
 +    <table  jsId="braGrid"
 +            dojoType="openils.widget.AutoGrid"
 +            fieldOrder="['name', 'owner', 'resource_type', 'required']"
 +            query="{id: '*'}"
 +            fmClass='bra'
++            autoHeight='true'
 +            showPaginator='true'
 +            editOnEnter='true'>
 +    </table>
 +</div>
 +
 +<script type ="text/javascript">
 +    dojo.require("openils.widget.PCrudAutocompleteBox");
 +    dojo.require('openils.widget.AutoGrid');
++    dojo.require('openils.widget.OrgUnitFilteringSelect');
++
++    function filterGrid() {
++        braGrid.resetStore();
++        var unit = contextOrgSelector.getValue();
++        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
++
++        if(unit){
++            braGrid.loadAll({order_by:{bra : 'name'}}, { 'owner' : list });
++        } else {
++            braGrid.loadAll({order_by:{bra : 'name'}});
++        }
++    }
 +
 +    openils.Util.addOnLoad(
 +        function() {
 +            braGrid.overrideEditWidgets.resource_type =
 +                new openils.widget.PCrudAutocompleteBox({
 +                    "fmclass": "brt", "searchAttr": "name"
 +                });
 +            braGrid.overrideEditWidgets.resource_type.shove = {"create": ""};
++            var org_id = openils.User.user.ws_ou();
++            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
++
++            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_ATTR', contextOrgSelector, null, function() {
++                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
++            braGrid.loadAll({order_by:{bra : 'name'}}, { 'owner' : list });
 +        }
 +    );
 +</script>
 +[% END %]
index 5e35b11,0000000..a691fa3
mode 100644,000000..100644
--- /dev/null
@@@ -1,36 -1,0 +1,63 @@@
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-     <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-         <div>Resource Attribute Maps</div>
-         <div>
-             <button dojoType='dijit.form.Button' onClick='bramGrid.showCreateDialog()'>New Resource Attribute Map</button>
-             <button dojoType='dijit.form.Button' onClick='bramGrid.deleteSelected()'>Delete Selected</button>
-         </div>
 +[% WRAPPER default/base.tt2 %]
 +[% ctx.page_title = 'Resource Attribute Maps' %]
-             bramGrid.loadAll({"order_by": {"bram": "resource_attr"}});
++<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
++    <div>Resource Attribute Maps</div>
++    <div>
++        <button dojoType='dijit.form.Button' onClick='bramGrid.showCreateDialog()'>New Resource Attribute Map</button>
++        <button dojoType='dijit.form.Button' onClick='bramGrid.deleteSelected()'>Delete Selected</button>
 +    </div>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
++    <span>Context Org Unit</span>
++    <select dojoType="openils.widget.OrgUnitFilteringSelect"
++            jsId='contextOrgSelector'
++            searchAttr='shortname'
++            labelAttr='shortname'>
++    </select>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
 +    <table  jsId="bramGrid"
 +            dojoType="openils.widget.AutoGrid"
 +            fieldOrder="['resource', 'resource_attr', 'value']"
 +            query="{id: '*'}"
 +            fmClass='bram'
++            autoHeight='true'
 +            showPaginator='true'
 +            editOnEnter='true'>
 +    </table>
 +</div>
 +
 +<script type ="text/javascript">
 +    dojo.require("openils.widget.PCrudAutocompleteBox");
 +    dojo.require('openils.widget.AutoGrid');
++    dojo.require('openils.widget.OrgUnitFilteringSelect');
 +
++    function filterGrid() {
++        bramGrid.resetStore();
++        var unit = contextOrgSelector.getValue();
++        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
++
++        if(unit){
++            bramGrid.loadAll({"order_by":"resource_attr"}, {"resource_attr":{"in":{"select":{"bra":["id"]},"from":"bra","where":{"+bra":{"owner": list } } } } } );
++        } else {
++            bramGrid.loadAll({order_by:{bram : 'resource_attr'}});
++        }
++    }
 +    openils.Util.addOnLoad(
 +        function() {
++            var org_id = openils.User.user.ws_ou();
++            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
++
++            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_TYPE', contextOrgSelector, null, function() {
++                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
++
 +            bramGrid.overrideEditWidgets.resource =
 +                new openils.widget.PCrudAutocompleteBox({
 +                    "fmclass": "brsrc", "searchAttr": "barcode"
 +                });
 +            bramGrid.overrideEditWidgets.resource.shove = {"create": ""};
++            bramGrid.loadAll({"order_by":"resource_attr"}, {"resource_attr":{"in":{"select":{"bra":["id"]},"from":"bra","where":{"+bra":{"owner": list } } } } } );
 +        }
 +    );
 +</script>
 +[% END %]
index af1c5a7,0000000..3593db9
mode 100644,000000..100644
--- /dev/null
@@@ -1,31 -1,0 +1,59 @@@
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-     <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-         <div>Resource Attribute Values</div>
-         <div>
-             <button dojoType='dijit.form.Button' onClick='bravGrid.showCreateDialog()'>New Resource Attribute Value</button>
-             <button dojoType='dijit.form.Button' onClick='bravGrid.deleteSelected()'>Delete Selected</button>
-         </div>
 +[% WRAPPER default/base.tt2 %]
 +[% ctx.page_title = 'Resource Attribute Values' %]
-             bravGrid.loadAll({order_by:{brav : 'attr'}}, {"id": {"!=": null}});
++<div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
++    <div>Resource Attribute Values</div>
++    <div>
++        <button dojoType='dijit.form.Button' onClick='bravGrid.showCreateDialog()'>New Resource Attribute Value</button>
++        <button dojoType='dijit.form.Button' onClick='bravGrid.deleteSelected()'>Delete Selected</button>
 +    </div>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
++    <span>Context Org Unit</span>
++    <select dojoType="openils.widget.OrgUnitFilteringSelect"
++            jsId='contextOrgSelector'
++            searchAttr='shortname'
++            labelAttr='shortname'>
++    </select>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
 +    <table  jsId="bravGrid"
 +            dojoType="openils.widget.AutoGrid"
 +            fieldOrder="['owner', 'attr', 'valid_value']"
 +            query="{id: '*'}"
 +            fmClass='brav'
++            autoHeight='true'
 +            showPaginator='true'
 +            editOnEnter='true'>
 +    </table>
 +</div>
 +
 +<script type ="text/javascript">
 +    dojo.require('dijit.form.FilteringSelect');
 +    dojo.require('openils.widget.AutoGrid');
++    dojo.require('openils.widget.OrgUnitFilteringSelect');
++
++    function filterGrid() {
++        bravGrid.resetStore();
++        var unit = contextOrgSelector.getValue();
++        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
++
++        if(unit){
++            bravGrid.loadAll({order_by:{brav : 'attr'}}, { 'owner' : list });
++        } else {
++            bravGrid.loadAll({order_by:{brav : 'attr'}});
++        }
++    }
 +
 +    openils.Util.addOnLoad(
 +        function() {
++            var org_id = openils.User.user.ws_ou();
++            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
++
++            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_ATTR_VALUE', contextOrgSelector, null, function() {
++                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
++
++            bravGrid.loadAll({order_by:{brav : 'attr'}}, { 'owner' : list });
 +        }
 +    );
 +</script>
 +[% END %]
index 36afba7,0000000..ac4c3a4
mode 100644,000000..100644
--- /dev/null
@@@ -1,34 -1,0 +1,61 @@@
- <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
 +[% WRAPPER default/base.tt2 %]
 +[% ctx.page_title = 'Resource Types' %]
-             brtGrid.loadAll({"order_by": {"brt": "name"}}, {"id": {"!=": null}});
 +    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
 +        <div>Resource Types</div>
 +        <div>
 +            <button dojoType='dijit.form.Button' onClick='brtGrid.showCreateDialog()'>New Resource Type</button>
 +            <button dojoType='dijit.form.Button' onClick='brtGrid.deleteSelected()'>Delete Selected</button>
 +        </div>
 +    </div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
++    <span>Context Org Unit</span>
++    <select dojoType="openils.widget.OrgUnitFilteringSelect"
++            jsId='contextOrgSelector'
++            searchAttr='shortname'
++            labelAttr='shortname'>
++    </select>
++</div>
++<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
 +    <table  jsId="brtGrid"
 +            dojoType="openils.widget.AutoGrid"
 +            fieldOrder="['name', 'fine_interval', 'fine_amount',
 +                'owner', 'catalog_item', 'transferable']"
 +            suppressFields="['record']"
 +            suppressEditFields="['record']"
 +            query="{id: '*'}"
 +            fmClass='brt'
 +            showPaginator='true'
++            autoHeight='true'
 +            editOnEnter='true'>
 +    </table>
 +</div>
 +
 +<script type ="text/javascript">
 +    dojo.require('dijit.form.FilteringSelect');
 +    dojo.require('openils.widget.AutoGrid');
++    dojo.require('openils.widget.OrgUnitFilteringSelect');
 +
++    function filterGrid() {
++        brtGrid.resetStore();
++        var unit = contextOrgSelector.getValue();
++        var list = fieldmapper.aou.findOrgUnit(unit).orgNodeTrail().map( function (i) {return i.id() } );
++
++        if(unit){
++            brtGrid.loadAll({order_by:{brt : 'name'}}, { 'owner' : list });
++        } else {
++            brtGrid.loadAll({order_by:{brt : 'name'}});
++        }
++    }
 +    openils.Util.addOnLoad(
 +        function() {
++            var org_id = openils.User.user.ws_ou();
++            var list = fieldmapper.aou.findOrgUnit(org_id).orgNodeTrail().map( function (i) {return i.id() } );
++
++            new openils.User().buildPermOrgSelector('ADMIN_BOOKING_RESOURCE_TYPE', contextOrgSelector, null, function() {
++                dojo.connect(contextOrgSelector, 'onChange', filterGrid);});
++
++            brtGrid.loadAll({"order_by": {"brt": "name"}}, { 'owner' : list });
 +        }
 +    );
 +</script>
 +[% END %]
index 466ee4f,0000000..749434f
mode 100644,000000..100644
--- /dev/null
@@@ -1,247 -1,0 +1,253 @@@
 +<div dojoType="dijit.layout.ContentPane" layoutAlign='client' style='margin-top:10px;'>
 +    <fieldset id='vl-queue-filter-fieldset'>
 +        <legend>Queue <span style='font-style:italic;' id='vl-queue-summary-name'/></legend>
 +        <table width='100%'><tr>
 +            <td> <!-- big left td -->
 +            <table>
 +                <tr>
 +                    <td valign='top'>
 +                        <table class='queue-nav-table'>
 +                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Actions</th></tr></thead>
 +                            <tbody>
 +                                <tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import")'>&vandelay.import.selected;</a></td></tr>
 +                                <tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import_all")'>&vandelay.import.all;</a></td></tr>
 +                                <tr><td><a href='javascript:;' onclick='vlLoadErrorUIAll();'>View Import Items</a></td></tr>
 +                                <tr><td><a href='javascript:;' onclick='
 +                                    if(confirm("&vandelay.sure.to.delete.queue;")) {
 +                                        vlDeleteQueue(currentType, currentQueueId, 
 +                                            function() { displayGlobalDiv("vl-marc-upload-div"); });}'>&vandelay.delete.queue;</a></td></tr>
 +                            </tbody>
 +                        </table>
 +                    </td>
 +
 +                    <td valign='top'>
 +                        <table  id='vl-queue-summary-table' class='queue-nav-table'>
 +                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Summary</th></tr></thead>
 +                            <tbody>
 +                                <tr><td>&vandelay.queue.total;</td><td> <span style='font-weight:bold;' id='vl-queue-summary-total-count'/></td></tr>
 +                                <tr><td>&vandelay.queue.imported;</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-count'/></td></tr>
 +                                <tr><td>Record Import Failures</td><td> <span style='font-weight:bold;' id='vl-queue-summary-rec-error-count'/></td></tr>
 +                                <tr><td>Items in Queue</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-item-count'/></td></tr>
 +                                <tr><td>Items Imported</td><td> <span style='font-weight:bold;' id='vl-queue-summary-import-item-imported-count'/></td></tr>
 +                                <tr><td>Item Import Failures</td><td> <span style='font-weight:bold;' id='vl-queue-summary-item-error-count'/></td></tr>
 +                            </tbody>
 +                        </table>
 +                    </td>
 +
 +                    <td valign='top'> <!-- filters -->
 +                        <table id='vl-queue-filter-table' class='queue-nav-table'>
 +                            <thead><tr><th colspan='2' class='queue-nav-table-label'>Queue Filters</th></tr></thead>
 +                            <tbody>
 +                                <tr>
 +                                    <td>&vandelay.limit.to.collision.matches;</td>
 +                                    <td>
 +                                        <input dojoType='dijit.form.CheckBox' 
 +                                            jsId='vlQueueGridShowMatches' onchange='retrieveQueuedRecords();'/>
 +                                    </td>
 +                                </tr>
 +                                <tr>
 +                                    <td>&vandelay.limit.to.non.imported;</td>
 +                                    <td>
 +                                        <input dojoType='dijit.form.CheckBox' 
 +                                            jsId='vlQueueGridShowNonImport' onchange='retrieveQueuedRecords();'/>
 +                                    </td>
 +                                </tr>
 +                                <tr>
 +                                    <td>&vandelay.limit.to.import_error;</td>
 +                                    <td>
 +                                        <input dojoType='dijit.form.CheckBox' 
 +                                            jsId='vlQueueGridShowImportErrors' onchange='retrieveQueuedRecords();'/>
 +                                    </td>
 +                                </tr>
 +                            </tbody>
 +                        </table>
 +                    </td>
 +                </tr>
 +            </table>
 +        </td>
 +
 +        <td align='right' valign='bottom'> <!-- big right td -->
 +            <table id='vl-queue-paging-table' class='queue-nav-table'>
 +                <tbody>
 +                    <tr><td valign='bottom' align='right'>
 +                        <select id='vl-queue-export-options' style='margin-right: 10px;'>
 +                            <!-- TODO I18N -->
 +                            <option value=''>Export Queue As...</option>
 +                            <option value='print'>Print</option>
 +                            <option value='csv'>CSV</option>
 +                            <option value='email'>Email</option>
 +                        </select>
 +                        <span style='padding-right:5px;'>&vandelay.results.per.page;</span>
 +                        <span class='queue-pager-span'>
 +                            <select jsId='vlQueueDisplayLimit' id='vl-queue-display-limit-selector'
 +                                value='10' onchange='retrieveQueuedRecords();'>
 +                                <option value='10'>10</option>
 +                                <option value='20'>20</option>
 +                                <option value='50'>50</option>
 +                                <option value='100'>100</option>
 +                            </select>
 +                        </span>
 +
 +                        <span class='queue-pager-span'>
 +                            <span style='padding-left:5px;'>&vandelay.page;</span>
 +                            <input style='width:36px;' dojoType='dijit.form.TextBox' jsId='vlQueueDisplayPage' value='1'/>
 +                        </span>
 +
 +                        <span style='padding-right:8px;'>
 +                            <a href='javascript:void(0);' onclick='vlQueueGridPrevPage();'>&vandelay.prev.page;</a>
 +                        </span>
 +                        <span style='padding-right:10px;'>
 +                            <a href='javascript:void(0);' onclick='vlQueueGridNextPage();'>&vandelay.next.page;</a>
 +                        </span>
 +                    </td></tr>
 +                </tbody>
 +            </table>
 +        </td>
 +    </tr></table>
 +    </fieldset>
 +</div>
 +
 +<!-- Bib Queue Grid -->
 +<div class='' id='vl-bib-queue-grid-wrapper' dojoType='dijit.layout.ContentPane'>
 +    <table dojoType='dojox.grid.DataGrid' jsId='vlBibQueueGrid' query="{id:'*'}" autoHeight='true'>
 +        <thead>
 +            <tr>
 +                <th 
 +                    field='+row_selector'
 +                    get='vlQueueGridDrawSelectBox'
 +                    formatter='vlQueueGridFormatSelectBox'
 +                    width='16'
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>
 +                        <input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"></input>
 +                </th>
 +                <th
 +                    field='+view_marc'
 +                    get='vlGetViewMARC'
 +                    formatter='vlFormatViewMARC' 
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>&vandelay.view.marc;</th>
 +                <th
 +                    field='+get_matches'
 +                    get='vlGetViewMatches'
 +                    formatter='vlFormatViewMatches'
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>&vandelay.matches;</th>
 +                <th
 +                    field='+get_errors'
 +                    get='vlGetViewErrors'
 +                    formatter='vlFormatViewErrors'
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>Import Failures</th>
 +                <th
 +                    field='import_time'
 +                    styles='text-align: center;'
 +                    get='vlGetDateTimeField'>&vandelay.import.time;</th>
 +            </tr>
 +        </thead>
 +    </table>
 +    <div/>
 +</div>
 +
 +<!-- Auth Queue Grid -->
 +<div class='' id='vl-auth-queue-grid-wrapper' dojoType='dijit.layout.ContentPane'>
 +    <table dojoType='dojox.grid.DataGrid' jsId='vlAuthQueueGrid' query="{id:'*'}" autoHeight='true'> 
 +        <thead>
 +            <tr>
 +                <th 
 +                    field='+row_selector'
 +                    get='vlQueueGridDrawSelectBox'
 +                    formatter='vlQueueGridFormatSelectBox'
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>
 +                        <input id="vl-queue-grid-row-selector" type="checkbox" onclick="vlToggleQueueGridSelect();"></input>
 +                </th>
 +                <th
 +                    field='+view_marc'
 +                    get='vlGetViewMARC'
 +                    formatter='vlFormatViewMARC' 
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>&vandelay.view.marc;</th>
 +                <th
 +                    field='+get_matches'
 +                    get='vlGetViewMatches'
 +                    formatter='vlFormatViewMatches'
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>&vandelay.matches;</th>
 +                <th
 +                    field='+get_errors'
 +                    get='vlGetViewErrors'
 +                    formatter='vlFormatViewErrors'
 +                    styles='text-align: center;'
 +                    nonSelectable='true'>Import Failures</th>
 +                <th
 +                    field='import_time'
 +                    styles='text-align: center;'
 +                    get='vlGetDateTimeField'>&vandelay.import.time;</th>
 +            </tr>
 +        </thead>
 +    </table>
 +    <div/>
 +</div>
 +
 +<div jsId='queueItemsImportDialog' dojoType="dijit.Dialog" title="Import Items">
 +    <div dojoType="dijit.layout.ContentPane">
 +        <table class='form_table'>
 +            <tbody>
 +                <tr>
 +                    <td>&vandelay.auto.import.merge_profile;</td>
 +                    <td colspan='4'>
 +                        <div jsId='vlUploadMergeProfile2' 
 +                            dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
 +                    </td>
 +                </tr>
 +                <tr>
 +                    <td>&vandelay.auto.import.noncolliding;</td>
 +                    <td colspan='4'>
 +                        <input jsId='vlUploadQueueImportNoMatch2' dojoType='dijit.form.CheckBox'/>
 +                    </td>
 +                </tr>
 +                <tr>
 +                    <td>&vandelay.auto.import.auto_overlay_exact;</td>
 +                    <td colspan='4'>
 +                        <input jsId='vlUploadQueueAutoOverlayExact2' dojoType='dijit.form.CheckBox'/>
 +                    </td>
 +                </tr>
 +                <tr>
 +                    <td>&vandelay.auto.import.auto_overlay_1match;</td>
 +                    <td colspan='4'>
 +                        <input jsId='vlUploadQueueAutoOverlay1Match2' dojoType='dijit.form.CheckBox'/>
 +                    </td>
 +                </tr>
 +                <tr>
 +                    <td>&vandelay.auto.import.auto_overlay_best;</td>
 +                    <td colspan='4'><input jsId='vlUploadQueueAutoOverlayBestMatch2' dojoType='dijit.form.CheckBox'/></td>
 +                </tr>
 +                <tr>
 +                    <td>&vandelay.auto.import.auto_overlay_best_ratio;</td>
 +                    <td colspan='4'>
 +                        <input style='width:3em' value='0.0' jsId='vlUploadQueueAutoOverlayBestMatchRatio2' dojoType='dijit.form.TextBox'/>
 +                        <span style='padding-left: 10px; font-size:90%'>(&vandelay.auto.import.auto_overlay_best_ratio.desc;)</span>
 +                    </td>
 +                </tr>
 +                <tr>
++                    <td>&vandelay.auto.import.ft_merge_profile;</td>
++                    <td colspan='4'>
++                        <div jsId='vlUploadFtMergeProfile2' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
++                    </td>
++                </tr>
++                <tr>
 +                    <td>
 +                        <button dojoType='dijit.form.Button' jsId='queueItemsImportCancelButton'>Cancel</button>
 +                    </td>
 +                    <td>
 +                        <button dojoType='dijit.form.Button' jsId='queueItemsImportGoButton'>Import</button>
 +                    </td>
 +                </tr>
 +            </tbody>
 +        </table>
 +    </div>
 +</div>
 +
 +
 +
index b432252,0000000..0c1bbd5
mode 100644,000000..100644
--- /dev/null
@@@ -1,96 -1,0 +1,103 @@@
 +<h1>&vandelay.marc.file.upload;</h1><br/>
 +<form id="vl-marc-upload-form" enctype="multipart/form-data">
 +    <input type='hidden' name='ses' id='vl-ses-input'/>
 +    <table class='form_table'>
 +        <tr>
 +            <td>&vandelay.record.type;</td>
 +            <td colspan='4'>
 +                <select id='vl-record-type' dojoType='dijit.form.FilteringSelect' 
 +                        jsId='vlUploadRecordType' onchange='vlShowUploadForm();'>
 +                    <option value='bib' selected='selected'>&vandelay.bib.records;</option>
 +                    <option value='auth'>&vandelay.auth.records;</option>
 +                </select>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>&vandelay.create.upload.queue;</td>
 +            <td>
 +                <input type='text' dojoType='dijit.form.TextBox' id='vl-queue-name' size='32'></input>
 +            </td>
 +            <td>&vandelay.add.existing.queue;</td>
 +            <td>
 +                <select jsId='vlUploadQueueSelector' dojoType='dijit.form.FilteringSelect' required='false'>
 +                </select>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>Record Match Set</td>
 +            <td>
 +                <input jsId='vlUploadQueueMatchSet'
 +                    dojoType='dijit.form.FilteringSelect' labelAttr='name' searchAttr='name'/>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>Holdings Import Profile</td>
 +            <td>
 +                <input jsId='vlUploadQueueHoldingsImportProfile'
 +                    dojoType='dijit.form.FilteringSelect' labelAttr='name' searchAttr='name'/>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>&vandelay.import.bib_sources;</td>
 +            <td>
 +                <select name='bib_source' jsId='vlUploadSourceSelector' 
 +                    dojoType='dijit.form.FilteringSelect' labelAttr='source' searchAttr='source'/>
 +            </td>
 +        </tr>
 +        <tr><td colspan='2' style='margin-top:10px;border-bottom:1px solid #888;border-top:2px solid #888'>
 +            <b>&vandelay.import.actions;</b>
 +        </td></tr>
 +        <tr>
 +            <td>&vandelay.auto.import.merge_profile;</td>
 +            <td colspan='4'>
 +                <div jsId='vlUploadMergeProfile' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>&vandelay.auto.import.noncolliding;</td>
 +            <td colspan='4'>
 +                <input jsId='vlUploadQueueImportNoMatch' dojoType='dijit.form.CheckBox'/>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>&vandelay.auto.import.auto_overlay_exact;</td>
 +            <td colspan='4'>
 +                <input jsId='vlUploadQueueAutoOverlayExact' dojoType='dijit.form.CheckBox'/>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>&vandelay.auto.import.auto_overlay_1match;</td>
 +            <td colspan='4'>
 +                <input jsId='vlUploadQueueAutoOverlay1Match' dojoType='dijit.form.CheckBox'/>
 +            </td>
 +        </tr>
 +        <tr>
 +            <td>&vandelay.auto.import.auto_overlay_best;</td>
 +            <td colspan='4'><input jsId='vlUploadQueueAutoOverlayBestMatch' dojoType='dijit.form.CheckBox'/></td>
 +        </tr>
 +        <tr>
 +            <td>&vandelay.auto.import.auto_overlay_best_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%'>(&vandelay.auto.import.auto_overlay_best_ratio.desc;)</span>
 +            </td>
 +        </tr>
++        <tr>
++            <td>&vandelay.auto.import.ft_merge_profile;</td>
++            <td colspan='4'>
++                <div jsId='vlUploadFtMergeProfile' dojoType='dijit.form.FilteringSelect' required='false' labelAttr='name' searchAttr='name'/>
++            </td>
++        </tr>
++
 +        <tr><td colspan='2' style='border-bottom:2px solid #888;'></td></tr>
 +        <tr><td colspan='2' style='padding-bottom: 10px;'></td></tr>
 +        <tr>
 +            <td colspan='5'>
 +                <span id="vl-file-label">&vandelay.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="batchUpload()">&vandelay.upload;</button></span>
 +            </td>
 +        </tr>
 +    </table>
 +</form>
 +