From 22e5c3b8f8a63a8736a877ee0b8db7e5531a1281 Mon Sep 17 00:00:00 2001 From: Dan Wells Date: Tue, 17 Apr 2012 16:48:43 -0400 Subject: [PATCH] Clean up and refine serial note support, part 3 Add needed menu entries for invoking the serial notes editor from the list in the Items tab. Signed-off-by: Dan Wells --- Open-ILS/web/opac/locale/en-US/lang.dtd | 10 +- .../server/locale/en-US/serial.properties | 1 + .../server/serial/manage_items.js | 95 ++++++++++++++++++- .../server/serial/manage_items.xul | 6 ++ .../xul/staff_client/server/serial/notes.xul | 5 + .../server/serial/serctrl_main.xul | 3 + 6 files changed, 115 insertions(+), 5 deletions(-) diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd index e9385ddb22..fd3e752b38 100644 --- a/Open-ILS/web/opac/locale/en-US/lang.dtd +++ b/Open-ILS/web/opac/locale/en-US/lang.dtd @@ -1730,10 +1730,16 @@ - + - + + + + + + + diff --git a/Open-ILS/xul/staff_client/server/locale/en-US/serial.properties b/Open-ILS/xul/staff_client/server/locale/en-US/serial.properties index 30f348f56f..917dd682c7 100644 --- a/Open-ILS/xul/staff_client/server/locale/en-US/serial.properties +++ b/Open-ILS/xul/staff_client/server/locale/en-US/serial.properties @@ -66,6 +66,7 @@ staff.serial.manage_dists.delete_sstr.title=Delete Streams? staff.serial.manage_dists.delete_sstr.override=Override Delete Failure? Doing so will delete all attached items as well! staff.serial.manage_items.subscriber.label=Subscriber staff.serial.manage_items.holder.label=Holder +staff.serial.manage_items.notes_column.label=Notes (Item/Dist/Sub) staff.serial.manage_subs.add.error=error adding object in manage_subs.js: staff.serial.manage_subs.delete.error=error deleting object in manage_subs.js: staff.serial.manage_subs.delete_scap.confirm=Are you sure you would like to delete this caption and pattern? diff --git a/Open-ILS/xul/staff_client/server/serial/manage_items.js b/Open-ILS/xul/staff_client/server/serial/manage_items.js index acaae8cc64..5e5e449c54 100644 --- a/Open-ILS/xul/staff_client/server/serial/manage_items.js +++ b/Open-ILS/xul/staff_client/server/serial/manage_items.js @@ -524,7 +524,36 @@ serial.manage_items.prototype = { } } ], - + 'cmd_view_sitem_notes' : [ + ['command'], + function() { + try { + obj.view_notes('sitem'); + } catch(E) { + obj.error.standard_unexpected_error_alert('cmd_view_sitem_notes failed!',E); + } + } + ], + 'cmd_view_sdist_notes' : [ + ['command'], + function() { + try { + obj.view_notes('sdist'); + } catch(E) { + obj.error.standard_unexpected_error_alert('cmd_view_sdist_notes failed!',E); + } + } + ], + 'cmd_view_ssub_notes' : [ + ['command'], + function() { + try { + obj.view_notes('ssub'); + } catch(E) { + obj.error.standard_unexpected_error_alert('cmd_view_ssub_notes failed!',E); + } + } + ], 'cmd_items_print' : [ ['command'], function() { obj.items_print(obj.selected_list); } ], 'cmd_items_export' : [ ['command'], function() { obj.items_export(obj.selected_list); } ], 'cmd_refresh_list' : [ ['command'], function() { obj.retrieve_ssubs_and_sdists(); obj.refresh_list('main'); obj.refresh_list('workarea'); } ] @@ -935,6 +964,66 @@ serial.manage_items.prototype = { obj.refresh_list('main'); obj.refresh_list('workarea'); } + }, + + 'view_notes' : function(type) { + var obj = this; + + if (!obj.retrieve_ids || obj.retrieve_ids.length == 0) return; + + var object_id_fn; + var function_type; + var object_type; + var constructor; + + switch(type) { + case 'sitem': + object_id_fn = function(item) { return item.id() }; + title_fn = function(item) { return fieldmapper.IDL.fmclasses.sitem.field_map.id.label + ' ' + item.id() }; + function_type = 'SIN'; + object_type = 'item'; + constructor = sin; + break; + case 'sdist': + object_id_fn = function(item) { return item.stream().distribution() }; + title_fn = function(item) { + var sdist_id = object_id_fn(item); + return obj.sdist_map[sdist_id].label() + + ' -- ' + obj.sdist_map[sdist_id].holding_lib().shortname() + + ' (' + fieldmapper.IDL.fmclasses.sdist.field_map.id.label + ' ' + sdist_id + ')' + }; + function_type = 'SDISTN'; + object_type = 'distribution'; + constructor = sdistn; + break; + case 'ssub': + object_id_fn = function(item) { return item.issuance().subscription().id() }; + title_fn = function(item) { + var ssub_id = object_id_fn(item); + return obj.ssub_map[ssub_id].owning_lib().shortname() + + ' (' + fieldmapper.IDL.fmclasses.ssub.field_map.id.label + ' ' + ssub_id + ')' + }; + function_type = 'SSUBN'; + object_type = 'subscription'; + constructor = ssubn; + break; + default: + return; + } + + var seen_ids = {}; + for (var i = 0; i < obj.retrieve_ids.length; i++) { + var item = obj.list_sitem_map[obj.retrieve_ids[i].sitem_id]; + var obj_id = object_id_fn(item); + if (seen_ids[obj_id]) continue; + JSAN.use('util.window'); var win = new util.window(); + win.open( + urls.XUL_SERIAL_NOTES, + '','chrome,resizable,modal', + { 'object_id' : obj_id, 'function_type' : function_type, 'object_type' : object_type, 'constructor' : constructor, 'title' : $('serialStrings').getString('staff.serial.'+type+'_editor.notes') + ' -- ' + title_fn(item) } + ); + seen_ids[obj_id] = 1; + } } } @@ -1018,11 +1107,11 @@ function item_columns(modify,params) { }, { 'id' : 'notes', - 'label' : 'Notes', + 'label' : $('serialStrings').getString('staff.serial.manage_items.notes_column.label'), 'flex' : 1, 'primary' : false, 'hidden' : false, - 'render' : function(my) { return my.sitem.notes().length; }, + 'render' : function(my) { return my.sitem.notes().length + ' / ' + my.parent_obj.sdist_map[my.sitem.stream().distribution()].notes().length + ' / ' + my.parent_obj.ssub_map[my.sitem.issuance().subscription().id()].notes().length; }, 'persist' : 'hidden width ordinal' }, { diff --git a/Open-ILS/xul/staff_client/server/serial/manage_items.xul b/Open-ILS/xul/staff_client/server/serial/manage_items.xul index c5bedca72a..b8f811522b 100644 --- a/Open-ILS/xul/staff_client/server/serial/manage_items.xul +++ b/Open-ILS/xul/staff_client/server/serial/manage_items.xul @@ -43,6 +43,9 @@ vim:noet:sw=4:ts=4: + + + @@ -67,6 +70,9 @@ vim:noet:sw=4:ts=4: + + + diff --git a/Open-ILS/xul/staff_client/server/serial/notes.xul b/Open-ILS/xul/staff_client/server/serial/notes.xul index 2009de6ec8..386680258b 100644 --- a/Open-ILS/xul/staff_client/server/serial/notes.xul +++ b/Open-ILS/xul/staff_client/server/serial/notes.xul @@ -58,6 +58,11 @@ g.function_type = xul_param('function_type',{'modal_xulG':true}); g.constructor = xul_param('constructor',{'modal_xulG':true}); + var window_title = xul_param('title',{'modal_xulG':true}); + if (window_title) { + try { document.title = window_title; } catch(E) {} + } + refresh(); } catch(E) { diff --git a/Open-ILS/xul/staff_client/server/serial/serctrl_main.xul b/Open-ILS/xul/staff_client/server/serial/serctrl_main.xul index 444879405a..cde4abecca 100644 --- a/Open-ILS/xul/staff_client/server/serial/serctrl_main.xul +++ b/Open-ILS/xul/staff_client/server/serial/serctrl_main.xul @@ -83,6 +83,9 @@ vim:noet:sw=4:ts=4: + + + -- 2.43.2