+++ /dev/null
-dojo.require('openils.Util');
-dojo.require('openils.User');
-dojo.require('openils.widget.AutoGrid');
-dojo.require('fieldmapper.OrgUtils');
-dojo.require('openils.widget.OrgUnitFilteringSelect');
-dojo.require('openils.widget.EditPane');
-dojo.require("dijit.layout.StackContainer");
-dojo.require('openils.PermaCrud');
-dojo.requireLocalization("openils.acq", "acq");
-
-var contextOrg;
-var aur_obj;
-var localeStrings = dojo.i18n.getLocalization('openils.acq', 'acq');
-
-function setup() {
- if(reqId) {
- drawRequest();
- } else {
- drawList();
- }
-}
-
-function drawRequest() {
- var pcrud = new openils.PermaCrud({ authtoken : openils.User.authtoken });
- aur_obj = pcrud.retrieve('aur',reqId);
-
- // hide the grid and the context selector
- dijit.byId('stackContainer').forward();
-
- // toggle the View Picklist/Add to Picklist button label
- if (aur_obj.lineitem()) {
- openils.Util.hide( 'add_to_picklist' );
- openils.Util.show( 'view_picklist' );
- } else {
- openils.Util.hide( 'view_picklist' );
- openils.Util.show( 'add_to_picklist' );
- }
-
- // draw a detail page for a particular request
- var div = document.getElementById('detail_content_pane');
- while (div.lastChild) { div.removeChild( div.lastChild ); }
- var pane = new openils.widget.EditPane({
- fmObject : aur_obj,
- readOnly : true
- });
- pane.domNode = div;
- pane.hideActionButtons = true;
- pane.startup();
-
- // including ability to add request to a picklist
- // and to "reject" it (aka apply a cancel reason)
-
- dojo.byId("acq-ur-cancel-reason").innerHTML = '';
- var widget = new openils.widget.AutoFieldWidget({
- "fmField": "cancel_reason",
- "fmClass": "aur",
- "parentNode": dojo.byId("acq-ur-cancel-reason"),
- "orgLimitPerms": ["CREATE_PURCHASE_REQUEST"],
- "forceSync": true
- });
-
- widget.build(
- function(w, ww) {
- acqUrCancelReasonSubmit.onClick = function() {
- if (w.attr("value")) {
- if (confirm( localeStrings.UR_CANCEL_CONFIRM )) {
- fieldmapper.standardRequest(
- [ 'open-ils.acq', 'open-ils.acq.user_request.cancel.batch' ],
- { async: true,
- params: [openils.User.authtoken, [reqId], w.attr("value")],
- oncomplete: function(r) {
- location.href = location.href; // kludge to reload the interface
- }
- }
- );
- }
- }
- };
- }
- );
-}
-
-function fooPicklist() {
- if (aur_obj.lineitem()) {
- viewPicklist();
- } else {
- addToPicklist();
- }
-}
-
-function viewPicklist() {
- var lineitem = fieldmapper.standardRequest(
- [ 'open-ils.acq', 'open-ils.acq.lineitem.retrieve.authoritative' ],
- {
- params: [openils.User.authtoken, aur_obj.lineitem()]
- }
- );
- location.href = oilsBasePath + "/acq/picklist/view/" + lineitem.picklist();
-}
-
-function fooPicklist() {
- if (aur_obj.lineitem()) {
- viewPicklist();
- } else {
- addToPicklist();
- }
-}
-
-function viewPicklist() {
- var lineitem = fieldmapper.standardRequest(
- [ 'open-ils.acq', 'open-ils.acq.lineitem.retrieve' ],
- {
- params: [openils.User.authtoken, aur_obj.lineitem()]
- }
- );
- location.href = oilsBasePath + "/acq/picklist/view/" + lineitem.picklist();
-}
-
-function addToPicklist() {
- // reqId, from detail view
- location.href = oilsBasePath + "/acq/picklist/brief_record?ur=" + reqId + "&prepop=" + encodeURIComponent(js2JSON({
- "1": aur_obj.title() || aur_obj.article_title() || aur_obj.volume(),
- "2": aur_obj.author(),
- "5": aur_obj.isxn(),
- "9": aur_obj.publisher(),
- "10": aur_obj.pubdate()
- }));
-}
-
-function setNoHold() {
- // reqId, from detail view
- fieldmapper.standardRequest(
- [ 'open-ils.acq', 'open-ils.acq.user_request.set_no_hold.batch' ],
- { async: true,
- params: [openils.User.authtoken, [reqId]],
- oncomplete: function(r) {
- location.href = location.href; // kludge to reload the interface
- }
- }
- );
-}
-
-// format the title data as id:title
-function getTitle(idx, item) {
- if(item) {
- return this.grid.store.getValue(item, 'id') + ':' +
- this.grid.store.getValue(item, 'title');
- }
- return '';
-}
-
-// turn id:title into a url
-function formatTitle(value) {
- if(value) {
- var parts = value.split(/:/);
- return '<a href="' + oilsBasePath +
- '/acq/picklist/user_request/' + parts[0] + '">' + parts[1] + '</a>';
- }
-}
-
-function drawList() {
- buildGrid();
-
- var connect = function() {
- dojo.connect(contextOrgSelector, 'onChange',
- function() {
- contextOrg = this.attr('value');
- rGrid.resetStore();
- buildGrid();
- }
- );
- };
-
- new openils.User().buildPermOrgSelector(
- 'CREATE_PICKLIST', contextOrgSelector, null, connect);
-}
-
-function buildGrid() {
-
- if(contextOrg == null)
- contextOrg = openils.User.user.ws_ou();
-
- rGrid.loadAll(
- { order_by : {aur : 'request_date'},
- join : 'au'
- },
- {
- cancel_reason : null,
- '+au' : {
- home_ou : fieldmapper.aou.descendantNodeList(contextOrg).map(
- function(item) { return item.id(); })
- }
- }
- );
-}
-
-openils.Util.addOnLoad(setup);
-
-