Files
RTG/webroot/forum/jscripts/inline_reports.js
2026-06-19 20:08:01 +06:00

361 lines
7.2 KiB
JavaScript

var inlineReports = {
init: function()
{
inlineReports.cookieName = 'inlinereports';
var inputs = $('input');
if(!inputs.length)
{
return false;
}
var inlineIds = inlineReports.getCookie(inlineReports.cookieName);
var removedIds = inlineReports.getCookie(inlineReports.cookieName+'_removed');
var allChecked = true;
$(inputs).each(function() {
var element = $(this);
if((element.attr('name') != 'allbox') && (element.attr('type') == 'checkbox') && (element.attr('id')) && (element.attr('id').split('_')[0] == 'reports'))
{
$(element).on('click', inlineReports.checkItem);
}
if(element.attr('id'))
{
var inlineCheck = element.attr('id').split('_');
var id = inlineCheck[1];
if(inlineCheck[0] == 'reports')
{
if(inlineIds.indexOf(id) != -1 || (inlineIds.indexOf('ALL') != -1 && removedIds.indexOf(id) == -1))
{
element.prop('checked', true);
var report = element.parents('.inline_row');
if(report.length)
{
report.addClass('trow_selected');
}
}
else
{
element.prop('checked', false);
var report = element.parents('.inline_row');
if(report.length)
{
report.removeClass('trow_selected');
}
}
allChecked = false;
}
}
});
inlineReports.updateCookies(inlineIds, removedIds);
if(inlineIds.indexOf('ALL') != -1 && removedIds.length == 0)
{
var allSelectedRow = $('#allSelectedrow');
if(allSelectedRow)
{
allSelectedRow.show();
}
}
else if(inlineIds.indexOf('ALL') == -1 && allChecked == true)
{
var selectRow = $('#selectAllrow');
if(selectRow)
{
selectRow.show();
}
}
return true;
},
checkItem: function()
{
var element = $(this);
if(!element || !element.attr('id'))
{
return false;
}
var inlineCheck = element.attr('id').split('_');
var id = inlineCheck[1];
if(!id)
{
return false;
}
var inlineIds = inlineReports.getCookie(inlineReports.cookieName);
var removedIds = inlineReports.getCookie(inlineReports.cookieName+'_removed');
if(element.prop('checked') == true)
{
if(inlineIds.indexOf('ALL') == -1)
{
inlineIds = inlineReports.addId(inlineIds, id);
}
else
{
removedIds = inlineReports.removeId(removedIds, id);
if(removedIds.length == 0)
{
var allSelectedRow = $('#allSelectedrow');
if(allSelectedRow)
{
allSelectedRow.show();
}
}
}
var report = element.parents('.inline_row');
if(report.length)
{
report.addClass('trow_selected');
}
}
else
{
if(inlineIds.indexOf('ALL') == -1)
{
inlineIds = inlineReports.removeId(inlineIds, id);
var selectRow = $('#selectAllrow');
if(selectRow)
{
selectRow.hide();
}
}
else
{
removedIds = inlineReports.addId(removedIds, id);
var allSelectedRow = $('#allSelectedrow');
if(allSelectedRow)
{
allSelectedRow.hide();
}
}
var report = element.parents('.inline_row');
if(report.length)
{
report.removeClass('trow_selected');
}
}
inlineReports.updateCookies(inlineIds, removedIds);
return true;
},
clearChecked: function()
{
$('#selectAllrow').hide();
$('#allSelectedrow').hide();
var inputs = $('input');
if(!inputs.length)
{
return false;
}
$(inputs).each(function() {
var element = $(this);
if(!element.val()) return;
if(element.attr('type') == 'checkbox' && ((element.attr('id') && element.attr('id').split('_')[0] == 'reports') || element.attr('name') == 'allbox'))
{
element.prop('checked', false);
}
});
$('.trow_selected').each(function() {
$(this).removeClass('trow_selected');
});
$('#inline_read').val(mark_read_text+' (0)');
Cookie.unset(inlineReports.cookieName);
Cookie.unset(inlineReports.cookieName + '_removed');
return true;
},
checkAll: function(master)
{
inputs = $('input');
master = $(master);
if(!inputs.length)
{
return false;
}
var inlineIds = inlineReports.getCookie(inlineReports.cookieName);
var removedIds = inlineReports.getCookie(inlineReports.cookieName+'_removed');
var newIds = new Array();
$(inputs).each(function() {
var element = $(this);
if(!element.val() || !element.attr('id')) return;
inlineCheck = element.attr('id').split('_');
if((element.attr('name') != 'allbox') && (element.attr('type') == 'checkbox') && (inlineCheck[0] == 'reports'))
{
var id = inlineCheck[1];
var changed = (element.prop('checked') != master.prop('checked'));
element.prop('checked', master.prop('checked'));
var report = element.parents('.inline_row');
if(report.length)
{
if(master.prop('checked') == true)
{
report.addClass('trow_selected');
}
else
{
report.removeClass('trow_selected');
}
}
if(changed)
{
if(master.prop('checked') == true)
{
if(inlineIds.indexOf('ALL') == -1)
{
inlineIds = inlineReports.addId(inlineIds, id);
}
else
{
removedIds = inlineReports.removeId(removedIds, id);
}
}
else
{
if(inlineIds.indexOf('ALL') == -1)
{
inlineIds = inlineReports.removeId(inlineIds, id);
}
else
{
removedIds = inlineReports.addId(removedIds, id);
}
}
}
}
});
var count = inlineReports.updateCookies(inlineIds, removedIds);
if(count < all_text)
{
var selectRow = $('#selectAllrow');
if(selectRow.length)
{
if(master.prop('checked') == true)
{
selectRow.show();
}
else
{
selectRow.hide();
}
}
}
if(inlineIds.indexOf('ALL') == -1 || removedIds.length != 0)
{
$('#allSelectedrow').hide();
}
else if(inlineIds.indexOf('ALL') != -1 && removedIds.length == 0)
{
$('#allSelectedrow').show();
}
},
selectAll: function()
{
inlineReports.updateCookies(new Array('ALL'), new Array());
$('#selectAllrow').hide();
$('#allSelectedrow').show();
},
getCookie: function(name)
{
var inlineCookie = Cookie.get(name);
var ids = new Array();
if(inlineCookie)
{
var inlineIds = inlineCookie.split('|');
$.each(inlineIds, function(index, item) {
if(item != '' && item != null)
{
ids.push(item);
}
});
}
return ids;
},
setCookie: function(name, array)
{
if(array.length != 0)
{
var data = '|'+array.join('|')+'|';
Cookie.set(name, data, 60 * 60 * 1000);
}
else
{
Cookie.unset(name);
}
},
updateCookies: function(inlineIds, removedIds)
{
if(inlineIds.indexOf('ALL') != -1)
{
var count = all_text - removedIds.length;
}
else
{
var count = inlineIds.length;
}
if(count < 0)
{
count = 0;
}
$('#inline_read').val(mark_read_text+' ('+count+')');
if(count == 0)
{
inlineReports.clearChecked();
}
else
{
inlineReports.setCookie(inlineReports.cookieName, inlineIds);
inlineReports.setCookie(inlineReports.cookieName+'_removed', removedIds);
}
return count;
},
addId: function(array, id)
{
if(array.indexOf(id) == -1)
{
array.push(id);
}
return array;
},
removeId: function(array, id)
{
var position = array.indexOf(id);
if(position != -1)
{
array.splice(position, 1);
}
return array;
}
};
$(inlineReports.init);