From 9eff3a4b77745cfdc4852534ce4f49da3b7f10c5 Mon Sep 17 00:00:00 2001 From: Yung Han Khoe Date: Fri, 21 Nov 2008 22:46:25 +0000 Subject: [PATCH] More Matrix fixes --- lib/WebGUI/Asset/Wobject/Matrix.pm | 19 +++++++++-------- www/extras/wobject/Matrix/matrix.js | 25 +++++++++++++++++++++-- www/extras/wobject/Matrix/matrixSearch.js | 16 ++++++++++++--- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/lib/WebGUI/Asset/Wobject/Matrix.pm b/lib/WebGUI/Asset/Wobject/Matrix.pm index d786c4f2e..7638359f4 100644 --- a/lib/WebGUI/Asset/Wobject/Matrix.pm +++ b/lib/WebGUI/Asset/Wobject/Matrix.pm @@ -932,11 +932,13 @@ assetData.revisionDate ",[$attributeId,$result->{assetId}]); $self->session->errorHandler->warn("fieldType:".$fieldType.", attributeValue: ".$form->process($param).", listingvalue: ".$listingValue); if(($fieldType eq 'MatrixCompare') && ($listingValue < $form->process($param))){ - undef $result->{checked}; + #undef $result->{checked}; + $result->{checked} = ''; last; } elsif(($fieldType ne 'MatrixCompare') && ($form->process($param) ne $listingValue)){ - undef $result->{checked}; + #undef $result->{checked}; + $result->{checked} = ''; last; } else{ @@ -954,12 +956,12 @@ assetData.revisionDate } $result->{assetId} =~ s/-/_____/g; $result->{url} = "/".$result->{url}; - $result->{checkBox} = "{checked}){ - $result->{checkBox} .= " checked='checked'"; - } - $result->{checkBox} .= " onChange='javascript:compareFormButton()' class='compareCheckBox'>"; + #$result->{checkBox} = "{checked}){ + # $result->{checkBox} .= " checked='checked'"; + #} + #$result->{checkBox} .= " onChange='javascript:compareFormButton()' class='compareCheckBox'>"; } my $jsonOutput; @@ -1118,6 +1120,7 @@ sub www_search { $attribute->{extras} = " class='attributeSelect'"; if($attribute->{fieldType} eq 'Combo'){ $attribute->{fieldType} = 'SelectBox'; + $attribute->{options} = "blank\n".$attribute->{options}; } $attribute->{form} = WebGUI::Form::DynamicField->new($self->session,%{$attribute})->toHtml; push(@attribute_loop,$attribute); diff --git a/www/extras/wobject/Matrix/matrix.js b/www/extras/wobject/Matrix/matrix.js index f31787aea..4f479f6ba 100644 --- a/www/extras/wobject/Matrix/matrix.js +++ b/www/extras/wobject/Matrix/matrix.js @@ -3,9 +3,17 @@ YAHOO.util.Event.addListener(window, "load", function() { this.formatUrl = function(elCell, oRecord, oColumn, sData) { elCell.innerHTML = "" + sData + ""; }; + this.formatCheckBox = function(elCell, oRecord, oColumn, sData) { + var innerHTML = ""; + elCell.innerHTML = innerHTML; + }; var myColumnDefs = [ - {key:"checkBox",label:"",sortable:false}, + {key:"assetId",label:"",sortable:false, formatter:this.formatCheckBox}, {key:"title", label:"Name", sortable:true, formatter:this.formatUrl}, {key:"views", sortable:true, sortOptions:{defaultDir:YAHOO.widget.DataTable.CLASS_DESC}}, {key:"clicks", sortable:true, sortOptions:{defaultDir:YAHOO.widget.DataTable.CLASS_DESC}}, @@ -25,7 +33,7 @@ YAHOO.util.Event.addListener(window, "load", function() { this.myDataSource.connXhrMode = "queueRequests"; this.myDataSource.responseSchema = { resultsList: "ResultSet.Result", - fields: ["title","views","clicks","compares","checkBox","checked","lastUpdated","url"] + fields: ["title","views","clicks","compares","checked","lastUpdated","url","assetId"] }; this.myDataTable = new YAHOO.widget.DataTable("compareForm", myColumnDefs, @@ -66,12 +74,16 @@ YAHOO.util.Event.addListener(window, "load", function() { window.document.forms['doCompare'].submit(); },this,true); + window.compareDataTable = this.myDataTable; + window.compareFormButton = function() { var compareCheckBoxes = YAHOO.util.Dom.getElementsByClassName('compareCheckBox','input'); var checked = 0; + var checkedCompareBoxes = new Object(); for (var i = compareCheckBoxes.length; i--; ) { if(compareCheckBoxes[i].checked){ checked++; + checkedCompareBoxes[compareCheckBoxes[i].value] = true; } } if (checked > 1 && checked < maxComparisons){ @@ -79,6 +91,15 @@ YAHOO.util.Event.addListener(window, "load", function() { }else{ btnCompare.set("disabled",true); } + var elements = window.compareDataTable.getRecordSet().getRecords(); + for(j=0; j" + sData + ""; }; + this.formatCheckBox = function(elCell, oRecord, oColumn, sData) { + var innerHTML = ""; + elCell.innerHTML = innerHTML; + }; var myColumnDefs = [ - {key:"checkBox",label:""}, + {key:"assetId",label:"",sortable:false, formatter:this.formatCheckBox}, {key:"title", label:"Name", sortable:true, formatter:this.formatUrl}, {key:"views", sortable:true}, {key:"clicks", sortable:true}, @@ -26,7 +34,7 @@ YAHOO.util.Event.addListener(window, "load", function() { this.myDataSource.connXhrMode = "queueRequests"; this.myDataSource.responseSchema = { resultsList: "ResultSet.Result", - fields: ["title","views","clicks","compares","checkBox","checked","url"] + fields: ["title","views","clicks","compares","checked","url","assetId"] }; var myDataTable = new YAHOO.widget.DataTable("compareForm", myColumnDefs, @@ -55,7 +63,9 @@ YAHOO.util.Event.addListener(window, "load", function() { var attributeSelects = YAHOO.util.Dom.getElementsByClassName('attributeSelect','select'); var newUri = "func=getCompareFormData;search=1"; for (var i = attributeSelects.length; i--; ) { - newUri = newUri + ';search_' + attributeSelects[i].id + '=' + attributeSelects[i].value; + if(attributeSelects[i].value != 'blank'){ + newUri = newUri + ';search_' + attributeSelects[i].id + '=' + attributeSelects[i].value; + } } myDataTable.getRecordSet().reset(); myDataTable.refreshView();