diff --git a/www/extras/wobject/Matrix/matrix.js b/www/extras/wobject/Matrix/matrix.js new file mode 100644 index 000000000..f31787aea --- /dev/null +++ b/www/extras/wobject/Matrix/matrix.js @@ -0,0 +1,85 @@ +YAHOO.util.Event.addListener(window, "load", function() { + YAHOO.example.XHR_JSON = new function() { + this.formatUrl = function(elCell, oRecord, oColumn, sData) { + elCell.innerHTML = "" + sData + ""; + }; + + var myColumnDefs = [ + {key:"checkBox",label:"",sortable:false}, + {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}}, + {key:"compares", sortable:true, sortOptions:{defaultDir:YAHOO.widget.DataTable.CLASS_DESC}}, + {key:"lastUpdated", sortable:true, sortOptions:{defaultDir:YAHOO.widget.DataTable.CLASS_DESC}} + ]; + + var uri = "func=getCompareFormData"; + if(typeof(listingIds) != 'undefined'){ + for (var i = 0; i < listingIds.length; i++) { + uri = uri+';listingId='+listingIds[i]; + } + } + + this.myDataSource = new YAHOO.util.DataSource("?"); + this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; + this.myDataSource.connXhrMode = "queueRequests"; + this.myDataSource.responseSchema = { + resultsList: "ResultSet.Result", + fields: ["title","views","clicks","compares","checkBox","checked","lastUpdated","url"] + }; + + this.myDataTable = new YAHOO.widget.DataTable("compareForm", myColumnDefs, + this.myDataSource, {initialRequest:uri}); + + this.myDataTable.hideColumn(this.myDataTable.getColumn(2)); + this.myDataTable.hideColumn(this.myDataTable.getColumn(3)); + this.myDataTable.hideColumn(this.myDataTable.getColumn(4)); + this.myDataTable.hideColumn(this.myDataTable.getColumn(5)); + + var btnSortByViews = new YAHOO.widget.Button("sortByViews"); + btnSortByViews.on("click", function(e) { + this.myDataTable.sortColumn(this.myDataTable.getColumn(2)); + },this,true); + + var btnSortByClicks = new YAHOO.widget.Button("sortByClicks"); + btnSortByClicks.on("click", function(e) { + this.myDataTable.sortColumn(this.myDataTable.getColumn(3)); + },this,true); + + var btnSortByCompares = new YAHOO.widget.Button("sortByCompares"); + btnSortByCompares.on("click", function(e) { + this.myDataTable.sortColumn(this.myDataTable.getColumn(4)); + },this,true); + + var btnSortByUpdated = new YAHOO.widget.Button("sortByUpdated"); + btnSortByUpdated.on("click", function(e) { + this.myDataTable.sortColumn(this.myDataTable.getColumn(5)); + },this,true); + + var myCallback = function() { + this.set("sortedBy", null); + this.onDataReturnAppendRows.apply(this,arguments); + }; + + var btnCompare = new YAHOO.widget.Button("compare",{disabled:true,id:"compareButton"}); + btnCompare.on("click", function(e) { + window.document.forms['doCompare'].submit(); + },this,true); + + window.compareFormButton = function() { + var compareCheckBoxes = YAHOO.util.Dom.getElementsByClassName('compareCheckBox','input'); + var checked = 0; + for (var i = compareCheckBoxes.length; i--; ) { + if(compareCheckBoxes[i].checked){ + checked++; + } + } + if (checked > 1 && checked < maxComparisons){ + btnCompare.set("disabled",false); + }else{ + btnCompare.set("disabled",true); + } + } + }; +}); + diff --git a/www/extras/wobject/Matrix/matrixCompareList.js b/www/extras/wobject/Matrix/matrixCompareList.js new file mode 100644 index 000000000..e51305daf --- /dev/null +++ b/www/extras/wobject/Matrix/matrixCompareList.js @@ -0,0 +1,142 @@ +YAHOO.util.Event.addListener(window, "load", function() { + YAHOO.example.XHR_JSON = new function() { + var Dom = YAHOO.util.Dom; + var hideStickies = 0; + + this.formatStickied = function(elCell, oRecord, oColumn, sData) { + elCell.innerHTML = ""; + }; + + this.formatColors = function(elCell, oRecord, oColumn, sData) { + var colorField = oColumn.key + "_compareColor"; + var color = oRecord.getData(colorField); + if(color){ + Dom.setStyle(elCell.parentNode, "background-color", color); + } + elCell.innerHTML = sData; + }; + + YAHOO.widget.DataTable.Formatter.formatColors = this.formatColors; + + var myColumnDefs = [ + {key:"stickied",formatter:this.formatStickied}, + {key:"name"} + ]; + + this.myDataSource = new YAHOO.util.DataSource("?"); + this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; + this.myDataSource.connXhrMode = "queueRequests"; + this.myDataSource.responseSchema = { + resultsList: "ResultSet.Result", + fields: columnKeys + }; + + var uri = "func=getCompareListData"; + for (var i = 0; i < listingIds.length; i++) { + uri = uri+';listingId='+listingIds[i]; + } + + var myDataTable = new YAHOO.widget.DataTable("compareList", myColumnDefs, + this.myDataSource, {initialRequest:uri}); + + + this.myDataSource.doBeforeParseData = function (oRequest, oFullResponse) { + myDataTable.getRecordSet().reset(); + var existingColumns = myDataTable.getColumnSet().keys; + for (var i = 0; i < existingColumns.length; i++) { + if(i > 1){ + // after deleting a column the next column will + // allways be no. 2 (the third in the array) + myDataTable.removeColumn(existingColumns[2]); + } + } + if (oFullResponse.ColumnDefs) { + var len = oFullResponse.ColumnDefs.length; + + for (var i = 0; i < len; i++) { + var c = oFullResponse.ColumnDefs[i]; + myDataTable.insertColumn(c); + } + } + return oFullResponse; + } + + var myCallback = function() { + this.set("sortedBy", null); + this.onDataReturnAppendRows.apply(this,arguments); + }; + + var myCallback2 = function() { + this.set("sortedBy", null); + this.onDataReturnAppendRows.apply(this,arguments); + }; + + + var callback2 = { + success : myCallback, + failure : myCallback, + scope : myDataTable + }; + + var btnCompare = new YAHOO.widget.Button("compare",{disabled:true,id:"compareButton"}); + btnCompare.on("click", function(e) { + var uri = "func=getCompareListData"; + for (var i = 0; i < columnKeys.length; i++) { + if(columnKeys[i] != 'name'){ + var checkBox = new Dom.get(columnKeys[i] + '_checkBox'); + if(checkBox.checked == true){ + uri = uri+';listingId='+columnKeys[i]; + } + } + } + this.myDataSource.sendRequest(uri,callback2); + },this,true); + + window.compareFormButton = function() { + var compareCheckBoxes = YAHOO.util.Dom.getElementsByClassName('compareCheckBox','input'); + var checked = 0; + for (var i = compareCheckBoxes.length; i--; ) { + if(compareCheckBoxes[i].checked){ + checked++; + } + } + if (checked > 1 && checked < maxComparisons){ + btnCompare.set("disabled",false); + }else{ + btnCompare.set("disabled",true); + } + } + + var btnStickied = new YAHOO.widget.Button("stickied"); + btnStickied.on("click", function(e) { + var elements = myDataTable.getRecordSet().getRecords(); + if(hideStickies == 0){ + // hide non-selected attributes + for(i=0; i" + sData + ""; + }; + + var myColumnDefs = [ + {key:"checkBox",label:""}, + {key:"title", label:"Name", sortable:true, formatter:this.formatUrl}, + {key:"views", sortable:true}, + {key:"clicks", sortable:true}, + {key:"compares", sortable:true} + ]; + + var uri = "func=getCompareFormData"; + if(typeof(listingIds) != 'undefined'){ + for (var i = 0; i < listingIds.length; i++) { + uri = uri+';listingId='+listingIds[i]; + } + } + + this.myDataSource = new YAHOO.util.DataSource("?"); + this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; + this.myDataSource.connXhrMode = "queueRequests"; + this.myDataSource.responseSchema = { + resultsList: "ResultSet.Result", + fields: ["title","views","clicks","compares","checkBox","checked","url"] + }; + + var myDataTable = new YAHOO.widget.DataTable("compareForm", myColumnDefs, + this.myDataSource, {initialRequest:uri}); + + this.myDataSource.doBeforeParseData = function (oRequest, oFullResponse) { + myDataTable.getRecordSet().reset(); + return oFullResponse; + } + var myDataSource = this.myDataSource; + + var myCallback = function() { + myDataTable.getRecordSet().reset(); + this.set("sortedBy", null); + this.onDataReturnAppendRows.apply(this,arguments); + compareFormButton(); + }; + + var callback2 = { + success : myCallback, + failure : myCallback, + scope : myDataTable + }; + + var reloadCompareForm = 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; + } + var elements = myDataTable.getRecordSet().getRecords(); + for(i=0; i 1 && checked < maxComparisons){ + btnCompare.set("disabled",false); + }else{ + btnCompare.set("disabled",true); + } + } + }; +}); +