From 6ffc699fb14863ae8f8baeb90706fd12befbe502 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 7 Mar 2022 15:51:27 +0100 Subject: [PATCH] Zooflow: Add Active Directory User Import --- GUIs.Common/GridBuilder.vb | 4 +- .../Administration/ClassDetailPage.vb | 75 ++++- .../Administration/Globix/frmAdmin_Globix.vb | 22 +- GUIs.ZooFlow/Administration/IAdminForm.vb | 15 + .../Users/frmAdmin_ImportUser.Designer.vb | 302 ++++++++++++++++++ .../Users/frmAdmin_ImportUser.resx | 120 +++++++ .../Users/frmAdmin_ImportUser.vb | 231 ++++++++++++++ .../Users/frmAdmin_User.Designer.vb | 266 +++++++-------- .../Administration/Users/frmAdmin_User.vb | 86 +++-- .../Users/frmWaitForm.Designer.vb | 83 +++++ .../Administration/Users/frmWaitForm.resx | 120 +++++++ .../Administration/Users/frmWaitForm.vb | 24 ++ .../frmAdmin_ClipboardWatcher.vb | 12 +- .../Administration/frmAdmin_SourceSQL.vb | 6 +- .../Administration/frmAdmin_Start.Designer.vb | 16 +- GUIs.ZooFlow/Administration/frmAdmin_Start.vb | 5 + GUIs.ZooFlow/ClassConstants.vb | 1 + GUIs.ZooFlow/My Project/Resources.Designer.vb | 50 +++ GUIs.ZooFlow/My Project/Resources.resx | 147 +++++---- GUIs.ZooFlow/Resources/actions_send1.svg | 15 + GUIs.ZooFlow/Resources/actions_send2.svg | 15 + GUIs.ZooFlow/Resources/open2.svg | 13 + GUIs.ZooFlow/Resources/text.svg | 7 + GUIs.ZooFlow/Resources/text1.svg | 7 + GUIs.ZooFlow/ZooFlow.vbproj | 28 ++ GUIs.ZooFlow/frmConfigBasic.Designer.vb | 67 ++-- GUIs.ZooFlow/frmConfigBasic.vb | 83 ++--- .../ActiveDirectoryInterface.vb | 7 + .../ActiveDirectoryGroup.vb | 16 +- .../ActiveDirectoryUser.vb | 15 +- 30 files changed, 1512 insertions(+), 346 deletions(-) create mode 100644 GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.Designer.vb create mode 100644 GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.resx create mode 100644 GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.vb create mode 100644 GUIs.ZooFlow/Administration/Users/frmWaitForm.Designer.vb create mode 100644 GUIs.ZooFlow/Administration/Users/frmWaitForm.resx create mode 100644 GUIs.ZooFlow/Administration/Users/frmWaitForm.vb create mode 100644 GUIs.ZooFlow/Resources/actions_send1.svg create mode 100644 GUIs.ZooFlow/Resources/actions_send2.svg create mode 100644 GUIs.ZooFlow/Resources/open2.svg create mode 100644 GUIs.ZooFlow/Resources/text.svg create mode 100644 GUIs.ZooFlow/Resources/text1.svg diff --git a/GUIs.Common/GridBuilder.vb b/GUIs.Common/GridBuilder.vb index 0ea7dd2c..d62bc6cd 100644 --- a/GUIs.Common/GridBuilder.vb +++ b/GUIs.Common/GridBuilder.vb @@ -8,8 +8,8 @@ Public Class GridBuilder Public ReadOnly Property Views As New List(Of GridView) - Public Sub New(GridView As GridView) - Views.Add(GridView) + Public Sub New(ParamArray GridViews As GridView()) + Views.AddRange(GridViews) End Sub Public Sub New(GridViews As List(Of GridView)) diff --git a/GUIs.ZooFlow/Administration/ClassDetailPage.vb b/GUIs.ZooFlow/Administration/ClassDetailPage.vb index 0b69f017..c3e8cf54 100644 --- a/GUIs.ZooFlow/Administration/ClassDetailPage.vb +++ b/GUIs.ZooFlow/Administration/ClassDetailPage.vb @@ -9,7 +9,7 @@ Imports DigitalData.Modules.Logging ''' ''' ''' -Public Class ClassDetailPages +Public Class ClassDetailPageManager Private ReadOnly LogConfig As LogConfig Private ReadOnly Logger As Logger Private ReadOnly HostForm As IAdminForm @@ -38,18 +38,50 @@ Public Class ClassDetailPages Public Property Page As DetailPage End Class + ''' + ''' An object representing a section of a form to edit an entity, ex. a user + ''' + ''' A Page to edit would be called the user page. Public Class DetailPage + ''' + ''' Is this the primary entity to be edited in this form? + ''' Public Property IsPrimary As Boolean = False + + ''' + ''' Is this an insert of a new object? + ''' + ''' Public Property IsInsert As Boolean = False - Public Property TabPage As XtraTabPage + + ''' + ''' The tab page containing the page. This can be left empty + ''' + Public Property TabPage As XtraTabPage = Nothing + + ''' + ''' The Name of the Page which the user will see + ''' Public Property Name As String - + + ''' + ''' The Binding Source for the Page + ''' Public Property BindingSource As BindingSource - + + ''' + ''' The Bound Datatable in the Dataset (eg. MyDataset.TB_FOO_TABLE) + ''' Public Property DataTable As DataTable - + + ''' + ''' The TextEdit Control containing the AddedWho value + ''' Public Property AddedWhoEdit As TextEdit - + + ''' + ''' The TextEdit Control containing the ChangedWhoEdit value + ''' Public Property ChangedWhoEdit As TextEdit End Class @@ -83,20 +115,43 @@ Public Class ClassDetailPages AddHandler oLayoutControl.Click, AddressOf Handle_Focus AddHandler oLayoutControl.GotFocus, AddressOf Handle_Focus - For Each oContainer As LayoutControlItem In oLayoutControl.Root.Items - If TypeOf oContainer Is EmptySpaceItem Then + For Each oContainer As BaseLayoutItem In oLayoutControl.Root.Items + Dim oItem As LayoutControlItem + + If TypeOf oContainer IsNot LayoutControlItem Then + Continue For + End If + + oItem = oContainer + + If TypeOf oItem Is EmptySpaceItem Then Continue For End If - If TypeOf oContainer.Control IsNot BaseEdit Then + If TypeOf oItem.Control IsNot BaseEdit Then Continue For End If - Dim oControl As BaseEdit = oContainer.Control + Dim oControl As BaseEdit = oItem.Control AddHandler oControl.GotFocus, AddressOf Handle_Focus AddHandler oControl.EditValueChanged, AddressOf Handle_EditValueChanged AddHandler oControl.Validating, AddressOf Handle_Validating Next + + 'For Each oContainer As LayoutControlItem In oLayoutControl.Root.Items + ' If TypeOf oContainer Is EmptySpaceItem Then + ' Continue For + ' End If + + ' If TypeOf oContainer.Control IsNot BaseEdit Then + ' Continue For + ' End If + + ' Dim oControl As BaseEdit = oContainer.Control + ' AddHandler oControl.GotFocus, AddressOf Handle_Focus + ' AddHandler oControl.EditValueChanged, AddressOf Handle_EditValueChanged + ' AddHandler oControl.Validating, AddressOf Handle_Validating + 'Next Next End Sub diff --git a/GUIs.ZooFlow/Administration/Globix/frmAdmin_Globix.vb b/GUIs.ZooFlow/Administration/Globix/frmAdmin_Globix.vb index d449bcf5..5197fdc9 100644 --- a/GUIs.ZooFlow/Administration/Globix/frmAdmin_Globix.vb +++ b/GUIs.ZooFlow/Administration/Globix/frmAdmin_Globix.vb @@ -9,7 +9,7 @@ Public Class frmAdmin_Globix Public Property PrimaryKey As Integer Implements IAdminForm.PrimaryKey Public Property GlobixHelper As ClassGIDatatables - Private Pages As ClassDetailPages + Private Pages As ClassDetailPageManager Public Sub New(PrimaryKey As Integer, Optional IsInsert As Boolean = False) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() @@ -44,9 +44,9 @@ Public Class frmAdmin_Globix ' Add Focus Handler to all controls in all LayoutControls Dim oLayoutControls = New List(Of LayoutControl) From {LayoutControlProfile, LayoutControlManIndexe, LayoutControlAutoIndexe, LayoutControlRework} - Pages = New ClassDetailPages(My.LogConfig, Me, oLayoutControls) + Pages = New ClassDetailPageManager(My.LogConfig, Me, oLayoutControls) Pages.AddRange({ - New ClassDetailPages.PrimaryPage(IsInsert) With { + New ClassDetailPageManager.PrimaryPage(IsInsert) With { .Name = "Profile Globix", .TabPage = XtraTabPageProfile, .BindingSource = TBDD_DOKUMENTARTBindingSource, @@ -54,7 +54,7 @@ Public Class frmAdmin_Globix .AddedWhoEdit = TextEditErstelltWer, .ChangedWhoEdit = TextEditGeandertWer }, - New ClassDetailPages.DetailPage With { + New ClassDetailPageManager.DetailPage With { .Name = "Manual Attributes", .TabPage = XtraTabPageManIndexe, .BindingSource = TBDD_INDEX_MANBindingSource, @@ -62,7 +62,7 @@ Public Class frmAdmin_Globix .AddedWhoEdit = TextEditAddedWho_ManIndex, .ChangedWhoEdit = TextEditChangedWho_ManIndex }, - New ClassDetailPages.DetailPage With { + New ClassDetailPageManager.DetailPage With { .Name = "Auto Attributes", .TabPage = XtraTabPageAutoIndexe, .BindingSource = TBDD_INDEX_AUTOMBindingSource, @@ -70,7 +70,7 @@ Public Class frmAdmin_Globix .AddedWhoEdit = ADDED_WHOTextBoxAutoAttribut, .ChangedWhoEdit = CHANGED_WHOTextEditAutoAttribut }, - New ClassDetailPages.DetailPage With { + New ClassDetailPageManager.DetailPage With { .Name = "Auto Attributes", .TabPage = XtraTabPageAutoSelect, .BindingSource = TBGI_REGEX_DOCTYPEBindingSource, @@ -78,7 +78,7 @@ Public Class frmAdmin_Globix .AddedWhoEdit = AddedWhoAutoSelect, .ChangedWhoEdit = ChangedWhoAutoSelect }, - New ClassDetailPages.DetailPage With { + New ClassDetailPageManager.DetailPage With { .Name = "Dynamic Folder", .TabPage = XtraTabPageDynamicFolder, .BindingSource = TBDD_DOKUMENTARTBindingSource, @@ -116,7 +116,7 @@ Public Class frmAdmin_Globix MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in Load IndexeManuell: ") End Try End Sub - Private Sub CurrentPage_Changed(sender As Object, e As ClassDetailPages.DetailPageEventArgs) + Private Sub CurrentPage_Changed(sender As Object, e As ClassDetailPageManager.DetailPageEventArgs) If Not IsNothing(e.Page) Then If e.Page.IsPrimary = True Then BarButtonNew.Enabled = False @@ -187,7 +187,7 @@ Public Class frmAdmin_Globix ' ShowStatus("Keine Änderungen!") 'End If End Sub - Private Function Save_manIndexe(oPage As ClassDetailPages.DetailPage) As Boolean + Private Function Save_manIndexe(oPage As ClassDetailPageManager.DetailPage) As Boolean Try TBDD_INDEX_MANBindingSource.EndEdit() If GlobixDataset.TBDD_INDEX_MAN.GetChanges() IsNot Nothing Then @@ -204,7 +204,7 @@ Public Class frmAdmin_Globix Return False End Try End Function - Private Function Save_AutoIndexe(oPage As ClassDetailPages.DetailPage) As Boolean + Private Function Save_AutoIndexe(oPage As ClassDetailPageManager.DetailPage) As Boolean Try TBDD_INDEX_AUTOMBindingSource.EndEdit() If GlobixDataset.TBDD_INDEX_AUTOM.GetChanges() IsNot Nothing Then @@ -221,7 +221,7 @@ Public Class frmAdmin_Globix Return False End Try End Function - Private Function Save_AutoSelect(oPage As ClassDetailPages.DetailPage) As Boolean + Private Function Save_AutoSelect(oPage As ClassDetailPageManager.DetailPage) As Boolean Try TBGI_REGEX_DOCTYPEBindingSource.EndEdit() If GlobixDataset.TBGI_REGEX_DOCTYPE.GetChanges() IsNot Nothing Then diff --git a/GUIs.ZooFlow/Administration/IAdminForm.vb b/GUIs.ZooFlow/Administration/IAdminForm.vb index e3eca4d6..3348b252 100644 --- a/GUIs.ZooFlow/Administration/IAdminForm.vb +++ b/GUIs.ZooFlow/Administration/IAdminForm.vb @@ -1,7 +1,22 @@ Public Interface IAdminForm + ''' + ''' Used to deliver the primary key for loading an existing entity. + ''' Property PrimaryKey As Integer + + ''' + ''' Did the user change one or more properties in this form? + ''' Property HasChanges As Boolean + + ''' + ''' Is the user creating a new object or editing an existing one? + ''' + ''' Property IsInsert As Boolean + ''' + ''' Function to delete the currently openened object + ''' Function DeleteData() As Boolean End Interface diff --git a/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.Designer.vb b/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.Designer.vb new file mode 100644 index 00000000..7acbc68e --- /dev/null +++ b/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.Designer.vb @@ -0,0 +1,302 @@ + +Partial Class frmAdmin_ImportUser + Inherits DevExpress.XtraBars.Ribbon.RibbonForm + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() + Me.btnImportUsers = New DevExpress.XtraBars.BarButtonItem() + Me.btnImportGroups = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem() + Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() + Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() + Me.gridGroupList = New DevExpress.XtraGrid.GridControl() + Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.colName = New DevExpress.XtraGrid.Columns.GridColumn() + Me.colCount = New DevExpress.XtraGrid.Columns.GridColumn() + Me.gridUserList = New DevExpress.XtraGrid.GridControl() + Me.GridView2 = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.GridColumn1 = New DevExpress.XtraGrid.Columns.GridColumn() + Me.GridColumn2 = New DevExpress.XtraGrid.Columns.GridColumn() + Me.GridColumn3 = New DevExpress.XtraGrid.Columns.GridColumn() + Me.GridColumn4 = New DevExpress.XtraGrid.Columns.GridColumn() + Me.SplashScreenManager1 = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, GetType(Global.DigitalData.GUIs.ZooFlow.frmWaitForm), True, True) + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerControl1.Panel1.SuspendLayout() + CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerControl1.Panel2.SuspendLayout() + Me.SplitContainerControl1.SuspendLayout() + CType(Me.gridGroupList, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.gridUserList, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridView2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'RibbonControl1 + ' + Me.RibbonControl1.ExpandCollapseItem.Id = 0 + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.btnImportUsers, Me.btnImportGroups, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3}) + Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) + Me.RibbonControl1.MaxItemId = 7 + Me.RibbonControl1.Name = "RibbonControl1" + Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) + Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] + Me.RibbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Hide + Me.RibbonControl1.ShowToolbarCustomizeItem = False + Me.RibbonControl1.Size = New System.Drawing.Size(1012, 132) + Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 + Me.RibbonControl1.Toolbar.ShowCustomizeItem = False + ' + 'btnImportUsers + ' + Me.btnImportUsers.Caption = "Benutzer Importieren" + Me.btnImportUsers.Id = 1 + Me.btnImportUsers.Name = "btnImportUsers" + ' + 'btnImportGroups + ' + Me.btnImportGroups.Caption = "Gruppen Importieren" + Me.btnImportGroups.Id = 2 + Me.btnImportGroups.Name = "btnImportGroups" + ' + 'BarButtonItem1 + ' + Me.BarButtonItem1.Caption = "Import von ausgewählten Benutzern Starten" + Me.BarButtonItem1.Id = 3 + Me.BarButtonItem1.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.actions_send1 + Me.BarButtonItem1.Name = "BarButtonItem1" + ' + 'BarButtonItem2 + ' + Me.BarButtonItem2.Caption = "Import von ausgewählten Gruppen starten" + Me.BarButtonItem2.Id = 4 + Me.BarButtonItem2.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.actions_send2 + Me.BarButtonItem2.Name = "BarButtonItem2" + ' + 'BarButtonItem3 + ' + Me.BarButtonItem3.Caption = "Gruppen laden" + Me.BarButtonItem3.Id = 5 + Me.BarButtonItem3.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.actions_check1 + Me.BarButtonItem3.Name = "BarButtonItem3" + ' + 'RibbonPage1 + ' + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) + Me.RibbonPage1.Name = "RibbonPage1" + Me.RibbonPage1.Text = "RibbonPage1" + ' + 'RibbonPageGroup1 + ' + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem3) + Me.RibbonPageGroup1.Name = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "Daten laden" + ' + 'RibbonPageGroup2 + ' + Me.RibbonPageGroup2.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far + Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem1) + Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2) + Me.RibbonPageGroup2.Name = "RibbonPageGroup2" + Me.RibbonPageGroup2.Text = "Import" + ' + 'RibbonStatusBar1 + ' + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 525) + Me.RibbonStatusBar1.Name = "RibbonStatusBar1" + Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 + Me.RibbonStatusBar1.Size = New System.Drawing.Size(1012, 24) + ' + 'RibbonPage2 + ' + Me.RibbonPage2.Name = "RibbonPage2" + Me.RibbonPage2.Text = "RibbonPage2" + ' + 'SplitContainerControl1 + ' + Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 132) + Me.SplitContainerControl1.Name = "SplitContainerControl1" + ' + 'SplitContainerControl1.Panel1 + ' + Me.SplitContainerControl1.Panel1.Controls.Add(Me.gridGroupList) + Me.SplitContainerControl1.Panel1.Text = "Panel1" + ' + 'SplitContainerControl1.Panel2 + ' + Me.SplitContainerControl1.Panel2.Controls.Add(Me.gridUserList) + Me.SplitContainerControl1.Panel2.Text = "Panel2" + Me.SplitContainerControl1.Size = New System.Drawing.Size(1012, 393) + Me.SplitContainerControl1.SplitterPosition = 263 + Me.SplitContainerControl1.TabIndex = 2 + ' + 'gridGroupList + ' + Me.gridGroupList.Dock = System.Windows.Forms.DockStyle.Fill + Me.gridGroupList.Location = New System.Drawing.Point(0, 0) + Me.gridGroupList.MainView = Me.GridView1 + Me.gridGroupList.MenuManager = Me.RibbonControl1 + Me.gridGroupList.Name = "gridGroupList" + Me.gridGroupList.Size = New System.Drawing.Size(263, 393) + Me.gridGroupList.TabIndex = 0 + Me.gridGroupList.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1}) + ' + 'GridView1 + ' + Me.GridView1.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colName, Me.colCount}) + Me.GridView1.GridControl = Me.gridGroupList + Me.GridView1.Name = "GridView1" + Me.GridView1.OptionsView.ShowAutoFilterRow = True + ' + 'colName + ' + Me.colName.Caption = "Name" + Me.colName.FieldName = "Name" + Me.colName.Name = "colName" + Me.colName.Visible = True + Me.colName.VisibleIndex = 0 + ' + 'colCount + ' + Me.colCount.Caption = "Benutzer" + Me.colCount.FieldName = "Count" + Me.colCount.Name = "colCount" + Me.colCount.Visible = True + Me.colCount.VisibleIndex = 1 + ' + 'gridUserList + ' + Me.gridUserList.Dock = System.Windows.Forms.DockStyle.Fill + Me.gridUserList.Location = New System.Drawing.Point(0, 0) + Me.gridUserList.MainView = Me.GridView2 + Me.gridUserList.MenuManager = Me.RibbonControl1 + Me.gridUserList.Name = "gridUserList" + Me.gridUserList.Size = New System.Drawing.Size(739, 393) + Me.gridUserList.TabIndex = 0 + Me.gridUserList.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView2}) + ' + 'GridView2 + ' + Me.GridView2.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.GridColumn1, Me.GridColumn2, Me.GridColumn3, Me.GridColumn4}) + Me.GridView2.GridControl = Me.gridUserList + Me.GridView2.Name = "GridView2" + Me.GridView2.OptionsSelection.MultiSelect = True + Me.GridView2.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect + Me.GridView2.OptionsView.ShowAutoFilterRow = True + ' + 'GridColumn1 + ' + Me.GridColumn1.Caption = "Benutzername" + Me.GridColumn1.FieldName = "samAccountName" + Me.GridColumn1.Name = "GridColumn1" + Me.GridColumn1.Visible = True + Me.GridColumn1.VisibleIndex = 1 + ' + 'GridColumn2 + ' + Me.GridColumn2.Caption = "Vorname" + Me.GridColumn2.FieldName = "Surname" + Me.GridColumn2.Name = "GridColumn2" + Me.GridColumn2.Visible = True + Me.GridColumn2.VisibleIndex = 2 + ' + 'GridColumn3 + ' + Me.GridColumn3.Caption = "Nachname" + Me.GridColumn3.FieldName = "GivenName" + Me.GridColumn3.Name = "GridColumn3" + Me.GridColumn3.Visible = True + Me.GridColumn3.VisibleIndex = 3 + ' + 'GridColumn4 + ' + Me.GridColumn4.Caption = "Email" + Me.GridColumn4.FieldName = "Email" + Me.GridColumn4.Name = "GridColumn4" + Me.GridColumn4.Visible = True + Me.GridColumn4.VisibleIndex = 4 + ' + 'SplashScreenManager1 + ' + Me.SplashScreenManager1.ClosingDelay = 500 + ' + 'frmAdmin_ImportUser + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1012, 549) + Me.Controls.Add(Me.SplitContainerControl1) + Me.Controls.Add(Me.RibbonStatusBar1) + Me.Controls.Add(Me.RibbonControl1) + Me.IconOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.text + Me.Name = "frmAdmin_ImportUser" + Me.Ribbon = Me.RibbonControl1 + Me.StatusBar = Me.RibbonStatusBar1 + Me.Text = "Active Directory Import" + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerControl1.Panel1.ResumeLayout(False) + CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerControl1.Panel2.ResumeLayout(False) + CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerControl1.ResumeLayout(False) + CType(Me.gridGroupList, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.gridUserList, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridView2, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl + Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage + Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar + Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage + Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl + Friend WithEvents gridGroupList As DevExpress.XtraGrid.GridControl + Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents gridUserList As DevExpress.XtraGrid.GridControl + Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents btnImportUsers As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnImportGroups As DevExpress.XtraBars.BarButtonItem + Friend WithEvents colName As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents GridColumn1 As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents GridColumn2 As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents GridColumn3 As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents GridColumn4 As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents colCount As DevExpress.XtraGrid.Columns.GridColumn + Friend WithEvents SplashScreenManager1 As DevExpress.XtraSplashScreen.SplashScreenManager + Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup +End Class diff --git a/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.resx b/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.vb b/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.vb new file mode 100644 index 00000000..2aba2ce5 --- /dev/null +++ b/GUIs.ZooFlow/Administration/Users/frmAdmin_ImportUser.vb @@ -0,0 +1,231 @@ +Imports DevExpress.XtraSplashScreen +Imports DigitalData.Modules.Interfaces +Imports DigitalData.Modules.Logging +Imports DigitalData.GUIs.Common +Imports DevExpress.XtraGrid.Views.Grid + +Public Class frmAdmin_ImportUser + Private ReadOnly Logger As Logger = My.LogConfig.GetLogger + Private ActiveDirectory As ActiveDirectoryInterface + + Private Sub frmAdmin_ImportUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load + ActiveDirectory = New ActiveDirectoryInterface(My.LogConfig, Nothing) + + Dim oGridManager = New GridBuilder(GridView1, GridView2) + oGridManager. + WithDefaults(). + WithReadOnlyOptions(). + WithClipboardHandler() + End Sub + + Private Async Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick + SplashScreenManager1.ShowWaitForm() + SplashScreenManager1.SetWaitFormCaption("Loading Groups") + + Try + Dim oGroups As List(Of ADGroup) = Await ActiveDirectory.ListGroupsAsync() + Dim oGroupList As New List(Of GroupListing) + + For Each oGroup As ADGroup In oGroups + Try + SplashScreenManager1.SetWaitFormDescription(oGroup.SAMAccountName) + + Dim oUsers As List(Of ADUser) = Await ActiveDirectory.ListUsersAsync(oGroup.Name) + Dim oListing As New GroupListing(oGroup) With { + .Count = oUsers.Count, + .Users = oUsers + } + + If oUsers.Count > 0 Then + oGroupList.Add(oListing) + End If + + Catch ex As Exception + Logger.Error(ex) + End Try + Next + + gridGroupList.ForceInitialize() + gridGroupList.DataSource = oGroupList + + Catch ex As Exception + Logger.Error(ex) + Finally + SplashScreenManager1.CloseWaitForm() + End Try + End Sub + + Private Sub btnImportUsers_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnImportUsers.ItemClick + Dim oForm As New frmAdmin_ImportUser() + oForm.ShowDialog() + End Sub + + Private Sub GridView1_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles GridView1.FocusedRowChanged + Dim oGroup As GroupListing = GridView1.GetRow(e.FocusedRowHandle) + + If Not IsNothing(oGroup) Then + Try + gridUserList.DataSource = oGroup.Users + + Catch ex As Exception + Logger.Error(ex) + End Try + End If + End Sub + + Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick + Dim oSelected = GridView2.GetSelectedRows() + Dim oDialogResult = MsgBox($"Wollen Sie die ausgewählten [{oSelected.Count}] Benutzer importieren?", + MsgBoxStyle.Question Or MsgBoxStyle.YesNo, + "Import von Benutzern") + + If DialogResult.No = oDialogResult Then + Exit Sub + End If + + Dim oImported = 0 + Dim oSkipped = 0 + + Try + For Each oHandle In oSelected + Dim oRow As ADUser = GridView2.GetRow(oHandle) + + If Not UserExists(oRow.samAccountName) Then + If InsertUser(oRow.samAccountName, oRow.Surname, oRow.GivenName, oRow.Email) Then + oImported += 1 + Else + Logger.Warn("User [{0}] could not be imported!", oRow.samAccountName) + End If + Else + oSkipped += 1 + End If + Next + + If oImported = 0 Then + Logger.Warn("No new users imported. All selected users are already in database.") + MsgBox($"Es wurden keine neuen Benutzer importiert, da alle ausgewählten Benutzer bereits in der Benutzerverwaltung vorhanden sind.", MsgBoxStyle.Exclamation, "UserManager") + Else + Logger.Info($"Import successful!{vbNewLine}{vbNewLine}{oImported} users imported{vbNewLine}{oSkipped} users skipped") + MsgBox($"{oImported} Benutzer wurden erfolgreich importiert!", MsgBoxStyle.Information, Text) + End If + Catch ex As Exception + Logger.Error(ex, "Error while importing users") + MsgBox($"Error while importing users: {ex.Message}", MsgBoxStyle.Critical) + End Try + End Sub + + Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick + Dim oSelected = GridView1.GetSelectedRows() + Dim oMessage = $"Wollen Sie die ausgewählten [{oSelected.Count}] Gruppen importieren? Achtung: Es werden NUR die GRUPPEN importiert, nicht die enthaltenen Benutzer!" + Dim oDialogResult = MsgBox(oMessage, + MsgBoxStyle.Question Or MsgBoxStyle.YesNo, + "Import von Gruppen") + + If DialogResult.No = oDialogResult Then + Exit Sub + End If + + Dim oImported = 0 + Dim oSkipped = 0 + + Try + For Each oHandle In oSelected + Dim oRow As ADGroup = GridView2.GetRow(oHandle) + + If Not GroupExists(oRow.SAMAccountName) Then + If InsertGroup(oRow.SAMAccountName) Then + oImported += 1 + Else + Logger.Warn("Group [{0}] could not be imported!", oRow.SAMAccountName) + End If + Else + oSkipped += 1 + End If + Next + + If oImported = 0 Then + Logger.Warn("No new groups imported. All selected groups are already in database.") + MsgBox($"Es wurden keine neuen Gruppen importiert, da alle ausgewählten Gruppen bereits in der Gruppenverwaltung vorhanden sind.", MsgBoxStyle.Exclamation, "UserManager") + Else + Logger.Info($"Import successful!{vbNewLine}{vbNewLine}{oImported} groups imported{vbNewLine}{oSkipped} groups skipped") + MsgBox($"{oImported} Gruppen wurden erfolgreich importiert!", MsgBoxStyle.Information, Text) + End If + Catch ex As Exception + Logger.Error(ex, "Error while importing users") + MsgBox($"Error while importing users: {ex.Message}", MsgBoxStyle.Critical) + End Try + End Sub + + Public Function GroupExists(groupName As String) As Boolean + Try + Dim oSql As String = $"SELECT COUNT(GUID) FROM TBDD_GROUPS WHERE NAME = '{groupName}'" + Dim oResult = My.DatabaseECM.GetScalarValue(oSql) + + Return Convert.ToBoolean(oResult) + Catch ex As Exception + Logger.Error($"Error in GroupExists: {ex.Message}") + Return Nothing + End Try + End Function + + Public Function UserExists(userName As String) As Boolean + Try + Dim oSql As String = $"SELECT COUNT(GUID) FROM TBDD_USER WHERE USERNAME = '{userName}'" + Dim oResult = My.DatabaseECM.GetScalarValue(oSql) + + Return Convert.ToBoolean(oResult) + Catch ex As Exception + Logger.Error($"Error in UserExists: {ex.Message}") + Return Nothing + End Try + End Function + + Public Function InsertUser(username As String, prename As String, name As String, email As String) + Try + Dim oAddedWho As String = Environment.UserName + Dim oSql As String = $"INSERT INTO TBDD_USER (PRENAME, NAME, USERNAME, EMAIL, ADDED_WHO) + VALUES ('{prename}','{name}','{username}','{email}','{oAddedWho}')" + Dim oResult = My.DatabaseECM.ExecuteNonQuery(oSql) + + Return True + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Public Function InsertGroup(name As String, Optional ECM_FK_ID As Integer = 1, Optional adSync As Boolean = True, Optional internal As Boolean = False, Optional active As Boolean = True) + Try + Dim addedWho As String = Environment.UserName + Dim sql As String = $"INSERT INTO TBDD_GROUPS (NAME, ADDED_WHO, ECM_FK_ID, AD_SYNC, INTERNAL, ACTIVE) + VALUES ('{name}', '{addedWho}', {ECM_FK_ID}, + {Convert.ToInt32(adSync)}, + {Convert.ToInt32(internal)}, + {Convert.ToInt32(active)})" + Dim oResult = My.DatabaseECM.ExecuteNonQuery(sql) + + Return True + Catch ex As Exception + Logger.Error(ex) + Return False + End Try + End Function + + Private Class GroupListing + Public Group As ADGroup + Public Users As List(Of ADUser) + Public Property Count As Integer + Public ReadOnly Property Name As String + Get + Return Group?.Name + End Get + End Property + + Public Sub New(pGroup As ADGroup) + Group = pGroup + Count = 0 + End Sub + End Class + + +End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/Administration/Users/frmAdmin_User.Designer.vb b/GUIs.ZooFlow/Administration/Users/frmAdmin_User.Designer.vb index 310384f4..c64eecce 100644 --- a/GUIs.ZooFlow/Administration/Users/frmAdmin_User.Designer.vb +++ b/GUIs.ZooFlow/Administration/Users/frmAdmin_User.Designer.vb @@ -1,9 +1,9 @@ - _ + Partial Class frmAdmin_User Inherits DevExpress.XtraBars.Ribbon.RibbonForm 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then @@ -20,13 +20,13 @@ Partial Class frmAdmin_User 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ + Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() - Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem() + Me.txtStatus = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() @@ -44,23 +44,23 @@ Partial Class frmAdmin_User Me.TextEdit6 = New DevExpress.XtraEditors.TextEdit() Me.TextEdit7 = New DevExpress.XtraEditors.TextEdit() Me.TextEdit8 = New DevExpress.XtraEditors.TextEdit() + Me.txtAddedWho = New DevExpress.XtraEditors.TextEdit() + Me.txtChangedWho = New DevExpress.XtraEditors.TextEdit() + Me.TextEdit61 = New DevExpress.XtraEditors.TextEdit() + Me.TextEdit81 = New DevExpress.XtraEditors.TextEdit() Me.Root = New DevExpress.XtraLayout.LayoutControlGroup() Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() - Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() - Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem() - Me.LayoutControlItem8 = New DevExpress.XtraLayout.LayoutControlItem() - Me.TextEdit61 = New DevExpress.XtraEditors.TextEdit() - Me.txtAddedWho = New DevExpress.XtraEditors.TextEdit() - Me.txtChangedWho = New DevExpress.XtraEditors.TextEdit() - Me.TextEdit81 = New DevExpress.XtraEditors.TextEdit() Me.LayoutControlItem9 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem10 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem11 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem12 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem8 = New DevExpress.XtraLayout.LayoutControlItem() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DSDD_Stammdaten, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TBDD_USERBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() @@ -74,48 +74,41 @@ Partial Class frmAdmin_User CType(Me.TextEdit6.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TextEdit7.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TextEdit8.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtAddedWho.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtChangedWho.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextEdit61.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextEdit81.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TextEdit61.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.txtAddedWho.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.txtChangedWho.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TextEdit81.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem12, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'RibbonControl1 ' Me.RibbonControl1.CommandLayout = DevExpress.XtraBars.Ribbon.CommandLayout.Simplified Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem2, Me.BarButtonItem3, Me.txtStatus}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 4 + Me.RibbonControl1.MaxItemId = 5 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Hide Me.RibbonControl1.ShowToolbarCustomizeItem = False - Me.RibbonControl1.Size = New System.Drawing.Size(816, 63) + Me.RibbonControl1.Size = New System.Drawing.Size(639, 63) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 Me.RibbonControl1.Toolbar.ShowCustomizeItem = False ' - 'BarButtonItem1 - ' - Me.BarButtonItem1.Caption = "Speichern und Schließen" - Me.BarButtonItem1.Id = 1 - Me.BarButtonItem1.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.bo_validation1 - Me.BarButtonItem1.Name = "BarButtonItem1" - ' 'BarButtonItem2 ' Me.BarButtonItem2.Caption = "Speichern" @@ -130,6 +123,12 @@ Partial Class frmAdmin_User Me.BarButtonItem3.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.delete1 Me.BarButtonItem3.Name = "BarButtonItem3" ' + 'txtStatus + ' + Me.txtStatus.Caption = "Status" + Me.txtStatus.Id = 4 + Me.txtStatus.Name = "txtStatus" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) @@ -138,7 +137,6 @@ Partial Class frmAdmin_User ' 'RibbonPageGroup1 ' - Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1) Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2) Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem3) Me.RibbonPageGroup1.Name = "RibbonPageGroup1" @@ -146,10 +144,11 @@ Partial Class frmAdmin_User ' 'RibbonStatusBar1 ' - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 517) + Me.RibbonStatusBar1.ItemLinks.Add(Me.txtStatus) + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 406) Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(816, 24) + Me.RibbonStatusBar1.Size = New System.Drawing.Size(639, 24) ' 'RibbonPage2 ' @@ -196,7 +195,7 @@ Partial Class frmAdmin_User Me.LayoutControl1.Name = "LayoutControl1" Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(688, 133, 1038, 537) Me.LayoutControl1.Root = Me.Root - Me.LayoutControl1.Size = New System.Drawing.Size(816, 454) + Me.LayoutControl1.Size = New System.Drawing.Size(639, 343) Me.LayoutControl1.TabIndex = 2 Me.LayoutControl1.Text = "LayoutControl1" ' @@ -206,7 +205,7 @@ Partial Class frmAdmin_User Me.TextEdit1.Location = New System.Drawing.Point(114, 20) Me.TextEdit1.MenuManager = Me.RibbonControl1 Me.TextEdit1.Name = "TextEdit1" - Me.TextEdit1.Size = New System.Drawing.Size(682, 20) + Me.TextEdit1.Size = New System.Drawing.Size(505, 20) Me.TextEdit1.StyleController = Me.LayoutControl1 Me.TextEdit1.TabIndex = 4 ' @@ -216,7 +215,7 @@ Partial Class frmAdmin_User Me.TextEdit2.Location = New System.Drawing.Point(114, 60) Me.TextEdit2.MenuManager = Me.RibbonControl1 Me.TextEdit2.Name = "TextEdit2" - Me.TextEdit2.Size = New System.Drawing.Size(682, 20) + Me.TextEdit2.Size = New System.Drawing.Size(195, 20) Me.TextEdit2.StyleController = Me.LayoutControl1 Me.TextEdit2.TabIndex = 5 ' @@ -226,67 +225,99 @@ Partial Class frmAdmin_User Me.TextEdit3.Location = New System.Drawing.Point(114, 100) Me.TextEdit3.MenuManager = Me.RibbonControl1 Me.TextEdit3.Name = "TextEdit3" - Me.TextEdit3.Size = New System.Drawing.Size(682, 20) + Me.TextEdit3.Size = New System.Drawing.Size(195, 20) Me.TextEdit3.StyleController = Me.LayoutControl1 Me.TextEdit3.TabIndex = 6 ' 'TextEdit4 ' Me.TextEdit4.DataBindings.Add(New System.Windows.Forms.Binding("EditValue", Me.TBDD_USERBindingSource, "NAME", True)) - Me.TextEdit4.Location = New System.Drawing.Point(114, 140) + Me.TextEdit4.Location = New System.Drawing.Point(423, 100) Me.TextEdit4.MenuManager = Me.RibbonControl1 Me.TextEdit4.Name = "TextEdit4" - Me.TextEdit4.Size = New System.Drawing.Size(682, 20) + Me.TextEdit4.Size = New System.Drawing.Size(196, 20) Me.TextEdit4.StyleController = Me.LayoutControl1 Me.TextEdit4.TabIndex = 7 ' 'TextEdit5 ' Me.TextEdit5.DataBindings.Add(New System.Windows.Forms.Binding("EditValue", Me.TBDD_USERBindingSource, "SHORTNAME", True)) - Me.TextEdit5.Location = New System.Drawing.Point(114, 180) + Me.TextEdit5.Location = New System.Drawing.Point(423, 60) Me.TextEdit5.MenuManager = Me.RibbonControl1 Me.TextEdit5.Name = "TextEdit5" - Me.TextEdit5.Size = New System.Drawing.Size(682, 20) + Me.TextEdit5.Size = New System.Drawing.Size(196, 20) Me.TextEdit5.StyleController = Me.LayoutControl1 Me.TextEdit5.TabIndex = 8 ' 'TextEdit6 ' Me.TextEdit6.DataBindings.Add(New System.Windows.Forms.Binding("EditValue", Me.TBDD_USERBindingSource, "EMAIL", True)) - Me.TextEdit6.Location = New System.Drawing.Point(114, 220) + Me.TextEdit6.Location = New System.Drawing.Point(114, 140) Me.TextEdit6.MenuManager = Me.RibbonControl1 Me.TextEdit6.Name = "TextEdit6" - Me.TextEdit6.Size = New System.Drawing.Size(682, 20) + Me.TextEdit6.Size = New System.Drawing.Size(505, 20) Me.TextEdit6.StyleController = Me.LayoutControl1 Me.TextEdit6.TabIndex = 9 ' 'TextEdit7 ' Me.TextEdit7.DataBindings.Add(New System.Windows.Forms.Binding("EditValue", Me.TBDD_USERBindingSource, "LANGUAGE", True)) - Me.TextEdit7.Location = New System.Drawing.Point(114, 260) + Me.TextEdit7.Location = New System.Drawing.Point(114, 180) Me.TextEdit7.MenuManager = Me.RibbonControl1 Me.TextEdit7.Name = "TextEdit7" - Me.TextEdit7.Size = New System.Drawing.Size(682, 20) + Me.TextEdit7.Size = New System.Drawing.Size(195, 20) Me.TextEdit7.StyleController = Me.LayoutControl1 Me.TextEdit7.TabIndex = 10 ' 'TextEdit8 ' Me.TextEdit8.DataBindings.Add(New System.Windows.Forms.Binding("EditValue", Me.TBDD_USERBindingSource, "DATE_FORMAT", True)) - Me.TextEdit8.Location = New System.Drawing.Point(114, 300) + Me.TextEdit8.Location = New System.Drawing.Point(423, 180) Me.TextEdit8.MenuManager = Me.RibbonControl1 Me.TextEdit8.Name = "TextEdit8" - Me.TextEdit8.Size = New System.Drawing.Size(682, 20) + Me.TextEdit8.Size = New System.Drawing.Size(196, 20) Me.TextEdit8.StyleController = Me.LayoutControl1 Me.TextEdit8.TabIndex = 11 ' + 'txtAddedWho + ' + Me.txtAddedWho.Location = New System.Drawing.Point(114, 220) + Me.txtAddedWho.Name = "txtAddedWho" + Me.txtAddedWho.Size = New System.Drawing.Size(195, 20) + Me.txtAddedWho.StyleController = Me.LayoutControl1 + Me.txtAddedWho.TabIndex = 9 + ' + 'txtChangedWho + ' + Me.txtChangedWho.Location = New System.Drawing.Point(114, 260) + Me.txtChangedWho.Name = "txtChangedWho" + Me.txtChangedWho.Size = New System.Drawing.Size(195, 20) + Me.txtChangedWho.StyleController = Me.LayoutControl1 + Me.txtChangedWho.TabIndex = 11 + ' + 'TextEdit61 + ' + Me.TextEdit61.Location = New System.Drawing.Point(423, 220) + Me.TextEdit61.Name = "TextEdit61" + Me.TextEdit61.Size = New System.Drawing.Size(196, 20) + Me.TextEdit61.StyleController = Me.LayoutControl1 + Me.TextEdit61.TabIndex = 10 + ' + 'TextEdit81 + ' + Me.TextEdit81.Location = New System.Drawing.Point(423, 260) + Me.TextEdit81.Name = "TextEdit81" + Me.TextEdit81.Size = New System.Drawing.Size(196, 20) + Me.TextEdit81.StyleController = Me.LayoutControl1 + Me.TextEdit81.TabIndex = 12 + ' 'Root ' Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] Me.Root.GroupBordersVisible = False - Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem4, Me.LayoutControlItem5, Me.LayoutControlItem6, Me.LayoutControlItem7, Me.LayoutControlItem8, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem11, Me.LayoutControlItem12}) + Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem3, Me.LayoutControlItem6, Me.LayoutControlItem7, Me.LayoutControlItem9, Me.LayoutControlItem10, Me.LayoutControlItem11, Me.LayoutControlItem12, Me.LayoutControlItem5, Me.LayoutControlItem4, Me.LayoutControlItem8}) Me.Root.Name = "Root" - Me.Root.Size = New System.Drawing.Size(816, 454) + Me.Root.Size = New System.Drawing.Size(639, 343) Me.Root.TextVisible = False ' 'LayoutControlItem1 @@ -296,7 +327,7 @@ Partial Class frmAdmin_User Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem1.Name = "LayoutControlItem1" Me.LayoutControlItem1.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem1.Size = New System.Drawing.Size(796, 40) + Me.LayoutControlItem1.Size = New System.Drawing.Size(619, 40) Me.LayoutControlItem1.Text = "ID" Me.LayoutControlItem1.TextSize = New System.Drawing.Size(82, 13) ' @@ -306,7 +337,7 @@ Partial Class frmAdmin_User Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 40) Me.LayoutControlItem2.Name = "LayoutControlItem2" Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem2.Size = New System.Drawing.Size(796, 40) + Me.LayoutControlItem2.Size = New System.Drawing.Size(309, 40) Me.LayoutControlItem2.Text = "Benutzername" Me.LayoutControlItem2.TextSize = New System.Drawing.Size(82, 13) ' @@ -316,101 +347,39 @@ Partial Class frmAdmin_User Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 80) Me.LayoutControlItem3.Name = "LayoutControlItem3" Me.LayoutControlItem3.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem3.Size = New System.Drawing.Size(796, 40) + Me.LayoutControlItem3.Size = New System.Drawing.Size(309, 40) Me.LayoutControlItem3.Text = "Vorname" Me.LayoutControlItem3.TextSize = New System.Drawing.Size(82, 13) ' - 'LayoutControlItem4 - ' - Me.LayoutControlItem4.Control = Me.TextEdit4 - Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 120) - Me.LayoutControlItem4.Name = "LayoutControlItem4" - Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem4.Size = New System.Drawing.Size(796, 40) - Me.LayoutControlItem4.Text = "Nachname" - Me.LayoutControlItem4.TextSize = New System.Drawing.Size(82, 13) - ' - 'LayoutControlItem5 - ' - Me.LayoutControlItem5.Control = Me.TextEdit5 - Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 160) - Me.LayoutControlItem5.Name = "LayoutControlItem5" - Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem5.Size = New System.Drawing.Size(796, 40) - Me.LayoutControlItem5.Text = "Kurzname" - Me.LayoutControlItem5.TextSize = New System.Drawing.Size(82, 13) - ' 'LayoutControlItem6 ' Me.LayoutControlItem6.Control = Me.TextEdit6 - Me.LayoutControlItem6.Location = New System.Drawing.Point(0, 200) + Me.LayoutControlItem6.Location = New System.Drawing.Point(0, 120) Me.LayoutControlItem6.Name = "LayoutControlItem6" Me.LayoutControlItem6.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem6.Size = New System.Drawing.Size(796, 40) + Me.LayoutControlItem6.Size = New System.Drawing.Size(619, 40) Me.LayoutControlItem6.Text = "Email Adresse" Me.LayoutControlItem6.TextSize = New System.Drawing.Size(82, 13) ' 'LayoutControlItem7 ' Me.LayoutControlItem7.Control = Me.TextEdit7 - Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 240) + Me.LayoutControlItem7.Location = New System.Drawing.Point(0, 160) Me.LayoutControlItem7.Name = "LayoutControlItem7" Me.LayoutControlItem7.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem7.Size = New System.Drawing.Size(796, 40) + Me.LayoutControlItem7.Size = New System.Drawing.Size(309, 40) Me.LayoutControlItem7.Text = "Sprache" Me.LayoutControlItem7.TextSize = New System.Drawing.Size(82, 13) ' - 'LayoutControlItem8 - ' - Me.LayoutControlItem8.Control = Me.TextEdit8 - Me.LayoutControlItem8.Location = New System.Drawing.Point(0, 280) - Me.LayoutControlItem8.Name = "LayoutControlItem8" - Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem8.Size = New System.Drawing.Size(796, 40) - Me.LayoutControlItem8.Text = "Datumsformat" - Me.LayoutControlItem8.TextSize = New System.Drawing.Size(82, 13) - ' - 'TextEdit61 - ' - Me.TextEdit61.Location = New System.Drawing.Point(511, 340) - Me.TextEdit61.Name = "TextEdit61" - Me.TextEdit61.Size = New System.Drawing.Size(285, 20) - Me.TextEdit61.StyleController = Me.LayoutControl1 - Me.TextEdit61.TabIndex = 10 - ' - 'txtAddedWho - ' - Me.txtAddedWho.Location = New System.Drawing.Point(114, 340) - Me.txtAddedWho.Name = "txtAddedWho" - Me.txtAddedWho.Size = New System.Drawing.Size(283, 20) - Me.txtAddedWho.StyleController = Me.LayoutControl1 - Me.txtAddedWho.TabIndex = 9 - ' - 'txtChangedWho - ' - Me.txtChangedWho.Location = New System.Drawing.Point(114, 380) - Me.txtChangedWho.Name = "txtChangedWho" - Me.txtChangedWho.Size = New System.Drawing.Size(283, 20) - Me.txtChangedWho.StyleController = Me.LayoutControl1 - Me.txtChangedWho.TabIndex = 11 - ' - 'TextEdit81 - ' - Me.TextEdit81.Location = New System.Drawing.Point(511, 380) - Me.TextEdit81.Name = "TextEdit81" - Me.TextEdit81.Size = New System.Drawing.Size(285, 20) - Me.TextEdit81.StyleController = Me.LayoutControl1 - Me.TextEdit81.TabIndex = 12 - ' 'LayoutControlItem9 ' Me.LayoutControlItem9.Control = Me.txtAddedWho Me.LayoutControlItem9.ControlAlignment = System.Drawing.ContentAlignment.TopLeft Me.LayoutControlItem9.CustomizationFormText = "Erstellt Wer" - Me.LayoutControlItem9.Location = New System.Drawing.Point(0, 320) + Me.LayoutControlItem9.Location = New System.Drawing.Point(0, 200) Me.LayoutControlItem9.Name = "LayoutControlItem9" Me.LayoutControlItem9.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem9.Size = New System.Drawing.Size(397, 40) + Me.LayoutControlItem9.Size = New System.Drawing.Size(309, 40) Me.LayoutControlItem9.Text = "Erstellt Wer" Me.LayoutControlItem9.TextSize = New System.Drawing.Size(82, 13) ' @@ -419,10 +388,10 @@ Partial Class frmAdmin_User Me.LayoutControlItem10.Control = Me.txtChangedWho Me.LayoutControlItem10.ControlAlignment = System.Drawing.ContentAlignment.TopLeft Me.LayoutControlItem10.CustomizationFormText = "Geändert Wer" - Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 360) + Me.LayoutControlItem10.Location = New System.Drawing.Point(0, 240) Me.LayoutControlItem10.Name = "LayoutControlItem10" Me.LayoutControlItem10.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem10.Size = New System.Drawing.Size(397, 74) + Me.LayoutControlItem10.Size = New System.Drawing.Size(309, 83) Me.LayoutControlItem10.Text = "Geändert Wer" Me.LayoutControlItem10.TextSize = New System.Drawing.Size(82, 13) ' @@ -431,10 +400,10 @@ Partial Class frmAdmin_User Me.LayoutControlItem11.Control = Me.TextEdit61 Me.LayoutControlItem11.ControlAlignment = System.Drawing.ContentAlignment.TopLeft Me.LayoutControlItem11.CustomizationFormText = "Erstellt Wann" - Me.LayoutControlItem11.Location = New System.Drawing.Point(397, 320) + Me.LayoutControlItem11.Location = New System.Drawing.Point(309, 200) Me.LayoutControlItem11.Name = "LayoutControlItem11" Me.LayoutControlItem11.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem11.Size = New System.Drawing.Size(399, 40) + Me.LayoutControlItem11.Size = New System.Drawing.Size(310, 40) Me.LayoutControlItem11.Text = "Erstellt Wann" Me.LayoutControlItem11.TextSize = New System.Drawing.Size(82, 13) ' @@ -443,21 +412,52 @@ Partial Class frmAdmin_User Me.LayoutControlItem12.Control = Me.TextEdit81 Me.LayoutControlItem12.ControlAlignment = System.Drawing.ContentAlignment.TopLeft Me.LayoutControlItem12.CustomizationFormText = "Geändert Wann" - Me.LayoutControlItem12.Location = New System.Drawing.Point(397, 360) + Me.LayoutControlItem12.Location = New System.Drawing.Point(309, 240) Me.LayoutControlItem12.Name = "LayoutControlItem12" Me.LayoutControlItem12.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) - Me.LayoutControlItem12.Size = New System.Drawing.Size(399, 74) + Me.LayoutControlItem12.Size = New System.Drawing.Size(310, 83) Me.LayoutControlItem12.Text = "Geändert Wann" Me.LayoutControlItem12.TextSize = New System.Drawing.Size(82, 13) ' + 'LayoutControlItem5 + ' + Me.LayoutControlItem5.Control = Me.TextEdit5 + Me.LayoutControlItem5.Location = New System.Drawing.Point(309, 40) + Me.LayoutControlItem5.Name = "LayoutControlItem5" + Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem5.Size = New System.Drawing.Size(310, 40) + Me.LayoutControlItem5.Text = "Kurzname" + Me.LayoutControlItem5.TextSize = New System.Drawing.Size(82, 13) + ' + 'LayoutControlItem4 + ' + Me.LayoutControlItem4.Control = Me.TextEdit4 + Me.LayoutControlItem4.Location = New System.Drawing.Point(309, 80) + Me.LayoutControlItem4.Name = "LayoutControlItem4" + Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem4.Size = New System.Drawing.Size(310, 40) + Me.LayoutControlItem4.Text = "Nachname" + Me.LayoutControlItem4.TextSize = New System.Drawing.Size(82, 13) + ' + 'LayoutControlItem8 + ' + Me.LayoutControlItem8.Control = Me.TextEdit8 + Me.LayoutControlItem8.Location = New System.Drawing.Point(309, 160) + Me.LayoutControlItem8.Name = "LayoutControlItem8" + Me.LayoutControlItem8.Padding = New DevExpress.XtraLayout.Utils.Padding(10, 10, 10, 10) + Me.LayoutControlItem8.Size = New System.Drawing.Size(310, 40) + Me.LayoutControlItem8.Text = "Datumsformat" + Me.LayoutControlItem8.TextSize = New System.Drawing.Size(82, 13) + ' 'frmAdmin_User ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(816, 541) + Me.ClientSize = New System.Drawing.Size(639, 430) Me.Controls.Add(Me.LayoutControl1) Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonControl1) + Me.KeyPreview = True Me.Name = "frmAdmin_User" Me.Ribbon = Me.RibbonControl1 Me.StatusBar = Me.RibbonStatusBar1 @@ -475,23 +475,23 @@ Partial Class frmAdmin_User CType(Me.TextEdit6.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TextEdit7.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TextEdit8.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtAddedWho.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtChangedWho.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextEdit61.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextEdit81.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TextEdit61.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.txtAddedWho.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.txtChangedWho.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TextEdit81.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem9, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem10, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem12, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem8, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -516,7 +516,6 @@ Partial Class frmAdmin_User Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem Friend WithEvents LayoutControlItem4 As DevExpress.XtraLayout.LayoutControlItem - Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem Friend WithEvents TextEdit5 As DevExpress.XtraEditors.TextEdit @@ -535,4 +534,5 @@ Partial Class frmAdmin_User Friend WithEvents LayoutControlItem10 As DevExpress.XtraLayout.LayoutControlItem Friend WithEvents LayoutControlItem11 As DevExpress.XtraLayout.LayoutControlItem Friend WithEvents LayoutControlItem12 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents txtStatus As DevExpress.XtraBars.BarButtonItem End Class diff --git a/GUIs.ZooFlow/Administration/Users/frmAdmin_User.vb b/GUIs.ZooFlow/Administration/Users/frmAdmin_User.vb index 9b043932..9b8f14a1 100644 --- a/GUIs.ZooFlow/Administration/Users/frmAdmin_User.vb +++ b/GUIs.ZooFlow/Administration/Users/frmAdmin_User.vb @@ -1,4 +1,7 @@ -Imports DigitalData.GUIs.Common.Base +Imports DevExpress.XtraLayout +Imports DigitalData.GUIs.Common +Imports DigitalData.GUIs.Common.Base +Imports DigitalData.Modules.Logging Public Class frmAdmin_User Implements IAdminForm @@ -8,7 +11,10 @@ Public Class frmAdmin_User Public Property HasChanges As Boolean Implements IAdminForm.HasChanges Public Property IsInsert As Boolean Implements IAdminForm.IsInsert - Public Property ErrorHandler As BaseErrorHandler + + Private Property ErrorHandler As BaseErrorHandler + Private Property Pages As ClassDetailPageManager + Private Property Logger As Logger Public Sub New(pPrimaryKey As Integer, Optional pIsInsert As Boolean = False) ' Dieser Aufruf ist für den Designer erforderlich. @@ -18,6 +24,7 @@ Public Class frmAdmin_User PrimaryKey = pPrimaryKey IsInsert = pIsInsert ErrorHandler = New BaseErrorHandler(My.LogConfig, My.LogConfig.GetLogger, Me) + Logger = My.LogConfig.GetLogger() End Sub Private Sub frmAdmin_User_Load(sender As Object, e As EventArgs) Handles MyBase.Load @@ -25,17 +32,39 @@ Public Class frmAdmin_User TBDD_USERTableAdapter.Connection.ConnectionString = My.DatabaseECM.CurrentSQLConnectionString If IsInsert Then + DSDD_Stammdaten.TBDD_USER.ADDED_WHOColumn.DefaultValue = My.Application.User.UserName TBDD_USERBindingSource.AddNew() Else TBDD_USERTableAdapter.Fill(DSDD_Stammdaten.TBDD_USER, PrimaryKey) - End If - Catch ex As System.Exception + + ' Add Focus Handler to all controls in all LayoutControls + Pages = New ClassDetailPageManager(My.LogConfig, Me, New List(Of LayoutControl) From {LayoutControl1}) + Pages.Add(New ClassDetailPageManager.PrimaryPage(IsInsert) With { + .Name = "Benutzer", + .BindingSource = TBDD_USERBindingSource, + .DataTable = DSDD_Stammdaten.TBDD_USER, + .AddedWhoEdit = txtAddedWho, + .ChangedWhoEdit = txtChangedWho + }) + + Pages.PrepareLoad() + + Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub - Public Function DeleteData() As Boolean Implements IAdminForm.DeleteData +#Region "DELETE ----------------------------------------------" + Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick + If DeleteData() Then + Close() + Else + txtStatus.Caption = $"Error while deleting!" + End If + End Sub + + Private Function DeleteData() As Boolean Implements IAdminForm.DeleteData Try TBDD_USERTableAdapter.Delete(PrimaryKey) Return True @@ -44,31 +73,32 @@ Public Class frmAdmin_User Return False End Try End Function - Public Function SaveData() As Boolean - Try - TBDD_USERBindingSource.EndEdit() - - If DSDD_Stammdaten.TBDD_USER.GetChanges() IsNot Nothing Then - HasChanges = True - - If IsInsert Then - txtAddedWho.EditValue = My.Application.User.UserName - Else - txtChangedWho.EditValue = My.Application.User.UserName - End If +#End Region - TBDD_USERBindingSource.EndEdit() - TBDD_USERTableAdapter.Update(DSDD_Stammdaten.TBDD_USER) - End If - - Return True - Catch ex As Exception - ErrorHandler.ShowErrorMessage(ex, "DeleteData") - Return False - End Try - End Function +#Region "SAVE ----------------------------------------------" + Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick + SaveData() + End Sub - Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick + Private Sub frmAdmin_User_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown + If e.KeyCode = Keys.F5 Then + SaveData() + End If + End Sub + Private Sub SaveData() + If Pages.PrepareSave() = True Then + Try + Dim oPage = Pages.Current + TBDD_USERTableAdapter.Update(oPage.DataTable) + oPage.IsInsert = False + txtStatus.Caption = $"{oPage.Name} gespeichert!" + Catch ex As Exception + ErrorHandler.ShowErrorMessage(ex, "ItemClick") + End Try + Else + txtStatus.Caption = $"Keine Änderungen" + End If End Sub +#End Region End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/Administration/Users/frmWaitForm.Designer.vb b/GUIs.ZooFlow/Administration/Users/frmWaitForm.Designer.vb new file mode 100644 index 00000000..1a20c4c9 --- /dev/null +++ b/GUIs.ZooFlow/Administration/Users/frmWaitForm.Designer.vb @@ -0,0 +1,83 @@ + _ +Partial Class frmWaitForm + Inherits DevExpress.XtraWaitForm.WaitForm + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.progressPanel1 = New DevExpress.XtraWaitForm.ProgressPanel() + Me.tableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.tableLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'progressPanel1 + ' + Me.progressPanel1.Appearance.BackColor = System.Drawing.Color.Transparent + Me.progressPanel1.Appearance.Options.UseBackColor = True + Me.progressPanel1.AppearanceCaption.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!) + Me.progressPanel1.AppearanceCaption.Options.UseFont = True + Me.progressPanel1.AppearanceDescription.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!) + Me.progressPanel1.AppearanceDescription.Options.UseFont = True + Me.progressPanel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.progressPanel1.ImageHorzOffset = 20 + Me.progressPanel1.Location = New System.Drawing.Point(0, 17) + Me.progressPanel1.Margin = New System.Windows.Forms.Padding(0, 3, 0, 3) + Me.progressPanel1.Name = "progressPanel1" + Me.progressPanel1.Size = New System.Drawing.Size(246, 39) + Me.progressPanel1.TabIndex = 0 + Me.progressPanel1.Text = "progressPanel1" + ' + 'tableLayoutPanel1 + ' + Me.tableLayoutPanel1.AutoSize = True + Me.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent + Me.tableLayoutPanel1.ColumnCount = 1 + Me.tableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.tableLayoutPanel1.Controls.Add(Me.progressPanel1, 0, 0) + Me.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.tableLayoutPanel1.Location = New System.Drawing.Point(0, 0) + Me.tableLayoutPanel1.Name = "tableLayoutPanel1" + Me.tableLayoutPanel1.Padding = New System.Windows.Forms.Padding(0, 14, 0, 14) + Me.tableLayoutPanel1.RowCount = 1 + Me.tableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.tableLayoutPanel1.Size = New System.Drawing.Size(246, 73) + Me.tableLayoutPanel1.TabIndex = 1 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ClientSize = New System.Drawing.Size(246, 73) + Me.Controls.Add(Me.tableLayoutPanel1) + Me.DoubleBuffered = True + Me.Name = "Form1" + Me.StartPosition = FormStartPosition.Manual + Me.Text = "Form1" + Me.tableLayoutPanel1.ResumeLayout(false) + Me.ResumeLayout(False) + Me.PerformLayout() + End Sub + + Private WithEvents progressPanel1 As DevExpress.XtraWaitForm.ProgressPanel + Private WithEvents tableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel +End Class diff --git a/GUIs.ZooFlow/Administration/Users/frmWaitForm.resx b/GUIs.ZooFlow/Administration/Users/frmWaitForm.resx new file mode 100644 index 00000000..9d1fc387 --- /dev/null +++ b/GUIs.ZooFlow/Administration/Users/frmWaitForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Administration/Users/frmWaitForm.vb b/GUIs.ZooFlow/Administration/Users/frmWaitForm.vb new file mode 100644 index 00000000..04b65efe --- /dev/null +++ b/GUIs.ZooFlow/Administration/Users/frmWaitForm.vb @@ -0,0 +1,24 @@ +Public Class frmWaitForm + Sub New + InitializeComponent() + Me.progressPanel1.AutoHeight = True + End Sub + + Public Overrides Sub SetCaption(ByVal caption As String) + MyBase.SetCaption(caption) + Me.progressPanel1.Caption = caption + End Sub + + Public Overrides Sub SetDescription(ByVal description As String) + MyBase.SetDescription(description) + Me.progressPanel1.Description = description + End Sub + + Public Overrides Sub ProcessCommand(ByVal cmd As System.Enum, ByVal arg As Object) + MyBase.ProcessCommand(cmd, arg) + End Sub + + Public Enum WaitFormCommand + SomeCommandId + End Enum +End Class diff --git a/GUIs.ZooFlow/Administration/frmAdmin_ClipboardWatcher.vb b/GUIs.ZooFlow/Administration/frmAdmin_ClipboardWatcher.vb index f605bfee..54f4e0c2 100644 --- a/GUIs.ZooFlow/Administration/frmAdmin_ClipboardWatcher.vb +++ b/GUIs.ZooFlow/Administration/frmAdmin_ClipboardWatcher.vb @@ -32,7 +32,7 @@ Public Class frmAdmin_ClipboardWatcher Private Const PROFILE_TYPE_DOCS_ONLY As Integer = 1 Private Const PROFILE_TYPE_DATA_ONLY As Integer = 2 - Private Pages As ClassDetailPages + Private Pages As ClassDetailPageManager Friend Class ProfileType Public Property Id As Integer @@ -97,9 +97,9 @@ Public Class frmAdmin_ClipboardWatcher DBCW_Stammdaten.TBLOCAL_PROFILE_TYPE.Rows.Add(PROFILE_TYPE_DOCS_ONLY, "Nur Dokumente") DBCW_Stammdaten.TBLOCAL_PROFILE_TYPE.Rows.Add(PROFILE_TYPE_DATA_ONLY, "Nur Daten") - Pages = New ClassDetailPages(My.LogConfig, Me, oLayoutControls) + Pages = New ClassDetailPageManager(My.LogConfig, Me, oLayoutControls) Pages.AddRange({ - New ClassDetailPages.PrimaryPage(IsInsert) With { + New ClassDetailPageManager.PrimaryPage(IsInsert) With { .Name = "Profil", .TabPage = PageProfile, .BindingSource = TBCW_PROFILESBindingSource, @@ -107,7 +107,7 @@ Public Class frmAdmin_ClipboardWatcher .AddedWhoEdit = txtAddedWho, .ChangedWhoEdit = txtChangedWho }, - New ClassDetailPages.DetailPage With { + New ClassDetailPageManager.DetailPage With { .Name = "Dokument-Suche", .TabPage = PageDocumentSearch, .BindingSource = TBCW_PROF_DOC_SEARCHBindingSource, @@ -115,7 +115,7 @@ Public Class frmAdmin_ClipboardWatcher .AddedWhoEdit = txtAddedWho1, .ChangedWhoEdit = txtChangedWho1 }, - New ClassDetailPages.DetailPage With { + New ClassDetailPageManager.DetailPage With { .Name = "Daten-Suche", .TabPage = PageDataSearch, .BindingSource = TBCW_PROF_DATA_SEARCHBindingSource, @@ -133,7 +133,7 @@ Public Class frmAdmin_ClipboardWatcher End Try End Sub - Private Sub CurrentPage_Changed(sender As Object, e As ClassDetailPages.DetailPageEventArgs) + Private Sub CurrentPage_Changed(sender As Object, e As ClassDetailPageManager.DetailPageEventArgs) If Not IsNothing(e.Page) Then If e.Page.IsPrimary = True Then BarButtonNew.Enabled = False diff --git a/GUIs.ZooFlow/Administration/frmAdmin_SourceSQL.vb b/GUIs.ZooFlow/Administration/frmAdmin_SourceSQL.vb index acca7327..bc0bbb8d 100644 --- a/GUIs.ZooFlow/Administration/frmAdmin_SourceSQL.vb +++ b/GUIs.ZooFlow/Administration/frmAdmin_SourceSQL.vb @@ -10,7 +10,7 @@ Public Class frmAdmin_SourceSQL Public Property IsInsert As Boolean Implements IAdminForm.IsInsert - Private Pages As ClassDetailPages + Private Pages As ClassDetailPageManager Public Sub New(PrimaryKey As Integer) ' Dieser Aufruf ist für den Designer erforderlich. @@ -23,8 +23,8 @@ Public Class frmAdmin_SourceSQL Private Sub frmAdmin_SourceSQL_Load(sender As Object, e As EventArgs) Handles Me.Load Try - Pages = New ClassDetailPages(My.LogConfig, Me, New List(Of LayoutControl) From {LayoutControl1}) - Pages.Add(New ClassDetailPages.PrimaryPage(IsInsert) With { + Pages = New ClassDetailPageManager(My.LogConfig, Me, New List(Of LayoutControl) From {LayoutControl1}) + Pages.Add(New ClassDetailPageManager.PrimaryPage(IsInsert) With { .Name = "Source SQL", .AddedWhoEdit = txtAddedWho, .ChangedWhoEdit = txtChangedWho, diff --git a/GUIs.ZooFlow/Administration/frmAdmin_Start.Designer.vb b/GUIs.ZooFlow/Administration/frmAdmin_Start.Designer.vb index 1cc16c7a..b61bfaea 100644 --- a/GUIs.ZooFlow/Administration/frmAdmin_Start.Designer.vb +++ b/GUIs.ZooFlow/Administration/frmAdmin_Start.Designer.vb @@ -59,6 +59,7 @@ Partial Class frmAdmin_Start Me.btnAddRecord = New DevExpress.XtraBars.BarButtonItem() Me.btnEditRecord = New DevExpress.XtraBars.BarButtonItem() Me.BarButtonItem26 = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem27 = New DevExpress.XtraBars.BarButtonItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() @@ -133,9 +134,9 @@ Partial Class frmAdmin_Start 'RibbonControl1 ' Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.labelStatus, Me.labelError, Me.BarButtonItemAddAttribute, Me.BarButtonItemRefreshAttribute, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItem8, Me.BarButtonItem9, Me.BarButtonItem10, Me.BarButtonItem12, Me.BarButtonItem13, Me.BarButtonItem14, Me.BarButtonItem15, Me.BarButtonItem16, Me.BarButtonItem17, Me.BarButtonItem18, Me.BarButtonItem19, Me.BarButtonItem20, Me.BarButtonItem21, Me.BarButtonItem22, Me.BarButtonItem23, Me.BarButtonItem24, Me.BarButtonItem25, Me.btnAddRecord, Me.btnEditRecord, Me.BarButtonItem26}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.labelStatus, Me.labelError, Me.BarButtonItemAddAttribute, Me.BarButtonItemRefreshAttribute, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItem8, Me.BarButtonItem9, Me.BarButtonItem10, Me.BarButtonItem12, Me.BarButtonItem13, Me.BarButtonItem14, Me.BarButtonItem15, Me.BarButtonItem16, Me.BarButtonItem17, Me.BarButtonItem18, Me.BarButtonItem19, Me.BarButtonItem20, Me.BarButtonItem21, Me.BarButtonItem22, Me.BarButtonItem23, Me.BarButtonItem24, Me.BarButtonItem25, Me.btnAddRecord, Me.btnEditRecord, Me.BarButtonItem26, Me.BarButtonItem27}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 35 + Me.RibbonControl1.MaxItemId = 37 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] @@ -232,7 +233,7 @@ Partial Class frmAdmin_Start ' 'BarButtonItem9 ' - Me.BarButtonItem9.Caption = "Daten neu laden" + Me.BarButtonItem9.Caption = "Übersichtsdaten neu laden" Me.BarButtonItem9.Id = 14 Me.BarButtonItem9.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.updatedataextract Me.BarButtonItem9.Name = "BarButtonItem9" @@ -364,6 +365,13 @@ Partial Class frmAdmin_Start Me.BarButtonItem26.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem26.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarButtonItem26.Name = "BarButtonItem26" ' + 'BarButtonItem27 + ' + Me.BarButtonItem27.Caption = "Active Directory Import" + Me.BarButtonItem27.Id = 35 + Me.BarButtonItem27.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.text1 + Me.BarButtonItem27.Name = "BarButtonItem27" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup2, Me.RibbonPageGroup1}) @@ -373,6 +381,7 @@ Partial Class frmAdmin_Start 'RibbonPageGroup2 ' Me.RibbonPageGroup2.Alignment = DevExpress.XtraBars.Ribbon.RibbonPageGroupAlignment.Far + Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem27) Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem9) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" Me.RibbonPageGroup2.Text = "Daten" @@ -932,4 +941,5 @@ Partial Class frmAdmin_Start Friend WithEvents RibbonGroup_ClipboardWatcher_Profile As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPage_ClipboardWatcher As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents BarButtonItem26 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarButtonItem27 As DevExpress.XtraBars.BarButtonItem End Class diff --git a/GUIs.ZooFlow/Administration/frmAdmin_Start.vb b/GUIs.ZooFlow/Administration/frmAdmin_Start.vb index 3fc09f7d..0b33700a 100644 --- a/GUIs.ZooFlow/Administration/frmAdmin_Start.vb +++ b/GUIs.ZooFlow/Administration/frmAdmin_Start.vb @@ -276,4 +276,9 @@ Public Class frmAdmin_Start Logger.Error(ex) End Try End Sub + + Private Sub BarButtonItem27_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem27.ItemClick + Dim oForm As New frmAdmin_ImportUser() + oForm.ShowDialog() + End Sub End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/ClassConstants.vb b/GUIs.ZooFlow/ClassConstants.vb index 1125fe88..3a3a9759 100644 --- a/GUIs.ZooFlow/ClassConstants.vb +++ b/GUIs.ZooFlow/ClassConstants.vb @@ -10,6 +10,7 @@ Public Const USER_CATALOG_QUICKSEARCH1_TITLE = "QUICKSEARCH1_TITLE" Public Const USER_CATALOG_QUICKSEARCH1_POS = "QUICKSEARCH1_POS" Public Const USER_CATALOG_GLOBIX_DROPAREA = "GLOBIX_DROPAREA" + Public Const USER_AD_ROOT_PATH = "ACTIVE_DIRECTORY_ROOT" Public Const FOLDER_NAME_LAYOUT = "Layout" diff --git a/GUIs.ZooFlow/My Project/Resources.Designer.vb b/GUIs.ZooFlow/My Project/Resources.Designer.vb index 2d9da24e..a88ba3cb 100644 --- a/GUIs.ZooFlow/My Project/Resources.Designer.vb +++ b/GUIs.ZooFlow/My Project/Resources.Designer.vb @@ -520,6 +520,26 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property actions_send1() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("actions_send1", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property actions_send2() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("actions_send2", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -1050,6 +1070,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property open2() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("open2", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' @@ -1270,6 +1300,26 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property text() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("text", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. + ''' + Friend ReadOnly Property text1() As DevExpress.Utils.Svg.SvgImage + Get + Dim obj As Object = ResourceManager.GetObject("text1", resourceCulture) + Return CType(obj,DevExpress.Utils.Svg.SvgImage) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage. ''' diff --git a/GUIs.ZooFlow/My Project/Resources.resx b/GUIs.ZooFlow/My Project/Resources.resx index 191ccb8e..2324694f 100644 --- a/GUIs.ZooFlow/My Project/Resources.resx +++ b/GUIs.ZooFlow/My Project/Resources.resx @@ -124,11 +124,8 @@ ..\Resources\actions_addcircled2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\del5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\save5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\editnames.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\StatusAnnotations_Stop_32xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -148,9 +145,6 @@ ..\Resources\doublenext2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\ZooFlow_PM_DevExpress.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - ..\Resources\doublenext1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -160,29 +154,38 @@ ..\Resources\servermode.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\actions_deletecircled6.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_send1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\definednameuseinformula3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_check1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\Checked-outforEdit_Color_13297.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\text.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\save_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\definednameuseinformula.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\gear_32xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\DD_Icons_ICO_PMANAGER_128px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\about1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\ZooFlow_PM_DevExpress.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\bell_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -193,15 +196,18 @@ ..\Resources\about2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\save4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\2_ZOO_FLOW_Abo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\renamedatasource.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\about.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\cancel.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_addcircled4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\actions_check5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -211,9 +217,6 @@ ..\Resources\actions_window.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\pagesetup.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - ..\Resources\ZOO_FLOW_ sysicon_256.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -229,18 +232,12 @@ ..\Resources\CW_GEFUNDEN_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\actions_check2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - ..\Resources\Close_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\markcomplete.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\1_LOGO_ZOO_FLOW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\definednameuseinformula1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -277,6 +274,9 @@ ..\Resources\save2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\doublenext.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\2_LUPE_AKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -286,23 +286,23 @@ ..\Resources\properties.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\CW_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\Checked-outforEdit_13297.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\definednameuseinformula2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\bo_appearance.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\actions_check.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\editquery.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\save5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\editnames.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\del5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\save9.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -310,8 +310,11 @@ ..\Resources\actions_addcircled5.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\highimportance.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\about1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ..\Resources\save3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\pagesetup1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -334,6 +337,9 @@ ..\Resources\DD_Icons_ICO_PMANAGER_256px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ZooFlow_CW_DevExpress.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\refresh_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -343,8 +349,11 @@ ..\Resources\insertsheet.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\ZooFlow_CW_DevExpress.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\delete1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ..\Resources\3_PERSON_AKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\actions_edit2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -367,8 +376,11 @@ ..\Resources\about3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\doublenext.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\open2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ..\Resources\pagesetup.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\actions_add1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -379,15 +391,12 @@ ..\Resources\del3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\actions_edit1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ..\Resources\Compare_RefreshScriptPreview.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\actions_check6.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_deletecircled.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + ..\Resources\Hamburger_icon.svg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -397,8 +406,8 @@ ..\Resources\del4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\actions_addcircled4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\Compare_RefreshScriptPreview.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\bo_validation.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -406,8 +415,8 @@ ..\Resources\bo_document.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\about.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\save4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\actions_refresh.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -436,17 +445,17 @@ ..\Resources\actions_deletecircled1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\actions_check1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\editquery.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\3_PERSON_AKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\CW_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\documentproperties.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\bo_appearance.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_check2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\actions_addcircled1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -454,20 +463,23 @@ ..\Resources\GLOBIX_short.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Flow.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\text1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\save3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\1_LOGO_ZOO_FLOW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\actions_edit1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\managedatasource2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\actions_deletecircled.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_deletecircled6.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\2_ZOO_FLOW_Abo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Flow.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\bo_appearance1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -475,8 +487,11 @@ ..\Resources\3_PERSON_INAKTIV_ZOO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\highimportance.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ..\Resources\renamedatasource.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ..\Resources\actions_deletecircled2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -505,7 +520,7 @@ ..\Resources\bo_validation1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ..\Resources\delete1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + ..\Resources\actions_send2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/GUIs.ZooFlow/Resources/actions_send1.svg b/GUIs.ZooFlow/Resources/actions_send1.svg new file mode 100644 index 00000000..c0372ba0 --- /dev/null +++ b/GUIs.ZooFlow/Resources/actions_send1.svg @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Resources/actions_send2.svg b/GUIs.ZooFlow/Resources/actions_send2.svg new file mode 100644 index 00000000..c0372ba0 --- /dev/null +++ b/GUIs.ZooFlow/Resources/actions_send2.svg @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Resources/open2.svg b/GUIs.ZooFlow/Resources/open2.svg new file mode 100644 index 00000000..04ab349f --- /dev/null +++ b/GUIs.ZooFlow/Resources/open2.svg @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Resources/text.svg b/GUIs.ZooFlow/Resources/text.svg new file mode 100644 index 00000000..0c60d197 --- /dev/null +++ b/GUIs.ZooFlow/Resources/text.svg @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/Resources/text1.svg b/GUIs.ZooFlow/Resources/text1.svg new file mode 100644 index 00000000..0c60d197 --- /dev/null +++ b/GUIs.ZooFlow/Resources/text1.svg @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/ZooFlow.vbproj b/GUIs.ZooFlow/ZooFlow.vbproj index 5ea8f2f0..50637f6c 100644 --- a/GUIs.ZooFlow/ZooFlow.vbproj +++ b/GUIs.ZooFlow/ZooFlow.vbproj @@ -223,12 +223,24 @@ Form + + frmAdmin_ImportUser.vb + + + Form + frmAdmin_User.vb Form + + frmWaitForm.vb + + + Form + @@ -446,9 +458,15 @@ frmSQLDesigner.vb + + frmAdmin_ImportUser.vb + frmAdmin_User.vb + + frmWaitForm.vb + frmConfigBasic.vb @@ -633,6 +651,10 @@ {991d0231-4623-496d-8bd0-9ca906029cbc} Filesystem + + {ab6f09bf-e794-4f6a-94bb-c97c0ba84d64} + Interfaces + {d3c8cfed-d6f6-43a8-9bdf-454145d0352f} Language @@ -739,6 +761,7 @@ + @@ -1014,6 +1037,11 @@ + + + + + diff --git a/GUIs.ZooFlow/frmConfigBasic.Designer.vb b/GUIs.ZooFlow/frmConfigBasic.Designer.vb index 2cc8431a..43adfe93 100644 --- a/GUIs.ZooFlow/frmConfigBasic.Designer.vb +++ b/GUIs.ZooFlow/frmConfigBasic.Designer.vb @@ -39,30 +39,34 @@ Partial Class frmConfigBasic Me.ToggleSwitchDebug = New DevExpress.XtraEditors.ToggleSwitch() Me.Quicksearch1CB_Pos = New DevExpress.XtraEditors.ComboBoxEdit() Me.Quicksearch1TitleTextBox = New DevExpress.XtraEditors.TextEdit() + Me.ProcessManagerPathTextbox = New DevExpress.XtraEditors.TextEdit() Me.Root = New DevExpress.XtraLayout.LayoutControlGroup() Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem() Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() - Me.ProcessManagerPathTextbox = New DevExpress.XtraEditors.TextEdit() - Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlGroup2 = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() + Me.ADRootPathTextBox = New DevExpress.XtraEditors.TextEdit() + Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.LayoutControl1.SuspendLayout() CType(Me.ToggleSwitchDebug.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Quicksearch1CB_Pos.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Quicksearch1TitleTextBox.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ProcessManagerPathTextbox.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.ProcessManagerPathTextbox.Properties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlGroup2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ADRootPathTextBox.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'RibbonControl1 @@ -157,6 +161,7 @@ Partial Class frmConfigBasic Me.LayoutControl1.Controls.Add(Me.Quicksearch1CB_Pos) Me.LayoutControl1.Controls.Add(Me.Quicksearch1TitleTextBox) Me.LayoutControl1.Controls.Add(Me.ProcessManagerPathTextbox) + Me.LayoutControl1.Controls.Add(Me.ADRootPathTextBox) Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill Me.LayoutControl1.Location = New System.Drawing.Point(0, 158) Me.LayoutControl1.Name = "LayoutControl1" @@ -197,6 +202,15 @@ Partial Class frmConfigBasic Me.Quicksearch1TitleTextBox.StyleController = Me.LayoutControl1 Me.Quicksearch1TitleTextBox.TabIndex = 6 ' + 'ProcessManagerPathTextbox + ' + Me.ProcessManagerPathTextbox.Location = New System.Drawing.Point(178, 173) + Me.ProcessManagerPathTextbox.MenuManager = Me.RibbonControl1 + Me.ProcessManagerPathTextbox.Name = "ProcessManagerPathTextbox" + Me.ProcessManagerPathTextbox.Size = New System.Drawing.Size(598, 20) + Me.ProcessManagerPathTextbox.StyleController = Me.LayoutControl1 + Me.ProcessManagerPathTextbox.TabIndex = 9 + ' 'Root ' Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] @@ -254,31 +268,40 @@ Partial Class frmConfigBasic Me.LayoutControlItem4.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem4.TextVisible = False ' - 'ProcessManagerPathTextbox + 'LayoutControlGroup2 ' - Me.ProcessManagerPathTextbox.Location = New System.Drawing.Point(178, 173) - Me.ProcessManagerPathTextbox.MenuManager = Me.RibbonControl1 - Me.ProcessManagerPathTextbox.Name = "ProcessManagerPathTextbox" - Me.ProcessManagerPathTextbox.Size = New System.Drawing.Size(598, 20) - Me.ProcessManagerPathTextbox.StyleController = Me.LayoutControl1 - Me.ProcessManagerPathTextbox.TabIndex = 9 + Me.LayoutControlGroup2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2, Me.LayoutControlItem5}) + Me.LayoutControlGroup2.Location = New System.Drawing.Point(0, 128) + Me.LayoutControlGroup2.Name = "LayoutControlGroup2" + Me.LayoutControlGroup2.Size = New System.Drawing.Size(780, 120) + Me.LayoutControlGroup2.Text = "Weitere Einstellungen" ' 'LayoutControlItem2 ' Me.LayoutControlItem2.Control = Me.ProcessManagerPathTextbox Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem2.Name = "LayoutControlItem2" - Me.LayoutControlItem2.Size = New System.Drawing.Size(756, 75) + Me.LayoutControlItem2.Size = New System.Drawing.Size(756, 24) Me.LayoutControlItem2.Text = "Pfad zum Process Manager" Me.LayoutControlItem2.TextSize = New System.Drawing.Size(142, 13) ' - 'LayoutControlGroup2 + 'ADRootPathTextBox ' - Me.LayoutControlGroup2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2}) - Me.LayoutControlGroup2.Location = New System.Drawing.Point(0, 128) - Me.LayoutControlGroup2.Name = "LayoutControlGroup2" - Me.LayoutControlGroup2.Size = New System.Drawing.Size(780, 120) - Me.LayoutControlGroup2.Text = "Weitere Einstellungen" + Me.ADRootPathTextBox.Location = New System.Drawing.Point(178, 197) + Me.ADRootPathTextBox.MenuManager = Me.RibbonControl1 + Me.ADRootPathTextBox.Name = "ADRootPathTextBox" + Me.ADRootPathTextBox.Size = New System.Drawing.Size(598, 20) + Me.ADRootPathTextBox.StyleController = Me.LayoutControl1 + Me.ADRootPathTextBox.TabIndex = 10 + ' + 'LayoutControlItem5 + ' + Me.LayoutControlItem5.Control = Me.ADRootPathTextBox + Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 24) + Me.LayoutControlItem5.Name = "LayoutControlItem5" + Me.LayoutControlItem5.Size = New System.Drawing.Size(756, 51) + Me.LayoutControlItem5.Text = "Active Directory Root Pfad" + Me.LayoutControlItem5.TextSize = New System.Drawing.Size(142, 13) ' 'frmConfigBasic ' @@ -299,15 +322,17 @@ Partial Class frmConfigBasic CType(Me.ToggleSwitchDebug.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Quicksearch1CB_Pos.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Quicksearch1TitleTextBox.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ProcessManagerPathTextbox.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.ProcessManagerPathTextbox.Properties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlGroup2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ADRootPathTextBox.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -338,4 +363,6 @@ Partial Class frmConfigBasic Friend WithEvents ProcessManagerPathTextbox As DevExpress.XtraEditors.TextEdit Friend WithEvents LayoutControlGroup2 As DevExpress.XtraLayout.LayoutControlGroup Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents ADRootPathTextBox As DevExpress.XtraEditors.TextEdit + Friend WithEvents LayoutControlItem5 As DevExpress.XtraLayout.LayoutControlItem End Class diff --git a/GUIs.ZooFlow/frmConfigBasic.vb b/GUIs.ZooFlow/frmConfigBasic.vb index f619a3a6..abf62ad7 100644 --- a/GUIs.ZooFlow/frmConfigBasic.vb +++ b/GUIs.ZooFlow/frmConfigBasic.vb @@ -8,29 +8,35 @@ Public Class frmConfigBasic Dim oFormLoaded As Boolean = False Private Sub frmConfigBasic_Load(sender As Object, e As EventArgs) Handles MyBase.Load - LoadScreens() - Logger = My.LogConfig.GetLogger() ToggleSwitchDebug.IsOn = My.LogConfig.Debug - For Each orow As DataRow In My.Tables.DTIDB_CATALOG_USER.Rows - Select Case orow.Item("CAT_TITLE") + For Each oRow As DataRow In My.Tables.DTIDB_CATALOG_USER.Rows + Dim oId = oRow.Item("GUID") + Dim oTitle As String = oRow.Item("CAT_TITLE") + Dim oValue As String = oRow.ItemEx("CAT_STRING", String.Empty) + + Select Case oTitle Case ClassConstants.USER_CATALOG_QUICKSEARCH1_TITLE - Quicksearch1TitleTextBox.Text = orow.Item("CAT_STRING") - Quicksearch1TitleTextBox.Tag = orow.Item("GUID") + Quicksearch1TitleTextBox.Text = oValue + Quicksearch1TitleTextBox.Tag = oId + Case ClassConstants.USER_CATALOG_QUICKSEARCH1_POS - Quicksearch1CB_Pos.EditValue = orow.Item("CAT_STRING") - Quicksearch1CB_Pos.Tag = orow.Item("GUID") + Quicksearch1CB_Pos.EditValue = oValue + Quicksearch1CB_Pos.Tag = oId + + Case ClassConstants.USER_AD_ROOT_PATH + ADRootPathTextBox.EditValue = oValue + ADRootPathTextBox.Tag = oId + Case ClassConstants.USER_CATALOG_APPLICATION_THEME Dim oItem = SkinPaletteRibbonGalleryBarItem1.Gallery.GetAllItems(). - Where(Function(item) item.Value = orow.ItemEx("CAT_STRING", String.Empty)). + Where(Function(item) item.Value = oValue). FirstOrDefault() - If Not IsNothing(oItem) Then SkinPaletteRibbonGalleryBarItem1.Gallery.SetItemCheck(oItem, True) End If - End Select Next @@ -41,16 +47,8 @@ Public Class frmConfigBasic oFormLoaded = True End Sub - Private Sub LoadScreens() - 'cmbScreens.Properties.Items.Clear() - 'For Each oScreen In Screen.AllScreens - ' cmbScreens.Properties.Items.Add(oScreen.DeviceName) - 'Next - End Sub - - Private Sub cmbScreens_SelectedValueChanged(sender As Object, e As EventArgs) - 'My.UIConfig.SidebarScreen = cmbScreens.EditValue - My.UIConfigManager.Save() + Private Sub frmConfigBasic_Shown(sender As Object, e As EventArgs) Handles Me.Shown + FormLoaded = True End Sub Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick @@ -62,26 +60,12 @@ Public Class frmConfigBasic End Sub - Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick + Private Sub SaveCatalogSetting(pKey As Integer, pValue As String) Try - Dim oUpd = "UPDATE TBIDB_CATALOG_USER SET CHANGED_WHO = '', CAT_STRING = " - Catch ex As Exception - MsgBox(ex.Message, MsgBoxStyle.Critical) - End Try - End Sub - - Private Sub frmConfigBasic_Shown(sender As Object, e As EventArgs) Handles Me.Shown - FormLoaded = True - End Sub + Dim oUpd = $"UPDATE TBIDB_CATALOG_USER SET CHANGED_WHO = '{My.Application.User.UserName}', CAT_STRING = '{pValue}' + WHERE GUID = {pKey}" - Private Sub Quicksearch1CB_Pos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Quicksearch1CB_Pos.SelectedIndexChanged - If FormLoaded = False Then - Exit Sub - End If - Try - Dim oUpd = $"UPDATE TBIDB_CATALOG_USER SET CHANGED_WHO = '{My.Application.User.UserName}', CAT_STRING = '{Quicksearch1CB_Pos.EditValue}' - WHERE GUID = {Quicksearch1CB_Pos.Tag}" - If My.Database.ExecuteNonQuery(oUpd, DigitalData.Modules.EDMI.API.Constants.DatabaseType.IDB) = True Then + If My.DatabaseIDB.ExecuteNonQuery(oUpd) = True Then bsiInfo.Caption = "Position Quicksearch1 saved!" End If Catch ex As Exception @@ -89,21 +73,20 @@ Public Class frmConfigBasic End Try End Sub - Private Sub Quicksearch1TitleTextBox_Leave(sender As Object, e As EventArgs) Handles Quicksearch1TitleTextBox.Leave + Private Sub TextEdit_Leave(sender As Object, e As EventArgs) Handles _ + Quicksearch1TitleTextBox.Leave, + ADRootPathTextBox.Leave, + Quicksearch1CB_Pos.SelectedIndexChanged + If FormLoaded = False Then Exit Sub End If - Try - Dim oUpd = $"UPDATE TBIDB_CATALOG_USER SET CHANGED_WHO = '{My.Application.User.UserName}', CAT_STRING = '{Quicksearch1TitleTextBox.Text}' - WHERE GUID = {Quicksearch1TitleTextBox.Tag}" - If My.Database.ExecuteNonQuery(oUpd, DigitalData.Modules.EDMI.API.Constants.DatabaseType.IDB) = True Then - bsiInfo.Caption = "Title Quicksearch1 saved!" - End If - Catch ex As Exception - MsgBox(ex.Message, MsgBoxStyle.Critical) - End Try + + Dim oTextbox As BaseEdit = sender + SaveCatalogSetting(oTextbox.Tag, oTextbox.EditValue) End Sub + Private Sub SkinPaletteRibbonGalleryBarItem1_GalleryItemClick(sender As Object, e As DevExpress.XtraBars.Ribbon.GalleryItemClickEventArgs) Handles SkinPaletteRibbonGalleryBarItem1.GalleryItemClick UpdateThemeSettings() End Sub @@ -181,4 +164,6 @@ Public Class frmConfigBasic End Sub + + End Class \ No newline at end of file diff --git a/Modules.Interfaces/ActiveDirectoryInterface.vb b/Modules.Interfaces/ActiveDirectoryInterface.vb index 73fdff19..8356fbfa 100644 --- a/Modules.Interfaces/ActiveDirectoryInterface.vb +++ b/Modules.Interfaces/ActiveDirectoryInterface.vb @@ -123,6 +123,9 @@ Public Class ActiveDirectoryInterface Return ListGroups(_rootNode, Query) End Function + Public Async Function ListGroupsAsync(Optional Query As String = DEFAULT_GROUP_FILTER) As Task(Of List(Of ADGroup)) + Return Await Task.Run(Function() ListGroups(Query)) + End Function Public Function ListGroups(RootNode As DirectoryEntry, Optional Query As String = DEFAULT_GROUP_FILTER) As List(Of ADGroup) Dim oGroups As New List(Of ADGroup) @@ -148,6 +151,10 @@ Public Class ActiveDirectoryInterface Return ListUsers(GroupName, New List(Of AttributeMapping), Filter) End Function + Public Async Function ListUsersAsync(GroupName As String, Optional Filter As String = DEFAULT_USER_FILTER) As Task(Of List(Of ADUser)) + Return Await Task.Run(Function() ListUsers(GroupName, Filter)) + End Function + Public Function ListUsers(GroupName As String, AttributeMappings As List(Of AttributeMapping), Optional Filter As String = DEFAULT_USER_FILTER) As List(Of ADUser) Dim oUsers As New List(Of ADUser) diff --git a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryGroup.vb b/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryGroup.vb index 6cee7990..285a9ebe 100644 --- a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryGroup.vb +++ b/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryGroup.vb @@ -1,13 +1,13 @@ Public Class ADGroup - Public SAMAccountName As String - Public ObjectClass As String - Public CN As String - Public Description As String - Public DistinguishedName As String - Public Name As String - Public ObjectCategory As String + Public Property SAMAccountName As String + Public Property ObjectClass As String + Public Property CN As String + Public Property Description As String + Public Property DistinguishedName As String + Public Property Name As String + Public Property ObjectCategory As String Public Overrides Function ToString() As String - Return $"SAMAccountName={SAMAccountName}" + Return SAMAccountName End Function End Class diff --git a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryUser.vb b/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryUser.vb index 64ba71ba..ee7504f6 100644 --- a/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryUser.vb +++ b/Modules.Interfaces/ActiveDirectoryInterface/ActiveDirectoryUser.vb @@ -1,19 +1,20 @@ Imports System.Security.Principal Public Class ADUser - Public GUID As Guid - Public SId As SecurityIdentifier - Public samAccountName As String - Public Surname As String - Public GivenName As String - Public Middlename As String - Public Email As String + Public Property GUID As Guid + Public Property samAccountName As String + Public Property SId As SecurityIdentifier + Public Property Surname As String + Public Property GivenName As String + Public Property Middlename As String + Public Property Email As String Public CustomAttributes As List(Of CustomAttribute) Public Overrides Function Equals(obj As Object) As Boolean Return DirectCast(obj, ADUser).samAccountName End Function + Public Overrides Function ToString() As String Return samAccountName End Function