Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
d3cfa39e
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,体验更适合开发者的 AI 搜索 >>
提交
d3cfa39e
编写于
7月 21, 2016
作者:
J
James Lopez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
New error message recreating projects on pending delete
上级
4404ea86
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
59 addition
and
5 deletion
+59
-5
app/models/concerns/valid_attribute.rb
app/models/concerns/valid_attribute.rb
+10
-0
app/models/project.rb
app/models/project.rb
+20
-0
changelogs/unreleased/fix-project-delete-tooltip.yml
changelogs/unreleased/fix-project-delete-tooltip.yml
+4
-0
spec/models/project_spec.rb
spec/models/project_spec.rb
+25
-5
未找到文件。
app/models/concerns/valid_attribute.rb
0 → 100644
浏览文件 @
d3cfa39e
module
ValidAttribute
extend
ActiveSupport
::
Concern
# Checks whether an attribute has failed validation or not
#
# +attribute+ The symbolised name of the attribute i.e :name
def
valid_attribute?
(
attribute
)
self
.
errors
.
empty?
||
self
.
errors
.
messages
[
attribute
].
nil?
end
end
app/models/project.rb
浏览文件 @
d3cfa39e
...
@@ -12,6 +12,7 @@ class Project < ActiveRecord::Base
...
@@ -12,6 +12,7 @@ class Project < ActiveRecord::Base
include
AfterCommitQueue
include
AfterCommitQueue
include
CaseSensitivity
include
CaseSensitivity
include
TokenAuthenticatable
include
TokenAuthenticatable
include
ValidAttribute
include
ProjectFeaturesCompatibility
include
ProjectFeaturesCompatibility
include
SelectForProjectAuthorization
include
SelectForProjectAuthorization
include
Routable
include
Routable
...
@@ -65,6 +66,8 @@ class Project < ActiveRecord::Base
...
@@ -65,6 +66,8 @@ class Project < ActiveRecord::Base
end
end
end
end
after_validation
:check_pending_delete
ActsAsTaggableOn
.
strict_case_match
=
true
ActsAsTaggableOn
.
strict_case_match
=
true
acts_as_taggable_on
:tags
acts_as_taggable_on
:tags
...
@@ -1320,4 +1323,21 @@ class Project < ActiveRecord::Base
...
@@ -1320,4 +1323,21 @@ class Project < ActiveRecord::Base
stats
=
statistics
||
build_statistics
stats
=
statistics
||
build_statistics
stats
.
update
(
namespace_id:
namespace_id
)
stats
.
update
(
namespace_id:
namespace_id
)
end
end
def
check_pending_delete
return
if
valid_attribute?
(
:name
)
&&
valid_attribute?
(
:path
)
return
unless
pending_delete_twin
%i[route route.path name path]
.
each
do
|
error
|
errors
.
delete
(
error
)
end
errors
.
add
(
:base
,
"The project is still being deleted. Please try again later."
)
end
def
pending_delete_twin
return
false
unless
path
Project
.
unscoped
.
where
(
pending_delete:
true
).
find_with_namespace
(
path_with_namespace
)
end
end
end
changelogs/unreleased/fix-project-delete-tooltip.yml
0 → 100644
浏览文件 @
d3cfa39e
---
title
:
Fix project queued for deletion re-creation tooltip
merge_request
:
author
:
spec/models/project_spec.rb
浏览文件 @
d3cfa39e
...
@@ -190,34 +190,54 @@ describe Project, models: true do
...
@@ -190,34 +190,54 @@ describe Project, models: true do
end
end
it
'does not allow an invalid URI as import_url'
do
it
'does not allow an invalid URI as import_url'
do
project2
=
build
(
:project
,
import_url:
'invalid://'
)
project2
=
build
(
:
empty_
project
,
import_url:
'invalid://'
)
expect
(
project2
).
not_to
be_valid
expect
(
project2
).
not_to
be_valid
end
end
it
'does allow a valid URI as import_url'
do
it
'does allow a valid URI as import_url'
do
project2
=
build
(
:project
,
import_url:
'ssh://test@gitlab.com/project.git'
)
project2
=
build
(
:
empty_
project
,
import_url:
'ssh://test@gitlab.com/project.git'
)
expect
(
project2
).
to
be_valid
expect
(
project2
).
to
be_valid
end
end
it
'allows an empty URI'
do
it
'allows an empty URI'
do
project2
=
build
(
:project
,
import_url:
''
)
project2
=
build
(
:
empty_
project
,
import_url:
''
)
expect
(
project2
).
to
be_valid
expect
(
project2
).
to
be_valid
end
end
it
'does not produce import data on an empty URI'
do
it
'does not produce import data on an empty URI'
do
project2
=
build
(
:project
,
import_url:
''
)
project2
=
build
(
:
empty_
project
,
import_url:
''
)
expect
(
project2
.
import_data
).
to
be_nil
expect
(
project2
.
import_data
).
to
be_nil
end
end
it
'does not produce import data on an invalid URI'
do
it
'does not produce import data on an invalid URI'
do
project2
=
build
(
:project
,
import_url:
'test://'
)
project2
=
build
(
:
empty_
project
,
import_url:
'test://'
)
expect
(
project2
.
import_data
).
to
be_nil
expect
(
project2
.
import_data
).
to
be_nil
end
end
describe
'project pending deletion'
do
let!
(
:project_pending_deletion
)
do
create
(
:empty_project
,
pending_delete:
true
)
end
let
(
:new_project
)
do
build
(
:empty_project
,
name:
project_pending_deletion
.
name
,
namespace:
project_pending_deletion
.
namespace
)
end
before
do
new_project
.
validate
end
it
'contains errors related to the project being deleted'
do
expect
(
new_project
.
errors
.
full_messages
.
first
).
to
eq
(
'The project is still being deleted. Please try again later.'
)
end
end
end
end
describe
'default_scope'
do
describe
'default_scope'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录