mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2025-01-20 23:39:51 +01:00
Merge pull request #1097 from kc284/REQ-156
CA-217843 + some other issues on the PatchingWizard_SelectPatchPage
This commit is contained in:
commit
db4e5e6d6b
92
XenAdmin/Actions/GUIActions/RestoreDismissedUpdatesAction.cs
Normal file
92
XenAdmin/Actions/GUIActions/RestoreDismissedUpdatesAction.cs
Normal file
@ -0,0 +1,92 @@
|
||||
/* Copyright (c) Citrix Systems Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms,
|
||||
* with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the
|
||||
* following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the
|
||||
* following disclaimer in the documentation and/or other
|
||||
* materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using XenAdmin.Network;
|
||||
using XenAdmin.Core;
|
||||
using System.Linq;
|
||||
using XenAPI;
|
||||
|
||||
namespace XenAdmin.Actions
|
||||
{
|
||||
public class RestoreDismissedUpdatesAction : AsyncAction
|
||||
{
|
||||
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public RestoreDismissedUpdatesAction(IXenConnection connection)
|
||||
: base(connection, "restore_dismissed_updates", "restore_dismissed_updates", true)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void Run()
|
||||
{
|
||||
if (!AllowedToRestoreDismissedUpdates())
|
||||
return;
|
||||
|
||||
XenAPI.Pool pool = Helpers.GetPoolOfOne(Connection);
|
||||
if (pool == null)
|
||||
return;
|
||||
|
||||
Dictionary<string, string> other_config = pool.other_config;
|
||||
|
||||
if (other_config.ContainsKey(IgnorePatchAction.IgnorePatchKey))
|
||||
other_config.Remove(IgnorePatchAction.IgnorePatchKey);
|
||||
|
||||
if (other_config.ContainsKey(IgnoreServerAction.LAST_SEEN_SERVER_VERSION_KEY))
|
||||
other_config.Remove(IgnoreServerAction.LAST_SEEN_SERVER_VERSION_KEY);
|
||||
|
||||
|
||||
XenAPI.Pool.set_other_config(Connection.Session, pool.opaque_ref, other_config);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks the user has sufficient RBAC privileges to restore dismissed alerts on a given connection
|
||||
/// </summary>
|
||||
private bool AllowedToRestoreDismissedUpdates()
|
||||
{
|
||||
if (Connection == null || Connection.Session == null)
|
||||
return false;
|
||||
|
||||
if (Connection.Session.IsLocalSuperuser)
|
||||
return true;
|
||||
|
||||
List<Role> rolesAbleToCompleteAction = Role.ValidRoleList("Pool.set_other_config", Connection);
|
||||
foreach (Role possibleRole in rolesAbleToCompleteAction)
|
||||
{
|
||||
if (Connection.Session.Roles.Contains(possibleRole))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@ -47,6 +47,7 @@ namespace XenAdmin.Core
|
||||
|
||||
public static event Action<bool, string> CheckForUpdatesCompleted;
|
||||
public static event Action CheckForUpdatesStarted;
|
||||
public static event Action RestoreDismissedUpdatesStarted;
|
||||
|
||||
private static readonly object downloadedUpdatesLock = new object();
|
||||
private static List<XenServerVersion> XenServerVersionsForAutoCheck = new List<XenServerVersion>();
|
||||
@ -198,9 +199,8 @@ namespace XenAdmin.Core
|
||||
Properties.Settings.Default.AllowXenServerUpdates || force,
|
||||
Properties.Settings.Default.AllowPatchesUpdates || force,
|
||||
Updates.CheckForUpdatesUrl);
|
||||
{
|
||||
action.Completed += actionCompleted;
|
||||
}
|
||||
|
||||
action.Completed += actionCompleted;
|
||||
|
||||
if (CheckForUpdatesStarted != null)
|
||||
CheckForUpdatesStarted();
|
||||
@ -652,53 +652,28 @@ namespace XenAdmin.Core
|
||||
|
||||
public static void RestoreDismissedUpdates()
|
||||
{
|
||||
foreach (IXenConnection _connection in ConnectionsManager.XenConnectionsCopy)
|
||||
{
|
||||
if (!AllowedToRestoreDismissedUpdates(_connection))
|
||||
continue;
|
||||
var actions = new List<AsyncAction>();
|
||||
foreach (IXenConnection connection in ConnectionsManager.XenConnectionsCopy)
|
||||
actions.Add(new RestoreDismissedUpdatesAction(connection));
|
||||
|
||||
XenAPI.Pool pool = Helpers.GetPoolOfOne(_connection);
|
||||
if (pool == null)
|
||||
continue;
|
||||
var action = new ParallelAction(Messages.RESTORE_DISMISSED_UPDATES, Messages.RESTORING, Messages.COMPLETED, actions, true, false);
|
||||
action.Completed += action_Completed;
|
||||
|
||||
Dictionary<string, string> other_config = pool.other_config;
|
||||
if (RestoreDismissedUpdatesStarted != null)
|
||||
RestoreDismissedUpdatesStarted();
|
||||
|
||||
if (other_config.ContainsKey(IgnorePatchAction.IgnorePatchKey))
|
||||
{
|
||||
other_config.Remove(IgnorePatchAction.IgnorePatchKey);
|
||||
}
|
||||
if (other_config.ContainsKey(IgnoreServerAction.LAST_SEEN_SERVER_VERSION_KEY))
|
||||
{
|
||||
other_config.Remove(IgnoreServerAction.LAST_SEEN_SERVER_VERSION_KEY);
|
||||
}
|
||||
|
||||
XenAPI.Pool.set_other_config(_connection.Session, pool.opaque_ref, other_config);
|
||||
}
|
||||
|
||||
Properties.Settings.Default.LatestXenCenterSeen = "";
|
||||
Settings.TrySaveSettings();
|
||||
|
||||
Updates.CheckForUpdates(true);
|
||||
action.RunAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks the user has sufficient RBAC privileges to restore dismissed alerts on a given connection
|
||||
/// </summary>
|
||||
public static bool AllowedToRestoreDismissedUpdates(IXenConnection c)
|
||||
private static void action_Completed(ActionBase action)
|
||||
{
|
||||
if (c == null || c.Session == null)
|
||||
return false;
|
||||
|
||||
if (c.Session.IsLocalSuperuser)
|
||||
return true;
|
||||
|
||||
List<Role> rolesAbleToCompleteAction = Role.ValidRoleList("Pool.set_other_config", c);
|
||||
foreach (Role possibleRole in rolesAbleToCompleteAction)
|
||||
Program.Invoke(Program.MainWindow, () =>
|
||||
{
|
||||
if (c.Session.Roles.Contains(possibleRole))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
Properties.Settings.Default.LatestXenCenterSeen = "";
|
||||
Settings.TrySaveSettings();
|
||||
|
||||
CheckForUpdates(true);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
1
XenAdmin/TabPages/ManageUpdatesPage.Designer.cs
generated
1
XenAdmin/TabPages/ManageUpdatesPage.Designer.cs
generated
@ -16,6 +16,7 @@
|
||||
if (disposing)
|
||||
{
|
||||
XenAdmin.Core.Updates.DeregisterCollectionChanged(UpdatesCollectionChanged);
|
||||
XenAdmin.Core.Updates.RestoreDismissedUpdatesStarted -= Updates_RestoreDismissedUpdatesStarted;
|
||||
XenAdmin.Core.Updates.CheckForUpdatesStarted -= CheckForUpdates_CheckForUpdatesStarted;
|
||||
XenAdmin.Core.Updates.CheckForUpdatesCompleted -= CheckForUpdates_CheckForUpdatesCompleted;
|
||||
|
||||
|
@ -64,6 +64,7 @@ namespace XenAdmin.TabPages
|
||||
private List<string> selectedUpdates = new List<string>();
|
||||
private int checksQueue;
|
||||
private bool PageWasRefreshed;
|
||||
private bool CheckForUpdatesInProgress;
|
||||
|
||||
public ManageUpdatesPage()
|
||||
{
|
||||
@ -74,6 +75,7 @@ namespace XenAdmin.TabPages
|
||||
dataGridViewUpdates.Sort(ColumnDate, ListSortDirection.Descending);
|
||||
informationLabel.Click += informationLabel_Click;
|
||||
Updates.RegisterCollectionChanged(UpdatesCollectionChanged);
|
||||
Updates.RestoreDismissedUpdatesStarted += Updates_RestoreDismissedUpdatesStarted;
|
||||
Updates.CheckForUpdatesStarted += CheckForUpdates_CheckForUpdatesStarted;
|
||||
Updates.CheckForUpdatesCompleted += CheckForUpdates_CheckForUpdatesCompleted;
|
||||
pictureBox1.Image = SystemIcons.Information.ToBitmap();
|
||||
@ -94,23 +96,35 @@ namespace XenAdmin.TabPages
|
||||
|
||||
private void CheckForUpdates_CheckForUpdatesStarted()
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, () =>
|
||||
{
|
||||
checksQueue++;
|
||||
if (checksQueue > 1)
|
||||
return;
|
||||
Program.Invoke(Program.MainWindow, StartCheckForUpdates);
|
||||
}
|
||||
|
||||
toolStripButtonRefresh.Enabled = false;
|
||||
toolStripButtonRestoreDismissed.Enabled = false;
|
||||
private void Updates_RestoreDismissedUpdatesStarted()
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, StartCheckForUpdates);
|
||||
}
|
||||
|
||||
StoreSelectedUpdates();
|
||||
dataGridViewUpdates.Rows.Clear();
|
||||
dataGridViewUpdates.Refresh();
|
||||
private void StartCheckForUpdates()
|
||||
{
|
||||
if (CheckForUpdatesInProgress)
|
||||
return;
|
||||
|
||||
spinningTimer.Start();
|
||||
tableLayoutPanel3.Visible = true;
|
||||
labelProgress.Text = Messages.AVAILABLE_UPDATES_SEARCHING;
|
||||
});
|
||||
CheckForUpdatesInProgress = true;
|
||||
|
||||
checksQueue++;
|
||||
if (checksQueue > 1)
|
||||
return;
|
||||
|
||||
toolStripButtonRefresh.Enabled = false;
|
||||
toolStripButtonRestoreDismissed.Enabled = false;
|
||||
|
||||
StoreSelectedUpdates();
|
||||
dataGridViewUpdates.Rows.Clear();
|
||||
dataGridViewUpdates.Refresh();
|
||||
|
||||
spinningTimer.Start();
|
||||
tableLayoutPanel3.Visible = true;
|
||||
labelProgress.Text = Messages.AVAILABLE_UPDATES_SEARCHING;
|
||||
}
|
||||
|
||||
private void CheckForUpdates_CheckForUpdatesCompleted(bool succeeded, string errorMessage)
|
||||
@ -145,6 +159,8 @@ namespace XenAdmin.TabPages
|
||||
? Messages.AVAILABLE_UPDATES_NOT_FOUND
|
||||
: errorMessage;
|
||||
}
|
||||
|
||||
CheckForUpdatesInProgress = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -33,58 +33,99 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PatchingWizard_SelectPatchPage));
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.automaticOptionLabel = new System.Windows.Forms.Label();
|
||||
this.labelWithoutAutomatic = new System.Windows.Forms.Label();
|
||||
this.labelWithAutomatic = new System.Windows.Forms.Label();
|
||||
this.AutomaticRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.automaticOptionLabel = new System.Windows.Forms.Label();
|
||||
this.downloadUpdateRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.RefreshListButton = new System.Windows.Forms.Button();
|
||||
this.RestoreDismUpdatesButton = new System.Windows.Forms.Button();
|
||||
this.selectFromDiskRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.fileNameTextBox = new System.Windows.Forms.TextBox();
|
||||
this.BrowseButton = new System.Windows.Forms.Button();
|
||||
this.selectFromDiskRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.downloadUpdateRadioButton = new System.Windows.Forms.RadioButton();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.RefreshListButton = new System.Windows.Forms.Button();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.tableLayoutPanelSpinner = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.dataGridViewPatches = new XenAdmin.Controls.DataGridViewEx.DataGridViewEx();
|
||||
this.ColumnUpdate = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColumnDescription = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColumnDate = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.webPageColumn = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.tableLayoutPanel2.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
this.tableLayoutPanelSpinner.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridViewPatches)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
|
||||
this.tableLayoutPanel1.Controls.Add(this.automaticOptionLabel, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelWithoutAutomatic, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelWithAutomatic, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.AutomaticRadioButton, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.RestoreDismUpdatesButton, 1, 5);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label2, 0, 7);
|
||||
this.tableLayoutPanel1.Controls.Add(this.fileNameTextBox, 1, 7);
|
||||
this.tableLayoutPanel1.Controls.Add(this.BrowseButton, 2, 7);
|
||||
this.tableLayoutPanel1.Controls.Add(this.selectFromDiskRadioButton, 1, 6);
|
||||
this.tableLayoutPanel1.Controls.Add(this.automaticOptionLabel, 1, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.downloadUpdateRadioButton, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.dataGridViewPatches, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.RefreshListButton, 0, 5);
|
||||
this.tableLayoutPanel1.Controls.Add(this.RefreshListButton, 1, 6);
|
||||
this.tableLayoutPanel1.Controls.Add(this.RestoreDismUpdatesButton, 2, 6);
|
||||
this.tableLayoutPanel1.Controls.Add(this.selectFromDiskRadioButton, 0, 7);
|
||||
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 8);
|
||||
this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 5);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
//
|
||||
// automaticOptionLabel
|
||||
// labelWithoutAutomatic
|
||||
//
|
||||
resources.ApplyResources(this.automaticOptionLabel, "automaticOptionLabel");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.automaticOptionLabel, 3);
|
||||
this.automaticOptionLabel.Name = "automaticOptionLabel";
|
||||
resources.ApplyResources(this.labelWithoutAutomatic, "labelWithoutAutomatic");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.labelWithoutAutomatic, 3);
|
||||
this.labelWithoutAutomatic.Name = "labelWithoutAutomatic";
|
||||
//
|
||||
// labelWithAutomatic
|
||||
//
|
||||
resources.ApplyResources(this.labelWithAutomatic, "labelWithAutomatic");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.labelWithAutomatic, 3);
|
||||
this.labelWithAutomatic.Name = "labelWithAutomatic";
|
||||
//
|
||||
// AutomaticRadioButton
|
||||
//
|
||||
resources.ApplyResources(this.AutomaticRadioButton, "AutomaticRadioButton");
|
||||
this.AutomaticRadioButton.Checked = true;
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.AutomaticRadioButton, 3);
|
||||
this.AutomaticRadioButton.Name = "AutomaticRadioButton";
|
||||
this.AutomaticRadioButton.TabStop = true;
|
||||
this.AutomaticRadioButton.UseVisualStyleBackColor = true;
|
||||
this.AutomaticRadioButton.CheckedChanged += new System.EventHandler(this.AutomaticRadioButton_CheckedChanged);
|
||||
this.AutomaticRadioButton.TabStopChanged += new System.EventHandler(this.AutomaticRadioButton_TabStopChanged);
|
||||
//
|
||||
// automaticOptionLabel
|
||||
//
|
||||
resources.ApplyResources(this.automaticOptionLabel, "automaticOptionLabel");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.automaticOptionLabel, 2);
|
||||
this.automaticOptionLabel.Name = "automaticOptionLabel";
|
||||
//
|
||||
// downloadUpdateRadioButton
|
||||
//
|
||||
resources.ApplyResources(this.downloadUpdateRadioButton, "downloadUpdateRadioButton");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.downloadUpdateRadioButton, 3);
|
||||
this.downloadUpdateRadioButton.Name = "downloadUpdateRadioButton";
|
||||
this.downloadUpdateRadioButton.UseVisualStyleBackColor = true;
|
||||
this.downloadUpdateRadioButton.CheckedChanged += new System.EventHandler(this.downloadUpdateRadioButton_CheckedChanged);
|
||||
this.downloadUpdateRadioButton.TabStopChanged += new System.EventHandler(this.downloadUpdateRadioButton_TabStopChanged);
|
||||
//
|
||||
// RefreshListButton
|
||||
//
|
||||
resources.ApplyResources(this.RefreshListButton, "RefreshListButton");
|
||||
this.RefreshListButton.Name = "RefreshListButton";
|
||||
this.RefreshListButton.UseVisualStyleBackColor = true;
|
||||
this.RefreshListButton.Click += new System.EventHandler(this.RefreshListButton_Click);
|
||||
//
|
||||
// RestoreDismUpdatesButton
|
||||
//
|
||||
@ -93,6 +134,24 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
this.RestoreDismUpdatesButton.UseVisualStyleBackColor = true;
|
||||
this.RestoreDismUpdatesButton.Click += new System.EventHandler(this.RestoreDismUpdatesButton_Click);
|
||||
//
|
||||
// selectFromDiskRadioButton
|
||||
//
|
||||
resources.ApplyResources(this.selectFromDiskRadioButton, "selectFromDiskRadioButton");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.selectFromDiskRadioButton, 3);
|
||||
this.selectFromDiskRadioButton.Name = "selectFromDiskRadioButton";
|
||||
this.selectFromDiskRadioButton.UseVisualStyleBackColor = true;
|
||||
this.selectFromDiskRadioButton.CheckedChanged += new System.EventHandler(this.selectFromDiskRadioButton_CheckedChanged);
|
||||
this.selectFromDiskRadioButton.TabStopChanged += new System.EventHandler(this.selectFromDiskRadioButton_TabStopChanged);
|
||||
//
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
resources.ApplyResources(this.tableLayoutPanel2, "tableLayoutPanel2");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanel2, 2);
|
||||
this.tableLayoutPanel2.Controls.Add(this.label2, 0, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.fileNameTextBox, 1, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.BrowseButton, 2, 0);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
resources.ApplyResources(this.label2, "label2");
|
||||
@ -112,63 +171,70 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
this.BrowseButton.UseVisualStyleBackColor = true;
|
||||
this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
|
||||
//
|
||||
// selectFromDiskRadioButton
|
||||
// panel1
|
||||
//
|
||||
resources.ApplyResources(this.selectFromDiskRadioButton, "selectFromDiskRadioButton");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.selectFromDiskRadioButton, 4);
|
||||
this.selectFromDiskRadioButton.Name = "selectFromDiskRadioButton";
|
||||
this.selectFromDiskRadioButton.UseVisualStyleBackColor = true;
|
||||
this.selectFromDiskRadioButton.CheckedChanged += new System.EventHandler(this.selectFromDiskRadioButton_CheckedChanged);
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
|
||||
this.panel1.Controls.Add(this.tableLayoutPanelSpinner);
|
||||
this.panel1.Controls.Add(this.dataGridViewPatches);
|
||||
resources.ApplyResources(this.panel1, "panel1");
|
||||
this.panel1.Name = "panel1";
|
||||
//
|
||||
// downloadUpdateRadioButton
|
||||
// tableLayoutPanelSpinner
|
||||
//
|
||||
resources.ApplyResources(this.downloadUpdateRadioButton, "downloadUpdateRadioButton");
|
||||
this.downloadUpdateRadioButton.Checked = true;
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.downloadUpdateRadioButton, 3);
|
||||
this.downloadUpdateRadioButton.Name = "downloadUpdateRadioButton";
|
||||
this.downloadUpdateRadioButton.TabStop = true;
|
||||
this.downloadUpdateRadioButton.UseVisualStyleBackColor = true;
|
||||
this.downloadUpdateRadioButton.CheckedChanged += new System.EventHandler(this.downloadUpdateRadioButton_CheckedChanged);
|
||||
resources.ApplyResources(this.tableLayoutPanelSpinner, "tableLayoutPanelSpinner");
|
||||
this.tableLayoutPanelSpinner.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.tableLayoutPanelSpinner.Controls.Add(this.pictureBox1, 0, 0);
|
||||
this.tableLayoutPanelSpinner.Controls.Add(this.label1, 1, 0);
|
||||
this.tableLayoutPanelSpinner.Name = "tableLayoutPanelSpinner";
|
||||
//
|
||||
// label3
|
||||
// pictureBox1
|
||||
//
|
||||
resources.ApplyResources(this.label3, "label3");
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.label3, 3);
|
||||
this.label3.Name = "label3";
|
||||
this.pictureBox1.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.pictureBox1.Image = global::XenAdmin.Properties.Resources.ajax_loader;
|
||||
resources.ApplyResources(this.pictureBox1, "pictureBox1");
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// RefreshListButton
|
||||
// label1
|
||||
//
|
||||
resources.ApplyResources(this.RefreshListButton, "RefreshListButton");
|
||||
this.RefreshListButton.Name = "RefreshListButton";
|
||||
this.RefreshListButton.UseVisualStyleBackColor = true;
|
||||
this.RefreshListButton.Click += new System.EventHandler(this.RefreshListButton_Click);
|
||||
resources.ApplyResources(this.label1, "label1");
|
||||
this.label1.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.label1.Name = "label1";
|
||||
//
|
||||
// dataGridViewPatches
|
||||
//
|
||||
this.dataGridViewPatches.AllowUserToResizeColumns = false;
|
||||
this.dataGridViewPatches.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
|
||||
this.dataGridViewPatches.BackgroundColor = System.Drawing.SystemColors.Window;
|
||||
this.dataGridViewPatches.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Raised;
|
||||
this.dataGridViewPatches.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
|
||||
this.dataGridViewPatches.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dataGridViewPatches.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.ColumnUpdate,
|
||||
this.ColumnDescription,
|
||||
this.ColumnDate,
|
||||
this.webPageColumn});
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.dataGridViewPatches, 3);
|
||||
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window;
|
||||
dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Window;
|
||||
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.ControlText;
|
||||
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dataGridViewPatches.DefaultCellStyle = dataGridViewCellStyle4;
|
||||
resources.ApplyResources(this.dataGridViewPatches, "dataGridViewPatches");
|
||||
this.dataGridViewPatches.HideSelection = true;
|
||||
this.dataGridViewPatches.Name = "dataGridViewPatches";
|
||||
this.dataGridViewPatches.ReadOnly = true;
|
||||
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dataGridViewPatches.RowHeadersDefaultCellStyle = dataGridViewCellStyle4;
|
||||
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridViewPatches.RowsDefaultCellStyle = dataGridViewCellStyle5;
|
||||
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dataGridViewPatches.RowHeadersDefaultCellStyle = dataGridViewCellStyle5;
|
||||
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridViewPatches.RowsDefaultCellStyle = dataGridViewCellStyle6;
|
||||
this.dataGridViewPatches.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridViewPatches.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewPatches_CellContentClick);
|
||||
this.dataGridViewPatches.CellMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dataGridViewPatches_CellMouseClick);
|
||||
@ -227,6 +293,13 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
this.Name = "PatchingWizard_SelectPatchPage";
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.tableLayoutPanel2.ResumeLayout(false);
|
||||
this.tableLayoutPanel2.PerformLayout();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.tableLayoutPanelSpinner.ResumeLayout(false);
|
||||
this.tableLayoutPanelSpinner.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridViewPatches)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
@ -242,7 +315,7 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
private System.Windows.Forms.RadioButton selectFromDiskRadioButton;
|
||||
private System.Windows.Forms.Button RefreshListButton;
|
||||
private System.Windows.Forms.RadioButton downloadUpdateRadioButton;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label labelWithAutomatic;
|
||||
private System.Windows.Forms.Button RestoreDismUpdatesButton;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnUpdate;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnDescription;
|
||||
@ -250,5 +323,11 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
private System.Windows.Forms.DataGridViewLinkColumn webPageColumn;
|
||||
private System.Windows.Forms.Label automaticOptionLabel;
|
||||
private System.Windows.Forms.RadioButton AutomaticRadioButton;
|
||||
private System.Windows.Forms.Label labelWithoutAutomatic;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelSpinner;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,6 @@ using System.Windows.Forms;
|
||||
using XenAdmin.Controls;
|
||||
using XenAdmin.Controls.DataGridViewEx;
|
||||
using XenAdmin.Core;
|
||||
using XenAdmin.Network;
|
||||
using XenAdmin.Properties;
|
||||
using XenAPI;
|
||||
using System.ComponentModel;
|
||||
@ -59,34 +58,51 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
public PatchingWizard_SelectPatchPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
PopulatePatchesBox();
|
||||
tableLayoutPanelSpinner.Visible = false;
|
||||
|
||||
labelWithAutomatic.Visible = automaticOptionLabel.Visible = AutomaticRadioButton.Visible = false;
|
||||
downloadUpdateRadioButton.Checked = true;
|
||||
|
||||
dataGridViewPatches.Sort(ColumnDate, ListSortDirection.Descending);
|
||||
}
|
||||
|
||||
|
||||
private void CheckForUpdates_CheckForUpdatesStarted()
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, () =>
|
||||
{
|
||||
RestoreDismUpdatesButton.Enabled = false;
|
||||
RefreshListButton.Enabled = false;
|
||||
});
|
||||
Program.Invoke(Program.MainWindow, StartCheckForUpdates);
|
||||
}
|
||||
|
||||
private void Updates_RestoreDismissedUpdatesStarted()
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, StartCheckForUpdates);
|
||||
}
|
||||
|
||||
private void StartCheckForUpdates()
|
||||
{
|
||||
if (CheckForUpdatesInProgress)
|
||||
return;
|
||||
|
||||
CheckForUpdatesInProgress = true;
|
||||
dataGridViewPatches.Rows.Clear();
|
||||
dataGridViewPatches.Focus();
|
||||
tableLayoutPanelSpinner.Visible = true;
|
||||
RestoreDismUpdatesButton.Enabled = false;
|
||||
RefreshListButton.Enabled = false;
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void CheckForUpdates_CheckForUpdatesCompleted(bool succeeded, string errorMessage)
|
||||
{
|
||||
Program.Invoke(Program.MainWindow, delegate
|
||||
{
|
||||
tableLayoutPanelSpinner.Visible = false;
|
||||
if (!IsInAutomaticMode)
|
||||
{
|
||||
PopulatePatchesBox();
|
||||
}
|
||||
|
||||
RefreshListButton.Enabled = true;
|
||||
RestoreDismUpdatesButton.Enabled = true;
|
||||
CheckForUpdatesInProgress = false;
|
||||
OnPageUpdated();
|
||||
RestoreDismUpdatesButton.Enabled = true;
|
||||
});
|
||||
}
|
||||
|
||||
@ -126,18 +142,27 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
public override void PageLoaded(PageLoadedDirection direction)
|
||||
{
|
||||
base.PageLoaded(direction);
|
||||
RefreshListButton.Enabled = true;
|
||||
Updates.CheckForUpdatesStarted += CheckForUpdates_CheckForUpdatesStarted;
|
||||
Updates.CheckForUpdatesCompleted += CheckForUpdates_CheckForUpdatesCompleted;
|
||||
Updates.RestoreDismissedUpdatesStarted += Updates_RestoreDismissedUpdatesStarted;
|
||||
|
||||
if (direction == PageLoadedDirection.Forward)
|
||||
{
|
||||
//if any connected host is licensed for automatic updating
|
||||
bool autoUpdatePossible = ConnectionsManager.XenConnectionsCopy.Any(c => c != null && c.Cache.Hosts.Any(h => !Host.RestrictBatchHotfixApply(h)));
|
||||
|
||||
labelWithAutomatic.Visible = automaticOptionLabel.Visible = AutomaticRadioButton.Visible = autoUpdatePossible;
|
||||
labelWithoutAutomatic.Visible = !autoUpdatePossible;
|
||||
|
||||
AutomaticRadioButton.Checked = autoUpdatePossible;
|
||||
downloadUpdateRadioButton.Checked = !autoUpdatePossible;
|
||||
|
||||
PopulatePatchesBox();
|
||||
UpdateEnablement();
|
||||
OnPageUpdated();
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsInAutomaticMode { get { return AutomaticRadioButton.Checked && AutomaticRadioButton.Enabled; } }
|
||||
public bool IsInAutomaticMode { get { return AutomaticRadioButton.Visible && AutomaticRadioButton.Checked; } }
|
||||
|
||||
public override void PageLeave(PageLoadedDirection direction, ref bool cancel)
|
||||
{
|
||||
@ -185,20 +210,21 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
else //In Automatic Mode
|
||||
{
|
||||
var downloadUpdatesAction = new DownloadUpdatesXmlAction(false, true, true, Updates.CheckForUpdatesUrl);
|
||||
var dialog = new ActionProgressDialog(downloadUpdatesAction, ProgressBarStyle.Marquee);
|
||||
|
||||
dialog.ShowDialog(this.Parent); //Will block until dialog closes, action completed
|
||||
using (var dialog = new ActionProgressDialog(downloadUpdatesAction, ProgressBarStyle.Marquee))
|
||||
dialog.ShowDialog(this.Parent); //Will block until dialog closes, action completed
|
||||
|
||||
if (!downloadUpdatesAction.Succeeded)
|
||||
{
|
||||
cancel = true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!cancel) //unsubscribe only if we are really leaving this page
|
||||
{
|
||||
Updates.RestoreDismissedUpdatesStarted -= Updates_RestoreDismissedUpdatesStarted;
|
||||
Updates.CheckForUpdatesStarted -= CheckForUpdates_CheckForUpdatesStarted;
|
||||
Updates.CheckForUpdatesCompleted -= CheckForUpdates_CheckForUpdatesCompleted;
|
||||
}
|
||||
base.PageLeave(direction, ref cancel);
|
||||
@ -258,6 +284,8 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
|
||||
public override void PageCancelled()
|
||||
{
|
||||
Updates.RestoreDismissedUpdatesStarted -= Updates_RestoreDismissedUpdatesStarted;
|
||||
Updates.CheckForUpdatesStarted -= CheckForUpdates_CheckForUpdatesStarted;
|
||||
Updates.CheckForUpdatesCompleted -= CheckForUpdates_CheckForUpdatesCompleted;
|
||||
}
|
||||
|
||||
@ -294,6 +322,11 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool EnablePrevious()
|
||||
{
|
||||
return !CheckForUpdatesInProgress;
|
||||
}
|
||||
|
||||
private string UpdateExtension
|
||||
{
|
||||
get { return "." + Branding.Update; }
|
||||
@ -305,18 +338,6 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
return !string.IsNullOrEmpty(fileName) && File.Exists(fileName) && (fileName.EndsWith(UpdateExtension) || fileName.EndsWith(".iso"));
|
||||
}
|
||||
|
||||
|
||||
private void UpdateEnablement()
|
||||
{
|
||||
dataGridViewPatches.HideSelection = !downloadUpdateRadioButton.Checked;
|
||||
|
||||
//if any connected host is licensed for automatic updating
|
||||
if (ConnectionsManager.XenConnectionsCopy.Any(c => c != null && c.Cache.Hosts.Any(h => !Host.RestrictBatchHotfixApply(h))))
|
||||
automaticOptionLabel.Visible = AutomaticRadioButton.Visible = true;
|
||||
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void BrowseButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Showing this dialog has the (undocumented) side effect of changing the working directory
|
||||
@ -328,18 +349,19 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
try
|
||||
{
|
||||
oldDir = Directory.GetCurrentDirectory();
|
||||
OpenFileDialog dlg = new OpenFileDialog();
|
||||
dlg.Multiselect = false;
|
||||
dlg.ShowReadOnly = false;
|
||||
dlg.Filter = string.Format(Messages.PATCHINGWIZARD_SELECTPATCHPAGE_UPDATESEXT, Branding.Update);
|
||||
dlg.FilterIndex = 0;
|
||||
dlg.CheckFileExists = true;
|
||||
dlg.ShowHelp = false;
|
||||
dlg.Title = Messages.PATCHINGWIZARD_SELECTPATCHPAGE_CHOOSE;
|
||||
|
||||
if (dlg.ShowDialog(this) == DialogResult.OK && dlg.CheckFileExists)
|
||||
using (OpenFileDialog dlg = new OpenFileDialog
|
||||
{
|
||||
Multiselect = false,
|
||||
ShowReadOnly = false,
|
||||
Filter = string.Format(Messages.PATCHINGWIZARD_SELECTPATCHPAGE_UPDATESEXT, Branding.Update),
|
||||
FilterIndex = 0,
|
||||
CheckFileExists = true,
|
||||
ShowHelp = false,
|
||||
Title = Messages.PATCHINGWIZARD_SELECTPATCHPAGE_CHOOSE
|
||||
})
|
||||
{
|
||||
AddFile(dlg.FileName);
|
||||
if (dlg.ShowDialog(this) == DialogResult.OK && dlg.CheckFileExists)
|
||||
AddFile(dlg.FileName);
|
||||
}
|
||||
OnPageUpdated();
|
||||
}
|
||||
@ -390,15 +412,11 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
}
|
||||
}
|
||||
|
||||
#region DataGridView
|
||||
|
||||
private void dataGridViewPatches_SelectionChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateEnablement();
|
||||
}
|
||||
|
||||
private void fileNameTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
selectFromDiskRadioButton.Checked = true;
|
||||
UpdateEnablement();
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void dataGridViewPatches_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
|
||||
@ -411,26 +429,11 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
return;
|
||||
PatchGridViewRow row = (PatchGridViewRow)dataGridViewPatches.Rows[e.RowIndex];
|
||||
row.toggleExpandedState();
|
||||
UpdateEnablement();
|
||||
}
|
||||
|
||||
private void RefreshListButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
dataGridViewPatches.Focus();
|
||||
|
||||
CheckForUpdatesInProgress = true;
|
||||
Updates.CheckForUpdates(true);
|
||||
PopulatePatchesBox();
|
||||
}
|
||||
|
||||
private void selectFromDiskRadioButton_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateEnablement();
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void dataGridViewPatches_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
|
||||
{
|
||||
|
||||
Alert alert1 = ((PatchGridViewRow)dataGridViewPatches.Rows[e.RowIndex1]).UpdateAlert;
|
||||
Alert alert2 = ((PatchGridViewRow)dataGridViewPatches.Rows[e.RowIndex2]).UpdateAlert;
|
||||
|
||||
@ -448,14 +451,9 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
PopulatePatchesBox();
|
||||
}
|
||||
|
||||
private void fileNameTextBox_Enter(object sender, EventArgs e)
|
||||
{
|
||||
selectFromDiskRadioButton.Checked = true;
|
||||
UpdateEnablement();
|
||||
}
|
||||
|
||||
private void dataGridViewPatches_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
{ // The click is on a column header
|
||||
{
|
||||
// The click is on a column header
|
||||
if (e.RowIndex == -1)
|
||||
{
|
||||
return;
|
||||
@ -464,14 +462,13 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
if (row != null && e.ColumnIndex == 3)
|
||||
{
|
||||
row.UpdateAlert.FixLinkAction();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void dataGridViewPatches_Enter(object sender, EventArgs e)
|
||||
{
|
||||
downloadUpdateRadioButton.Checked = true;
|
||||
UpdateEnablement();
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private class PatchGridViewRow : DataGridViewExRow, IEquatable<PatchGridViewRow>
|
||||
@ -599,21 +596,81 @@ namespace XenAdmin.Wizards.PatchingWizard
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Buttons
|
||||
|
||||
private void RestoreDismUpdatesButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Updates.RestoreDismissedUpdates();
|
||||
}
|
||||
|
||||
private void RefreshListButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Updates.CheckForUpdates(true);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region TextBox
|
||||
|
||||
private void fileNameTextBox_Enter(object sender, EventArgs e)
|
||||
{
|
||||
selectFromDiskRadioButton.Checked = true;
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void fileNameTextBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
selectFromDiskRadioButton.Checked = true;
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region RadioButtons
|
||||
|
||||
private void AutomaticRadioButton_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateEnablement();
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void downloadUpdateRadioButton_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateEnablement();
|
||||
}
|
||||
dataGridViewPatches.HideSelection = !downloadUpdateRadioButton.Checked;
|
||||
if (downloadUpdateRadioButton.Checked)
|
||||
dataGridViewPatches.Focus();
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void selectFromDiskRadioButton_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
OnPageUpdated();
|
||||
}
|
||||
|
||||
private void AutomaticRadioButton_TabStopChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!AutomaticRadioButton.TabStop)
|
||||
AutomaticRadioButton.TabStop = true;
|
||||
}
|
||||
|
||||
private void downloadUpdateRadioButton_TabStopChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!downloadUpdateRadioButton.TabStop)
|
||||
downloadUpdateRadioButton.TabStop = true;
|
||||
}
|
||||
|
||||
private void selectFromDiskRadioButton_TabStopChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!selectFromDiskRadioButton.TabStop)
|
||||
selectFromDiskRadioButton.TabStop = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public enum UpdateType { NewRetail, Existing, NewSuppPack}
|
||||
}
|
||||
}
|
||||
|
@ -121,49 +121,79 @@
|
||||
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<data name="labelWithoutAutomatic.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="automaticOptionLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<data name="labelWithoutAutomatic.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<data name="labelWithoutAutomatic.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="automaticOptionLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>36, 65</value>
|
||||
<data name="labelWithoutAutomatic.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 40</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>36, 3, 3, 3</value>
|
||||
<data name="labelWithoutAutomatic.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 0, 3, 6</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>562, 26</value>
|
||||
<data name="labelWithoutAutomatic.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>745, 17</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
<data name="labelWithoutAutomatic.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Text" xml:space="preserve">
|
||||
<value>[XenCenter] will &automatically download and install all current updates from [Citrix], usually with only a single reboot at the end.</value>
|
||||
<data name="labelWithoutAutomatic.Text" xml:space="preserve">
|
||||
<value>Select an update to be downloaded from [Citrix], or browse your computer for an update or supplemental pack file.</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
<data name=">>labelWithoutAutomatic.Name" xml:space="preserve">
|
||||
<value>labelWithoutAutomatic</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.Name" xml:space="preserve">
|
||||
<value>automaticOptionLabel</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.Type" xml:space="preserve">
|
||||
<data name=">>labelWithoutAutomatic.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.Parent" xml:space="preserve">
|
||||
<data name=">>labelWithoutAutomatic.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.ZOrder" xml:space="preserve">
|
||||
<data name=">>labelWithoutAutomatic.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Left</value>
|
||||
<data name="labelWithAutomatic.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="labelWithAutomatic.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="labelWithAutomatic.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="labelWithAutomatic.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 0</value>
|
||||
</data>
|
||||
<data name="labelWithAutomatic.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 0, 3, 6</value>
|
||||
</data>
|
||||
<data name="labelWithAutomatic.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>745, 34</value>
|
||||
</data>
|
||||
<data name="labelWithAutomatic.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="labelWithAutomatic.Text" xml:space="preserve">
|
||||
<value>Select Automatic mode or choose an update to be downloaded from [Citrix], or browse your computer for an update or supplemental pack file.</value>
|
||||
</data>
|
||||
<data name=">>labelWithAutomatic.Name" xml:space="preserve">
|
||||
<value>labelWithAutomatic</value>
|
||||
</data>
|
||||
<data name=">>labelWithAutomatic.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>labelWithAutomatic.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>labelWithAutomatic.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -172,25 +202,19 @@
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 42</value>
|
||||
<value>3, 75</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 16, 3, 3</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
|
||||
<value>No</value>
|
||||
<value>3, 12, 3, 3</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>72, 17</value>
|
||||
<value>91, 21</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.Text" xml:space="preserve">
|
||||
<value>Automatic</value>
|
||||
</data>
|
||||
<data name="AutomaticRadioButton.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
<value>&Automatic</value>
|
||||
</data>
|
||||
<data name=">>AutomaticRadioButton.Name" xml:space="preserve">
|
||||
<value>AutomaticRadioButton</value>
|
||||
@ -202,25 +226,121 @@
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>AutomaticRadioButton.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="RestoreDismUpdatesButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left</value>
|
||||
<data name="automaticOptionLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>23, 99</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>725, 34</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="automaticOptionLabel.Text" xml:space="preserve">
|
||||
<value>[XenCenter] will automatically download and install all current updates from [Citrix], usually with only a single reboot at the end.</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.Name" xml:space="preserve">
|
||||
<value>automaticOptionLabel</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>automaticOptionLabel.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 145</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 12, 3, 3</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 21</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Text" xml:space="preserve">
|
||||
<value>&Download update from [Citrix]</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.Name" xml:space="preserve">
|
||||
<value>downloadUpdateRadioButton</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>23, 429</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>94, 27</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Text" xml:space="preserve">
|
||||
<value>&Refresh List</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.Name" xml:space="preserve">
|
||||
<value>RefreshListButton</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="RestoreDismUpdatesButton.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="RestoreDismUpdatesButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="RestoreDismUpdatesButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 337</value>
|
||||
<value>123, 429</value>
|
||||
</data>
|
||||
<data name="RestoreDismUpdatesButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>178, 23</value>
|
||||
<value>193, 27</value>
|
||||
</data>
|
||||
<data name="RestoreDismUpdatesButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="RestoreDismUpdatesButton.Text" xml:space="preserve">
|
||||
<value>Restore &Dismissed Updates</value>
|
||||
<value>Restore Dismissed &Updates</value>
|
||||
</data>
|
||||
<data name=">>RestoreDismUpdatesButton.Name" xml:space="preserve">
|
||||
<value>RestoreDismUpdatesButton</value>
|
||||
@ -232,101 +352,8 @@
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>RestoreDismUpdatesButton.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="label2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>36, 404</value>
|
||||
</data>
|
||||
<data name="label2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>36, 5, 3, 0</value>
|
||||
</data>
|
||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 13</value>
|
||||
</data>
|
||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="label2.Text" xml:space="preserve">
|
||||
<value>&Filename:</value>
|
||||
</data>
|
||||
<data name="label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name=">>label2.Name" xml:space="preserve">
|
||||
<value>label2</value>
|
||||
</data>
|
||||
<data name=">>label2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label2.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>118, 402</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>388, 20</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.Name" xml:space="preserve">
|
||||
<value>fileNameTextBox</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="BrowseButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BrowseButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>512, 402</value>
|
||||
</data>
|
||||
<data name="BrowseButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 22</value>
|
||||
</data>
|
||||
<data name="BrowseButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="BrowseButton.Text" xml:space="preserve">
|
||||
<value>&Browse...</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.Name" xml:space="preserve">
|
||||
<value>BrowseButton</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="selectFromDiskRadioButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="selectFromDiskRadioButton.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@ -334,16 +361,16 @@
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="selectFromDiskRadioButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 379</value>
|
||||
<value>3, 471</value>
|
||||
</data>
|
||||
<data name="selectFromDiskRadioButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 16, 3, 3</value>
|
||||
<value>3, 12, 3, 3</value>
|
||||
</data>
|
||||
<data name="selectFromDiskRadioButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>240, 17</value>
|
||||
<value>316, 21</value>
|
||||
</data>
|
||||
<data name="selectFromDiskRadioButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="selectFromDiskRadioButton.Text" xml:space="preserve">
|
||||
<value>&Select update or supplemental pack from disk</value>
|
||||
@ -358,80 +385,230 @@
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>selectFromDiskRadioButton.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 110</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>3, 16, 3, 3</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
|
||||
<value>No</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>163, 17</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="downloadUpdateRadioButton.Text" xml:space="preserve">
|
||||
<value>Download &update from [Citrix]</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.Name" xml:space="preserve">
|
||||
<value>downloadUpdateRadioButton</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>downloadUpdateRadioButton.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||
<data name="tableLayoutPanel2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
<data name="tableLayoutPanel2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="label2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 0</value>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 8</value>
|
||||
</data>
|
||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>595, 26</value>
|
||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>69, 17</value>
|
||||
</data>
|
||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>Select Automatic mode or manually select an update to be downloaded from [Citrix], or browse an update or supplemental pack file from your computer.</value>
|
||||
<data name="label2.Text" xml:space="preserve">
|
||||
<value>&Filename:</value>
|
||||
</data>
|
||||
<data name=">>label3.Name" xml:space="preserve">
|
||||
<value>label3</value>
|
||||
<data name="label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name=">>label3.Type" xml:space="preserve">
|
||||
<data name=">>label2.Name" xml:space="preserve">
|
||||
<value>label2</value>
|
||||
</data>
|
||||
<data name=">>label2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label3.Parent" xml:space="preserve">
|
||||
<data name=">>label2.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel2</value>
|
||||
</data>
|
||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Left, Right</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>78, 5</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>562, 22</value>
|
||||
</data>
|
||||
<data name="fileNameTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.Name" xml:space="preserve">
|
||||
<value>fileNameTextBox</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel2</value>
|
||||
</data>
|
||||
<data name=">>fileNameTextBox.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="BrowseButton.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="BrowseButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BrowseButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>646, 3</value>
|
||||
</data>
|
||||
<data name="BrowseButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 27</value>
|
||||
</data>
|
||||
<data name="BrowseButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="BrowseButton.Text" xml:space="preserve">
|
||||
<value>&Browse...</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.Name" xml:space="preserve">
|
||||
<value>BrowseButton</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel2</value>
|
||||
</data>
|
||||
<data name=">>BrowseButton.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>23, 498</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>725, 33</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanel2.Name" xml:space="preserve">
|
||||
<value>tableLayoutPanel2</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanel2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanel2.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||
<data name=">>tableLayoutPanel2.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="label2" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="fileNameTextBox" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="BrowseButton" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,Percent,100,AutoSize,0" /><Rows Styles="AutoSize,0" /></TableLayoutSettings></value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.ColumnCount" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>16, 16</value>
|
||||
</data>
|
||||
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
||||
<value>AutoSize</value>
|
||||
</data>
|
||||
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.Name" xml:space="preserve">
|
||||
<value>pictureBox1</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanelSpinner</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Left, Right</value>
|
||||
</data>
|
||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>25, 2</value>
|
||||
</data>
|
||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>154, 17</value>
|
||||
</data>
|
||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="label1.Text" xml:space="preserve">
|
||||
<value>Checking for updates...</value>
|
||||
</data>
|
||||
<data name=">>label1.Name" xml:space="preserve">
|
||||
<value>label1</value>
|
||||
</data>
|
||||
<data name=">>label1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label1.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanelSpinner</value>
|
||||
</data>
|
||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>253, 112</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.RowCount" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>182, 22</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanelSpinner.Name" xml:space="preserve">
|
||||
<value>tableLayoutPanelSpinner</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanelSpinner.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanelSpinner.Parent" xml:space="preserve">
|
||||
<value>panel1</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanelSpinner.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanelSpinner.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="pictureBox1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label1" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,AutoSize,0" /><Rows Styles="AutoSize,0" /></TableLayoutSettings></value>
|
||||
</data>
|
||||
<metadata name="ColumnUpdate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
@ -442,7 +619,7 @@
|
||||
<value>50</value>
|
||||
</data>
|
||||
<data name="ColumnUpdate.Width" type="System.Int32, mscorlib">
|
||||
<value>67</value>
|
||||
<value>83</value>
|
||||
</data>
|
||||
<metadata name="ColumnDescription.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
@ -481,19 +658,16 @@
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="dataGridViewPatches.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>36, 133</value>
|
||||
</data>
|
||||
<data name="dataGridViewPatches.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>36, 3, 3, 3</value>
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="dataGridViewPatches.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="dataGridViewPatches.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>562, 198</value>
|
||||
<value>725, 251</value>
|
||||
</data>
|
||||
<data name="dataGridViewPatches.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>dataGridViewPatches.Name" xml:space="preserve">
|
||||
<value>dataGridViewPatches</value>
|
||||
@ -502,43 +676,34 @@
|
||||
<value>XenAdmin.Controls.DataGridViewEx.DataGridViewEx, XenCenterMain, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>dataGridViewPatches.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
<value>panel1</value>
|
||||
</data>
|
||||
<data name=">>dataGridViewPatches.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left</value>
|
||||
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>23, 172</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>36, 337</value>
|
||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>725, 251</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>36, 3, 3, 3</value>
|
||||
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>71, 23</value>
|
||||
<data name=">>panel1.Name" xml:space="preserve">
|
||||
<value>panel1</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
<data name=">>panel1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="RefreshListButton.Text" xml:space="preserve">
|
||||
<value>&Refresh List</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.Name" xml:space="preserve">
|
||||
<value>RefreshListButton</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.Parent" xml:space="preserve">
|
||||
<data name=">>panel1.Parent" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
</data>
|
||||
<data name=">>RefreshListButton.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
@ -550,10 +715,10 @@
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>601, 427</value>
|
||||
<value>751, 534</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>tableLayoutPanel1.Name" xml:space="preserve">
|
||||
<value>tableLayoutPanel1</value>
|
||||
@ -568,16 +733,19 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="automaticOptionLabel" Row="3" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="AutomaticRadioButton" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="RestoreDismUpdatesButton" Row="5" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="label2" Row="7" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="fileNameTextBox" Row="7" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="BrowseButton" Row="7" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="selectFromDiskRadioButton" Row="6" RowSpan="1" Column="1" ColumnSpan="4" /><Control Name="downloadUpdateRadioButton" Row="4" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="label3" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="dataGridViewPatches" Row="4" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="RefreshListButton" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Absolute,115,Percent,100,Absolute,92" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /></TableLayoutSettings></value>
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="labelWithoutAutomatic" Row="1" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="labelWithAutomatic" Row="0" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="AutomaticRadioButton" Row="2" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="automaticOptionLabel" Row="3" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="downloadUpdateRadioButton" Row="4" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="RefreshListButton" Row="6" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="RestoreDismUpdatesButton" Row="6" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="selectFromDiskRadioButton" Row="7" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="tableLayoutPanel2" Row="8" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="panel1" Row="5" RowSpan="1" Column="1" ColumnSpan="2" /></Controls><Columns Styles="Absolute,20,AutoSize,0,Percent,100,Absolute,20" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Percent,100,AutoSize,0,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>96, 96</value>
|
||||
<value>120, 120</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>601, 427</value>
|
||||
<value>751, 534</value>
|
||||
</data>
|
||||
<data name=">>ColumnUpdate.Name" xml:space="preserve">
|
||||
<value>ColumnUpdate</value>
|
||||
|
@ -97,6 +97,7 @@
|
||||
<Compile Include="Actions\GUIActions\ExportResourceReportAction.cs" />
|
||||
<Compile Include="Actions\GUIActions\DeleteAllAlertsAction.cs" />
|
||||
<Compile Include="Actions\GUIActions\ExternalPluginAction.cs" />
|
||||
<Compile Include="Actions\GUIActions\RestoreDismissedUpdatesAction.cs" />
|
||||
<Compile Include="Actions\GUIActions\MeddlingAction.cs" />
|
||||
<Compile Include="Actions\GUIActions\IgnoreServerAction.cs" />
|
||||
<Compile Include="Actions\GUIActions\IgnorePatchAction.cs" />
|
||||
|
@ -166,9 +166,12 @@ namespace XenAdmin.Actions
|
||||
lock (_lock)
|
||||
{
|
||||
i++;
|
||||
PercentComplete = 100 * i / subActions.Count;
|
||||
if (i == subActions.Count)
|
||||
int totalCount = actionsByConnection.Count + actionsWithNoConnection.Count;
|
||||
PercentComplete = 100 * i / totalCount;
|
||||
if (i == totalCount)
|
||||
{
|
||||
Monitor.Pulse(_lock);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
28
XenModel/Messages.Designer.cs
generated
28
XenModel/Messages.Designer.cs
generated
@ -1,7 +1,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.34209
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
@ -26099,7 +26099,7 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to This server cannot be updated automatically..
|
||||
/// Looks up a localized string similar to This server cannot be updated automatically.
|
||||
/// </summary>
|
||||
public static string PATCHINGWIZARD_SELECTSERVERPAGE_SERVER_NOT_AUTO_UPGRADABLE {
|
||||
get {
|
||||
@ -26135,7 +26135,8 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to .
|
||||
/// Looks up a localized string similar to Select one or more pools or standalone hosts that you want to have automatically updated.
|
||||
///Greyed out servers cannot be updated automatically..
|
||||
/// </summary>
|
||||
public static string PATCHINGWIZARD_SELECTSERVERPAGGE_RUBRIC_AUTOMATIC_MODE {
|
||||
get {
|
||||
@ -26144,7 +26145,8 @@ namespace XenAdmin {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to .
|
||||
/// Looks up a localized string similar to Select one or more servers from the list of available servers.
|
||||
///Servers where the selected update cannot be applied appear disabled in this list..
|
||||
/// </summary>
|
||||
public static string PATCHINGWIZARD_SELECTSERVERPAGGE_RUBRIC_DEFAULT {
|
||||
get {
|
||||
@ -28312,6 +28314,15 @@ namespace XenAdmin {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Restore dismissed updates.
|
||||
/// </summary>
|
||||
public static string RESTORE_DISMISSED_UPDATES {
|
||||
get {
|
||||
return ResourceManager.GetString("RESTORE_DISMISSED_UPDATES", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Backup file loaded to server '{0}'. Refer to the "[XenServer product] Administrator's Guide" for instructions on how to complete the restore procedure..
|
||||
/// </summary>
|
||||
@ -28330,6 +28341,15 @@ namespace XenAdmin {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Restoring....
|
||||
/// </summary>
|
||||
public static string RESTORING {
|
||||
get {
|
||||
return ResourceManager.GetString("RESTORING", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Restoring server '{0}'.
|
||||
/// </summary>
|
||||
|
@ -9022,7 +9022,7 @@ However, there is not enough space to perform the repartitioning, so the current
|
||||
<value>Update not applicable</value>
|
||||
</data>
|
||||
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_SERVER_NOT_AUTO_UPGRADABLE" xml:space="preserve">
|
||||
<value>This server cannot be updated automatically.</value>
|
||||
<value>This server cannot be updated automatically</value>
|
||||
</data>
|
||||
<data name="PATCHINGWIZARD_SELECTSERVERPAGE_SERVER_UP_TO_DATE" xml:space="preserve">
|
||||
<value>This server is already up-to-date.</value>
|
||||
@ -9859,12 +9859,18 @@ Click Server Status Report to open the Compile Server Status Report Wizard or cl
|
||||
<data name="RESOLVED_AS" xml:space="preserve">
|
||||
<value>Resolved as {0}</value>
|
||||
</data>
|
||||
<data name="RESTORE_DISMISSED_UPDATES" xml:space="preserve">
|
||||
<value>Restore dismissed updates</value>
|
||||
</data>
|
||||
<data name="RESTORE_FROM_BACKUP_FINALIZE" xml:space="preserve">
|
||||
<value>Backup file loaded to server '{0}'. Refer to the "[XenServer product] Administrator's Guide" for instructions on how to complete the restore procedure.</value>
|
||||
</data>
|
||||
<data name="RESTORE_HOST" xml:space="preserve">
|
||||
<value>Restore From Backup...</value>
|
||||
</data>
|
||||
<data name="RESTORING" xml:space="preserve">
|
||||
<value>Restoring...</value>
|
||||
</data>
|
||||
<data name="RESTORING_HOST" xml:space="preserve">
|
||||
<value>Restoring server '{0}'</value>
|
||||
</data>
|
||||
|
Loading…
Reference in New Issue
Block a user