rubycritic 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +9 -0
  4. data/README.md +9 -6
  5. data/ROADMAP.md +56 -0
  6. data/docs/building-own-code-climate.md +4 -0
  7. data/features/command_line_interface/minimum_score.feature +1 -1
  8. data/features/command_line_interface/options.feature +1 -1
  9. data/lib/rubycritic/analysis_summary.rb +40 -0
  10. data/lib/rubycritic/cli/options.rb +1 -1
  11. data/lib/rubycritic/core/analysed_module.rb +20 -0
  12. data/lib/rubycritic/core/analysed_modules_collection.rb +8 -0
  13. data/lib/rubycritic/generators/html/assets/fonts/FontAwesome.otf +0 -0
  14. data/lib/rubycritic/generators/html/assets/fonts/Roboto-Medium.ttf +0 -0
  15. data/lib/rubycritic/generators/html/assets/fonts/Roboto-Regular.ttf +0 -0
  16. data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.eot +0 -0
  17. data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.svg +2671 -0
  18. data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.ttf +0 -0
  19. data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.woff +0 -0
  20. data/lib/rubycritic/generators/html/assets/fonts/fontawesome-webfont.woff2 +0 -0
  21. data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  22. data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  23. data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  24. data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  25. data/lib/rubycritic/generators/html/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  26. data/lib/rubycritic/generators/html/assets/images/logo.png +0 -0
  27. data/lib/rubycritic/generators/html/assets/javascripts/application.js +221 -72
  28. data/lib/rubycritic/generators/html/assets/javascripts/bootstrap.min.js +7 -0
  29. data/lib/rubycritic/generators/html/assets/javascripts/jquery.min.js +4 -0
  30. data/lib/rubycritic/generators/html/assets/javascripts/jquery.scrollTo.min.js +7 -0
  31. data/lib/rubycritic/generators/html/assets/javascripts/jquery.tablesorter.js +1031 -2089
  32. data/lib/rubycritic/generators/html/assets/javascripts/jquery.tablesorter.min.js +4 -0
  33. data/lib/rubycritic/generators/html/assets/javascripts/{jquery.timeago-v1.4.1.js → jquery.timeago.js} +31 -14
  34. data/lib/rubycritic/generators/html/assets/javascripts/prettify.js +46 -0
  35. data/lib/rubycritic/generators/html/assets/stylesheets/application.css +422 -197
  36. data/lib/rubycritic/generators/html/assets/stylesheets/bootstrap.min.css +6 -0
  37. data/lib/rubycritic/generators/html/assets/stylesheets/font-awesome.min.css +4 -0
  38. data/lib/rubycritic/generators/html/assets/stylesheets/prettify.css +1 -0
  39. data/lib/rubycritic/generators/html/overview.rb +2 -0
  40. data/lib/rubycritic/generators/html/templates/code_file.html.erb +56 -33
  41. data/lib/rubycritic/generators/html/templates/code_index.html.erb +45 -30
  42. data/lib/rubycritic/generators/html/templates/layouts/application.html.erb +43 -21
  43. data/lib/rubycritic/generators/html/templates/overview.html.erb +62 -7
  44. data/lib/rubycritic/generators/html/templates/smells_index.html.erb +47 -26
  45. data/lib/rubycritic/generators/html/templates/smelly_line.html.erb +16 -12
  46. data/lib/rubycritic/generators/html/turbulence.rb +2 -2
  47. data/lib/rubycritic/generators/html/view_helpers.rb +4 -0
  48. data/lib/rubycritic/source_control_systems/base.rb +1 -0
  49. data/lib/rubycritic/source_control_systems/perforce.rb +108 -0
  50. data/lib/rubycritic/version.rb +1 -1
  51. data/rubycritic.gemspec +1 -1
  52. data/test/analysers_test_helper.rb +7 -0
  53. data/test/lib/rubycritic/analysis_summary_test.rb +29 -0
  54. data/test/lib/rubycritic/generators/console_report_test.rb +3 -3
  55. data/test/lib/rubycritic/source_control_systems/perforce_test.rb +162 -0
  56. metadata +34 -9
  57. data/lib/rubycritic/generators/html/assets/javascripts/jquery-2.1.0.js +0 -9111
  58. data/lib/rubycritic/generators/html/assets/javascripts/jquery.floatThead-v1.2.7.js +0 -754
  59. data/lib/rubycritic/generators/html/assets/javascripts/jquery.scrollTo-1.4.11.js +0 -186
  60. data/lib/rubycritic/generators/html/assets/javascripts/prettify-4-Mar-2013.js +0 -1662
@@ -0,0 +1,4 @@
1
+
2
+ (function($){$.extend({tablesorter:new
3
+ function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:'/\.|\,/g',onRenderHeader:null,selectorHeaders:'thead th',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.metadata&&($($headers[i]).metadata()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter);}else if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}if(!p){p=detectParserForColumn(table,rows,-1,i);}if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\n";}list.push(p);}}if(table.config.debug){log(parsersDebug);}return list;};function detectParserForColumn(table,rows,rowIndex,cellIndex){var l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==''&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log('Checking if value was empty on row:'+rowIndex);}}else{keepLooking=false;}}for(var i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i];}}return parsers[0];}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return rows[rowIndex].cells[cellIndex];}function trimAndGetNodeText(config,node){return $.trim(getElementText(config,node));}function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i];}}return false;}function buildCache(table){if(table.config.debug){var cacheTime=new Date();}var totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=(table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length)||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue;}cache.row.push(c);for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime);}return cache;};function getElementText(config,node){var text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent;}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML;}else{text=node.innerHTML;}}}else{if(typeof(config.textExtraction)=="function"){text=config.textExtraction(node);}else{text=$(node).text();}}return text;}function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date()}var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$(table.tBodies[0]),rows=[];for(var i=0;i<totalRows;i++){var pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var l=r[pos].length;for(var j=0;j<l;j++){tableBody[0].appendChild(r[pos][j]);}}}if(table.config.appender){table.config.appender(table,rows);}rows=null;if(table.config.debug){benchmark("Rebuilt table:",appendTime);}applyWidget(table);setTimeout(function(){$(table).trigger("sortEnd");},0);};function buildHeaders(table){if(table.config.debug){var time=new Date();}var meta=($.metadata)?true:false;var header_index=computeTableHeaderCellIndexes(table);$tableHeaders=$(table.config.selectorHeaders,table).each(function(index){this.column=header_index[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(table.config.sortInitialOrder);this.count=this.order;if(checkHeaderMetadata(this)||checkHeaderOptions(table,index))this.sortDisabled=true;if(checkHeaderOptionsSortingLocked(table,index))this.order=this.lockedOrder=checkHeaderOptionsSortingLocked(table,index);if(!this.sortDisabled){var $th=$(this).addClass(table.config.cssHeader);if(table.config.onRenderHeader)table.config.onRenderHeader.apply($th);}table.config.headerList[index]=this;});if(table.config.debug){benchmark("Built headers:",time);log($tableHeaders);}return $tableHeaders;};function computeTableHeaderCellIndexes(t){var matrix=[];var lookup={};var thead=t.getElementsByTagName('THEAD')[0];var trs=thead.getElementsByTagName('TR');for(var i=0;i<trs.length;i++){var cells=trs[i].cells;for(var j=0;j<cells.length;j++){var c=cells[j];var rowIndex=c.parentNode.rowIndex;var cellId=rowIndex+"-"+c.cellIndex;var rowSpan=c.rowSpan||1;var colSpan=c.colSpan||1
4
+ var firstAvailCol;if(typeof(matrix[rowIndex])=="undefined"){matrix[rowIndex]=[];}for(var k=0;k<matrix[rowIndex].length+1;k++){if(typeof(matrix[rowIndex][k])=="undefined"){firstAvailCol=k;break;}}lookup[cellId]=firstAvailCol;for(var k=rowIndex;k<rowIndex+rowSpan;k++){if(typeof(matrix[k])=="undefined"){matrix[k]=[];}var matrixrow=matrix[k];for(var l=firstAvailCol;l<firstAvailCol+colSpan;l++){matrixrow[l]="x";}}}}return lookup;}function checkCellColSpan(table,rows,row){var arr=[],r=table.tHead.rows,c=r[row].cells;for(var i=0;i<c.length;i++){var cell=c[i];if(cell.colSpan>1){arr=arr.concat(checkCellColSpan(table,headerArr,row++));}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell);}}}return arr;};function checkHeaderMetadata(cell){if(($.metadata)&&($(cell).metadata().sorter===false)){return true;};return false;}function checkHeaderOptions(table,i){if((table.config.headers[i])&&(table.config.headers[i].sorter===false)){return true;};return false;}function checkHeaderOptionsSortingLocked(table,i){if((table.config.headers[i])&&(table.config.headers[i].lockedOrder))return table.config.headers[i].lockedOrder;return false;}function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i<l;i++){getWidgetById(c[i]).format(table);}}function getWidgetById(name){var l=widgets.length;for(var i=0;i<l;i++){if(widgets[i].id.toLowerCase()==name.toLowerCase()){return widgets[i];}}};function formatSortingOrder(v){if(typeof(v)!="Number"){return(v.toLowerCase()=="desc")?1:0;}else{return(v==1)?1:0;}}function isValueInArray(v,a){var l=a.length;for(var i=0;i<l;i++){if(a[i][0]==v){return true;}}return false;}function setHeadersCss(table,$headers,list,css){$headers.removeClass(css[0]).removeClass(css[1]);var h=[];$headers.each(function(offset){if(!this.sortDisabled){h[this.column]=$(this);}});var l=list.length;for(var i=0;i<l;i++){h[list[i][0]].addClass(css[list[i][1]]);}}function fixColumnWidth(table,$headers){var c=table.config;if(c.widthFixed){var colgroup=$('<colgroup>');$("tr:first td",table.tBodies[0]).each(function(){colgroup.append($('<col>').css('width',$(this).width()));});$(table).prepend(colgroup);};}function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i<l;i++){var s=sortList[i],o=c.headerList[s[0]];o.count=s[1];o.count++;}}function multisort(table,sortList,cache){if(table.config.debug){var sortTime=new Date();}var dynamicExp="var sortWrapper = function(a,b) {",l=sortList.length;for(var i=0;i<l;i++){var c=sortList[i][0];var order=sortList[i][1];var s=(table.config.parsers[c].type=="text")?((order==0)?makeSortFunction("text","asc",c):makeSortFunction("text","desc",c)):((order==0)?makeSortFunction("numeric","asc",c):makeSortFunction("numeric","desc",c));var e="e"+i;dynamicExp+="var "+e+" = "+s;dynamicExp+="if("+e+") { return "+e+"; } ";dynamicExp+="else { ";}var orgOrderCol=cache.normalized[0].length-1;dynamicExp+="return a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(var i=0;i<l;i++){dynamicExp+="}; ";}dynamicExp+="return 0; ";dynamicExp+="}; ";if(table.config.debug){benchmark("Evaling expression:"+dynamicExp,new Date());}eval(dynamicExp);cache.normalized.sort(sortWrapper);if(table.config.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time:",sortTime);}return cache;};function makeSortFunction(type,direction,index){var a="a["+index+"]",b="b["+index+"]";if(type=='text'&&direction=='asc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+a+" < "+b+") ? -1 : 1 )));";}else if(type=='text'&&direction=='desc'){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+b+" < "+a+") ? -1 : 1 )));";}else if(type=='numeric'&&direction=='asc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+a+" - "+b+"));";}else if(type=='numeric'&&direction=='desc'){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+b+" - "+a+"));";}};function makeSortText(i){return"((a["+i+"] < b["+i+"]) ? -1 : ((a["+i+"] > b["+i+"]) ? 1 : 0));";};function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : ((b["+i+"] > a["+i+"]) ? 1 : 0));";};function makeSortNumeric(i){return"a["+i+"]-b["+i+"];";};function makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];";};function sortText(a,b){if(table.config.sortLocaleCompare)return a.localeCompare(b);return((a<b)?-1:((a>b)?1:0));};function sortTextDesc(a,b){if(table.config.sortLocaleCompare)return b.localeCompare(a);return((b<a)?-1:((b>a)?1:0));};function sortNumeric(a,b){return a-b;};function sortNumericDesc(a,b){return b-a;};function getCachedSortType(parsers,i){return parsers[i].type;};this.construct=function(settings){return this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var totalRows=($this[0].tBodies[0]&&$this[0].tBodies[0].rows.length)||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var $cell=$(this);var i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j<a.length;j++){if(a[j][0]!=i){config.sortList.push(a[j]);}}}config.sortList.push([i,this.order]);}else{if(isValueInArray(i,config.sortList)){for(var j=0;j<config.sortList.length;j++){var s=config.sortList[j],o=config.headerList[s[0]];if(s[0]==i){o.count=s[1];o.count++;s[1]=o.count%2;}}}else{config.sortList.push([i,this.order]);}};setTimeout(function(){setHeadersCss($this[0],$headers,config.sortList,sortCSS);appendToTable($this[0],multisort($this[0],config.sortList,cache));},1);return false;}}).mousedown(function(){if(config.cancelSelection){this.onselectstart=function(){return false};return false;}});$this.bind("update",function(){var me=this;setTimeout(function(){me.config.parsers=buildParserCache(me,$headers);cache=buildCache(me);},1);}).bind("updateCell",function(e,cell){var config=this.config;var pos=[(cell.parentNode.rowIndex-1),cell.cellIndex];cache.normalized[pos[0]][pos[1]]=config.parsers[pos[1]].format(getElementText(config,cell),cell);}).bind("sorton",function(e,list){$(this).trigger("sortStart");config.sortList=list;var sortList=config.sortList;updateHeaderSortCount(this,sortList);setHeadersCss(this,$headers,sortList,sortCSS);appendToTable(this,multisort(this,sortList,cache));}).bind("appendCache",function(){appendToTable(this,cache);}).bind("applyWidgetId",function(e,id){getWidgetById(id).format(this);}).bind("applyWidgets",function(){applyWidget(this);});if($.metadata&&($(this).metadata()&&$(this).metadata().sortlist)){config.sortList=$(this).metadata().sortlist;}if(config.sortList.length>0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var i=parseInt(s);return(isNaN(i))?0:i;};this.isDigit=function(s,config){return/^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g,'')));};this.clearTableBody=function(table){if($.browser.msie){function empty(){while(this.firstChild)this.removeChild(this.firstChild);}empty.apply(table.tBodies[0]);}else{table.tBodies[0].innerHTML="";}};}});$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return true;},format:function(s){return $.trim(s.toLocaleLowerCase());},type:"text"});ts.addParser({id:"digit",is:function(s,table){var c=table.config;return $.tablesorter.isDigit(s,c);},format:function(s){return $.tablesorter.formatFloat(s);},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[£$€?.]/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g),""));},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);},format:function(s){var a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var item=a[i];if(item.length==2){r+="0"+item;}else{r+=item;}}return $.tablesorter.formatFloat(r);},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\/\/$/.test(s);},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),''));},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);},format:function(s){return $.tablesorter.formatFloat((s!="")?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\%$/.test($.trim(s));},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);},format:function(s,table){var c=table.config;s=s.replace(/\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2");}else if(c.dateFormat=="uk"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1");}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3");}return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime());},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return false;},format:function(s,table,cell){var c=table.config,p=(!c.parserMetadataName)?'sortValue':c.parserMetadataName;return $(cell).metadata()[p];},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var time=new Date();}var $tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=(row%2==0);$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying Zebra widget",time);}}});})(jQuery);
@@ -3,7 +3,7 @@
3
3
  * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
4
4
  *
5
5
  * @name timeago
6
- * @version 1.4.1
6
+ * @version 1.5.3
7
7
  * @requires jQuery v1.2.3+
8
8
  * @author Ryan McGeary
9
9
  * @license MIT License - http://www.opensource.org/licenses/mit-license.php
@@ -11,13 +11,15 @@
11
11
  * For usage and examples, visit:
12
12
  * http://timeago.yarp.com/
13
13
  *
14
- * Copyright (c) 2008-2013, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
14
+ * Copyright (c) 2008-2015, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
15
15
  */
16
16
 
17
17
  (function (factory) {
18
18
  if (typeof define === 'function' && define.amd) {
19
19
  // AMD. Register as an anonymous module.
20
20
  define(['jquery'], factory);
21
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
22
+ factory(require('jquery'));
21
23
  } else {
22
24
  // Browser globals
23
25
  factory(jQuery);
@@ -43,6 +45,7 @@
43
45
  allowFuture: false,
44
46
  localeTitle: false,
45
47
  cutoff: 0,
48
+ autoDispose: true,
46
49
  strings: {
47
50
  prefixAgo: null,
48
51
  prefixFromNow: null,
@@ -66,7 +69,7 @@
66
69
  },
67
70
 
68
71
  inWords: function(distanceMillis) {
69
- if(!this.settings.allowPast && ! this.settings.allowFuture) {
72
+ if (!this.settings.allowPast && ! this.settings.allowFuture) {
70
73
  throw 'timeago allowPast and allowFuture settings can not both be set to false.';
71
74
  }
72
75
 
@@ -80,7 +83,7 @@
80
83
  }
81
84
  }
82
85
 
83
- if(!this.settings.allowPast && distanceMillis >= 0) {
86
+ if (!this.settings.allowPast && distanceMillis >= 0) {
84
87
  return this.settings.strings.inPast;
85
88
  }
86
89
 
@@ -136,7 +139,7 @@
136
139
  // init is default when no action is given
137
140
  // functions are called with context of a single element
138
141
  var functions = {
139
- init: function(){
142
+ init: function() {
140
143
  var refresh_el = $.proxy(refresh, this);
141
144
  refresh_el();
142
145
  var $s = $t.settings;
@@ -144,13 +147,15 @@
144
147
  this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
145
148
  }
146
149
  },
147
- update: function(time){
148
- var parsedTime = $t.parse(time);
149
- $(this).data('timeago', { datetime: parsedTime });
150
- if($t.settings.localeTitle) $(this).attr("title", parsedTime.toLocaleString());
150
+ update: function(timestamp) {
151
+ var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp);
152
+ $(this).data('timeago', { datetime: date });
153
+ if ($t.settings.localeTitle) {
154
+ $(this).attr("title", date.toLocaleString());
155
+ }
151
156
  refresh.apply(this);
152
157
  },
153
- updateFromDOM: function(){
158
+ updateFromDOM: function() {
154
159
  $(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) });
155
160
  refresh.apply(this);
156
161
  },
@@ -164,23 +169,35 @@
164
169
 
165
170
  $.fn.timeago = function(action, options) {
166
171
  var fn = action ? functions[action] : functions.init;
167
- if(!fn){
172
+ if (!fn) {
168
173
  throw new Error("Unknown function name '"+ action +"' for timeago");
169
174
  }
170
175
  // each over objects here and call the requested function
171
- this.each(function(){
176
+ this.each(function() {
172
177
  fn.call(this, options);
173
178
  });
174
179
  return this;
175
180
  };
176
181
 
177
182
  function refresh() {
178
- var data = prepareData(this);
179
183
  var $s = $t.settings;
180
184
 
185
+ //check if it's still visible
186
+ if ($s.autoDispose && !$.contains(document.documentElement,this)) {
187
+ //stop if it has been removed
188
+ $(this).timeago("dispose");
189
+ return this;
190
+ }
191
+
192
+ var data = prepareData(this);
193
+
181
194
  if (!isNaN(data.datetime)) {
182
- if ( $s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
195
+ if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
183
196
  $(this).text(inWords(data.datetime));
197
+ } else {
198
+ if ($(this).attr('title').length > 0) {
199
+ $(this).text($(this).attr('title'));
200
+ }
184
201
  }
185
202
  }
186
203
  return this;
@@ -0,0 +1,46 @@
1
+ !function(){/*
2
+
3
+ Copyright (C) 2006 Google Inc.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ */
17
+ window.PR_SHOULD_USE_CONTINUATION=!0;
18
+ (function(){function T(a){function d(e){var b=e.charCodeAt(0);if(92!==b)return b;var a=e.charAt(1);return(b=w[a])?b:"0"<=a&&"7">=a?parseInt(e.substring(1),8):"u"===a||"x"===a?parseInt(e.substring(2),16):e.charCodeAt(1)}function f(e){if(32>e)return(16>e?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return"\\"===e||"-"===e||"]"===e||"^"===e?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[0-9A-Fa-f]{4}|\\x[0-9A-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\s\S]|-|[^-\\]/g);e=
19
+ [];var a="^"===b[0],c=["["];a&&c.push("^");for(var a=a?1:0,g=b.length;a<g;++a){var h=b[a];if(/\\[bdsw]/i.test(h))c.push(h);else{var h=d(h),k;a+2<g&&"-"===b[a+1]?(k=d(b[a+2]),a+=2):k=h;e.push([h,k]);65>k||122<h||(65>k||90<h||e.push([Math.max(65,h)|32,Math.min(k,90)|32]),97>k||122<h||e.push([Math.max(97,h)&-33,Math.min(k,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];g=[];for(a=0;a<e.length;++a)h=e[a],h[0]<=g[1]+1?g[1]=Math.max(g[1],h[1]):b.push(g=h);for(a=0;a<b.length;++a)h=b[a],
20
+ c.push(f(h[0])),h[1]>h[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(f(h[1])));c.push("]");return c.join("")}function v(e){for(var a=e.source.match(/(?:\[(?:[^\x5C\x5D]|\\[\s\S])*\]|\\u[A-Fa-f0-9]{4}|\\x[A-Fa-f0-9]{2}|\\[0-9]+|\\[^ux0-9]|\(\?[:!=]|[\(\)\^]|[^\x5B\x5C\(\)\^]+)/g),c=a.length,d=[],g=0,h=0;g<c;++g){var k=a[g];"("===k?++h:"\\"===k.charAt(0)&&(k=+k.substring(1))&&(k<=h?d[k]=-1:a[g]=f(k))}for(g=1;g<d.length;++g)-1===d[g]&&(d[g]=++A);for(h=g=0;g<c;++g)k=a[g],"("===k?(++h,d[h]||(a[g]="(?:")):"\\"===
21
+ k.charAt(0)&&(k=+k.substring(1))&&k<=h&&(a[g]="\\"+d[k]);for(g=0;g<c;++g)"^"===a[g]&&"^"!==a[g+1]&&(a[g]="");if(e.ignoreCase&&n)for(g=0;g<c;++g)k=a[g],e=k.charAt(0),2<=k.length&&"["===e?a[g]=b(k):"\\"!==e&&(a[g]=k.replace(/[a-zA-Z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var A=0,n=!1,l=!1,m=0,c=a.length;m<c;++m){var p=a[m];if(p.ignoreCase)l=!0;else if(/[a-z]/i.test(p.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){n=!0;
22
+ l=!1;break}}for(var w={b:8,t:9,n:10,v:11,f:12,r:13},r=[],m=0,c=a.length;m<c;++m){p=a[m];if(p.global||p.multiline)throw Error(""+p);r.push("(?:"+v(p)+")")}return new RegExp(r.join("|"),l?"gi":"g")}function U(a,d){function f(a){var c=a.nodeType;if(1==c){if(!b.test(a.className)){for(c=a.firstChild;c;c=c.nextSibling)f(c);c=a.nodeName.toLowerCase();if("br"===c||"li"===c)v[l]="\n",n[l<<1]=A++,n[l++<<1|1]=a}}else if(3==c||4==c)c=a.nodeValue,c.length&&(c=d?c.replace(/\r\n?/g,"\n"):c.replace(/[ \t\r\n]+/g,
23
+ " "),v[l]=c,n[l<<1]=A,A+=c.length,n[l++<<1|1]=a)}var b=/(?:^|\s)nocode(?:\s|$)/,v=[],A=0,n=[],l=0;f(a);return{a:v.join("").replace(/\n$/,""),c:n}}function J(a,d,f,b,v){f&&(a={h:a,l:1,j:null,m:null,a:f,c:null,i:d,g:null},b(a),v.push.apply(v,a.g))}function V(a){for(var d=void 0,f=a.firstChild;f;f=f.nextSibling)var b=f.nodeType,d=1===b?d?a:f:3===b?W.test(f.nodeValue)?a:d:d;return d===a?void 0:d}function G(a,d){function f(a){for(var l=a.i,m=a.h,c=[l,"pln"],p=0,w=a.a.match(v)||[],r={},e=0,t=w.length;e<
24
+ t;++e){var z=w[e],q=r[z],g=void 0,h;if("string"===typeof q)h=!1;else{var k=b[z.charAt(0)];if(k)g=z.match(k[1]),q=k[0];else{for(h=0;h<A;++h)if(k=d[h],g=z.match(k[1])){q=k[0];break}g||(q="pln")}!(h=5<=q.length&&"lang-"===q.substring(0,5))||g&&"string"===typeof g[1]||(h=!1,q="src");h||(r[z]=q)}k=p;p+=z.length;if(h){h=g[1];var B=z.indexOf(h),D=B+h.length;g[2]&&(D=z.length-g[2].length,B=D-h.length);q=q.substring(5);J(m,l+k,z.substring(0,B),f,c);J(m,l+k+B,h,K(q,h),c);J(m,l+k+D,z.substring(D),f,c)}else c.push(l+
25
+ k,q)}a.g=c}var b={},v;(function(){for(var f=a.concat(d),l=[],m={},c=0,p=f.length;c<p;++c){var w=f[c],r=w[3];if(r)for(var e=r.length;0<=--e;)b[r.charAt(e)]=w;w=w[1];r=""+w;m.hasOwnProperty(r)||(l.push(w),m[r]=null)}l.push(/[\0-\uffff]/);v=T(l)})();var A=d.length;return f}function y(a){var d=[],f=[];a.tripleQuotedStrings?d.push(["str",/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
26
+ null,"'\""]):a.multiLineStrings?d.push(["str",/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):d.push(["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]);a.verbatimStrings&&f.push(["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var b=a.hashComments;b&&(a.cStyleComments?(1<b?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,
27
+ null,"#"]),f.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):d.push(["com",/^#[^\r\n]*/,null,"#"]));a.cStyleComments&&(f.push(["com",/^\/\/[^\r\n]*/,null]),f.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null]));if(b=a.regexLiterals){var v=(b=1<b?"":"\n\r")?".":"[\\S\\s]";f.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+
28
+ ("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+v+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+v+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&f.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&f.push(["kwd",new RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),null]);d.push(["pln",/^\s+/,null," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");f.push(["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],["pln",/^[a-z_$][a-z_$@0-9]*/i,
29
+ null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pln",/^\\[\s\S]?/,null],["pun",new RegExp(b),null]);return G(d,f)}function L(a,d,f){function b(a){var c=a.nodeType;if(1==c&&!A.test(a.className))if("br"===a.nodeName)v(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((3==c||4==c)&&f){var d=a.nodeValue,q=d.match(n);q&&(c=d.substring(0,q.index),a.nodeValue=c,(d=d.substring(q.index+q[0].length))&&
30
+ a.parentNode.insertBefore(l.createTextNode(d),a.nextSibling),v(a),c||a.parentNode.removeChild(a))}}function v(a){function b(a,c){var d=c?a.cloneNode(!1):a,k=a.parentNode;if(k){var k=b(k,1),e=a.nextSibling;k.appendChild(d);for(var f=e;f;f=e)e=f.nextSibling,k.appendChild(f)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;a=b(a.nextSibling,0);for(var d;(d=a.parentNode)&&1===d.nodeType;)a=d;c.push(a)}for(var A=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,l=a.ownerDocument,m=l.createElement("li");a.firstChild;)m.appendChild(a.firstChild);
31
+ for(var c=[m],p=0;p<c.length;++p)b(c[p]);d===(d|0)&&c[0].setAttribute("value",d);var w=l.createElement("ol");w.className="linenums";d=Math.max(0,d-1|0)||0;for(var p=0,r=c.length;p<r;++p)m=c[p],m.className="L"+(p+d)%10,m.firstChild||m.appendChild(l.createTextNode("\u00a0")),w.appendChild(m);a.appendChild(w)}function t(a,d){for(var f=d.length;0<=--f;){var b=d[f];I.hasOwnProperty(b)?E.console&&console.warn("cannot override language handler %s",b):I[b]=a}}function K(a,d){a&&I.hasOwnProperty(a)||(a=/^\s*</.test(d)?
32
+ "default-markup":"default-code");return I[a]}function M(a){var d=a.j;try{var f=U(a.h,a.l),b=f.a;a.a=b;a.c=f.c;a.i=0;K(d,b)(a);var v=/\bMSIE\s(\d+)/.exec(navigator.userAgent),v=v&&8>=+v[1],d=/\n/g,A=a.a,n=A.length,f=0,l=a.c,m=l.length,b=0,c=a.g,p=c.length,w=0;c[p]=n;var r,e;for(e=r=0;e<p;)c[e]!==c[e+2]?(c[r++]=c[e++],c[r++]=c[e++]):e+=2;p=r;for(e=r=0;e<p;){for(var t=c[e],z=c[e+1],q=e+2;q+2<=p&&c[q+1]===z;)q+=2;c[r++]=t;c[r++]=z;e=q}c.length=r;var g=a.h;a="";g&&(a=g.style.display,g.style.display="none");
33
+ try{for(;b<m;){var h=l[b+2]||n,k=c[w+2]||n,q=Math.min(h,k),B=l[b+1],D;if(1!==B.nodeType&&(D=A.substring(f,q))){v&&(D=D.replace(d,"\r"));B.nodeValue=D;var N=B.ownerDocument,u=N.createElement("span");u.className=c[w+1];var y=B.parentNode;y.replaceChild(u,B);u.appendChild(B);f<h&&(l[b+1]=B=N.createTextNode(A.substring(q,h)),y.insertBefore(B,u.nextSibling))}f=q;f>=h&&(b+=2);f>=k&&(w+=2)}}finally{g&&(g.style.display=a)}}catch(x){E.console&&console.log(x&&x.stack||x)}}var E=window,C=["break,continue,do,else,for,if,return,while"],
34
+ F=[[C,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],H=[F,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
35
+ O=[F,"abstract,assert,boolean,byte,extends,finally,final,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],P=[F,"abstract,as,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],F=[F,"debugger,eval,export,function,get,instanceof,null,set,undefined,var,with,Infinity,NaN"],
36
+ Q=[C,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],R=[C,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],C=[C,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],S=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
37
+ W=/\S/,X=y({keywords:[H,P,O,F,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",Q,R,C],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),I={};t(X,["default-code"]);t(G([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
38
+ /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),"default-markup htm html mxml xhtml xml xsl".split(" "));t(G([["pln",/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
39
+ ["pun",/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);t(G([],[["atv",/^[\s\S]+/]]),["uq.val"]);t(y({keywords:H,hashComments:!0,cStyleComments:!0,types:S}),"c cc cpp cxx cyc m".split(" "));t(y({keywords:"null,true,false"}),["json"]);t(y({keywords:P,hashComments:!0,cStyleComments:!0,
40
+ verbatimStrings:!0,types:S}),["cs"]);t(y({keywords:O,cStyleComments:!0}),["java"]);t(y({keywords:C,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);t(y({keywords:Q,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);t(y({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),
41
+ ["perl","pl","pm"]);t(y({keywords:R,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);t(y({keywords:F,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);t(y({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);t(G([],[["str",/^[\s\S]+/]]),["regex"]);
42
+ var Y=E.PR={createSimpleLexer:G,registerLangHandler:t,sourceDecorator:y,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:E.prettyPrintOne=function(a,d,f){f=f||!1;d=d||null;var b=document.createElement("div");b.innerHTML="<pre>"+a+"</pre>";b=b.firstChild;f&&L(b,f,!0);M({j:d,m:f,h:b,l:1,a:null,i:null,c:null,
43
+ g:null});return b.innerHTML},prettyPrint:E.prettyPrint=function(a,d){function f(){for(var b=E.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;p<t.length&&c.now()<b;p++){for(var d=t[p],l=g,m=d;m=m.previousSibling;){var n=m.nodeType,u=(7===n||8===n)&&m.nodeValue;if(u?!/^\??prettify\b/.test(u):3!==n||/\S/.test(m.nodeValue))break;if(u){l={};u.replace(/\b(\w+)=([\w:.%+-]+)/g,function(a,b,c){l[b]=c});break}}m=d.className;if((l!==g||r.test(m))&&!e.test(m)){n=!1;for(u=d.parentNode;u;u=u.parentNode)if(q.test(u.tagName)&&
44
+ u.className&&r.test(u.className)){n=!0;break}if(!n){d.className+=" prettyprinted";n=l.lang;if(!n){var n=m.match(w),C;!n&&(C=V(d))&&z.test(C.tagName)&&(n=C.className.match(w));n&&(n=n[1])}if(y.test(d.tagName))u=1;else var u=d.currentStyle,x=v.defaultView,u=(u=u?u.whiteSpace:x&&x.getComputedStyle?x.getComputedStyle(d,null).getPropertyValue("white-space"):0)&&"pre"===u.substring(0,3);x=l.linenums;(x="true"===x||+x)||(x=(x=m.match(/\blinenums\b(?::(\d+))?/))?x[1]&&x[1].length?+x[1]:!0:!1);x&&L(d,x,u);
45
+ M({j:n,h:d,m:x,l:u,a:null,i:null,c:null,g:null})}}}p<t.length?E.setTimeout(f,250):"function"===typeof a&&a()}for(var b=d||document.body,v=b.ownerDocument||document,b=[b.getElementsByTagName("pre"),b.getElementsByTagName("code"),b.getElementsByTagName("xmp")],t=[],n=0;n<b.length;++n)for(var l=0,m=b[n].length;l<m;++l)t.push(b[n][l]);var b=null,c=Date;c.now||(c={now:function(){return+new Date}});var p=0,w=/\blang(?:uage)?-([\w.]+)(?!\S)/,r=/\bprettyprint\b/,e=/\bprettyprinted\b/,y=/pre|xmp/i,z=/^code$/i,
46
+ q=/^(?:pre|code|xmp)$/i,g={};f()}},H=E.define;"function"===typeof H&&H.amd&&H("google-code-prettify",[],function(){return Y})})();}()
@@ -1,165 +1,448 @@
1
- * {
2
- box-sizing: border-box;
1
+ /* Font Faces */
2
+ @font-face {
3
+ font-family: 'RobotoMedium';
4
+ src: url('../fonts/Roboto-Medium.ttf') format('truetype');
3
5
  }
4
-
5
- .group:after {
6
- content: '';
7
- display: table;
8
- clear: both;
6
+ @font-face {
7
+ font-family: 'RobotoRegular';
8
+ src: url('../fonts/Roboto-Regular.ttf') format('truetype');
9
9
  }
10
10
 
11
- html {
12
- overflow-y: scroll;
13
- font-family: "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
14
- font-size: 1em;
15
- }
11
+ /*Helpers*/
12
+ .marginTop20 { margin-top:20px; }
13
+ /*End of Helpers*/
14
+ /*Layout Styles*/
15
+ body { overflow-x: hidden; }
16
16
 
17
- html, body {
18
- margin: 0;
19
- padding: 0;
17
+ header {
18
+ max-height: 85px;
19
+ background: #fff!important;
20
+ border:none!important;
21
+ padding: 10px 20px;
22
+ box-shadow: 0 1px 10px rgba(0,0,0,.15);
20
23
  }
21
24
 
22
- a {
23
- color: #00adc4;
24
- text-decoration: none;
25
- }
25
+ /* Toggle Styles */
26
26
 
27
- a:hover {
28
- border-bottom: 1px solid;
27
+ #wrapper {
28
+ padding-left: 0;
29
+ -webkit-transition: all 0.5s ease;
30
+ -moz-transition: all 0.5s ease;
31
+ -o-transition: all 0.5s ease;
32
+ transition: all 0.5s ease;
33
+ margin-top: 60px;
34
+ }
35
+
36
+ #wrapper.toggled {
37
+ padding-left: 120px;
38
+ }
39
+
40
+ #sidebar-wrapper {
41
+ z-index: 1000;
42
+ position: fixed;
43
+ left: 120px;
44
+ width: 0;
45
+ height: 100%;
46
+ margin-left: -120px;
47
+ overflow-y: auto;
48
+ background: #fff;
49
+ -webkit-transition: all 0.5s ease;
50
+ -moz-transition: all 0.5s ease;
51
+ -o-transition: all 0.5s ease;
52
+ transition: all 0.5s ease;
53
+ font-family: "RobotoMedium";
54
+ font-weight: normal;
55
+ font-size: 16px;
29
56
  }
30
-
31
- a:visited {
32
- color: #4E6072;
57
+ #page-content-wrapper {
58
+ font-family: "RobotoRegular"
59
+ }
60
+ #wrapper.toggled #sidebar-wrapper {
61
+ width: 120px;
33
62
  }
34
63
 
35
- .container {
64
+ #page-content-wrapper {
36
65
  width: 100%;
37
- max-width: 80em;
38
- margin: 0 auto;
66
+ position: absolute;
67
+ background:#f3f3f3;
68
+ /*height:100vh;*/
69
+ }
70
+ .Summary_Wrapper_Main { min-height:inherit!important; }
71
+ .Page_Title { background:#9B111D; padding: 10px 50px; }
72
+ .Page_Title h3 { margin: 10px 0px;color: #fff; }
73
+ .Page_Title h3 small { color: #fff;}
74
+ .Content_Wrapper {
75
+ padding: 25px;
76
+ display: inline-block;
77
+ width: 100%;
78
+ font-size: 17px;
79
+ }
80
+
81
+ .Graph_Cards {
82
+ padding:20px;
83
+ background:#fff;
84
+ border-radius:10px;
85
+ box-shadow: 0 1px 1px rgba(0,0,0,.15);
86
+ margin-bottom:20px;
87
+ /*min-height:330px;*/
88
+ }
89
+ .Graph_Cards img {margin-top:30px;}
90
+ .Graph_Cards h4 {color:#A4A4A4;}
91
+ .Summary_Wrapper {display:inline-block;width:100%;}
92
+ .Summary_Title {padding:left:0;}
93
+ .Summary_Title h3 {padding:10px;position:relative;color:#fff;}
94
+ .Summary_Title h3:after {
95
+ content: "";
96
+ width: 0;
97
+ height: 0;
98
+ border-top: 0px solid transparent;
99
+ border-bottom: 46px solid transparent;
100
+ border-left: 30px solid #fff;
101
+ position: absolute;
102
+ right: -30px;
103
+ top: 0;
104
+ }
105
+ .Green_DR h3 {background:#00A900;}
106
+ .Green_DR h3:after{border-left-color:#00a900}
107
+ .Green_DR .list-inline h4 {color:#00A900;}
108
+ .Green_Light h3 {background:#7FCB00;}
109
+ .Green_Light h3:after{border-left-color:#7FCB00}
110
+ .Green_Light .list-inline h4 {color:#7FCB00;}
111
+ .Yellow_Color h3 {background:#FFED00;}
112
+ .Yellow_Color h3:after{border-left-color:#FFED00}
113
+ .Yellow_Color .list-inline h4 {color:#FFED00;}
114
+ .Orange_Color h3 {background:#F77700;}
115
+ .Orange_Color h3:after{border-left-color:#F77700}
116
+ .Orange_Color .list-inline h4 {color:#F77700;}
117
+ .Red_Color h3 {background:#ED0000;}
118
+ .Red_Color h3:after{border-left-color:#ED0000}
119
+ .Red_Color .list-inline h4 {color:#ED0000;}
120
+ .Maroon_Color h3 {background:#B31F27;}
121
+ .Maroon_Color h3:after{border-left-color:#B31F27}
122
+ .Maroon_Color .list-inline h4 {color:#B31F27;}
123
+
124
+ .Summary_Content .list-inline {
125
+ text-align:center;
126
+ margin-top:10px;
127
+ pading-right:0;
128
+ }
129
+ .Summary_Content .list-inline span {color:#A4A4A4}
130
+ #wrapper.toggled #page-content-wrapper {
131
+ position: absolute;
132
+ margin-right: -250px;
39
133
  }
40
134
 
41
- .project-header {
42
- padding: 1em 0 1em 0;
43
- margin-bottom: 2em;
44
- background-color: #F2F1EE;
45
- }
135
+ /* Sidebar Styles */
46
136
 
47
- .project-header .container {
48
- padding: 0 2rem;
137
+ .sidebar-nav {
138
+ position: absolute;
139
+ top: 0;
140
+ width: 120px;
141
+ text-align:center;
142
+ margin: 0;
143
+ padding: 0;
144
+ list-style: none;
49
145
  }
50
146
 
51
- .logo {
52
- float: left;
53
- margin: 0;
147
+ .sidebar-nav li {
148
+ display:block;text-align:center;
149
+ line-height: 40px;
54
150
  }
55
151
 
56
- a.logo-link {
57
- color: black;
152
+ .sidebar-nav li a {
153
+ display: block;
154
+ text-decoration: none;
155
+ color: #969696;padding:10px;
156
+ }
157
+ .sidebar-nav li a.active {
158
+ border-left: 5px solid #9b111d;
159
+ color: #9b111d;
160
+ }
161
+ .sidebar-nav li a.active {
162
+ border-left: 2px solid #9b111d;
163
+ color: #9b111d;
164
+ }
165
+ .sidebar-nav li a:hover {
166
+ text-decoration: none;
167
+ color: #fff;
168
+ background: rgba(255,255,255,0.2);
58
169
  }
59
170
 
60
- .project-nav {
61
- float: left;
62
- margin-left: 4rem;
63
- line-height: 2.5em;
171
+ .sidebar-nav li a:active,
172
+ .sidebar-nav li a:focus {
173
+ text-decoration: none;
64
174
  }
65
175
 
66
- a.project-nav-item {
67
- color: #323333;
68
- margin-right: 3rem;
176
+ .sidebar-nav > .sidebar-brand {
177
+ height: 65px;
178
+ font-size: 18px;
179
+ line-height: 60px;
69
180
  }
70
181
 
71
- a.project-nav-item:hover {
72
- border-bottom: 1px solid;
182
+ .sidebar-nav > .sidebar-brand a {
183
+ color: #999999;
73
184
  }
74
185
 
75
- .chart-container {
76
- max-width: 1000px;
77
- margin: 0 auto;
186
+ .sidebar-nav > .sidebar-brand a:hover {
187
+ color: #fff;
188
+ background: none;
78
189
  }
79
190
 
80
- .index-table {
81
- width: 100%;
82
- border-collapse: collapse;
191
+ .sidebar-nav .fa {
192
+ font-size: 24px;
83
193
  }
84
194
 
85
- .index-table th {
195
+ @media(min-width:768px) {
196
+ #wrapper {
197
+ padding-left: 120px;
198
+ }
199
+
200
+ #wrapper.toggled {
201
+ padding-left: 0;
202
+ }
203
+
204
+ #sidebar-wrapper {
205
+ width: 120px;
206
+ }
207
+
208
+ #wrapper.toggled #sidebar-wrapper {
209
+ width: 0;
210
+ }
211
+
212
+ #page-content-wrapper {
213
+ padding:0px;
214
+ position: relative;
215
+ }
216
+
217
+ #wrapper.toggled #page-content-wrapper {
218
+ position: relative;
219
+ margin-right: 0;
220
+ }
221
+ }
222
+ .sidebar-nav li a:hover {color:#9B111D;}
223
+ .sidebar-nav li a i,.sidebar-nav li a img {font-size:18px;display:block;margin:0 auto;}
224
+ /*End of Layout Stlyes*/
225
+
226
+ .fadeIn {-webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
227
+ -moz-animation: fadein 2s; /* Firefox < 16 */
228
+ -ms-animation: fadein 2s; /* Internet Explorer */
229
+ -o-animation: fadein 2s; /* Opera < 12.1 */
230
+ animation: fadein 2s;}
231
+ .fadeIn-2 {-webkit-animation: fadein 2.5s; /* Safari, Chrome and Opera > 12.1 */
232
+ -moz-animation: fadein 2.5s; /* Firefox < 16 */
233
+ -ms-animation: fadein 2.5s; /* Internet Explorer */
234
+ -o-animation: fadein 2.5s; /* Opera < 12.1 */
235
+ animation: fadein 2.5s;}
236
+ .fadeIn-3 {-webkit-animation: fadein 3s; /* Safari, Chrome and Opera > 12.1 */
237
+ -moz-animation: fadein 3s; /* Firefox < 16 */
238
+ -ms-animation: fadein 3s; /* Internet Explorer */
239
+ -o-animation: fadein 3s; /* Opera < 12.1 */
240
+ animation: fadein 3s;}
241
+ @keyframes fadein {
242
+ from { opacity: 0; }
243
+ to { opacity: 1; }
244
+ }
245
+
246
+ /* Firefox < 16 */
247
+ @-moz-keyframes fadein {
248
+ from { opacity: 0; }
249
+ to { opacity: 1; }
250
+ }
251
+ @-webkit-keyframes fadein {
252
+ from { opacity: 0; }
253
+ to { opacity: 1; }
254
+ }
255
+
256
+ /* Internet Explorer */
257
+ @-ms-keyframes fadein {
258
+ from { opacity: 0; }
259
+ to { opacity: 1; }
260
+ }
261
+
262
+ /* Opera < 12.1 */
263
+ @-o-keyframes fadein {
264
+ from { opacity: 0; }
265
+ to { opacity: 1; }
266
+ }
267
+ /* SMELLS */
268
+ .table > tbody > tr > td {
269
+ vertical-align: middle;
270
+ }
271
+ .table > thead > tr th:nth-child(2) {
272
+ padding-left: 20px;
273
+ }
274
+
275
+ /*TH*/
276
+ .table th {
277
+ color: #4e4d4d;
278
+ font-weight: bold;
279
+ }
280
+ .table.code th:nth-child(1) {
281
+ text-align: center;
282
+ }
283
+ .table.code th:nth-child(2) {
86
284
  text-align: left;
87
- padding: 8px 10px;
88
- border-bottom: 1px solid silver;
89
- font-size: 1.55em;
90
- font-weight: normal;
91
- background-color: white;
92
285
  }
93
-
94
- .floatThead-container {
95
- box-shadow: 0 3px 4px -2px rgb(224, 223, 223);
286
+ .table.code th {
287
+ text-align: right;
96
288
  }
97
289
 
98
- .index-table tr:nth-child(odd) {
99
- background-color: #f9f9f9;
290
+ /*TD*/
291
+ .table td {
292
+ color: #777575;
293
+ }
294
+ .table.code td:nth-child(1) {
295
+ text-align: center;
296
+ }
297
+ .table.code td:nth-child(2) {
298
+ text-align: left;
299
+ }
300
+ .table.code td {
301
+ text-align: right;
100
302
  }
101
303
 
102
- .index-table tr:hover {
103
- background-color: #e9fafc;
304
+ .status, .rating {
305
+ width: 40px;
306
+ height: 40px;
307
+ border-radius: 50%;
308
+ line-height: 40px;
309
+ font-size: 11px;
310
+ text-align: center;
311
+ color: #fff;
312
+ display: inline-block;
313
+ cursor: pointer;
104
314
  }
105
315
 
106
- .index-table .circle {
107
- width: 28px;
108
- height: 28px;
316
+ .rating.big {
317
+ width: 40px;
318
+ height: 40px;
319
+ line-height: 40px;
320
+ font-size: 25px;
109
321
  }
110
322
 
111
- .index-table .circled-text {
112
- display: inline-block;
113
- line-height: 28px;
323
+ .status.new { background: #00aa00; }
324
+ .status.old { background: #cccccc; }
325
+
326
+ .rating { font-size: 25px; }
327
+ .rating.a { background: #00aa00; }
328
+ .rating.b { background: #80cc00; }
329
+ .rating.c { background: #ffed00; }
330
+
331
+ .rating.d { background: #f77700; }
332
+ .rating.e { background: #ed0000; }
333
+ .rating.f { background: #b32028; }
334
+
335
+ .code-top-detail {
336
+ border-bottom: 1px solid #000;
114
337
  }
115
338
 
116
- .tablesorter-headerAsc .tablesorter-header-inner:after,
117
- .tablesorter-headerDesc .tablesorter-header-inner:after {
118
- position: absolute;
339
+ .right-to-left li { float: right; }
340
+ .right-to-left>li.active>a {
341
+ color: #9B111D;
342
+ background: none;
343
+ border-bottom: 2px solid #9B111D;
344
+ border-radius: 0;
345
+ }
346
+ .right-to-left>li.active>a:hover {
347
+ background: none;
348
+ color: #9B111D;
349
+ }
350
+ .right-to-left>li>a {
351
+ color: #a4a4a4;
352
+ padding: 10px 20px 20px;
353
+ border-bottom: 2px solid #f3f3f3;
119
354
  }
120
355
 
121
- .tablesorter-headerAsc .tablesorter-header-inner:after {
122
- content: '\00A0\2191';
356
+ .critic-num {
357
+ width: 1%;
358
+ min-width: 50px;
359
+ padding-right: 10px;
360
+ padding-left: 10px;
361
+ font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
362
+ font-size: 12px;
363
+ line-height: 20px;
364
+ color: rgba(0,0,0,0.3);
365
+ text-align: right;
366
+ white-space: nowrap;
367
+ vertical-align: top;
368
+ cursor: pointer;
369
+ -webkit-user-select: none;
370
+ -moz-user-select: none;
371
+ -ms-user-select: none;
372
+ user-select: none;
373
+ border: solid #eee;
374
+ border-width: 0 1px 0 0;
123
375
  }
124
- .tablesorter-headerDesc .tablesorter-header-inner:after {
125
- content: '\00A0\2193';
376
+ .critic-code-inner {
377
+ overflow: visible;
378
+ font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
379
+ font-size: 12px;
380
+ color: #333;
381
+ word-wrap: normal;
382
+ white-space: pre;
383
+ }
384
+ .critic-code {
385
+ position: relative;
386
+ padding-right: 10px;
387
+ padding-left: 10px;
388
+ line-height: 20px;
389
+ vertical-align: top;
390
+ }
391
+ .critic-num::before {
392
+ content: attr(data-line-number);
126
393
  }
127
394
 
128
- .sortable-table th:focus {
129
- outline: none;
395
+ .old td {
396
+ background-color: #f0dbdb;
397
+ }
398
+ .old td:first-child, .red {
399
+ background-color: #feb9b9;
130
400
  }
131
401
 
132
- .sortable-table th:hover {
133
- cursor: pointer;
402
+ .line-code td {
403
+ background-color: #efefef;
134
404
  }
135
405
 
136
- .index-table td, .index-table th {
137
- padding: 1rem 2rem;
406
+ .grey {
407
+ background-color: #ebebeb;
408
+ }
409
+ .green {
410
+ background-color: green;
411
+ }
412
+ .success {
413
+ background-color: #a3d39c;
414
+ color: #598527;
415
+ }
416
+ .success b {
417
+ color: #197b30;
138
418
  }
139
419
 
140
- .index-table .numeric-cell {
141
- text-align: right;
420
+ .errors {
421
+ background-position: 10px 25px;
422
+ background-repeat: no-repeat;
423
+ margin-bottom: 5px;
424
+ color: #8b8b8b;
425
+ font-size: 14px;
426
+ }
427
+ .errors b {
428
+ font-size: 16px;
429
+ font-weight: 400;
430
+ }
431
+ .rc-position {
432
+ position: absolute;
433
+ right: 15px;
434
+ top: 15px;
142
435
  }
143
436
 
144
437
  .index-table .centered-cell {
145
438
  text-align: center;
146
439
  }
147
440
 
148
- .button {
149
- margin: 0;
150
- padding: 0.5em 1em;
151
- border: 1px solid black;
152
- font-size: 0.9em;
153
- border-radius: 0.2em;
154
- cursor: pointer;
155
- transition-property: background-color;
156
- -webkit-transition-duration: 0.5s;
157
- transition-duration: 0.5s;
158
- }
159
-
160
441
  .circle {
161
442
  display: block;
162
443
  border-radius: 50%;
444
+ width: 50px;
445
+ height: 50px;
163
446
  }
164
447
 
165
448
  .circled-text {
@@ -172,10 +455,13 @@ a.project-nav-item:hover {
172
455
  -ms-user-select: none;
173
456
  user-select: none;
174
457
  cursor: default;
458
+ line-height: 50px;
459
+ font-size: 32px;
175
460
  }
176
461
 
177
462
  .smells-index-table .circled-text {
178
- font-size: 10px;
463
+ font-size: 15px;
464
+ float: left;
179
465
  }
180
466
 
181
467
  .status-old {
@@ -186,118 +472,57 @@ a.project-nav-item:hover {
186
472
  background-color: #FF4136;
187
473
  }
188
474
 
189
- .file-header {
190
- position: relative;
191
- padding: 0 0 10px 2rem;
192
- border-bottom: 1px solid silver;
193
- }
194
-
195
- .file-header .circle {
196
- width: 50px;
197
- height: 50px;
198
- }
199
-
200
- .file-header .circled-text {
201
- float: left;
202
- line-height: 50px;
203
- font-size: 32px;
204
- }
205
-
206
- .rating-a {
207
- background-color: #2ECC40;
208
- }
209
-
210
- .rating-b {
211
- background-color: #2ECC40;
212
- }
213
-
214
- .rating-c {
215
- background-color: #FFDC00;
216
- }
217
-
218
- .rating-d {
219
- background-color: #FF851B;
220
- }
221
-
222
- .rating-f {
223
- background-color: #FF4136;
475
+ .committed-at {
476
+ float: right;
477
+ color: #fff;
478
+ margin-top: 11px;
224
479
  }
225
480
 
226
- .file-name {
227
- float: left;
228
- margin: 0;
229
- line-height: 50px;
230
- font-weight: normal;
231
- }
232
-
233
- .file-committed-at {
234
- float: left;
235
- margin: 20px 0 0 28px;
236
- font-size: 13px;
237
- color: #666666;
481
+ .smells {
482
+ position: relative;
483
+ white-space: normal;
238
484
  }
485
+ .smells .heading { background-color: #F8AE60; }
486
+ .smells .description { background-color: #FBE5BE; }
487
+ .smells .fa-warning { color: #f57e00; }
488
+ .smells span { margin-left: 20px; }
489
+ .smells a { color: white; }
490
+ .smells a:hover { color: #337ab7; }
239
491
 
240
- .file-stats {
241
- clear: both;
242
- width: 300px;
492
+ .table-header {
493
+ cursor: pointer;
243
494
  }
244
-
245
- .file-stat {
246
- float: left;
247
- margin: 3px;
248
- width: 130px;
249
- font-size: 12px;
250
- white-space: nowrap;
495
+ .table-header-asc:after {
496
+ content: '\00A0\2191';
251
497
  }
252
-
253
- .file-header.rated .file-stats {
254
- margin-left: 68px;
498
+ .table-header-desc:after {
499
+ content: '\00A0\2193';
255
500
  }
256
-
257
- .file-header.rated .file-name {
258
- margin-left: 20px;
501
+ .container-fluid {
502
+ padding-left: 0px;
503
+ padding-right: 0px;
259
504
  }
260
505
 
261
- .file-header.unrated .rating {
262
- display: none;
506
+ span.metric {
507
+ font-size: 20px;
263
508
  }
264
509
 
265
- .smells-toggle-button {
266
- position: absolute;
267
- right: 64px;
268
- bottom: -17px;
269
- border-color: silver;
270
- background-color: #EEEBE9;
510
+ .sortable-table th {
511
+ cursor: pointer;
271
512
  }
272
513
 
273
- .smells-toggle-button:hover {
274
- background-color: #D1CFCD;
514
+ .obtained-score {
515
+ font-size: 1.5em;
275
516
  }
276
517
 
277
- .smells {
278
- font-family: "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
279
- margin: 2px 0 22px 0;
280
- padding-left: 0;
281
- border: 1px solid #000;
282
- background-color: #EEEBE9;
283
- white-space: normal;
284
- list-style-type: disc;
518
+ .total-score {
519
+ font-size: 1em;
285
520
  }
286
521
 
287
- .smell {
288
- margin: 5px 5px 5px 30px;
522
+ .logo {
289
523
  font-size: 24px;
290
- }
291
-
292
- .smell.new {
293
- color: #F00;
294
- }
295
-
296
- .smell.old {
297
- color: #FA0;
298
- }
299
-
300
- .smell .description {
301
- color: #000;
302
- font-size: initial;
524
+ color: black;
525
+ font-weight: bold;
526
+ display: inline-block;
527
+ margin-left: 20px;
303
528
  }