From a53fc78d9880cc11e8f5b480085bfe2568dfbfb8 Mon Sep 17 00:00:00 2001 From: phasefx Date: Wed, 13 Oct 2010 08:31:55 +0000 Subject: [PATCH] Backport new record merge interface and some batch MARC edit entrypoints from trunk, and example eg_vhost.conf. r18255, r18287, r18288, r18289, r18294 git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6@18306 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/examples/apache/eg_vhost.conf | 11 +++ Open-ILS/web/opac/locale/en-US/lang.dtd | 11 +++ .../staff_client/chrome/content/main/constants.js | 2 + .../xul/staff_client/chrome/content/main/menu.js | 12 +++ .../chrome/content/main/menu_frame_menus.xul | 2 + .../xul/staff_client/chrome/content/util/deck.js | 8 +- .../staff_client/chrome/content/util/widgets.js | 7 ++ .../chrome/locale/en-US/offline.properties | 1 + .../xul/staff_client/server/cat/record_buckets.js | 103 ++++++++------------- .../xul/staff_client/server/cat/record_buckets.xul | 4 + .../server/cat/record_buckets_overlay.xul | 1 + .../server/locale/en-US/cat.properties | 10 -- 12 files changed, 92 insertions(+), 80 deletions(-) diff --git a/Open-ILS/examples/apache/eg_vhost.conf b/Open-ILS/examples/apache/eg_vhost.conf index 73c059d910..dc3f9cbe8d 100644 --- a/Open-ILS/examples/apache/eg_vhost.conf +++ b/Open-ILS/examples/apache/eg_vhost.conf @@ -415,6 +415,17 @@ RewriteRule - - [E=locale:en-US] [L] allow from all + + SetHandler perl-script + PerlSetVar OILSProxyTitle "Batch Update Login" + PerlSetVar OILSProxyDescription "Please log in to update records in batch" + PerlSetVar OILSProxyPermissions "STAFF_LOGIN" + PerlHandler OpenILS::WWW::Proxy OpenILS::WWW::TemplateBatchBibUpdate + PerlSendHeader On + Options +ExecCGI + allow from all + + # ---------------------------------------------------------------------------------- # Conify - next-generation Evergreen administration interface # ---------------------------------------------------------------------------------- diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd index 6719f0b339..d74fde9d57 100644 --- a/Open-ILS/web/opac/locale/en-US/lang.dtd +++ b/Open-ILS/web/opac/locale/en-US/lang.dtd @@ -292,6 +292,13 @@ + + + + + + + @@ -713,6 +720,8 @@ + + @@ -2250,6 +2259,8 @@ + + diff --git a/Open-ILS/xul/staff_client/chrome/content/main/constants.js b/Open-ILS/xul/staff_client/chrome/content/main/constants.js index e10a3c75e8..1a40b3fb71 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/constants.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/constants.js @@ -265,6 +265,7 @@ const urls = { 'isodate_lib_remote' : '/opac/common/js/DP_DateExtensions.js', 'isodate_lib_local' : 'chrome://open_ils_staff_client/content/OpenILS/util/DP_DateExtensions.js', 'xsl_marc2html' : '/opac/extras/xsl/oilsMARC21slim2HTML.xsl', + 'MARC_BATCH_EDIT' : '/opac/extras/merge_template/', 'AUDIO_GOOD_SOUND' : '/xul/server/skin/media/audio/bonus.wav', 'AUDIO_BAD_SOUND' : '/xul/server/skin/media/audio/question.wav', @@ -274,6 +275,7 @@ const urls = { 'XUL_AUTH_SIMPLE' : '/xul/server/main/simple_auth.xul', 'XUL_BIB_BRIEF' : '/xul/server/cat/bib_brief.xul', + 'XUL_BIB_BRIEF_VERTICAL' : '/xul/server/cat/bib_brief_vertical.xul', 'XUL_BROWSER' : 'chrome://open_ils_staff_client/content/util/browser.xul', 'XUL_CHECKIN' : '/xul/server/circ/checkin.xul', 'XUL_CHECKOUT' : '/xul/server/circ/checkout.xul', diff --git a/Open-ILS/xul/staff_client/chrome/content/main/menu.js b/Open-ILS/xul/staff_client/chrome/content/main/menu.js index 0089101842..b69282e55d 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/menu.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/menu.js @@ -802,6 +802,18 @@ main.menu.prototype = { } ], + 'cmd_marc_batch_edit' : [ + ['oncommand'], + function() { + obj.set_tab( + obj.url_prefix(urls.MARC_BATCH_EDIT),{ + 'tab_name' : offlineStrings.getString('menu.cmd_marc_batch_edit.tab') + }, + {} + ); + } + ], + /* Admin menu */ 'cmd_change_session' : [ ['oncommand'], diff --git a/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul b/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul index e3daa503cc..95bb241ba2 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul +++ b/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul @@ -44,6 +44,7 @@ + @@ -228,6 +229,7 @@ + diff --git a/Open-ILS/xul/staff_client/chrome/content/util/deck.js b/Open-ILS/xul/staff_client/chrome/content/util/deck.js index e7427baf58..d046d02baf 100644 --- a/Open-ILS/xul/staff_client/chrome/content/util/deck.js +++ b/Open-ILS/xul/staff_client/chrome/content/util/deck.js @@ -1,19 +1,19 @@ dump('entering util/deck.js\n'); if (typeof util == 'undefined') util = {}; -util.deck = function (id) { +util.deck = function (id_or_node) { - this.node = document.getElementById(id); + this.node = typeof id_or_node == 'object' ? id_or_node : document.getElementById(id_or_node); JSAN.use('util.error'); this.error = new util.error(); if (!this.node) { - var error = 'util.deck: Could not find element ' + id; + var error = 'util.deck: Could not find element ' + id_or_node; this.error.sdump('D_ERROR',error); throw(error); } if (this.node.nodeName != 'deck') { - var error = 'util.deck: ' + id + 'is not a deck' + "\nIt's a " + this.node.nodeName; + var error = 'util.deck: ' + id_or_node + 'is not a deck' + "\nIt's a " + this.node.nodeName; this.error.sdump('D_ERROR',error); throw(error); } diff --git a/Open-ILS/xul/staff_client/chrome/content/util/widgets.js b/Open-ILS/xul/staff_client/chrome/content/util/widgets.js index d205acae46..27577da8fb 100644 --- a/Open-ILS/xul/staff_client/chrome/content/util/widgets.js +++ b/Open-ILS/xul/staff_client/chrome/content/util/widgets.js @@ -27,6 +27,7 @@ util.widgets.EXPORT_OK = [ 'set_text', 'save_attributes', 'load_attributes', + 'find_descendants_by_name' ]; util.widgets.EXPORT_TAGS = { ':all' : util.widgets.EXPORT_OK }; @@ -381,4 +382,10 @@ util.widgets.load_attributes = function (file) { } } +util.widgets.find_descendants_by_name = function(top_node,name) { + top_node = util.widgets.get(top_node); + if (!top_node) { return []; } + return top_node.getElementsByAttribute('name',name); +} + dump('exiting util/widgets.js\n'); diff --git a/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties b/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties index c1053e092f..33c695103a 100644 --- a/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties +++ b/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties @@ -112,6 +112,7 @@ menu.cmd_browse_holds_shelf.tab=Holds Shelf menu.cmd_browse_hold_pull_list.tab=On Shelf Pull List menu.cmd_local_admin.tab=Local Administration menu.cmd_open_vandelay.tab=MARC Import/Export +menu.cmd_marc_batch_edit.tab=MARC Batch Edit menu.cmd_open_conify.tab=Server Settings menu.cmd_retrieve_last_patron.session.error=No patron visited yet this session. menu.cmd_retrieve_last_record.session.error=No record visited yet this session. diff --git a/Open-ILS/xul/staff_client/server/cat/record_buckets.js b/Open-ILS/xul/staff_client/server/cat/record_buckets.js index 21abc2aaef..08438bf8b4 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets.js +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets.js @@ -341,6 +341,7 @@ cat.record_buckets.prototype = { obj.controller.view.cmd_merge_records.setAttribute('disabled','true'); obj.controller.view.cmd_delete_records.setAttribute('disabled','true'); obj.controller.view.cmd_sel_opac.setAttribute('disabled','true'); + obj.controller.view.cmd_marc_batch_edit.setAttribute('disabled','true'); obj.controller.view.record_buckets_list_actions.disabled = true; var bucket = obj.network.simple_request( 'BUCKET_FLESH', @@ -361,6 +362,7 @@ cat.record_buckets.prototype = { obj.controller.view.cmd_merge_records.setAttribute('disabled','false'); obj.controller.view.cmd_delete_records.setAttribute('disabled','false'); obj.controller.view.cmd_sel_opac.setAttribute('disabled','false'); + obj.controller.view.cmd_marc_batch_edit.setAttribute('disabled','false'); obj.controller.view.record_buckets_list_actions.disabled = false; var x = document.getElementById('info_box'); @@ -550,6 +552,7 @@ cat.record_buckets.prototype = { obj.controller.view.cmd_merge_records.setAttribute('disabled','true'); obj.controller.view.cmd_delete_records.setAttribute('disabled','true'); obj.controller.view.cmd_sel_opac.setAttribute('disabled','true'); + obj.controller.view.cmd_marc_batch_edit.setAttribute('disabled','true'); obj.controller.view.record_buckets_list_actions.disabled = true; obj.controller.render('record_buckets_menulist_placeholder'); setTimeout( @@ -650,75 +653,24 @@ cat.record_buckets.prototype = { } ); - netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite'); - var top_xml = ''; - top_xml += '' + $("catStrings").getString('staff.cat.record_buckets.merge_records.merge_lead') + ''; - top_xml += ''; - top_xml += '