<field reporter:label="Status" name="status" oils_persist:virtual="true" />
<field reporter:label="Transit" name="transit" oils_persist:virtual="true" />
<field reporter:label="Capture Date/Time" name="capture_time" reporter:datatype="timestamp"/>
- <field reporter:label="Currently Targeted Copy" name="current_copy" />
+ <field reporter:label="Currently Targeted Copy" name="current_copy" reporter:datatype="link"/>
<field reporter:label="Notify by Email?" name="email_notify" reporter:datatype="bool"/>
<field reporter:label="Hold Expire Date/Time" name="expire_time" reporter:datatype="timestamp"/>
<field reporter:label="Fulfilling Library" name="fulfillment_lib" reporter:datatype="org_unit"/>
<field reporter:label="Status" name="status" oils_persist:virtual="true" />
<field reporter:label="Transit" name="transit" oils_persist:virtual="true" />
<field reporter:label="Capture Date/Time" name="capture_time" reporter:datatype="timestamp"/>
- <field reporter:label="Currently Targeted Copy" name="current_copy" />
+ <field reporter:label="Currently Targeted Copy" name="current_copy" reporter:datatype="link"/>
<field reporter:label="Notify by Email?" name="email_notify" reporter:datatype="bool"/>
<field reporter:label="Hold Expire Date/Time" name="expire_time" reporter:datatype="timestamp"/>
<field reporter:label="Fulfilling Library" name="fulfillment_lib" reporter:datatype="org_unit"/>
<field reporter:label="Status" name="status" oils_persist:virtual="true" />
<field reporter:label="Transit" name="transit" oils_persist:virtual="true" />
<field reporter:label="Capture Date/Time" name="capture_time" reporter:datatype="timestamp"/>
- <field reporter:label="Currently Targeted Copy" name="current_copy" />
+ <field reporter:label="Currently Targeted Copy" name="current_copy" reporter:datatype="link"/>
<field reporter:label="Notify by Email?" name="email_notify" reporter:datatype="bool"/>
<field reporter:label="Hold Expire Date/Time" name="expire_time" reporter:datatype="timestamp"/>
<field reporter:label="Fulfilling Library" name="fulfillment_lib" reporter:datatype="org_unit"/>
<fields oils_persist:primary="id" oils_persist:sequence="action.hold_request_id_seq">
<field reporter:label="Status" name="status" oils_persist:virtual="true" />
<field reporter:label="Capture Date/Time" name="capture_time" reporter:datatype="timestamp"/>
- <field reporter:label="Currently Targeted Copy" name="current_copy" />
+ <field reporter:label="Currently Targeted Copy" name="current_copy" reporter:datatype="link"/>
<field reporter:label="Notify by Email?" name="email_notify" reporter:datatype="bool"/>
<field reporter:label="Hold Expire Date/Time" name="expire_time" reporter:datatype="timestamp"/>
<field reporter:label="Fulfilling Library" name="fulfillment_lib" reporter:datatype="org_unit"/>
<fields oils_persist:primary="id" oils_persist:sequence="action.hold_request_id_seq">
<field reporter:label="Status" name="status" oils_persist:virtual="true" />
<field reporter:label="Capture Date/Time" name="capture_time" reporter:datatype="timestamp"/>
- <field reporter:label="Currently Targeted Copy" name="current_copy" />
+ <field reporter:label="Currently Targeted Copy" name="current_copy" reporter:datatype="link"/>
<field reporter:label="Notify by Email?" name="email_notify" reporter:datatype="bool"/>
<field reporter:label="Hold Expire Date/Time" name="expire_time" reporter:datatype="timestamp"/>
<field reporter:label="Fulfilling Library" name="fulfillment_lib" reporter:datatype="org_unit"/>
<eg-grid
id-field="id"
- features="-sort,-multisort"
- items-provider="gridDataProvider"
+ idl-class="ahopl"
+ grid-controls="gridControls"
persist-key="circ.holds.pull">
<eg-grid-menu-item handler="detail_view"
<eg-grid-action handler="grid_actions.cancel_hold"
label="[% l('Cancel Hold') %]"></eg-grid-action>
- <eg-grid-field label="[% l('Hold ID') %]" path='hold.id'></eg-grid-field>
+ <eg-grid-field name="shelving_loc" path="current_copy.location.name"
+ label="[% l('Shelving Location') %]"></eg-grid-field>
+ <eg-grid-field name="call_number_label_foo" path="call_number_label"
+ label="[% l('Call Number') %]"></eg-grid-field>
+ <eg-grid-field name="author"
+ path="current_copy.call_number.record.simple_record.author"
+ label="[% l('Author') %]"></eg-grid-field>
+ <eg-grid-field name="title"
+ path="current_copy.call_number.record.simple_record.title"
+ label="[% l('Title') %]"></eg-grid-field>
+ <eg-grid-field name="barcode" path="current_copy.barcode"
+ label="[% l('Current Copy') %]"></eg-grid-field>
+ <eg-grid-field name="parts" path="current_copy.parts.label"
+ label="[% l('Parts') %]"></eg-grid-field>
+ <eg-grid-field name="copy_status" path="current_copy.status.name"
+ label="[% l('Copy Status') %]"></eg-grid-field>
+ <eg-grid-field name="notes" path="notes.body"
+ hidden label="[% l('Hold Notes') %]"></eg-grid-field>
+ <eg-grid-field name="patron_barcode" path="usr.card.barcode"
+ hidden label="[% l('Patron Barcode') %]"></eg-grid-field>
+ <eg-grid-field name="pickup_lib_name" path="pickup_lib.name"
+ hidden label="[% l('Pickup Library') %]"></eg-grid-field>
+ <eg-grid-field name="pickup_lib_shortname" path="pickup_lib.shortname"
+ hidden label="[% l('Pickup Library (Shortname)') %]"></eg-grid-field>
+ <eg-grid-field name="request_lib_name" path="request_lib.name"
+ hidden label="[% l('Request Library') %]"></eg-grid-field>
+ <eg-grid-field name="request_lib_shortname" path="request_lib.shortname"
+ hidden label="[% l('Request Library (Shortname)') %]"></eg-grid-field>
+ <eg-grid-field name="selection_ou" path="selection_ou.shortname"
+ hidden label="[% l('Selection Locus') %]"></eg-grid-field>
+ <eg-grid-field name="sms_carrier_name" path="sms_carrier.name"
+ hidden label="[% l('SMS Carrier') %]"></eg-grid-field>
+ <eg-grid-field name="cn_prefix" path="current_copy.call_number.prefix.label"
+ hidden label="[% l('Call Number Prefix') %]"></eg-grid-field>
+ <eg-grid-field name="cn_suffix" path="current_copy.call_number.suffix.label"
+ hidden label="[% l('Call Number Suffix') %]"></eg-grid-field>
+ <eg-grid-field name="copy_location_order_position"
+ hidden label="[% l('Copy Location Order Position') %]"></eg-grid-field>
+ <eg-grid-field name="call_number_sort_key"
+ hidden label="[% l('Call Number Sort Key') %]"></eg-grid-field>
+ <eg-grid-field label="[% l('Potential Copies') %]"
+ path='potential_copies'></eg-grid-field>
+
+<!--
+ <eg-grid-field label="[% l('Hold ID') %]" path='id'></eg-grid-field>
<eg-grid-field label="[% l('Current Copy') %]"
path='hold.current_copy.barcode'>
- <a href="./cat/item/{{item.hold.current_copy().id()}}/summary" target="_self">
+ <a href="./cat/item/{{'item['current_copy.id']}}/summary" target="_self">
{{item.hold.current_copy().barcode()}}
</a>
</eg-grid-field>
<eg-grid-field path='copy.*' parent-idl-class="acp" hidden></eg-grid-field>
<eg-grid-field path='volume.*' parent-idl-class="acn" hidden></eg-grid-field>
<eg-grid-field path='mvr.*' parent-idl-class="mvr" hidden></eg-grid-field>
+-->
+
</eg-grid>
$routeProvider.otherwise({redirectTo : '/circ/holds/shelf'});
})
-.factory('holdUiSvc', function() {
- return {
- holds : [] // cache
- }
-})
.controller('HoldsShelfCtrl',
['$scope','$q','$routeParams','$window','$location','egCore','egHolds','egHoldGridActions','egCirc','egGridDataProvider',
}])
.controller('HoldsPullListCtrl',
- ['$scope','$q','$routeParams','$window','$location','egCore','egHolds','egCirc','egGridDataProvider','egHoldGridActions','holdUiSvc',
-function($scope , $q , $routeParams , $window , $location , egCore , egHolds , egCirc , egGridDataProvider , egHoldGridActions , holdUiSvc) {
+ ['$scope','$q','$routeParams','$window','$location','egCore','egHolds','egCirc','egHoldGridActions',
+function($scope , $q , $routeParams , $window , $location , egCore , egHolds , egCirc , egHoldGridActions) {
$scope.detail_hold_id = $routeParams.hold_id;
- var provider = egGridDataProvider.instance({});
- $scope.gridDataProvider = provider;
+ $scope.gridControls = {
+ setQuery : function() {
+ return {pickup_lib : egCore.auth.user().ws_ou()}
+ },
+ setSort : function() {
+ return ['copy_location_order_position','call_number_sort_key']
+ }
+ }
$scope.grid_actions = egHoldGridActions;
$scope.grid_actions.refresh = function() {
- holdUiSvc.holds = [];
- provider.refresh();
+ $scope.gridControls.refresh();
}
- provider.get = function(offset, count) {
-
- if (holdUiSvc.holds[offset]) {
- return provider.arrayNotifier(holdUiSvc.holds, offset, count);
- }
-
- var deferred = $q.defer();
- var recv_index = 0;
-
- // fetch the IDs
- egCore.net.request(
- 'open-ils.circ',
- 'open-ils.circ.hold_pull_list.fleshed.stream',
- egCore.auth.token(), count, offset
- ).then(
- deferred.resolve, null,
- function(hold_data) {
- egHolds.local_flesh(hold_data);
- holdUiSvc.holds[offset + recv_index++] = hold_data;
- deferred.notify(hold_data);
- }
- );
-
- return deferred.promise;
- }
+ // TODO: update the rest of the func for ahopl
$scope.detail_view = function(action, user_data, items) {
if (h = items[0]) {
var part = path_parts[path_idx];
idl_field = class_obj.field_map[part];
- if (idl_field && idl_field['class'] && (
- idl_field.datatype == 'link' ||
- idl_field.datatype == 'org_unit')) {
- class_obj = egCore.idl.classes[idl_field['class']];
+ if (idl_field) {
+ if (idl_field['class'] && (
+ idl_field.datatype == 'link' ||
+ idl_field.datatype == 'org_unit')) {
+ class_obj = egCore.idl.classes[idl_field['class']];
+ }
+ } else {
+ return null;
}
- // else, path is not in the IDL, which is fine
}
- if (!idl_field) return null;
-
return {
idl_field :idl_field,
idl_class : class_obj