GUI for Shopping Cart Analysis done

This commit is contained in:
Karsten 2019-05-26 20:35:50 +02:00
parent f8c1eb9362
commit 1b9e4884dc
7 changed files with 104 additions and 6 deletions

View File

@ -0,0 +1,11 @@
package de.hsel.spm.baudas.web;
public class Columns {
private String col1; //NOPMD
private String col2; //NOPMD
public Columns(String col1, String col2){
this.col1 = col1;
this.col2 = col2;
}
}

View File

@ -0,0 +1,65 @@
package de.hsel.spm.baudas.web;
import com.google.gson.Gson;
import de.hsel.spm.baudas.analysis.ShoppingCart;
import org.jetbrains.annotations.NotNull;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.*;
/**
* Changes data to readable format for Tabulator
*
* @author Karsten Eden
* @version 0.1
* @since 0.1
*/
@WebServlet("/shopping_cart")
public class ShoppingCartDiagram extends HttpServlet {
private static final long serialVersionUID = 5026732432605473505L;
protected void doGet(@NotNull HttpServletRequest req, @NotNull HttpServletResponse resp) throws IOException {
req.setCharacterEncoding(StandardCharsets.UTF_8.name());
resp.setCharacterEncoding(StandardCharsets.UTF_8.name());
resp.setContentType("application/json");
PrintWriter out = resp.getWriter();
Gson gson = new Gson();
List<Columns> colList = new ArrayList<>();
if (req.getParameter("id") == null) {
out.print(gson.toJson(colList));
return;
}
UUID uuid = UUID.fromString(req.getParameter("id"));
File file = Data.get(uuid);
ShoppingCart cart = new ShoppingCart(file);
Map<List<String>, List<String>> map = cart.getResult();
List<String> col1 = new ArrayList<>();
List<String> col2 = new ArrayList<>();
for(Map.Entry<List<String>, List<String>> entry : map.entrySet()){
col1.add(entry.getKey().toString());
col2.add(entry.getValue().toString());
}
for(int i = 0; i < col1.size(); i++ ){
colList.add(new Columns(col1.get(i).replaceAll("\\[", "").replaceAll("\\]", ""), col2.get(i).replaceAll("\\[", "").replaceAll("\\]", "")));
}
out.print(gson.toJson(colList));
}
}

View File

@ -3,6 +3,7 @@
<!--Script für Diagramme-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.min.js" integrity="sha256-xKeoJ50pzbUGkpQxDYHD7o7hxe0LaOGeguUidbq6vis=" crossorigin="anonymous"></script>
<script type="text/javascript" src="https://unpkg.com/tabulator-tables@4.2.7/dist/js/tabulator.min.js"></script>
<!--Script für Materlialize-->
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
@ -16,6 +17,7 @@
<script src="js/week_overview.js"></script>
<script src="js/shopping_times.js"></script>
<script src="js/top_flop.js"></script>
<script src="js/shopping_cart.js"></script>
<%--<script src="js/sold_articles.js"></script>--%>

View File

@ -12,6 +12,7 @@
media="screen,projection"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.css"
integrity="sha256-aa0xaJgmK/X74WM224KMQeNQC2xYKwlAt08oZqjeF0E=" crossorigin="anonymous"/>
<link href="https://unpkg.com/tabulator-tables@4.2.7/dist/css/tabulator.min.css" rel="stylesheet">
<meta charset="UTF-8">
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">

View File

@ -64,14 +64,13 @@
</div>
<!--Warenkorbanlyse-->
<div id="shopping_card_analysis" class="col s12 m6">
<div id="shopping_card_analysis" class="col s12 m12">
<div class="card white">
<div class="center">
<span class="card-title center">Warenkorbanalyse</span>
</div>
<div class="card-content">
<div class="center">
<span class="card-title center">Warenkorbanalyse</span>
</div>
<div>
<p>Coming Soon</p>
<div id="shopping_cart_table">
</div>
</div>
</div>

View File

@ -38,6 +38,7 @@ function updateAll(uuid) {
updateWeekOverviewChart(uuid);
updateShoppingTimesChart(uuid);
updateTopFlopChart(uuid);
updateShoppingCartTable(uuid);
//add new charts here.
}

View File

@ -0,0 +1,19 @@
let table = new Tabulator("#shopping_cart_table", {
layout:"fitColumns",
columns:[
{title:"Produkte", field:"col1", headerSort:false},
{title:"zusammen mit", field:"col2", headerSort:false},
],
});
function updateShoppingCartTable(id) {
if (typeof id !== 'undefined') {
request('shopping_cart', id).then(function () {
table.setData("/bauDas/shopping_cart?id="+id);
});
} else request('shopping_cart').then(function () {
table.setData();
});
}