<form novalidate class="css-form" name="forms.myForm">
<div class="row bg-info">
<div class="col-md-1">
- <h5>[% l('Template') %]</h5>
+ <h5><label id="template">[% l('Template') %]</label></h5>
</div>
<div ng-class="template_controls ? 'col-md-2' : 'col-md-5'">
- <eg-basic-combo-box list="template_name_list" selected="template_name"></eg-basic-combo-box>
+ <eg-basic-combo-box list="template_name_list"
+ combo-box-aria="template" selected="template_name"></eg-basic-combo-box>
</div>
<div class="col-md-1">
- <button class="btn btn-default " ng-click="applyTemplate(template_name)" type="button">[% l('Apply') %]</button>
+ <button class="btn btn-default" ng-click="applyTemplate(template_name)" type="button">[% l('Apply') %]</button>
</div>
<div class="col-md-6" ng-show="template_controls">
<div class="row">
<div class="col-md-4">
<div class="btn-group">
- <label class="btn btn-default" ng-click="saveTemplate(template_name)">[% l('Save') %]</label>
- <label class="btn btn-default" ng-click="deleteTemplate(template_name)">[% l('Delete') %]</label>
+ <button class="btn btn-default" ng-click="saveTemplate(template_name)" type="button">
+ [% l('Save') %]
+ </button>
+ <button class="btn btn-default" ng-click="deleteTemplate(template_name)" type="button">
+ [% l('Delete') %]
+ </button>
</div>
</div>
<div class="col-md-8">
<div class="btn-group pull-right">
- <span class="btn btn-default btn-file">
+ <label class="btn btn-default btn-file" id="import">
[% l('Import') %]
- <input type="file" eg-file-reader container="imported_templates.data">
- </span>
- <label class="btn btn-default"
+ <input aria-labelledby="import" type="file" eg-file-reader
+ container="imported_templates.data">
+ </label>
+ <button class="btn btn-default"
eg-json-exporter container="templates"
default-file-name="'[% l('exported_copy_templates.json') %]'">
[% l('Export') %]
- </label>
+ </button>
</div>
</div>
</div>
<ul class="copy-attributes-grid">
<li ng-if="defaults.attributes.circulate">
- <div class="bg-info"><label>[% l('Circulate?') %]</label></div>
+ <div class="bg-info"><label id="circulate">[% l('Circulate?') %]</label></div>
<div ng-class="{'bg-success': working.circulate !== undefined, 'field-changed': field_changed('circulate')}">
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.circulate" value="t"/>
+ <label id="yesCirc">
+ <input type="radio" ng-model="working.circulate" value="t"
+ aria-labelledby="circulate yesCirc" />
[% l('Yes') %]
</label>
</div>
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.circulate" value="f"/>
+ <label id="noCirc">
+ <input type="radio" ng-model="working.circulate" value="f"
+ aria-labelledby="circulate noCirc"/>
[% l('No') %]
</label>
</div>
<div ng-if="hasMulti()"> </div>
</li>
<li ng-if="defaults.attributes.status">
- <div class="bg-info"><label>[% l('Status') %]</label></div>
+ <div class="bg-info"><label id="status">[% l('Status') %]</label></div>
<div ng-class="{'bg-success': working.status !== undefined, 'field-changed': field_changed('status')}">
- <select class="form-control" ng-model="working.status"
+ <select class="form-control" aria-labelledby="status"
+ ng-model="working.status"
ng-options="s.id() as s.name() disable when magic_status_list.indexOf(s.id(),0) > -1 for s in status_list">
</select>
</div>
</div>
</li>
<li ng-if="defaults.attributes.circ_lib">
- <div class="bg-info"><label>[% l('Circulating Library') %]</label></div>
+ <div class="bg-info"><label id="circLib">[% l('Circulating Library') %]</label></div>
<div ng-class="{'bg-success': working.circ_lib !== undefined, 'field-changed': field_changed('circ_lib')}">
<eg-org-selector
+ org-aria="circLib"
alldisabled="{{!defaults.attributes.circ_lib}}"
selected="working.circ_lib"
noDefault
</div>
</li>
<li ng-if="defaults.attributes.ref">
- <div class="bg-info"><label>[% l('Reference?') %]</label></div>
+ <div class="bg-info"><label id="reference">[% l('Reference?') %]</label></div>
<div ng-class="{'bg-success': working.ref !== undefined, 'field-changed': field_changed('ref')}">
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.ref" value="t"/>
+ <label id="yesReference">
+ <input type="radio" ng-model="working.ref" value="t"
+ aria-labelledby="reference yesReference"/>
[% l('Yes') %]
</label>
</div>
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.ref" value="f"/>
+ <label id="noReference">
+ <input type="radio" ng-model="working.ref" value="f"
+ aria-labelledby="reference noReference"/>
[% l('No') %]
</label>
</div>
</div>
</li>
<li ng-if="defaults.attributes.location">
- <div class="bg-info"><label>[% l('Shelving Location') %]</label></div>
+ <div class="bg-info"><label id="shelvingLocation">[% l('Shelving Location') %]</label></div>
<div ng-class="{'bg-success': working.location !== undefined, 'field-changed': field_changed('location')}">
<select class="form-control" ng-model="working.location"
+ aria-labelledby="shelvingLocation"
ng-options="l.id() as i18n.ou_qualified_location_name(l) for l in location_list">
</select>
</div>
</div>
</li>
<li ng-if="defaults.attributes.opac_visible">
- <div class="bg-info"><label>[% l('OPAC Visible?') %]</label></div>
+ <div class="bg-info"><label id="opacVisible">[% l('OPAC Visible?') %]</label></div>
<div ng-class="{'bg-success': working.opac_visible !== undefined, 'field-changed': field_changed('opac_visible')}">
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.opac_visible" value="t"/>
+ <label id="yesOpacVisible">
+ <input type="radio" ng-model="working.opac_visible" value="t"
+ aria-labelledby="opacVisible yesOpacVisible" />
[% l('Yes') %]
</label>
</div>
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.opac_visible" value="f"/>
+ <label id="noOpacVisible">
+ <input type="radio" ng-model="working.opac_visible" value="f"
+ aria-labelledby="opacVisible noOpacVisible" />
[% l('No') %]
</label>
</div>
</div>
</li>
<li ng-if="defaults.attributes.circ_modifier">
- <div class="bg-info"><label>[% l('Circulation Modifier') %]</label></div>
+ <div class="bg-info">
+ <label id="circulationModifier">[% l('Circulation Modifier') %]</label>
+ </div>
<div ng-class="{'bg-success': working.circ_modifier !== undefined, 'field-changed': field_changed('circ_modifier')}">
<select class="form-control"
+ aria-labelledby="circulationModifier"
ng-model="working.circ_modifier"
ng-options="m.code() as m.name() for m in circ_modifier_list | orderBy: 'name()'">
<option value="">[% l('<NONE>') %]</option>
</div>
</li>
<li ng-if="defaults.attributes.price">
- <div class="bg-info"><label>[% l('Price') %]</label></div>
+ <div class="bg-info"><label id="price">[% l('Price') %]</label></div>
<div ng-class="{'bg-success': working.price !== undefined, 'field-changed': field_changed('price')}">
- <input class="form-control" str-to-float ng-model="working.price"
- type="number" step="0.01"/>
+ <input class="form-control" str-to-float ng-model="working.price"
+ aria-labelledby="price" type="number" step="0.01"/>
</div>
<div ng-if="hasMulti()">
<div ng-if="working.MultiMap.price.length > 1 && working.price === undefined">
</div>
</li>
<li ng-if="defaults.attributes.loan_duration">
- <div class="bg-info"><label>[% l('Loan Duration') %]</label></div>
+ <div class="bg-info">
+ <label id="loanDuration">[% l('Loan Duration') %]</label>
+ </div>
<div ng-class="{'bg-success': working.loan_duration !== undefined, 'field-changed': field_changed('loan_duration')}">
- <select class="form-control" int-to-str ng-model="working.loan_duration">
+ <select class="form-control" int-to-str ng-model="working.loan_duration"
+ aria-labelledby="loanDuration">
<option value="1">[% l('Short') %]</option>
<option value="2" selected>[% l('Normal') %]</option>
<option value="3">[% l('Extended') %]</option>
</div>
</li>
<li ng-if="defaults.attributes.cost">
- <div class="bg-info"><label>[% l('Acquisitions Cost') %]</label></div>
+ <div class="bg-info">
+ <label id="acquisitionsCost">[% l('Acquisitions Cost') %]</label>
+ </div>
<div ng-class="{'bg-success': working.cost !== undefined, 'field-changed': field_changed('cost')}">
<input class="form-control" str-to-float ng-model="working.cost"
- type="number" step="0.01"/>
+ aria-labelledby="acquisitionsCost" type="number" step="0.01"/>
</div>
<div ng-if="hasMulti()">
<div ng-if="working.MultiMap.cost.length > 1 && working.cost === undefined">
</div>
</li>
<li ng-if="defaults.attributes.circ_as_type">
- <div class="bg-info"><label>[% l('Circulate as Type') %]</label></div>
+ <div class="bg-info">
+ <label id="circulateAsType">[% l('Circulate as Type') %]</label>
+ </div>
<div ng-class="{'bg-success': working.circ_as_type !== undefined, 'field-changed': field_changed('circ_as_type')}">
<select class="form-control" ng-model="working.circ_as_type"
- ng-options="t.code() as t.value() for t in circ_type_list">
+ ng-options="t.code() as t.value() for t in circ_type_list"
+ aria-labelledby="circulateAsType">
<option value="">[% l('<NONE>') %]</option>
</select>
</div>
</div>
</li>
<li ng-if="defaults.attributes.holdable">
- <div class="bg-info"><label>[% l('Holdable?') %]</label></div>
+ <div class="bg-info">
+ <label id="holdable">[% l('Holdable?') %]</label>
+ </div>
<div ng-class="{'bg-success': working.holdable !== undefined, 'field-changed': field_changed('holdable')}">
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.holdable" value="t"/>
+ <label id="yesHoldable">
+ <input type="radio" ng-model="working.holdable" value="t"
+ aria-labelledby="holdable yesHoldable" />
[% l('Yes') %]
</label>
</div>
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.holdable" value="f"/>
+ <label id="noHoldable">
+ <input type="radio" ng-model="working.holdable" value="f"
+ aria-labelledby="holdable noHoldable" />
[% l('No') %]
</label>
</div>
</div>
</li>
<li ng-if="defaults.attributes.deposit">
- <div class="bg-info"><label>[% l('Deposit?') %]</label></div>
+ <div class="bg-info">
+ <label id="deposit">[% l('Deposit?') %]</label>
+ </div>
<div ng-class="{'bg-success': working.deposit !== undefined, 'field-changed': field_changed('deposit')}">
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.deposit" value="t"/>
+ <label id="yesDeposit">
+ <input type="radio" ng-model="working.deposit" value="t"
+ aria-labelledby="deposit yesDeposit" />
[% l('Yes') %]
</label>
</div>
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.deposit" value="f"/>
+ <label id="noDeposit">
+ <input type="radio" ng-model="working.deposit" value="f"
+ aria-labelledby="deposit noDeposit" />
[% l('No') %]
</label>
</div>
</div>
</li>
<li ng-if="defaults.attributes.deposit_amount">
- <div class="bg-info"><label>[% l('Deposit Amount') %]</label></div>
+ <div class="bg-info">
+ <label id="depositAmount">[% l('Deposit Amount') %]</label>
+ </div>
<div ng-class="{'bg-success': working.deposit_amount !== undefined, 'field-changed': field_changed('deposit_amount')}">
- <input class="form-control" str-to-float
+ <input class="form-control" str-to-float aria-labelledby="depositAmount"
ng-model="working.deposit_amount" type="number" step="0.01"/>
</div>
<div ng-if="hasMulti()">
</div>
</li>
<li ng-if="defaults.attributes.age_protect">
- <div class="bg-info"><label>[% l('Age-based Hold Protection') %]</label></div>
+ <div class="bg-info">
+ <label id='agebased'>[% l('Age-based Hold Protection') %]</label>
+ </div>
<div ng-class="{'bg-success': working.age_protect !== undefined, 'field-changed': field_changed('age_protect')}">
- <select class="form-control"
+ <select class="form-control" aria-labelledby="agebased"
ng-model="working.age_protect"
ng-options="a.id() as a.name() for a in age_protect_list">
<option value="">[% l('<NONE>') %]</option>
</div>
</li>
<li ng-if="defaults.attributes.mint_condition">
- <div class="bg-info"><label>[% l('Quality') %]</label></div>
+ <div class="bg-info">
+ <label id="quality">[% l('Quality') %]</label>
+ </div>
<div ng-class="{'bg-success': working.mint_condition !== undefined, 'field-changed': field_changed('mint_condition')}">
<div class="col-lg-6">
- <label>
- <input type="radio" ng-model="working.mint_condition" value="t"/>
+ <label id="goodQuality">
+ <input type="radio" ng-model="working.mint_condition" value="t"
+ aria-labelledby="quality goodQuality" />
[% l('Good') %]
</label>
</div>
<div class="col-lg-6">
- <label>
- <input type="radio"ng-model="working.mint_condition" value="f"/>
+ <label id="damagedQuality">
+ <input type="radio"ng-model="working.mint_condition" value="f"
+ aria-labelledby="quality damagedQuality" />
[% l('Damaged') %]
</label>
</div>
</div>
</li>
<li ng-if="defaults.attributes.fine_level">
- <div class="bg-info"><label>[% l('Fine Level') %]</label></div>
+ <div class="bg-info">
+ <label id="fineLevel">[% l('Fine Level') %]</label>
+ </div>
<div ng-class="{'bg-success': working.fine_level !== undefined, 'field-changed': field_changed('fine_level')}">
- <select class="form-control" int-to-str ng-model="working.fine_level">
+ <select class="form-control" int-to-str ng-model="working.fine_level"
+ aria-labelledby="fineLevel">
<option value="1">[% l('Low') %]</option>
<option value="2" selected>[% l('Normal') %]</option>
<option value="3">[% l('High') %]</option>
<div ng-if="hasMulti()"> </div>
</li>
<li ng-if="defaults.attributes.floating">
- <div class="bg-info"><label>[% l('Floating') %]</label></div>
+ <div class="bg-info">
+ <label id="floating">[% l('Floating') %]</label>
+ </div>
<div ng-class="{'bg-success': working.floating !== undefined, 'field-changed': field_changed('floating')}">
<select class="form-control" ng-model="working.floating"
- ng-options="a.id() as a.name() for a in floating_list">
+ ng-options="a.id() as a.name() for a in floating_list"
+ aria-labelledby="floating">
<option value="">[% l('<NONE>') %]</option>
</select>
</div>
<div ng-if="hasMulti()"> </div>
</li>
<li ng-if="defaults.statcats">
- <div class="bg-info"><label>[% l('Statistical Categories') %]</label></div>
+ <div class="bg-info">
+ <label id="statCats">[% l('Statistical Categories') %]</label>
+ </div>
<div>
- <select class="form-control" ng-disabled="!defaults.statcats"
+ <select class="form-control" aria-labelledby="statCats"
+ ng-disabled="!defaults.statcats"
ng-model="working.statcat_filter"
ng-options="o.id() as o.shortname() for o in statcat_filter_list">
<option value="">[% l('Filter by Library') %]</option>
</li>
<li ng-repeat="sc in statcats | orderBy:['owner().name()','name()']" ng-if="statcat_visible(sc.owner().id())">
- <div class="bg-info"><label>{{sc.owner().name() }} : {{ sc.name()}}</label></div>
+ <div class="bg-info">
+ <label id="statcat{{sc.id()}}">{{sc.owner().name() }} : {{ sc.name()}}</label>
+ </div>
<div ng-class="{'bg-success': working.statcats[sc.id()] !== undefined}">
- <select class="form-control" ng-disabled="!defaults.statcats"
+ <select class="form-control" aria-labelledby="statcat{{sc.id()}}"
+ ng-disabled="!defaults.statcats"
ng-change="statcatUpdate(sc.id())"
ng-model="working.statcats[sc.id()]"
ng-options="e.id() as e.value() for e in sc.entries()"
<script>window.empty_barcode_string = "[% l('Missing Barcode') %]";</script>
<script>window.empty_label_string = "[% l('Missing Call Number') %]";</script>
<div ng-show="!only_vols" class="btn-group">
- <label class="btn btn-default" ng-click="show_vols = !show_vols">
- <span ng-show="show_vols" style="padding-right: 5px;">[% l('Hide Holdings Details') %]</span>
- <span ng-hide="show_vols" style="padding-right: 5px;">[% l('Show Holdings Details') %]</span>
- </label>
- <label class="btn btn-default" ng-click="show_copies = !show_copies">
+ <a href="#" class="btn btn-default" ng-click="show_vols = !show_vols">
+ <span
+ ng-show="show_vols" style="padding-right: 5px;">
+ [% l('Hide Holdings Details') %]
+ </span>
+ <span
+ ng-hide="show_vols" style="padding-right: 5px;">
+ [% l('Show Holdings Details') %]
+ </span>
+ </a>
+ <a href="#" class="btn btn-default" ng-click="show_copies = !show_copies">
<span ng-show="show_copies" style="padding-right: 5px;">[% l('Hide Item Attributes') %]</span>
<span ng-hide="show_copies" style="padding-right: 5px;">[% l('Show Item Attributes') %]</span>
- </label>
+ </a>
</div>
<div class="container-fluid pad-vert" ng-show="show_vols">
<div class="row bg-info">
- <div class="col-xs-2"><h4 class="center-block">[% l('Batch Apply') %]</h4></div>
+ <div class="col-xs-2">
+ <h4 class="center-block">
+ <label id="batchApply">[% l('Batch Apply') %]</label>
+ </h4>
+ </div>
<div class="col-xs-10">
<div class="row">
<div class="col-xs-2">
- <select class="form-control" ng-model="batch.classification" ng-options="cl.id() as cl.name() for cl in classification_list"></select>
+ <select class="form-control" aria-labelledby="batchApply classification"
+ ng-model="batch.classification"
+ ng-options="cl.id() as cl.name() for cl in classification_list"></select>
</div>
<div class="col-xs-1">
- <select class="form-control" ng-model="batch.prefix" ng-options="p.id() as p.label() for p in prefix_list"></select>
+ <select class="form-control" aria-labelledby="batchApply prefix" ng-model="batch.prefix"
+ ng-options="p.id() as p.label() for p in prefix_list"></select>
</div>
<div class="col-xs-2">
- <eg-basic-combo-box list="batch.marcCallNumbers" selected="batch.label"></eg-basic-combo-box>
+ <eg-basic-combo-box combo-box-aria="batchApply callNumberLabel"
+ list="batch.marcCallNumbers" selected="batch.label"></eg-basic-combo-box>
</div>
<div class="col-xs-1">
- <select class="form-control" ng-model="batch.suffix" ng-options="s.id() as s.label() for s in suffix_list"></select>
+ <select class="form-control" aria-labelledby="batchApply suffix"
+ ng-model="batch.suffix"
+ ng-options="s.id() as s.label() for s in suffix_list"></select>
</div>
<div class="col-xs-1"></div>
<div class="col-xs-5">
- <button class="btn btn-default center-block" ng-click="applyBatchCNValues()" type="button">[% l('Apply') %]</button>
+ <button aria-labelledby="batchApply applyBatchApply"
+ class="btn btn-default center-block"
+ ng-click="applyBatchCNValues()" type="button">
+ <label id="applyBatchApply">[% l('Apply') %]</label>
+ </button>
</div>
</div>
</div>
</div>
<div class="row pad-vert">
- <div class="col-xs-1"><b>[% l('Owning Library') %]</b></div>
- <div class="col-xs-1"><b>[% l('Call Numbers') %]</b></div>
+ <div class="col-xs-1"><label id="owningLibrary">
+ <b>[% l('Owning Library') %]</b>
+ </label></div>
+ <div class="col-xs-1"><label id="callNumbers">
+ <b>[% l('Call Numbers') %]</b>
+ </label></div>
<div class="col-xs-10">
<div class="row">
- <div class="col-xs-2"><b>[% l('Classification') %]</b></div>
- <div class="col-xs-1"><b>[% l('Prefix') %]</b></div>
- <div class="col-xs-2"><b>[% l('Call Number Label') %]</b></div>
- <div class="col-xs-1"><b>[% l('Suffix') %]</b></div>
- <div class="col-xs-1" ng-hide="only_vols"><b>[% l('Items') %]</b></div>
+ <div class="col-xs-2"><label id="classification">
+ <b>[% l('Classification') %]</b>
+ </label></div>
+ <div class="col-xs-1"><label id="prefix">
+ <b>[% l('Prefix') %]</b>
+ </label></div>
+ <div class="col-xs-2"><label id="callNumberLabel">
+ <b>[% l('Call Number Label') %]</b>
+ </label></div>
+ <div class="col-xs-1"><label id="suffix">
+ <b>[% l('Suffix') %]</b>
+ </label></div>
+ <div class="col-xs-1" ng-hide="only_vols"><label id="items">
+ <b>[% l('Items') %]</b>
+ </label></div>
<div class="col-xs-5" ng-hide="only_vols">
<div class="row">
- <div class="col-xs-5"><b>[% l('Barcode') %]</b></div>
- <div class="col-xs-3"><b>[% l('Item #') %]</b></div>
- <div class="col-xs-4"><b>[% l('Part') %]</b></div>
+ <div class="col-xs-5"><label id="barcode"><b>[% l('Barcode') %]</b></label></div>
+ <div class="col-xs-3"><label id="itemnum"><b>[% l('Item #') %]</b></label></div>
+ <div class="col-xs-4"><label id="part"><b>[% l('Part') %]</b></label></div>
</div>
</div>
<div class="col-xs-2" ng-show="only_vols">
<hr/>
<div class="row">
<div class="col-xs-2">
- <eg-org-selector alldisabled="{{record_id == 0}}" selected="new_lib_to_add" onchange="changeNewLib" disable-test="cant_have_vols"></eg-org-selector>
+ <eg-org-selector org-aria="newLibrary" alldisabled="{{record_id == 0}}"
+ selected="new_lib_to_add" onchange="changeNewLib"
+ disable-test="cant_have_vols">
+ </eg-org-selector>
</div>
<div class="col-xs-2">
- <button class="btn btn-default" ng-disabled="record_id == 0" ng-click="addLibToStruct()" type="button">[% l('Add call number') %]</button>
+ <button id="addCallNumber" class="btn btn-default"
+ ng-disabled="record_id == 0"
+ ng-click="addLibToStruct()" type="button">
+ [% l('Add call number') %]
+ </button>
+ </div>
+ <div class="col-xs-8">
+ <label ng-hide="true" id="newLibrary">New Library</label>
</div>
</div>
</div>
<ul ng-model="copytab" class="nav nav-tabs">
<li ng-class="{active : copytab == 'working'}">
- <a ng-click="copytab='working'" >[% l('Working Items') %]</a>
+ <a href="#" ng-click="copytab='working'" >[% l('Working Items') %]</a>
</li>
<li ng-class="{active : copytab == 'complete'}">
- <a ng-click="copytab='complete'" >[% l('Completed Items') %]</a>
+ <a href="#" ng-click="copytab='complete'" >[% l('Completed Items') %]</a>
</li>
</ul>
<div class="container-fluid"> <!-- working copy editor -->
<div class="row give-cell-border" style="margin:0px;padding:0px">
- <div class="col-lg-12" style="margin:0px;padding:0px"
+ <div class="col-lg-12" style="margin:0px;padding:0px">
<div ng-include="'[% ctx.base_path %]/staff/cat/volcopy/t_attr_edit'"></div>
</div>
</div>
'<span ng-if="is_new" class="sr-only">' + egCore.strings.VOL_COPY_NEW_ITEM + '</span>' +
'<div class="col-xs-5" ng-class="{'+"'has-error'"+':barcode_has_error}">'+
'<input id="{{callNumber.id()}}_{{copy.id()}}"'+
- ' eg-enter="nextBarcode(copy.id())" class="form-control"'+
+ ' eg-enter="nextBarcode(copy.id())" class="form-control" aria-labelledby="barcode"'+
' type="text" ng-model="barcode" ng-model-options="{ debounce: 500 }" ng-change="updateBarcode()"'+
' ng-focus="selectOnFocus($event)" autofocus/>'+
'<div class="label label-danger" ng-if="duplicate_barcode">{{duplicate_barcode_string}}</div>'+
'<div class="label label-danger" ng-if="empty_barcode">{{empty_barcode_string}}</div>'+
'</div>'+
- '<div class="col-xs-3"><input class="form-control" type="number" min="1" ng-model="copy_number" ng-change="updateCopyNo()"/></div>'+
- '<div class="col-xs-3"><eg-basic-combo-box list="parts" selected="part"></eg-basic-combo-box></div>'+
+ '<div class="col-xs-3"><input class="form-control" aria-labelledby="itemnum" type="number" min="1" ng-model="copy_number" ng-change="updateCopyNo()"/></div>'+
+ '<div class="col-xs-3"><eg-basic-combo-box combo-box-aria="part" list="parts" selected="part"></eg-basic-combo-box></div>'+
'</div>',
scope: { focusNext: "=", copy: "=", callNumber: "=", index: "@", record: "@" },
'<span ng-if="!callNumber.not_ephemeral" class="sr-only">' + egCore.strings.VOL_COPY_NEW_CALL_NUMBER + '</span>' +
'<div class="col-xs-2">'+
'<button aria-label="Delete" style="margin:-5px -15px; float:left;" ng-hide="callNumber.not_ephemeral" type="button" class="close" ng-click="removeCN()">×</button>' +
- '<select class="form-control" ng-model="classification" ng-change="updateClassification()" ng-options="cl.name() for cl in classification_list"></select>'+
+ '<select class="form-control" aria-labelledby="classification" ng-model="classification" ng-change="updateClassification()" ng-options="cl.name() for cl in classification_list"></select>'+
'</div>'+
'<div class="col-xs-1">'+
- '<select class="form-control" ng-model="prefix" ng-change="updatePrefix()" ng-options="p.label() for p in prefix_list"></select>'+
+ '<select class="form-control" aria-labelledby="prefix" ng-model="prefix" ng-change="updatePrefix()" ng-options="p.label() for p in prefix_list"></select>'+
'</div>'+
'<div class="col-xs-2">'+
- '<input class="form-control" type="text" ng-change="updateLabel()" ng-model="label"/>'+
+ '<input class="form-control" aria-labelledby="callNumberLabel" type="text" ng-change="updateLabel()" ng-model="label"/>'+
'<div class="label label-danger" ng-if="empty_label && require_label">{{empty_label_string}}</div>'+
'</div>'+
'<div class="col-xs-1">'+
- '<select class="form-control" ng-model="suffix" ng-change="updateSuffix()" ng-options="s.label() for s in suffix_list"></select>'+
+ '<select class="form-control" aria-labelledby="suffix" ng-model="suffix" ng-change="updateSuffix()" ng-options="s.label() for s in suffix_list"></select>'+
'</div>'+
- '<div ng-hide="onlyVols" class="col-xs-1"><input class="form-control" type="number" ng-model="copy_count" min="{{orig_copy_count}}" ng-change="changeCPCount()"></div>'+
+ '<div ng-hide="onlyVols" class="col-xs-1"><input class="form-control" aria-labelledby="items" type="number" ng-model="copy_count" min="{{orig_copy_count}}" ng-change="changeCPCount()"></div>'+
'<div ng-hide="onlyVols" class="col-xs-5">'+
'<eg-vol-copy-edit record="{{record}}" ng-repeat="cp in copies track by idTracker(cp)" focus-next="focusNextBarcode" copy="cp" call-number="callNumber"></eg-vol-copy-edit>'+
'</div>'+
replace: true,
template:
'<div class="row">'+
- '<div class="col-xs-1"><eg-org-selector selected="owning_lib" disable-test="cant_have_vols"></eg-org-selector></div>'+
- '<div class="col-xs-1"><input class="form-control" type="number" min="{{orig_cn_count}}" ng-model="cn_count" ng-change="changeCNCount()"/></div>'+
+ '<div class="col-xs-1"><eg-org-selector org-aria="owningLibrary" selected="owning_lib" disable-test="cant_have_vols"></eg-org-selector></div>'+
+ '<div class="col-xs-1"><input aria-labelledby="callNumbers" class="form-control" type="number" min="{{orig_cn_count}}" ng-model="cn_count" ng-change="changeCNCount()"/></div>'+
'<div class="col-xs-10">'+
'<eg-vol-row only-vols="onlyVols" record="{{record}}"'+
'ng-repeat="(cn,copies) in struct" '+