add multi home items to specific bib UI. TODO: the critical method for doing the...
authorJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 14:50:06 +0000 (10:50 -0400)
committerJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 14:50:06 +0000 (10:50 -0400)
Open-ILS/xul/staff_client/server/cat/add_multi_home_items.js [new file with mode: 0644]
Open-ILS/xul/staff_client/server/cat/add_multi_home_items.xul [new file with mode: 0644]

diff --git a/Open-ILS/xul/staff_client/server/cat/add_multi_home_items.js b/Open-ILS/xul/staff_client/server/cat/add_multi_home_items.js
new file mode 100644 (file)
index 0000000..a08cbb2
--- /dev/null
@@ -0,0 +1,137 @@
+var list; var error; var net; var pcrud; var rows;
+
+var commonStrings;
+var catStrings;
+
+//// parent interfaces may call this
+function default_focus() { $('scanbox').focus(); }
+////
+
+function my_init() {
+    try {
+        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
+
+        commonStrings = $('commonStrings');
+        patronStrings = $('patronStrings');
+
+        if (typeof JSAN == 'undefined') {
+            throw(
+                commonStrings.getString('common.jsan.missing')
+            );
+        }
+
+        JSAN.errorLevel = "die"; // none, warn, or die
+        JSAN.addRepository('..');
+
+        JSAN.use('util.error'); error = new util.error();
+        JSAN.use('util.list');
+        JSAN.use('util.network'); net = new util.network();
+        dojo.require('openils.PermaCrud');
+        pcrud = new openils.PermaCrud( { authtoken :ses() });
+
+        init_list();
+        $('list_actions').appendChild( list.render_list_actions() );
+        list.set_list_actions();
+        $('submit').addEventListener('command', function() { handle_submit(); }, false);
+        $('scanbox').addEventListener('keypress', handle_keypress, false);
+        default_focus();
+
+        if (typeof window.xulG == 'object' && typeof window.xulG.set_tab_name == 'function') {
+            try { window.xulG.set_tab_name('Add Multi-Home Items: Bib ' + xul_param('docid')); } catch(E) { alert(E); }
+        }
+
+    } catch(E) {
+        alert('Error in add_multi_home_items.js, my_init(): ' + E);
+    }
+}
+
+function init_list() {
+    try {
+        list = new util.list( 'list' );
+        list.init( 
+            {
+                'columns' : [
+                    {
+                        'id' : 'result',
+                        'label' : 'Result',
+                        'flex' : 1,
+                        'primary' : false,
+                        'hidden' : false,
+                        'editable' : false, 'render' : function(my) { return my.result; }
+                    }
+                ].concat(
+                    list.fm_columns('acp', {
+                        '*' : { 'expanded_label' : false, 'hidden' : true },
+                        'acp_barcode' : { 'hidden' : false },
+                        'acp_opac_visible' : { 'hidden' : false },
+                        'acp_holdable' : { 'hidden' : false }
+                    })
+                ).concat(
+                    list.fm_columns('mvr', {
+                        '*' : { 'expanded_label' : false, 'hidden' : true }, 
+                        'mvr_title' : { 'hidden' : false },
+                        'mvr_author' : { 'hidden' : false },
+                        'mvr_isbn' : { 'hidden' : false },
+                        'mvr_tcn' : { 'hidden' : false },
+                        'mvr_id' : { 'hidden' : false }
+                    })
+                )
+            }
+        );
+    } catch(E) {
+        alert('Error in add_multi_home_items.js, init_list(): ' + E);
+    }
+}
+
+function handle_keypress(ev) {
+    try {
+        if (ev.keyCode && ev.keyCode == 13) {
+            handle_submit();
+        }
+    } catch(E) {
+        alert('Error in add_multi_home_items.js, handle_keypress(): ' + E);
+    }
+}
+
+function handle_submit() {
+    try {
+        var barcode = $('scanbox').value;
+        $('scanbox').value = '';
+        default_focus();
+
+        var placeholder_acp = new acp();
+        placeholder_acp.barcode(barcode);
+        var row_params = {
+            'row' : {
+                'my' : {
+                    'acp' : placeholder_acp
+                }
+            }
+        };
+
+        var row_params = list.append(row_params);
+
+        net.simple_request(
+            'FM_ACP_DETAILS_VIA_BARCODE.authoritative',
+            [ ses(), barcode ],
+            function(req) {
+                try {
+                    var robj = req.getResultObject();
+                    if (typeof robj.ilsevent != 'undefined') {
+                        row_params.row.my.result = robj.textcode;
+                    } else {
+                        row_params.row.my.acp = robj.copy;
+                        row_params.row.my.mvr = robj.mvr;
+                    }
+                    list.refresh_row( row_params );
+                } catch(E) {
+                    alert('Error in add_multi_home_items.js, handle_submit, acp details callback: ' + E);
+                }
+            }
+        );
+
+    } catch(E) {
+        alert('Error in add_multi_home_items.js, handle_submit(): ' + E);
+    }
+}
+
diff --git a/Open-ILS/xul/staff_client/server/cat/add_multi_home_items.xul b/Open-ILS/xul/staff_client/server/cat/add_multi_home_items.xul
new file mode 100644 (file)
index 0000000..1618aff
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!-- Application: Evergreen Staff Client -->
+<!-- Screen: Add Multi-Home Items to specific Bib -->
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- STYLESHEETS -->
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- LOCALIZATION -->
+<!DOCTYPE window PUBLIC "" ""[
+    <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
+]>
+
+<!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+<!-- OVERLAYS -->
+<?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
+
+<window id="main_win" 
+    onload="try { my_init(); font_helper(); persist_helper(); } catch(E) { alert(E); }"
+    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+    <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
+    <!-- BEHAVIOR -->
+    <script type="text/javascript">
+        var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true;
+    </script>
+    <scripts id="openils_util_scripts"/>
+
+    <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
+    <script type="text/javascript" src="add_multi_home_items.js"/>
+
+    <vbox flex="1" class="my_overflow">
+        <hbox>
+            <label control="scanbox" value="Barcode" accesskey="B"/>
+            <textbox id="scanbox"/>
+            <button id="submit" label="Submit" accesskey="S"/>
+        </hbox>
+        <tree id="list" flex="1" enableColumnDrag="true" />
+        <hbox id="list_actions" />
+    </vbox>
+
+</window>
+