Skip to content

Commit

Permalink
#2 Added "no cp's found" message. Modified UI & Layout
Browse files Browse the repository at this point in the history
  • Loading branch information
linslin committed Oct 30, 2016
1 parent c3073a4 commit 3348c36
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 12 deletions.
2 changes: 1 addition & 1 deletion Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ module.exports = function (grunt) {
jscpdReporter: {
src : ['Gruntfile.js', 'tasks/*.js'],
options: {
sourcefile: 'mocks/output.xml',
sourcefile: 'mocks/outputEmpty.xml',
outputDir: 'report/'
}
}
Expand Down
3 changes: 3 additions & 0 deletions mocks/outputEmpty.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?xml version='1.0' encoding='UTF-8' ?>
<pmd-cpd>
</pmd-cpd>
7 changes: 4 additions & 3 deletions tasks/jscpd-reporter.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@ module.exports = function(grunt) {
var templates = {
layout: '',
_item: '',
_file: ''
_file: '',
_noDuplicates: ''
};


Expand Down Expand Up @@ -164,7 +165,6 @@ module.exports = function(grunt) {
//make item global for run
var item = cpdOutput['pmd-cpd'].duplication[key];


for (var prop in item) {
if(item.hasOwnProperty(prop)){

Expand Down Expand Up @@ -216,6 +216,8 @@ module.exports = function(grunt) {

i++;
}
} else if (cpdOutput['pmd-cpd'] !== undefined) {
itemsHTML = templates._noDuplicates;
}

//render items into layout
Expand Down Expand Up @@ -246,7 +248,6 @@ module.exports = function(grunt) {
fs.appendFileSync(process.cwd() + '/' + config.options.outputDir + '/index.html', outputHTML );
}


//run
init();
}
Expand Down
4 changes: 4 additions & 0 deletions templates/_noDuplicates.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<div class="no-duplicates clearfix">
<img src="data:image/png;base64,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" />
<h3>Congratulations, no duplicates were found.</h3>
</div>
64 changes: 60 additions & 4 deletions templates/css/jscpd-reporter.css
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,27 @@
*
*/

html, body { font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial }
html, body {
font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
color: #333;
}

footer {
height: 30px;
background: #D9DDE7;
padding:5px;
}
footer p {
margin:6px 6px 3px 3px;
}
footer img {
margin-top:3px;
}


a {
color: #333;
}

.lines {}

Expand All @@ -21,8 +41,44 @@ ul li { margin:0; padding:0; }
ul.files li p.filepath { padding:1em 0em 0em 0em; margin:0; }
ul.files li p.line { padding:0em 0em 0em 1em; margin:0; }


h1 { background: #D9DDE7; padding:5px; margin: 0 0 8px 0 }
h2 { background: #ECEDF7; padding:5px; }

p.lines { margin:1em 0em 0em 0em; padding:0; }
p.tokens { margin:0; padding:0; }
p.tokens { margin:0; padding:0; }

.no-duplicates {
display:block;
width:100%;
text-align:center;
}
.no-duplicates img {
}
.no-duplicates h3 {
margin-top:0;
font-size: 1.2em;
line-height: 10px;
padding: 10px 0;
}

.clearfix:after {
content: ".";
clear: both;
display: block;
visibility: hidden;
}

.left {
float:left;
}

.right {
float:right;
}

.syntaxhighlighter {
overflow:hidden !important;;
}

.items h2:first-child {
margin-top:3px;
}
11 changes: 7 additions & 4 deletions templates/layout.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@
<link rel="stylesheet" type="text/css" href="css/nsh/default.css" media="all" />
</head>
<body>
<h1>jsCPD Reporter</h1>
{{content}}
<footer>
<p>&copy; 2014-2015 Nils Gajsek
<a href="http://www.linslin.org" title="linslin.org">www.linslin.org</a> -
<a href="https://github.com/linslin/grunt-jscpd-reporter">see github</a>
<footer class="clearfix">
<a class="right" title="See on GitHub" href="https://github.com/linslin/grunt-jscpd-reporter">
<img height="25" src="data:image/png;base64,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" />
</a>
<p class="right">&copy; 2016 Nils Gajsek
<a href="http://www.linslin.org" title="linslin.org">www.linslin.org</a>
</p>
</footer>
</body>
Expand Down

0 comments on commit 3348c36

Please sign in to comment.