Nano/Server
VogelT 2 months ago
parent 20f00b0abd
commit 03ce5a99e1

@ -4,7 +4,7 @@
<groupId>de.tvo</groupId>
<artifactId>webportal</artifactId>
<packaging>war</packaging>
<version>0.0.1</version>
<version>1</version>
<name>webportal Maven Webapp</name>
<url>http://maven.apache.org</url>
@ -24,8 +24,11 @@
</repository>
</repositories>
<properties>
<properties>
<!-- This is the CaptainCasa version to be used. -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Tomcat version of CaptainCasa -->
<tomcat.version>10.1.18</tomcat.version>
<!-- This is the CaptainCasa version to be used. -->
<cc.version>20250128</cc.version>
</properties>
@ -38,9 +41,67 @@
https://github.com/amybytes/nanoleaf-aurora
-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core-jakarta</artifactId>
<version>5.6.15.Final</version>
</dependency>
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.prometheus/simpleclient -->
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient</artifactId>
<version>0.16.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.prometheus/simpleclient_servlet -->
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_servlet_jakarta</artifactId>
<version>0.16.0</version>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>
provided</scope>
</dependency>
<dependency>
<groupId>io.github.rowak</groupId>
<artifactId>nanoleaf-api</artifactId>
@ -52,7 +113,6 @@
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.eclnt</groupId>
<artifactId>eclntjsfserverRISC_jakarta</artifactId>

@ -0,0 +1,32 @@
package de.examples;
import de.tvo.database.tables.NLCONNECT.Nlconnect;
import de.tvo.database.tables.NLCONNECT.NlconnectWorker;
import de.tvo.nanoleaf.enums.NanoTypeEnum;
public class NanoDBTest {
public NanoDBTest() {
Nlconnect nlconnect = new Nlconnect();
nlconnect.setNchostname("Canvas-72FA.fritz.box");
nlconnect.setNcipadress("192.168.178.141");
nlconnect.setNcport(16021);
nlconnect.setNccountpanel(15);
nlconnect.setNctoken("LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4");
nlconnect.setNctype(NanoTypeEnum.CANVAS);
try {
NlconnectWorker worker = new NlconnectWorker();
worker.insertNlconnect(nlconnect);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new NanoDBTest();
}
}

@ -1,6 +1,6 @@
package de.examples;
import de.nanoleaf.tools.panelconfig.MatrixInfo;
import de.tvo.nanoleaf.oclasses.MatrixInfo;
import de.tvo.tools.StringUtil;
public class StringTesterClass {

@ -1,33 +0,0 @@
package de.nanoleaf.tools.panelconfig;
public class MatrixInfo {
int m_matrixX = 0;
int m_matrixY = 0;
//int m_Panels = 1;
public MatrixInfo(int matrixX, int matrixY) {
//this.m_Panels = Panels;
this.m_matrixX = matrixX;
this.m_matrixY = matrixY;
}
public int getMatrixX() {
return m_matrixX;
}
public void setMatrixX(int matrixX) {
m_matrixX = matrixX;
}
public int getMatrixY() {
return m_matrixY;
}
public void setMatrixY(int matrixY) {
m_matrixY = matrixY;
}
}

@ -1,84 +0,0 @@
package de.nanoleaf.tools.panelconfig;
import org.eclnt.jsfserver.elements.componentnodes.COLDISTANCENode;
import org.eclnt.jsfserver.elements.componentnodes.LABELNode;
import org.eclnt.jsfserver.elements.componentnodes.PANENode;
import org.eclnt.jsfserver.elements.componentnodes.ROWDISTANCENode;
import org.eclnt.jsfserver.elements.componentnodes.ROWNode;
public class NanoPANENode extends PANENode {
private PanelInfo m_panelInfo = null;
public PanelInfo getPanelInfo() {
return m_panelInfo;
}
public String getBorderColor() {
String color = "#e7e6e6";
if (getPanelInfo() != null && getPanelInfo().getPanelColor() != null) {
color = getPanelInfo().getPanelColor();
}
return color;
}
public void setPanelInfo(PanelInfo panelInfo) {
m_panelInfo = panelInfo;
}
public NanoPANENode(PanelInfo panelInfo) {
this.m_panelInfo = panelInfo;
createInnerPane();
}
private void createInnerPane() {
this.setDragsend("NANOLEAF:" + getPanelInfo().getPanelID());
this.setHeight(60);
this.setWidth(60);
this.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000");
ROWDISTANCENode rowdistanceNode = new ROWDISTANCENode();
this.addSubNode(rowdistanceNode);
ROWNode row = new ROWNode();
COLDISTANCENode coldistanceNode = new COLDISTANCENode();
coldistanceNode.setWidth("50%");
row.addSubNode(coldistanceNode);
LABELNode labelPaneID = new LABELNode();
labelPaneID.setText("ID: " + getPanelInfo().getPanelID());
row.addSubNode(labelPaneID);
this.addSubNode(row);
row = new ROWNode();
// coldistanceNode = new COLDISTANCENode();
// row.addSubNode(coldistanceNode);
// labelPaneID = new LABELNode();
// labelPaneID.setText("Nr: " + getPanelInfo().getPanelID());
//
// row.addSubNode(labelPaneID);
this.addSubNode(row);
row = new ROWNode();
coldistanceNode = new COLDISTANCENode();
coldistanceNode.setWidth("50%");
row.addSubNode(coldistanceNode);
labelPaneID = new LABELNode();
if (getPanelInfo().getPanelNanoleafID() == 0) {
labelPaneID.setText("unbek.");
} else {
labelPaneID.setText(getPanelInfo().getPanelNanoleafID() +"");
}
row.addSubNode(labelPaneID);
this.addSubNode(row);
}
}

@ -15,12 +15,13 @@ import org.eclnt.jsfserver.elements.events.BaseActionEventInvoke;
import org.eclnt.jsfserver.elements.impl.ROWDYNAMICCONTENTBinding;
import org.eclnt.jsfserver.elements.impl.ROWDYNAMICCONTENTBinding.ComponentNode;
import org.eclnt.jsfserver.elements.util.ValidValuesBinding;
import org.eclnt.jsfserver.pagebean.PageBean;
import de.examples.components.DragDropPaneBean.PaneInfoTest;
import de.examples.components.DragDropPaneBean.PaneRepeat;
import de.nanoleaf.server.ColorEnum;
import de.nanoleaf.server.NanoleafDeviceServer;
import de.tvo.database.tables.NLCONNECT.Nlconnect;
import de.tvo.database.tables.NLCONNECT.NlconnectWorker;
import de.tvo.nanoleaf.enums.NanoTypeEnum;
import de.tvo.nanoleaf.oclasses.MatrixInfo;
import de.tvo.tools.StringUtil;
import de.tvo.workplace.DefaultPageBean;
import io.github.rowak.nanoleafapi.Panel;
@ -31,6 +32,21 @@ import io.github.rowak.nanoleafapi.ShapeType;
public class PanelConfigBean extends DefaultPageBean implements Serializable {
public void onSave(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
Nlconnect nlconnect = new Nlconnect();
nlconnect.setNchostname("Canvas-72FA.fritz.box");
nlconnect.setNcipadress("192.168.178.141");
nlconnect.setNcport(16021);
nlconnect.setNccountpanel(15);
nlconnect.setNctoken("LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4");
nlconnect.setNctype(NanoTypeEnum.CANVAS);
try {
NlconnectWorker worker = new NlconnectWorker();
worker.insertNlconnect(nlconnect);
} catch (Exception e) {
e.printStackTrace();
}
}
public void onLoad(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
@ -234,7 +250,8 @@ public class PanelConfigBean extends DefaultPageBean implements Serializable {
public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
// TODO:
getPaneRepeatList().clear();
createPanelMatrix(getAnzahlPanels(), getMatrixX(), getMatrixY());
}

@ -0,0 +1,37 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Must be set to "false" for runtime purposes - especially when using the RISC
Client: CapatainCasa uses URL rewriting for session management.
If session id cookies are passed to the browser, then multiple browser instances
will share the same session id cookie - which may have server side problems as
consequence.
hbm2ddl.auto="create-drop"
cookies='false'
-->
<Context>
<!-- MariaDB CRM Verbindung -->
<Resource name="jdbc/mariadbnl"
global="jdbc/mariadb"
auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
maximumPoolSize="15"
minimumIdle="1"
dataSource.user="root"
dataSource.password="jhi1nPw."
show_sql="true"
hbm2ddl.auto="create-drop"
driverClassName="org.mariadb.jdbc.Driver"
testOnBorrow="true"
jdbcUrl="jdbc:mariadb://ZITNB014.de.geis-group.net:3306/nanoleafdb"
connectionTestQuery = "select 1"
allowPoolSuspension="true"
/>
</Context>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="logPath">${sys:catalina.home}/temp</Property>
<Property name="logPath">/temp</Property>
</Properties>
<Appenders>
<Console name="DefaultConsole">
@ -37,7 +37,7 @@
<appender-ref ref="ClassesConsole" />
<appender-ref level="INFO" ref="ClassesLog" />
</logger>
<Logger name="de.geis" level="INFO" additivity="false" includeLocation="false">
<Logger name="de.tvo" level="INFO" additivity="false" includeLocation="false">
<appender-ref ref="DefaultConsole" />
<appender-ref level="DEBUG" ref="DefaultLog" />
</Logger>
@ -45,7 +45,7 @@
<appender-ref ref="DefaultConsole" />
<appender-ref level="DEBUG" ref="DefaultLog" />
</Logger>
<Logger name="de.geis.examples" level="INFO" additivity="false" includeLocation="false">
<Logger name="de.nanoleaf" level="INFO" additivity="false" includeLocation="false">
<appender-ref ref="DefaultConsole" />
</Logger>
<Logger name="managedbeans" level="INFO" additivity="false" includeLocation="false">

@ -58,4 +58,12 @@
</cookie-config>
</session-config>
<resource-ref>
<description>MariaDB Verbindung</description>
<res-ref-name>jdbc/mariadbnl</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

@ -0,0 +1,39 @@
## Properties f\u00fcr Geisportal
## Workplace Umgebung
[WORKPLACE]
TEST=true
## Anzahl der Login Versuche.
MAX_LOGIN_ATTEMPTS=8
## Send Email fail Login
SEND_EMAIL_FAIL_LOGIN=4
##
SESSION_DIFF_TIME=2
## Mail from Portal
SEND_EMAIL_FROM_PORTAL=webportal-test-admin@geis-group.de
SEND_EMAIL_TO_LOGIN=java-fehlermeldungen@geis-group.de
SEND_EMAIL_ERROR_MSG=java-fehlermeldungen@geis-group.de
##thomas.vogel@geis-group.de;markus.kirchner@geis-group.de
## Auto Logout
SESSION_AUTO_LOGOUT_TIME=60
##
RIGHTS_UPDATE_NEXT_INTERVAL=10
## Portal Messages Delete Status nach ... Tagen
MSG_DELETE_STATUS_SET=14
## Portal Messages Typen Delete Status
MSG_DELETE_TYPEN_SET=TEXT_MSG;TEXT_MSG_PUSH;EMAIL_MSG
## Portal Messages Delete from DB ... Tagen
MSG_DELETE_FROM_DB=360
## Portal Message delete from Database Activ
MSG_DELETE_FROM_DB_ACTIV=false
## LoginTyp fuer Portal
PORTAL_LOGINTYP=WEB_USER;INTRANET_USER;CLIENT_USER
## TEST PORTAL URL
PORTAL_URL_TEST=https://webportal-test.geis-group.de
## PORTAL URL
PORTAL_URL=https://webportal.geis-group.de
## SESSION_TYP fuer Hostname
SESSION_TYP=PORTAL_SESSION
[DEFAULT]

@ -0,0 +1,19 @@
<logging level="INFO"
console="false"
plaintext="false"
outputclassmethod="false">
<!--
************************************************************************
loglevel that is used if errors occur when resolving an
property-access via expression resolution. And: decision of
a stack trace is output.
Possible values for level: SEVERE, WARNING(default), INFO, FINE
Possible values for stacktrace: true/false(default)
************************************************************************
-->
<!--
<loglevelmissingpropertyget level="WARNING" stacktrace="false"/>
-->
</logging>

@ -5,7 +5,7 @@
<t:row id="g_5" />
<t:rowbodypane id="g_4" >
<t:row id="g_13" >
<t:splitpane id="g_14" dividerlocation="400" dividersize="2" height="200" orientation="horizontal" width="100%" withwritebackdividerlocation="true" >
<t:splitpane id="g_14" dividerlocation="400" dividersize="2" height="220" orientation="horizontal" width="100%" withwritebackdividerlocation="true" >
<t:splitpanesplit id="g_15" >
<t:rowdistance id="g_202" />
<t:row id="g_7" >
@ -53,7 +53,7 @@
<t:coldistance id="g_186" />
<t:button id="g_188" actionListener="#{d.PanelConfigBean.onLoad}" text="#{rr.literalsNanoleaf[&#39;load&#39;]}" width="90" />
<t:coldistance id="g_190" />
<t:button id="g_192" text="#{rr.literalsNanoleaf[&#39;save&#39;]}" width="90" />
<t:button id="g_192" actionListener="#{d.PanelConfigBean.onSave}" text="#{rr.literalsNanoleaf[&#39;save&#39;]}" width="90" />
</t:row>
</t:splitpanesplit>
<t:splitpanesplit id="g_16" >

Loading…
Cancel
Save