559 lines
15 KiB
C++
559 lines
15 KiB
C++
# include "EinsatzplanFrame.hpp"
|
|
|
|
EinsatzplanFrame::EinsatzplanFrame(QWidget* parent, QString id, bool admin)
|
|
:QFrame(parent) {
|
|
setFrameStyle(QFrame::Box);
|
|
setObjectName("einsatzplanFrame");
|
|
setStyleSheet(R"(
|
|
#einsatzplanFrame{
|
|
background-color: #212121;
|
|
border: none;
|
|
}
|
|
)");
|
|
|
|
controller_m = new EinsatzplanFrameController(id, admin);
|
|
|
|
profileImg_m = new QLabel(this);
|
|
profileImg_m->setFixedSize(60, 60);
|
|
profileImg_m->setPixmap(QPixmap(":account-box.png"));
|
|
profileImg_m->setObjectName("profileImg");
|
|
profileImg_m->setStyleSheet(R"(
|
|
#profileImg{
|
|
|
|
}
|
|
)");
|
|
profileImg_m->show( );
|
|
|
|
|
|
id_m = new QLabel(id, this);
|
|
id_m->setFixedSize(122, 80);
|
|
id_m->setObjectName("id");
|
|
id_m->setStyleSheet(R"(
|
|
#id{
|
|
font-size: 24px;
|
|
color: #d8d8d8;
|
|
font-weight: bold;
|
|
}
|
|
)");
|
|
id_m->show( );
|
|
|
|
|
|
abmeldenButton_m = new QPushButton("Abmelden", this);
|
|
abmeldenButton_m->setFixedSize(150, 50);
|
|
abmeldenButton_m->setObjectName("abmeldenButton");
|
|
abmeldenButton_m->setStyleSheet(R"(
|
|
#abmeldenButton{
|
|
font-size: 24px;
|
|
font-weight: bold;
|
|
color: #212121;
|
|
background-color: #E0894A;
|
|
border-radius: 10px;
|
|
}
|
|
#abmeldenButton:pressed{
|
|
background-color: #D0793A;
|
|
}
|
|
)");
|
|
abmeldenButton_m->show( );
|
|
|
|
//implement logoutButton functionality
|
|
connect(abmeldenButton_m, &QPushButton::clicked, this, &EinsatzplanFrame::abmelden);
|
|
|
|
|
|
einsatzplanLabel_m = new QLabel("Einsatzplan", this);
|
|
einsatzplanLabel_m->setFixedSize(645, 80);
|
|
einsatzplanLabel_m->setAlignment(Qt::AlignCenter);
|
|
einsatzplanLabel_m->setObjectName("einsatzplanLabel");
|
|
einsatzplanLabel_m->setStyleSheet(R"(
|
|
#einsatzplanLabel{
|
|
font-size:40px;
|
|
color: #7FF;
|
|
font-weight: bold;
|
|
}
|
|
)");
|
|
einsatzplanLabel_m->show( );
|
|
|
|
|
|
planGrid_m = new PlanGrid(this);
|
|
planGrid_m->show( );
|
|
|
|
|
|
|
|
QVBoxLayout* totalLayout = new QVBoxLayout(this);
|
|
totalLayout->setContentsMargins(30, 20, 30, 20);
|
|
|
|
QHBoxLayout* topLayout = new QHBoxLayout(this);
|
|
topLayout->addWidget(profileImg_m, 0, Qt::AlignLeft);
|
|
topLayout->addSpacing(10);
|
|
topLayout->addWidget(id_m, 0, Qt::AlignLeft);
|
|
topLayout->addWidget(einsatzplanLabel_m, 4, Qt::AlignCenter);
|
|
topLayout->addWidget(abmeldenButton_m, 0, Qt::AlignRight);
|
|
|
|
|
|
QHBoxLayout* bottomLayout = new QHBoxLayout(this);
|
|
bottomLayout->addWidget(planGrid_m, 1, Qt::AlignCenter);
|
|
|
|
|
|
//make bottomLayout bigger then topLayout
|
|
totalLayout->addLayout(topLayout,1);
|
|
totalLayout->addLayout(bottomLayout, 4);
|
|
|
|
|
|
|
|
if (admin) {
|
|
|
|
createMemberButton_m = new QPushButton("Mitarbeiter\nHinzufügen", this);
|
|
createMemberButton_m->setFixedSize(200, 50);
|
|
createMemberButton_m->setObjectName("createMember");
|
|
createMemberButton_m->setStyleSheet(R"(
|
|
#createMember{
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #DCFF78;
|
|
color: #212121;
|
|
border-radius: 10px;
|
|
}
|
|
#createMember:pressed{
|
|
background-color: #CCEF68;
|
|
}
|
|
)");
|
|
createMemberButton_m->show( );
|
|
|
|
//implement createMemberButton functionality
|
|
connect(createMemberButton_m, &QPushButton::clicked, this, &EinsatzplanFrame::createMember);
|
|
|
|
|
|
deleteMemberButton_m = new QPushButton("Mitarbeiter\nEntfernen", this);
|
|
deleteMemberButton_m->setFixedSize(200, 50);
|
|
deleteMemberButton_m->setObjectName("deleteMember");
|
|
deleteMemberButton_m->setStyleSheet(R"(
|
|
#deleteMember{
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #DCFF78;
|
|
color: #212121;
|
|
border-radius: 10px;
|
|
}
|
|
#deleteMember:pressed{
|
|
background-color: #CCEF68;
|
|
}
|
|
)");
|
|
deleteMemberButton_m->show( );
|
|
|
|
//implement deleteMemberButton functionality
|
|
connect(deleteMemberButton_m, &QPushButton::clicked, this, &EinsatzplanFrame::deleteMember);
|
|
|
|
|
|
createVeranstaltungButton_m = new QPushButton("Veranstaltung\nHinzufügen", this);
|
|
createVeranstaltungButton_m->setFixedSize(200, 50);
|
|
createVeranstaltungButton_m->setObjectName("createVeranstaltung");
|
|
createVeranstaltungButton_m->setStyleSheet(R"(
|
|
#createVeranstaltung{
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #DCFF78;
|
|
color: #212121;
|
|
border-radius: 10px;
|
|
}
|
|
#createVeranstaltung:pressed{
|
|
background-color: #CCEF68;
|
|
}
|
|
)");
|
|
createVeranstaltungButton_m->show( );
|
|
|
|
//implement createVeranstaltungButton functionality
|
|
connect(createVeranstaltungButton_m, &QPushButton::clicked, this, &EinsatzplanFrame::createVeranstaltung);
|
|
|
|
|
|
deleteVeranstaltungButton_m = new QPushButton("Veranstaltung\nEntfernen", this);
|
|
deleteVeranstaltungButton_m->setFixedSize(200, 50);
|
|
deleteVeranstaltungButton_m->setObjectName("deleteVeranstaltung");
|
|
deleteVeranstaltungButton_m->setStyleSheet(R"(
|
|
#deleteVeranstaltung{
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #DCFF78;
|
|
color: #212121;
|
|
border-radius: 10px;
|
|
}
|
|
#deleteVeranstaltung:pressed{
|
|
background-color: #CCEF68;
|
|
}
|
|
)");
|
|
deleteVeranstaltungButton_m->show( );
|
|
|
|
//implement deleteVeranstaltungButton functionality
|
|
connect(deleteVeranstaltungButton_m, &QPushButton::clicked, this, &EinsatzplanFrame::deleteVeranstaltung);
|
|
|
|
QHBoxLayout* adminLayout = new QHBoxLayout(this);
|
|
adminLayout->addWidget(createMemberButton_m, 1, Qt::AlignLeft);
|
|
adminLayout->addWidget(deleteMemberButton_m, 1, Qt::AlignLeft);
|
|
adminLayout->addStretch(1);
|
|
adminLayout->addWidget(createVeranstaltungButton_m, 1, Qt::AlignRight);
|
|
adminLayout->addWidget(deleteVeranstaltungButton_m, 1, Qt::AlignRight);
|
|
|
|
totalLayout->addLayout(adminLayout);
|
|
|
|
}
|
|
}
|
|
|
|
void EinsatzplanFrame::abmelden(){
|
|
static_cast<QApplication*>(parent()->parent())->exit();
|
|
}
|
|
|
|
void EinsatzplanFrame::deleteVeranstaltung(){
|
|
bool ok;
|
|
QString text = QInputDialog::getText(this, tr("Veranstaltung Entfernen"),
|
|
tr("Bitte geben sie den Veranstaltungskürzel ein:"), QLineEdit::Normal,
|
|
"", &ok);
|
|
if (ok && text.size()!= 3)
|
|
QMessageBox::information(this, "Veranstaltung Entfernen", "Veranstaltungskürzel besteht aus 3 Zeichen!");
|
|
if (ok && text.size() == 3)
|
|
QMessageBox::information(this, "Veranstaltung entfernen", "Veranstaltung wird entfernt!");
|
|
}
|
|
|
|
void EinsatzplanFrame::createVeranstaltung(){
|
|
createVerDialog dialog(this);
|
|
if (dialog.exec() == QDialog::Accepted) {
|
|
QString name = dialog.getName();
|
|
QString raum = dialog.getRaum();
|
|
QString campus = dialog.getCampus();
|
|
QString begin = dialog.getBegin();
|
|
QString ende = dialog.getEnde();
|
|
controller_m->createVeranstaltung(name,raum, campus, begin, ende);
|
|
}
|
|
}
|
|
|
|
void EinsatzplanFrame::deleteMember(){
|
|
bool ok;
|
|
QString text = QInputDialog::getText(this, tr("Mitarbeiter Entfernen"),
|
|
tr("Bitte geben sie die Mitarbeiter ID ein:"), QLineEdit::Normal,
|
|
"", &ok);
|
|
if (ok && text.size()!= 7)
|
|
QMessageBox::information(this, "Mitarbeiter Entfernen", "Mitarbeiter ID besteht aus 7 Zahlen!");
|
|
if (ok && text.size() == 7)
|
|
QMessageBox::information(this, "Mitarbeiter entfernen", "Mitarbeiter wird entfernt!");
|
|
}
|
|
|
|
void EinsatzplanFrame::createMember(){
|
|
createMemDialog dialog(this);
|
|
if (dialog.exec() == QDialog::Accepted) {
|
|
QString name = dialog.getName();
|
|
QString email = dialog.getEmail();
|
|
QString password = dialog.getPassword();
|
|
bool isAdmin = dialog.isAdmin();
|
|
controller_m->createMember(name, email, password, isAdmin);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
createMemDialog::createMemDialog(QWidget* parent)
|
|
:QDialog(parent)
|
|
{
|
|
setWindowTitle("Mitarbeiter Hinzufügen");
|
|
setFixedSize(300,400);
|
|
setObjectName("createMemDialog");
|
|
setStyleSheet(R"(
|
|
#createMemDialog{
|
|
background-color: #212121;
|
|
border: none;
|
|
}
|
|
)");
|
|
|
|
name_m = new QLineEdit(this);
|
|
name_m->setPlaceholderText("Name");
|
|
name_m->setFixedSize(220,40);
|
|
name_m->setObjectName("name");
|
|
name_m->setStyleSheet(R"(
|
|
#name{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
border: 2px solid #414141;
|
|
}
|
|
)");
|
|
name_m->show();
|
|
|
|
|
|
email_m = new QLineEdit(this);
|
|
email_m->setPlaceholderText("Email");
|
|
email_m->setFixedSize(220,40);
|
|
email_m->setObjectName("email");
|
|
email_m->setStyleSheet(R"(
|
|
#email{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
border: 2px solid #414141;
|
|
}
|
|
)");
|
|
email_m->show();
|
|
|
|
password_m = new QLineEdit(this);
|
|
password_m->setPlaceholderText("Passwort");
|
|
password_m->setEchoMode(QLineEdit::Password);
|
|
password_m->setFixedSize(220,40);
|
|
password_m->setObjectName("password");
|
|
password_m->setStyleSheet(R"(
|
|
#password{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
border: 2px solid #414141;
|
|
}
|
|
)");
|
|
password_m->show();
|
|
|
|
admin_m = new QCheckBox("Admin", this);
|
|
admin_m->setFixedSize(220,40);
|
|
admin_m->setObjectName("admin");
|
|
admin_m->setStyleSheet(R"(
|
|
#admin{
|
|
color: #DADADA;
|
|
font-size: 20px;
|
|
border: none;
|
|
}
|
|
)");
|
|
admin_m->show();
|
|
|
|
|
|
QVBoxLayout* layout = new QVBoxLayout(this);
|
|
|
|
layout->setContentsMargins(30,30,30,30);
|
|
|
|
layout->addWidget(name_m,1,Qt::AlignCenter);
|
|
layout->addWidget(email_m,1,Qt::AlignCenter);
|
|
layout->addWidget(password_m,1,Qt::AlignCenter);
|
|
layout->addWidget(admin_m,1, Qt::AlignCenter);
|
|
|
|
QHBoxLayout* buttonLayout = new QHBoxLayout();
|
|
|
|
okButton_m = new QPushButton("OK", this);
|
|
okButton_m->setFixedSize(110,40);
|
|
okButton_m->setObjectName("okButton");
|
|
okButton_m->setStyleSheet(R"(
|
|
#okButton{
|
|
color: #212121;
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #53EC87;
|
|
border-radius: 10px;
|
|
}
|
|
)");
|
|
|
|
cancelButton_m = new QPushButton("Abbrechen", this);
|
|
cancelButton_m->setFixedSize(110,40);
|
|
cancelButton_m->setObjectName("cancelButton");
|
|
cancelButton_m->setStyleSheet(R"(
|
|
#cancelButton{
|
|
color: #212121;
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #FF5555;
|
|
border-radius: 10px;
|
|
}
|
|
)");
|
|
|
|
buttonLayout->addWidget(okButton_m,1, Qt::AlignCenter);
|
|
buttonLayout->addWidget(cancelButton_m,1,Qt::AlignCenter);
|
|
|
|
layout->addLayout(buttonLayout);
|
|
|
|
connect(okButton_m, &QPushButton::clicked, this, &QDialog::accept);
|
|
connect(cancelButton_m, &QPushButton::clicked, this, &QDialog::reject);
|
|
}
|
|
|
|
QString createMemDialog::getName() const {
|
|
return name_m->text();
|
|
}
|
|
|
|
QString createMemDialog::getEmail() const {
|
|
return email_m->text();
|
|
}
|
|
|
|
QString createMemDialog::getPassword() const {
|
|
return password_m->text();
|
|
}
|
|
|
|
bool createMemDialog::isAdmin() const {
|
|
return admin_m->isChecked();
|
|
}
|
|
|
|
|
|
|
|
createVerDialog::createVerDialog(QWidget* parent)
|
|
: QDialog(parent) {
|
|
setWindowTitle("Veranstaltung Hinzufügen");
|
|
setFixedSize(300,440);
|
|
setObjectName("createMemDialog");
|
|
setStyleSheet(R"(
|
|
#createMemDialog{
|
|
background-color: #212121;
|
|
border: none;
|
|
}
|
|
)");
|
|
|
|
QVBoxLayout* layout = new QVBoxLayout(this);
|
|
|
|
layout->setContentsMargins(30,30,30,30);
|
|
|
|
name_m = new QLineEdit(this);
|
|
name_m->setPlaceholderText("Veranstaltungskürzel");
|
|
name_m->setFixedSize(220,40);
|
|
name_m->setObjectName("name");
|
|
name_m->setStyleSheet(R"(
|
|
#name{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
border: 2px solid #414141;
|
|
}
|
|
)");
|
|
layout->addWidget(name_m,1,Qt::AlignCenter);
|
|
|
|
raum_m = new QLineEdit(this);
|
|
raum_m->setPlaceholderText("Raum");
|
|
raum_m->setFixedSize(220,40);
|
|
raum_m->setObjectName("raum");
|
|
raum_m->setStyleSheet(R"(
|
|
#raum{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
border: 2px solid #414141;
|
|
}
|
|
)");
|
|
layout->addWidget(raum_m,1,Qt::AlignCenter);
|
|
|
|
campus_m = new QComboBox(this);
|
|
campus_m->addItem("Campus A");
|
|
campus_m->addItem("Campus B");
|
|
campus_m->setFixedSize(220,40);
|
|
campus_m->setObjectName("campus");
|
|
campus_m->setStyleSheet(R"(
|
|
#campus{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
}
|
|
#campus::Item{
|
|
color: #DADADA;
|
|
background-color: #313131;
|
|
}
|
|
)");
|
|
layout->addWidget(campus_m,1,Qt::AlignCenter);
|
|
|
|
begin_m = new QComboBox(this);
|
|
begin_m->addItem("08:00");
|
|
begin_m->addItem("10:00");
|
|
begin_m->addItem("12:00");
|
|
begin_m->addItem("14:00");
|
|
begin_m->addItem("16:00");
|
|
begin_m->setFixedSize(220,40);
|
|
begin_m->setObjectName("begin");
|
|
begin_m->setStyleSheet(R"(
|
|
#begin{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
}
|
|
#begin::Item{
|
|
color: #DADADA;
|
|
background-color: #313131;
|
|
}
|
|
)");
|
|
layout->addWidget(begin_m,1,Qt::AlignCenter);
|
|
|
|
ende_m = new QComboBox(this);
|
|
ende_m->addItem("10:00");
|
|
ende_m->addItem("12:00");
|
|
ende_m->addItem("14:00");
|
|
ende_m->addItem("16:00");
|
|
ende_m->addItem("18:00");
|
|
ende_m->setFixedSize(220,40);
|
|
ende_m->setObjectName("ende");
|
|
ende_m->setStyleSheet(R"(
|
|
#ende{
|
|
color: #DADADA;
|
|
font-size: 16px;
|
|
background-color: #313131;
|
|
border-radius: 10px;
|
|
padding: 5px;
|
|
}
|
|
#ende::Item{
|
|
color: #DADADA;
|
|
background-color: #313131;
|
|
}
|
|
)");
|
|
layout->addWidget(ende_m,1,Qt::AlignCenter);
|
|
|
|
QHBoxLayout* buttonLayout = new QHBoxLayout();
|
|
|
|
okButton_m = new QPushButton("OK", this);
|
|
okButton_m->setFixedSize(110,40);
|
|
okButton_m->setObjectName("okButton");
|
|
okButton_m->setStyleSheet(R"(
|
|
#okButton{
|
|
color: #212121;
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #53EC87;
|
|
border-radius: 10px;
|
|
}
|
|
)");
|
|
|
|
cancelButton_m = new QPushButton("Abbrechen", this);
|
|
cancelButton_m->setFixedSize(110,40);
|
|
cancelButton_m->setObjectName("cancelButton");
|
|
cancelButton_m->setStyleSheet(R"(
|
|
#cancelButton{
|
|
color: #212121;
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
background-color: #FF5555;
|
|
border-radius: 10px;
|
|
}
|
|
)");
|
|
|
|
buttonLayout->addWidget(okButton_m,1,Qt::AlignCenter);
|
|
buttonLayout->addWidget(cancelButton_m,1,Qt::AlignCenter);
|
|
|
|
layout->addLayout(buttonLayout,1);
|
|
|
|
connect(okButton_m, &QPushButton::clicked, this, &QDialog::accept);
|
|
connect(cancelButton_m, &QPushButton::clicked, this, &QDialog::reject);
|
|
}
|
|
|
|
QString createVerDialog::getName() const {
|
|
return name_m->text();
|
|
}
|
|
|
|
QString createVerDialog::getRaum() const {
|
|
return raum_m->text();
|
|
}
|
|
|
|
QString createVerDialog::getCampus() const {
|
|
return campus_m->currentText();
|
|
}
|
|
|
|
QString createVerDialog::getBegin() const {
|
|
return begin_m->currentText();
|
|
}
|
|
|
|
QString createVerDialog::getEnde() const {
|
|
return ende_m->currentText();
|
|
} |