From ae2327347ae4aa46c6daeaa4ab50e8bc3e8a8702 Mon Sep 17 00:00:00 2001 From: 02090095 Date: Tue, 4 Feb 2025 00:44:45 +0300 Subject: [PATCH] no message --- .idea/workspace.xml | 5 +- .../Passes/All/UpdateBugReportField.java | 62 ++++++++++--------- .../Repository/Server/ComponentsServer.java | 5 +- .../Repository/Server/ServerCode.java | 4 ++ 4 files changed, 42 insertions(+), 34 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c0b8cbaf..a3e0b483 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -8,10 +8,7 @@ - - - - + diff --git a/src/_VisualDVM/Passes/All/UpdateBugReportField.java b/src/_VisualDVM/Passes/All/UpdateBugReportField.java index 714579a1..180a9741 100644 --- a/src/_VisualDVM/Passes/All/UpdateBugReportField.java +++ b/src/_VisualDVM/Passes/All/UpdateBugReportField.java @@ -2,10 +2,12 @@ package _VisualDVM.Passes.All; import Common.Utils.Utils_; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; +import _VisualDVM.Passes.Server.ClientPass; import _VisualDVM.Passes.Server.ComponentsRepositoryPass; import _VisualDVM.Repository.BugReport.BugReport; import _VisualDVM.Repository.BugReport.BugReportState; import _VisualDVM.Repository.EmailMessage; +import _VisualDVM.Repository.Server.ComponentsServer; import _VisualDVM.Repository.Server.ServerCode; import _VisualDVM.Repository.Server.ServerExchangeUnit_2021; import _VisualDVM.Utils; @@ -14,16 +16,22 @@ import javafx.util.Pair; import java.io.Serializable; import java.util.Date; import java.util.Vector; -public class UpdateBugReportField extends ComponentsRepositoryPass { +public class UpdateBugReportField extends ClientPass { Vector fieldNames = new Vector<>(); Vector fieldValues = new Vector<>(); String old_description = ""; String old_comment = ""; + BugReport actual; + @Override + protected ComponentsServer getServer() { + return Global.componentsServer; + } protected boolean canUpdate() { return target.canModify(Global.mainModule.getAccount(),Log); } @Override protected boolean canStart(Object... args) throws Exception { + actual = null; if (!Global.componentsServer.db.bugReports.getUI().CheckCurrent(Log)) return false; old_description = ""; @@ -49,36 +57,34 @@ public class UpdateBugReportField extends ComponentsRepositoryPass { for (int i = 0; i < fieldNames.size(); ++i) BugReport.class.getField(fieldNames.get(i)).set(target, fieldValues.get(i)); target.change_date = new Date().getTime(); - server.db.Update(target); - server.db.bugReports.getUI().RedrawControl(); + getServer().db.Update(target); + getServer().db.bugReports.getUI().RedrawControl(); Global.mainModule.getUI().getMainWindow().getCallbackWindow().ShowCurrentBugReport(); - } else - return canUpdate(); + } else { + if (canUpdate()&& SendRequest(ServerCode.GetObjectCopyByPK, "", new Pair<>(BugReport.class, target.id))){ + actual = (BugReport) request.target; + target.SynchronizeFields(actual); + for (int i = 0; i < fieldNames.size(); ++i) { + String fieldName = fieldNames.get(i); + switch (fieldName) { + case "comment": + old_comment = (String) BugReport.class.getField(fieldName).get(target); + break; + case "description": + old_description = (String) BugReport.class.getField(fieldName).get(target); + break; + } + BugReport.class.getField(fieldNames.get(i)).set(target, fieldValues.get(i)); + } + target.change_date = new Date().getTime(); + return SendRequest(ServerCode.UpdateBugReport, "", target); + } + } return false; } @Override - protected void ServerAction() throws Exception { - //1. прежде чем дополнять поле(комментарий или описание) следует скачать с сервера - //последнюю версию этого баг репорта. - //все это должно быть в рамках одной транзакции с сервером! - Command(new ServerExchangeUnit_2021(ServerCode.GetObjectCopyByPK, "", new Pair<>(BugReport.class, target.id))); - target.SynchronizeFields((BugReport) server_response.object); - for (int i = 0; i < fieldNames.size(); ++i) { - String fieldName = fieldNames.get(i); - switch (fieldName) { - case "comment": - old_comment = (String) BugReport.class.getField(fieldName).get(target); - break; - case "description": - old_description = (String) BugReport.class.getField(fieldName).get(target); - break; - } - BugReport.class.getField(fieldNames.get(i)).set(target, fieldValues.get(i)); - } - target.change_date = new Date().getTime(); - //3. отправляем на сервер - Command(new ServerExchangeUnit_2021(ServerCode.UpdateBugReport, "", target)); - server.db.Update(target); + protected void body() throws Exception { + getServer().db.Update(target); } @Override protected void showFinish() throws Exception { @@ -127,7 +133,7 @@ public class UpdateBugReportField extends ComponentsRepositoryPass { ); Global.mainModule.getPass(PassCode.Email).Do( message, - server.db.subscribers.checkRecipients(target.getRecipients()) + getServer().db.subscribers.checkRecipients(target.getRecipients()) ); } } diff --git a/src/_VisualDVM/Repository/Server/ComponentsServer.java b/src/_VisualDVM/Repository/Server/ComponentsServer.java index 637d71e8..0815bb96 100644 --- a/src/_VisualDVM/Repository/Server/ComponentsServer.java +++ b/src/_VisualDVM/Repository/Server/ComponentsServer.java @@ -11,6 +11,7 @@ import _VisualDVM.GlobalData.RemoteFile.RemoteFile; import _VisualDVM.GlobalData.User.User; import _VisualDVM.Passes.All.ArchivesBackupPass; import _VisualDVM.Passes.All.UnzipFolderPass; +import _VisualDVM.Passes.All.UpdateBugReportField; import _VisualDVM.Passes.All.ZipFolderPass; import _VisualDVM.ProjectData.LanguageName; import _VisualDVM.Repository.BugReport.BugReport; @@ -185,14 +186,14 @@ public class ComponentsServer extends RepositoryServer { if (db.bugReports.containsKey(oldBugReport.id)) { bugReport = db.bugReports.get(oldBugReport.id); bugReport.SynchronizeFields(oldBugReport); - bugReport.change_date = oldBugReport.change_date; + bugReport.change_date = new Date().getTime(); db.Update(bugReport); response = new ServerExchangeUnit_2021(ServerCode.OK); } else throw new RepositoryRefuseException("Баг репорт с ключом " + oldBugReport.id + " не существует."); break; //todo вывести устарело - case UpdateBugReportField: //нужно для дополнений полей + case UpdateBugReportField: //- BugReport oldBugReport_ = (BugReport) request.object; Print("Обновить поле " + request.arg + " баг репорта " + oldBugReport_.id); diff --git a/src/_VisualDVM/Repository/Server/ServerCode.java b/src/_VisualDVM/Repository/Server/ServerCode.java index 3ebbb251..80ebd7fb 100644 --- a/src/_VisualDVM/Repository/Server/ServerCode.java +++ b/src/_VisualDVM/Repository/Server/ServerCode.java @@ -105,6 +105,10 @@ public enum ServerCode { return "Публикация объекта"; case SendBugReport: return "Отправка отчета об ошибке"; + case UpdateBugReportField: + return "Обновить поле отчета об ошибке"; + case AppendBugReportTextField: + return "Дополнить описание или комментария отчета об ошибке"; default: return this.toString(); }