@ -1,3 +1,6 @@
/* globals wipPrefixes, issuesTribute, emojiTribute */
/* exported timeAddManual, toggleStopwatch, cancelStopwatch, initHeatmap */
/* exported toggleDeadlineForm, setDeadline, deleteDependencyModal, cancelCodeComment, onOAuthLoginClick */
'use strict' ;
'use strict' ;
function htmlEncode ( text ) {
function htmlEncode ( text ) {
@ -89,7 +92,7 @@ if (!Array.from) {
if ( typeof Object . assign != 'function' ) {
if ( typeof Object . assign != 'function' ) {
// Must be writable: true, enumerable: false, configurable: true
// Must be writable: true, enumerable: false, configurable: true
Object . defineProperty ( Object , "assign" , {
Object . defineProperty ( Object , "assign" , {
value : function assign ( target , varArgs ) { // .length of function is 2
value : function assign ( target , _ varArgs) { // .length of function is 2
'use strict' ;
'use strict' ;
if ( target == null ) { // TypeError if undefined or null
if ( target == null ) { // TypeError if undefined or null
throw new TypeError ( 'Cannot convert undefined or null to object' ) ;
throw new TypeError ( 'Cannot convert undefined or null to object' ) ;
@ -131,8 +134,8 @@ function initCommentPreviewTab($form) {
var $previewPanel = $form . find ( '.tab.segment[data-tab="' + $tabMenu . data ( 'preview' ) + '"]' ) ;
var $previewPanel = $form . find ( '.tab.segment[data-tab="' + $tabMenu . data ( 'preview' ) + '"]' ) ;
$previewPanel . html ( data ) ;
$previewPanel . html ( data ) ;
emojify . run ( $previewPanel [ 0 ] ) ;
emojify . run ( $previewPanel [ 0 ] ) ;
$ ( 'pre code' , $previewPanel [ 0 ] ) . each ( function ( i , block ) {
$ ( 'pre code' , $previewPanel [ 0 ] ) . each ( function ( ) {
hljs . highlightBlock ( block ) ;
hljs . highlightBlock ( this ) ;
} ) ;
} ) ;
}
}
) ;
) ;
@ -161,8 +164,8 @@ function initEditPreviewTab($form) {
var $previewPanel = $form . find ( '.tab.segment[data-tab="' + $tabMenu . data ( 'preview' ) + '"]' ) ;
var $previewPanel = $form . find ( '.tab.segment[data-tab="' + $tabMenu . data ( 'preview' ) + '"]' ) ;
$previewPanel . html ( data ) ;
$previewPanel . html ( data ) ;
emojify . run ( $previewPanel [ 0 ] ) ;
emojify . run ( $previewPanel [ 0 ] ) ;
$ ( 'pre code' , $previewPanel [ 0 ] ) . each ( function ( i , block ) {
$ ( 'pre code' , $previewPanel [ 0 ] ) . each ( function ( ) {
hljs . highlightBlock ( block ) ;
hljs . highlightBlock ( this ) ;
} ) ;
} ) ;
}
}
) ;
) ;
@ -355,7 +358,8 @@ function reload() {
}
}
function initImagePaste ( target ) {
function initImagePaste ( target ) {
target . each ( function ( i , field ) {
target . each ( function ( ) {
var field = this ;
field . addEventListener ( 'paste' , function ( event ) {
field . addEventListener ( 'paste' , function ( event ) {
retrieveImageFromClipboardAsBlob ( event , function ( img ) {
retrieveImageFromClipboardAsBlob ( event , function ( img ) {
var name = img . name . substr ( 0 , img . name . lastIndexOf ( '.' ) ) ;
var name = img . name . substr ( 0 , img . name . lastIndexOf ( '.' ) ) ;
@ -606,7 +610,7 @@ function initInstall() {
$ ( '#sql_settings' ) . show ( ) ;
$ ( '#sql_settings' ) . show ( ) ;
$ ( '#pgsql_settings' ) . toggle ( dbType === "PostgreSQL" ) ;
$ ( '#pgsql_settings' ) . toggle ( dbType === "PostgreSQL" ) ;
$ . each ( dbDefaults , function ( type , defaultHost ) {
$ . each ( dbDefaults , function ( _ type, defaultHost ) {
if ( $ ( '#db_host' ) . val ( ) == defaultHost ) {
if ( $ ( '#db_host' ) . val ( ) == defaultHost ) {
$ ( '#db_host' ) . val ( dbDefaults [ dbType ] ) ;
$ ( '#db_host' ) . val ( dbDefaults [ dbType ] ) ;
return false ;
return false ;
@ -636,8 +640,7 @@ function initInstall() {
} ) ;
} ) ;
$ ( '#enable-openid-signin input' ) . change ( function ( ) {
$ ( '#enable-openid-signin input' ) . change ( function ( ) {
if ( $ ( this ) . is ( ':checked' ) ) {
if ( $ ( this ) . is ( ':checked' ) ) {
if ( $ ( '#disable-registration input' ) . is ( ':checked' ) ) {
if ( ! $ ( '#disable-registration input' ) . is ( ':checked' ) ) {
} else {
$ ( '#enable-openid-signup' ) . checkbox ( 'check' ) ;
$ ( '#enable-openid-signup' ) . checkbox ( 'check' ) ;
}
}
} else {
} else {
@ -669,7 +672,7 @@ function initRepository() {
$dropdown . dropdown ( {
$dropdown . dropdown ( {
fullTextSearch : true ,
fullTextSearch : true ,
selectOnKeydown : false ,
selectOnKeydown : false ,
onChange : function ( text , value , $choice ) {
onChange : function ( _ text, _ value, $choice ) {
if ( $choice . data ( 'url' ) ) {
if ( $choice . data ( 'url' ) ) {
window . location . href = $choice . data ( 'url' ) ;
window . location . href = $choice . data ( 'url' ) ;
}
}
@ -756,9 +759,6 @@ function initRepository() {
}
}
// Milestones
// Milestones
if ( $ ( '.repository.milestones' ) . length > 0 ) {
}
if ( $ ( '.repository.new.milestone' ) . length > 0 ) {
if ( $ ( '.repository.new.milestone' ) . length > 0 ) {
var $datepicker = $ ( '.milestone.datepicker' ) ;
var $datepicker = $ ( '.milestone.datepicker' ) ;
$datepicker . datetimepicker ( {
$datepicker . datetimepicker ( {
@ -857,8 +857,8 @@ function initRepository() {
} else {
} else {
$renderContent . html ( data . content ) ;
$renderContent . html ( data . content ) ;
emojify . run ( $renderContent [ 0 ] ) ;
emojify . run ( $renderContent [ 0 ] ) ;
$ ( 'pre code' , $renderContent [ 0 ] ) . each ( function ( i , block ) {
$ ( 'pre code' , $renderContent [ 0 ] ) . each ( function ( ) {
hljs . highlightBlock ( block ) ;
hljs . highlightBlock ( this ) ;
} ) ;
} ) ;
}
}
} ) ;
} ) ;
@ -912,7 +912,7 @@ function initRepository() {
$ ( this ) . parent ( ) . hide ( ) ;
$ ( this ) . parent ( ) . hide ( ) ;
} ) ;
} ) ;
$ ( '.merge-button > .dropdown' ) . dropdown ( {
$ ( '.merge-button > .dropdown' ) . dropdown ( {
onChange : function ( text , value , $choice ) {
onChange : function ( _ text, _ value, $choice ) {
if ( $choice . data ( 'do' ) ) {
if ( $choice . data ( 'do' ) ) {
$mergeButton . find ( '.button-text' ) . text ( $choice . text ( ) ) ;
$mergeButton . find ( '.button-text' ) . text ( $choice . text ( ) ) ;
$mergeButton . data ( 'do' , $choice . data ( 'do' ) ) ;
$mergeButton . data ( 'do' , $choice . data ( 'do' ) ) ;
@ -930,17 +930,14 @@ function initRepository() {
// Diff
// Diff
if ( $ ( '.repository.diff' ) . length > 0 ) {
if ( $ ( '.repository.diff' ) . length > 0 ) {
var $counter = $ ( '.diff-counter' ) ;
$ ( '.diff-counter' ) . each ( function ( ) {
if ( $counter . length >= 1 ) {
var $item = $ ( this ) ;
$counter . each ( function ( i , item ) {
var $item = $ ( item ) ;
var addLine = $item . find ( 'span[data-line].add' ) . data ( "line" ) ;
var addLine = $item . find ( 'span[data-line].add' ) . data ( "line" ) ;
var delLine = $item . find ( 'span[data-line].del' ) . data ( "line" ) ;
var delLine = $item . find ( 'span[data-line].del' ) . data ( "line" ) ;
var addPercent = parseFloat ( addLine ) / ( parseFloat ( addLine ) + parseFloat ( delLine ) ) * 100 ;
var addPercent = parseFloat ( addLine ) / ( parseFloat ( addLine ) + parseFloat ( delLine ) ) * 100 ;
$item . find ( ".bar .add" ) . css ( "width" , addPercent + "%" ) ;
$item . find ( ".bar .add" ) . css ( "width" , addPercent + "%" ) ;
} ) ;
} ) ;
}
}
}
// Quick start and repository home
// Quick start and repository home
$ ( '#repo-clone-ssh' ) . click ( function ( ) {
$ ( '#repo-clone-ssh' ) . click ( function ( ) {
@ -1085,8 +1082,9 @@ function assingMenuAttributes(menu) {
var id = Math . floor ( Math . random ( ) * Math . floor ( 1000000 ) ) ;
var id = Math . floor ( Math . random ( ) * Math . floor ( 1000000 ) ) ;
menu . attr ( 'data-write' , menu . attr ( 'data-write' ) + id ) ;
menu . attr ( 'data-write' , menu . attr ( 'data-write' ) + id ) ;
menu . attr ( 'data-preview' , menu . attr ( 'data-preview' ) + id ) ;
menu . attr ( 'data-preview' , menu . attr ( 'data-preview' ) + id ) ;
menu . find ( '.item' ) . each ( function ( i , item ) {
menu . find ( '.item' ) . each ( function ( ) {
$ ( item ) . attr ( 'data-tab' , $ ( item ) . attr ( 'data-tab' ) + id ) ;
var tab = $ ( this ) . attr ( 'data-tab' ) + id ;
$ ( this ) . attr ( 'data-tab' , tab ) ;
} ) ;
} ) ;
menu . parent ( ) . find ( "*[data-tab='write']" ) . attr ( 'data-tab' , 'write' + id ) ;
menu . parent ( ) . find ( "*[data-tab='write']" ) . attr ( 'data-tab' , 'write' + id ) ;
menu . parent ( ) . find ( "*[data-tab='preview']" ) . attr ( 'data-tab' , 'preview' + id ) ;
menu . parent ( ) . find ( "*[data-tab='preview']" ) . attr ( 'data-tab' , 'preview' + id ) ;
@ -1170,8 +1168,7 @@ String.prototype.endsWith = function (pattern) {
} ;
} ;
// Adding function to get the cursor position in a text field to jQuery object.
// Adding function to get the cursor position in a text field to jQuery object.
( function ( $ , undefined ) {
$ . fn . getCursorPosition = function ( ) {
$ . fn . getCursorPosition = function ( ) {
var el = $ ( this ) . get ( 0 ) ;
var el = $ ( this ) . get ( 0 ) ;
var pos = 0 ;
var pos = 0 ;
if ( 'selectionStart' in el ) {
if ( 'selectionStart' in el ) {
@ -1184,8 +1181,7 @@ String.prototype.endsWith = function (pattern) {
pos = Sel . text . length - SelLength ;
pos = Sel . text . length - SelLength ;
}
}
return pos ;
return pos ;
}
}
} ) ( jQuery ) ;
function setSimpleMDE ( $editArea ) {
function setSimpleMDE ( $editArea ) {
if ( codeMirrorEditor ) {
if ( codeMirrorEditor ) {
@ -1249,7 +1245,7 @@ function setCodeMirror($editArea) {
codeMirrorEditor = CodeMirror . fromTextArea ( $editArea [ 0 ] , {
codeMirrorEditor = CodeMirror . fromTextArea ( $editArea [ 0 ] , {
lineNumbers : true
lineNumbers : true
} ) ;
} ) ;
codeMirrorEditor . on ( "change" , function ( cm , change ) {
codeMirrorEditor . on ( "change" , function ( cm , _ change) {
$editArea . val ( cm . getValue ( ) ) ;
$editArea . val ( cm . getValue ( ) ) ;
} ) ;
} ) ;
@ -1271,10 +1267,13 @@ function initEditor() {
$editFilename . keyup ( function ( e ) {
$editFilename . keyup ( function ( e ) {
var $section = $ ( '.breadcrumb span.section' ) ;
var $section = $ ( '.breadcrumb span.section' ) ;
var $divider = $ ( '.breadcrumb div.divider' ) ;
var $divider = $ ( '.breadcrumb div.divider' ) ;
var value ;
var parts ;
if ( e . keyCode == 8 ) {
if ( e . keyCode == 8 ) {
if ( $ ( this ) . getCursorPosition ( ) == 0 ) {
if ( $ ( this ) . getCursorPosition ( ) == 0 ) {
if ( $section . length > 0 ) {
if ( $section . length > 0 ) {
var value = $section . last ( ) . find ( 'a' ) . text ( ) ;
value = $section . last ( ) . find ( 'a' ) . text ( ) ;
$ ( this ) . val ( value + $ ( this ) . val ( ) ) ;
$ ( this ) . val ( value + $ ( this ) . val ( ) ) ;
$ ( this ) [ 0 ] . setSelectionRange ( value . length , value . length ) ;
$ ( this ) [ 0 ] . setSelectionRange ( value . length , value . length ) ;
$section . last ( ) . remove ( ) ;
$section . last ( ) . remove ( ) ;
@ -1283,9 +1282,9 @@ function initEditor() {
}
}
}
}
if ( e . keyCode == 191 ) {
if ( e . keyCode == 191 ) {
var parts = $ ( this ) . val ( ) . split ( '/' ) ;
parts = $ ( this ) . val ( ) . split ( '/' ) ;
for ( var i = 0 ; i < parts . length ; ++ i ) {
for ( var i = 0 ; i < parts . length ; ++ i ) {
var value = parts [ i ] ;
value = parts [ i ] ;
if ( i < parts . length - 1 ) {
if ( i < parts . length - 1 ) {
if ( value . length ) {
if ( value . length ) {
$ ( '<span class="section"><a href="#">' + value + '</a></span>' ) . insertBefore ( $ ( this ) ) ;
$ ( '<span class="section"><a href="#">' + value + '</a></span>' ) . insertBefore ( $ ( this ) ) ;
@ -1298,9 +1297,9 @@ function initEditor() {
$ ( this ) [ 0 ] . setSelectionRange ( 0 , 0 ) ;
$ ( this ) [ 0 ] . setSelectionRange ( 0 , 0 ) ;
}
}
}
}
var parts = [ ] ;
parts = [ ] ;
$ ( '.breadcrumb span.section' ) . each ( function ( i , element ) {
$ ( '.breadcrumb span.section' ) . each ( function ( ) {
element = $ ( element ) ;
var element = $ ( this ) ;
if ( element . find ( 'a' ) . length ) {
if ( element . find ( 'a' ) . length ) {
parts . push ( element . find ( 'a' ) . text ( ) ) ;
parts . push ( element . find ( 'a' ) . text ( ) ) ;
} else {
} else {
@ -1319,10 +1318,11 @@ function initEditor() {
var markdownFileExts = $editArea . data ( "markdown-file-exts" ) . split ( "," ) ;
var markdownFileExts = $editArea . data ( "markdown-file-exts" ) . split ( "," ) ;
var lineWrapExtensions = $editArea . data ( "line-wrap-extensions" ) . split ( "," ) ;
var lineWrapExtensions = $editArea . data ( "line-wrap-extensions" ) . split ( "," ) ;
$editFilename . on ( "keyup" , function ( e ) {
$editFilename . on ( "keyup" , function ( ) {
var val = $editFilename . val ( ) , m , mode , spec , extension , extWithDot , previewLink , dataUrl , apiCall ;
var val = $editFilename . val ( ) , m , mode , spec , extension , extWithDot , previewLink , dataUrl , apiCall ;
extension = extWithDot = "" ;
extension = extWithDot = "" ;
if ( m = /.+\.([^.]+)$/ . exec ( val ) ) {
m = /.+\.([^.]+)$/ . exec ( val ) ;
if ( m ) {
extension = m [ 1 ] ;
extension = m [ 1 ] ;
extWithDot = "." + extension ;
extWithDot = "." + extension ;
}
}
@ -1684,15 +1684,6 @@ function buttonsClickOnEnter() {
} ) ;
} ) ;
}
}
function hideWhenLostFocus ( body , parent ) {
$ ( document ) . click ( function ( e ) {
var target = e . target ;
if ( ! $ ( target ) . is ( body ) && ! $ ( target ) . parents ( ) . is ( parent ) ) {
$ ( body ) . hide ( ) ;
}
} ) ;
}
function searchUsers ( ) {
function searchUsers ( ) {
var $searchUserBox = $ ( '#search-user-box' ) ;
var $searchUserBox = $ ( '#search-user-box' ) ;
$searchUserBox . search ( {
$searchUserBox . search ( {
@ -1701,7 +1692,7 @@ function searchUsers() {
url : suburl + '/api/v1/users/search?q={query}' ,
url : suburl + '/api/v1/users/search?q={query}' ,
onResponse : function ( response ) {
onResponse : function ( response ) {
var items = [ ] ;
var items = [ ] ;
$ . each ( response . data , function ( i , item ) {
$ . each ( response . data , function ( _ i, item ) {
var title = item . login ;
var title = item . login ;
if ( item . full _name && item . full _name . length > 0 ) {
if ( item . full _name && item . full _name . length > 0 ) {
title += ' (' + htmlEncode ( item . full _name ) + ')' ;
title += ' (' + htmlEncode ( item . full _name ) + ')' ;
@ -1728,7 +1719,7 @@ function searchRepositories() {
url : suburl + '/api/v1/repos/search?q={query}&uid=' + $searchRepoBox . data ( 'uid' ) ,
url : suburl + '/api/v1/repos/search?q={query}&uid=' + $searchRepoBox . data ( 'uid' ) ,
onResponse : function ( response ) {
onResponse : function ( response ) {
var items = [ ] ;
var items = [ ] ;
$ . each ( response . data , function ( i , item ) {
$ . each ( response . data , function ( _ i, item ) {
items . push ( {
items . push ( {
title : item . full _name . split ( "/" ) [ 1 ] ,
title : item . full _name . split ( "/" ) [ 1 ] ,
description : item . full _name
description : item . full _name
@ -1752,8 +1743,8 @@ function initCodeView() {
deSelect ( ) ;
deSelect ( ) ;
} ) ;
} ) ;
$ ( window ) . on ( 'hashchange' , function ( e ) {
$ ( window ) . on ( 'hashchange' , function ( ) {
var m = window . location . hash . match ( /^#(L\d+)\ -(L\d+)$/ ) ;
var m = window . location . hash . match ( /^#(L\d+)-(L\d+)$/ ) ;
var $list = $ ( '.code-view ol.linenums > li' ) ;
var $list = $ ( '.code-view ol.linenums > li' ) ;
var $first ;
var $first ;
if ( m ) {
if ( m ) {
@ -1803,7 +1794,7 @@ function u2fSigned(resp) {
contentType : "application/json; charset=utf-8" ,
contentType : "application/json; charset=utf-8" ,
} ) . done ( function ( res ) {
} ) . done ( function ( res ) {
window . location . replace ( res ) ;
window . location . replace ( res ) ;
} ) . fail ( function ( xhr , textStatus ) {
} ) . fail ( function ( ) {
u2fError ( 1 ) ;
u2fError ( 1 ) ;
} ) ;
} ) ;
}
}
@ -1821,7 +1812,7 @@ function u2fRegistered(resp) {
success : function ( ) {
success : function ( ) {
reload ( ) ;
reload ( ) ;
} ,
} ,
fail : function ( xhr , textStatus ) {
fail : function ( ) {
u2fError ( 1 ) ;
u2fError ( 1 ) ;
}
}
} ) ;
} ) ;
@ -1889,7 +1880,7 @@ function u2fRegisterRequest() {
}
}
u2fError ( reason . metaData . code ) ;
u2fError ( reason . metaData . code ) ;
} ) ;
} ) ;
} ) . fail ( function ( xhr , status , error ) {
} ) . fail ( function ( xhr ) {
if ( xhr . status === 409 ) {
if ( xhr . status === 409 ) {
$ ( "#nickname" ) . closest ( "div.field" ) . addClass ( "error" ) ;
$ ( "#nickname" ) . closest ( "div.field" ) . addClass ( "error" ) ;
}
}
@ -1962,7 +1953,7 @@ $(document).ready(function () {
} ) ;
} ) ;
// make table <tr> element clickable like a link
// make table <tr> element clickable like a link
$ ( 'tr[data-href]' ) . click ( function ( event ) {
$ ( 'tr[data-href]' ) . click ( function ( ) {
window . location = $ ( this ) . data ( 'href' ) ;
window . location = $ ( this ) . data ( 'href' ) ;
} ) ;
} ) ;
@ -2388,7 +2379,7 @@ function initVueComponents(){
var searchedURL = this . searchURL ;
var searchedURL = this . searchURL ;
var searchedQuery = this . searchQuery ;
var searchedQuery = this . searchQuery ;
$ . getJSON ( searchedURL , function ( result , textStatus , request ) {
$ . getJSON ( searchedURL , function ( result , _ textStatus, request ) {
if ( searchedURL == self . searchURL ) {
if ( searchedURL == self . searchURL ) {
self . repos = result . data ;
self . repos = result . data ;
var count = request . getResponseHeader ( 'X-Total-Count' ) ;
var count = request . getResponseHeader ( 'X-Total-Count' ) ;
@ -2446,6 +2437,7 @@ function initVueApp() {
} ,
} ,
} ) ;
} ) ;
}
}
function timeAddManual ( ) {
function timeAddManual ( ) {
$ ( '.mini.modal' )
$ ( '.mini.modal' )
. modal ( {
. modal ( {
@ -2796,7 +2788,7 @@ function initTopicbar() {
$ . post ( saveBtn . data ( 'link' ) , {
$ . post ( saveBtn . data ( 'link' ) , {
"_csrf" : csrf ,
"_csrf" : csrf ,
"topics" : topics
"topics" : topics
} , function ( data , textStatus , xhr ) {
} , function ( _ data, _ textStatus, xhr ) {
if ( xhr . responseJSON . status === 'ok' ) {
if ( xhr . responseJSON . status === 'ok' ) {
viewDiv . children ( ".topic" ) . remove ( ) ;
viewDiv . children ( ".topic" ) . remove ( ) ;
if ( topics . length ) {
if ( topics . length ) {
@ -2873,14 +2865,14 @@ function initTopicbar() {
this . attr ( "data-value" , value ) . contents ( ) . first ( ) . replaceWith ( value ) ;
this . attr ( "data-value" , value ) . contents ( ) . first ( ) . replaceWith ( value ) ;
return $ ( this ) ;
return $ ( this ) ;
} ,
} ,
onAdd : function ( addedValue , addedText , $addedChoice ) {
onAdd : function ( addedValue , _ addedText, $addedChoice ) {
addedValue = addedValue . toLowerCase ( ) . trim ( ) ;
addedValue = addedValue . toLowerCase ( ) . trim ( ) ;
$ ( $addedChoice ) . attr ( 'data-value' , addedValue ) ;
$ ( $addedChoice ) . attr ( 'data-value' , addedValue ) ;
$ ( $addedChoice ) . attr ( 'data-text' , addedValue ) ;
$ ( $addedChoice ) . attr ( 'data-text' , addedValue ) ;
}
}
} ) ;
} ) ;
$ . fn . form . settings . rules . validateTopic = function ( values , regExp ) {
$ . fn . form . settings . rules . validateTopic = function ( _ values, regExp ) {
var topics = topicDropdown . children ( 'a.ui.label' ) ,
var topics = topicDropdown . children ( 'a.ui.label' ) ,
status = topics . length === 0 || topics . last ( ) . attr ( "data-value" ) . match ( regExp ) ;
status = topics . length === 0 || topics . last ( ) . attr ( "data-value" ) . match ( regExp ) ;
if ( ! status ) {
if ( ! status ) {
@ -2981,7 +2973,7 @@ function initIssueList() {
var filteredResponse = { 'success' : true , 'results' : [ ] } ;
var filteredResponse = { 'success' : true , 'results' : [ ] } ;
var currIssueId = $ ( '#new-dependency-drop-list' ) . data ( 'issue-id' ) ;
var currIssueId = $ ( '#new-dependency-drop-list' ) . data ( 'issue-id' ) ;
// Parse the response from the api to work with our dropdown
// Parse the response from the api to work with our dropdown
$ . each ( response , function ( index , issue ) {
$ . each ( response , function ( _ i, issue ) {
// Don't list current issue in the dependency list.
// Don't list current issue in the dependency list.
if ( issue . id === currIssueId ) {
if ( issue . id === currIssueId ) {
return ;
return ;