Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2a2f32c2

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

elements' visibility is controlled by body class which is set based on user's login state

Zobrazit rozdíly:

sources/src/main/webapp/css/main.css
889 889
.jstree-default .jstree-clicked {
890 890
	background: none !important;
891 891
	box-shadow: none !important;
892
}
892
}
893

  
894
/**
895
 * USER AUTHENTICATION
896
 **/
897

  
898
.loggedIn .loggedOutOnly,
899
.loggedOut .loggedInOnly {
900
	display: none !important;
901
}
sources/src/main/webapp/js/userMenu.js
1 1
document.addEventListener('DOMContentLoaded', function() {
2 2
	var toggleLoginPopupButton = document.getElementById('toggleLoginPopupButton');
3 3
	var toggleRegisterPopupButton = document.getElementById('toggleRegisterPopupButton');
4
	var usernameLabel = document.getElementById('usernameLabel');
4 5
	var logoutButton = document.getElementById('logoutButton');
5 6

  
6 7
	var loginPopup = document.getElementById('loginPopup');
......
9 10
	var loginForm = document.forms['loginForm'];
10 11
	var registerForm = document.forms['registerForm'];
11 12

  
12
	if (toggleLoginPopupButton) {
13
		toggleLoginPopupButton.addEventListener('click', function() {
14
			loginPopup.classList.toggle('hidden');
15
		});
16
	}
13
	toggleLoginPopupButton.addEventListener('click', function() {
14
		loginPopup.classList.toggle('hidden');
15
	});
17 16

  
18
	if (toggleRegisterPopupButton) {
19
		toggleRegisterPopupButton.addEventListener('click', function() {
20
			registerPopup.classList.toggle('hidden');
21
		});
22
	}
17
	toggleRegisterPopupButton.addEventListener('click', function() {
18
		registerPopup.classList.toggle('hidden');
19
	});
23 20

  
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
			});
21
	logoutButton.addEventListener('click', function(e) {
22
		e.preventDefault();
23

  
24
		$.ajax({
25
			'type': 'GET',
26
			'url': logoutButton.href,
27
			'success': function() {
28
				document.dispatchEvent(new CustomEvent('imiger.userLoggedOut'));
29

  
30
				usernameLabel.innerText = '';
31

  
32
				document.body.classList.remove('loggedIn');
33
				document.body.classList.add('loggedOut');
34
			},
35
			'error': function() {
36
				alert('Something went wrong.');
37
			},
38 38
		});
39
	}
39
	});
40 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
			});
41
	loginForm.addEventListener('submit', function(e) {
42
		e.preventDefault();
43

  
44
		$.ajax({
45
			'type': loginForm.method,
46
			'url': loginForm.action,
47
			'data': {
48
				'username': loginForm.username.value,
49
				'password': loginForm.password.value,
50
			},
51
			'success': function(data) {
52
				document.dispatchEvent(new CustomEvent('imiger.userLoggedIn'));
53

  
54
				usernameLabel.innerText = data.user.username;
55

  
56
				document.body.classList.remove('loggedOut');
57
				document.body.classList.add('loggedIn');
58

  
59
				loginPopup.classList.add('hidden');
60
			},
61
			'error': function(xhr) {
62
				switch (xhr.status) {
63
					case 400:
64
						printErrors(xhr);
65
						break;
66
					case 401:
67
						alert('Invalid credentials.');
68
						break;
69
					default:
70
						alert('Something went wrong.');
71
				}
72
			},
68 73
		});
69
	}
74
	});
75

  
76
	registerForm.addEventListener('submit', function(e) {
77
		e.preventDefault();
70 78

  
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
			});
79
		$.ajax({
80
			'type': registerForm.method,
81
			'url': registerForm.action,
82
			'data': {
83
				'name': registerForm.name.value,
84
				'email': registerForm.email.value,
85
				'username': registerForm.username.value,
86
				'password': registerForm.password.value,
87
				'passwordCheck': registerForm.passwordCheck.value,
88
			},
89
			'success': function() {
90
				document.dispatchEvent(new CustomEvent('imiger.userRegistered'));
91

  
92
				registerPopup.classList.add('hidden');
93
			},
94
			'error': function(xhr) {
95
				switch (xhr.status) {
96
					case 400:
97
						printErrors(xhr);
98
						break;
99
					default:
100
						alert('Something went wrong.');
101
				}
102
			},
98 103
		});
99
	}
104
	});
100 105
});
101 106

  
102 107
function printErrors(xhr) {
sources/src/main/webapp/showGraph.jsp
1 1
<%@page contentType="text/html" pageEncoding="UTF-8"%>
2 2
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3 3

  
4
<c:set var="HOME_URL" value="${initParam.HOME_URL}"/>
5
<c:set var="isLoggedIn" value="${sessionScope.isLoggedIn}"/>
6
<c:set var="user" value="${sessionScope.user}"/>
7

  
4 8
<!DOCTYPE html>
5 9
<html>
6 10
	<head>
......
55 59
		<title>IMiGEr</title>
56 60
	</head>
57 61

  
58
	<body>
59
		<c:set var="HOME_URL" value="${initParam.HOME_URL}"/>
60
		<c:set var="isLoggedIn" value="${sessionScope.isLoggedIn}"/>
61
		<c:set var="user" value="${sessionScope.user}"/>
62

  
62
	<body class="${isLoggedIn ? 'loggedIn' : 'loggedOut'}">
63 63
		<div class="wrapper">
64 64
			<header class="header" id="header">
65 65
				<img src="images/logo.png" class="header-logo" alt="logo of University of West Bohemia" title="University of West Bohemia">
......
144 144
								<img src="images/png_save.png" id="applyLayoutImg" alt="Save diagram as PNG.">
145 145
							</button>
146 146
						</li>
147
						<c:if test="${isLoggedIn}">
148
							<li>
149
								<hr class="navbar-separator">
150
							</li>
151
							<li>
152
								<button class="btn save-diagram" id="btnSaveDiagramToDatabase" title="Save diagram.">
153
									<img src="images/icon_save.png" id="applyLayoutImg" alt="Save diagram">
154
								</button>
155
							</li>
156
						</c:if>
147
						<li class="loggedInOnly">
148
							<hr class="navbar-separator">
149
						</li>
150
						<li class="loggedInOnly">
151
							<button class="btn save-diagram" id="btnSaveDiagramToDatabase" title="Save diagram">
152
								<img src="images/icon_save.png" id="applyLayoutImg" alt="Save diagram">
153
							</button>
154
						</li>
157 155
						<li>
158 156
							<hr class="navbar-separator">
159 157
						</li>
sources/src/main/webapp/uploadFiles.jsp
1 1
<%@page contentType="text/html" pageEncoding="UTF-8"%>
2 2
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3 3

  
4
<c:set var="HOME_URL" value="${initParam.HOME_URL}"/>
5
<c:set var="isLoggedIn" value="${sessionScope.isLoggedIn}"/>
6
<c:set var="user" value="${sessionScope.user}"/>
7

  
4 8
<!DOCTYPE html>
5 9
<html>
6 10
	<head>
......
14 18
		<title>IMiGEr</title>
15 19
	</head>
16 20

  
17
	<body>
18
		<c:set var="HOME_URL" value="${initParam.HOME_URL}"/>
19
		<c:set var="isLoggedIn" value="${sessionScope.isLoggedIn}"/>
20
		<c:set var="user" value="${sessionScope.user}"/>
21

  
21
	<body class="${isLoggedIn ? 'loggedIn' : 'loggedOut'}">
22 22
		<header class="header" id="header">
23 23
			<img src="images/logo.png" class="header-logo" alt="logo of University of West Bohemia" title="University of West Bohemia">
24 24

  
......
51 51
				</form>
52 52
			</div>
53 53

  
54
			<c:if test="${isLoggedIn}">
55
				<div class="diagrams-menu">
56
					<h3>My diagrams</h3>
57

  
58
					<ul>
59
						<c:forEach items="${diagramsPrivate}" var="diagram">
60
							<li>
61
								<a href="${HOME_URL}graph?diagramId=${diagram.id}">${diagram.name}</a>
62
								<button class="removeDiagramButton" data-name="${diagram.name}" data-id="${diagram.id}"><img src="images/button_cancel.png" alt="odstranit"></button>
63
							</li>
64
						</c:forEach>
65
					</ul>
66
				</div>
67
			</c:if>
54
			<div class="diagrams-menu loggedInOnly">
55
				<h3>My diagrams</h3>
56

  
57
				<ul id="privateDiagramList">
58
					<c:forEach items="${diagramsPrivate}" var="diagram">
59
						<li>
60
							<a href="${HOME_URL}graph?diagramId=${diagram.id}">${diagram.name}</a>
61
							<button class="removeDiagramButton" data-name="${diagram.name}" data-id="${diagram.id}"><img src="images/button_cancel.png" alt="odstranit"></button>
62
						</li>
63
					</c:forEach>
64
				</ul>
65
			</div>
68 66

  
69 67
			<div class="diagrams-menu">
70 68
				<h3>Public diagrams</h3>

Také k dispozici: Unified diff