},
setWindowElementsEvent: function(opts) {
- this.repeaterEl = opts.repeater_id;
+ this.repeaterEl = opts.repeater_id + '_Container';
this.gridEl = opts.grid_id;
this.loadRequest = opts.request_obj;
if (opts.hasOwnProperty('actions_obj')) {
setLoadRequest: function() {
var dataList = [];
- if($(this.gridEl)) {
- dataList = $(this.gridEl).select('tr');
+ var repeater = $(this.repeaterEl);
+ var grid = $(this.gridEl);
+ if(grid) {
+ dataList = grid.select('tr');
this.makeSortable();
- } else if ($(this.repeaterEl + '_Container')) {
- dataList = $(this.repeaterEl + '_Container').select('div.slide-window-element');
+ } else if (repeater) {
+ dataList = repeater.select('div.slide-window-element');
}
var set_callback_parameter = function(element) {
this.configurationObj.openConfigurationWindow(this);
}
}.bind(this);
+ this.setSearch();
dataList.each(function(tr) {
$(tr).observe('click', function(index, clickedEl) {
var target = clickedEl.target || clickedEl.srcElement;
}.bind(this, tr));
}.bind(this));
Formatters.set_formatters();
+ this.revertSortingFromCookie();
},
isConfigurationOpen: function() {
return is_open;
},
- sortTable: function (col, reverse) {
+ sortTable: function (col, reverse, set_cookie) {
var table = document.getElementById(this.gridEl);
var tb = table.tBodies[0], tr = Array.prototype.slice.call(tb.rows, 0), i;
reverse = -((+reverse) || -1);
tr = tr.sort(function (a, b) {
- var val;
- var val_a = a.cells[col].textContent.trim();
- var val_b = b.cells[col].textContent.trim();
+ var val, val_a, val_b, el_a, el_b;
+ el_a = a.cells[col].childNodes[1];
+ el_b = b.cells[col].childNodes[1];
+ if (el_a && el_b && el_a.nodeType === 1 && el_b.nodeType === 1 && el_a.hasAttribute('rel') && el_b.hasAttribute('rel')) {
+ val_a = el_a.getAttribute('rel');
+ val_b = el_b.getAttribute('rel');
+ } else {
+ val_a = a.cells[col].textContent.trim();
+ val_b = b.cells[col].textContent.trim();
+ }
if (!isNaN(parseFloat(val_a)) && isFinite(val_a) && !isNaN(parseFloat(val_b)) && isFinite(val_b)) {
val = val_a - val_b
} else {
}
return reverse * (val);
});
- for(i = 0; i < tr.length; i++) {
- var even = ((i % 2) == 0);
+ var even;
+ for (i = 0; i < tr.length; i++) {
+ even = ((i % 2) == 0);
if (even) {
tr[i].className = this.elements.contentItems;
} else {
}
tb.appendChild(tr[i]);
}
+ if (set_cookie === true) {
+ Cookies.set_cookie(this.gridEl, col + ':' + reverse);
+ }
},
makeSortable: function () {
while (--i >= downCounter) (function (i) {
var dir = 1;
th[i].addEventListener('click', function () {
- self.sortTable(i, (dir = 1 - dir));
+ self.sortTable(i, (dir = 1 - dir), true);
});
}(i));
},
+ revertSortingFromCookie: function() {
+ var sorting = Cookies.get_cookie(this.gridEl);
+ if (sorting != null) {
+ var sort_param = sorting.split(':');
+ var col = parseInt(sort_param[0], 10);
+ var order = -(parseInt(sort_param[1], 10));
+ this.sortTable(col, order);
+ }
+ },
+
setSearch: function() {
- var search_pattern = new RegExp(this.search.value)
- $$('div[id="' + this.windowId + this.elements.containerSuffix + '"] div.' + this.elements.contentItems).each(function(value){
-
- if(search_pattern.match(value.childNodes[2].textContent) == false) {
+ var search_pattern = new RegExp(this.search.value, 'i');
+ var repeater = $(this.repeaterEl);
+ var grid = $(this.gridEl);
+ if (repeater) {
+ repeater.select('div.' + this.elements.contentItems).each(function(value){
+ if(search_pattern.test(value.childNodes[2].textContent) == false) {
value.setStyle({'display' : 'none'});
} else {
value.setStyle({'display' : ''});
}
}.bind(search_pattern));
-
- $$('div[id="' + this.windowId + this.elements.containerSuffix + '"] tr.' + this.elements.contentItems + ', div[id="' + this.windowId + this.elements.containerSuffix + '"] tr.' + this.elements.contentAlternatingItems).each(function(value){
- if(search_pattern.match(value.down('div').innerHTML) == false) {
- value.setStyle({'display' : 'none'});
+ }
+
+ if (grid) {
+ grid.select('tr').each(function(value){
+ var tds = value.select('td');
+ var td;
+ var found = false;
+ for (var i = 0; i < tds.length; i++) {
+ td = tds[i].textContent.trim();
+ if(search_pattern.test(td) == true) {
+ found = true;
+ break;
+ }
+ }
+
+ if(found === true) {
+ value.show();
} else {
- value.setStyle({'display' : ''});
+ value.hide();
}
}.bind(search_pattern));
+ }
},
setElementsCount : function() {
var elements_count = $$('div[id="' + this.windowId + this.elements.containerSuffix + '"] div.' + this.elements.contentItems).length || $$('div[id="' + this.windowId + this.elements.containerSuffix + '"] tr.' + this.elements.contentItems + ', div[id="' + this.windowId + this.elements.containerSuffix + '"] tr.' + this.elements.contentAlternatingItems).length;
return $(this.windowId + this.elements.toolbarSuffix).visible();
},
setActions: function() {
- var table = $(this.window).down('table');
- var checkboxes = table.select('input[name="actions_checkbox"]');
+ var checkboxes = this.getCheckboxes();
checkboxes.each(function(el) {
el.observe('change', function() {
- var is_checked = this.is_any_checked(checkboxes);
+ var is_checked = this.isAnyChecked(checkboxes);
if(is_checked === true && !this.areActionsOpen()) {
this.showActions();
} else if (is_checked === false && this.areActionsOpen()) {
}.bind(this));
}.bind(this));
},
- is_any_checked: function(checkboxes) {
+ isAnyChecked: function(checkboxes) {
var is_checked = false;
checkboxes.each(function(ch) {
if(ch.checked == true) {
return is_checked;
},
+ getCheckboxes: function() {
+ var grid = $(this.gridEl);
+ var checkboxes = [];
+ if (grid) {
+ checkboxes = grid.select('input[name="actions_checkbox"]');
+ }
+ return checkboxes;
+ },
+
+ areCheckboxesChecked: function() {
+ var checkboxes = this.getCheckboxes();
+ return this.isAnyChecked(checkboxes);
+ },
+
markAllChecked: function(check) {
this.checked = [];
- var table = $(this.window).down('table');
- var checkboxes = table.select('input[name="actions_checkbox"]');
+ var checkboxes = this.getCheckboxes();
var containerId;
if(checkboxes.length > 0) {
checkboxes.each(function(ch, index) {