diff --git a/gui/gui/connection.py b/gui/gui/connection.py
index 6ade67a..da11a73 100644
--- a/gui/gui/connection.py
+++ b/gui/gui/connection.py
@@ -14,22 +14,22 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Connection(object):
def setupUi(self, Connection):
Connection.setObjectName("Connection")
- Connection.resize(249, 252)
+ Connection.resize(245, 243)
self.label = QtWidgets.QLabel(Connection)
self.label.setGeometry(QtCore.QRect(20, 10, 101, 16))
self.label.setObjectName("label")
- self.label_2 = QtWidgets.QLabel(Connection)
- self.label_2.setGeometry(QtCore.QRect(20, 70, 49, 16))
- self.label_2.setObjectName("label_2")
- self.label_3 = QtWidgets.QLabel(Connection)
- self.label_3.setGeometry(QtCore.QRect(20, 100, 61, 16))
- self.label_3.setObjectName("label_3")
- self.label_4 = QtWidgets.QLabel(Connection)
- self.label_4.setGeometry(QtCore.QRect(20, 130, 81, 16))
- self.label_4.setObjectName("label_4")
- self.label_5 = QtWidgets.QLabel(Connection)
- self.label_5.setGeometry(QtCore.QRect(20, 160, 61, 16))
- self.label_5.setObjectName("label_5")
+ self.portLabel = QtWidgets.QLabel(Connection)
+ self.portLabel.setGeometry(QtCore.QRect(20, 70, 49, 16))
+ self.portLabel.setObjectName("portLabel")
+ self.userLabel = QtWidgets.QLabel(Connection)
+ self.userLabel.setGeometry(QtCore.QRect(20, 100, 61, 16))
+ self.userLabel.setObjectName("userLabel")
+ self.passLabel = QtWidgets.QLabel(Connection)
+ self.passLabel.setGeometry(QtCore.QRect(20, 130, 81, 16))
+ self.passLabel.setObjectName("passLabel")
+ self.databaseLabel = QtWidgets.QLabel(Connection)
+ self.databaseLabel.setGeometry(QtCore.QRect(20, 160, 61, 16))
+ self.databaseLabel.setObjectName("databaseLabel")
self.portInput = QtWidgets.QLineEdit(Connection)
self.portInput.setGeometry(QtCore.QRect(100, 70, 131, 21))
self.portInput.setText("")
@@ -56,9 +56,9 @@ class Ui_Connection(object):
self.returnLabel = QtWidgets.QLabel(Connection)
self.returnLabel.setGeometry(QtCore.QRect(20, 220, 211, 16))
self.returnLabel.setObjectName("returnLabel")
- self.label_6 = QtWidgets.QLabel(Connection)
- self.label_6.setGeometry(QtCore.QRect(20, 40, 101, 16))
- self.label_6.setObjectName("label_6")
+ self.ipLabel = QtWidgets.QLabel(Connection)
+ self.ipLabel.setGeometry(QtCore.QRect(20, 40, 101, 16))
+ self.ipLabel.setObjectName("ipLabel")
self.ipInput = QtWidgets.QLineEdit(Connection)
self.ipInput.setGeometry(QtCore.QRect(100, 40, 131, 21))
self.ipInput.setText("")
@@ -66,6 +66,9 @@ class Ui_Connection(object):
self.dbtypeCombo = QtWidgets.QComboBox(Connection)
self.dbtypeCombo.setGeometry(QtCore.QRect(100, 10, 131, 22))
self.dbtypeCombo.setObjectName("dbtypeCombo")
+ self.dbPath = QtWidgets.QFileDialog(Connection)
+ self.dbPath.setGeometry(QtCore.QRect(100, 15, 131, 22))
+ self.dbPath.setObjectName("dbPath")
self.retranslateUi(Connection)
self.ipInput.returnPressed.connect(self.portInput.setFocus) # type: ignore
@@ -86,11 +89,11 @@ class Ui_Connection(object):
_translate = QtCore.QCoreApplication.translate
Connection.setWindowTitle(_translate("Connection", "Form"))
self.label.setText(_translate("Connection", "Database"))
- self.label_2.setText(_translate("Connection", "Port"))
- self.label_3.setText(_translate("Connection", "Username"))
- self.label_4.setText(_translate("Connection", "Password"))
- self.label_5.setText(_translate("Connection", "Database"))
+ self.portLabel.setText(_translate("Connection", "Port"))
+ self.userLabel.setText(_translate("Connection", "Username"))
+ self.passLabel.setText(_translate("Connection", "Password"))
+ self.databaseLabel.setText(_translate("Connection", "Database"))
self.testButton.setText(_translate("Connection", "Test Connection"))
self.saveButton.setText(_translate("Connection", "Save"))
self.returnLabel.setText(_translate("Connection", "Connection ... / Saved..."))
- self.label_6.setText(_translate("Connection", "IP"))
+ self.ipLabel.setText(_translate("Connection", "IP"))
diff --git a/gui/gui/connection.ui b/gui/gui/connection.ui
index 7c827fc..5763bdd 100644
--- a/gui/gui/connection.ui
+++ b/gui/gui/connection.ui
@@ -6,8 +6,8 @@
0
0
- 249
- 252
+ 245
+ 243
@@ -26,7 +26,7 @@
Database
-
+
20
@@ -39,7 +39,7 @@
Port
-
+
20
@@ -52,7 +52,7 @@
Username
-
+
20
@@ -65,7 +65,7 @@
Password
-
+
20
@@ -172,7 +172,7 @@
Connection ... / Saved...
-
+
20
diff --git a/gui/main.py b/gui/main.py
index 6d08429..ebc900d 100644
--- a/gui/main.py
+++ b/gui/main.py
@@ -3,7 +3,7 @@ import os
import sys
from PyQt5.QtCore import QObject, QThread, pyqtSignal
-from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QTableWidgetItem, QTableWidget
+from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QTableWidgetItem, QTableWidget, QFileDialog
import modules.aisql as aisql
@@ -16,8 +16,8 @@ configfile = "config.json"
dbtypes = {
0: "PostgreSQL",
- 1: "MySQL",
- 2: "SQLite"
+ 1: "SQLite",
+ 2: "MySQL"
}
# Load DB Config from file but check if file exists and create if not
@@ -267,14 +267,7 @@ class ConnectionWindow(QDialog):
# Load DB Config from file
- with open(os.path.join(configfolder, configfile), "r") as f:
- self.config = json.load(f)
- self.dbtype = self.config["database"]["dbtype"]
- self.dbip = self.config["database"]["ip"]
- self.dbport = self.config["database"]["port"]
- self.dbuser = self.config["database"]["user"]
- self.dbpass = self.config["database"]["password"]
- self.dbname = self.config["database"]["database"]
+ self.dbtype, self.dbip, self.dbport, self.dbuser, self.dbpass, self.dbname, apikey = load_config()
self.ui.dbtypeCombo.addItems(dbtypes.values())
self.ui.dbtypeCombo.setCurrentIndex(self.dbtype)
@@ -284,17 +277,15 @@ class ConnectionWindow(QDialog):
self.ui.passwordInput.setText(self.dbpass)
self.ui.databaseInput.setText(self.dbname)
- if (self.ui.ipInput or self.ui.portInput or self.ui.databaseInput) == "":
+ if self.ui.ipInput == "":
self.ui.saveButton.setEnabled(False)
self.ui.testButton.setEnabled(False)
else:
self.ui.saveButton.setEnabled(True)
self.ui.testButton.setEnabled(True)
- # Unlock Buttons if ip, port and database is not empty
+ # Unlock Buttons if ip, port and database is not empty
self.ui.ipInput.textChanged.connect(self.on_text_changed)
- self.ui.portInput.textChanged.connect(self.on_text_changed)
- self.ui.databaseInput.textChanged.connect(self.on_text_changed)
# Pressed Save Button
self.ui.saveButton.clicked.connect(self.on_save_button_clicked)
@@ -302,14 +293,41 @@ class ConnectionWindow(QDialog):
# Pressed Test Button
self.ui.testButton.clicked.connect(self.start_db_test_thread)
+ # If SQLite3 is selected, disable ip, port, username and password
+ self.ui.dbtypeCombo.currentIndexChanged.connect(self.on_dbtype_changed)
+
def on_text_changed(self):
- if self.ui.ipInput.text() == "" or self.ui.portInput.text() == "" or self.ui.databaseInput.text() == "":
+ if self.ui.ipInput.text() == "":
self.ui.saveButton.setEnabled(False)
self.ui.testButton.setEnabled(False)
else:
self.ui.saveButton.setEnabled(True)
self.ui.testButton.setEnabled(True)
+ def on_dbtype_changed(self):
+ if self.ui.dbtypeCombo.currentIndex() == 1:
+ self.ui.ipInput.hide()
+ self.ui.portInput.hide()
+ self.ui.usernameInput.hide()
+ self.ui.passwordInput.hide()
+ self.ui.databaseInput.hide()
+ self.ui.ipLabel.hide()
+ self.ui.portLabel.hide()
+ self.ui.userLabel.hide()
+ self.ui.passLabel.hide()
+ self.ui.databaseLabel.hide()
+ else:
+ self.ui.ipInput.show()
+ self.ui.portInput.show()
+ self.ui.usernameInput.show()
+ self.ui.passwordInput.show()
+ self.ui.databaseInput.show()
+ self.ui.ipLabel.show()
+ self.ui.portLabel.show()
+ self.ui.userLabel.show()
+ self.ui.passLabel.show()
+ self.ui.databaseLabel.show()
+
def on_save_button_clicked(self):
self.dbtype = self.ui.dbtypeCombo.currentIndex()
self.dbip = self.ui.ipInput.text()
diff --git a/webgui/main.py b/webgui/main.py
new file mode 100644
index 0000000..e61a5a0
--- /dev/null
+++ b/webgui/main.py
@@ -0,0 +1,24 @@
+import justpy as jp
+
+class ButtonDiv(jp.Div):
+
+ def __init__(self, **kwargs):
+
+ super().__init__(**kwargs)
+ for i in range(1,6):
+ b = jp.Button(text=f'Button {i}', a=self, classes=f' m-{i} p-{i} border text-blue text-lg')
+ b.num = i
+ b.on('click', self.button_clicked)
+ self.info_div = jp.Div(text='info will go here', classes='m-2 p-2 border', a=self)
+
+ def button_clicked(self, msg):
+ print(self)
+ print(msg.target)
+ self.info_div.text = f'Button {msg.target.num} was clicked'
+
+def target_test():
+ wp = jp.WebPage()
+ ButtonDiv(a=wp)
+ return wp
+
+jp.justpy(target_test)