'onload' : patron_search_init_after_clamshell(p)
}
);
+
+ p.w.crazy_search = function (crazy_search_hash) {
+ return patron_search( p.w, crazy_search_hash );
+ };
+}
+
+function patron_search(search_win, crazy_search_hash) {
+ sdump('D_PATRON_SEARCH',arg_dump(arguments));
+ var result = [];
+ try {
+ result = user_request(
+ 'open-ils.actor',
+ 'open-ils.actor.patron.search.advanced',
+ [ G.auth_ses[0], crazy_search_hash ]
+ )[0];
+ sdump('D_PATRON_SEARCH','result.length = ' + result.length + '\n');
+ } catch(E) {
+ handle_error(E);
+ }
+ return result;
}
function patron_search_init_after_clamshell(p) {
sdump('D_PATRON_SEARCH',arg_dump(arguments));
return function (clamshell_w) {
- var form = spawn_patron_search_form(
+ p.w.search_form = spawn_patron_search_form(
clamshell_w.document,
'new_iframe',
clamshell_w.first_deck, {
}
);
- clamshell_w.new_card_in_second_deck(
- 'chrome://evergreen/content/main/about.xul', {});
+ p.w.result_tree = spawn_patron_search_results(
+ clamshell_w.document,
+ 'new_iframe',
+ clamshell_w.second_deck, {
+ 'onload' : patron_init_after_patron_search_results(p)
+ }
+ );
+
};
}
return function(form_w) {
form_w.register_search_callback(
function (ev) {
- alert('Submitted: ' +
+ sdump('D_PATRON_SEARCH','Submitted: ' +
js2JSON(form_w.crazy_search_hash) + '\n');
+ if (p.w.crazy_search) {
+ p.w.result_tree.add_patrons(
+ p.w.crazy_search( form_w.crazy_search_hash )
+ );
+ }
+ }
+ );
+ };
+}
+
+function patron_init_after_patron_search_results(p) {
+ sdump('D_PATRON_SEARCH',arg_dump(arguments));
+ return function(results_w) {
+ results_w.register_patron_select_callback(
+ function (ev) {
+ alert('Selected: ' +
+ js2JSON(results_w.selection_id) + '\n');
+ }
+ );
+ results_w.register_flesh_patron_function(
+ function (treeitem) {
+ sdump('D_PATRON_SEARCH',arg_dump(arguments));
+ user_async_request(
+ 'open-ils.actor',
+ 'open-ils.actor.user.fleshed.retrieve',
+ [ G.auth_ses[0], treeitem.getAttribute('record_id') ],
+ function (request) {
+ sdump('D_PATRON_SEARCH',arg_dump(arguments));
+ try {
+ var patron = request.getResultObject();
+ results_w.map_patron_to_cols( patron, treeitem );
+ } catch(E) {
+ sdump('D_ERROR',js2JSON(E) + '\n');
+ }
+ }
+ );
}
);
};
--- /dev/null
+sdump('D_TRACE','Loading patron_search_results.js\n');
+
+function patron_search_results_init(p) {
+ sdump('D_PATRON_SEARCH_RESULTS',"TESTING: patron_search_results.js: " + mw.G['main_test_variable'] + '\n');
+
+ p.w.patron_cols = [
+ {
+ 'id' : 'id_col', 'label' : getString('au_label_id'), 'flex' : 1,
+ 'primary' : true, 'hidden' : false, 'fm_field_render' : '.id()'
+ },
+ {
+ 'id' : 'prefix_col', 'label' : getString('au_label_prefix'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_field_render' : '.prefix()'
+ },
+ {
+ 'id' : 'family_name_col', 'label' : getString('au_label_family_name'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_field_render' : '.family_name()'
+ },
+ {
+ 'id' : 'first_given_name_col', 'label' : getString('au_label_first_given_name'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_field_render' : '.first_given_name()'
+ },
+ {
+ 'id' : 'second_given_name_col', 'label' : getString('au_label_second_given_name'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_field_render' : '.second_given_name()'
+ },
+ {
+ 'id' : 'suffix_col', 'label' : getString('au_label_suffix'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_field_render' : '.suffix()'
+ }
+ ];
+
+ p.w.tree_win = spawn_paged_tree(
+ p.w.document, 'new_iframe', p.paged_tree, {
+ 'cols' : p.w.patron_cols,
+ 'onload' : patron_search_results_init_after_paged_tree(p)
+ }
+ );
+
+ p.w.register_patron_select_callback = function (f) {
+ p.w._patron_select_callback = f;
+ }
+
+ p.w.register_flesh_patron_function = function (f) {
+ p.w._flesh_patron_function = f;
+ }
+
+ p.w.map_patron_to_cols = function (patron, treeitem) {
+ patron_search_results_map_patron_to_cols(p, patron, treeitem);
+ }
+
+ if (p.onload) {
+ try {
+ sdump('D_TRACE','trying psuedo-onload...\n');
+ p.onload(p.w);
+ } catch(E) {
+ sdump('D_ERROR', js2JSON(E) + '\n' );
+ }
+ }
+
+}
+
+function patron_search_results_init_after_paged_tree(p) {
+ return function (tree_win) {
+ tree_win.register_select_callback( p.w._patron_select_callback );
+ tree_win.register_flesh_row_function( p.w._flesh_patron_function );
+ p.w.add_patrons = tree_win.add_rows;
+ };
+}
+
+function patron_search_results_map_patron_to_cols(p, patron, treeitem) {
+ var cols = new Array();
+ for (var i = 0; i < p.w.patron_cols.length; i++) {
+ var hash = p.w.patron_cols[i];
+ var cmd = 'patron'+hash.fm_field_render;
+ var col = '';
+ try {
+ col = eval( cmd );
+ } catch(E) {
+ sdump('D_ERROR',js2JSON(E) + '\n');
+ }
+ cols.push( col );
+ }
+ p.w.tree_win.map_cols_to_treeitem( cols, treeitem );
+}
--- /dev/null
+<?xml version="1.0"?>
+<!-- Clamlication: Evergreen Staff Client -->
+
+<!-- Localization -->
+<!DOCTYPE page SYSTEM "chrome://evergreen/locale/patron_search_results.dtd">
+
+<page id="patron_search_results_win"
+ orient="vertical" style="overflow: auto" width="800" height="500"
+ sizemode="maximized" persist="width height"
+ onload="params.w = window; params.paged_tree = 'PatronSearchResults_pagedtree'; params.app = 'PatronSearchResults'; mw.OpenILS_init(params);"
+ onunload="mw.OpenILS_exit(params);"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <!-- Stylesheets -->
+ <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+ <?xml-stylesheet href="chrome://evergreen/skin/evergreen.css" type="text/css"?>
+ <?xml-stylesheet href="chrome://evergreen/skin/patron_search_results.css" type="text/css"?>
+
+ <!-- Overlays for this XUL file -->
+ <?xul-overlay href="chrome://evergreen/content/patron/patron_search_results_overlay.xul"?>
+
+ <!-- XUL'ified abstraction for logic to attach to widgets -->
+ <commandset id="PatronSearchResults_cmds" />
+
+ <!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+ <keyset id="PatronSearchResults_keys" />
+
+ <!-- Layout to be filled in by overlays and javascript -->
+ <box id="PatronSearchResults_main" />
+
+</page>
+
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE overlay SYSTEM "chrome://evergreen/locale/patron_search_results.dtd">
+<overlay id="patron_search_results_overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+<commandset id="PatronSearchResults_cmds">
+
+ <command id="cmd_broken" oncommand="
+ alert('Not Yet Implemented'); "/>
+
+</commandset>
+
+<!-- main widget for patron_search_results -->
+<box id="PatronSearchResults_main" flex="1" orient="horizontal">
+ <box id="PatronSearchResults_pagedtree" flex="1" orient="horizontal"/>
+</box>
+
+<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+<keyset id="PatronSearchResults_keys">
+</keyset>
+
+</overlay>