44 * @Last Modified by: FrankFan
55 */
66
7+ function getAllContent ( selector ) {
8+ var wholeText = '' ;
9+ let contents = $ ( selector ) . contents ( ) ;
10+ for ( var i = 0 ; i < contents . length ; i ++ ) {
11+ wholeText += contents [ i ] . wholeText + ';' ;
12+ }
13+ return wholeText ;
14+ }
15+
716var GitlabTree = ( function ( $ , win ) {
817 var private_token ,
918 project_id ,
@@ -17,41 +26,9 @@ var GitlabTree = (function($, win) {
1726 $jstree ;
1827
1928 var getPrivateToken = function ( dtd ) {
20- var arrXmlNode ;
2129 var objXml = { } ;
22- var wholeText ;
23-
24- if ( $ ( 'head script[type="text/javascript"]' ) . contents ( ) [ 0 ] ) {
25- wholeText = $ ( 'head script[type="text/javascript"]' ) . contents ( ) [ 0 ] [ 'wholeText' ] ;
26- }
27-
28- if ( wholeText ) {
29- if ( ! / w i n d o w .g o n / ig. test ( wholeText ) ) {
30- return ;
31- }
32- } else {
33- if ( $ ( 'head script' ) . contents ( ) [ 0 ] ) {
34- wholeText = $ ( 'head script' ) . contents ( ) [ 0 ] [ 'wholeText' ] ;
35- }
36-
37- if ( ! wholeText ) {
38- return ;
39- } else {
40- if ( ! / w i n d o w .g o n / ig. test ( wholeText ) ) {
41- // return;
42- }
43- }
44- }
45-
46- if ( $ ( 'head script[type="text/javascript"]' ) . contents ( ) [ 0 ] ) {
47- arrXmlNode = wholeText . toString ( ) . split ( ';' )
48- } else {
49- if ( $ ( 'head script' ) . contents ( ) [ 0 ] ) {
50- arrXmlNode = wholeText . toString ( ) . split ( ';' )
51- } else {
52- return false ;
53- }
54- }
30+ var wholeText = getAllContent ( 'head script' ) ;
31+ var arrXmlNode = wholeText . toString ( ) . split ( ';' )
5532
5633 for ( var i = 1 ; i < arrXmlNode . length - 1 ; i ++ ) {
5734 var item = arrXmlNode [ i ] . split ( '=' ) ;
@@ -67,7 +44,11 @@ var GitlabTree = (function($, win) {
6744
6845 if ( private_token ) {
6946 private_token = private_token . replace ( / \" / g, '' ) ;
47+ dtd . resolve ( true ) ;
7048 } else {
49+ //dtd.reject(false);
50+ return ;
51+ // TODO
7152 if ( isFilesTab ( ) ) {
7253 tryToGetTokenInGitlab9 ( function ( result ) {
7354 if ( result && result != 401 ) {
@@ -103,7 +84,7 @@ var GitlabTree = (function($, win) {
10384
10485 var initVariables = function ( ) {
10586 project_id = $ ( '#project_id' ) . val ( ) || $ ( '#search_project_id' ) . val ( ) ;
106- repository_ref = $ ( '#repository_ref' ) . val ( ) ;
87+ repository_ref = $ ( '#repository_ref' ) . val ( ) || 'master' ;
10788 originUrl = window . location . origin ;
10889
10990 var apiRootUrl = originUrl + '/api/v3/projects/' ;
@@ -113,6 +94,8 @@ var GitlabTree = (function($, win) {
11394
11495 var tmpClassName = $ ( '.container' ) . length > 0 ? '.container' : '.content-wrapper .container-fluid' ;
11596 initContainerML = $ ( tmpClassName ) . offset ( ) && $ ( tmpClassName ) . offset ( ) . left ;
97+
98+ return project_id != null ;
11699 }
117100
118101 var generateTreeNodes = function ( serverResult ) {
@@ -173,8 +156,8 @@ var GitlabTree = (function($, win) {
173156 if ( cnode . data === 'tree' ) {
174157 nodesDisplay . forEach ( function ( item ) {
175158 var newNodeObj = $jstree . jstree ( true ) . create_node ( cnode , item , 'last' , function ( data ) {
176- // console.log('new node created.');
177- // console.log(data);
159+ console . log ( 'new node created.' ) ;
160+ console . log ( data ) ;
178161 } ) ;
179162 $jstree . jstree ( true ) . open_node ( cnode ) ;
180163 } ) ;
@@ -199,7 +182,7 @@ var GitlabTree = (function($, win) {
199182 }
200183
201184 var handleRefresh = function ( ) {
202- var lastElement = getLocalStorageData ( ) . lastElement || '' ;
185+ var lastElement = $ ( '#path' ) . val ( ) || getLocalStorageData ( ) . lastElement || '' ;
203186 var requestPath = lastElement ? makeRequestArr ( lastElement ) : [ ] ;
204187 var promises = requestPath . map ( function ( path ) {
205188 return getResultJson ( path ) ;
@@ -211,7 +194,7 @@ var GitlabTree = (function($, win) {
211194 var nodesDisplay = generateTreeNodes ( item ) ;
212195 var cssSelector = ( index === 0 ) ? '.jstree .jstree-container-ul li a' : '.jstree .jstree-container-ul li.jstree-open ul li' ;
213196 expandSubTreeByJSON ( cssSelector , requestPath , lastElement , nodesDisplay ) ;
214- showGitlabTree ( ) ;
197+ isOnFilesTab ( ) && showGitlabTree ( ) ;
215198 } ) ;
216199 } else {
217200 $ ( '.jstree .jstree-container-ul li a' ) . each ( function ( index , item ) {
@@ -220,7 +203,7 @@ var GitlabTree = (function($, win) {
220203 $ ( this ) . parent ( ) . find ( 'div.jstree-wholerow' ) . addClass ( 'jstree-wholerow-clicked' ) ;
221204 }
222205 } ) ;
223- showGitlabTree ( ) ;
206+ isOnFilesTab ( ) && showGitlabTree ( ) ;
224207 }
225208 } )
226209 . catch ( function ( err ) {
@@ -282,6 +265,10 @@ var GitlabTree = (function($, win) {
282265 }
283266
284267 var isFilesTab = function ( ) {
268+ return true ;
269+ }
270+
271+ var isOnFilesTab = function ( ) {
285272 // gitlab 8.x
286273 var currentTabText = $ ( '.project-navigation li.active a' ) . text ( ) ;
287274 if ( currentTabText === 'Files' || $ ( '.nav.nav-sidebar li.active a' ) . text ( ) . trim ( ) === 'Files' ) {
@@ -591,6 +578,10 @@ var GitlabTree = (function($, win) {
591578 var checkRepos = function ( repos ) {
592579 var result = true ;
593580
581+ if ( project_id == null ) {
582+ return false ;
583+ }
584+
594585 if ( repos && repos . length > 0 ) {
595586 for ( var key in repos ) {
596587 var objRepoInfo = repos [ key ] ;
@@ -656,19 +647,34 @@ var GitlabTree = (function($, win) {
656647 $ ( '.open-tree' ) . hide ( ) ;
657648 }
658649
650+ var reload = function ( e ) {
651+ if ( e . target . nodeName === 'BODY' ) {
652+ console . log ( 'reload' ) ;
653+ $ ( document ) . off ( 'DOMNodeRemoved' , reload ) ;
654+ setTimeout ( function ( ) {
655+ init ( getApiProjects ) ;
656+ } ) ;
657+ }
658+ } ;
659+
659660 var init = function ( next ) {
660661 var p = new Promise ( function ( resolve , reject ) {
661662 $ . Deferred ( getPrivateToken )
662663 . done ( function ( status ) {
663664 resolve ( status ) ;
665+
666+ if ( ! initVariables ( ) ) {
667+ return ;
668+ }
669+
664670 if ( isFilesTab ( ) ) {
665671 $ ( window ) . resize ( function ( ) {
666672 updateLayoutUI ( 'show' ) ;
667673 } ) ;
668674 }
669675 createBtn ( ) ;
670676 showSpinner ( ) ;
671- initVariables ( ) ;
677+ $ ( document ) . on ( 'DOMNodeRemoved' , reload ) ;
672678 } )
673679 . fail ( function ( status ) {
674680 console . warn ( "Error: " , status ) ;
0 commit comments