From 790a4bdd5cb8c36cfaec421f71da37ddcb5e9ed7 Mon Sep 17 00:00:00 2001 From: phasefx Date: Thu, 15 Jan 2009 07:37:46 +0000 Subject: [PATCH] merge users from patron search and patron group interfaces. getting db error from middle layer method git-svn-id: svn://svn.open-ils.org/ILS/trunk@11839 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../staff_client/chrome/content/main/constants.js | 1 + .../server/locale/en-US/patron.properties | 12 ++++ Open-ILS/xul/staff_client/server/patron/display.js | 15 +++++ .../xul/staff_client/server/patron/display.xul | 1 + .../staff_client/server/patron/display_overlay.xul | 1 + .../xul/staff_client/server/patron/info_group.xul | 38 +++++++++++++ .../staff_client/server/patron/search_result.js | 1 + Open-ILS/xul/staff_client/server/patron/util.js | 66 +++++++++++++++++++++- 8 files changed, 134 insertions(+), 1 deletion(-) 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 b186d93b13..5e2941e751 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/constants.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/constants.js @@ -126,6 +126,7 @@ const api = { 'FM_AU_RETRIEVE_VIA_ID.authoritative' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.retrieve.authoritative', 'cacheable' : true, 'ttl' : 60000 }, 'FM_AU_FLESHED_RETRIEVE_VIA_ID' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.fleshed.retrieve', 'cacheable' : true, 'ttl' : 60000 }, 'FM_AU_FLESHED_RETRIEVE_VIA_ID.authoritative' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.fleshed.retrieve.authoritative', 'cacheable' : true, 'ttl' : 60000 }, + 'FM_AU_MERGE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.merge' }, 'FM_AU_NEW_USERGROUP' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.usergroup.new' }, 'FM_AU_UPDATE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.patron.update' }, 'FM_AUN_RETRIEVE_ALL' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.note.retrieve.all', 'cacheable' : false, 'ttl' : 60000 }, diff --git a/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties b/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties index 3dc3a4f54c..6c5df62d7f 100644 --- a/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties +++ b/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties @@ -140,6 +140,7 @@ staff.patron.info_group.retrieve_group_members.failure=Failed to retrieve all th staff.patron.info_group.retrieve_patron.tab_name=Retrieving Patron.. staff.patron.info_group.retrieve_patron.failed_retrieving_patron=Failed to retrieve patron. staff.patron.info_group.retrieve_patron.failed_retrieving_patrons=Failed to retrieve patrons. +staff.patron.info_group.merge_patrons.failed_merging_patrons=Failed merging patrons. staff.patron.info_group.clone_patron.register_clone.tab_name=Register Patron Clone for Group staff.patron.info_group.clone_patron.error_spawning_editors=error spawning user editors staff.patron.info_group.spwan_editor.editing_patron=Editing Related Patron @@ -262,5 +263,16 @@ staff.patron.cmd_verify_credentials.correct_credentials=Success testing credenti staff.patron.cmd_verify_credentials.incorrect_credentials=Failure testing credentials! staff.patron.cmd_verify_credentials.name_feedback=Username: <%1$s> staff.patron.cmd_verify_credentials.barcode_feedback=Barcode: <%1$s> +staff.patron.usr_buckets.merge_records.merge_lead=Merge these records? (Select the "lead" record first) +staff.patron.usr_buckets.merge_records.button.label=Merge +staff.patron.usr_buckets.merge_records.cancel_button.label=Cancel +staff.patron.usr_buckets.merge_records.cancel_button.accesskey=C +staff.patron.usr_buckets.merge_records.lead_record_number=Lead Record? # %1$s +staff.patron.usr_buckets.merge_records.lead=Lead +staff.patron.usr_buckets.merge_records.fancy_prompt_title=Record Merging +staff.patron.usr_buckets.merge_records.fancy_prompt.alert=Merge Aborted +staff.patron.usr_buckets.merge_records.success=Records were successfully merged. +staff.patron.usr_buckets.merge_records.catch.std_unex_error=Records were not likely merged. + web.staff.patron.ue.session_no_defined=User session is not defined web.staff.patron.ue.uedit_show_search.search_would_be=Search would be:\n%1$s diff --git a/Open-ILS/xul/staff_client/server/patron/display.js b/Open-ILS/xul/staff_client/server/patron/display.js index 3936d4f3b0..5636b5a6ff 100644 --- a/Open-ILS/xul/staff_client/server/patron/display.js +++ b/Open-ILS/xul/staff_client/server/patron/display.js @@ -98,6 +98,18 @@ patron.display.prototype = { } } ], + 'cmd_patron_merge' : [ + ['command'], + function(ev) { + JSAN.use('patron.util'); + if (patron.util.merge( obj.retrieve_ids )) { + obj.controller.view.cmd_patron_retrieve.setAttribute('disabled','true'); + obj.controller.view.cmd_patron_merge.setAttribute('disabled','true'); + var sobj = obj.search_result.g.search_result; + if ( sobj.query ) { sobj.search( sobj.query ); } + } + } + ], 'cmd_search_form' : [ ['command'], function(ev) { @@ -571,6 +583,7 @@ patron.display.prototype = { obj.controller.view.PatronNavBar.selectedIndex = 0; obj.controller.view.cmd_patron_retrieve.setAttribute('disabled','true'); + obj.controller.view.cmd_patron_merge.setAttribute('disabled','true'); obj.controller.view.cmd_search_form.setAttribute('disabled','true'); var loc = urls.XUL_PATRON_SEARCH_FORM; @@ -583,6 +596,7 @@ patron.display.prototype = { }, 'on_submit' : function(query) { obj.controller.view.cmd_patron_retrieve.setAttribute('disabled','true'); + obj.controller.view.cmd_patron_merge.setAttribute('disabled','true'); var list_frame = obj.right_deck.reset_iframe( urls.XUL_PATRON_SEARCH_RESULT, // + '?' + query, {}, @@ -592,6 +606,7 @@ patron.display.prototype = { if (!list) return; if (list.length < 1) return; obj.controller.view.cmd_patron_retrieve.setAttribute('disabled','false'); + if (list.length > 1) obj.controller.view.cmd_patron_merge.setAttribute('disabled','false'); obj.controller.view.cmd_search_form.setAttribute('disabled','false'); obj.retrieve_ids = list; obj.controller.view.patron_name.setAttribute('value',$("patronStrings").getString('staff.patron.display.init.retrieving')); diff --git a/Open-ILS/xul/staff_client/server/patron/display.xul b/Open-ILS/xul/staff_client/server/patron/display.xul index aa30bd6ea7..8a929262fe 100644 --- a/Open-ILS/xul/staff_client/server/patron/display.xul +++ b/Open-ILS/xul/staff_client/server/patron/display.xul @@ -98,6 +98,7 @@ + diff --git a/Open-ILS/xul/staff_client/server/patron/display_overlay.xul b/Open-ILS/xul/staff_client/server/patron/display_overlay.xul index 37e5749647..e02630df6a 100644 --- a/Open-ILS/xul/staff_client/server/patron/display_overlay.xul +++ b/Open-ILS/xul/staff_client/server/patron/display_overlay.xul @@ -98,6 +98,7 @@ +