@@ -132,6 +132,9 @@
<metadata name="WorldStatusTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>694, 18</value>
</metadata>
<metadata name="FullUpdateWorker.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>843, 18</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -76,7 +76,7 @@ private void PopulateRepoFields()
CommitterEmailTitle.Visible = true;
RepoCommitterNameTextBox.Visible = true;
RepoEmailTextBox.Visible = true;
TestMergeButton.Visible = true;
MergePRButton.Visible = true;
TestMergeListLabel.Visible = true;
TestMergeListTitle.Visible = true;
UpdateRepoButton.Visible = true;
@@ -190,7 +190,7 @@ void DoAsyncOp(RepoAction ra, string message)
TestMergeListTitle.Visible = false;
RepoApplyButton.Visible = false;
UpdateRepoButton.Visible = false;
TestMergeButton.Visible = false;
MergePRButton.Visible = false;
CloneRepositoryButton.Visible = false;
RemoteNameTitle.Visible = false;
RepoRemoteTextBox.Visible = false;
@@ -1,17 +1,40 @@
using System.Windows.Forms;
using TGServiceInterface;

namespace TGControlPanel
{
partial class Main
{
string DDStatusString = null;
void InitServerPage()
{
LoadServerPage();
ServerTimer.Start();
WorldStatusChecker.RunWorkerAsync();
WorldStatusChecker.RunWorkerCompleted += WorldStatusChecker_RunWorkerCompleted;
using System;
using System.Windows.Forms;
using TGServiceInterface;

namespace TGControlPanel
{
partial class Main
{
enum FullUpdateAction
{
UpdateHard,
UpdateMerge,
UpdateHardTestmerge,
Testmerge,
}

FullUpdateAction fuAction;
int testmergePR;

string DDStatusString = null;
void InitServerPage()
{
LoadServerPage();
ServerTimer.Start();
WorldStatusChecker.RunWorkerAsync();
WorldStatusChecker.RunWorkerCompleted += WorldStatusChecker_RunWorkerCompleted;
FullUpdateWorker.RunWorkerCompleted += FullUpdateWorker_RunWorkerCompleted;
}

private void FullUpdateWorker_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
UpdateHardButton.Enabled = true;
UpdateMergeButton.Enabled = true;
TestmergeButton.Enabled = true;
UpdateTestmergeButton.Enabled = true;
LoadServerPage();
ServerTimer.Start();
}

private void WorldStatusChecker_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
@@ -71,6 +94,38 @@ private void ServerTimer_Tick(object sender, System.EventArgs e)
LoadServerPage();
}

private void RunServerUpdate(FullUpdateAction fua, int tm = 0)
{
if (FullUpdateWorker.IsBusy)
return;
testmergePR = tm;
fuAction = fua;
initializeButton.Enabled = false;
compileButton.Enabled = false;
UpdateHardButton.Enabled = false;
UpdateMergeButton.Enabled = false;
TestmergeButton.Enabled = false;
UpdateTestmergeButton.Enabled = false;
compilerProgressBar.Style = ProgressBarStyle.Marquee;
switch (fuAction)
{
case FullUpdateAction.Testmerge:
CompilerStatusLabel.Text = String.Format("Testmerging pull request #{0}...", testmergePR);
break;
case FullUpdateAction.UpdateHard:
CompilerStatusLabel.Text = String.Format("Updating Server (RESET)...");
break;
case FullUpdateAction.UpdateMerge:
CompilerStatusLabel.Text = String.Format("Updating Server (MERGE)...");
break;
case FullUpdateAction.UpdateHardTestmerge:
CompilerStatusLabel.Text = String.Format("Updating and testmerging pull request #{0}...", testmergePR);
break;
}
ServerTimer.Stop();
FullUpdateWorker.RunWorkerAsync();
}

private void InitializeButton_Click(object sender, System.EventArgs e)
{
if (!Server.GetComponent<ITGCompiler>().Initialize())
@@ -140,6 +195,43 @@ private void ServerGRestartButton_Click(object sender, System.EventArgs e)
if (DialogResult == DialogResult.No)
return;
Server.GetComponent<ITGDreamDaemon>().RequestRestart();
}
}
}
}
private void FullUpdateWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
var Updater = Server.GetComponent<ITGServerUpdater>();
switch (fuAction)
{
case FullUpdateAction.Testmerge:
Updater.UpdateServer(TGRepoUpdateMethod.None, false, (ushort)ServerTestmergeInput.Value);
break;
case FullUpdateAction.UpdateHard:
Updater.UpdateServer(TGRepoUpdateMethod.Hard, true);
break;
case FullUpdateAction.UpdateHardTestmerge:
Updater.UpdateServer(TGRepoUpdateMethod.None, true, (ushort)ServerTestmergeInput.Value);
break;
case FullUpdateAction.Testmerge:
Updater.UpdateServer(TGRepoUpdateMethod.None, false, (ushort)ServerTestmergeInput.Value);
break;
}
}
private void UpdateHardButton_Click(object sender, System.EventArgs e)
{

}

private void UpdateTestmergeButton_Click(object sender, System.EventArgs e)
{

}

private void UpdateMergeButton_Click(object sender, System.EventArgs e)
{

}
private void TestmergeButton_Click(object sender, System.EventArgs e)
{

}
}
}