Projekt

Obecné

Profil

« Předchozí | Další » 

Revize a5ceca91

Přidáno uživatelem Dominik Chlouba před téměř 4 roky(ů)

Language changing, better log out, buttons looking

Zobrazit rozdíly:

src/Core/Application/Leuze.Core.Application.UI/Areas/Identity/Pages/Account/ChangeLanguage.cshtml
1
@page
2
@model Leuze.Core.Application.UI.Areas.Identity.Pages.Account.ChangeLanguageModel
3
@{
4
}
src/Core/Application/Leuze.Core.Application.UI/Areas/Identity/Pages/Account/ChangeLanguage.cshtml.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Globalization;
4
using System.Linq;
5
using System.Threading.Tasks;
6
using Microsoft.AspNetCore.Localization;
7
using Microsoft.AspNetCore.Mvc;
8
using Microsoft.AspNetCore.Mvc.RazorPages;
9

  
10
namespace Leuze.Core.Application.UI.Areas.Identity.Pages.Account
11
{
12
    public class ChangeLanguageModel : PageModel
13
    {
14
        public IActionResult OnGet(string redirectUri, string culture)
15
        {
16
            HttpContext.Response.Cookies.Append(
17
            CookieRequestCultureProvider.DefaultCookieName,
18
            CookieRequestCultureProvider.MakeCookieValue(
19
                new RequestCulture(culture, culture)));
20
            return LocalRedirect(redirectUri);
21
        }
22
    }
23
}
src/Core/Application/Leuze.Core.Application.UI/Areas/Identity/Pages/Account/Logout.cshtml
1
@page
2
@model Leuze.Core.Application.UI.Areas.Identity.Pages.Account.LogoutModel
3
@{
4
}
src/Core/Application/Leuze.Core.Application.UI/Areas/Identity/Pages/Account/Logout.cshtml.cs
1
using Leuze.Core.Application.Identity;
2
using Microsoft.AspNetCore.Authorization;
3
using Microsoft.AspNetCore.Identity;
4
using Microsoft.AspNetCore.Mvc;
5
using Microsoft.AspNetCore.Mvc.RazorPages;
6
using System.Threading.Tasks;
7

  
8
namespace Leuze.Core.Application.UI.Areas.Identity.Pages.Account
9
{
10
    [AllowAnonymous]
11
    public class LogoutModel : PageModel
12
    {
13
        private readonly SignInManager<ApplicationUser> _signInManager;
14

  
15
        public LogoutModel(SignInManager<ApplicationUser> signInManager) => _signInManager = signInManager;
16

  
17
        public async Task<IActionResult> OnGet()
18
        {
19
            await _signInManager.SignOutAsync();
20
            return LocalRedirect("/");
21
        }
22
    }
23
}
src/Core/Application/Leuze.Core.Application.UI/Pages/Index.razor
2 2
@layout MainLayout
3 3
@attribute [Authorize]
4 4
@using ChartJs.Blazor.PieChart
5
@inject IStringLocalizer<Index> T 
5 6

  
6 7
<AuthorizeView>
7
    <h1>Vítejte, @context.User.Identity?.Name</h1>
8
    <h1>@T["Welcome"], @context.User.Identity?.Name</h1>
8 9
    <div>
9 10
        <div>
10
            <label>Od</label>
11
            <label>@T["From"]</label>
11 12
            <input type="date" />
12 13
        </div>
13 14
        <div>
14
            <label>Do</label>
15
            <label>@T["To"]</label>
15 16
            <input type="date" />
16 17
        </div>
17 18
        <div>
18
            <label>Uživatel</label>
19
            <label>@T["User"]</label>
19 20
            <select>
20
                <option value=""></option>
21
                <option value="">@T["Me"]</option>
21 22
            </select>
22 23
        </div>
23 24
    </div>
......
39 40
                Title = new OptionsTitle
40 41
                {
41 42
                    Display = true,
42
                    Text = "ChartJs.Blazor Pie Chart"
43
                    Text = T["GraphGoalsState"].Value
43 44
                }
44 45
            }
45 46
        };
46 47

  
47
        foreach (string color in new[] { "Neschválené", "Aktivní", "Uzavřené" })
48
        foreach (string color in new[] { T["NotApproved"].Value, T["Active"].Value, T["Closed"].Value })
48 49
        {
49 50
            _config.Data.Labels.Add(color);
50 51
        }
src/Core/Application/Leuze.Core.Application.UI/Pages/Users/List.razor
29 29
                <td>@user.Role</td>
30 30
                <td>@(user.IsAdUser ? "AD" : "Lokální")</td>
31 31
                <td>
32
                    <div @onclick="() => SetUserAsideId(user.Id)">@T["Edit"]</div>
32
                    <div class="button-ui" @onclick="() => SetUserAsideId(user.Id)">
33
                        <i class="fal fa-edit"></i>
34
                        @T["Edit"]
35
                    </div>
33 36
                </td>
34 37
            </tr>
35 38
        }
......
55 58
<UserAside Show="ShowUserAside" ToggleUserAside="@ToggleUserAside" UserId="UserAsideId" RefetchUsers="FetchUsers" />
56 59

  
57 60
<Styled>
61
    .button-ui {
62
    color: #E30613;
63
    cursor:pointer;
64
    font-weight:600;
65
    }
58 66
    .section_header {
59 67
    display: flex;
60 68
    justify-content: space-between;
src/Core/Application/Leuze.Core.Application.UI/Resources/Pages/Index.cs-CZ.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
  <!-- 
4
    Microsoft ResX Schema 
5
    
6
    Version 2.0
7
    
8
    The primary goals of this format is to allow a simple XML format 
9
    that is mostly human readable. The generation and parsing of the 
10
    various data types are done through the TypeConverter classes 
11
    associated with the data types.
12
    
13
    Example:
14
    
15
    ... ado.net/XML headers & schema ...
16
    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
    <resheader name="version">2.0</resheader>
18
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
    </data>
25
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
        <comment>This is a comment</comment>
28
    </data>
29
                
30
    There are any number of "resheader" rows that contain simple 
31
    name/value pairs.
32
    
33
    Each data row contains a name, and value. The row also contains a 
34
    type or mimetype. Type corresponds to a .NET class that support 
35
    text/value conversion through the TypeConverter architecture. 
36
    Classes that don't support this are serialized and stored with the 
37
    mimetype set.
38
    
39
    The mimetype is used for serialized objects, and tells the 
40
    ResXResourceReader how to depersist the object. This is currently not 
41
    extensible. For a given mimetype the value must be set accordingly:
42
    
43
    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
    that the ResXResourceWriter will generate, however the reader can 
45
    read any of the formats listed below.
46
    
47
    mimetype: application/x-microsoft.net.object.binary.base64
48
    value   : The object must be serialized with 
49
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
            : and then encoded with base64 encoding.
51
    
52
    mimetype: application/x-microsoft.net.object.soap.base64
53
    value   : The object must be serialized with 
54
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
            : and then encoded with base64 encoding.
56

  
57
    mimetype: application/x-microsoft.net.object.bytearray.base64
58
    value   : The object must be serialized into a byte array 
59
            : using a System.ComponentModel.TypeConverter
60
            : and then encoded with base64 encoding.
61
    -->
62
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
    <xsd:element name="root" msdata:IsDataSet="true">
65
      <xsd:complexType>
66
        <xsd:choice maxOccurs="unbounded">
67
          <xsd:element name="metadata">
68
            <xsd:complexType>
69
              <xsd:sequence>
70
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
71
              </xsd:sequence>
72
              <xsd:attribute name="name" use="required" type="xsd:string" />
73
              <xsd:attribute name="type" type="xsd:string" />
74
              <xsd:attribute name="mimetype" type="xsd:string" />
75
              <xsd:attribute ref="xml:space" />
76
            </xsd:complexType>
77
          </xsd:element>
78
          <xsd:element name="assembly">
79
            <xsd:complexType>
80
              <xsd:attribute name="alias" type="xsd:string" />
81
              <xsd:attribute name="name" type="xsd:string" />
82
            </xsd:complexType>
83
          </xsd:element>
84
          <xsd:element name="data">
85
            <xsd:complexType>
86
              <xsd:sequence>
87
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
              </xsd:sequence>
90
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
              <xsd:attribute ref="xml:space" />
94
            </xsd:complexType>
95
          </xsd:element>
96
          <xsd:element name="resheader">
97
            <xsd:complexType>
98
              <xsd:sequence>
99
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
              </xsd:sequence>
101
              <xsd:attribute name="name" type="xsd:string" use="required" />
102
            </xsd:complexType>
103
          </xsd:element>
104
        </xsd:choice>
105
      </xsd:complexType>
106
    </xsd:element>
107
  </xsd:schema>
108
  <resheader name="resmimetype">
109
    <value>text/microsoft-resx</value>
110
  </resheader>
111
  <resheader name="version">
112
    <value>2.0</value>
113
  </resheader>
114
  <resheader name="reader">
115
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
  </resheader>
117
  <resheader name="writer">
118
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
  </resheader>
120
  <data name="Active" xml:space="preserve">
121
    <value>Aktivní</value>
122
  </data>
123
  <data name="Closed" xml:space="preserve">
124
    <value>Uzavřené</value>
125
  </data>
126
  <data name="From" xml:space="preserve">
127
    <value>Od</value>
128
  </data>
129
  <data name="GraphGoalsState" xml:space="preserve">
130
    <value>Stav cílů</value>
131
  </data>
132
  <data name="Me" xml:space="preserve">
133
    <value>Já</value>
134
  </data>
135
  <data name="NotApproved" xml:space="preserve">
136
    <value>Neschválené</value>
137
  </data>
138
  <data name="To" xml:space="preserve">
139
    <value>Do</value>
140
  </data>
141
  <data name="User" xml:space="preserve">
142
    <value>Uživatel</value>
143
  </data>
144
  <data name="Welcome" xml:space="preserve">
145
    <value>Vítejte</value>
146
  </data>
147
</root>
src/Core/Application/Leuze.Core.Application.UI/Resources/Pages/Index.de-DE.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
	<!-- 
4
		Microsoft ResX Schema
5

  
6
		Version 1.3
7

  
8
		The primary goals of this format is to allow a simple XML format 
9
		that is mostly human readable. The generation and parsing of the 
10
		various data types are done through the TypeConverter classes 
11
		associated with the data types.
12

  
13
		Example:
14

  
15
		... ado.net/XML headers & schema ...
16
		<resheader name="resmimetype">text/microsoft-resx</resheader>
17
		<resheader name="version">1.3</resheader>
18
		<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
		<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
		<data name="Name1">this is my long string</data>
21
		<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
		<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
			[base64 mime encoded serialized .NET Framework object]
24
		</data>
25
		<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
			[base64 mime encoded string representing a byte array form of the .NET Framework object]
27
		</data>
28

  
29
		There are any number of "resheader" rows that contain simple 
30
		name/value pairs.
31

  
32
		Each data row contains a name, and value. The row also contains a 
33
		type or mimetype. Type corresponds to a .NET class that support 
34
		text/value conversion through the TypeConverter architecture. 
35
		Classes that don't support this are serialized and stored with the 
36
		mimetype set.
37

  
38
		The mimetype is used for serialized objects, and tells the 
39
		ResXResourceReader how to depersist the object. This is currently not 
40
		extensible. For a given mimetype the value must be set accordingly:
41

  
42
		Note - application/x-microsoft.net.object.binary.base64 is the format 
43
		that the ResXResourceWriter will generate, however the reader can 
44
		read any of the formats listed below.
45

  
46
		mimetype: application/x-microsoft.net.object.binary.base64
47
		value   : The object must be serialized with 
48
			: System.Serialization.Formatters.Binary.BinaryFormatter
49
			: and then encoded with base64 encoding.
50

  
51
		mimetype: application/x-microsoft.net.object.soap.base64
52
		value   : The object must be serialized with 
53
			: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
54
			: and then encoded with base64 encoding.
55

  
56
		mimetype: application/x-microsoft.net.object.bytearray.base64
57
		value   : The object must be serialized into a byte array 
58
			: using a System.ComponentModel.TypeConverter
59
			: and then encoded with base64 encoding.
60
	-->
61
	
62
	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
		<xsd:element name="root" msdata:IsDataSet="true">
64
			<xsd:complexType>
65
				<xsd:choice maxOccurs="unbounded">
66
					<xsd:element name="data">
67
						<xsd:complexType>
68
							<xsd:sequence>
69
								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
70
								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
71
							</xsd:sequence>
72
							<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
73
							<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
74
							<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
75
						</xsd:complexType>
76
					</xsd:element>
77
					<xsd:element name="resheader">
78
						<xsd:complexType>
79
							<xsd:sequence>
80
								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
81
							</xsd:sequence>
82
							<xsd:attribute name="name" type="xsd:string" use="required" />
83
						</xsd:complexType>
84
					</xsd:element>
85
				</xsd:choice>
86
			</xsd:complexType>
87
		</xsd:element>
88
	</xsd:schema>
89
	<resheader name="resmimetype">
90
		<value>text/microsoft-resx</value>
91
	</resheader>
92
	<resheader name="version">
93
		<value>1.3</value>
94
	</resheader>
95
	<resheader name="reader">
96
		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
97
	</resheader>
98
	<resheader name="writer">
99
		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
100
	</resheader>
101
</root>
src/Core/Application/Leuze.Core.Application.UI/Resources/Shared/NavMenu.cs-CZ.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
  <!-- 
4
    Microsoft ResX Schema 
5
    
6
    Version 2.0
7
    
8
    The primary goals of this format is to allow a simple XML format 
9
    that is mostly human readable. The generation and parsing of the 
10
    various data types are done through the TypeConverter classes 
11
    associated with the data types.
12
    
13
    Example:
14
    
15
    ... ado.net/XML headers & schema ...
16
    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
    <resheader name="version">2.0</resheader>
18
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
    </data>
25
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
        <comment>This is a comment</comment>
28
    </data>
29
                
30
    There are any number of "resheader" rows that contain simple 
31
    name/value pairs.
32
    
33
    Each data row contains a name, and value. The row also contains a 
34
    type or mimetype. Type corresponds to a .NET class that support 
35
    text/value conversion through the TypeConverter architecture. 
36
    Classes that don't support this are serialized and stored with the 
37
    mimetype set.
38
    
39
    The mimetype is used for serialized objects, and tells the 
40
    ResXResourceReader how to depersist the object. This is currently not 
41
    extensible. For a given mimetype the value must be set accordingly:
42
    
43
    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
    that the ResXResourceWriter will generate, however the reader can 
45
    read any of the formats listed below.
46
    
47
    mimetype: application/x-microsoft.net.object.binary.base64
48
    value   : The object must be serialized with 
49
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
            : and then encoded with base64 encoding.
51
    
52
    mimetype: application/x-microsoft.net.object.soap.base64
53
    value   : The object must be serialized with 
54
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
            : and then encoded with base64 encoding.
56

  
57
    mimetype: application/x-microsoft.net.object.bytearray.base64
58
    value   : The object must be serialized into a byte array 
59
            : using a System.ComponentModel.TypeConverter
60
            : and then encoded with base64 encoding.
61
    -->
62
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
    <xsd:element name="root" msdata:IsDataSet="true">
65
      <xsd:complexType>
66
        <xsd:choice maxOccurs="unbounded">
67
          <xsd:element name="metadata">
68
            <xsd:complexType>
69
              <xsd:sequence>
70
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
71
              </xsd:sequence>
72
              <xsd:attribute name="name" use="required" type="xsd:string" />
73
              <xsd:attribute name="type" type="xsd:string" />
74
              <xsd:attribute name="mimetype" type="xsd:string" />
75
              <xsd:attribute ref="xml:space" />
76
            </xsd:complexType>
77
          </xsd:element>
78
          <xsd:element name="assembly">
79
            <xsd:complexType>
80
              <xsd:attribute name="alias" type="xsd:string" />
81
              <xsd:attribute name="name" type="xsd:string" />
82
            </xsd:complexType>
83
          </xsd:element>
84
          <xsd:element name="data">
85
            <xsd:complexType>
86
              <xsd:sequence>
87
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
              </xsd:sequence>
90
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
              <xsd:attribute ref="xml:space" />
94
            </xsd:complexType>
95
          </xsd:element>
96
          <xsd:element name="resheader">
97
            <xsd:complexType>
98
              <xsd:sequence>
99
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
              </xsd:sequence>
101
              <xsd:attribute name="name" type="xsd:string" use="required" />
102
            </xsd:complexType>
103
          </xsd:element>
104
        </xsd:choice>
105
      </xsd:complexType>
106
    </xsd:element>
107
  </xsd:schema>
108
  <resheader name="resmimetype">
109
    <value>text/microsoft-resx</value>
110
  </resheader>
111
  <resheader name="version">
112
    <value>2.0</value>
113
  </resheader>
114
  <resheader name="reader">
115
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
  </resheader>
117
  <resheader name="writer">
118
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
  </resheader>
120
  <data name="ManageGoals" xml:space="preserve">
121
    <value>Správa cílů</value>
122
  </data>
123
  <data name="MyGoals" xml:space="preserve">
124
    <value>Mé cíle</value>
125
  </data>
126
  <data name="Overview" xml:space="preserve">
127
    <value>Přehled</value>
128
  </data>
129
  <data name="Users" xml:space="preserve">
130
    <value>Uživatelé</value>
131
  </data>
132
</root>
src/Core/Application/Leuze.Core.Application.UI/Resources/Shared/NavMenu.de-DE.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
	<!-- 
4
		Microsoft ResX Schema
5

  
6
		Version 1.3
7

  
8
		The primary goals of this format is to allow a simple XML format 
9
		that is mostly human readable. The generation and parsing of the 
10
		various data types are done through the TypeConverter classes 
11
		associated with the data types.
12

  
13
		Example:
14

  
15
		... ado.net/XML headers & schema ...
16
		<resheader name="resmimetype">text/microsoft-resx</resheader>
17
		<resheader name="version">1.3</resheader>
18
		<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
		<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
		<data name="Name1">this is my long string</data>
21
		<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
		<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
			[base64 mime encoded serialized .NET Framework object]
24
		</data>
25
		<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
			[base64 mime encoded string representing a byte array form of the .NET Framework object]
27
		</data>
28

  
29
		There are any number of "resheader" rows that contain simple 
30
		name/value pairs.
31

  
32
		Each data row contains a name, and value. The row also contains a 
33
		type or mimetype. Type corresponds to a .NET class that support 
34
		text/value conversion through the TypeConverter architecture. 
35
		Classes that don't support this are serialized and stored with the 
36
		mimetype set.
37

  
38
		The mimetype is used for serialized objects, and tells the 
39
		ResXResourceReader how to depersist the object. This is currently not 
40
		extensible. For a given mimetype the value must be set accordingly:
41

  
42
		Note - application/x-microsoft.net.object.binary.base64 is the format 
43
		that the ResXResourceWriter will generate, however the reader can 
44
		read any of the formats listed below.
45

  
46
		mimetype: application/x-microsoft.net.object.binary.base64
47
		value   : The object must be serialized with 
48
			: System.Serialization.Formatters.Binary.BinaryFormatter
49
			: and then encoded with base64 encoding.
50

  
51
		mimetype: application/x-microsoft.net.object.soap.base64
52
		value   : The object must be serialized with 
53
			: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
54
			: and then encoded with base64 encoding.
55

  
56
		mimetype: application/x-microsoft.net.object.bytearray.base64
57
		value   : The object must be serialized into a byte array 
58
			: using a System.ComponentModel.TypeConverter
59
			: and then encoded with base64 encoding.
60
	-->
61
	
62
	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
		<xsd:element name="root" msdata:IsDataSet="true">
64
			<xsd:complexType>
65
				<xsd:choice maxOccurs="unbounded">
66
					<xsd:element name="data">
67
						<xsd:complexType>
68
							<xsd:sequence>
69
								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
70
								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
71
							</xsd:sequence>
72
							<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
73
							<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
74
							<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
75
						</xsd:complexType>
76
					</xsd:element>
77
					<xsd:element name="resheader">
78
						<xsd:complexType>
79
							<xsd:sequence>
80
								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
81
							</xsd:sequence>
82
							<xsd:attribute name="name" type="xsd:string" use="required" />
83
						</xsd:complexType>
84
					</xsd:element>
85
				</xsd:choice>
86
			</xsd:complexType>
87
		</xsd:element>
88
	</xsd:schema>
89
	<resheader name="resmimetype">
90
		<value>text/microsoft-resx</value>
91
	</resheader>
92
	<resheader name="version">
93
		<value>1.3</value>
94
	</resheader>
95
	<resheader name="reader">
96
		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
97
	</resheader>
98
	<resheader name="writer">
99
		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
100
	</resheader>
101
</root>
src/Core/Application/Leuze.Core.Application.UI/Shared/MainLayout.razor
11 11
<header class="@_header">
12 12
    <img class="leuze_logo" src="/Resources/Icons/logo.svg" />
13 13
    <div>
14
        <select class="langSelector" @onchange="OnSelected">
15
            <option value="cs-CZ" selected="@(CultureInfo.CurrentCulture.Name == "cs-CZ")">Česky</option>
16
            <option value="de-DE" selected="@(CultureInfo.CurrentCulture.Name == "de-DE")">Deutsch</option>
17
        </select>
14 18
        <span class="username">@Name</span>
15 19
        <img class="user_icon" src="/Resources/Icons/user-circle.svg" />
16
        <a href="/MicrosoftIdentity/Account/SignOut">
20
        <a href="/Identity/Account/Logout">
17 21
            <img class="signout_icon" src="/Resources/Icons/sign-out.svg" />
18 22
        </a>
19 23
    </div>
......
21 25
<NavMenu />
22 26
<main class="@_main">@Body</main>
23 27

  
28
<Styled>
29
    .langSelector{
30
    border: none;
31
    margin-right: 24px;
32
    }
33
</Styled>
24 34
<Styled @bind-Classname="@_header">
25 35
    width: calc(100% - 84px);
26 36
    height: 71px;
......
77 87
        var identity = await AuthenticationStateProvider.GetAuthenticationStateAsync();
78 88
        Name = identity.User.Identity!.Name!;
79 89
    }
90

  
91
    private void OnSelected(ChangeEventArgs e)
92
    {
93
        var culture = (string)e.Value!;
94
        var uri = new Uri(_navManager.Uri)
95
            .GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped);
96

  
97
        _navManager.NavigateTo($"/Identity/Account/ChangeLanguage?redirectUri={Uri.EscapeDataString(uri)}&culture={Uri.EscapeDataString(culture)}", forceLoad: true);
98
    }
80 99
}
src/Core/Application/Leuze.Core.Application.UI/Shared/NavMenu.razor
1
<aside class="@_aside">
1
@inject IStringLocalizer<NavMenu> T 
2

  
3
<aside class="@_aside">
2 4
    <nav class="@_nav">
3 5
        <NavLink href="/">
4 6
            <div class="item">
5 7
                <img src="/Resources/Icons/analytics.svg" class="item_icon nav_icon_1" />
6
                <span>Přehled</span>
8
                <span>@T["Overview"]</span>
7 9
            </div>
8 10
        </NavLink>
9 11
        <AuthorizeView Roles="Admin, TL">
10 12
            <NavLink href="/goals">
11 13
                <div class="item">
12 14
                    <img src="/Resources/Icons/clipboard-list-check.svg" class="item_icon nav_icon_2" />
13
                    <span>Správa cílů</span>
15
                    <span>@T["ManageGoals"]</span>
14 16
                </div>
15 17
            </NavLink>
16 18
        </AuthorizeView>
......
18 20
            <NavLink href="/my-goals">
19 21
                <div class="item">
20 22
                    <img src="/Resources/Icons/clipboard-list-check.svg" class="item_icon nav_icon_2" />
21
                    <span>Mé cíle</span>
23
                    <span>@T["MyGoals"]</span>
22 24
                </div>
23 25
            </NavLink>
24 26
        </AuthorizeView>
......
26 28
            <NavLink href="/users">
27 29
                <div class="item">
28 30
                    <img src="/Resources/Icons/user.svg" class="item_icon nav_icon_3" />
29
                    <span>Uživatelé</span>
31
                    <span>@T["Users"]</span>
30 32
                </div>
31 33
            </NavLink>
32 34
        </AuthorizeView>
src/Core/Application/Leuze.Core.Application.UI/_Imports.razor
3 3
@using Microsoft.AspNetCore.Components.Authorization
4 4
@using Microsoft.AspNetCore.Components.Forms
5 5
@using Microsoft.AspNetCore.Components.Routing
6
@using System.Globalization
6 7
@using Microsoft.AspNetCore.Components.Web
7 8
@using Microsoft.AspNetCore.Components.Web.Virtualization
8 9
@using Microsoft.JSInterop
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/GoalDefinitionDetail.razor
40 40
    <td>
41 41
        <div class="flex">
42 42
            <div></div>
43
            <div @onclick='() => SetDetailId(range.Id)'>
43
            <div class="button-ui" @onclick='() => SetDetailId(range.Id)'>
44 44
                <i class="fal fa-eye"></i>
45 45
                @T["Open"]
46 46
            </div>
47
            <div @onclick="() => RemoveGoal(range.Id)">
47
            <div class="button-ui" @onclick="() => RemoveGoal(range.Id)">
48 48
                <i class="fal fa-trash"></i>
49 49
                @T["Remove"]
50 50
            </div>
......
60 60
<Leuze.Modules.Goal.Application.UI.Pages.Components.CreateGoalAside Show="ShowCreate" DefinitionId="Id" CloseAside="CloseCreateAside" LoadGoalsInDefinitionView="GetGoals" />
61 61

  
62 62
<BlazorStyled.Styled>
63
    .button-ui {
64
    color: #E30613;
65
    cursor:pointer;
66
    font-weight:600;
67
    }
63 68
    .section_header {
64 69
    display: flex;
65 70
    justify-content: space-between;
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/GoalRanges.razor
30 30
    <td>@(range.VariCompanySuccess ?? 0)</td>
31 31
    <td>
32 32
        <div class="flex">
33
            <div>
33
            <div class="button-ui">
34 34
                <i class="fal fa-download"></i>
35 35
                @T["Export"]
36 36
            </div>
37 37

  
38
                <div @onclick='() => _nav.NavigateTo($"/goals/overview/{range.Id}")'>
38
                <div class="button-ui" @onclick='() => _nav.NavigateTo($"/goals/overview/{range.Id}")'>
39 39
                    <i class="fal fa-eye"></i>
40 40
                    @T["Open"]
41 41
                </div>
42
                <div @onclick="() => OpenAside(range.Id)">
42
                <div class="button-ui" @onclick="() => OpenAside(range.Id)">
43 43
                    <i class="fal fa-edit"></i>
44 44
                    @T["Edit"]
45 45
                </div>
46
                <div @onclick="() => RemoveArea(range.Id)">
46
                <div class="button-ui" @onclick="() => RemoveArea(range.Id)">
47 47
                    <i class="fal fa-trash"></i>
48 48
                    @T["Remove"]
49 49
                </div>
......
69 69
<Leuze.Modules.Goal.Application.UI.Pages.Components.CreateDefinitionRangeAside Show="ShowAside" AsideId="AsideId" LoadAreasInView="LoadAreas" CloseAside="CloseAside" />
70 70

  
71 71
<BlazorStyled.Styled>
72
    .button-ui {
73
    color: #E30613;
74
    cursor:pointer;
75
    font-weight:600;
76
    }
72 77
    .flex{
73 78
    display: grid;
74 79
    align-items: center;
75
    grid-template-columns: repeat(4, 100px);
80
    grid-template-columns: repeat(4, 106px);
76 81
    justify-content: right;
77 82
    }
78 83
    .flex > div:not(:last-child) {
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/GoalsManagement.razor
40 40
    <td>
41 41
        <div class="flex">
42 42
            <AuthorizeView Roles="TL">
43
                <div @onclick='() => _nav.NavigateTo($"/goals/detail/{range.Id}")'>
43
                <div class="button-ui" @onclick='() => _nav.NavigateTo($"/goals/detail/{range.Id}")'>
44 44
                    <i class="fal fa-eye"></i>
45 45
                    @T["Open"]
46 46
                </div>
47
                <div @onclick="() => OpenAside(range.Id)">
47
                <div class="button-ui" @onclick="() => OpenAside(range.Id)">
48 48
                    <i class="fal fa-edit"></i>
49 49
                    @T["Edit"]
50 50
                </div>
51
                <div @onclick="() => RemoveDefinition(range.Id)">
51
                <div class="button-ui" @onclick="() => RemoveDefinition(range.Id)">
52 52
                    <i class="fal fa-trash"></i>
53 53
                    @T["Remove"]
54 54
                </div>
......
75 75
<Leuze.Modules.Goal.Application.UI.Pages.Components.CreateGoalDefinition Show="ShowAside" CloseAside="CloseAside" />
76 76

  
77 77
<BlazorStyled.Styled>
78
    .button-ui {
79
    color: #E30613;
80
    cursor:pointer;
81
    font-weight:600;
82
    }
78 83
    .section_header {
79 84
    display: flex;
80 85
    justify-content: space-between;
src/Modules/Goal/Application/Leuze.Modules.Goal.Application.UI/Pages/MyGoalDefinition.razor
28 28
                <td>
29 29
                    <div class="flex">
30 30
                        <div></div>
31
                        <div @onclick='() => _nav.NavigateTo($"/goals/detail/{range.Id}")'>
31
                        <div class="button-ui" @onclick='() => _nav.NavigateTo($"/goals/detail/{range.Id}")'>
32 32
                            <i class="fal fa-eye"></i>
33 33
                            @T["Open"]
34 34
                        </div>
......
56 56
<div>@T["Loading"]</div>
57 57
}
58 58
<BlazorStyled.Styled>
59
    .button-ui {
60
    color: #E30613;
61
    cursor:pointer;
62
    font-weight:600;
63
    }
59 64
    .section_header {
60 65
    display: flex;
61 66
    justify-content: space-between;

Také k dispozici: Unified diff