Merged revisions 9395-9396 via svnmerge from
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 21 Apr 2008 16:54:46 +0000 (16:54 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 21 Apr 2008 16:54:46 +0000 (16:54 +0000)
svn://svn.open-ils.org/ILS/trunk

........
  r9395 | erickson | 2008-04-21 11:42:10 -0400 (Mon, 21 Apr 2008) | 1 line

  added support for for truncation attribute to z39 queries.  Thanks, James!
........
  r9396 | erickson | 2008-04-21 12:51:44 -0400 (Mon, 21 Apr 2008) | 1 line

  added widget directory and new org unit filtering select widget
........

git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9397 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Search/Z3950.pm
Open-ILS/web/js/dojo/openils/widget/OrgUnitFilteringSelect.js [new file with mode: 0644]

index 9d84c18..dc4c001 100755 (executable)
@@ -329,8 +329,11 @@ sub compile_query {
        for( keys %$hash ) {
                next unless ( exists $services{$service}->{attrs}->{$_} );
                $str .= '@attr 1=' . $services{$service}->{attrs}->{$_}->{code} . # add the use attribute
-                       ' @attr 4=' . $services{$service}->{attrs}->{$_}->{format} . # add the structure attribute
-                       " \"" . $$hash{$_} . "\" "; # add the search term
+                       ' @attr 4=' . $services{$service}->{attrs}->{$_}->{format}; # add the structure attribute
+               if (exists $services{$service}->{attrs}->{$_}->{truncation}){
+                       $str .= ' @attr 5=' . $services{$service}->{attrs}->{$_}->{truncation};
+               }
+               $str .= " \"" . $$hash{$_} . "\" "; # add the search term
        }
        return $str;
 }
diff --git a/Open-ILS/web/js/dojo/openils/widget/OrgUnitFilteringSelect.js b/Open-ILS/web/js/dojo/openils/widget/OrgUnitFilteringSelect.js
new file mode 100644 (file)
index 0000000..a875264
--- /dev/null
@@ -0,0 +1,33 @@
+if(!dojo._hasResource["openils.widget.OrgUnitFilteringSelect"]){
+dojo._hasResource["openils.widget.OrgUnitFilteringSelect"] = true;
+dojo.require("dijit.form.FilteringSelect");
+dojo.require("fieldmapper.OrgUtils");
+dojo.provide("openils.widget.OrgUnitFilteringSelect");
+
+/**
+ * This widget provides a FilteringSelect for Org Units.  In particular,
+ * it indents displayed name ('shortname', by default) based on the orgs depth 
+ * to imitate a tree.  
+ */
+
+/* TODO add org sorting to ensure proper render order */
+
+dojo.declare(
+    "openils.widget.OrgUnitFilteringSelect", [dijit.form.FilteringSelect], 
+    {
+        _getMenuLabelFromItem : function(item) {
+            var type = this.store.getValue(item, 'ou_type');
+            var depth = fieldmapper.aout.findOrgType(type).depth();
+            var lpad = depth*6; /* CSS instead? */
+
+            return {
+                html: true,
+                label: '<div style="padding-left:'+lpad+'px;">' +
+                    this.store.getValue(item, this.labelAttr || 'shortname') +
+                    '</div>'
+            }
+        }
+    }
+);
+
+}