[open-ils-commits] r18306 - in branches/rel_1_6/Open-ILS: examples/apache web/opac/locale/en-US xul/staff_client/chrome/content/main xul/staff_client/chrome/content/util xul/staff_client/chrome/locale/en-US xul/staff_client/server/cat xul/staff_client/server/locale/en-US (phasefx)
svn at svn.open-ils.org
svn at svn.open-ils.org
Wed Oct 13 04:32:01 EDT 2010
Author: phasefx
Date: 2010-10-13 04:31:55 -0400 (Wed, 13 Oct 2010)
New Revision: 18306
Modified:
branches/rel_1_6/Open-ILS/examples/apache/eg_vhost.conf
branches/rel_1_6/Open-ILS/web/opac/locale/en-US/lang.dtd
branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/constants.js
branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu.js
branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul
branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/deck.js
branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/widgets.js
branches/rel_1_6/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties
branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.js
branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.xul
branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul
branches/rel_1_6/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties
Log:
Backport new record merge interface and some batch MARC edit entrypoints from trunk, and example eg_vhost.conf. r18255, r18287, r18288, r18289, r18294
Modified: branches/rel_1_6/Open-ILS/examples/apache/eg_vhost.conf
===================================================================
--- branches/rel_1_6/Open-ILS/examples/apache/eg_vhost.conf 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/examples/apache/eg_vhost.conf 2010-10-13 08:31:55 UTC (rev 18306)
@@ -415,6 +415,17 @@
allow from all
</Location>
+<Location /opac/extras/merge_template>
+ 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
+</Location>
+
# ----------------------------------------------------------------------------------
# Conify - next-generation Evergreen administration interface
# ----------------------------------------------------------------------------------
Modified: branches/rel_1_6/Open-ILS/web/opac/locale/en-US/lang.dtd
===================================================================
--- branches/rel_1_6/Open-ILS/web/opac/locale/en-US/lang.dtd 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/web/opac/locale/en-US/lang.dtd 2010-10-13 08:31:55 UTC (rev 18306)
@@ -292,6 +292,13 @@
<!ENTITY staff.cat.popup.edit.record.window.key "">
<!ENTITY staff.cat.popup.edit_record.tab "Edit Record (Tab)">
<!ENTITY staff.cat.popup.edit_record.window "Edit Record (Window)">
+<!ENTITY staff.cat.record_buckets.merge_records.merge_lead "Merge these records? (Select the 'lead' record first)">
+<!ENTITY staff.cat.record_buckets.merge_records.button.label "Merge">
+<!ENTITY staff.cat.record_buckets.merge_records.button.accesskey "M">
+<!ENTITY staff.cat.record_buckets.merge_records.cancel_button.label "Cancel">
+<!ENTITY staff.cat.record_buckets.merge_records.cancel_button.accesskey "C">
+<!ENTITY staff.cat.record_buckets.merge_records.lead "Lead Record?">
+<!ENTITY staff.cat.record_buckets.merge_records.remove_from_consideration "Remove from consideration?">
<!ENTITY staff.cat.search_advanced "Advanced">
<!ENTITY staff.cat.search_advanced.key "V">
<!ENTITY staff.cat.search_all "Keyword">
@@ -713,6 +720,8 @@
<!ENTITY staff.main.menu.cat.edit_user_buckets.label "Manage User Buckets">
<!ENTITY staff.main.menu.cat.key "a">
<!ENTITY staff.main.menu.cat.label "Cataloging">
+<!ENTITY staff.main.menu.cat.marc_batch_edit.label "MARC Batch Edit">
+<!ENTITY staff.main.menu.cat.marc_batch_edit.accesskey "E">
<!ENTITY staff.main.menu.cat.retrieve_last_record.accesskey "L">
<!ENTITY staff.main.menu.cat.retrieve_last_record.label "Retrieve Last Record">
<!ENTITY staff.main.menu.cat.search_tcn.accesskey "T">
@@ -2250,6 +2259,8 @@
<!ENTITY staff.cat.record_buckets_overlay.menuitem.save_columns2.label "Save List Configuration">
<!ENTITY staff.cat.record_buckets_overlay.box.label "Batch:">
<!ENTITY staff.cat.record_buckets_overlay.sel_opac.label "Show All in Catalog">
+<!ENTITY staff.cat.record_buckets_overlay.marc_batch_edit.label "MARC Batch Edit">
+<!ENTITY staff.cat.record_buckets_overlay.marc_batch_edit.accesskey "">
<!ENTITY staff.cat.record_buckets_overlay.del_records.label "Delete All Records">
<!ENTITY staff.cat.record_buckets_overlay.merge_records.label "Merge All Records">
<!ENTITY staff.cat.record_buckets_overlay.export_records.label "Export All Records">
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/constants.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/constants.js 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/constants.js 2010-10-13 08:31:55 UTC (rev 18306)
@@ -265,6 +265,7 @@
'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 @@
'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',
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu.js 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu.js 2010-10-13 08:31:55 UTC (rev 18306)
@@ -802,6 +802,18 @@
}
],
+ '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'],
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul 2010-10-13 08:31:55 UTC (rev 18306)
@@ -44,6 +44,7 @@
<command id="cmd_print_list_template_edit" />
<command id="cmd_z39_50_import" />
<command id="cmd_create_new_marc_book" />
+ <command id="cmd_marc_batch_edit" label="&staff.main.menu.cat.marc_batch_edit.label;" accesskey="&staff.main.menu.cat.marc_batch_edit.accesskey;"/>
<command id="cmd_replace_barcode" />
<command id="cmd_reprint" />
<command id="cmd_retrieve_last_patron" />
@@ -228,6 +229,7 @@
<menuitem label="&staff.main.menu.cat.create_marc.label;" accesskey="&staff.main.menu.cat.create_marc.accesskey;" command="cmd_create_marc"/>
<menuitem label="&staff.main.menu.cat.z39_50_import.label;" accesskey="&staff.main.menu.cat.z39_50_import.accesskey;" command="cmd_z39_50_import"/>
<menuitem label="&staff.main.menu.cat.vandelay.label;" command="cmd_open_vandelay"/>
+ <menuitem command="cmd_marc_batch_edit"/>
<menuseparator />
<menuitem label="&staff.main.menu.replace_barcode.label;" command="cmd_replace_barcode"/>
<menuitem label="&staff.main.menu.cat.retrieve_last_record.label;" accesskey="&staff.main.menu.cat.retrieve_last_record.accesskey;" command="cmd_retrieve_last_record" key="retrieve_last_record_key"/>
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/deck.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/deck.js 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/deck.js 2010-10-13 08:31:55 UTC (rev 18306)
@@ -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);
}
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/widgets.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/widgets.js 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/content/util/widgets.js 2010-10-13 08:31:55 UTC (rev 18306)
@@ -27,6 +27,7 @@
'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.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');
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties 2010-10-13 08:31:55 UTC (rev 18306)
@@ -112,6 +112,7 @@
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.
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.js
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.js 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.js 2010-10-13 08:31:55 UTC (rev 18306)
@@ -341,6 +341,7 @@
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 @@
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 @@
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 @@
}
);
- netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserWrite');
- var top_xml = '<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" flex="1" >';
- top_xml += '<description>' + $("catStrings").getString('staff.cat.record_buckets.merge_records.merge_lead') + '</description>';
- top_xml += '<hbox>';
- top_xml += '<button id="lead" disabled="true" label="'
- + $("catStrings").getString('staff.cat.record_buckets.merge_records.button.label') + '" name="fancy_submit"/>';
- top_xml += '<button label="' + $("catStrings").getString('staff.cat.record_buckets.merge_records.cancel_button.label') +'" accesskey="'
- + $("catStrings").getString('staff.cat.record_buckets.merge_records.cancel_button.accesskey') +'" name="fancy_cancel"/></hbox></vbox>';
-
- var xml = '<form xmlns="http://www.w3.org/1999/xhtml">';
- xml += '<table><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- xml += '<td><input value="' + $("catStrings").getString('staff.cat.record_buckets.merge_records.lead')
- xml += '" id="record_' + record_ids[i] + '" type="radio" name="lead"';
- xml += ' onclick="' + "try { var x = $('lead'); x.setAttribute('value',";
- xml += record_ids[i] + '); x.disabled = false; } catch(E) { alert(E); }">';
- xml += '</input>' + $("catStrings").getFormattedString('staff.cat.record_buckets.merge_records.lead_record_number',[record_ids[i]]) + '</td>';
- }
- xml += '</tr><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- xml += '<td nowrap="nowrap"><iframe src="' + urls.XUL_BIB_BRIEF;
- xml += '?docid=' + record_ids[i] + '"/></td>';
- }
- xml += '</tr><tr valign="top">';
- for (var i = 0; i < record_ids.length; i++) {
- xml += '<td nowrap="nowrap"><iframe style="min-height: 1000px; min-width: 300px;" flex="1" src="' + urls.XUL_MARC_VIEW + '?docid=' + record_ids[i] + ' "/></td>';
- }
- xml += '</tr></table></form>';
- //obj.data.temp_merge_top = top_xml; obj.data.stash('temp_merge_top');
- //obj.data.temp_merge_mid = xml; obj.data.stash('temp_merge_mid');
- JSAN.use('util.window'); var win = new util.window();
- var fancy_prompt_data = win.open(
- urls.XUL_FANCY_PROMPT,
- //+ '?xml_in_stash=temp_merge_mid'
- //+ '&top_xml_in_stash=temp_merge_top'
- //+ '&title=' + window.escape('Record Merging'),
- 'fancy_prompt', 'chrome,resizable,modal,width=700,height=500',
- {
- 'top_xml' : top_xml, 'xml' : xml, 'title' : $("catStrings").getString('staff.cat.record_buckets.merge_records.fancy_prompt_title')
+ xulG.new_tab(
+ '/xul/server/cat/bibs_abreast.xul',{
+ 'tab_name' : $("catStrings").getString('staff.cat.record_buckets.merge_records.fancy_prompt_title')
+ },{
+ 'merge' : true,
+ 'on_merge' : function() {
+ obj.render_pending_records(); // FIXME -- need a generic refresh for lists
+ setTimeout(
+ function() {
+ JSAN.use('util.widgets');
+ util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
+ }, 0
+ );
+ },
+ 'record_ids':record_ids
}
);
- //obj.data.stash_retrieve();
- if (typeof fancy_prompt_data.fancy_status == 'undefined' || fancy_prompt_data.fancy_status == 'incomplete') {
- alert($("catStrings").getString('staff.cat.record_buckets.merge_records.fancy_prompt.alert'));
- return;
- }
- var robj = obj.network.simple_request('MERGE_RECORDS',
- [
- ses(),
- fancy_prompt_data.lead,
- util.functional.filter_list( record_ids,
- function(o) {
- return o != fancy_prompt_data.lead;
- }
- )
- ]
- );
- if (typeof robj.ilsevent != 'undefined') {
- throw(robj);
- }
-
- obj.render_pending_records(); // FIXME -- need a generic refresh for lists
- setTimeout(
- function() {
- JSAN.use('util.widgets');
- util.widgets.dispatch('change_bucket',obj.controller.view.bucket_menulist);
- }, 0
- );
} catch(E) {
obj.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets.merge_records.catch.std_unex_error'),E);
}
@@ -846,6 +798,25 @@
}
}
],
+ 'cmd_marc_batch_edit' : [
+ ['command'],
+ function() {
+ try {
+ var bucket_id = obj.controller.view.bucket_menulist.value;
+ if (!bucket_id) return;
+ obj.list2.select_all();
+ xulG.new_tab(
+ urls.MARC_BATCH_EDIT + '?containerid='+bucket_id+'&recordSource=b',
+ {
+ 'tab_name' : $('offlineStrings').getString('menu.cmd_marc_batch_edit.tab')
+ },
+ {}
+ );
+ } catch(E) {
+ alert('Error in record_buckets.js, cmd_marc_batch_edit: ' + E);
+ }
+ }
+ ],
'record_buckets_export_records' : [ ['render'], function(){} ],
'record_buckets_list_actions' : [ ['render'], function(){} ]
}
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.xul
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.xul 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets.xul 2010-10-13 08:31:55 UTC (rev 18306)
@@ -121,6 +121,10 @@
<command id="cmd_add_sel_pending_to_record_bucket" />
<command id="cmd_merge_records" disabled="true" />
+ <command id="cmd_marc_batch_edit"
+ label="&staff.cat.record_buckets_overlay.marc_batch_edit.label;"
+ accesskey="&staff.cat.record_buckets_overlay.marc_batch_edit.accesskey;"
+ disabled="true" />
<command id="cmd_export_records_usmarc" />
<command id="cmd_export_records_unimarc" />
<command id="cmd_export_records_xml" />
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul 2010-10-13 08:31:55 UTC (rev 18306)
@@ -168,6 +168,7 @@
<button command="cmd_sel_opac" label="&staff.cat.record_buckets_overlay.sel_opac.label;" accesskey=""/>
<button command="cmd_delete_records" label="&staff.cat.record_buckets_overlay.del_records.label;"/>
<button command="cmd_merge_records" label="&staff.cat.record_buckets_overlay.merge_records.label;"/>
+ <button command="cmd_marc_batch_edit" />
<button id="record_buckets_export_records" label="&staff.cat.record_buckets_overlay.export_records.label;" type="menu" allowevents="true" disabled="true">
<menupopup id="record_buckets_export_record_types" allowevents="true">
<menuitem command="cmd_export_records_usmarc" label="&staff.cat.record_buckets_overlay.menuitem.export_usmarc.label;"/>
Modified: branches/rel_1_6/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties
===================================================================
--- branches/rel_1_6/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties 2010-10-13 02:38:49 UTC (rev 18305)
+++ branches/rel_1_6/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties 2010-10-13 08:31:55 UTC (rev 18306)
@@ -262,16 +262,6 @@
staff.cat.record_buckets.new_bucket.bucket_prompt_title=Bucket Creation
staff.cat.record_buckets.new_bucket.same_name_alert=You already have a bucket with that name.
staff.cat.record_buckets.new_bucket.bucket_created=Bucket %1$s created.
-staff.cat.record_buckets.merge_records.merge_lead=Merge these records? (Select the "lead" record first)
-staff.cat.record_buckets.merge_records.button.label=Merge
-staff.cat.record_buckets.merge_records.cancel_button.label=Cancel
-staff.cat.record_buckets.merge_records.cancel_button.accesskey=C
-staff.cat.record_buckets.merge_records.lead_record_number=Lead Record? # %1$s
-staff.cat.record_buckets.merge_records.lead=Lead
-staff.cat.record_buckets.merge_records.fancy_prompt_title=Record Merging
-staff.cat.record_buckets.merge_records.fancy_prompt.alert=Merge Aborted
-staff.cat.record_buckets.merge_records.success=Records were successfully merged.
-staff.cat.record_buckets.merge_records.catch.std_unex_error=Records were not likely merged.
staff.cat.record_buckets.delete_records.xml1=Delete these records?
staff.cat.record_buckets.delete_records.button.label=Delete
staff.cat.record_buckets.delete_records.cancel_button.label=Cancel
More information about the open-ils-commits
mailing list