Skip to content

Commit 7665ad2

Browse files
committed
Added comment icon to file when file was commented.
1 parent f808a64 commit 7665ad2

File tree

5 files changed

+70
-13
lines changed

5 files changed

+70
-13
lines changed

css/style.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
margin-bottom: 10px;
2323
}
2424

25-
2625
.gitlab-tree-plugin-left .folder .holder
2726
{
2827
white-space: nowrap;
@@ -101,4 +100,9 @@
101100
color: #000;
102101
font-weight: bold;
103102
pointer-events: none;
103+
}
104+
105+
.gitlab-tree-plugin-file-commented-icon
106+
{
107+
margin-right: 7px;
104108
}

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "GitLab - Tree view for code",
33
"homepage_url": "https://github.com/tomasbonco/gitlabtree",
44
"author": "Tomáš Bončo",
5-
"version": "0.0.4.1",
5+
"version": "0.0.5",
66
"manifest_version": 2,
77
"description": "Provides folder structure view for code in GitLab.",
88
"icons": {

src/inject/inject.js

Lines changed: 23 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/inject/inject.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/inject/inject.ts

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ interface IMetadata
77
type: EFileState; // 'renamed' | 'deleted' | 'edit' | 'new';
88
hash: string;
99
filename: string;
10+
commented: boolean;
1011
}
1112

1213
class GitLabTree
@@ -54,12 +55,12 @@ class GitLabTree
5455

5556
this.metadata = this.obtainMetadata();
5657
if ( this.metadata.length === 0 ) { return; }
57-
const filenames: string[] = this.metadata.map( m => m.filename );
58+
this.obtainCommentedFiles();
5859

5960

6061
// Analyze filenames
6162

62-
this.fileNames = filenames;
63+
this.fileNames = this.metadata.map( m => m.filename );
6364
this.pathPrefix = this.getPrefixPath( this.fileNames );
6465
this.strippedFileNames = this.removePathPrefix( this.fileNames, this.pathPrefix );
6566

@@ -108,6 +109,7 @@ class GitLabTree
108109
this.rightElement.classList.add( CSS_PREFIX + '-right' );
109110
}
110111

112+
111113
/**
112114
* Collects basic information about files - their names, their hashes, and happend to them.
113115
*
@@ -136,21 +138,36 @@ class GitLabTree
136138

137139
// Convert type
138140

139-
if ( ~typeRaw.indexOf( 'add-file' )) { type = EFileState.ADDED; }
141+
if ( ~typeRaw.indexOf( 'new-file' )) { type = EFileState.ADDED; }
140142
if ( ~typeRaw.indexOf( 'renamed-file' )) { type = EFileState.RENAMED; }
141143
if ( ~typeRaw.indexOf( 'deleted-file' )) { type = EFileState.DELETED; }
142144

143145

144146
// Save
145147

146-
const fileMetadata: IMetadata = { type, hash, filename };
148+
const fileMetadata: IMetadata = { type, hash, filename, commented: false };
147149
metadata.push( fileMetadata );
148150
}
149151

150152
return metadata;
151153
}
152154

153155

156+
/**
157+
* Adds flag 'commented' in metadata to every file that was commented.
158+
*/
159+
obtainCommentedFiles()
160+
{
161+
const fileHolders = Array.prototype.slice.call( this.fileHolders );
162+
163+
fileHolders.forEach( ( fileHolder, index ) =>
164+
{
165+
const metadata = this.getMetadata( index );
166+
metadata.commented = !! fileHolder.querySelector( '.notes_holder' );
167+
})
168+
}
169+
170+
154171
/**
155172
* Returns metadata by index.
156173
*
@@ -334,7 +351,8 @@ class GitLabTree
334351
let file: HTMLAnchorElement = document.createElement( 'a' );
335352
file.setAttribute( 'href', metadata.hash );
336353
file.classList.add( 'file' );
337-
file.textContent = name;
354+
355+
// Color
338356

339357
let fileStateClass;
340358
switch ( metadata.type )
@@ -345,6 +363,23 @@ class GitLabTree
345363
default: fileStateClass = CSS_PREFIX + '-file-updated'; break;
346364
}
347365

366+
367+
// Was file commented?
368+
369+
if ( metadata.commented )
370+
{
371+
let commentElement = document.createElement('i');
372+
commentElement.classList.add( 'fa', 'fa-comments-o', CSS_PREFIX + '-file-commented-icon' );
373+
file.appendChild( commentElement );
374+
}
375+
376+
377+
// Content
378+
379+
const contentElement = document.createElement( 'span' );
380+
contentElement.textContent = name;
381+
file.appendChild( contentElement );
382+
348383
file.classList.add( fileStateClass );
349384
files.push( file );
350385
}

0 commit comments

Comments
 (0)