can now pass in override widget types to grid and edit pane
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Mar 2009 01:22:59 +0000 (01:22 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Mar 2009 01:22:59 +0000 (01:22 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12339 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/js/dojo/openils/widget/AutoGrid.js
Open-ILS/web/js/dojo/openils/widget/EditPane.js

index aa8ab1c..28d69fa 100644 (file)
@@ -16,6 +16,7 @@ if(!dojo._hasResource['openils.widget.AutoGrid']) {
             editOnEnter : false, 
             defaultCellWidth : null,
             editStyle : 'dialog',
+            suppressFields : null,
 
             /* by default, don't show auto-generated (sequence) fields */
             showSequenceFields : false, 
@@ -27,6 +28,7 @@ if(!dojo._hasResource['openils.widget.AutoGrid']) {
                 this.setStructure(this._compileStructure());
                 this.setStore(this.buildAutoStore());
                 this.overrideEditWidgets = {};
+                this.overrideEditWidgetClass = {};
                 if(this.editOnEnter) 
                     this._applyEditOnEnter();
                 else if(this.singleEditStyle) 
@@ -40,6 +42,10 @@ if(!dojo._hasResource['openils.widget.AutoGrid']) {
 
                 var self = this;
                 function pushEntry(entry) {
+                    if(self.suppressFields) {
+                        if(dojo.indexOf(self.suppressFields, entry.field) != -1)
+                            return;
+                    }
                     if(!entry.get) 
                         entry.get = openils.widget.AutoGrid.defaultGetter
                     if(!entry.width && self.defaultCellWidth)
@@ -122,6 +128,7 @@ if(!dojo._hasResource['openils.widget.AutoGrid']) {
                 var pane = new openils.widget.EditPane({
                     fmObject:fmObject,
                     overrideWidgets : this.overrideEditWidgets,
+                    overrideWidgetClass : this.overrideEditWidgetClass,
                     onPostSubmit : function() {
                         for(var i in fmObject._fields) {
                             var field = fmObject._fields[i];
@@ -157,6 +164,7 @@ if(!dojo._hasResource['openils.widget.AutoGrid']) {
                 var pane = new openils.widget.EditPane({
                     fmClass : this.fmClass,
                     overrideWidgets : this.overrideEditWidgets,
+                    overrideWidgetClass : this.overrideEditWidgetClass,
                     onPostSubmit : function(r) {
                         var fmObject = openils.Util.readResponse(r);
                         if(fmObject) 
index 7126a54..c7cb9e0 100644 (file)
@@ -44,6 +44,9 @@ if(!dojo._hasResource['openils.widget.EditPane']) {
                 if(!this.overrideWidgets)
                     this.overrideWidgets = {};
 
+                if(!this.overrideWidgetClass)
+                    this.overrideWidgetClass = {};
+
                 for(var f in this.sortedFieldList) {
                     var field = this.sortedFieldList[f];
                     if(!field || field.virtual) continue;
@@ -71,7 +74,8 @@ if(!dojo._hasResource['openils.widget.EditPane']) {
                         parentNode : valSpan,
                         orgLimitPerms : this.limitPerms,
                         readOnly : this.readOnly,
-                        widget : this.overrideWidgets[field.name]
+                        widget : this.overrideWidgets[field.name],
+                        widgetClass : this.overrideWidgetClass[field.name]
                     });
 
                     widget.build();