2008-07-03 14:59:31 +00:00
|
|
|
/*
|
|
|
|
* MIT License
|
2008-09-28 11:57:09 +00:00
|
|
|
* Copyright (c) 2008 Ishan Arora <ishan@qbittorrent.org> & Christophe Dumez <chris@qbittorrent.org>
|
2008-07-03 14:59:31 +00:00
|
|
|
*
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
|
|
* in the Software without restriction, including without limitation the rights
|
|
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
|
|
* furnished to do so, subject to the following conditions:
|
|
|
|
*
|
|
|
|
* The above copyright notice and this permission notice shall be included in
|
|
|
|
* all copies or substantial portions of the Software.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
* THE SOFTWARE.
|
2008-07-04 07:48:15 +00:00
|
|
|
*/
|
2008-05-17 12:44:42 +00:00
|
|
|
|
|
|
|
/**************************************************************
|
|
|
|
|
|
|
|
Script : Dynamic Table
|
2008-09-28 11:57:09 +00:00
|
|
|
Version : 0.5
|
|
|
|
Authors : Ishan Arora & Christophe Dumez
|
2008-05-17 12:44:42 +00:00
|
|
|
Desc : Programable sortable table
|
|
|
|
Licence : Open Source MIT Licence
|
|
|
|
|
|
|
|
**************************************************************/
|
|
|
|
|
|
|
|
var dynamicTable = new Class ({
|
2008-12-24 11:28:02 +00:00
|
|
|
|
|
|
|
initialize: function(){
|
|
|
|
},
|
2008-05-17 12:44:42 +00:00
|
|
|
|
2009-11-24 19:41:31 +00:00
|
|
|
setup: function(table, progressIndex, context_menu){
|
2008-05-17 12:44:42 +00:00
|
|
|
this.table = $(table);
|
2009-11-24 11:14:02 +00:00
|
|
|
this.rows = new Hash();
|
2008-09-27 10:08:07 +00:00
|
|
|
this.cur = new Array();
|
2008-12-29 23:04:45 +00:00
|
|
|
this.priority_hidden = false;
|
2008-12-30 11:23:18 +00:00
|
|
|
this.progressIndex = progressIndex;
|
2009-11-23 09:16:32 +00:00
|
|
|
this.filter = 'all';
|
2009-11-24 19:41:31 +00:00
|
|
|
this.context_menu = context_menu;
|
2009-11-27 15:48:45 +00:00
|
|
|
this.table.sortedIndex = 1; // Default is NAME
|
|
|
|
this.table.sortOrder = 'ASC';
|
|
|
|
},
|
|
|
|
|
|
|
|
sortfunction: function(tr1, tr2) {
|
|
|
|
var i = tr2.getParent().sortedIndex;
|
|
|
|
var order = tr2.getParent().sortOrder;
|
|
|
|
switch(i) {
|
|
|
|
case 1: // Name
|
|
|
|
if(order == "ASC") {
|
|
|
|
if(tr1.getElements('td')[i].get('html') > tr2.getElements('td')[i].get('html'))
|
|
|
|
return 1;
|
|
|
|
return -1;
|
|
|
|
} else {
|
|
|
|
if(tr1.getElements('td')[i].get('html') < tr2.getElements('td')[i].get('html'))
|
|
|
|
return 1;
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
case 2: // Prio
|
|
|
|
if(order == "ASC")
|
|
|
|
return (tr1.getElements('td')[i].get('html').toInt() - tr2.getElements('td')[i].get('html')).toInt();
|
|
|
|
else
|
|
|
|
return (tr2.getElements('td')[i].get('html').toInt() - tr1.getElements('td')[i].get('html')).toInt();
|
|
|
|
case 3: // Size
|
|
|
|
case 7: // Up Speed
|
|
|
|
case 8: // Down Speed
|
|
|
|
var sizeStrToFloat = function(mystr) {
|
|
|
|
var val1 = mystr.split(' ');
|
|
|
|
var val1num = val1[0].toFloat()
|
|
|
|
var unit = val1[1].capitalize();
|
|
|
|
switch(unit[0]) {
|
|
|
|
case 'G':
|
|
|
|
return val1num*1073741824;
|
|
|
|
case 'M':
|
|
|
|
return val1num*1048576;
|
|
|
|
case 'K':
|
|
|
|
return val1num*1024;
|
|
|
|
default:
|
|
|
|
return val1num;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
if(order == "ASC")
|
|
|
|
return (sizeStrToFloat(tr1.getElements('td')[i].get('html')) - sizeStrToFloat(tr2.getElements('td')[i].get('html')));
|
|
|
|
else
|
|
|
|
return (sizeStrToFloat(tr2.getElements('td')[i].get('html')) - sizeStrToFloat(tr1.getElements('td')[i].get('html')));
|
|
|
|
case 4: // Progress
|
|
|
|
if(order == "ASC")
|
|
|
|
return (tr1.getElements('td')[i].getChildren()[0].getValue() - tr2.getElements('td')[i].getChildren()[0].getValue());
|
|
|
|
else
|
|
|
|
return (tr2.getElements('td')[i].getChildren()[0].getValue() - tr1.getElements('td')[i].getChildren()[0].getValue());
|
|
|
|
case 5: // Seeds
|
|
|
|
case 6: // Peers
|
|
|
|
if(order == "ASC")
|
|
|
|
return (tr1.getElements('td')[i].get('html').split(' ')[0].toInt() - tr2.getElements('td')[i].get('html').split(' ')[0].toInt());
|
|
|
|
else
|
|
|
|
return (tr2.getElements('td')[i].get('html').split(' ')[0].toInt() - tr1.getElements('td')[i].get('html').split(' ')[0].toInt());
|
|
|
|
default: // Ratio
|
2009-11-27 15:59:49 +00:00
|
|
|
var ratio1 = tr1.getElements('td')[i].get('html');
|
|
|
|
if(ratio1 == '∞')
|
|
|
|
ratio1 = '101.0';
|
|
|
|
var ratio2 = tr2.getElements('td')[i].get('html');
|
|
|
|
if(ratio2 == '∞')
|
|
|
|
ratio2 = '101.0';
|
2009-11-27 15:48:45 +00:00
|
|
|
if(order == "ASC")
|
2009-11-27 15:59:49 +00:00
|
|
|
return (ratio1.toFloat() - ratio2.toFloat());
|
2009-11-27 15:48:45 +00:00
|
|
|
else
|
2009-11-27 15:59:49 +00:00
|
|
|
return (ratio2.toFloat() - ratio1.toFloat());
|
2009-11-27 15:48:45 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
updateSort: function() {
|
|
|
|
var trs = this.table.getChildren('tr');
|
|
|
|
trs.sort(this.sortfunction);
|
|
|
|
this.table.set('html', '');
|
|
|
|
this.table.adopt(trs);
|
|
|
|
},
|
|
|
|
|
|
|
|
setSortedColumn: function(index) {
|
|
|
|
if(index != this.table.sortedIndex) {
|
|
|
|
this.table.sortedIndex = index;
|
|
|
|
this.table.sortOrder = 'ASC';
|
|
|
|
} else {
|
|
|
|
// Toggle sort order
|
|
|
|
if(this.table.sortOrder == 'ASC')
|
|
|
|
this.table.sortOrder = 'DSC'
|
|
|
|
else
|
|
|
|
this.table.sortOrder = 'ASC'
|
|
|
|
}
|
|
|
|
this.updateSort();
|
|
|
|
this.altRow();
|
2009-11-24 08:53:14 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
getCurrentTorrentHash: function() {
|
|
|
|
if(this.cur.length > 0)
|
|
|
|
return this.cur[0];
|
|
|
|
return '';
|
2008-05-17 12:44:42 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
altRow: function()
|
|
|
|
{
|
|
|
|
var trs = this.table.getElements('tr');
|
|
|
|
trs.each(function(el,i){
|
|
|
|
if(i % 2){
|
2008-12-24 11:28:02 +00:00
|
|
|
el.addClass('alt');
|
2008-05-17 12:44:42 +00:00
|
|
|
}else{
|
2008-12-24 11:28:02 +00:00
|
|
|
el.removeClass('alt');
|
2008-05-17 12:44:42 +00:00
|
|
|
}
|
|
|
|
}.bind(this));
|
|
|
|
},
|
|
|
|
|
2008-12-29 23:04:45 +00:00
|
|
|
hidePriority: function(){
|
|
|
|
if(this.priority_hidden) return;
|
|
|
|
$('prioHeader').addClass('invisible');
|
|
|
|
var trs = this.table.getElements('tr');
|
|
|
|
trs.each(function(tr,i){
|
|
|
|
var tds = tr.getElements('td');
|
2009-11-23 10:37:55 +00:00
|
|
|
tds[2].addClass('invisible');
|
2008-12-29 23:04:45 +00:00
|
|
|
}.bind(this));
|
|
|
|
this.priority_hidden = true;
|
|
|
|
},
|
2009-11-23 09:16:32 +00:00
|
|
|
|
|
|
|
setFilter: function(f) {
|
|
|
|
this.filter = f;
|
|
|
|
},
|
2008-12-29 23:04:45 +00:00
|
|
|
|
|
|
|
showPriority: function(){
|
|
|
|
if(!this.priority_hidden) return;
|
|
|
|
$('prioHeader').removeClass('invisible');
|
|
|
|
var trs = this.table.getElements('tr');
|
|
|
|
trs.each(function(tr,i){
|
|
|
|
var tds = tr.getElements('td');
|
2009-11-23 13:35:46 +00:00
|
|
|
tds[2].removeClass('invisible');
|
2008-12-29 23:04:45 +00:00
|
|
|
}.bind(this));
|
|
|
|
this.priority_hidden = false;
|
|
|
|
},
|
2009-11-23 09:16:32 +00:00
|
|
|
|
|
|
|
applyFilterOnRow: function(tr, status) {
|
|
|
|
switch(this.filter) {
|
|
|
|
case 'all':
|
|
|
|
tr.removeClass("invisible");
|
2009-11-26 11:01:21 +00:00
|
|
|
break;
|
2009-11-23 09:16:32 +00:00
|
|
|
case 'downloading':
|
|
|
|
if(status == "downloading" || status == "stalledDL" || status == "checkingDL" || status == "pausedDL" || status == "queuedDL") {
|
|
|
|
tr.removeClass("invisible");
|
|
|
|
} else {
|
|
|
|
tr.addClass("invisible");
|
|
|
|
}
|
2009-11-26 11:01:21 +00:00
|
|
|
break;
|
2009-11-23 09:16:32 +00:00
|
|
|
case 'completed':
|
|
|
|
if(status == "seeding" || status == "stalledUP" || status == "checkingUP" || status == "pausedUP" || status == "queuedUP") {
|
|
|
|
tr.removeClass("invisible");
|
|
|
|
} else {
|
|
|
|
tr.addClass("invisible");
|
|
|
|
}
|
2009-11-26 11:01:21 +00:00
|
|
|
break;
|
2009-11-23 09:16:32 +00:00
|
|
|
case 'active':
|
|
|
|
if(status == "downloading" || status == "seeding") {
|
|
|
|
tr.removeClass("invisible");
|
|
|
|
} else {
|
|
|
|
tr.addClass("invisible");
|
|
|
|
}
|
2009-11-26 11:01:21 +00:00
|
|
|
break;
|
2009-11-23 09:16:32 +00:00
|
|
|
case 'inactive':
|
|
|
|
if(status != "downloading" && status != "seeding") {
|
|
|
|
tr.removeClass("invisible");
|
|
|
|
} else {
|
|
|
|
tr.addClass("invisible");
|
|
|
|
}
|
|
|
|
}
|
2009-11-26 11:01:21 +00:00
|
|
|
return !tr.hasClass('invisible');
|
2009-11-23 09:16:32 +00:00
|
|
|
},
|
2008-12-29 23:04:45 +00:00
|
|
|
|
2009-11-23 09:16:32 +00:00
|
|
|
insertRow: function(id, row, status){
|
2009-11-24 11:14:02 +00:00
|
|
|
if(this.rows.has(id)) {
|
|
|
|
return;
|
|
|
|
}
|
2008-05-17 12:44:42 +00:00
|
|
|
var tr = new Element('tr');
|
2009-11-24 19:41:31 +00:00
|
|
|
tr.addClass("menu-target");
|
2009-11-24 11:14:02 +00:00
|
|
|
this.rows.set(id, tr);
|
2008-05-17 12:44:42 +00:00
|
|
|
for(var i=0; i<row.length; i++)
|
|
|
|
{
|
|
|
|
var td = new Element('td');
|
2008-12-30 11:23:18 +00:00
|
|
|
if(i==this.progressIndex) {
|
2009-11-25 12:27:00 +00:00
|
|
|
td.adopt(new ProgressBar(row[i].toFloat(), {'id': 'pb_'+id, 'width':80}));
|
2008-12-30 11:23:18 +00:00
|
|
|
} else {
|
2009-11-25 12:09:10 +00:00
|
|
|
if(i==0) {
|
|
|
|
td.adopt(new Element('img', {'src':row[i]}));
|
|
|
|
} else {
|
|
|
|
td.set('html', row[i]);
|
|
|
|
}
|
2008-12-30 11:23:18 +00:00
|
|
|
}
|
2008-05-17 12:44:42 +00:00
|
|
|
td.injectInside(tr);
|
|
|
|
};
|
|
|
|
|
2008-09-15 05:27:56 +00:00
|
|
|
tr.addEvent('mouseover', function(e){
|
2008-12-24 11:28:02 +00:00
|
|
|
tr.addClass('over');
|
2008-05-17 12:44:42 +00:00
|
|
|
}.bind(this));
|
2008-09-15 05:27:56 +00:00
|
|
|
tr.addEvent('mouseout', function(e){
|
2008-12-24 11:28:02 +00:00
|
|
|
tr.removeClass('over');
|
2008-05-17 12:44:42 +00:00
|
|
|
}.bind(this));
|
2009-11-24 19:41:31 +00:00
|
|
|
tr.addEvent('contextmenu', function(e) {
|
|
|
|
if(!this.cur.contains(id)) {
|
|
|
|
// Remove selected style from previous ones
|
|
|
|
for(i=0; i<this.cur.length; i++) {
|
|
|
|
if(this.rows.has(this.cur[i])) {
|
|
|
|
var temptr = this.rows.get(this.cur[i]);
|
|
|
|
temptr.removeClass('selected');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.cur.empty();
|
|
|
|
this.cur[this.cur.length] = id;
|
|
|
|
temptr = this.rows.get(id);
|
|
|
|
temptr.addClass("selected");
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}.bind(this));
|
2008-09-15 05:27:56 +00:00
|
|
|
tr.addEvent('click', function(e){
|
2008-09-28 16:39:39 +00:00
|
|
|
e.stop();
|
2008-09-27 10:08:07 +00:00
|
|
|
if(e.control) {
|
2008-09-27 10:18:27 +00:00
|
|
|
// CTRL key was pressed
|
2008-09-27 10:08:07 +00:00
|
|
|
if(this.cur.contains(id)) {
|
|
|
|
// remove it
|
|
|
|
this.cur.erase(id);
|
|
|
|
// Remove selected style
|
2009-11-24 11:14:02 +00:00
|
|
|
if(this.rows.has(id)) {
|
|
|
|
temptr = this.rows.get(id);
|
|
|
|
temptr.removeClass('selected');
|
|
|
|
}
|
2008-09-27 10:08:07 +00:00
|
|
|
} else {
|
|
|
|
this.cur[this.cur.length] = id;
|
|
|
|
// Add selected style
|
2009-11-24 11:14:02 +00:00
|
|
|
if(this.rows.has(id)) {
|
|
|
|
temptr = this.rows.get(id);
|
2008-12-24 11:28:02 +00:00
|
|
|
temptr.addClass('selected');
|
2008-09-27 10:08:07 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
2008-09-27 10:18:27 +00:00
|
|
|
if(e.shift && this.cur.length == 1) {
|
|
|
|
// Shift key was pressed
|
|
|
|
ids = this.getRowIds();
|
|
|
|
beginIndex = ids.indexOf(this.cur[0]);
|
|
|
|
endIndex = ids.indexOf(id);
|
2008-09-28 16:23:08 +00:00
|
|
|
if(beginIndex > endIndex) {
|
|
|
|
// Backward shift
|
|
|
|
tmp = beginIndex;
|
|
|
|
beginIndex = endIndex-1;
|
|
|
|
endIndex = tmp-1;
|
|
|
|
}
|
2008-09-27 10:18:27 +00:00
|
|
|
for(i=beginIndex+1; i<(endIndex+1); i++) {
|
|
|
|
curID = ids[i];
|
|
|
|
this.cur[this.cur.length] = curID;
|
|
|
|
// Add selected style
|
2009-11-24 11:14:02 +00:00
|
|
|
if(this.rows.has(curID)) {
|
|
|
|
temptr = this.rows.get(curID);
|
2008-12-24 11:28:02 +00:00
|
|
|
temptr.addClass('selected');
|
2008-09-27 10:18:27 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// Simple selection
|
|
|
|
// Remove selected style from previous ones
|
|
|
|
for(i=0; i<this.cur.length; i++) {
|
2009-11-24 11:14:02 +00:00
|
|
|
if(this.rows.has(this.cur[i])) {
|
|
|
|
var temptr = this.rows.get(this.cur[i]);
|
2008-12-24 11:28:02 +00:00
|
|
|
temptr.removeClass('selected');
|
2008-09-27 10:18:27 +00:00
|
|
|
}
|
|
|
|
}
|
2008-09-28 16:23:08 +00:00
|
|
|
this.cur.empty();
|
2008-09-27 10:18:27 +00:00
|
|
|
// Add selected style to new one
|
2009-11-24 11:14:02 +00:00
|
|
|
if(this.rows.has(id)) {
|
|
|
|
temptr = this.rows.get(id);
|
2008-12-24 11:28:02 +00:00
|
|
|
temptr.addClass('selected');
|
2008-09-27 10:08:07 +00:00
|
|
|
}
|
2008-09-27 10:18:27 +00:00
|
|
|
this.cur[0] = id;
|
2009-11-24 08:53:14 +00:00
|
|
|
// TODO: Warn Properties panel
|
2008-09-27 10:08:07 +00:00
|
|
|
}
|
2008-05-17 12:44:42 +00:00
|
|
|
}
|
2008-09-28 16:39:39 +00:00
|
|
|
return false;
|
2008-05-17 12:44:42 +00:00
|
|
|
}.bind(this));
|
2009-11-24 11:14:02 +00:00
|
|
|
// Apply filter
|
|
|
|
this.applyFilterOnRow(tr, status);
|
|
|
|
// Insert
|
2009-11-27 15:48:45 +00:00
|
|
|
var trs = this.table.getChildren('tr');
|
|
|
|
var i=0;
|
|
|
|
while(i<trs.length && this.sortfunction(tr, trs[i]) > 0) {
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
if(i==trs.length) {
|
|
|
|
tr.inject(this.table);
|
|
|
|
} else {
|
|
|
|
tr.inject(trs[i], 'before');
|
|
|
|
}
|
|
|
|
//tr.injectInside(this.table);
|
2008-05-17 12:44:42 +00:00
|
|
|
this.altRow();
|
2009-11-24 19:41:31 +00:00
|
|
|
// Update context menu
|
|
|
|
this.context_menu.addTarget(tr);
|
2008-05-17 12:44:42 +00:00
|
|
|
},
|
2008-09-28 16:23:08 +00:00
|
|
|
|
|
|
|
selectAll: function() {
|
|
|
|
this.cur.empty();
|
2009-11-24 11:14:02 +00:00
|
|
|
this.rows.each(function(tr, id){
|
2008-09-28 16:23:08 +00:00
|
|
|
this.cur[this.cur.length] = id;
|
2009-11-24 11:14:02 +00:00
|
|
|
if(!tr.hasClass('selected')) {
|
|
|
|
tr.addClass('selected');
|
2008-09-28 16:23:08 +00:00
|
|
|
}
|
2009-11-24 11:14:02 +00:00
|
|
|
});
|
2008-09-28 16:23:08 +00:00
|
|
|
},
|
2008-05-17 12:44:42 +00:00
|
|
|
|
2009-11-23 09:16:32 +00:00
|
|
|
updateRow: function(id, row, status){
|
2009-11-24 11:14:02 +00:00
|
|
|
if(!this.rows.has(id)) {
|
|
|
|
return false;
|
2008-05-17 12:44:42 +00:00
|
|
|
}
|
2009-11-24 11:14:02 +00:00
|
|
|
var tr = this.rows.get(id);
|
|
|
|
// Apply filter
|
2009-11-26 11:01:21 +00:00
|
|
|
if(this.applyFilterOnRow(tr, status)) {
|
|
|
|
var tds = tr.getElements('td');
|
|
|
|
for(var i=0; i<row.length; i++) {
|
|
|
|
if(i==1) continue; // Do not refresh name
|
|
|
|
if(i==this.progressIndex) {
|
|
|
|
$('pb_'+id).setValue(row[i].toFloat());
|
2009-11-25 12:09:10 +00:00
|
|
|
} else {
|
2009-11-26 11:01:21 +00:00
|
|
|
if(i==0) {
|
|
|
|
tds[i].getChildren('img')[0].set('src', row[i]);
|
|
|
|
} else {
|
|
|
|
tds[i].set('html', row[i]);
|
|
|
|
}
|
2009-11-25 12:09:10 +00:00
|
|
|
}
|
2009-11-26 11:01:21 +00:00
|
|
|
};
|
|
|
|
}
|
2009-11-24 11:14:02 +00:00
|
|
|
return true;
|
2008-05-17 12:44:42 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
removeRow: function(id){
|
2008-09-27 10:08:07 +00:00
|
|
|
if(this.cur.contains(id))
|
2008-05-17 12:44:42 +00:00
|
|
|
{
|
2008-09-27 10:08:07 +00:00
|
|
|
this.cur.erase(id);
|
2008-05-17 12:44:42 +00:00
|
|
|
}
|
2009-11-24 11:14:02 +00:00
|
|
|
if(this.rows.has(id)) {
|
|
|
|
var tr = this.rows.get(id);
|
2008-09-14 10:14:54 +00:00
|
|
|
tr.dispose();
|
2008-05-17 12:44:42 +00:00
|
|
|
this.altRow();
|
2009-11-24 11:14:02 +00:00
|
|
|
this.rows.erase(id);
|
2008-05-17 12:44:42 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
},
|
|
|
|
|
2008-09-27 10:08:07 +00:00
|
|
|
selectedIds: function(){
|
2008-05-17 12:44:42 +00:00
|
|
|
return this.cur;
|
|
|
|
},
|
|
|
|
|
|
|
|
getRowIds: function(){
|
|
|
|
var ids = new Array();
|
|
|
|
var i = 0;
|
2009-11-24 11:14:02 +00:00
|
|
|
this.rows.each(function(tr, id) {
|
2008-05-17 12:44:42 +00:00
|
|
|
ids[i] = id;
|
2009-11-24 11:14:02 +00:00
|
|
|
i++;
|
|
|
|
}.bind(this));
|
2008-05-17 12:44:42 +00:00
|
|
|
return ids;
|
|
|
|
}
|
|
|
|
});
|
2008-12-24 11:28:02 +00:00
|
|
|
//dynamicTable.implement(new Options);
|
|
|
|
//dynamicTable.implement(new Events);
|
2008-05-17 12:44:42 +00:00
|
|
|
|
|
|
|
/*************************************************************/
|