Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
2e025023
Commit
2e025023
authored
Jul 15, 2017
by
Luke "Jared" Bennett
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix eslint warnings
parent
b2afa71d
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
191 additions
and
192 deletions
+191
-192
app/assets/javascripts/dispatcher.js
app/assets/javascripts/dispatcher.js
+5
-6
app/assets/javascripts/repo/repo_binary_viewer.js
app/assets/javascripts/repo/repo_binary_viewer.js
+16
-11
app/assets/javascripts/repo/repo_bundle.js
app/assets/javascripts/repo/repo_bundle.js
+8
-8
app/assets/javascripts/repo/repo_editor.js
app/assets/javascripts/repo/repo_editor.js
+19
-19
app/assets/javascripts/repo/repo_file.js
app/assets/javascripts/repo/repo_file.js
+4
-4
app/assets/javascripts/repo/repo_helper.js
app/assets/javascripts/repo/repo_helper.js
+84
-88
app/assets/javascripts/repo/repo_loading_file.js
app/assets/javascripts/repo/repo_loading_file.js
+4
-4
app/assets/javascripts/repo/repo_mini_mixin.js
app/assets/javascripts/repo/repo_mini_mixin.js
+4
-4
app/assets/javascripts/repo/repo_prev_directory.js
app/assets/javascripts/repo/repo_prev_directory.js
+5
-5
app/assets/javascripts/repo/repo_service.js
app/assets/javascripts/repo/repo_service.js
+9
-9
app/assets/javascripts/repo/repo_sidebar.js
app/assets/javascripts/repo/repo_sidebar.js
+14
-14
app/assets/javascripts/repo/repo_store.js
app/assets/javascripts/repo/repo_store.js
+5
-5
app/assets/javascripts/repo/repo_tab.js
app/assets/javascripts/repo/repo_tab.js
+5
-5
app/assets/javascripts/repo/repo_tabs.js
app/assets/javascripts/repo/repo_tabs.js
+6
-6
app/assets/javascripts/repo/repo_view_toggler.js
app/assets/javascripts/repo/repo_view_toggler.js
+3
-4
No files found.
app/assets/javascripts/dispatcher.js
View file @
2e025023
...
...
@@ -72,19 +72,18 @@ import RepoBundle from './repo/repo_bundle';
}
Dispatcher
.
prototype
.
initPageScripts
=
function
()
{
var
page
,
path
,
shortcut_handler
,
fileBlobPermalinkUrlElement
,
fileBlobPermalinkUrl
,
os
;
var
page
,
path
,
shortcut_handler
,
fileBlobPermalinkUrlElement
,
fileBlobPermalinkUrl
;
page
=
$
(
'
body
'
).
attr
(
'
data-page
'
);
if
(
!
page
)
{
return
false
;
}
function
getScrollBarWidth
()
{
var
$outer
=
$
(
'
<div>
'
).
css
({
visibility
:
'
hidden
'
,
width
:
100
,
overflow
:
'
scroll
'
}).
appendTo
(
'
body
'
),
widthWithScroll
=
$
(
'
<div>
'
).
css
({
width
:
'
100%
'
}).
appendTo
(
$outer
).
outerWidth
();
var
$outer
=
$
(
'
<div>
'
).
css
({
visibility
:
'
hidden
'
,
width
:
100
,
overflow
:
'
scroll
'
}).
appendTo
(
'
body
'
),
widthWithScroll
=
$
(
'
<div>
'
).
css
({
width
:
'
100%
'
}).
appendTo
(
$outer
).
outerWidth
();
$outer
.
remove
();
return
100
-
widthWithScroll
;
}
;
}
$
(
'
body
'
).
attr
(
'
data-scroll-width
'
,
getScrollBarWidth
());
...
...
app/assets/javascripts/repo/repo_binary_viewer.js
View file @
2e025023
import
Vue
from
'
vue
'
import
Store
from
'
./repo_store
'
import
Vue
from
'
vue
'
;
import
Store
from
'
./repo_store
'
;
import
Flash
from
'
../flash
'
;
export
default
class
RepoBinaryViewer
{
constructor
(
url
)
{
constructor
()
{
this
.
initVue
();
}
...
...
@@ -15,19 +16,23 @@ export default class RepoBinaryViewer {
computed
:
{
pngBlobWithDataURI
()
{
return
`data:image/png;base64,
${
this
.
blobRaw
}
`
;
}
}
,
},
watch
:
{
blobRaw
()
{
if
(
!
this
.
binary
)
return
;
switch
(
this
.
binaryMimeType
)
{
if
(
!
this
.
binary
)
return
;
switch
(
this
.
binaryMimeType
)
{
case
'
image/png
'
:
this
.
binaryTypes
.
png
=
true
;
break
;
default
:
new
Flash
(
'
Blob could not be loaded
'
);
// eslint-disable-line no-new
break
;
}
}
}
}
,
}
,
});
}
}
app/assets/javascripts/repo/repo_bundle.js
View file @
2e025023
import
Tabs
from
'
./repo_tabs
'
import
Sidebar
from
'
./repo_sidebar
'
import
Editor
from
'
./repo_editor
'
import
BinaryViewer
from
'
./repo_binary_viewer
'
import
ViewToggler
from
'
./repo_view_toggler
'
import
Service
from
'
./repo_service
'
import
Store
from
'
./repo_store
'
import
Helper
from
'
./repo_helper
'
import
Tabs
from
'
./repo_tabs
'
;
import
Sidebar
from
'
./repo_sidebar
'
;
import
Editor
from
'
./repo_editor
'
;
import
BinaryViewer
from
'
./repo_binary_viewer
'
;
import
ViewToggler
from
'
./repo_view_toggler
'
;
import
Service
from
'
./repo_service
'
;
import
Store
from
'
./repo_store
'
;
import
Helper
from
'
./repo_helper
'
;
export
default
class
RepoBundle
{
constructor
()
{
...
...
app/assets/javascripts/repo/repo_editor.js
View file @
2e025023
/* global monaco */
import
Vue
from
'
vue
'
;
import
Store
from
'
./repo_store
'
import
Helper
from
'
./repo_helper
'
import
Store
from
'
./repo_store
'
;
import
Helper
from
'
./repo_helper
'
;
export
default
class
RepoEditor
{
constructor
()
{
...
...
@@ -15,9 +15,9 @@ export default class RepoEditor {
this
.
monacoEditor
=
monaco
.
editor
.
create
(
document
.
getElementById
(
'
ide
'
),
{
model
:
null
}
)
model
:
null
,
}
,
)
;
Helper
.
monacoInstance
=
monaco
;
this
.
initVue
();
monaco
.
languages
.
getLanguages
();
...
...
@@ -29,20 +29,20 @@ export default class RepoEditor {
const
monacoEditor
=
this
.
monacoEditor
;
this
.
vue
=
new
Vue
({
data
:
()
=>
Store
,
created
()
{
if
(
this
.
blobRaw
!==
''
)
{
created
()
{
if
(
this
.
blobRaw
!==
''
)
{
monacoEditor
.
setModel
(
monaco
.
editor
.
createModel
(
this
.
blobRaw
,
'
plain
'
)
'
plain
'
,
)
,
);
}
},
watch
:
{
isTree
()
{
if
(
this
.
isTree
||
!
this
.
openedFiles
.
length
)
{
if
(
this
.
isTree
||
!
this
.
openedFiles
.
length
)
{
self
.
el
.
style
.
display
=
'
none
'
;
}
else
{
self
.
el
.
style
.
display
=
'
inline-block
'
;
...
...
@@ -50,7 +50,7 @@ export default class RepoEditor {
},
openedFiles
()
{
if
((
this
.
isTree
||
!
this
.
openedFiles
.
length
)
||
this
.
binary
)
{
if
((
this
.
isTree
||
!
this
.
openedFiles
.
length
)
||
this
.
binary
)
{
self
.
el
.
style
.
display
=
'
none
'
;
}
else
{
self
.
el
.
style
.
display
=
'
inline-block
'
;
...
...
@@ -58,21 +58,21 @@ export default class RepoEditor {
},
blobRaw
()
{
if
(
this
.
binary
)
{
if
(
this
.
binary
)
{
self
.
el
.
style
.
display
=
'
none
'
;
}
else
{
self
.
el
.
style
.
display
=
'
inline-block
'
;
}
if
(
!
this
.
isTree
)
{
if
(
!
this
.
isTree
)
{
self
.
monacoEditor
.
setModel
(
monaco
.
editor
.
createModel
(
this
.
blobRaw
,
this
.
activeFile
.
mime_type
)
this
.
activeFile
.
mime_type
,
)
,
);
}
}
}
}
,
}
,
});
}
}
app/assets/javascripts/repo/repo_file.js
View file @
2e025023
le
t
RepoFile
=
{
cons
t
RepoFile
=
{
template
:
`
<tr v-if='!loading.tree || hasFiles'>
<td>
...
...
@@ -19,13 +19,13 @@ let RepoFile = {
isTree
:
Boolean
,
isMini
:
Boolean
,
loading
:
Object
,
hasFiles
:
Boolean
hasFiles
:
Boolean
,
},
methods
:
{
linkClicked
(
file
)
{
this
.
$emit
(
'
linkclicked
'
,
file
);
}
}
}
,
}
,
};
export
default
RepoFile
;
app/assets/javascripts/repo/repo_helper.js
View file @
2e025023
import
Service
from
'
./repo_service
'
import
Store
from
'
./repo_store
'
import
Service
from
'
./repo_service
'
;
import
Store
from
'
./repo_store
'
;
import
Flash
from
'
../flash
'
;
le
t
RepoHelper
=
{
cons
t
RepoHelper
=
{
isTree
(
data
)
{
return
data
.
hasOwnProperty
(
'
blobs
'
);
return
Object
.
hasOwnProperty
.
call
(
data
,
'
blobs
'
);
},
monacoInstance
:
undefined
,
...
...
@@ -14,17 +15,11 @@ let RepoHelper = {
:
Date
,
getLanguagesForMimeType
(
mimetypeNeedle
)
{
const
langs
=
monaco
.
languages
.
getLanguages
();
let
lang
=
''
;
langs
.
every
((
lang
)
=>
{
const
hasLang
=
lang
.
mimetypes
.
some
((
mimetype
)
=>
{
return
mimetypeNeedle
===
mimetype
});
if
(
hasLang
)
{
lang
=
lang
.
id
;
return
true
;
}
return
false
;
const
langs
=
window
.
monaco
.
languages
.
getLanguages
();
langs
.
map
((
lang
)
=>
{
const
hasLang
=
lang
.
mimetypes
.
some
(
mimetype
=>
mimetypeNeedle
===
mimetype
);
if
(
hasLang
)
return
lang
.
id
;
return
lang
;
});
},
...
...
@@ -32,7 +27,7 @@ let RepoHelper = {
const
split
=
url
.
split
(
'
/
'
);
split
.
pop
();
const
blobIndex
=
split
.
indexOf
(
'
blob
'
);
if
(
blobIndex
>
-
1
)
{
if
(
blobIndex
>
-
1
)
{
split
[
blobIndex
]
=
'
tree
'
;
}
return
split
.
join
(
'
/
'
);
...
...
@@ -40,21 +35,22 @@ let RepoHelper = {
insertNewFilesIntoParentDir
(
inDirectory
,
oldList
,
newList
)
{
let
indexOfFile
;
if
(
!
inDirectory
)
{
if
(
!
inDirectory
)
{
return
newList
;
}
oldList
.
find
((
file
,
i
)
=>
{
if
(
file
.
url
===
inDirectory
.
url
)
{
indexOfFile
=
i
+
1
;
if
(
file
.
url
===
inDirectory
.
url
)
{
indexOfFile
=
i
+
1
;
return
true
;
}
return
false
;
});
if
(
indexOfFile
)
{
if
(
indexOfFile
)
{
// insert new list into old list
newList
.
forEach
((
newFile
)
=>
{
newFile
.
level
=
inDirectory
.
level
+
1
;
oldList
.
splice
(
indexOfFile
,
0
,
newFile
);
const
file
=
newFile
;
file
.
level
=
inDirectory
.
level
+
1
;
oldList
.
splice
(
indexOfFile
,
0
,
file
);
});
return
oldList
;
}
...
...
@@ -63,47 +59,45 @@ let RepoHelper = {
setActiveFile
(
file
)
{
Store
.
openedFiles
=
Store
.
openedFiles
.
map
((
openedFile
)
=>
{
openedFile
.
active
=
file
.
url
===
openedFile
.
url
;
if
(
openedFile
.
active
)
{
Store
.
activeFile
=
openedFile
;
const
activeFile
=
openedFile
;
activeFile
.
active
=
file
.
url
===
activeFile
.
url
;
// eslint-disable-line no-param-reassign
if
(
activeFile
.
active
)
{
Store
.
activeFile
=
activeFile
;
}
return
opened
File
;
return
active
File
;
});
if
(
file
.
binary
)
{
if
(
file
.
binary
)
{
Store
.
blobRaw
=
file
.
base64
;
console
.
log
(
'
binary
'
,
file
)
}
else
{
Store
.
blobRaw
=
file
.
plain
;
}
if
(
!
file
.
loading
)
{
if
(
!
file
.
loading
)
{
this
.
toURL
(
file
.
url
);
}
Store
.
binary
=
file
.
binary
;
},
removeFromOpenedFiles
(
file
)
{
console
.
log
(
'
file remove
'
,
file
)
if
(
file
.
type
===
'
tree
'
)
return
;
Store
.
openedFiles
=
Store
.
openedFiles
.
filter
((
openedFile
)
=>
{
return
openedFile
.
url
!==
file
.
url
;
});
if
(
file
.
type
===
'
tree
'
)
return
;
Store
.
openedFiles
=
Store
.
openedFiles
.
filter
(
openedFile
=>
openedFile
.
url
!==
file
.
url
);
},
addToOpenedFiles
(
file
)
{
const
openedFilesAlreadyExists
=
Store
.
openedFiles
.
some
((
openedFile
)
=>
{
return
openedFile
.
url
===
file
.
url
});
if
(
!
openedFilesAlreadyExists
)
{
const
openedFilesAlreadyExists
=
Store
.
openedFiles
.
some
(
openedFile
=>
openedFile
.
url
===
file
.
url
);
if
(
!
openedFilesAlreadyExists
)
{
Store
.
openedFiles
.
push
(
file
);
}
},
/* eslint-disable no-param-reassign */
setDirectoryOpen
(
tree
)
{
if
(
tree
)
{
if
(
tree
)
{
tree
.
opened
=
true
;
tree
.
icon
=
'
fa-folder-open
'
;
}
},
/* eslint-enable no-param-reassign */
getRawURLFromBlobURL
(
url
)
{
return
url
.
replace
(
'
blob
'
,
'
raw
'
);
...
...
@@ -113,58 +107,57 @@ let RepoHelper = {
Service
.
getBase64Content
(
url
)
.
then
((
response
)
=>
{
Store
.
blobRaw
=
response
;
file
.
base64
=
response
console
.
log
(
'
file
'
,
file
);
}
);
file
.
base64
=
response
;
// eslint-disable-line no-param-reassign
})
.
catch
(
this
.
loadingError
);
},
toggleFakeTab
(
loading
,
file
)
{
if
(
loading
)
{
if
(
loading
)
{
const
randomURL
=
this
.
Time
.
now
();
const
newFakeFile
=
{
active
:
false
,
binary
:
true
,
type
:
'
blob
'
,
loading
:
true
,
mime_type
:
'
loading
'
,
mime_type
:
'
loading
'
,
name
:
'
loading
'
,
url
:
randomURL
url
:
randomURL
,
};
Store
.
openedFiles
.
push
(
newFakeFile
);
return
newFakeFile
;
}
else
{
}
this
.
removeFromOpenedFiles
(
file
);
return
null
;
}
},
setLoading
(
loading
,
file
)
{
if
(
Service
.
url
.
indexOf
(
'
tree
'
)
>
-
1
)
{
if
(
Service
.
url
.
indexOf
(
'
tree
'
)
>
-
1
)
{
Store
.
loading
.
tree
=
loading
;
}
else
if
(
Service
.
url
.
indexOf
(
'
blob
'
)
>
-
1
)
{
}
else
if
(
Service
.
url
.
indexOf
(
'
blob
'
)
>
-
1
)
{
Store
.
loading
.
blob
=
loading
;
return
this
.
toggleFakeTab
(
loading
,
file
);
}
return
undefined
;
},
// may be tree or file.
getContent
(
file
)
{
const
loadingData
=
this
.
setLoading
(
true
);
console
.
log
(
'
loading data
'
,
loadingData
)
Service
.
getContent
()
.
then
((
response
)
=>
{
console
.
log
(
'
loadddd
'
)
let
data
=
response
.
data
;
const
data
=
response
.
data
;
this
.
setLoading
(
false
,
loadingData
);
Store
.
isTree
=
this
.
isTree
(
data
);
if
(
!
Store
.
isTree
)
{
if
(
!
Store
.
isTree
)
{
// it's a blob
Store
.
binary
=
data
.
binary
;
if
(
data
.
binary
)
{
if
(
data
.
binary
)
{
Store
.
binaryMimeType
=
data
.
mime_type
;
this
.
setBinaryDataAsBase64
(
this
.
getRawURLFromBlobURL
(
file
.
url
),
data
data
,
);
data
.
binary
=
true
;
data
.
url
=
file
.
url
;
...
...
@@ -182,15 +175,14 @@ let RepoHelper = {
}
else
{
// it's a tree
this
.
setDirectoryOpen
(
file
);
le
t
newDirectory
=
this
.
dataToListOfFiles
(
data
);
cons
t
newDirectory
=
this
.
dataToListOfFiles
(
data
);
Store
.
files
=
this
.
insertNewFilesIntoParentDir
(
file
,
Store
.
files
,
newDirectory
);
Store
.
prevURL
=
this
.
blobURLtoParent
(
Service
.
url
);
console
.
log
(
'
Store.prevURL
'
,
Store
.
prevURL
);
}
})
.
catch
((
response
)
=>
{
.
catch
((
)
=>
{
this
.
setLoading
(
false
,
loadingData
);
new
Flash
(
'
Unable to load the file at this time.
'
)
this
.
loadingError
();
});
},
...
...
@@ -198,28 +190,28 @@ let RepoHelper = {
return
`fa-
${
icon
}
`
;
},
/* eslint-disable no-param-reassign */
removeChildFilesOfTree
(
tree
)
{
let
foundTree
=
false
;
Store
.
files
=
Store
.
files
.
filter
((
file
)
=>
{
if
(
file
.
url
===
tree
.
url
)
{
if
(
file
.
url
===
tree
.
url
)
{
foundTree
=
true
;
}
if
(
foundTree
)
{
return
file
.
level
<=
tree
.
level
}
else
{
return
true
;
if
(
foundTree
)
{
return
file
.
level
<=
tree
.
level
;
}
return
true
;
});
tree
.
opened
=
false
;
tree
.
icon
=
'
fa-folder
'
;
},
/* eslint-enable no-param-reassign */
dataToListOfFiles
(
data
)
{
le
t
a
=
[];
cons
t
a
=
[];
//push in blobs
//
push in blobs
data
.
blobs
.
forEach
((
blob
)
=>
{
a
.
push
({
type
:
'
blob
'
,
...
...
@@ -228,8 +220,8 @@ let RepoHelper = {
icon
:
this
.
toFA
(
blob
.
icon
),
lastCommitMessage
:
blob
.
last_commit
.
message
,
lastCommitUpdate
:
blob
.
last_commit
.
committed_date
,
level
:
0
})
level
:
0
,
})
;
});
data
.
trees
.
forEach
((
tree
)
=>
{
...
...
@@ -238,8 +230,8 @@ let RepoHelper = {
name
:
tree
.
name
,
url
:
tree
.
url
,
icon
:
this
.
toFA
(
tree
.
icon
),
level
:
0
})
level
:
0
,
})
;
});
data
.
submodules
.
forEach
((
submodule
)
=>
{
...
...
@@ -248,32 +240,36 @@ let RepoHelper = {
name
:
submodule
.
name
,
url
:
submodule
.
url
,
icon
:
this
.
toFA
(
submodule
.
icon
),
level
:
0
})
level
:
0
,
})
;
});
return
a
;
},
genKey
()
{
return
this
.
Time
.
now
().
toFixed
(
3
)
genKey
()
{
return
this
.
Time
.
now
().
toFixed
(
3
)
;
},
_
key
:
''
,
key
:
''
,
getStateKey
()
{
return
this
.
_key
getStateKey
()
{
return
this
.
key
;
},
setStateKey
(
key
)
{
this
.
_
key
=
key
;
setStateKey
(
key
)
{
this
.
key
=
key
;
},
toURL
(
url
)
{
var
history
=
window
.
history
;
this
.
_key
=
this
.
genKey
();
history
.
pushState
({
key
:
this
.
_key
},
''
,
url
);
}
const
history
=
window
.
history
;
this
.
key
=
this
.
genKey
();
history
.
pushState
({
key
:
this
.
key
},
''
,
url
);
},
loadingError
()
{
new
Flash
(
'
Unable to load the file at this time.
'
);
// eslint-disable-line no-new
},
};
export
default
RepoHelper
;
app/assets/javascripts/repo/repo_loading_file.js
View file @
2e025023
le
t
RepoLoadingFile
=
{
cons
t
RepoLoadingFile
=
{
template
:
`
<tr v-if='loading.tree && !hasFiles'>
<td>
...
...
@@ -36,7 +36,7 @@ let RepoLoadingFile = {
props
:
{
loading
:
Object
,
hasFiles
:
Boolean
,
isMini
:
Boolean
}
isMini
:
Boolean
,
}
,
};
export
default
RepoLoadingFile
;
app/assets/javascripts/repo/repo_mini_mixin.js
View file @
2e025023
import
Store
from
'
./repo_store
'
import
Store
from
'
./repo_store
'
;
le
t
RepoMiniMixin
=
{
cons
t
RepoMiniMixin
=
{
computed
:
{
isMini
()
{
return
!!
Store
.
openedFiles
.
length
;
}
}
,
},
};
...
...
app/assets/javascripts/repo/repo_prev_directory.js
View file @
2e025023
le
t
RepoPreviousDirectory
=
{
cons
t
RepoPreviousDirectory
=
{
template
:
`
<tr>
<td colspan='3'>
...
...
@@ -8,13 +8,13 @@ let RepoPreviousDirectory = {
`
,
props
:
{
name
:
'
repo-previous-directory
'
,
prevurl
:
String
prevurl
:
String
,
},
methods
:
{
linkClicked
(
file
)
{
this
.
$emit
(
'
linkclicked
'
,
file
);
}
}
}
,
}
,
};
export
default
RepoPreviousDirectory
;
app/assets/javascripts/repo/repo_service.js
View file @
2e025023
import
axios
from
'
axios
'
;
le
t
RepoService
=
{
cons
t
RepoService
=
{
url
:
''
,
params
:
{
params
:
{
format
:
'
json
'
}
format
:
'
json
'
,
}
,
},
setUrl
(
url
)
{
...
...
@@ -13,7 +13,7 @@ let RepoService = {
},
getContent
(
url
)
{
if
(
url
)
{
if
(
url
)
{
return
axios
.
get
(
url
,
this
.
params
);
}
return
axios
.
get
(
this
.
url
,
this
.
params
);
...
...
@@ -22,10 +22,10 @@ let RepoService = {
getBase64Content
(
url
)
{
return
axios
.
get
(
url
,
{
responseType
:
'
arraybuffer
'
responseType
:
'
arraybuffer
'
,
})
.
then
(
response
=>
new
Buffer
(
response
.
data
,
'
binary
'
).
toString
(
'
base64
'
))
}
.
then
(
response
=>
new
Buffer
(
response
.
data
,
'
binary
'
).
toString
(
'
base64
'
))
;
}
,
};
export
default
RepoService
;
app/assets/javascripts/repo/repo_sidebar.js
View file @
2e025023
import
Service
from
'
./repo_service
'
import
Helper
from
'
./repo_helper
'
import
Vue
from
'
vue
'
import
Store
from
'
./repo_store
'
import
RepoPreviousDirectory
from
'
./repo_prev_directory
'
import
RepoFile
from
'
./repo_file
'
import
RepoLoadingFile
from
'
./repo_loading_file
'
import
RepoMiniMixin
from
'
./repo_mini_mixin
'
import
Vue
from
'
vue
'
;
import
Service
from
'
./repo_service
'
;
import
Helper
from
'
./repo_helper
'
;
import
Store
from
'
./repo_store
'
;
import
RepoPreviousDirectory
from
'
./repo_prev_directory
'
;
import
RepoFile
from
'
./repo_file
'
;
import
RepoLoadingFile
from
'
./repo_loading_file
'
;
import
RepoMiniMixin
from
'
./repo_mini_mixin
'
;
export
default
class
RepoSidebar
{
constructor
(
url
)
{
...
...
@@ -34,28 +34,28 @@ export default class RepoSidebar {
addPopEventListener
()
{
window
.
addEventListener
(
'
popstate
'
,
()
=>
{
this
.
linkClicked
({
url
:
location
.
href
url
:
location
.
href
,
});
});
},
linkClicked
(
file
)
{
let
url
=
''
;
if
(
typeof
file
===
'
string
'
)
{
if
(
typeof
file
===
'
string
'
)
{
// go back
url
=
file
;
}
else
{
url
=
file
.
url
;
}
Service
.
url
=
url
;
if
(
typeof
file
===
'
object
'
)
{
if
(
file
.
type
===
'
tree
'
&&
file
.
opened
)
{
if
(
typeof
file
===
'
object
'
)
{
if
(
file
.
type
===
'
tree
'
&&
file
.
opened
)
{
Helper
.
removeChildFilesOfTree
(
file
);
return
;
}
Helper
.
getContent
(
file
);
}
}
}
,
},
});
}
...
...
app/assets/javascripts/repo/repo_store.js
View file @
2e025023
le
t
RepoStore
=
{
cons
t
RepoStore
=
{
service
:
''
,
editor
:
''
,
sidebar
:
''
,
...
...
@@ -14,14 +14,14 @@ let RepoStore = {
files
:
[],
binary
:
false
,
binaryMimeType
:
''
,
//scroll bar space for windows
//
scroll bar space for windows
scrollWidth
:
0
,
binaryTypes
:
{
png
:
false
png
:
false
,
},
loading
:
{
tree
:
false
,
blob
:
false
}
blob
:
false
,
}
,
};
export
default
RepoStore
;
app/assets/javascripts/repo/repo_tab.js
View file @
2e025023
import
RepoHelper
from
'
./repo_helper
'
import
RepoHelper
from
'
./repo_helper
'
;
le
t
RepoTab
=
{
cons
t
RepoTab
=
{
template
:
`
<li>
<a href='#' @click.prevent='xClicked(tab)' v-if='!tab.loading'>
...
...
@@ -23,7 +23,7 @@ let RepoTab = {
xClicked
(
file
)
{
RepoHelper
.
removeFromOpenedFiles
(
file
);
}
}
}
,
}
,
};
export
default
RepoTab
;
app/assets/javascripts/repo/repo_tabs.js
View file @
2e025023
import
Vue
from
'
vue
'
;
import
Store
from
'
./repo_store
'
import
RepoTab
from
'
./repo_tab
'
import
RepoMiniMixin
from
'
./repo_mini_mixin
'
import
Store
from
'
./repo_store
'
;
import
RepoTab
from
'
./repo_tab
'
;
import
RepoMiniMixin
from
'
./repo_mini_mixin
'
;
export
default
class
RepoTabs
{
constructor
()
{
thi
s
.
styleTabsForWindows
();
RepoTab
s
.
styleTabsForWindows
();
this
.
initVue
();
}
...
...
@@ -20,7 +20,7 @@ export default class RepoTabs {
});
}
styleTabsForWindows
()
{
st
atic
st
yleTabsForWindows
()
{
const
scrollWidth
=
Number
(
document
.
body
.
dataset
.
scrollWidth
);
Store
.
scrollWidth
=
scrollWidth
;
}
...
...
app/assets/javascripts/repo/repo_view_toggler.js
View file @
2e025023
import
Service
from
'
./repo_service
'
import
Vue
from
'
vue
'
import
Store
from
'
./repo_store
'
import
Vue
from
'
vue
'
;
import
Store
from
'
./repo_store
'
;
export
default
class
RepoViewToggler
{
constructor
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment