Merge branch 'merge-task-and-verController' of https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer into merge-task-and-verController

This commit is contained in:
krivoshein
2025-01-23 09:23:37 +03:00
17 changed files with 144 additions and 58 deletions

View File

@@ -12,13 +12,12 @@ kanban-plugin: board
## bugs
- [ ] При старт стопе не сканится шэред дата
## feature client Unity
- [ ] Добавить обновление инструктора, если он перелогинился
- [ ] убрать функционал смены версии с клиента
- [ ] При нажатии на кнопку обновить, менять надпись на Загрузка
## feature client QT
@@ -38,11 +37,16 @@ kanban-plugin: board
## NOW
- [ ] добавить информацию Авторе и изменяемая версия или нет
## Complete
- [ ] Уведомление о том, что версия сервера неизменяемая и инструкция, что нужно переключить версию сервера, подтянуть изменяемую версию и перекинуть файлы + путь
- [ ] Qt ClientЖ отключать виджет версии при разьединении
- [ ] Отображать версию на сервере
- [ ] При удалении с клиента не удаляется папка на сервере
- [ ] убрать функционал смены версии с клиента
- [ ] добавить информацию Авторе и изменяемая версия или нет
- [ ] отправлять сигнал на пересчет хэша с саб частью
- [ ] GUI server: при неподключенном сервере, отключать попытку изменить версию
- [ ] добавить автоматическое выключение после создания копии
@@ -304,6 +308,7 @@ kanban-plugin: board
## Cancel
- [ ] При старт стопе не сканится шэред дата
- [ ] разделения на серверное и GUI приложение
- [ ] gui thread должен жить один
- [ ] подготовить фасад для ui сервера

View File

@@ -11,6 +11,6 @@ void NotifyController::showWarning(QString text)
warning.setText(text);
warning.setIcon(QMessageBox::Warning);
warning.setWindowTitle(tr("Ошибка"));
warning.setWindowTitle(tr("Error"));
warning.exec();
}

View File

@@ -364,17 +364,17 @@ void RecognizeSystem::xmlParser(QByteArray array)
if (value == "BASEDELETETRY")
{
emit sigNotify(tr("Нельзя удалять базовую версию"));
emit sigNotify(tr("You cannot delete the basic version!"));
}
if (value == "TRYACTIVEDELETE")
{
emit sigNotify(tr("Нельзя удалять активную версию"));
emit sigNotify(tr("You cannot delete the active version"));
}
if (value == "DUPLICATEVERNAME")
{
emit sigNotify(tr("Такое имя уже существет"));
emit sigNotify(tr("This name already exists"));
}
}
}

View File

@@ -171,7 +171,7 @@ void InstructorsAndTraineesWidget::checkLoginResult(ServerAuthorization *serverA
ui->btnAuthorizationInstructor->setText(tr("Deauthorization Instructor"));
updateLabelLoggedInInstructor(serverAuth->Login, serverAuth->ClientName);
connectorToServer->setLoginName(loginInstructorLoggedInLocal);
connectorToServer->setLoginName(nameInstructorLoggedInLocal);
QMessageBox::information(this, tr("Instructor authorization"), tr("Successfully!"));
}
else

View File

@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>325</width>
<width>344</width>
<height>200</height>
</rect>
</property>
@@ -61,18 +61,24 @@
<item>
<widget class="QLabel" name="prevVerTitle">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Базовая версия:</string>
<string>Basic version:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="prevVerValue">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>150</horstretch>
<verstretch>30</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>TextLabel</string>
</property>
@@ -92,15 +98,27 @@
<number>5</number>
</property>
<property name="rightMargin">
<number>20</number>
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QLabel" name="newNameVersionTitle">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>99</horstretch>
<verstretch>40</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Новое название:</string>
<string>New name version:</string>
</property>
</widget>
</item>
@@ -108,8 +126,8 @@
<widget class="QLineEdit" name="lineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
<horstretch>150</horstretch>
<verstretch>30</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
@@ -126,6 +144,19 @@
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
@@ -158,7 +189,7 @@
</sizepolicy>
</property>
<property name="text">
<string>Создать</string>
<string>Create</string>
</property>
</widget>
</item>
@@ -187,7 +218,7 @@
</sizepolicy>
</property>
<property name="text">
<string>Отмена</string>
<string>Cancel</string>
</property>
</widget>
</item>

View File

@@ -22,7 +22,7 @@ void VersionSelectWidget::initialize(SendSystem *sendSystem,VersionContainer *ve
connect(this,&VersionSelectWidget::sigSendNotify,notifyController,&NotifyController::showWarning,Qt::AutoConnection);
this->versionContainer = versionContainer;
hide();
setWindowTitle(tr("Управление версиями"));
setWindowTitle(tr("Version control"));
}
void VersionSelectWidget::fillView(QList<StreamingVersionData *> *serverData)
@@ -44,10 +44,10 @@ void VersionSelectWidget::on_verListView_itemDoubleClicked(QListWidgetItem *item
{
if(data->getViewName() == item->text())
{
QString info = "Имя версии: " + data->getViewName() + "\n";
info.append("Создан: " + data->getCreateData().toString() + "\n");
info.append("Изменяемый: " + changableText(data->getIsChangeable()) + "\n");
info.append("Автор: " + data->getAuthor());
QString info = tr("Version name: ") + data->getViewName() + "\n";
info.append(tr("Created: ") + data->getCreateData().toString() + "\n");
info.append(tr("Changeable: ") + changableText(data->getIsChangeable()) + "\n");
info.append(tr("Author: ") + data->getAuthor());
ui->infoValue->setText(info);
selectedVersion = data;
}
@@ -56,8 +56,8 @@ void VersionSelectWidget::on_verListView_itemDoubleClicked(QListWidgetItem *item
QString VersionSelectWidget::changableText(bool flag)
{
if(flag) return tr("Да");
else return tr("Нет");
if(flag) return tr("Yes");
else return tr("No");
}
@@ -74,7 +74,7 @@ void VersionSelectWidget::sendCopyEmit(QString newName)
if (selectedVersion == nullptr)
{
sigSendNotify(tr("Версия не выбрана"));
sigSendNotify(tr("Version not selected"));
return;
}
@@ -86,7 +86,7 @@ void VersionSelectWidget::on_DeleteVersionButton_clicked()
{
if (selectedVersion == nullptr)
{
sigSendNotify(tr("Версия не выбрана"));
sigSendNotify(tr("Version not selected"));
return;
}
@@ -97,7 +97,7 @@ void VersionSelectWidget::on_switchServerVersionButton_clicked()
{
if (selectedVersion == nullptr)
{
sigSendNotify(tr("Версия не выбрана"));
sigSendNotify(tr("Version not selected"));
return;
}

View File

@@ -48,15 +48,15 @@
<widget class="QLabel" name="verListTitle">
<property name="font">
<font>
<family>Calibri</family>
<pointsize>12</pointsize>
<family>MS Shell Dlg 2</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="contextMenuPolicy">
<enum>Qt::PreventContextMenu</enum>
</property>
<property name="text">
<string>Доступные версии на сервере</string>
<string>Available versions on the server:</string>
</property>
</widget>
</item>
@@ -103,7 +103,7 @@
</font>
</property>
<property name="text">
<string>Создать копию</string>
<string>Create copy</string>
</property>
</widget>
</item>
@@ -127,7 +127,7 @@
</font>
</property>
<property name="text">
<string>Удалить</string>
<string>Delete</string>
</property>
</widget>
</item>
@@ -147,7 +147,7 @@
</font>
</property>
<property name="text">
<string>Переключить версию сервера</string>
<string>Change server version</string>
</property>
</widget>
</item>
@@ -175,7 +175,7 @@
</sizepolicy>
</property>
<property name="text">
<string>Информация:</string>
<string>Info:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@@ -185,7 +185,7 @@
<item>
<widget class="QLabel" name="infoValue">
<property name="text">
<string>Тут будет информация о версии...</string>
<string>Double click on the version to see information...</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@@ -220,7 +220,7 @@
<item>
<widget class="QLabel" name="verTitle">
<property name="text">
<string>Текущая версия сервера:</string>
<string>Current server version:</string>
</property>
</widget>
</item>

View File

@@ -13,13 +13,21 @@ public:
this->viewName = viewName;
this->createData = data;
this->size = size;
this->isChangeable = true;
this->author = "";
this->isChangeable = false;
}
StreamingVersionData(){};
~StreamingVersionData();
void fill(StreamingVersionData* data)
{
this->absolutePath = data->getAbsolutPath();
this->viewName = data->getViewName();
this->createData = data->getCreateData();
this->size = data->getSize();
this->isChangeable = data->getIsChangeable();
this->author = data->getAuthor();
}
QString getAbsolutPath() const
{
return absolutePath;

View File

@@ -59,6 +59,10 @@ void ProcessParser::read(ClientHandler *client, QByteArray array)
clientNotify(xmlReader,client);
}
else if(xmlReader.name() == "DataInfo")
{
clientDataInfo(xmlReader,client);
}
else
{
emit sigLogMessage("XmlParser: unrecognized tag");
@@ -69,6 +73,25 @@ void ProcessParser::read(ClientHandler *client, QByteArray array)
}//while(!xmlReader.atEnd())
}
void ProcessParser::clientDataInfo(QXmlStreamReader &xmlReader,ClientHandler *client)
{
DataInfo *dataInfo = new DataInfo;
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes())
{
QString name = attr.name().toString();
QString value = attr.value().toString();
if(name == "path")
dataInfo->path= value.toUtf8();
if(name == "size")
dataInfo->size = value.toLong();
}
processingSystem->setCurrentDataInfo(dataInfo);
}
void ProcessParser::clientAuth(QXmlStreamReader &xmlReader,ClientHandler *client)
{
ClientAutorization clientAutorization;

View File

@@ -2,9 +2,9 @@
#define PROCESSPARSER_H
#include <QObject>
#include <Data/typesDataServerClient.h>
#include <qxmlstream.h>
#include <clienthandler.h>
#include "Data/typesDataServerClient.h"
class ProcessParser : public QObject
{
@@ -26,6 +26,7 @@ private:
void queryTasksXML(QXmlStreamReader &xmlReader,ClientHandler *client);
void clientMessage(QXmlStreamReader &xmlReader,ClientHandler *client);
void clientNotify(QXmlStreamReader &xmlReader,ClientHandler *client);
void clientDataInfo(QXmlStreamReader &xmlReader, ClientHandler *client);
};
#endif // PROCESSPARSER_H

View File

@@ -170,22 +170,13 @@ void AssetsManager::addVersion(StreamingVersionData *data)
void AssetsManager::createCopyVersion(QString versionName,QString newVersionName,QString author)
{
qDebug() << "assetManager thread ID " << QThread::currentThreadId();
QListIterator<StreamingVersionData*> iterator(*datas);
StreamingVersionData* data = new StreamingVersionData;
while (iterator.hasNext())
{
StreamingVersionData *version = iterator.next();
if (version->getViewName() == versionName)
{
data->setAbsolutePath(version->getAbsolutPath());
}
}
data->setAbsolutePath(Tools::createSharedPath("/" + newVersionName));
data->setAuthor(author);
data->setIsChangeable(true);
data->setViewName(newVersionName);
data->setCreateData(QDateTime::currentDateTime());
datas->append(data);
qDebug() << "Version for copy " << versionName;
@@ -282,7 +273,7 @@ void AssetsManager::copyAllRecurse(QString source,QString destination)
void AssetsManager::writeVersionsToFile(QList<StreamingVersionData*> version,bool isFirst)
{
QList<SXmlAnswerTag> listTag;
datas->clear();
QFile file(versionListFile);
foreach(StreamingVersionData* ver,version)
@@ -295,7 +286,9 @@ void AssetsManager::writeVersionsToFile(QList<StreamingVersionData*> version,boo
if(isFirst)
{
attribute3 = {"isChangeable",QString::number(false)};
attribute4 = {"author",tr("Константа-дизайн")};
QString author = tr("Константа-дизайн");
attribute4 = {"author",author};
ver->setAuthor(author);
}else
{
attribute3 ={"isChangeable",QString::number(ver->getIsChangeable())};
@@ -337,10 +330,10 @@ void AssetsManager::writeVersionsToFile(QList<StreamingVersionData*> version,boo
void AssetsManager::createFirstVersionListXML(QList<StreamingVersionData*> version) //TODO: переименовать и перебросить в AssetManager
{
QFile file(versionListFile);
QList<StreamingVersionData*> *temp = new QList<StreamingVersionData*>();
if(!file.exists())
{
writeVersionsToFile(version,true);
writeVersionsToFile(version,true);
}
else
{
@@ -353,16 +346,20 @@ void AssetsManager::createFirstVersionListXML(QList<StreamingVersionData*> versi
{
if(ver->getViewName() == data->getViewName())
{
data->setAbsolutePath(ver->getAbsolutPath());
StreamingVersionData *tempData = new StreamingVersionData;
tempData->fill(data);
tempData->setAbsolutePath(ver->getAbsolutPath());
temp->append(tempData);
break;
}
}
}
writeVersionsToFile(*datas,false);
writeVersionsToFile(*temp,false);
}
}
void AssetsManager::saveVersionToFile(StreamingVersionData *streamingVersion) //TODO: переименовать и перебросить в AssetManager

View File

@@ -24,6 +24,7 @@ void ProcessingSystem::initialize(ServerLMSWidget *server,
connect(this,&ProcessingSystem::sigAuthChanged,commonClientHandler, &CommonClientHandler::slot_AuthChanged,Qt::AutoConnection);
connect(this,&ProcessingSystem::sigUpdateListClients,server, &ServerLMSWidget::slotUpdateListClients,Qt::AutoConnection);
connect(this,&ProcessingSystem::sigSetData,updateController,&UpdateController::setDataInfo,Qt::AutoConnection);
connect(this,&ProcessingSystem::signal_msgToClientReady,commonClientHandler, &CommonClientHandler::slot_msgToClientFromGUI);
connect(this,&ProcessingSystem::signal_msgFromClientReady,commonClientHandler, &CommonClientHandler::slot_msgToGUIfromClient);
connect(this,&ProcessingSystem::sigLogMessage,logger,&Logger::addTextToLogger,Qt::QueuedConnection);
@@ -335,5 +336,10 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
}
}
void ProcessingSystem::setCurrentDataInfo(DataInfo *dataInfo)
{
emit sigSetData(dataInfo);
}

View File

@@ -38,6 +38,7 @@ public:
void processingFromClientMessage(ClientHandler *client, ClientMessage clientMessage);
void processingClientNotify(ClientHandler *client, ClientNotify clientNotify);
void setCurrentDataInfo(DataInfo *dataInfo);
signals:
void sigUpdateListClients();
void sigAuthChanged();
@@ -45,6 +46,7 @@ signals:
void sigAddToMessanger(QString login,QString text);
void signal_msgToClientReady(QString login, QString text);
void signal_msgFromClientReady(QString login, QString text);
void sigSetData(DataInfo *dataInfo);
private:
CommonClientHandler *commonClientServer;

View File

@@ -66,6 +66,11 @@ QString Tools::createStreamingToRealPath(QString path,StreamingVersionData* stre
}
QString Tools::createVersionHashFilepath(QString fileName)
{
return staticDataFolderName + "/" + fileName + "Hash.xml";
}
QString Tools::createUpdateFilePath(QString path)
{
//qDebug() << "Full path: " << path;

View File

@@ -56,6 +56,7 @@ public:
static QString createSharedPath(QString path);
static QString createRealPath(QString path,StreamingVersionData* currentVersionData);
static QString createStreamingToRealPath(QString path, StreamingVersionData *streamingVersionData);
static QString createVersionHashFilepath(QString fileName);
};

View File

@@ -193,6 +193,11 @@ void UpdateController::setUpCurrentServerHash()
saveHash(hashFileName,fileList);
}
void UpdateController::setDataInfo(DataInfo *value)
{
dataInfo = value;
}
QString UpdateController::getCurrentStreamingPath() const
{
return currentStreamingPath;
@@ -428,7 +433,7 @@ void UpdateController::calculateSharedHash()
if (fileInfo.fileName() == "." || fileInfo.fileName() == "..")
continue;
QString fileName = staticDataFolderName + "/" + fileInfo.fileName() + "Hash.xml";
QString fileName = Tools::createVersionHashFilepath(fileInfo.fileName());
fileList = calculateHash(fileInfo.absoluteFilePath());
saveHash(fileName,fileList);

View File

@@ -56,6 +56,8 @@ public:
QString getPathAdditionalFile(QString name);
StreamingVersionData *getCurrentVersion();
void setDataInfo(DataInfo *value);
public slots:
void changeAssetVersion(QString versionName);
void createCopyVersion(QString versionName,QString newVersionName,QString author);