inital commit
This commit is contained in:
361
webroot/forum/jscripts/inline_reports.js
Normal file
361
webroot/forum/jscripts/inline_reports.js
Normal file
@@ -0,0 +1,361 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user