management interfaces for prefixes and suffixes
authorJason Etheridge <jason@esilibrary.com>
Thu, 10 Mar 2011 20:53:46 +0000 (15:53 -0500)
committerJason Etheridge <jason@esilibrary.com>
Thu, 10 Mar 2011 20:53:46 +0000 (15:53 -0500)
Open-ILS/web/js/ui/default/conify/global/config/acn_prefix.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/conify/global/config/acn_suffix.js [new file with mode: 0644]
Open-ILS/web/opac/locale/en-US/lang.dtd
Open-ILS/web/templates/default/conify/global/config/acn_prefix.tt2 [new file with mode: 0644]
Open-ILS/web/templates/default/conify/global/config/acn_suffix.tt2 [new file with mode: 0644]
Open-ILS/xul/staff_client/chrome/content/main/menu.js
Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul

diff --git a/Open-ILS/web/js/ui/default/conify/global/config/acn_prefix.js b/Open-ILS/web/js/ui/default/conify/global/config/acn_prefix.js
new file mode 100644 (file)
index 0000000..2d307a8
--- /dev/null
@@ -0,0 +1,72 @@
+dojo.require('dojox.grid.DataGrid');
+dojo.require('openils.widget.AutoGrid');
+dojo.require('dojox.grid.cells.dijit');
+dojo.require('dojo.data.ItemFileWriteStore');
+dojo.require('dijit.form.CurrencyTextBox');
+dojo.require('dijit.Dialog');
+dojo.require('dojox.widget.PlaceholderMenuItem');
+dojo.require('fieldmapper.OrgUtils');
+dojo.require('dijit.form.FilteringSelect');
+dojo.require('openils.PermaCrud');
+dojo.require('openils.widget.OrgUnitFilteringSelect');
+
+var thingContextOrg;
+var thingList;
+
+/** really need to put this in a shared location... */
+function getOrgInfo(rowIndex, item) {
+    if(!item) return '';
+    var orgId = this.grid.store.getValue(item, this.field);
+    return fieldmapper.aou.findOrgUnit(orgId).shortname();
+}
+
+function thingInit() {
+
+    thingGrid.disableSelectorForRow = function(rowIdx) {
+        var item = thingGrid.getItem(rowIdx);
+        return (thingGrid.store.getValue(item, 'id') < 0);
+    }
+
+    buildGrid();
+    var connect = function() {
+        dojo.connect(thingContextOrgSelect, 'onChange',
+                     function() {
+                         thingContextOrg = this.getValue();
+                         thingGrid.resetStore();
+                         buildGrid();
+                     }
+                    );
+    };
+    // go ahead and let staff see everything
+    new openils.User().buildPermOrgSelector('STAFF_LOGIN', thingContextOrgSelect, null, connect);
+}
+
+function buildGrid() {
+    if(thingContextOrg == null)
+        thingContextOrg = openils.User.user.ws_ou();
+
+    fieldmapper.standardRequest(
+        ['open-ils.pcrud', 'open-ils.pcrud.search.acnp.atomic'],
+        {   async: true,
+            params: [
+                openils.User.authtoken,
+                {"owning_lib":fieldmapper.aou.descendantNodeList(thingContextOrg,true)},
+                {"order_by":{"acnp":"label_sortkey"}}
+            ],
+            oncomplete: function(r) {
+                if(thingList = openils.Util.readResponse(r)) {
+                    thingList = openils.Util.objectSort(thingList);
+                    dojo.forEach(thingList,
+                                 function(e) {
+                                     thingGrid.store.newItem(acnp.toStoreItem(e));
+                                 }
+                                );
+                }
+            }
+        }
+    );
+}
+
+openils.Util.addOnLoad(thingInit);
+
+
diff --git a/Open-ILS/web/js/ui/default/conify/global/config/acn_suffix.js b/Open-ILS/web/js/ui/default/conify/global/config/acn_suffix.js
new file mode 100644 (file)
index 0000000..c79cd0e
--- /dev/null
@@ -0,0 +1,72 @@
+dojo.require('dojox.grid.DataGrid');
+dojo.require('openils.widget.AutoGrid');
+dojo.require('dojox.grid.cells.dijit');
+dojo.require('dojo.data.ItemFileWriteStore');
+dojo.require('dijit.form.CurrencyTextBox');
+dojo.require('dijit.Dialog');
+dojo.require('dojox.widget.PlaceholderMenuItem');
+dojo.require('fieldmapper.OrgUtils');
+dojo.require('dijit.form.FilteringSelect');
+dojo.require('openils.PermaCrud');
+dojo.require('openils.widget.OrgUnitFilteringSelect');
+
+var thingContextOrg;
+var thingList;
+
+/** really need to put this in a shared location... */
+function getOrgInfo(rowIndex, item) {
+    if(!item) return '';
+    var orgId = this.grid.store.getValue(item, this.field);
+    return fieldmapper.aou.findOrgUnit(orgId).shortname();
+}
+
+function thingInit() {
+
+    thingGrid.disableSelectorForRow = function(rowIdx) {
+        var item = thingGrid.getItem(rowIdx);
+        return (thingGrid.store.getValue(item, 'id') < 0);
+    }
+
+    buildGrid();
+    var connect = function() {
+        dojo.connect(thingContextOrgSelect, 'onChange',
+                     function() {
+                         thingContextOrg = this.getValue();
+                         thingGrid.resetStore();
+                         buildGrid();
+                     }
+                    );
+    };
+    // go ahead and let staff see everything
+    new openils.User().buildPermOrgSelector('STAFF_LOGIN', thingContextOrgSelect, null, connect);
+}
+
+function buildGrid() {
+    if(thingContextOrg == null)
+        thingContextOrg = openils.User.user.ws_ou();
+
+    fieldmapper.standardRequest(
+        ['open-ils.pcrud', 'open-ils.pcrud.search.acns.atomic'],
+        {   async: true,
+            params: [
+                openils.User.authtoken,
+                {"owning_lib":fieldmapper.aou.descendantNodeList(thingContextOrg,true)},
+                {"order_by":{"acns":"label_sortkey"}}
+            ],
+            oncomplete: function(r) {
+                if(thingList = openils.Util.readResponse(r)) {
+                    thingList = openils.Util.objectSort(thingList);
+                    dojo.forEach(thingList,
+                                 function(e) {
+                                     thingGrid.store.newItem(acns.toStoreItem(e));
+                                 }
+                                );
+                }
+            }
+        }
+    );
+}
+
+openils.Util.addOnLoad(thingInit);
+
+
index 42645b4..562de27 100644 (file)
 <!ENTITY staff.main.menu.admin.server_admin.conify.perm_list.label "Permissions">
 <!ENTITY staff.main.menu.admin.server_admin.conify.copy_status.label "Copy Statuses">
 <!ENTITY staff.main.menu.admin.server_admin.conify.marc_code_maps.label "Coded Value Maps">
+<!ENTITY staff.main.menu.admin.server_admin.conify.acn_prefix.label "Call Number Prefixes">
+<!ENTITY staff.main.menu.admin.server_admin.conify.acn_suffix.label "Call Number Suffixes">
 <!ENTITY staff.main.menu.admin.server_admin.conify.billing_type.label "Billing Types">
 <!ENTITY staff.main.menu.admin.server_admin.conify.z3950_source.label "Z39.50 Servers">
 <!ENTITY staff.main.menu.admin.server_admin.conify.circulation_modifier.label "Circulation Modifiers">
diff --git a/Open-ILS/web/templates/default/conify/global/config/acn_prefix.tt2 b/Open-ILS/web/templates/default/conify/global/config/acn_prefix.tt2
new file mode 100644 (file)
index 0000000..5e7f640
--- /dev/null
@@ -0,0 +1,37 @@
+[% WRAPPER default/base.tt2 %]
+[% ctx.page_title = 'Call Number Prefixes' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/acn_prefix.js'> </script>
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Call Number Prefixes</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.showCreateDialog()'>New Prefix</button>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div>
+            <span>Context Org Unit</span>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='thingContextOrgSelect'
+                searchAttr='shortname' labelAttr='shortname'> </select>
+        </div>
+        <table  jsId="thingGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'label', 'owning_lib']"
+                suppressFields="['label_sortkey']"
+                suppressEditFields="['label_sortkey']"
+                query="{id: '*'}"
+                defaultCellWidth='20'
+                fmClass='acnp'
+                editOnEnter='true'>
+            <thead>
+                <tr><th field='owning_lib' get='getOrgInfo'/></tr>
+            </thead>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
diff --git a/Open-ILS/web/templates/default/conify/global/config/acn_suffix.tt2 b/Open-ILS/web/templates/default/conify/global/config/acn_suffix.tt2
new file mode 100644 (file)
index 0000000..40dcbb9
--- /dev/null
@@ -0,0 +1,37 @@
+[% WRAPPER default/base.tt2 %]
+[% ctx.page_title = 'Call Number Suffixes' %]
+<script type="text/javascript" src='[% ctx.media_prefix %]/js/ui/default/conify/global/config/acn_suffix.js'> </script>
+
+<!-- grid -->
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+            <div>Call Number Suffixes</div>
+            <div>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.showCreateDialog()'>New Suffix</button>
+                <button dojoType='dijit.form.Button' onClick='thingGrid.deleteSelected()'>Delete Selected</button>
+            </div>
+        </div>
+        <div>
+            <span>Context Org Unit</span>
+            <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='thingContextOrgSelect'
+                searchAttr='shortname' labelAttr='shortname'> </select>
+        </div>
+        <table  jsId="thingGrid"
+                dojoType="openils.widget.AutoGrid"
+                fieldOrder="['id', 'label', 'owning_lib']"
+                suppressFields="['label_sortkey']"
+                suppressEditFields="['label_sortkey']"
+                query="{id: '*'}"
+                defaultCellWidth='20'
+                fmClass='acns'
+                editOnEnter='true'>
+            <thead>
+                <tr><th field='owning_lib' get='getOrgInfo'/></tr>
+            </thead>
+        </table>
+    </div>
+</div>
+[% END %]
+
+
index f63ad8e..28356de 100644 (file)
@@ -732,6 +732,14 @@ main.menu.prototype = {
                 ['oncommand'],
                 function() { open_eg_web_page('conify/global/config/record_attr_definition'); }
             ],
+            'cmd_server_admin_acn_prefix' : [
+                ['oncommand'],
+                function() { open_eg_web_page('conify/global/config/acn_prefix'); }
+            ],
+            'cmd_server_admin_acn_suffix' : [
+                ['oncommand'],
+                function() { open_eg_web_page('conify/global/config/acn_suffix'); }
+            ],
             'cmd_server_admin_billing_type' : [
                 ['oncommand'],
                 function() { open_eg_web_page('conify/global/config/billing_type'); }
index a017100..00306be 100644 (file)
     <command id="cmd_server_admin_copy_status"/>
     <command id="cmd_server_admin_marc_code"/>
     <command id="cmd_server_admin_billing_type"/>
+    <command id="cmd_server_admin_acn_prefix"/>
+    <command id="cmd_server_admin_acn_suffix"/>
     <command id="cmd_server_admin_acq_invoice_item_type"/>
     <command id="cmd_server_admin_acq_invoice_payment_method"/>
     <command id="cmd_server_admin_acq_cancel_reason"/>
                 <menuitem label="&staff.main.menu.admin.server_admin.conify.perm_list.label;" command="cmd_server_admin_perm_list"/>
                 <menuitem label="&staff.main.menu.admin.server_admin.conify.copy_status.label;" command="cmd_server_admin_copy_status"/>
                 <menuitem label="&staff.main.menu.admin.server_admin.conify.marc_code_maps.label;" command="cmd_server_admin_marc_code"/>
+                <menuitem label="&staff.main.menu.admin.server_admin.conify.acn_prefix.label;" command="cmd_server_admin_acn_prefix"/>
+                <menuitem label="&staff.main.menu.admin.server_admin.conify.acn_suffix.label;" command="cmd_server_admin_acn_suffix"/>
                 <menuitem label="&staff.main.menu.admin.server_admin.conify.billing_type.label;" command="cmd_server_admin_billing_type"/>
                 <menuitem label="&staff.main.menu.admin.server_admin.conify.z3950_source.label;" command="cmd_server_admin_z39_source"/>
                 <menuitem label="&staff.main.menu.admin.server_admin.conify.circulation_modifier.label;" command="cmd_server_admin_circ_mod"/>