From: miker Date: Tue, 8 Apr 2008 20:20:21 +0000 (+0000) Subject: start adding org_utils.js reimplementation X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=365662d188f792c4d52f4fda2b96a3532e23ede3;p=Evergreen.git start adding org_utils.js reimplementation git-svn-id: svn://svn.open-ils.org/ILS/branches/dojo-admin@9271 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/conify/js/fieldmapper/Fieldmapper.js b/Open-ILS/web/conify/js/fieldmapper/Fieldmapper.js index 6859a12200..06dfa52ecf 100644 --- a/Open-ILS/web/conify/js/fieldmapper/Fieldmapper.js +++ b/Open-ILS/web/conify/js/fieldmapper/Fieldmapper.js @@ -8,6 +8,7 @@ if(!dojo._hasResource["fieldmapper.Fieldmapper"]){ dojo._hasResource["fieldmapper.Fieldmapper"] = true; dojo.provide("fieldmapper.Fieldmapper"); + //dojo.require("opensrf.OpenSRF"); dojo.declare( "fieldmapper.Fieldmapper", null, { @@ -57,11 +58,51 @@ if(!dojo._hasResource["fieldmapper.Fieldmapper"]){ ischanged : function(n) { if(arguments.length == 1) this.a[1] =n; return this.a[1]; }, isdeleted : function(n) { if(arguments.length == 1) this.a[2] =n; return this.a[2]; } + _request : function ( meth, staff, params ) { + var ses = fieldmapper.OpenSRF.session_cache[meth[0]]; + if (!ses) { + ses = fieldmapper.OpenSRF.session_cache[meth[0]] = new OpenSRF.ClientSession( meth[0] ); + } + + if (!ses) return null; + + var result = null; + + var args = {}; + if (dojo.isObject(params)) { + args = params; + } else { + + if (dojo.isArray(params)) { + args.params = params; + } else { + args.params = arguments.splice(1, arguments.length - 1); + } + + args.timeout = 10; + args.error = function (r) { throw 'Error encountered! ' + r }; + args.oncomplete = function (r) { + var x = r.recv(); + if (x) result = x.content(); + }; + } + + args.method = meth[1]; + if (staff && meth[2]) args.method += '.staff'; + + ses.request(args).send(); + + return result; + }, + + standardRequest : function (meth, params) { return this._request(meth, false, params) }, + staffRequest : function (meth, params) { return this._request(meth, true, params) } + }); for( var cl in fmclasses ) { - dojo.provide( cl ); - dojo.declare( cl , fieldmapper.Fieldmapper, { + dojo.provide( 'fieldmapper.' + cl ); + dojo.declare( 'fieldmapper.' + cl , fieldmapper.Fieldmapper, { constructor : function () { if (!this.a) this.a = []; this.classname = this.declaredClass; @@ -73,8 +114,107 @@ if(!dojo._hasResource["fieldmapper.Fieldmapper"]){ } } }); + window[cl] = fieldmapper[cl]; // alias into place } + + fieldmapper.OpenSRF.session_cache = {}; + fieldmapper.OpenSRF.methods = { + /* ---------------------------------------------------------------------------- */ + /* Methods are defined as [ service, method, have_staff ] + An optional 3rd component is when a method is followed by true, such methods + have a staff counterpart and should have ".staff" appended to the method + before the method is called when in XUL mode */ + + SEARCH_MRS : ['open-ils.search','open-ils.search.metabib.multiclass',true], + SEARCH_RS : ['open-ils.search','open-ils.search.biblio.multiclass',true], + SEARCH_MRS_QUERY : ['open-ils.search','open-ils.search.metabib.multiclass.query',true], + SEARCH_RS_QUERY : ['open-ils.search','open-ils.search.biblio.multiclass.query',true], + FETCH_SEARCH_RIDS : ['open-ils.search','open-ils.search.biblio.record.class.search',true], + FETCH_MRMODS : ['open-ils.search','open-ils.search.biblio.metarecord.mods_slim.retrieve'], + FETCH_MODS_FROM_COPY : ['open-ils.search','open-ils.search.biblio.mods_from_copy'], + FETCH_MR_COPY_COUNTS : ['open-ils.search','open-ils.search.biblio.metarecord.copy_count',true], + FETCH_RIDS : ['open-ils.search','open-ils.search.biblio.metarecord_to_records',true], + FETCH_RMODS : ['open-ils.search','open-ils.search.biblio.record.mods_slim.retrieve'], + FETCH_R_COPY_COUNTS : ['open-ils.search','open-ils.search.biblio.record.copy_count',true], + FETCH_FLESHED_USER : ['open-ils.actor','open-ils.actor.user.fleshed.retrieve'], + FETCH_SESSION : ['open-ils.auth','open-ils.auth.session.retrieve'], + LOGIN_INIT : ['open-ils.auth','open-ils.auth.authenticate.init'], + LOGIN_COMPLETE : ['open-ils.auth','open-ils.auth.authenticate.complete'], + LOGIN_DELETE : ['open-ils.auth','open-ils.auth.session.delete'], + FETCH_USER_PREFS : ['open-ils.actor','open-ils.actor.patron.settings.retrieve'], + UPDATE_USER_PREFS : ['open-ils.actor','open-ils.actor.patron.settings.update'], + FETCH_COPY_STATUSES : ['open-ils.search','open-ils.search.config.copy_status.retrieve.all'], + FETCH_COPY_COUNTS_SUMMARY : ['open-ils.search','open-ils.search.biblio.copy_counts.summary.retrieve'], + FETCH_MARC_HTML : ['open-ils.search','open-ils.search.biblio.record.html'], + FETCH_CHECKED_OUT_SUM : ['open-ils.actor','open-ils.actor.user.checked_out'], + FETCH_HOLDS : ['open-ils.circ','open-ils.circ.holds.retrieve'], + FETCH_FINES_SUMMARY : ['open-ils.actor','open-ils.actor.user.fines.summary'], + FETCH_TRANSACTIONS : ['open-ils.actor','open-ils.actor.user.transactions.have_charge.fleshed'], + FETCH_MONEY_BILLING : ['open-ils.circ','open-ils.circ.money.billing.retrieve.all'], + FETCH_CROSSREF : ['open-ils.search','open-ils.search.authority.crossref'], + FETCH_CROSSREF_BATCH : ['open-ils.search','open-ils.search.authority.crossref.batch'], + CREATE_HOLD : ['open-ils.circ','open-ils.circ.holds.create'], + CREATE_HOLD_OVERRIDE : ['open-ils.circ','open-ils.circ.holds.create.override'], + CANCEL_HOLD : ['open-ils.circ','open-ils.circ.hold.cancel'], + UPDATE_USERNAME : ['open-ils.actor','open-ils.actor.user.username.update'], + UPDATE_PASSWORD : ['open-ils.actor','open-ils.actor.user.password.update'], + UPDATE_EMAIL : ['open-ils.actor','open-ils.actor.user.email.update'], + RENEW_CIRC : ['open-ils.circ','open-ils.circ.renew'], + CHECK_SPELL : ['open-ils.search','open-ils.search.spellcheck'], + FETCH_REVIEWS : ['open-ils.search','open-ils.search.added_content.review.retrieve.all'], + FETCH_TOC : ['open-ils.search','open-ils.search.added_content.toc.retrieve'], + FETCH_ACONT_SUMMARY : ['open-ils.search','open-ils.search.added_content.summary.retrieve'], + FETCH_USER_BYBARCODE : ['open-ils.actor','open-ils.actor.user.fleshed.retrieve_by_barcode'], + FETCH_ADV_MARC_MRIDS : ['open-ils.search','open-ils.search.biblio.marc',true], + FETCH_ADV_ISBN_RIDS : ['open-ils.search','open-ils.search.biblio.isbn'], + FETCH_ADV_ISSN_RIDS : ['open-ils.search','open-ils.search.biblio.issn'], + FETCH_ADV_TCN_RIDS : ['open-ils.search','open-ils.search.biblio.tcn'], + FETCH_CNBROWSE : ['open-ils.search','open-ils.search.callnumber.browse'], + FETCH_CONTAINERS : ['open-ils.actor','open-ils.actor.container.retrieve_by_class'], + FETCH_CONTAINERS : ['open-ils.actor','open-ils.actor.container.retrieve_by_class'], + CREATE_CONTAINER : ['open-ils.actor','open-ils.actor.container.create'], + DELETE_CONTAINER : ['open-ils.actor','open-ils.actor.container.full_delete'], + CREATE_CONTAINER_ITEM : ['open-ils.actor','open-ils.actor.container.item.create'], + DELETE_CONTAINER_ITEM : ['open-ils.actor','open-ils.actor.container.item.delete'], + FLESH_CONTAINER : ['open-ils.actor','open-ils.actor.container.flesh'], + FLESH_PUBLIC_CONTAINER : ['open-ils.actor','open-ils.actor.container.public.flesh'], + UPDATE_CONTAINER : ['open-ils.actor','open-ils.actor.container.update'], + FETCH_COPY : ['open-ils.search','open-ils.search.asset.copy.retrieve'], + FETCH_FLESHED_COPY : ['open-ils.search','open-ils.search.asset.copy.fleshed2.retrieve'], + CHECK_HOLD_POSSIBLE : ['open-ils.circ','open-ils.circ.title_hold.is_possible'], + UPDATE_HOLD : ['open-ils.circ','open-ils.circ.hold.update'], + FETCH_COPIES_FROM_VOLUME : ['open-ils.search','open-ils.search.asset.copy.retrieve_by_cn_label',true], + FETCH_VOLUME_BY_INFO : ['open-ils.search','open-ils.search.call_number.retrieve_by_info'], /* XXX staff method? */ + FETCH_VOLUME : ['open-ils.search','open-ils.search.asset.call_number.retrieve'], + FETCH_COPY_LOCATIONS : ['open-ils.circ','open-ils.circ.copy_location.retrieve.all'], + FETCH_COPY_NOTES : ['open-ils.circ','open-ils.circ.copy_note.retrieve.all'], + FETCH_COPY_STAT_CATS : ['open-ils.circ','open-ils.circ.asset.stat_cat_entries.fleshed.retrieve_by_copy'], + FETCH_LIT_FORMS : ['open-ils.search','open-ils.search.biblio.lit_form_map.retrieve.all'], + FETCH_ITEM_FORMS : ['open-ils.search','open-ils.search.biblio.item_form_map.retrieve.all'], + FETCH_ITEM_TYPES : ['open-ils.search','open-ils.search.biblio.item_type_map.retrieve.all'], + FETCH_AUDIENCES : ['open-ils.search','open-ils.search.biblio.audience_map.retrieve.all'], + FETCH_HOLD_STATUS : ['open-ils.circ','open-ils.circ.hold.status.retrieve'], + FETCH_NON_CAT_CIRCS : ['open-ils.circ','open-ils.circ.open_non_cataloged_circulation.user'], + FETCH_NON_CAT_CIRC : ['open-ils.circ','open-ils.circ.non_cataloged_circulation.retrieve'], + FETCH_NON_CAT_TYPES = "open-ils.circ','open-ils.circ.non_cat_types.retrieve.all'], + FETCH_BRE : ['open-ils.search','open-ils.search.biblio.record_entry.slim.retrieve'], + CHECK_USERNAME : ['open-ils.actor','open-ils.actor.username.exists'], + FETCH_CIRC_BY_ID : ['open-ils.circ','open-ils.circ.retrieve'], + FETCH_MR_DESCRIPTORS : ['open-ils.search','open-ils.search.metabib.record_to_descriptors'], + FETCH_HIGHEST_PERM_ORG : ['open-ils.actor','open-ils.actor.user.perm.highest_org.batch'], + FETCH_USER_NOTES : ['open-ils.actor','open-ils.actor.note.retrieve.all'], + FETCH_ORG_BY_SHORTNAME : ['open-ils.actor','open-ils.actor.org_unit.retrieve_by_shorname'], + FETCH_BIB_ID_BY_BARCODE : ['open-ils.search','open-ils.search.bib_id.by_barcode'], + FETCH_ORG_SETTING : ['open-ils.actor','open-ils.actor.ou_setting.ancestor_default'] + }; + + fieldmapper.aou.prototype.fetchOrgSetting = function (name) { + return this.standardRequest( fieldmapper.OpenSRF.methods.FETCH_ORG_SETTING, name ); + } + + } +