no message

This commit is contained in:
2023-12-05 16:15:12 +03:00
parent 3794b2a330
commit be4985be2d
13 changed files with 126 additions and 17 deletions

12
.idea/workspace.xml generated
View File

@@ -7,9 +7,19 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/SubscriberWorkspacesMenuBar/SubscriberWorkspacesMenuBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Current.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Current.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/UI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/UI.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/SubscriberWorkspace/SubscriberWorkspace.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/SubscriberWorkspace/SubscriberWorkspace.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/SubscriberWorkspace/SubscriberWorkspaceDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/SubscriberWorkspace/SubscriberWorkspaceDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Subscribes/Subscriber.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Subscribes/Subscriber.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Subscribes/SubsribersDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Subscribes/SubsribersDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Subscribes/UI/SubscriberForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Subscribes/UI/SubscriberForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/TestsSupervisor_2022.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/TestsSupervisor_2022.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SSH/ConnectionPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/SSH/ConnectionPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.form" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/CallbackForm.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -18,12 +18,12 @@ import ProjectData.SapforData.Functions.FuncInfo;
import ProjectData.SapforData.Regions.ParallelRegion;
import Repository.BugReport.BugReport;
import Repository.Subscribes.Subscriber;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import TestingSystem.Common.Test.Test;
import TestingSystem.DVM.Configuration.Configuration;
import TestingSystem.DVM.Tasks.TestCompilationTask;
import TestingSystem.DVM.Tasks.TestRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackage;
import TestingSystem.Common.Test.Test;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import Visual_DVM_2021.Passes.UI.PassForm;
import javax.swing.tree.DefaultMutableTreeNode;
@@ -37,7 +37,6 @@ public enum Current {
SapforEtalonVersion,//самый левый пакет
SapforVersion,
//--
//--
ComponentServerBackup,
Subscriber,
@@ -110,7 +109,8 @@ public enum Current {
SapforProfile,
SapforProfileSetting,
//--
ProjectView;
ProjectView,
SubscriberWorkspace;
//-
//---
private static final LinkedHashMap<Current, Object> objects = new LinkedHashMap<>();
@@ -382,11 +382,19 @@ public enum Current {
public static TestingSystem.SAPFOR.ServerSapfor.ServerSapfor getServerSapfor() {
return (TestingSystem.SAPFOR.ServerSapfor.ServerSapfor) get(Current.ServerSapfor);
}
public static boolean HasSubscriberWorkspace() {
return get(Current.SubscriberWorkspace) != null;
}
public static Repository.SubscriberWorkspace.SubscriberWorkspace getSubscriberWorkspace() {
return (Repository.SubscriberWorkspace.SubscriberWorkspace) get(Current.SubscriberWorkspace);
}
//--------------------------------------------
public String getDescription() {
switch (this) {
case ServerSapfor:
return "тестовая версия SAPFOR";
case SubscriberWorkspace:
return "рабочее пространство пользователя";
case SapforTasksPackage:
return "пакет задач SAPFOR";
case SapforProfile:

View File

@@ -0,0 +1,7 @@
package Common.UI.Menus_2023.SubscriberWorkspacesMenuBar;
import Common.UI.Menus_2023.DataMenuBar;
public class SubscriberWorkspacesMenuBar extends DataMenuBar {
public SubscriberWorkspacesMenuBar() {
super("рабочие пространства");
}
}

View File

@@ -21,6 +21,7 @@ import Common.UI.Menus_2023.SapforConfigurationsMenuBar.SapforConfigurationsMenu
import Common.UI.Menus_2023.SapforTasksBar.SapforTasksMenuBar;
import Common.UI.Menus_2023.SapforTasksPackagesBar.SapforTasksPackagesBar;
import Common.UI.Menus_2023.ServerSapforsBar.ServerSapforsBar;
import Common.UI.Menus_2023.SubscriberWorkspacesMenuBar.SubscriberWorkspacesMenuBar;
import Common.UI.Menus_2023.SubscribersMenuBar.SubscribersMenuBar;
import Common.UI.Menus_2023.TasksPackagesMenuBar.TasksPackagesMenuBar;
import Common.UI.Menus_2023.TestRunTasksMenuBar.TestRunTasksMenuBar;
@@ -57,6 +58,7 @@ import GlobalData.Tasks.RunTask.RunTasksDBTable;
import GlobalData.User.UsersDBTable;
import ProjectData.DBArray.ArraysDBTable;
import ProjectData.Files.UI.FilesTreeCellRenderer;
import Repository.SubscriberWorkspace.SubscriberWorkspaceDBTable;
import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforVersionsTreeCellRenderer;
import ProjectData.Project.UI.VersionsTreeCellRenderer;
import ProjectData.SapforData.Arrays.ArraysSet;
@@ -213,6 +215,7 @@ public class UI {
fastAccessMenuBar = new FastAccessMenuBar();
//---------------------------------------------------->>
menuBars.put(BugReportsDBTable.class, new BugReportsMenuBar());
menuBars.put(SubscriberWorkspaceDBTable.class, new SubscriberWorkspacesMenuBar());
//---------------------------------------------------->>
menuBars.put(GroupsDBTable.class, new GroupsMenuBar());
menuBars.put(TestDBTable.class, new TestsMenuBar());

View File

@@ -1,8 +1,17 @@
package Repository.SubscriberWorkspace;
import Common.Current;
import Common.Database.iDBObject;
public class SubscriberWorkspace extends iDBObject {
public String email; //почта
public String URL; //адрес:порт машины
public String login; // имя пользователя
public String path; //рабочая папка на машине
@Override
public boolean isVisible() {
return Current.HasSubscriber()&&
Current.getSubscriber().address.equals(email)&&
(Current.getAccount().isAdmin() || Current.getAccount().email.equals(Current.getSubscriber().address));
}
//-
}

View File

@@ -1,5 +1,7 @@
package Repository.SubscriberWorkspace;
import Common.Current;
import Common.Database.iDBTable;
import Common.UI.DataSetControlForm;
public class SubscriberWorkspaceDBTable extends iDBTable<SubscriberWorkspace> {
public SubscriberWorkspaceDBTable() {
super(SubscriberWorkspace.class);
@@ -7,7 +9,41 @@ public class SubscriberWorkspaceDBTable extends iDBTable<SubscriberWorkspace> {
public SubscriberWorkspace findWorkspace(String email, String machineURL, String login) {
return this.Data.values().stream().filter(subscriberWorkspace ->
subscriberWorkspace.email.equals(email) &&
subscriberWorkspace.URL.equals(machineURL) &&
subscriberWorkspace.login.equals(login)).findFirst().orElse(null);
subscriberWorkspace.URL.equals(machineURL) &&
subscriberWorkspace.login.equals(login)).findFirst().orElse(null);
}
//--
@Override
public String getSingleDescription() {
return "рабочая папка";
}
@Override
public String getPluralDescription() {
return "рабочие папки";
}
@Override
public Current CurrentName() {
return Current.SubscriberWorkspace;
}
//-
@Override
public String[] getUIColumnNames() {
return new String[]{"URL", "пользователь", "папка"};
}
@Override
protected DataSetControlForm createUI() {
return new DataSetControlForm(this);
}
@Override
public Object getFieldAt(SubscriberWorkspace object, int columnIndex) {
switch (columnIndex) {
case 1:
return object.URL;
case 2:
return object.login;
case 3:
return object.path;
}
return null;
}
}

View File

@@ -29,4 +29,11 @@ public class Subscriber extends DBObject {
role = s.role;
mailOn= s.mailOn;
}
//как объект будут называть по внешним ключам.
public String getFKName() {
return "email";
}
public Object getEmptyFK() {
return "";
}
}

View File

@@ -1,11 +1,14 @@
package Repository.Subscribes;
import Common.Current;
import Common.Database.DBTable;
import Common.Database.*;
import Common.UI.DataSetControlForm;
import Common.UI.Windows.Dialog.DBObjectDialog;
import GlobalData.Account.AccountRole;
import Repository.SubscriberWorkspace.SubscriberWorkspace;
import Repository.Subscribes.UI.SubscriberFields;
import Repository.Subscribes.UI.SubscriberForm;
import java.util.LinkedHashMap;
public class SubsribersDBTable extends DBTable<String, Subscriber> {
public SubsribersDBTable() {
super(String.class, Subscriber.class);
@@ -55,4 +58,11 @@ public class SubsribersDBTable extends DBTable<String, Subscriber> {
public DBObjectDialog<Subscriber, SubscriberFields> getDialog() {
return new SubscriberForm();
}
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
//-
res.put(SubscriberWorkspace.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.PASSIVE));
return res;
}
}

View File

@@ -27,9 +27,6 @@ public class SubscriberForm extends DBObjectDialog<Subscriber, SubscriberFields>
if (!title_text.equals("Регистрация") && (fields.tfAddress.isEditable() && Global.componentsServer.db.subscribers.Data.containsKey(fields.tfAddress.getText()))) {
Log.Writeln_("Адрес электронной почты " + Utils.Brackets(fields.tfAddress.getText()) + " уже есть в списке.");
}
if (Result.role.equals(AccountRole.Admin) && !getSelectedRole().equals(AccountRole.Admin)) {
Log.Writeln_("Администратор не может разжаловать сам себя.");
}
}
@Override
public void fillFields() {

View File

@@ -162,7 +162,6 @@ public class TestsSupervisor_2022 {
}
public void DownloadResults() throws Exception {
Utils.CheckDirectory(packageLocalWorkspace);
RemoteFile remote_results = new RemoteFile(packageRemoteWorkspace, "results");
RemoteFile remote_results_archive = new RemoteFile(packageRemoteWorkspace, "results.zip");
File results_archive = new File(packageLocalWorkspace, "results.zip");
connection.performScript(packageRemoteWorkspace, "zip -r " + Utils.DQuotes("results.zip") + " " + Utils.DQuotes("results"));

View File

@@ -391,7 +391,7 @@ public abstract class ConnectionPass<T> extends Pass_2021<T> {
return new Pair<>(out, err);
}
//--
//--
//--сам себя
public boolean Exists(String file_full_name) throws Exception {
try {
sftpChannel.stat(file_full_name);

View File

@@ -410,12 +410,32 @@
</properties>
<border type="none"/>
<children>
<grid id="acf24" binding="subscribersPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<splitpane id="14cc5" binding="SC67">
<constraints border-constraint="Center"/>
<properties/>
<properties>
<dividerLocation value="400"/>
<dividerSize value="3"/>
</properties>
<border type="none"/>
<children/>
</grid>
<children>
<grid id="d6557" binding="subscribersPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints>
<splitpane position="left"/>
</constraints>
<properties/>
<border type="none"/>
<children/>
</grid>
<grid id="73357" binding="workspacesPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints>
<splitpane position="right"/>
</constraints>
<properties/>
<border type="none"/>
<children/>
</grid>
</children>
</splitpane>
</children>
</grid>
</children>

View File

@@ -119,6 +119,8 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
private JTextField BugReportsVersionFilter;
private JTextField BugReportsExecutorFilter;
private JTextField BugReportsCommentFilter;
public JSplitPane SC67;
private JPanel workspacesPanel;
private Viewer BugReportSettings;
public void LockMyOnly() {
if (!BugReportsMyOnlyFilter.isSelected()) {
@@ -162,6 +164,7 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
//-
Global.componentsServer.db.bugReports.mountUI(bugReportsPanel);
Global.componentsServer.db.subscribers.mountUI(subscribersPanel);
Global.componentsServer.db.workspaces.mountUI(workspacesPanel);
settingsTools.add(Pass_2021.passes.get(PassCode_2021.ApplyBugReportSettings).createButton());
//-
if (!Pass_2021.passes.get(PassCode_2021.CheckAccount).isDone()) {