Revize bebb116e
Přidáno uživatelem Dominik Chlouba před téměř 4 roky(ů)
src/Core/Application/Leuze.Core.Application.UI/Pages/Index.razor | ||
---|---|---|
2 | 2 |
@layout MainLayout |
3 | 3 |
@attribute [Authorize] |
4 | 4 |
|
5 |
<h1>Hello, world!</h1> |
|
6 |
|
|
7 |
Welcome to your new app. |
|
8 |
|
|
9 |
<SurveyPrompt Title="How is Blazor working for you?" /> |
|
10 | 5 |
<AuthorizeView> |
11 |
@context.User.Identity?.IsAuthenticated
|
|
12 |
</AuthorizeView> |
|
6 |
<h1>Vítejte, @context.User.Identity?.Name</h1>
|
|
7 |
</AuthorizeView> |
src/Core/Application/Leuze.Core.Application.UI/Pages/_Host.cshtml | ||
---|---|---|
15 | 15 |
<link href="css/site.css" rel="stylesheet" /> |
16 | 16 |
<link href="_content/Blazored.Toast/blazored-toast.min.css" rel="stylesheet" /> |
17 | 17 |
<link href="Leuze.App.styles.css" rel="stylesheet" /> |
18 |
<link href="css/all.min.css" rel="stylesheet" /> |
|
18 | 19 |
</head> |
19 | 20 |
<body> |
20 | 21 |
<component type="typeof(App)" render-mode="ServerPrerendered" /> |
src/Core/Application/Leuze.Core.Application.UI/Shared/NavMenu.razor | ||
---|---|---|
1 | 1 |
<aside class="@_aside"> |
2 | 2 |
<nav class="@_nav"> |
3 |
<NavLink href="/dashboard">
|
|
3 |
<NavLink href="/"> |
|
4 | 4 |
<div class="item"> |
5 | 5 |
<img src="/Resources/Icons/analytics.svg" class="item_icon nav_icon_1" /> |
6 | 6 |
<span>Přehled</span> |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Leuze.Modules.Goal.Application.UI.csproj | ||
---|---|---|
24 | 24 |
<ProjectReference Include="..\Leuze.Modules.Goal.Application\Leuze.Modules.Goal.Application.csproj" /> |
25 | 25 |
</ItemGroup> |
26 | 26 |
|
27 |
<ItemGroup> |
|
28 |
<Folder Include="Pages\Components\" /> |
|
29 |
</ItemGroup> |
|
30 |
|
|
31 | 27 |
</Project> |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/Components/CreateDefinitionRangeAside.razor | ||
---|---|---|
1 |
|
|
2 |
<aside class="@_aside review_detail"> |
|
3 |
<div class="review_detail_header"> |
|
4 |
<div> |
|
5 |
Vytvořit oblast definic |
|
6 |
</div> |
|
7 |
<div> |
|
8 |
<div class="close_button" @onclick="Close"> |
|
9 |
<i class="fal fa-times"></i> |
|
10 |
</div> |
|
11 |
</div> |
|
12 |
</div> |
|
13 |
<div class="review_detail_body"> |
|
14 |
<div class="review_description_title">Datum začátku oblasti</div> |
|
15 |
<input type="date" /> |
|
16 |
<div class="review_description_title">Datum konce oblasti</div> |
|
17 |
<input type="date" /> |
|
18 |
<div class="review_description_title">Firemní výsledek oblasti</div> |
|
19 |
<input type="number" /> |
|
20 |
</div> |
|
21 |
<div class="review_detail_footer"> |
|
22 |
<button>Uložit</button> |
|
23 |
<button @onclick="Close">Zrušit</button> |
|
24 |
</div> |
|
25 |
</aside> |
|
26 |
|
|
27 |
|
|
28 |
<BlazorStyled.Styled @bind-Classname="@_aside"> |
|
29 |
right: @(Show ? "0" : "-615")px; |
|
30 |
</BlazorStyled.Styled> |
|
31 |
<BlazorStyled.Styled> |
|
32 |
.review_detail { |
|
33 |
width: 600px; |
|
34 |
height: 100%; |
|
35 |
position: fixed; |
|
36 |
transition: .25s right; |
|
37 |
top: 0; |
|
38 |
background-color: white; |
|
39 |
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
40 |
-moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
41 |
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
42 |
} |
|
43 |
|
|
44 |
.review_detail_header > div { |
|
45 |
height: 100%; |
|
46 |
display: flex; |
|
47 |
align-items: center; |
|
48 |
} |
|
49 |
|
|
50 |
.review_detail_header { |
|
51 |
padding: 12px 24px; |
|
52 |
border-bottom: 1px solid #11111122; |
|
53 |
height: 26px; |
|
54 |
display: flex; |
|
55 |
align-items: center; |
|
56 |
justify-content: space-between; |
|
57 |
} |
|
58 |
|
|
59 |
.review_detail_body{ |
|
60 |
padding: 16px 0; |
|
61 |
height: calc(100% - 143px - 50px - 12px); |
|
62 |
overflow-y: auto; |
|
63 |
overflow-x: hidden; |
|
64 |
} |
|
65 |
|
|
66 |
.review_detail_footer{ |
|
67 |
height: 36px; |
|
68 |
background-color: #F6F8F9; |
|
69 |
position: absolute; |
|
70 |
bottom: 0; |
|
71 |
left: 0; |
|
72 |
width: calc(100% - 50px); |
|
73 |
display: grid; |
|
74 |
padding: 24px; |
|
75 |
grid-template-columns: repeat(2, 1fr); |
|
76 |
} |
|
77 |
|
|
78 |
.review_detail_footer button:first-child{ |
|
79 |
margin-right: 12px; |
|
80 |
} |
|
81 |
|
|
82 |
.review_detail_footer button:last-child{ |
|
83 |
margin-left: 12px; |
|
84 |
} |
|
85 |
</BlazorStyled.Styled> |
|
86 |
|
|
87 |
@code { |
|
88 |
|
|
89 |
private string _aside; |
|
90 |
|
|
91 |
[Parameter] |
|
92 |
public bool Show { get; set; } = false; |
|
93 |
|
|
94 |
[Parameter] |
|
95 |
public EventCallback CloseAside { get; set; } |
|
96 |
|
|
97 |
private async Task Close() |
|
98 |
{ |
|
99 |
//ResetValues(); |
|
100 |
await CloseAside.InvokeAsync(); |
|
101 |
} |
|
102 |
|
|
103 |
} |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/Components/CreateGoalAside.razor | ||
---|---|---|
1 |
|
|
2 |
<aside class="@_aside review_detail"> |
|
3 |
<div class="review_detail_header"> |
|
4 |
<div>Vytvořit nový cíl</div> |
|
5 |
<div> |
|
6 |
<div class="close_button" @onclick="Close"> |
|
7 |
<i class="fal fa-times"></i> |
|
8 |
</div> |
|
9 |
</div> |
|
10 |
</div> |
|
11 |
<div class="review_detail_body"> |
|
12 |
<div class="review_description_title">Název cíle</div> |
|
13 |
<input type="text" /> |
|
14 |
<div class="review_description_title">Popis cíle</div> |
|
15 |
<textarea></textarea> |
|
16 |
</div> |
|
17 |
<div class="review_detail_footer"> |
|
18 |
<button>Vytvořit</button> |
|
19 |
<button>Zrušit</button> |
|
20 |
</div> |
|
21 |
</aside> |
|
22 |
|
|
23 |
<BlazorStyled.Styled @bind-Classname="@_aside"> |
|
24 |
right: @(Show ? "0" : "-615")px; |
|
25 |
</BlazorStyled.Styled> |
|
26 |
<BlazorStyled.Styled> |
|
27 |
.review_detail { |
|
28 |
width: 600px; |
|
29 |
height: 100%; |
|
30 |
position: fixed; |
|
31 |
top: 0; |
|
32 |
transition: .25s right; |
|
33 |
background-color: white; |
|
34 |
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
35 |
-moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
36 |
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
37 |
} |
|
38 |
|
|
39 |
.review_detail_header > div { |
|
40 |
height: 100%; |
|
41 |
display: flex; |
|
42 |
align-items: center; |
|
43 |
} |
|
44 |
|
|
45 |
.review_detail_header { |
|
46 |
padding: 12px 24px; |
|
47 |
border-bottom: 1px solid #11111122; |
|
48 |
height: 26px; |
|
49 |
display: flex; |
|
50 |
align-items: center; |
|
51 |
justify-content: space-between; |
|
52 |
} |
|
53 |
|
|
54 |
.review_detail_body{ |
|
55 |
padding: 16px 0; |
|
56 |
height: calc(100% - 143px - 50px - 12px); |
|
57 |
overflow-y: auto; |
|
58 |
overflow-x: hidden; |
|
59 |
} |
|
60 |
|
|
61 |
.review_detail_footer{ |
|
62 |
height: 36px; |
|
63 |
background-color: #F6F8F9; |
|
64 |
position: absolute; |
|
65 |
bottom: 0; |
|
66 |
left: 0; |
|
67 |
width: calc(100% - 50px); |
|
68 |
display: grid; |
|
69 |
padding: 24px; |
|
70 |
grid-template-columns: repeat(2, 1fr); |
|
71 |
} |
|
72 |
|
|
73 |
.review_detail_footer button:first-child{ |
|
74 |
margin-right: 12px; |
|
75 |
} |
|
76 |
|
|
77 |
.review_detail_footer button:last-child{ |
|
78 |
margin-left: 12px; |
|
79 |
} |
|
80 |
.review_button { |
|
81 |
color: red; |
|
82 |
cursor: pointer; |
|
83 |
opacity: .75; |
|
84 |
} |
|
85 |
|
|
86 |
.review_button:hover { |
|
87 |
opacity: 1; |
|
88 |
} |
|
89 |
|
|
90 |
.review_button.accepted { |
|
91 |
color: green; |
|
92 |
} |
|
93 |
|
|
94 |
.review_button:not(:last-child) { |
|
95 |
margin-right: 16px; |
|
96 |
} |
|
97 |
.review_detail_body .review_description { |
|
98 |
padding: 8px 12px; |
|
99 |
border: 1px solid white; |
|
100 |
width: calc(100% - 24px); |
|
101 |
outline: none; |
|
102 |
margin: 12px 24px 24px 24px; |
|
103 |
} |
|
104 |
|
|
105 |
.review_detail_body .review_description_title { |
|
106 |
margin: 0 24px; |
|
107 |
} |
|
108 |
|
|
109 |
.review_description_paragraph{ |
|
110 |
margin: 12px 24px 24px 24px; |
|
111 |
} |
|
112 |
|
|
113 |
.review_detail_body .review_description:hover{ |
|
114 |
border: 1px solid #EEEEEE; |
|
115 |
} |
|
116 |
|
|
117 |
.review_detail_body .review_description:focus{ |
|
118 |
border: 1px solid #A8A8A8; |
|
119 |
} |
|
120 |
</BlazorStyled.Styled> |
|
121 |
|
|
122 |
@code { |
|
123 |
|
|
124 |
private string _aside; |
|
125 |
|
|
126 |
[Parameter] |
|
127 |
public bool Show { get; set; } = false; |
|
128 |
|
|
129 |
[Parameter] |
|
130 |
public EventCallback CloseAside { get; set; } |
|
131 |
|
|
132 |
private async Task Close() |
|
133 |
{ |
|
134 |
//ResetValues(); |
|
135 |
await CloseAside.InvokeAsync(); |
|
136 |
} |
|
137 |
|
|
138 |
} |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/Components/CreateGoalDefinition.razor | ||
---|---|---|
1 |
|
|
2 |
<aside class="@_aside review_detail"> |
|
3 |
<div class="review_detail_header"> |
|
4 |
<div> |
|
5 |
Vytvořit definici cílů |
|
6 |
</div> |
|
7 |
<div> |
|
8 |
<div class="close_button" @onclick="Close"> |
|
9 |
<i class="fal fa-times"></i> |
|
10 |
</div> |
|
11 |
</div> |
|
12 |
</div> |
|
13 |
<div class="review_detail_body"> |
|
14 |
<div class="review_description_title">Název definice</div> |
|
15 |
<input type="text" /> |
|
16 |
<div class="review_description_title">Přiřazený uživatel</div> |
|
17 |
<select> |
|
18 |
<option value="" disabled>Zvolte uživatele</option> |
|
19 |
</select> |
|
20 |
</div> |
|
21 |
<div class="review_detail_footer"> |
|
22 |
<button>Vytvořit</button> |
|
23 |
<button @onclick="Close">Zrušit</button> |
|
24 |
</div> |
|
25 |
</aside> |
|
26 |
|
|
27 |
<BlazorStyled.Styled @bind-Classname="@_aside"> |
|
28 |
right: @(Show ? "0" : "-615")px; |
|
29 |
</BlazorStyled.Styled> |
|
30 |
<BlazorStyled.Styled> |
|
31 |
.review_detail { |
|
32 |
width: 600px; |
|
33 |
height: 100%; |
|
34 |
position: fixed; |
|
35 |
top: 0; |
|
36 |
transition: .25s right; |
|
37 |
background-color: white; |
|
38 |
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
39 |
-moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
40 |
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
41 |
} |
|
42 |
|
|
43 |
.review_detail_header > div { |
|
44 |
height: 100%; |
|
45 |
display: flex; |
|
46 |
align-items: center; |
|
47 |
} |
|
48 |
|
|
49 |
.review_detail_header { |
|
50 |
padding: 12px 24px; |
|
51 |
border-bottom: 1px solid #11111122; |
|
52 |
height: 26px; |
|
53 |
display: flex; |
|
54 |
align-items: center; |
|
55 |
justify-content: space-between; |
|
56 |
} |
|
57 |
|
|
58 |
.review_detail_body{ |
|
59 |
padding: 16px 0; |
|
60 |
height: calc(100% - 143px - 50px - 12px); |
|
61 |
overflow-y: auto; |
|
62 |
overflow-x: hidden; |
|
63 |
} |
|
64 |
|
|
65 |
.review_detail_footer{ |
|
66 |
height: 36px; |
|
67 |
background-color: #F6F8F9; |
|
68 |
position: absolute; |
|
69 |
bottom: 0; |
|
70 |
left: 0; |
|
71 |
width: calc(100% - 50px); |
|
72 |
display: grid; |
|
73 |
padding: 24px; |
|
74 |
grid-template-columns: repeat(2, 1fr); |
|
75 |
} |
|
76 |
|
|
77 |
.review_detail_footer button:first-child{ |
|
78 |
margin-right: 12px; |
|
79 |
} |
|
80 |
|
|
81 |
.review_detail_footer button:last-child{ |
|
82 |
margin-left: 12px; |
|
83 |
} |
|
84 |
.review_button { |
|
85 |
color: red; |
|
86 |
cursor: pointer; |
|
87 |
opacity: .75; |
|
88 |
} |
|
89 |
|
|
90 |
.review_button:hover { |
|
91 |
opacity: 1; |
|
92 |
} |
|
93 |
|
|
94 |
.review_button.accepted { |
|
95 |
color: green; |
|
96 |
} |
|
97 |
|
|
98 |
.review_button:not(:last-child) { |
|
99 |
margin-right: 16px; |
|
100 |
} |
|
101 |
.review_detail_body .review_description { |
|
102 |
padding: 8px 12px; |
|
103 |
border: 1px solid white; |
|
104 |
width: calc(100% - 24px); |
|
105 |
outline: none; |
|
106 |
margin: 12px 24px 24px 24px; |
|
107 |
} |
|
108 |
|
|
109 |
.review_detail_body .review_description_title { |
|
110 |
margin: 0 24px; |
|
111 |
} |
|
112 |
|
|
113 |
.review_description_paragraph{ |
|
114 |
margin: 12px 24px 24px 24px; |
|
115 |
} |
|
116 |
|
|
117 |
.review_detail_body .review_description:hover{ |
|
118 |
border: 1px solid #EEEEEE; |
|
119 |
} |
|
120 |
|
|
121 |
.review_detail_body .review_description:focus{ |
|
122 |
border: 1px solid #A8A8A8; |
|
123 |
} |
|
124 |
</BlazorStyled.Styled> |
|
125 |
|
|
126 |
@code { |
|
127 |
|
|
128 |
private string _aside; |
|
129 |
|
|
130 |
[Parameter] |
|
131 |
public bool Show { get; set; } = false; |
|
132 |
|
|
133 |
[Parameter] |
|
134 |
public EventCallback CloseAside { get; set; } |
|
135 |
|
|
136 |
private async Task Close() |
|
137 |
{ |
|
138 |
//ResetValues(); |
|
139 |
await CloseAside.InvokeAsync(); |
|
140 |
} |
|
141 |
|
|
142 |
} |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/Components/GoalDetailAside.razor | ||
---|---|---|
1 |
|
|
2 |
<aside class="@_aside goal_detail"> |
|
3 |
<div class="goal_detail_header"> |
|
4 |
<div> |
|
5 |
<button class="authorize_button accepted">Schválit</button> |
|
6 |
<div class="review_button accepted"> |
|
7 |
1 <i class="fal fa-trophy"></i> |
|
8 |
</div> |
|
9 |
<div class="review_button accepted" title="zkouška"> |
|
10 |
2 <i class="fal fa-trophy"></i> |
|
11 |
</div> |
|
12 |
<div class="review_button"> |
|
13 |
<i class="fal fa-trophy-alt"></i> |
|
14 |
</div> |
|
15 |
<button class="authorize_button">Vytvořit 1. hodnocení</button> |
|
16 |
</div> |
|
17 |
<div> |
|
18 |
<div class="close_button" @onclick="Close"> |
|
19 |
<i class="fal fa-times"></i> |
|
20 |
</div> |
|
21 |
</div> |
|
22 |
</div> |
|
23 |
<div class="goal_detail_body"> |
|
24 |
<div class="goal_detail_area"> |
|
25 |
<input class="goal_name" type="text" placeholder="Zadejte název cíle" /> |
|
26 |
<div class="goal_description_title">Popis cíle</div> |
|
27 |
<textarea oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"' |
|
28 |
class="goal_description" placeholder="Vyplňte popis cíle"></textarea> |
|
29 |
</div> |
|
30 |
<div class="goal_communication_area"> |
|
31 |
<div class="goal_communication_item"> |
|
32 |
Dominik Chlouba vytvořil tento cíl. <span class="date">3. 5. 2021</span> |
|
33 |
</div> |
|
34 |
<div class="goal_communication_item"> |
|
35 |
<div class="item_tool"> |
|
36 |
<div>Dominik Chlouba přidal komentář. <span class="date">3. 5. 2021</span></div> |
|
37 |
<div> |
|
38 |
<div class="action_buttons" style="display: none"> |
|
39 |
<i class="fal fa-edit"></i> |
|
40 |
<i class="fal fa-trash"></i> |
|
41 |
</div> |
|
42 |
<div class="action_buttons" style="display: block"> |
|
43 |
<i class="green fal fa-check"></i> |
|
44 |
<i class="red fal fa-times"></i> |
|
45 |
</div> |
|
46 |
</div> |
|
47 |
</div> |
|
48 |
<textarea class="comment-textarea noedit" |
|
49 |
oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"' |
|
50 |
placeholder="Upravte komentář"></textarea> |
|
51 |
</div> |
|
52 |
<div class="goal_communication_item"> |
|
53 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
54 |
</div> |
|
55 |
<div class="goal_communication_item"> |
|
56 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
57 |
</div> |
|
58 |
<div class="goal_communication_item"> |
|
59 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
60 |
</div> |
|
61 |
<div class="goal_communication_item"> |
|
62 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
63 |
</div> |
|
64 |
<div class="goal_communication_item"> |
|
65 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
66 |
</div> |
|
67 |
</div> |
|
68 |
</div> |
|
69 |
<div class="goal_detail_footer"> |
|
70 |
<textarea placeholder="Přidat soukromý či veřejný komentář"></textarea> |
|
71 |
<div class="goal_comment_tools"> |
|
72 |
<select> |
|
73 |
<option value="private">Soukromý</option> |
|
74 |
<option value="public">Veřejný</option> |
|
75 |
</select> |
|
76 |
<button>Přidat komentář</button> |
|
77 |
</div> |
|
78 |
</div> |
|
79 |
</aside> |
|
80 |
<Leuze.Modules.Goal.Application.UI.Pages.Components.ReviewDetailAside Show="ReviewId != default(Guid)" ReviewId="ReviewId" CloseAside="CloseReview" /> |
|
81 |
|
|
82 |
<BlazorStyled.Styled @bind-Classname="@_aside"> |
|
83 |
right: @(Show ? "0" : "-615")px; |
|
84 |
</BlazorStyled.Styled> |
|
85 |
<BlazorStyled.Styled> |
|
86 |
.goal_detail { |
|
87 |
width: 600px; |
|
88 |
height: 100%; |
|
89 |
position: fixed; |
|
90 |
top: 0; |
|
91 |
transition: .25s right; |
|
92 |
background-color: white; |
|
93 |
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
94 |
-moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
95 |
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
96 |
} |
|
97 |
|
|
98 |
.goal_detail_header { |
|
99 |
padding: 12px 24px; |
|
100 |
border-bottom: 1px solid #11111122; |
|
101 |
height: 26px; |
|
102 |
display: flex; |
|
103 |
align-items: center; |
|
104 |
justify-content: space-between; |
|
105 |
} |
|
106 |
|
|
107 |
.goal_detail_body { |
|
108 |
padding: 0 0 12px 0; |
|
109 |
height: calc(100% - 143px - 50px - 12px); |
|
110 |
overflow-y: auto; |
|
111 |
background-color: #F6F8F9; |
|
112 |
overflow-x: hidden; |
|
113 |
} |
|
114 |
|
|
115 |
.goal_detail_area { |
|
116 |
background-color: white; |
|
117 |
padding-top: 12px; |
|
118 |
} |
|
119 |
|
|
120 |
.goal_detail_body .goal_name { |
|
121 |
padding: 8px 12px; |
|
122 |
border: 1px solid white; |
|
123 |
width: calc(100% - 24px); |
|
124 |
outline: none; |
|
125 |
margin: 12px 24px 12px 24px; |
|
126 |
} |
|
127 |
|
|
128 |
.goal_detail_body .goal_description { |
|
129 |
padding: 8px 12px; |
|
130 |
border: 1px solid white; |
|
131 |
width: calc(100% - 24px); |
|
132 |
outline: none; |
|
133 |
margin: 12px 24px 24px 24px; |
|
134 |
} |
|
135 |
|
|
136 |
.goal_detail_body .goal_description_title { |
|
137 |
margin: 0 24px; |
|
138 |
} |
|
139 |
|
|
140 |
.review_description_paragraph{ |
|
141 |
margin: 12px 24px 24px 24px; |
|
142 |
} |
|
143 |
|
|
144 |
.goal_detail_body .goal_name:hover, .goal_detail_body .goal_description:hover{ |
|
145 |
border: 1px solid #EEEEEE; |
|
146 |
} |
|
147 |
|
|
148 |
.goal_detail_body .goal_name:focus, .goal_detail_body .goal_description:focus{ |
|
149 |
border: 1px solid #A8A8A8; |
|
150 |
} |
|
151 |
|
|
152 |
.goal_communication_area { |
|
153 |
padding: 12px 0; |
|
154 |
} |
|
155 |
|
|
156 |
.goal_communication_area .goal_communication_item { |
|
157 |
background-color: #F6F8F9; |
|
158 |
padding: 12px 0; |
|
159 |
margin: 0 24px; |
|
160 |
} |
|
161 |
|
|
162 |
.goal_communication_area .goal_communication_item span.date { |
|
163 |
color: #A8A8A8; |
|
164 |
} |
|
165 |
|
|
166 |
.goal_communication_area .goal_communication_item .item_tool { |
|
167 |
display: flex; |
|
168 |
justify-content: space-between; |
|
169 |
align-items: center; |
|
170 |
} |
|
171 |
|
|
172 |
.goal_communication_area .goal_communication_item:not(:last-child) { |
|
173 |
border-bottom: 1px solid #11111122; |
|
174 |
} |
|
175 |
|
|
176 |
.goal_detail_footer { |
|
177 |
background-color: #F6F8F9; |
|
178 |
padding: 24px; |
|
179 |
border-top: 1px solid #11111122; |
|
180 |
height: 94px; |
|
181 |
} |
|
182 |
|
|
183 |
.goal_detail_footer textarea { |
|
184 |
border-radius: 4px; |
|
185 |
border: 1px solid gray; |
|
186 |
resize: none; |
|
187 |
padding: 8px 12px; |
|
188 |
height: 50px; |
|
189 |
width: calc(100% - 26px); |
|
190 |
margin-bottom: 12px; |
|
191 |
} |
|
192 |
|
|
193 |
.goal_detail_footer .goal_comment_tools { |
|
194 |
display: flex; |
|
195 |
justify-content: space-between; |
|
196 |
align-items: center; |
|
197 |
} |
|
198 |
|
|
199 |
.goal_detail_footer .goal_comment_tools select { |
|
200 |
border: none; |
|
201 |
outline: none; |
|
202 |
background-color: #F6F8F9; |
|
203 |
} |
|
204 |
|
|
205 |
.goal_detail_footer .goal_comment_tools button { |
|
206 |
|
|
207 |
} |
|
208 |
|
|
209 |
.goal_detail_header > div { |
|
210 |
height: 100%; |
|
211 |
display: flex; |
|
212 |
align-items: center; |
|
213 |
} |
|
214 |
|
|
215 |
.authorize_button { |
|
216 |
border: 1px solid #111111AA; |
|
217 |
background: white; |
|
218 |
font-size: 12px; |
|
219 |
height: 100%; |
|
220 |
padding: 0 12px; |
|
221 |
cursor: pointer; |
|
222 |
opacity: 1; |
|
223 |
transition: .25s color, .25s background-color, .25s opacity; |
|
224 |
} |
|
225 |
|
|
226 |
.authorize_button:not(.accepted):hover { |
|
227 |
background-color: #111111; |
|
228 |
color: white; |
|
229 |
opacity: .75; |
|
230 |
} |
|
231 |
|
|
232 |
.authorize_button:not(:last-child) { |
|
233 |
margin-right: 16px; |
|
234 |
} |
|
235 |
|
|
236 |
.authorize_button.accepted { |
|
237 |
background-color: green; |
|
238 |
border: 1px solid green; |
|
239 |
color: white; |
|
240 |
cursor: default; |
|
241 |
} |
|
242 |
|
|
243 |
.review_button { |
|
244 |
color: red; |
|
245 |
cursor: pointer; |
|
246 |
opacity: .75; |
|
247 |
} |
|
248 |
|
|
249 |
.review_button:hover { |
|
250 |
opacity: 1; |
|
251 |
} |
|
252 |
|
|
253 |
.review_button.accepted { |
|
254 |
color: green; |
|
255 |
} |
|
256 |
|
|
257 |
.review_button:not(:last-child) { |
|
258 |
margin-right: 16px; |
|
259 |
} |
|
260 |
|
|
261 |
.close_button { |
|
262 |
cursor: pointer; |
|
263 |
color: darkgray; |
|
264 |
} |
|
265 |
|
|
266 |
.close_button:hover { |
|
267 |
color: #111111; |
|
268 |
} |
|
269 |
|
|
270 |
::-webkit-scrollbar { |
|
271 |
width: 10px; |
|
272 |
} |
|
273 |
|
|
274 |
/* Track */ |
|
275 |
::-webkit-scrollbar-track { |
|
276 |
background: #f1f1f1; |
|
277 |
} |
|
278 |
|
|
279 |
/* Handle */ |
|
280 |
::-webkit-scrollbar-thumb { |
|
281 |
background: #888; |
|
282 |
} |
|
283 |
|
|
284 |
/* Handle on hover */ |
|
285 |
::-webkit-scrollbar-thumb:hover { |
|
286 |
background: #555; |
|
287 |
} |
|
288 |
|
|
289 |
.green { |
|
290 |
color: green; |
|
291 |
} |
|
292 |
|
|
293 |
.red { |
|
294 |
color: red; |
|
295 |
} |
|
296 |
|
|
297 |
.action_buttons > i { |
|
298 |
cursor: pointer; |
|
299 |
opacity: .75; |
|
300 |
transition: .25s opacity; |
|
301 |
} |
|
302 |
|
|
303 |
.action_buttons > i:hover { |
|
304 |
opacity: 1; |
|
305 |
} |
|
306 |
|
|
307 |
.action_buttons > i:not(:last-child) { |
|
308 |
margin-right: 8px; |
|
309 |
} |
|
310 |
|
|
311 |
.comment-textarea { |
|
312 |
width: calc(100% - 24px); |
|
313 |
outline: none; |
|
314 |
background-color: transparent; |
|
315 |
border: none; |
|
316 |
resize: none; |
|
317 |
} |
|
318 |
</BlazorStyled.Styled> |
|
319 |
|
|
320 |
|
|
321 |
@code { |
|
322 |
|
|
323 |
private string _aside; |
|
324 |
|
|
325 |
[Parameter] |
|
326 |
public bool Show { get; set; } = false; |
|
327 |
|
|
328 |
[Parameter] |
|
329 |
public Guid DetailId { get; set; } = default; |
|
330 |
|
|
331 |
[Parameter] |
|
332 |
public EventCallback CloseAside { get; set; } |
|
333 |
|
|
334 |
public Guid ReviewId { get; set; } = default(Guid); |
|
335 |
|
|
336 |
public void SetReviewId(Guid id) => ReviewId = id; |
|
337 |
|
|
338 |
public void CloseReview() => ReviewId = default(Guid); |
|
339 |
|
|
340 |
private async Task Close() |
|
341 |
{ |
|
342 |
//ResetValues(); |
|
343 |
await CloseAside.InvokeAsync(); |
|
344 |
} |
|
345 |
|
|
346 |
} |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/Components/ReviewDetailAside.razor | ||
---|---|---|
1 |
|
|
2 |
<aside class="@_aside review_detail"> |
|
3 |
<div class="review_detail_header"> |
|
4 |
<div> |
|
5 |
<button class="authorize_button accepted">Schválit</button> |
|
6 |
<div class="review_button accepted"> |
|
7 |
<i class="fal fa-user-tie"></i> |
|
8 |
</div> |
|
9 |
<div class="review_button accepted"> |
|
10 |
<i class="fal fa-user-graduate"></i> |
|
11 |
</div> |
|
12 |
</div> |
|
13 |
<div> |
|
14 |
<div class="close_button" @onclick="Close"> |
|
15 |
<i class="fal fa-times"></i> |
|
16 |
</div> |
|
17 |
</div> |
|
18 |
</div> |
|
19 |
<div class="review_detail_body"> |
|
20 |
<div class="review_description_title">Poznámka dohlížejícího</div> |
|
21 |
<p class="review_description_paragraph">Lorem ipsum dolor....</p> |
|
22 |
<div class="review_description_title">Moje poznámka</div> |
|
23 |
<textarea oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"' |
|
24 |
class="review_description" placeholder="Vyplňte popis cíle"></textarea> |
|
25 |
<div class="review_description_title">Závěrečné ohodnocení</div> |
|
26 |
<input class="review_description" type="range" min="0" max="200" placeholder="0 - 200 %" /> |
|
27 |
</div> |
|
28 |
<div class="review_detail_footer"> |
|
29 |
<button>Uložit</button> |
|
30 |
<button>Zrušit</button> |
|
31 |
</div> |
|
32 |
</aside> |
|
33 |
|
|
34 |
<BlazorStyled.Styled @bind-Classname="@_aside"> |
|
35 |
right: @(Show ? "0" : "-615")px; |
|
36 |
</BlazorStyled.Styled> |
|
37 |
<BlazorStyled.Styled> |
|
38 |
.review_detail { |
|
39 |
width: 600px; |
|
40 |
height: 100%; |
|
41 |
position: fixed; |
|
42 |
top: 0; |
|
43 |
background-color: white; |
|
44 |
transition: .25s right; |
|
45 |
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
46 |
-moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
47 |
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
48 |
} |
|
49 |
|
|
50 |
.review_detail_header > div { |
|
51 |
height: 100%; |
|
52 |
display: flex; |
|
53 |
align-items: center; |
|
54 |
} |
|
55 |
|
|
56 |
.review_detail_header { |
|
57 |
padding: 12px 24px; |
|
58 |
border-bottom: 1px solid #11111122; |
|
59 |
height: 26px; |
|
60 |
display: flex; |
|
61 |
align-items: center; |
|
62 |
justify-content: space-between; |
|
63 |
} |
|
64 |
|
|
65 |
.review_detail_body{ |
|
66 |
padding: 16px 0; |
|
67 |
height: calc(100% - 143px - 50px - 12px); |
|
68 |
overflow-y: auto; |
|
69 |
overflow-x: hidden; |
|
70 |
} |
|
71 |
|
|
72 |
.review_detail_footer{ |
|
73 |
height: 36px; |
|
74 |
background-color: #F6F8F9; |
|
75 |
position: absolute; |
|
76 |
bottom: 0; |
|
77 |
left: 0; |
|
78 |
width: calc(100% - 50px); |
|
79 |
display: grid; |
|
80 |
padding: 24px; |
|
81 |
grid-template-columns: repeat(2, 1fr); |
|
82 |
} |
|
83 |
|
|
84 |
.review_detail_footer button:first-child{ |
|
85 |
margin-right: 12px; |
|
86 |
} |
|
87 |
|
|
88 |
.review_detail_footer button:last-child{ |
|
89 |
margin-left: 12px; |
|
90 |
} |
|
91 |
.review_button { |
|
92 |
color: red; |
|
93 |
cursor: pointer; |
|
94 |
opacity: .75; |
|
95 |
} |
|
96 |
|
|
97 |
.review_button:hover { |
|
98 |
opacity: 1; |
|
99 |
} |
|
100 |
|
|
101 |
.review_button.accepted { |
|
102 |
color: green; |
|
103 |
} |
|
104 |
|
|
105 |
.review_button:not(:last-child) { |
|
106 |
margin-right: 16px; |
|
107 |
} |
|
108 |
.review_detail_body .review_description { |
|
109 |
padding: 8px 12px; |
|
110 |
border: 1px solid white; |
|
111 |
width: calc(100% - 24px); |
|
112 |
outline: none; |
|
113 |
margin: 12px 24px 24px 24px; |
|
114 |
} |
|
115 |
|
|
116 |
.review_detail_body .review_description_title { |
|
117 |
margin: 0 24px; |
|
118 |
} |
|
119 |
|
|
120 |
.review_description_paragraph{ |
|
121 |
margin: 12px 24px 24px 24px; |
|
122 |
} |
|
123 |
|
|
124 |
.review_detail_body .review_description:hover{ |
|
125 |
border: 1px solid #EEEEEE; |
|
126 |
} |
|
127 |
|
|
128 |
.review_detail_body .review_description:focus{ |
|
129 |
border: 1px solid #A8A8A8; |
|
130 |
} |
|
131 |
</BlazorStyled.Styled> |
|
132 |
|
|
133 |
@code { |
|
134 |
|
|
135 |
private string _aside; |
|
136 |
|
|
137 |
[Parameter] |
|
138 |
public bool Show { get; set; } = false; |
|
139 |
|
|
140 |
[Parameter] |
|
141 |
public Guid ReviewId { get; set; } = default; |
|
142 |
|
|
143 |
[Parameter] |
|
144 |
public EventCallback CloseAside { get; set; } |
|
145 |
|
|
146 |
private async Task Close() |
|
147 |
{ |
|
148 |
//ResetValues(); |
|
149 |
await CloseAside.InvokeAsync(); |
|
150 |
} |
|
151 |
|
|
152 |
} |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/GoalDefinitionDetail.razor | ||
---|---|---|
1 |
@page "/goal/detail" |
|
1 |
@page "/goals/detail/{id}" |
|
2 |
@attribute [Authorize] |
|
3 |
@layout MainLayout |
|
4 |
@inject IMediator _mediator |
|
5 |
|
|
2 | 6 |
<div class="section_header"> |
3 |
<h2>Mé definice cílů</h2> |
|
4 |
</div> |
|
5 |
<div>From - to</div> |
|
6 |
<section> |
|
7 |
<div class="goal_def_item goal_item_closed"> |
|
8 |
<div class="goal_def_name">Název cíle</div> |
|
9 |
<div class="goal_def_bottom"> |
|
10 |
<div class="goal_creator"> |
|
11 |
<span>David Vytvořílek</span> |
|
12 |
<span>3. 5. 2021</span> |
|
13 |
</div> |
|
14 |
<div class="goal_percentile"> |
|
15 |
<span>80%</span> |
|
16 |
<span>150%</span> |
|
17 |
</div> |
|
7 |
<div> |
|
8 |
<h2>Název definice cílů</h2> |
|
9 |
<div class="definition_daterange"> |
|
10 |
<i class="fal fa-clock"></i> |
|
11 |
13.2.2021 - 12.2.2022 |
|
18 | 12 |
</div> |
19 | 13 |
</div> |
20 |
</section> |
|
21 |
<aside class="goal_detail"> |
|
22 |
<div class="goal_detail_header"> |
|
23 |
Tools budou zde |
|
24 |
</div> |
|
25 |
<div class="goal_detail_body"> |
|
26 |
<div class="goal_detail_area"> |
|
27 |
<input class="goal_name" type="text" placeholder="Zadejte název cíle" /> |
|
28 |
<div class="goal_description_title">Popis cíle</div> |
|
29 |
<textarea class="goal_description" placeholder="Vyplňte popis cíle"></textarea> |
|
30 |
</div> |
|
31 |
<div class="goal_communication_area"> |
|
32 |
<div class="goal_communication_item"> |
|
33 |
Dominik Chlouba vytvořil tento cíl. <span class="date">3. 5. 2021</span> |
|
34 |
</div> |
|
35 |
<div class="goal_communication_item"> |
|
36 |
<div class="item_tool"> |
|
37 |
<div>Dominik Chlouba přidal komentář. <span class="date">3. 5. 2021</span></div> |
|
38 |
<div>Edit Smazat</div> |
|
39 |
</div> |
|
40 |
<p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.</p> |
|
41 |
</div> |
|
42 |
<div class="goal_communication_item"> |
|
43 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
44 |
</div> |
|
45 |
<div class="goal_communication_item"> |
|
46 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
47 |
</div> |
|
48 |
<div class="goal_communication_item"> |
|
49 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
50 |
</div> |
|
51 |
<div class="goal_communication_item"> |
|
52 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
53 |
</div> |
|
54 |
<div class="goal_communication_item"> |
|
55 |
Dominik Chlouba aktualizoval popis cíle. <span class="date">3. 5. 2021</span> |
|
56 |
</div> |
|
57 |
</div> |
|
58 |
</div> |
|
59 |
<div class="goal_detail_footer"> |
|
60 |
<textarea placeholder="Přidat soukromý či veřejný komentář"></textarea> |
|
61 |
<div class="goal_comment_tools"> |
|
62 |
<select> |
|
63 |
<option value="private">Soukromý</option> |
|
64 |
<option value="public">Veřejný</option> |
|
65 |
</select> |
|
66 |
<button>Přidat komentář</button> |
|
67 |
</div> |
|
14 |
<div class="header_buttons"> |
|
15 |
<button type="button" @onclick="OpenCreateAside"> |
|
16 |
<i class="fal fa-plus"></i> |
|
17 |
<span>Přidat cíl</span> |
|
18 |
</button> |
|
68 | 19 |
</div> |
69 |
</aside> |
|
20 |
</div> |
|
21 |
@if (Goals is not null) |
|
22 |
{ |
|
23 |
<table class="actions" style="width:100%"> |
|
24 |
<tr> |
|
25 |
<th>Název</th> |
|
26 |
<th>Vytvořil</th> |
|
27 |
<th>Datum vytvoření</th> |
|
28 |
<th>Hodnocení uživatel</th> |
|
29 |
<th>Hodnocení nadřízený</th> |
|
30 |
<th>Akce</th> |
|
31 |
</tr> |
|
32 |
@foreach (var range in Goals) |
|
33 |
{ |
|
34 |
<tr> |
|
35 |
<td>Název cíle</td> |
|
36 |
<td>David Vytvořílek</td> |
|
37 |
<td>3.5.2021</td> |
|
38 |
<td>80%</td> |
|
39 |
<td>150%</td> |
|
40 |
<td> |
|
41 |
<div class="flex"> |
|
42 |
<div></div> |
|
43 |
<div @onclick='() => SetDetailId(Guid.NewGuid())'> |
|
44 |
<i class="fal fa-eye"></i> |
|
45 |
Otevřít |
|
46 |
</div> |
|
47 |
</div> |
|
48 |
</td> |
|
49 |
</tr> |
|
50 |
} |
|
51 |
</table> |
|
52 |
} |
|
53 |
else |
|
54 |
{ |
|
55 |
<div>Loading...</div> |
|
56 |
} |
|
57 |
|
|
58 |
<Leuze.Modules.Goal.Application.UI.Pages.Components.GoalDetailAside Show="DetailId != default(Guid)" DetailId="DetailId" CloseAside="CloseDetailAside" /> |
|
59 |
<Leuze.Modules.Goal.Application.UI.Pages.Components.CreateGoalAside Show="ShowCreate" CloseAside="CloseCreateAside" /> |
|
60 |
|
|
70 | 61 |
<BlazorStyled.Styled> |
71 | 62 |
.section_header { |
72 | 63 |
display: flex; |
... | ... | |
78 | 69 |
font-size: 36px; |
79 | 70 |
margin: 0; |
80 | 71 |
} |
81 |
</BlazorStyled.Styled> |
|
82 |
<BlazorStyled.Styled> |
|
83 |
.goal_detail { |
|
84 |
width: 500px; |
|
85 |
height: 100%; |
|
86 |
position: fixed; |
|
87 |
top: 0; |
|
88 |
right: 0; |
|
89 |
background-color: white; |
|
90 |
-webkit-box-shadow: 0 0 5px 0 rgba(0,0,0,0.05); |
|
91 |
-moz-box-shadow: 0 0 5px 0 rgba(0,0,0,0.05); |
|
92 |
box-shadow: 0 0 5px 0 rgba(0,0,0,0.05); |
|
93 |
} |
|
94 |
|
|
95 |
.goal_detail_header { |
|
96 |
padding: 12px 24px; |
|
97 |
border-bottom: 1px solid #11111122; |
|
98 |
height: 26px; |
|
99 |
display: grid; |
|
72 |
.section_header button { |
|
73 |
border-radius: 4px; |
|
74 |
border: none; |
|
75 |
background-color: #E30613; |
|
76 |
padding: 12px 16px; |
|
77 |
color: #FFFFFF; |
|
78 |
display: flex; |
|
100 | 79 |
align-items: center; |
101 |
} |
|
102 |
|
|
103 |
.goal_detail_body { |
|
104 |
padding: 0 0 12px 0; |
|
105 |
height: calc(100% - 143px - 50px - 12px); |
|
106 |
overflow-y: auto; |
|
107 |
background-color: #F6F8F9; |
|
108 |
overflow-x: hidden; |
|
109 |
} |
|
110 |
.goal_detail_area { |
|
111 |
background-color: white; |
|
112 |
padding-top: 12px; |
|
113 |
} |
|
114 |
.goal_detail_body .goal_name { |
|
115 |
padding: 8px 12px; |
|
116 |
border: 1px solid white; |
|
117 |
width: calc(100% - 24px); |
|
80 |
cursor: pointer; |
|
81 |
transition: .25s opacity; |
|
118 | 82 |
outline: none; |
119 |
margin: 12px 24px 12px 24px; |
|
120 | 83 |
} |
121 |
.goal_detail_body .goal_description { |
|
122 |
padding: 8px 12px; |
|
123 |
border: 1px solid white; |
|
124 |
width: calc(100% - 24px); |
|
125 |
outline: none; |
|
126 |
margin: 12px 24px 24px 24px; |
|
84 |
.section_header button:hover { |
|
85 |
opacity: .6; |
|
127 | 86 |
} |
128 |
.goal_detail_body .goal_description_title { |
|
129 |
margin: 0 24px; |
|
87 |
</BlazorStyled.Styled> |
|
88 |
<BlazorStyled.Styled> |
|
89 |
.definition_name { |
|
90 |
margin: 0; |
|
130 | 91 |
} |
131 |
.goal_detail_body .goal_name:hover, .goal_detail_body .goal_description:hover { |
|
132 |
border: 1px solid #EEEEEE; |
|
92 |
|
|
93 |
.definition_daterange { |
|
94 |
padding-bottom: 24px; |
|
95 |
padding-top: 8px; |
|
133 | 96 |
} |
134 |
.goal_detail_body .goal_name:focus, .goal_detail_body .goal_description:focus { |
|
135 |
border: 1px solid #A8A8A8; |
|
97 |
|
|
98 |
.goal_creator { |
|
99 |
padding-top: 8px; |
|
136 | 100 |
} |
137 | 101 |
|
138 |
.goal_communication_area {
|
|
139 |
padding: 12px 0;
|
|
102 |
.goal_creator > span:not(:last-child) {
|
|
103 |
margin-right: 16px;
|
|
140 | 104 |
} |
141 |
.goal_communication_area .goal_communication_item { |
|
142 |
background-color: #F6F8F9; |
|
143 |
padding: 12px 0; |
|
144 |
margin: 0 24px; |
|
105 |
|
|
106 |
.goal_creator > span i { |
|
107 |
margin-right: 4px; |
|
145 | 108 |
} |
146 |
.goal_communication_area .goal_communication_item span.date { |
|
147 |
color: #A8A8A8; |
|
109 |
.goal_def_item { |
|
110 |
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
111 |
-moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
112 |
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05); |
|
113 |
padding: 12px 24px; |
|
114 |
border-radius: 4px; |
|
115 |
width: calc(100% - 48px); |
|
116 |
transition: .25s transform; |
|
117 |
cursor: pointer; |
|
148 | 118 |
} |
149 |
.goal_communication_area .goal_communication_item .item_tool { |
|
150 |
display: flex; |
|
151 |
justify-content: space-between; |
|
152 |
align-items: center; |
|
119 |
|
|
120 |
.goal_def_item:hover { |
|
121 |
transform: scale(1.005); |
|
153 | 122 |
} |
154 |
.goal_communication_area .goal_communication_item:not(:last-child) { |
|
155 |
border-bottom: 1px solid #11111122; |
|
123 |
|
|
124 |
.goal_item_closed { |
|
125 |
opacity: .5; |
|
126 |
border: 1px solid #00000088; |
|
156 | 127 |
} |
157 | 128 |
|
158 |
.goal_detail_footer{
|
|
159 |
background-color: #F6F8F9;
|
|
160 |
padding: 24px;
|
|
161 |
border-top: 1px solid #11111122;
|
|
162 |
height: 94px;
|
|
129 |
.goal_def_name {
|
|
130 |
font-size: 18px;
|
|
131 |
font-weight: 700;
|
|
132 |
color: #111111;
|
|
133 |
font-family: 'Arial';
|
|
163 | 134 |
} |
164 |
.goal_detail_footer textarea{ |
|
165 |
border-radius: 4px; |
|
166 |
border: 1px solid gray; |
|
167 |
resize: none; |
|
168 |
padding: 8px 12px; |
|
169 |
height: 50px; |
|
170 |
width: calc(100% - 26px); |
|
171 |
margin-bottom: 12px; |
|
172 |
} |
|
173 |
.goal_detail_footer .goal_comment_tools { |
|
135 |
|
|
136 |
.goal_def_bottom { |
|
174 | 137 |
display: flex; |
175 | 138 |
justify-content: space-between; |
176 | 139 |
align-items: center; |
177 | 140 |
} |
178 |
.goal_detail_footer .goal_comment_tools select { |
|
179 |
border: none; |
|
180 |
outline: none; |
|
181 |
background-color: #F6F8F9; |
|
141 |
</BlazorStyled.Styled> |
|
142 |
<BlazorStyled.Styled> |
|
143 |
table { |
|
144 |
border-collapse: collapse; |
|
145 |
margin-top: 24px !important; |
|
182 | 146 |
} |
183 |
.goal_detail_footer .goal_comment_tools button { |
|
184 |
|
|
147 |
table tr th { text-align: left; } |
|
148 |
table.actions tr th:last-child, table.actions tr td:last-child { text-align: right; } |
|
149 |
table tr { |
|
150 |
border-bottom: 1px solid #EDEDED; |
|
151 |
} |
|
152 |
table tr:first-child { border-bottom: 1px solid #9D9D9D55; } |
|
153 |
table tr th, table tr td { |
|
154 |
padding: 12px 8px; |
|
155 |
} |
|
156 |
table tr:not(:first-child):hover { |
|
157 |
background-color: #EDEDED55; |
|
185 | 158 |
} |
186 | 159 |
</BlazorStyled.Styled> |
187 | 160 |
|
188 | 161 |
@code { |
189 | 162 |
|
163 |
[Parameter] |
|
164 |
public string Id { get; set; } |
|
165 |
|
|
166 |
public List<Guid> Goals { get; set; } = new() { Guid.NewGuid() }; |
|
167 |
|
|
168 |
public Guid DetailId { get; set; } = default(Guid); |
|
169 |
|
|
170 |
public bool ShowCreate { get; set; } = false; |
|
171 |
|
|
172 |
private void SetDetailId(Guid id) => DetailId = id; |
|
173 |
|
|
174 |
private void CloseDetailAside() => DetailId = default(Guid); |
|
175 |
|
|
176 |
private void OpenCreateAside() => ShowCreate = true; |
|
177 |
|
|
178 |
private void CloseCreateAside() => ShowCreate = false; |
|
179 |
|
|
180 |
|
|
190 | 181 |
} |
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/GoalRanges.razor | ||
---|---|---|
1 |
@page "/goals" |
|
2 |
@attribute [Authorize] |
|
3 |
@layout MainLayout |
|
4 |
@inject IMediator _mediator |
|
5 |
@inject NavigationManager _nav |
|
6 |
|
|
7 |
<div class="section_header"> |
|
8 |
<h2>Správa oblastí definic cílů</h2> |
|
9 |
<button type="button" @onclick="() => OpenAside(default(Guid))"> |
|
10 |
<img src="/Resources/Icons/plus.svg" class="plus_icon" /> |
|
11 |
<span>Přidat oblast</span> |
|
12 |
</button> |
|
13 |
</div> |
|
14 |
@if (Ranges is not null) |
|
15 |
{ |
|
16 |
<table class="actions" style="width:100%"> |
|
17 |
<tr> |
|
18 |
<th>Platnost od</th> |
|
19 |
<th>Platnost do</th> |
|
20 |
<th>Hodnota VARI</th> |
|
21 |
<th>Akce</th> |
|
22 |
</tr> |
|
23 |
@foreach (var range in Ranges) |
|
24 |
{ |
|
25 |
<tr> |
|
26 |
<td>24.4.2021</td> |
|
27 |
<td>23.4.2022</td> |
|
28 |
<td>-</td> |
|
29 |
<td> |
|
30 |
<div class="flex"> |
|
31 |
<div @onclick='() => _nav.NavigateTo("/goals/overview/test")'> |
|
32 |
<i class="fal fa-eye"></i> |
|
33 |
Zobrazit |
|
34 |
</div> |
|
35 |
<div @onclick="() => OpenAside(range)"> |
|
36 |
<i class="fal fa-edit"></i> |
|
37 |
Upravit |
|
38 |
</div> |
|
39 |
</div> |
|
40 |
</td> |
|
41 |
</tr> |
|
42 |
} |
|
43 |
</table> |
|
44 |
@if (Ranges.Count > 0) |
|
45 |
{ |
|
46 |
<div class="pagination"> |
|
47 |
<div class="left"> |
|
48 |
<button class="pagination_button"><img class="pagination_icon" src="/Resources/Icons/chevron-double-left.svg" /></button> |
|
49 |
<button class="pagination_button"><img class="pagination_icon" src="/Resources/Icons/chevron-left.svg" /></button> |
|
50 |
<input type="number" @bind-value="PageNumber" /> |
|
51 |
<button class="pagination_button"><img class="pagination_icon" src="/Resources/Icons/chevron-right.svg" /></button> |
|
52 |
<button class="pagination_button"><img class="pagination_icon" src="/Resources/Icons/chevron-double-right.svg" /></button> |
|
53 |
</div> |
|
54 |
<div class="right">Zobrazeno <b>@Ranges.Count z @Total</b></div> |
|
55 |
</div> |
|
56 |
} |
|
57 |
} |
|
58 |
else |
|
59 |
{ |
|
60 |
<div>Loading...</div> |
|
61 |
} |
|
62 |
<Leuze.Modules.Goal.Application.UI.Pages.Components.CreateDefinitionRangeAside Show="ShowAside" CloseAside="CloseAside" /> |
|
63 |
|
|
64 |
<BlazorStyled.Styled> |
|
65 |
.flex{ |
|
66 |
display: grid; |
|
67 |
align-items: center; |
|
68 |
grid-template-columns: repeat(2, 100px); |
|
69 |
justify-content: right; |
|
70 |
} |
|
71 |
.flex > div:not(:last-child) { |
|
72 |
margin-right: 8px; |
|
73 |
} |
|
74 |
.section_header { |
|
75 |
display: flex; |
|
76 |
justify-content: space-between; |
|
77 |
align-items: center; |
|
78 |
} |
|
79 |
.section_header h2 { |
|
80 |
color: #111111; |
|
81 |
font-size: 36px; |
|
82 |
margin: 0; |
|
83 |
} |
|
84 |
.section_header button { |
|
85 |
border-radius: 4px; |
|
86 |
border: none; |
|
87 |
background-color: #E30613; |
|
88 |
padding: 12px 16px; |
|
89 |
color: #FFFFFF; |
|
90 |
display: flex; |
|
91 |
align-items: center; |
|
92 |
cursor: pointer; |
|
93 |
transition: .25s opacity; |
|
94 |
outline: none; |
|
95 |
} |
|
96 |
.section_header button:hover { |
|
97 |
opacity: .6; |
|
98 |
} |
|
99 |
.section_header button .plus_icon { |
|
100 |
width: 18px; |
|
101 |
height: 18px; |
|
102 |
margin-right: 16px; |
|
103 |
} |
|
104 |
.section_header button span { |
|
105 |
position: relative; |
|
106 |
top: 1px; |
|
107 |
} |
|
108 |
</BlazorStyled.Styled> |
|
109 |
<BlazorStyled.Styled> |
|
110 |
table { |
|
111 |
border-collapse: collapse; |
|
112 |
margin-top: 60px !important; |
|
113 |
} |
|
114 |
table tr th { text-align: left; } |
|
115 |
table.actions tr th:last-child, table.actions tr td:last-child { text-align: right; } |
|
116 |
table tr { |
|
117 |
border-bottom: 1px solid #EDEDED; |
|
118 |
} |
|
119 |
table tr:first-child { border-bottom: 1px solid #9D9D9D55; } |
|
120 |
table tr th, table tr td { |
|
121 |
padding: 12px 8px; |
|
122 |
} |
|
123 |
table tr:not(:first-child):hover { |
|
124 |
background-color: #EDEDED55; |
|
125 |
} |
|
126 |
</BlazorStyled.Styled> |
|
127 |
<BlazorStyled.Styled> |
|
128 |
input::-webkit-outer-spin-button, |
|
129 |
input::-webkit-inner-spin-button { |
|
130 |
-webkit-appearance: none; |
|
131 |
margin: 0; |
|
132 |
} |
|
133 |
input[type=number] { |
|
134 |
-moz-appearance: textfield; |
|
135 |
} |
|
136 |
.pagination { |
|
137 |
width: 100%; |
|
138 |
display: flex; |
|
139 |
justify-content: space-between; |
|
140 |
align-items: center; |
|
141 |
margin-top: 36px; |
|
142 |
} |
|
143 |
.pagination .left { |
|
144 |
display: flex; |
|
145 |
align-items: center; |
|
146 |
} |
|
147 |
.pagination button { |
|
148 |
width: 34px; |
|
149 |
height: 34px; |
|
150 |
border: 1px solid #EEEEEE; |
|
151 |
border-radius: 4px; |
|
152 |
background-color: #FFFFFF; |
|
153 |
cursor: pointer; |
|
154 |
outline: none; |
|
155 |
margin-right: 6px; |
|
156 |
display: flex; |
|
157 |
justify-content: center; |
|
158 |
align-items: center; |
|
159 |
} |
|
160 |
.pagination input { |
|
161 |
width: 30px; |
|
162 |
height: 30px; |
|
163 |
padding: 1px 12px; |
|
164 |
outline: none; |
|
165 |
margin-right: 6px; |
|
166 |
border: 1px solid #EEEEEE; |
|
167 |
border-radius: 4px; |
|
168 |
} |
|
169 |
.pagination_icon { |
|
170 |
width: 18px; |
|
171 |
height: 18px; |
|
172 |
} |
|
173 |
</BlazorStyled.Styled> |
|
174 |
|
|
175 |
@code { |
|
176 |
|
|
177 |
[Parameter] |
|
178 |
public string Id { get; set; } = null!; |
|
179 |
|
|
180 |
private List<Guid> Ranges { get; set; } = new() { Guid.NewGuid() }; |
|
181 |
|
|
182 |
private int PageNumber { get; set; } = 1; |
|
183 |
|
|
184 |
private int PageSize { get; set; } = 12; |
|
185 |
|
|
186 |
private int Total { get; set; } = 0; |
|
187 |
|
|
188 |
private Guid AsideId { get; set; } = default(Guid); |
|
189 |
|
|
190 |
private bool ShowAside { get; set; } = false; |
Také k dispozici: Unified diff
Fixed some UI bugs, finished minor components, basic actions
refs #8895 @0.15hod