Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 08a96776

Přidáno uživatelem Jan Čarnogurský před asi 4 roky(ů)

  • ID 08a96776e8986b95d3e45c57669db53c60a4d404
  • Rodič 14917d37

re #7884 - added frontend drag and drop for assembly

Zobrazit rozdíly:

src/main/java/vldc/aswi/web/controller/IndexController.java
3 3
import org.springframework.beans.factory.annotation.Autowired;
4 4
import org.springframework.stereotype.Controller;
5 5
import org.springframework.ui.ModelMap;
6
import org.springframework.web.bind.annotation.GetMapping;
7
import org.springframework.web.bind.annotation.ModelAttribute;
8
import org.springframework.web.bind.annotation.PostMapping;
6
import org.springframework.web.bind.annotation.*;
9 7
import org.springframework.web.servlet.ModelAndView;
10
import vldc.aswi.database.DatabaseInterface;
11
import vldc.aswi.domain.Assembly;
12
import vldc.aswi.model.table.TableColumn;
13
import vldc.aswi.model.table.contingencyTable.ContingencyTableRow;
14
import vldc.aswi.model.table.contingencyTable.ContingencyTableRowCell;
15 8
import vldc.aswi.service.AssemblyManager;
16 9
import vldc.aswi.service.SqlQueryManager;
17
import vldc.aswi.utils.Converter;
18

  
19
import javax.sql.DataSource;
20 10
import javax.validation.Valid;
21
import java.util.ArrayList;
22
import java.util.List;
23
import java.util.Map;
11

  
24 12

  
25 13
@Controller
26 14
public class IndexController {
......
50 38
		return modelAndView;
51 39
	}
52 40

  
41
	@ResponseBody
42
	@RequestMapping("/saveOrder")
43
	public String saveOrder(@RequestBody String data) {
44
		// seřazený idčka záznamů
45
		System.out.println(data);
46

  
47
		return "Uloženo";
48
	}
49

  
53 50
}
src/main/webapp/WEB-INF/templates/index.html
13 13
	<link href="css/fontawesome.min.css" rel="stylesheet">
14 14
	<link href="css/style.css" rel="stylesheet">
15 15

  
16
	<link href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css" rel="stylesheet">
16 17

  
18
	<script type="text/javascript" src="js/jquery.js"></script>
19
	<script src="//code.jquery.com/jquery-1.11.1.js"></script>
20
	<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
17 21
</head>
18 22
	<body>
23
	<meta id="_csrf" name="_csrf" th:content="${_csrf.token}"/>
24
	<meta id="_csrf_header" name="_csrf_header" th:content="${_csrf.headerName}"/>
25

  
19 26
	<div id="test"></div>
20 27
	<main role="main">
21 28

  
......
58 65
			</div>
59 66
			<div class="button-container">
60 67
				<button type="button" class="btn btn-success"><i class="fas fa-plus"></i> Přidat novou sestavu</button>
61
				<button type="button" class="btn btn-success align-right"><i class="fas fa-sort"></i> Upravit řazení</button>
68
				<button type="button" class="btn btn-success align-right" id="saveSort"><i class="fas fa-sort"></i> Uložit řazení</button>
62 69
			</div>
63 70

  
64 71
			<table class="table table-bordered table-striped">
......
69 76
					<th scope="col">Akce</th>
70 77
				</tr>
71 78
				</thead>
72
				<tbody>
73
					<tr th:each="iassembly : ${assemblies}">
79
				<tbody class="sort">
80
					<tr th:each="iassembly : ${assemblies}" id="${iassembly.id}">
74 81
						<div>
75 82
							<td><a th:href="@{/assembly(assemblyID=${iassembly.id})}"><span th:text="${iassembly.name}"></span></a></td>
76 83
							<td>Akademický rok, Fakulta, Typ strudia, Ročník, ...</td>
......
82 89
									<span class="action-button">
83 90
									  <a href=# class="action-link far fa-trash-alt"></a>
84 91
									</span>
92

  
93
									<i class="fas fa-sort"></i>
94
								</div>
95
							</td>
96
						</div>
97
					</tr>
98
					<tr >
99
						<div>
100
							<td><a href="@{/assembly(assemblyID=${iassembly.id})}"><span text="${iassembly.name}"></span></a></td>
101
							<td>Akademický rok, Fakulta, Typ strudia, Ročník, ...</td>
102
							<td>
103
								<div class="action-wrapper">
104
									<span class="action-button">
105
									  <a href="@{/assembly_edit(assemblyID=${iassembly.id})}" class="action-link far fa-edit"></a>
106
									</span>
107
									<span class="action-button">
108
									  <a href=# class="action-link far fa-trash-alt"></a>
109
									</span>
85 110
								</div>
86 111
							</td>
87 112
						</div>
88 113
					</tr>
89 114
				</tbody>
115
				</tbody>
90 116
			</table>
91 117
		</div>
92 118
	</main>
......
100 126
	<script type="text/javascript" src="js/app.js"></script>
101 127
	</body>
102 128
</html>
129
<script>
130
	$('tbody').sortable();
131
</script>
132

  
133
<script th:inline="javascript">
134

  
135
	var token = $('#_csrf').attr('content');
136
	var header = $('#_csrf_header').attr('content');
137

  
138
	$(document).ready(function(){
139
		$(".sort").sortable().disableSelection();
140

  
141
		$('#saveSort').on('click', function () {
142
			var orderArray = $('.sort').sortable('toArray');
143

  
144
			if (orderArray.length > 0)
145
			{
146
				$.ajax({
147
					type: "POST",
148
					url: /*[[@{/saveOrder}]]*/"",
149
					data: orderArray.toString(),
150
					dataType: "text",
151
					contentType: "text/plain;charset=UTF-8",
152
					beforeSend: function(xhr) {
153
						xhr.setRequestHeader(header, token);
154
					},
155
					success: function (data) {
156
						alert(data);
157
					}
158
				});
159
			}
160

  
161
		})
162
	});
163

  
164
</script>

Také k dispozici: Unified diff