Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 60bada5b

Přidáno uživatelem Pavel Fidranský před více než 6 roky(ů)

fully working frontend User menu

Zobrazit rozdíly:

sources/src/main/webapp/css/main.css
88 88

  
89 89
/* login and register links */
90 90

  
91
.header .login_box {
92
	float: right;
91
.header .user-menu {
93 92
	position: absolute;
94
	right: 25px;
95
	top: 0px;
96
	font-weight: bold;	
93
	right: 0;
94
	top: 0;
95
	padding-left: 25px;
96
	padding-right: 25px;
97
	line-height: 60px;
97 98
}
98 99

  
99
.header .login_box a {
100
.header .user-menu .button {
100 101
	color: #0B548A;
101 102
	font-size: 14px;
102
}
103

  
104
.header .login_box a:hover {
105
	text-decoration: none;
103
	font-weight: bold;
104
	background: none;
105
	border: none;
106
	cursor: pointer;
106 107
}
107 108

  
108 109
/* login popup */
sources/src/main/webapp/js/userMenu.js
1 1
document.addEventListener('DOMContentLoaded', function() {
2 2
	var toggleLoginPopupButton = document.getElementById('toggleLoginPopupButton');
3
	var loginPopup = document.getElementById('loginPopup');
4

  
5 3
	var toggleRegisterPopupButton = document.getElementById('toggleRegisterPopupButton');
4
	var logoutButton = document.getElementById('logoutButton');
5

  
6
	var loginPopup = document.getElementById('loginPopup');
6 7
	var registerPopup = document.getElementById('registerPopup');
7 8

  
9
	var loginForm = document.forms['loginForm'];
10
	var registerForm = document.forms['registerForm'];
11

  
8 12
	if (toggleLoginPopupButton) {
9 13
		toggleLoginPopupButton.addEventListener('click', function() {
10 14
			loginPopup.classList.toggle('hidden');
......
16 20
			registerPopup.classList.toggle('hidden');
17 21
		});
18 22
	}
23

  
24
	if (logoutButton) {
25
		logoutButton.addEventListener('click', function(e) {
26
			e.preventDefault();
27

  
28
			$.ajax({
29
				'type': 'GET',
30
				'url': logoutButton.href,
31
				'success': function() {
32
					location.reload(true);
33
				},
34
				'error': function() {
35
					alert('Something went wrong.');
36
				},
37
			});
38
		});
39
	}
40

  
41
	if (loginForm) {
42
		loginForm.addEventListener('submit', function(e) {
43
			e.preventDefault();
44

  
45
			$.ajax({
46
				'type': loginForm.method,
47
				'url': loginForm.action,
48
				'data': {
49
					'username': loginForm.username.value,
50
					'password': loginForm.password.value,
51
				},
52
				'success': function() {
53
					location.reload(true);
54
				},
55
				'error': function(xhr) {
56
					switch (xhr.status) {
57
						case 400:
58
							printErrors(xhr);
59
							break;
60
						case 401:
61
							alert('Invalid credentials.');
62
							break;
63
						default:
64
							alert('Something went wrong.');
65
					}
66
				},
67
			});
68
		});
69
	}
70

  
71
	if (registerForm) {
72
		registerForm.addEventListener('submit', function(e) {
73
			e.preventDefault();
74

  
75
			$.ajax({
76
				'type': registerForm.method,
77
				'url': registerForm.action,
78
				'data': {
79
					'name': registerForm.name.value,
80
					'email': registerForm.email.value,
81
					'username': registerForm.username.value,
82
					'password': registerForm.password.value,
83
					'passwordCheck': registerForm.passwordCheck.value,
84
				},
85
				'success': function() {
86
					location.reload(true);
87
				},
88
				'error': function(xhr) {
89
					switch (xhr.status) {
90
						case 400:
91
							printErrors(xhr);
92
							break;
93
						default:
94
							alert('Something went wrong.');
95
					}
96
				},
97
			});
98
		});
99
	}
19 100
});
101

  
102
function printErrors(xhr) {
103
	var data = JSON.parse(xhr.responseText);
104

  
105
	for (var key in data.error) {
106
		if (!data.error.hasOwnProperty(key)) continue;
107

  
108
		alert(data.error[key]);
109
	}
110
}
sources/src/main/webapp/logged_user_menu.jsp
1
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2

  
3
<div id="logged_user_menu">
4
<% if (request.getSession().getAttribute("logged_user") == "1") { %>
5
	<h3 style="margin-top: 25px;">My diagrams</h3>
6
	
7
	<ul>	
8
		<c:forEach items="${diagramNames}" var="diagramName">
9
			<li id="diagram_id_${diagramName.id}">
10
				<a href="/graph?diagramId=${diagramName.id}">${diagramName.name}</a><a href="#" onclick="return deleteDiagram(${diagramName.id});"><img src="images/button_cancel.png" alt="odstranit" class="imgDelete"/></a>
11
			</li>
12
		</c:forEach>
13
	</ul>
14
<% } %>
15

  
16
	<h3 style="margin-top: 25px;">Public diagrams</h3>
17
	
18
	<ul>	
19
		<c:forEach items="${diagramPublic}" var="diagramPublic">
20
			<li id="public_diagram_id_${diagramPublic.id}">
21
				<a href="/graph?diagramId=${diagramPublic.id}">${diagramPublic.name}</a>
22
			</li>
23
		</c:forEach>
24
	</ul>
25
</div>
sources/src/main/webapp/showGraph.jsp
49 49
		<script src="js/utils/utils.js"></script>
50 50
		<script src="js/zoom.js"></script>
51 51
		<script src="js/app.js"></script>
52
		<script src="js/userMenu.js"></script>
52 53

  
53 54
		<title>IMiGEr</title>
54 55
	</head>
sources/src/main/webapp/userMenu.jsp
1 1
<c:if test="${isLoggedIn}">
2
	<div class="login_box">
3
		${user.username} <a href="api/log-out" id="logoutButton">Log out</a>
2
	<div class="user-menu">
3
		${user.username} <a href="api/log-out" class="button" id="logoutButton">Log out</a>
4 4
	</div>
5 5
</c:if>
6 6

  
7 7
<c:if test="${!isLoggedIn}">
8
	<div class="login_box">
9
		<button id="toggleLoginPopupButton">Log in</a>
10
		<button id="toggleRegisterPopupButton">Register</a>
8
	<div class="user-menu">
9
		<button class="button" id="toggleLoginPopupButton">Log in</a>
10
		<button class="button" id="toggleRegisterPopupButton">Register</a>
11 11
	</div>
12 12
</c:if>
13 13

  
......
35 35
			<tr>
36 36
				<td></td>
37 37
				<td>
38
					<button type="submit">Login</button>
38
					<button type="submit" class="button">Login</button>
39 39
				</td>
40 40
			</tr>
41 41
		</table>
......
50 50
					Name:
51 51
				</td>
52 52
				<td>
53
					<input type="text" name="user_name" id="user_name">
53
					<input type="text" name="name">
54 54
				</td>
55 55
			</tr>
56 56
			<tr>
......
58 58
					E-mail:
59 59
				</td>
60 60
				<td>
61
					<input type="text" name="user_email" id="user_email">
61
					<input type="text" name="email">
62 62
				</td>
63 63
			</tr>
64 64
			<tr>
......
66 66
					Login name:
67 67
				</td>
68 68
				<td>
69
					<input type="text" name="user_nick" id="user_nick">
69
					<input type="text" name="username">
70 70
				</td>
71 71
			</tr>
72 72
			<tr>
......
74 74
					Password:
75 75
				</td>
76 76
				<td>
77
					<input type="password" name="user_password" id="user_password">
77
					<input type="password" name="password">
78 78
				</td>
79 79
			</tr>
80 80
			<tr>
......
82 82
					Password again:
83 83
				</td>
84 84
				<td>
85
					<input type="password" name="user_password_2" id="user_password_2">
85
					<input type="password" name="passwordCheck">
86 86
				</td>
87 87
			</tr>
88 88
			<tr>
89 89
				<td></td>
90 90
				<td>
91
					<button type="submit">Register</button>
91
					<button type="submit" class="button">Register</button>
92 92
				</td>
93 93
			</tr>
94 94
		</table>

Také k dispozici: Unified diff