Support explicit sort order for labels to be applied before label_sortkey
authorDan Pearl <dpearl@cwmars.org>
Fri, 15 Mar 2013 18:24:41 +0000 (14:24 -0400)
committerDan Pearl <dpearl@cwmars.org>
Tue, 19 Mar 2013 18:10:25 +0000 (14:10 -0400)
Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
Open-ILS/src/sql/Pg/parts-sorting.sql
Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2
Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js

index 434e326..219c241 100644 (file)
@@ -2535,7 +2535,7 @@ sub rec_hold_parts {
                 }
             }
         },
-        order_by =>[{class=>'bmp', field=>'label_sortkey'}]
+        order_by =>[{class=>'bmp', field=>'sort_order'},{class=>'bmp', field=>'label_sortkey'}]
     };
 
     if(defined $pickup_lib) {
index b0858c0..343b76c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012  C/W MARS Inc.
+ * Copyright (C) 2013  C/W MARS Inc.
  * Daniel Pearl <dpearl@cwmars.org>
  *
  * This program is free software; you can redistribute it and/or
index b504200..5fb230a 100644 (file)
@@ -1,24 +1,30 @@
 [% WRAPPER base.tt2 %]
 [% ctx.page_title = l('Configure Monograph Parts') %]
-<div dojoType="dijit.layout.ContentPane" layoutAlign="client">
-    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
-        <div>[% l('Monograph Parts') %]</div>
-        <div>
-            <button dojoType='dijit.form.Button' onClick='monoPartGrid.showCreateDialog()'>[% l('New Monograph Part') %]</button>
-            <button dojoType='dijit.form.Button' onClick='monoPartGrid.deleteSelected()'>[% l('Delete Selected') %]</button>
+    <div dojoType="dijit.layout.BorderContainer" design="headline" >
+
+        <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel' region="top" style="height:30px;">
+            <div>[% l('Monograph Parts') %]</div>
+
+            <div>
+               <button dojoType='dijit.form.Button' onClick='monoPartGrid.showCreateDialog()'>[% l('New Monograph Part') %]</button>
+               <button dojoType='dijit.form.Button' onClick='monoPartGrid.deleteSelected()'>[% l('Delete Selected') %]</button>
+               &nbsp;&nbsp;
+            </div>
         </div>
-    </div>
-    <div>
-    <table  jsId="monoPartGrid"
+     <div id="sortContentPane" dojoType="dijit.layout.ContentPane" layoutAlign="client" region="center" style="width:500px;overflow-x:hidden;">
+       <table id="monoGrid" jsId="monoPartGrid"
             dojoType="openils.widget.AutoGrid"
-            autoHeight='true'
-            fieldOrder="['label']"
+            hidePaginator='true'
+            autoHeight='true' 
+            fieldOrder="['sort_order','label']"
+            displayLimit=0 
             suppressFields="['id','record','label_sortkey']"
             suppressEditFields="['id','label_sortkey']"
             query="{id: null}"
             fmClass='bmp'
             editOnEnter='true'/>
-</div>
+     </div>
+  </div>
 
 <script type="text/javascript">
     dojo.require('openils.CGI');
@@ -29,7 +35,7 @@
     openils.Util.addOnLoad( function() {
         monoPartGrid.overrideEditWidgets.record = new dijit.form.TextBox({"disabled": true});
         monoPartGrid.overrideEditWidgets.record.shove = { create : cgi.param('r') };
-        monoPartGrid.loadAll({order_by : {bmp : 'label'}}, {record : cgi.param('r')});
+        monoPartGrid.loadAll({order_by : [{class : 'bmp', field : 'sort_order'},{class : 'bmp', field : 'label_sortkey'}]}, {record : cgi.param('r')});
     });
 </script>
 [% END %]
index 0b16308..4e6cd97 100644 (file)
@@ -205,9 +205,9 @@ function my_init() {
 
         dojo.require('openils.PermaCrud');
         g.pcrud = new openils.PermaCrud({'authtoken':ses()});
-        g.parts = g.pcrud.search('bmp',{'record':g.doc_id},{'order_by': { 'bmp' : 'label_sortkey' } });
+        g.parts = g.pcrud.search('bmp',{'record':g.doc_id},{'order_by': [{'class': 'bmp', 'field' : 'sort_order'},
+                                                                         {'class': 'bmp', 'field' : 'label_sortkey'}] });
         g.parts_hash = util.functional.convert_object_list_to_hash( g.parts );
-
         /***********************************************************************************************************/
         /* For the batch drop downs */