Skip to content

Commit 8ed7502

Browse files
Chore: merge master to new theme branch (#2442)
* Feature/project release management (#2431) * feat(common): add common components listSelect * feat(dop): project release management * feat: code optimization * feat: add listSelect unit test case * fix: code optimization * fix(dop): project release management bug (#2441) Co-authored-by: hujiahao-hjh <[email protected]>
1 parent 8c355a9 commit 8ed7502

File tree

42 files changed

+1715
-64
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1715
-64
lines changed

locales/en.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,7 @@
639639
"ok": "ok",
640640
"on": "on",
641641
"one key all read": "one key all read",
642+
"one click to clear": "one click to clear",
642643
"open": "open",
643644
"operate": "operate",
644645
"operated successfully": "operated successfully",
@@ -777,6 +778,7 @@
777778
"required": "required",
778779
"requirement": "requirement",
779780
"requirement & task": "requirement & task",
781+
"return to previous page": "return to previous page",
780782
"reset": "reset",
781783
"reset Password": "reset Password",
782784
"reset account password": "reset account password",
@@ -823,7 +825,7 @@
823825
"select template": "select template",
824826
"select the existing": "select the existing",
825827
"selected template": "selected template",
826-
"selected {xx}": "selected {xx}",
828+
"selected {name}": "selected {name}",
827829
"separated by comma, start with letters and can contain": "multiple use, separate, start with a letter and can contain: numbers / _ - . $ # @ *, * only available in last",
828830
"service": "service",
829831
"service name": "Service Name",

locales/zh.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,7 @@
639639
"ok": "确定",
640640
"on": "",
641641
"one key all read": "一键已读",
642+
"one click to clear": "一键清空",
642643
"open": "开启",
643644
"operate": "操作",
644645
"operated successfully": "操作成功",
@@ -777,6 +778,7 @@
777778
"required": "必需",
778779
"requirement": "需求",
779780
"requirement & task": "需求与任务",
781+
"return to previous page": "返回上一页面",
780782
"reset": "重置",
781783
"reset Password": "重置密码",
782784
"reset account password": "重置账户密码",
@@ -823,7 +825,7 @@
823825
"select template": "选择模板",
824826
"select the existing": "选择已有",
825827
"selected template": "已选模板",
826-
"selected {xx}": "已选择 {xx}",
828+
"selected {name}": "已选择 {name}",
827829
"separated by comma, start with letters and can contain": "多个用,分隔,字母开头,可包含:数字 _ - . / $ # @ *, *只能放在末尾",
828830
"service": "服务",
829831
"service name": "服务名称",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// Copyright (c) 2021 Terminus, Inc.
2+
//
3+
// This program is free software: you can use, redistribute, and/or modify
4+
// it under the terms of the GNU Affero General Public License, version 3
5+
// or later ("AGPL"), as published by the Free Software Foundation.
6+
//
7+
// This program is distributed in the hope that it will be useful, but WITHOUT
8+
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9+
// FITNESS FOR A PARTICULAR PURPOSE.
10+
//
11+
// You should have received a copy of the GNU Affero General Public License
12+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
13+
14+
import React from 'react';
15+
import { ListSelect } from 'common';
16+
import { mount } from 'enzyme';
17+
18+
const list = [{ id: '1-1', title: 'test1-1', pid: '1' }];
19+
const menus = [{ id: '1', title: 'test1' }];
20+
const value = [{ id: '1-1', title: 'test1-1', pid: '1' }];
21+
const renderSelectedItem = (item: { id: string; title: string; pid: string }) => (
22+
<div className="render-selected-item">{item.title}</div>
23+
);
24+
const renderItem = (item: { id: string; title: string; pid: string }) => (
25+
<div className="render-item">{item.title}</div>
26+
);
27+
28+
describe('list-select', () => {
29+
it('empty render should be ok', () => {
30+
const wrapper = mount(
31+
<ListSelect
32+
label="test"
33+
list={list}
34+
menus={menus}
35+
rowKey="id"
36+
parentKey="pid"
37+
menuRowKey="id"
38+
renderSelectedItem={renderSelectedItem}
39+
renderItem={renderItem}
40+
/>,
41+
);
42+
const listDom = wrapper.find('.render-item');
43+
expect(listDom).toHaveHTML('test1-1');
44+
});
45+
46+
it('render should be ok', () => {
47+
const wrapper = mount(
48+
<ListSelect
49+
value={value}
50+
label="test"
51+
list={list}
52+
menus={menus}
53+
rowKey="id"
54+
parentKey="pid"
55+
menuRowKey="id"
56+
renderSelectedItem={renderSelectedItem}
57+
renderItem={renderItem}
58+
/>,
59+
);
60+
const listDom = wrapper.find('.render-selected-item');
61+
expect(listDom).toHaveHTML('test1-1');
62+
});
63+
});

shell/app/common/components/configurable-filter/index.scss

-5
Original file line numberDiff line numberDiff line change
@@ -361,10 +361,5 @@
361361
/* Mozilla Firefox 19+ */
362362
color: rgba($white, 0.3);
363363
}
364-
365-
&:-ms-input-placeholder {
366-
/* Internet Explorer 10+ */
367-
color: rgba($white, 0.3);
368-
}
369364
}
370365
}

shell/app/common/components/configurable-filter/index.tsx

+14-10
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export interface IProps {
3030
value?: Obj;
3131
onConfigChange?: (config: ConfigData) => void;
3232
processField?: (field: Field) => IFormItem;
33+
hideSave?: boolean;
3334
}
3435

3536
interface Field {
@@ -116,6 +117,7 @@ const ConfigurableFilter = ({
116117
onDeleteFilter,
117118
onSaveFilter,
118119
processField,
120+
hideSave,
119121
}: IProps) => {
120122
const [form] = Form.useForm();
121123
const [visible, setVisible] = React.useState(false);
@@ -185,15 +187,17 @@ const ConfigurableFilter = ({
185187
const content = (
186188
<div className="erda-configurable-filter-content">
187189
<div className="erda-configurable-filter-header flex justify-start">
188-
<ConfigSelector
189-
list={configList}
190-
value={currentConfig}
191-
isNew={isNew}
192-
defaultValue={defaultConfig}
193-
onChange={onConfigChange}
194-
onDeleteFilter={onDeleteFilter}
195-
onSaveFilter={saveFilter}
196-
/>
190+
{!hideSave ? (
191+
<ConfigSelector
192+
list={configList}
193+
value={currentConfig}
194+
isNew={isNew}
195+
defaultValue={defaultConfig}
196+
onChange={onConfigChange}
197+
onDeleteFilter={onDeleteFilter}
198+
onSaveFilter={saveFilter}
199+
/>
200+
) : null}
197201

198202
<div className="flex-1 flex justify-end">
199203
<ErdaIcon
@@ -207,7 +211,7 @@ const ConfigurableFilter = ({
207211
</div>
208212
</div>
209213

210-
<div className="erda-configurable-filter-body mt-3">
214+
<div className={`erda-configurable-filter-body ${!hideSave ? 'mt-3' : ''}`}>
211215
<Form form={form} layout="vertical" onValuesChange={onValuesChange}>
212216
<Row>
213217
{fieldsList?.map((item, index: number) => {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
.erda-list-select {
2+
&-btn {
3+
background-color: rgba($color-purple-deep, 0.1);
4+
color: $color-purple-deep;
5+
transition: all 0.5s;
6+
7+
&.ant-dropdown-open {
8+
background-color: $color-purple-deep;
9+
color: $white;
10+
}
11+
}
12+
13+
.result-list {
14+
background-color: rgba($color-default, 0.01);
15+
color: $color-default;
16+
17+
.desc {
18+
color: rgba($color-default, 0.6);
19+
}
20+
21+
.erda-list-select-selected-item-delete {
22+
color: $color-default-4;
23+
visibility: hidden;
24+
}
25+
26+
.erda-list-select-selected-item:hover {
27+
.text-hover {
28+
color: $color-purple-deep !important;
29+
}
30+
31+
.erda-list-select-selected-item-delete {
32+
visibility: visible;
33+
}
34+
}
35+
}
36+
}
37+
38+
.erda-list-select-overlay {
39+
width: 1120px;
40+
height: 400px;
41+
background-color: $color-default;
42+
43+
.selected-num {
44+
padding: 1px 6px;
45+
background-color: rgba($white, 0.08);
46+
color: $color-white-8;
47+
}
48+
49+
.erda-list-select-selected-list {
50+
height: calc(100% - 100px);
51+
color: rgba($white, 9);
52+
53+
.desc {
54+
color: $color-white-6;
55+
}
56+
57+
&::-webkit-scrollbar {
58+
width: 10px;
59+
background-color: $color-default;
60+
}
61+
&::-webkit-scrollbar-thumb {
62+
border-radius: 5px;
63+
background-color: $color-white-1;
64+
}
65+
}
66+
67+
.erda-list-select-selected-item-delete {
68+
visibility: hidden;
69+
}
70+
71+
.erda-list-select-selected-item:hover {
72+
.text-hover {
73+
color: $color-purple-deep !important;
74+
}
75+
76+
.erda-list-select-selected-item-delete {
77+
visibility: visible;
78+
}
79+
}
80+
81+
.erda-list-select-right-content {
82+
height: calc(100% - 66px);
83+
}
84+
85+
.erda-list-select-menus {
86+
width: 160px;
87+
overflow-y: auto;
88+
flex-shrink: 0;
89+
90+
&::-webkit-scrollbar {
91+
width: 10px;
92+
background-color: $color-default;
93+
}
94+
95+
&::-webkit-scrollbar-thumb {
96+
border-radius: 5px;
97+
background-color: $color-white-1;
98+
}
99+
100+
.erda-list-select-menu-item {
101+
padding: 5px 8px;
102+
color: rgba($white, 0.9);
103+
border-radius: 2px;
104+
cursor: pointer;
105+
}
106+
107+
.active {
108+
background-color: $color-purple-deep !important;
109+
}
110+
}
111+
112+
.erda-list-select-list {
113+
height: calc(100% - 40px);
114+
115+
& > div {
116+
&::-webkit-scrollbar {
117+
width: 10px;
118+
background-color: $color-default;
119+
}
120+
&::-webkit-scrollbar-thumb {
121+
border-radius: 5px;
122+
background-color: $color-white-1;
123+
}
124+
}
125+
}
126+
127+
.erda-pagination {
128+
color: $color-white-6;
129+
130+
.bg-hover:hover {
131+
color: $white;
132+
}
133+
}
134+
135+
.ant-btn {
136+
background-color: $color-white-2;
137+
border: none;
138+
color: $white;
139+
140+
&.ant-btn-primary {
141+
background-color: $color-purple-deep;
142+
border-color: $color-purple-deep;
143+
}
144+
}
145+
146+
.ant-input-prefix {
147+
color: $color-white-3;
148+
}
149+
150+
input {
151+
background-color: transparent;
152+
color: $color-white-6;
153+
154+
&::-webkit-input-placeholder {
155+
/* WebKit browsers */
156+
color: $color-white-3;
157+
}
158+
159+
&::-moz-placeholder {
160+
/* Mozilla Firefox 19+ */
161+
color: $color-white-3;
162+
}
163+
}
164+
}

0 commit comments

Comments
 (0)