Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
fe1871b5
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
fe1871b5
编写于
10月 23, 2017
作者:
P
Phil Hughes
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
moved to eventHub to manage creating new files
removed an ID from the CSS
上级
5f988a72
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
71 addition
and
50 deletion
+71
-50
app/assets/javascripts/repo/components/new_dropdown/index.vue
...assets/javascripts/repo/components/new_dropdown/index.vue
+16
-0
app/assets/javascripts/repo/components/new_dropdown/modal.vue
...assets/javascripts/repo/components/new_dropdown/modal.vue
+7
-41
app/assets/javascripts/repo/components/repo.vue
app/assets/javascripts/repo/components/repo.vue
+2
-1
app/assets/javascripts/repo/components/repo_file_buttons.vue
app/assets/javascripts/repo/components/repo_file_buttons.vue
+1
-1
app/assets/javascripts/repo/helpers/repo_helper.js
app/assets/javascripts/repo/helpers/repo_helper.js
+44
-4
app/assets/javascripts/repo/stores/repo_store.js
app/assets/javascripts/repo/stores/repo_store.js
+0
-2
app/assets/stylesheets/pages/repo.scss
app/assets/stylesheets/pages/repo.scss
+1
-1
未找到文件。
app/assets/javascripts/repo/components/new_dropdown/index.vue
浏览文件 @
fe1871b5
<
script
>
import
RepoHelper
from
'
../../helpers/repo_helper
'
;
import
RepoStore
from
'
../../stores/repo_store
'
;
import
eventHub
from
'
../../event_hub
'
;
import
newModal
from
'
./modal.vue
'
;
export
default
{
...
...
@@ -9,6 +12,7 @@
return
{
openModal
:
false
,
modalType
:
''
,
currentPath
:
RepoStore
.
path
,
};
},
methods
:
{
...
...
@@ -19,6 +23,17 @@
toggleModalOpen
()
{
this
.
openModal
=
!
this
.
openModal
;
},
createNewEntryInStore
(
name
,
type
)
{
RepoHelper
.
createNewEntry
(
name
,
type
);
this
.
toggleModalOpen
();
},
},
created
()
{
eventHub
.
$on
(
'
createNewEntry
'
,
this
.
createNewEntryInStore
);
},
beforeDestroy
()
{
eventHub
.
$off
(
'
createNewEntry
'
,
this
.
createNewEntryInStore
);
},
};
</
script
>
...
...
@@ -64,6 +79,7 @@
<new-modal
v-if=
"openModal"
:type=
"modalType"
:current-path=
"currentPath"
@
toggle=
"toggleModalOpen"
/>
</div>
...
...
app/assets/javascripts/repo/components/new_dropdown/modal.vue
浏览文件 @
fe1871b5
<
script
>
import
{
__
}
from
'
../../../locale
'
;
import
popupDialog
from
'
../../../vue_shared/components/popup_dialog.vue
'
;
import
RepoStore
from
'
../../stores/repo_store
'
;
import
RepoHelper
from
'
../../helpers/repo_helper
'
;
import
eventHub
from
'
../../event_hub
'
;
export
default
{
props
:
{
currentPath
:
{
type
:
String
,
required
:
true
,
},
type
:
{
type
:
String
,
required
:
true
,
...
...
@@ -13,7 +16,7 @@
},
data
()
{
return
{
entryName
:
RepoStore
.
path
!==
''
?
`
${
RepoStore
.
p
ath
}
/`
:
''
,
entryName
:
this
.
currentPath
!==
''
?
`
${
this
.
currentP
ath
}
/`
:
''
,
};
},
components
:
{
...
...
@@ -21,44 +24,7 @@
},
methods
:
{
createEntryInStore
()
{
const
originalPath
=
RepoStore
.
path
;
let
entryName
=
this
.
entryName
;
if
(
entryName
.
indexOf
(
`
${
RepoStore
.
path
}
/`
)
!==
0
)
{
RepoStore
.
path
=
''
;
}
else
{
entryName
=
entryName
.
replace
(
`
${
RepoStore
.
path
}
/`
,
''
);
}
if
(
entryName
===
''
)
return
;
const
fileName
=
this
.
type
===
'
tree
'
?
'
.gitkeep
'
:
entryName
;
let
tree
=
RepoStore
;
if
(
this
.
type
===
'
tree
'
)
{
const
dirNames
=
entryName
.
split
(
'
/
'
);
dirNames
.
forEach
((
dirName
)
=>
{
if
(
dirName
===
''
)
return
;
tree
=
RepoHelper
.
findOrCreateEntry
(
'
tree
'
,
tree
,
dirName
).
entry
;
});
}
if
((
this
.
type
===
'
tree
'
&&
tree
.
tempFile
)
||
this
.
type
===
'
blob
'
)
{
const
file
=
RepoHelper
.
findOrCreateEntry
(
'
blob
'
,
tree
,
fileName
);
if
(
!
file
.
exists
)
{
RepoHelper
.
setFile
(
file
.
entry
,
file
.
entry
);
RepoStore
.
editMode
=
true
;
RepoStore
.
currentBlobView
=
'
repo-editor
'
;
}
}
this
.
toggleModalOpen
();
RepoStore
.
path
=
originalPath
;
eventHub
.
$emit
(
'
createNewEntry
'
,
this
.
entryName
,
this
.
type
);
},
toggleModalOpen
()
{
this
.
$emit
(
'
toggle
'
);
...
...
app/assets/javascripts/repo/components/repo.vue
浏览文件 @
fe1871b5
...
...
@@ -39,7 +39,8 @@ export default {
this
.
dialog
.
status
=
status
;
// remove tmp files
Helper
.
removeAllTmpFiles
();
Helper
.
removeAllTmpFiles
(
'
openedFiles
'
);
Helper
.
removeAllTmpFiles
(
'
files
'
);
},
toggleBlobView
:
Store
.
toggleBlobView
,
...
...
app/assets/javascripts/repo/components/repo_file_buttons.vue
浏览文件 @
fe1871b5
...
...
@@ -37,7 +37,7 @@ export default RepoFileButtons;
<
template
>
<div
v-if=
"showButtons"
id
=
"repo-file-buttons"
class
=
"repo-file-buttons"
>
<a
:href=
"activeFile.raw_path"
...
...
app/assets/javascripts/repo/helpers/repo_helper.js
浏览文件 @
fe1871b5
...
...
@@ -242,7 +242,13 @@ const RepoHelper = {
loadingError
()
{
Flash
(
'
Unable to load this content at this time.
'
);
},
openEditMode
()
{
Store
.
editMode
=
true
;
Store
.
currentBlobView
=
'
repo-editor
'
;
},
updateStorePath
(
path
)
{
Store
.
path
=
path
;
},
findOrCreateEntry
(
type
,
tree
,
name
)
{
let
exists
=
true
;
let
foundEntry
=
tree
.
files
.
find
(
dir
=>
dir
.
type
===
type
&&
dir
.
name
===
name
);
...
...
@@ -267,10 +273,44 @@ const RepoHelper = {
exists
,
};
},
removeAllTmpFiles
(
storeFilesKey
)
{
Store
[
storeFilesKey
]
=
Store
[
storeFilesKey
].
filter
(
f
=>
!
f
.
tempFile
);
},
createNewEntry
(
name
,
type
)
{
const
originalPath
=
Store
.
path
;
let
entryName
=
name
;
if
(
entryName
.
indexOf
(
`
${
originalPath
}
/`
)
!==
0
)
{
this
.
updateStorePath
(
''
);
}
else
{
entryName
=
entryName
.
replace
(
`
${
originalPath
}
/`
,
''
);
}
if
(
entryName
===
''
)
return
;
const
fileName
=
type
===
'
tree
'
?
'
.gitkeep
'
:
entryName
;
let
tree
=
Store
;
if
(
type
===
'
tree
'
)
{
const
dirNames
=
entryName
.
split
(
'
/
'
);
dirNames
.
forEach
((
dirName
)
=>
{
if
(
dirName
===
''
)
return
;
tree
=
this
.
findOrCreateEntry
(
'
tree
'
,
tree
,
dirName
).
entry
;
});
}
if
((
type
===
'
tree
'
&&
tree
.
tempFile
)
||
type
===
'
blob
'
)
{
const
file
=
this
.
findOrCreateEntry
(
'
blob
'
,
tree
,
fileName
);
if
(
!
file
.
exists
)
{
this
.
setFile
(
file
.
entry
,
file
.
entry
);
this
.
openEditMode
();
}
}
removeAllTmpFiles
()
{
Store
.
openedFiles
=
Store
.
openedFiles
.
filter
(
f
=>
!
f
.
tempFile
);
Store
.
files
=
Store
.
files
.
filter
(
f
=>
!
f
.
tempFile
);
this
.
updateStorePath
(
originalPath
);
},
};
...
...
app/assets/javascripts/repo/stores/repo_store.js
浏览文件 @
fe1871b5
...
...
@@ -185,6 +185,4 @@ const RepoStore = {
},
};
window
.
RepoStore
=
RepoStore
;
export
default
RepoStore
;
app/assets/stylesheets/pages/repo.scss
浏览文件 @
fe1871b5
...
...
@@ -201,7 +201,7 @@
}
}
#
repo-file-buttons
{
.
repo-file-buttons
{
background-color
:
$white-light
;
padding
:
5px
10px
;
border-top
:
1px
solid
$white-normal
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录