|
@@ -776,7 +776,8 @@ public partial class MainWindow : IPanelHostControl
|
|
|
SystemLogsButton.Visibility = Visibility.Visible;
|
|
|
|
|
|
SetFrameworkItemVisibility(DocumentTypeList, ClientFactory.IsSupported<DocumentType>() && Security.IsAllowed<CanViewDocumentTypes>());
|
|
|
- SetVisibleIfAny(BackstageSeparator2, DocumentTypeList);
|
|
|
+ SetFrameworkItemVisibility(EventList, Security.IsAllowed<CanManageEvents>());
|
|
|
+ SetVisibleIfAny(BackstageSeparator2, DocumentTypeList, EventList);
|
|
|
|
|
|
//SetModuleVisibility<>(VideoRecordingButton, Security.IsAllowed<CanRecordScreen>());
|
|
|
|
|
@@ -2165,6 +2166,19 @@ public partial class MainWindow : IPanelHostControl
|
|
|
menu.IsOpen = true;
|
|
|
}
|
|
|
|
|
|
+ private void Issues_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ IssuesWindow.Execute();
|
|
|
+ CheckSupportTicketStatus();
|
|
|
+ }
|
|
|
+ catch(Exception err)
|
|
|
+ {
|
|
|
+ MessageWindow.ShowError("Could not load issues.", err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void StartForm<TEntityForm, TEntity, TEntityLink>(DigitalForm form)
|
|
|
where TEntityForm : EntityForm<TEntity, TEntityLink, TEntityForm>, new()
|
|
|
where TEntity : Entity, new()
|
|
@@ -2490,382 +2504,6 @@ public partial class MainWindow : IPanelHostControl
|
|
|
PanelHost.IncrementTrackingModuleKey();
|
|
|
}
|
|
|
|
|
|
- #region Recording
|
|
|
-
|
|
|
- //private IntPtr myHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
|
|
|
- //{
|
|
|
-
|
|
|
- // switch (msg)
|
|
|
- // {
|
|
|
- // case 0x100:
|
|
|
- // if (_subject != null)
|
|
|
- // {
|
|
|
- // _recorder.Stop();
|
|
|
- // pausestarted = DateTime.Now;
|
|
|
- // _subject.OnNext(new WampEvent() { Arguments = new[] { "EDIT" } });
|
|
|
- // }
|
|
|
- // break;
|
|
|
-
|
|
|
- // default:
|
|
|
- // messages.TryGetValue(msg, out int value);
|
|
|
- // messages[msg] = value + 1;
|
|
|
- // break;
|
|
|
- // }
|
|
|
- // return IntPtr.Zero;
|
|
|
- //}
|
|
|
-
|
|
|
- // private void RecordScreenButton_Click(object sender, RoutedEventArgs e)
|
|
|
- // {
|
|
|
- // ToggleRecording();
|
|
|
- // }
|
|
|
- //
|
|
|
- // private bool ToggleRecording()
|
|
|
- // {
|
|
|
- // if (!Security.IsAllowed<CanRecordScreen>())
|
|
|
- // return true;
|
|
|
- //
|
|
|
- // if (_recorder is null)
|
|
|
- // {
|
|
|
- // var windowInteropHelper = new WindowInteropHelper(this);
|
|
|
- // var screen = Screen.FromHandle(windowInteropHelper.Handle);
|
|
|
- // _screenleft = screen.WorkingArea.Left;
|
|
|
- // _screentop = screen.WorkingArea.Top;
|
|
|
- // _screenwidth = screen.WorkingArea.Width;
|
|
|
- // _screenheight = screen.WorkingArea.Height;
|
|
|
- //
|
|
|
- // //VIDEO_WIDTH = _screenwidth;
|
|
|
- // //VIDEO_HEIGHT = _screenheight;
|
|
|
- //
|
|
|
- // //SetupJPEGEncoder();
|
|
|
- //
|
|
|
- // messages.Clear();
|
|
|
- // _bitmaps.Clear();
|
|
|
- //
|
|
|
- // ConnectToRecordNotes();
|
|
|
- //
|
|
|
- // StartAudio();
|
|
|
- //
|
|
|
- // _recorder = new DispatcherTimer();
|
|
|
- // _recorder.Tick += (timer, args) => { TakeScreenShot(); };
|
|
|
- // _recorder.Interval = TimeSpan.FromMilliseconds(1000 / FRAMES_PER_SECOND);
|
|
|
- // _recorder.Start();
|
|
|
- //
|
|
|
- //
|
|
|
- // VideoRecordingStatus.Source = PRSDesktop.Resources.videorecording.AsBitmapImage();
|
|
|
- // RecordingNotesStatus.Source = PRSDesktop.Resources.speechbubble.AsGrayScale().AsBitmapImage();
|
|
|
- // RecordingNotesButton.Visibility = Visibility.Visible;
|
|
|
- // AudioRecordingStatus.Source = PRSDesktop.Resources.audiorecording.AsGrayScale().AsBitmapImage();
|
|
|
- // AudioRecordingButton.Visibility = Visibility.Visible;
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // using (new WaitCursor())
|
|
|
- // {
|
|
|
- // StopRecording();
|
|
|
- //
|
|
|
- // _recorder.Stop();
|
|
|
- // _recorder = null;
|
|
|
- //
|
|
|
- // DisconnectRecorderNotes();
|
|
|
- //
|
|
|
- // VideoRecordingStatus.Source = PRSDesktop.Resources.videorecording.AsGrayScale().AsBitmapImage();
|
|
|
- // RecordingNotesStatus.Source = PRSDesktop.Resources.speechbubble.AsGrayScale().AsBitmapImage();
|
|
|
- // RecordingNotesButton.Visibility = Visibility.Hidden;
|
|
|
- // AudioRecordingStatus.Source = PRSDesktop.Resources.audiorecording.AsGrayScale().AsBitmapImage();
|
|
|
- // AudioRecordingButton.Visibility = Visibility.Hidden;
|
|
|
- //
|
|
|
- // var filename = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyVideos),
|
|
|
- // string.Format("PRS Screen Recording {0:yyyy-MM-dd hh-mm-ss-ff}.avi", DateTime.Now));
|
|
|
- // ProcessScreenShots(filename);
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // return true;
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void StopRecording()
|
|
|
- // {
|
|
|
- // try
|
|
|
- // {
|
|
|
- // _audio?.StopRecording();
|
|
|
- // AudioRecordingStatus.Source = PRSDesktop.Resources.audiorecording.AsGrayScale().AsBitmapImage();
|
|
|
- // }
|
|
|
- // catch (Exception e)
|
|
|
- // {
|
|
|
- // Logger.Send(LogType.Error, "", string.Format("Unable to stop Audio Recording: {0}\n{1}", e.Message, e.StackTrace));
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void StartAudio()
|
|
|
- // {
|
|
|
- // _audioMuted = true;
|
|
|
- // _audioStream = new MemoryStream();
|
|
|
- // _audio = new WaveIn
|
|
|
- // {
|
|
|
- // DeviceNumber = 0,
|
|
|
- // WaveFormat = new WaveFormat(44100, 16, 2)
|
|
|
- // };
|
|
|
- // _audio.DataAvailable += (o, e) =>
|
|
|
- // {
|
|
|
- // var buf = _audioMuted ? new byte[e.BytesRecorded] : e.Buffer;
|
|
|
- // _audioStream.Write(buf, 0, e.BytesRecorded);
|
|
|
- // };
|
|
|
- //
|
|
|
- // try
|
|
|
- // {
|
|
|
- // _audio.StartRecording();
|
|
|
- // AudioRecordingStatus.Source = PRSDesktop.Resources.audiorecording.AsBitmapImage();
|
|
|
- // }
|
|
|
- // catch (Exception e)
|
|
|
- // {
|
|
|
- // Logger.Send(LogType.Error, "", string.Format("Unable to start Audio Recording: {0}\n{1}", e.Message, e.StackTrace));
|
|
|
- // AudioRecordingStatus.Source = PRSDesktop.Resources.audiorecording.AsGrayScale().AsBitmapImage();
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // private bool ToggleRecordingAudio()
|
|
|
- // {
|
|
|
- // if (!Security.IsAllowed<CanRecordScreen>())
|
|
|
- // return true;
|
|
|
- // if (_recorder != null)
|
|
|
- // {
|
|
|
- // _audioMuted = !_audioMuted;
|
|
|
- // AudioRecordingStatus.Source = _audioMuted
|
|
|
- // ? PRSDesktop.Resources.audiorecording.AsGrayScale().AsBitmapImage()
|
|
|
- // : PRSDesktop.Resources.audiorecording.AsBitmapImage();
|
|
|
- // }
|
|
|
- //
|
|
|
- // return true;
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void DisconnectRecorderNotes()
|
|
|
- // {
|
|
|
- // if (_client != null)
|
|
|
- // {
|
|
|
- // _client.WriteAsync("QUIT");
|
|
|
- // _client.StopAsync();
|
|
|
- // _client = null;
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void ConnectToRecordNotes()
|
|
|
- // {
|
|
|
- // var filename = Debugger.IsAttached
|
|
|
- // ? "c:\\development\\comal\\prsrecordingnotes\\bin\\debug\\prsrecordingnotes.exe"
|
|
|
- // : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "recordingnotes", "prsrecordingnotes.exe");
|
|
|
- // Logger.Send(LogType.Information, "", "Recording Notes: " + filename);
|
|
|
- // _recordingnotes = Process.Start(filename);
|
|
|
- //
|
|
|
- // //PipeSecurity sec = new System.IO.Pipes.PipeSecurity();
|
|
|
- // //sec.SetAccessRule(new PipeAccessRule("Everyone", PipeAccessRights.ReadWrite, AccessControlType.Allow));
|
|
|
- // _client = new PipeServer<string>("PRSScreenRecorder", formatter:new BinaryFormatter()); //, sec);
|
|
|
- // _client.ClientConnected += (o, args) => args.Connection.WriteAsync("Connected to PRSScreenRecorder");
|
|
|
- // _client.MessageReceived += (o, args) =>
|
|
|
- // {
|
|
|
- // if (string.Equals(args.Message, "RESUME"))
|
|
|
- // Dispatcher.Invoke(() =>
|
|
|
- // {
|
|
|
- // _audio?.StartRecording();
|
|
|
- // totalpauses += DateTime.Now - pausestarted;
|
|
|
- // _recorder?.Start();
|
|
|
- // Activate();
|
|
|
- // Focus();
|
|
|
- // });
|
|
|
- // };
|
|
|
- // _client.StartAsync();
|
|
|
- // }
|
|
|
- //
|
|
|
- // private bool ShowRecordingNotes()
|
|
|
- // {
|
|
|
- // if (_recorder != null)
|
|
|
- // {
|
|
|
- // _audio?.StopRecording();
|
|
|
- // _recorder.Stop();
|
|
|
- // pausestarted = DateTime.Now;
|
|
|
- // _client?.WriteAsync("EDIT");
|
|
|
- // //_subject.OnNext(new WampEvent() { Arguments = new[] { "EDIT" } });
|
|
|
- // }
|
|
|
- //
|
|
|
- // return true;
|
|
|
- // }
|
|
|
-
|
|
|
- // private void TakeScreenShot()
|
|
|
- // {
|
|
|
- // using (var bmp = new ScreenCapture().CaptureScreen(_screenleft, _screentop, _screenwidth, _screenheight))
|
|
|
- // {
|
|
|
- // var cursor = PointToScreen(Mouse.GetPosition(this));
|
|
|
- // using (var g = Graphics.FromImage(bmp))
|
|
|
- // {
|
|
|
- // var brush = new SolidBrush(System.Drawing.Color.FromArgb(128, 255, 255, 0));
|
|
|
- // g.FillEllipse(brush, new RectangleF((float)cursor.X - 25F, (float)cursor.Y - 25F, 50F, 50F));
|
|
|
- // var pen = new Pen(System.Drawing.Color.Black, 0.75F);
|
|
|
- // g.DrawLine(pen, (float)cursor.X - 10F, (float)cursor.Y, (float)cursor.X + 10F, (float)cursor.Y);
|
|
|
- // g.DrawLine(pen, (float)cursor.X, (float)cursor.Y - 10F, (float)cursor.X, (float)cursor.Y + 10F);
|
|
|
- // }
|
|
|
- //
|
|
|
- // var key = DateTime.Now - totalpauses;
|
|
|
- //
|
|
|
- //
|
|
|
- // using (var reduced = ReduceBitmap(bmp, VIDEO_WIDTH, VIDEO_HEIGHT))
|
|
|
- // {
|
|
|
- // var ms = new MemoryStream();
|
|
|
- // reduced.Save(ms, ImageFormat.Png);
|
|
|
- // ms.Position = 0;
|
|
|
- // _bitmaps[key] = ms;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // public Bitmap ReduceBitmap(Bitmap original, int reducedWidth, int reducedHeight)
|
|
|
- // {
|
|
|
- // var reduced = new Bitmap(reducedWidth, reducedHeight);
|
|
|
- // using (var dc = Graphics.FromImage(reduced))
|
|
|
- // {
|
|
|
- // // Figure out the ratio
|
|
|
- // var ratioX = (double)reducedWidth / original.Width;
|
|
|
- // var ratioY = (double)reducedHeight / original.Height;
|
|
|
- // // use whichever multiplier is smaller
|
|
|
- // var ratio = ratioX < ratioY ? ratioX : ratioY;
|
|
|
- //
|
|
|
- // // now we can get the new height and width
|
|
|
- // var newHeight = Convert.ToInt32(original.Height * ratio);
|
|
|
- // var newWidth = Convert.ToInt32(original.Width * ratio);
|
|
|
- //
|
|
|
- // // Now calculate the X,Y position of the upper-left corner
|
|
|
- // // (one of these will always be zero)
|
|
|
- // var posX = Convert.ToInt32((reducedWidth - original.Width * ratio) / 2);
|
|
|
- // var posY = Convert.ToInt32((reducedHeight - original.Height * ratio) / 2);
|
|
|
- //
|
|
|
- // dc.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
|
|
- //
|
|
|
- // dc.Clear(System.Drawing.Color.Black); // white padding
|
|
|
- // //dc.DrawImage(original, posX, posY, newWidth, newHeight);
|
|
|
- // dc.DrawImage(original, new Rectangle(posX, posY, newWidth, newHeight), new Rectangle(0, 0, original.Width, original.Height),
|
|
|
- // GraphicsUnit.Pixel);
|
|
|
- // }
|
|
|
- //
|
|
|
- // return reduced;
|
|
|
- // }
|
|
|
- //
|
|
|
- // public static byte[] BitmapToByteArray(Bitmap bitmap, int width, int height)
|
|
|
- // {
|
|
|
- // // and buffer of appropriate size for storing its bits
|
|
|
- // var buffer = new byte[width * height * 4];
|
|
|
- //
|
|
|
- // var pixelFormat = PixelFormat.Format32bppRgb;
|
|
|
- //
|
|
|
- // // Now copy bits from bitmap to buffer
|
|
|
- // var bits = bitmap.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadOnly, pixelFormat);
|
|
|
- //
|
|
|
- // //Marshal.Copy(bits.Scan0, buffer, 0, buffer.Length);
|
|
|
- //
|
|
|
- // Marshal.Copy(bits.Scan0, buffer, 0, buffer.Length);
|
|
|
- //
|
|
|
- // bitmap.UnlockBits(bits);
|
|
|
- //
|
|
|
- // return buffer;
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void ProcessScreenShots(string filename)
|
|
|
- // {
|
|
|
- // if (!_bitmaps.Any() || _audioStream is null)
|
|
|
- // return;
|
|
|
- //
|
|
|
- // Progress.Show("Saving Video");
|
|
|
- // var framRate = 10;
|
|
|
- //
|
|
|
- // using (var writer = new AviWriter(filename))
|
|
|
- // {
|
|
|
- // writer.FramesPerSecond = framRate;
|
|
|
- // writer.EmitIndex1 = true;
|
|
|
- //
|
|
|
- // _audioStream.Position = 0;
|
|
|
- // var audio = writer.AddAudioStream(2);
|
|
|
- // //audio.WriteBlock(_audioStream.GetBuffer(), 0, (int)_audioStream.Length);
|
|
|
- // //File.WriteAllBytes(Path.ChangeExtension(filename, "wav"), _audioStream.GetBuffer());
|
|
|
- // var audioByteRate = audio.BitsPerSample / 8 * audio.ChannelCount * audio.SamplesPerSecond;
|
|
|
- // var audioBlockSize = (int)(audioByteRate / writer.FramesPerSecond);
|
|
|
- // var audioBuffer = new byte[audioBlockSize];
|
|
|
- // _audioStream.Position = 0;
|
|
|
- //
|
|
|
- // var encoder = new MJpegWpfVideoEncoder(VIDEO_WIDTH, VIDEO_HEIGHT, 50);
|
|
|
- // var stream = writer.AddEncodingVideoStream(encoder, true, VIDEO_WIDTH, VIDEO_HEIGHT);
|
|
|
- //
|
|
|
- // //var encoder = new SharpAvi.Codecs.UncompressedVideoEncoder(VIDEO_WIDTH, VIDEO_HEIGHT);
|
|
|
- // //var stream = writer.AddEncodingVideoStream(encoder,true,VIDEO_WIDTH, VIDEO_HEIGHT);
|
|
|
- // //stream.Codec = CodecIds.Uncompressed;
|
|
|
- // //stream.BitsPerPixel = BitsPerPixel.Bpp16;
|
|
|
- //
|
|
|
- // IEnumerable<DateTime> keys = _bitmaps.Keys.OrderBy(x => x);
|
|
|
- // var start = keys.First();
|
|
|
- // var end = keys.Last();
|
|
|
- // for (var cur = start; cur <= end; cur = cur + TimeSpan.FromMilliseconds(100))
|
|
|
- // {
|
|
|
- // Progress.SetMessage(string.Format("Processing ({0:F2} complete)",
|
|
|
- // (cur - start).TotalSeconds * 100.0F / (end - start).TotalSeconds));
|
|
|
- // var key = keys.LastOrDefault(x => x <= cur);
|
|
|
- // if (_bitmaps.ContainsKey(key))
|
|
|
- // {
|
|
|
- // var frame = (Image.FromStream(_bitmaps[key]) as Bitmap)!;
|
|
|
- // //frame.RotateFlip(RotateFlipType.RotateNoneFlipY);
|
|
|
- // var buf = BitmapToByteArray(frame, stream.Width, stream.Height);
|
|
|
- // stream.WriteFrame(true, buf, 0, buf.Length);
|
|
|
- //
|
|
|
- // if (_audioStream.Position < _audioStream.Length)
|
|
|
- // {
|
|
|
- // var bytes = _audioStream.Read(audioBuffer, 0, audioBlockSize);
|
|
|
- // audio.WriteBlock(audioBuffer, 0, bytes);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // writer.Close();
|
|
|
- //
|
|
|
- // //foreach (var key in _bitmaps.Keys)
|
|
|
- // // File.Delete(_bitmaps[key]);
|
|
|
- // }
|
|
|
- //
|
|
|
- // Progress.SetMessage("Transcoding");
|
|
|
- //
|
|
|
- // //var inputFile = new MediaFile { Filename = filename };
|
|
|
- // //var outputFile = new MediaFile { Filename = Path.ChangeExtension(filename, "mp4") };
|
|
|
- //
|
|
|
- // //using (var engine = new Engine())
|
|
|
- // //{
|
|
|
- // // //engine.ConvertProgressEvent += ConvertProgressEvent;
|
|
|
- // // engine.Convert(inputFile, outputFile);
|
|
|
- // //}
|
|
|
- //
|
|
|
- // Progress.Close();
|
|
|
- //
|
|
|
- // var dirName = Path.GetDirectoryName(filename);
|
|
|
- // if (dirName is not null)
|
|
|
- // {
|
|
|
- // var startInfo = new ProcessStartInfo(dirName);
|
|
|
- // startInfo.Verb = "open";
|
|
|
- // startInfo.UseShellExecute = true;
|
|
|
- // Process.Start(startInfo);
|
|
|
- // //MessageBox.Show("Recording Saved");
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void VideoRecordingButton_Click(object sender, RoutedEventArgs e)
|
|
|
- // {
|
|
|
- // ToggleRecording();
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void AudioRecordingButton_Click(object sender, RoutedEventArgs e)
|
|
|
- // {
|
|
|
- // ToggleRecordingAudio();
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void RecordingNotesButton_Click(object sender, RoutedEventArgs e)
|
|
|
- // {
|
|
|
- // ShowRecordingNotes();
|
|
|
- // }
|
|
|
-
|
|
|
- #endregion
|
|
|
-
|
|
|
public static void ActivateWindow(Window window)
|
|
|
{
|
|
|
var hwnd = new WindowInteropHelper(window).EnsureHandle();
|
|
@@ -2906,65 +2544,6 @@ public partial class MainWindow : IPanelHostControl
|
|
|
[DllImport("user32.dll")]
|
|
|
private static extern IntPtr GetActiveWindow();
|
|
|
|
|
|
- // #region Check For Updates
|
|
|
- //
|
|
|
- // private string GetUpdateLocation()
|
|
|
- // {
|
|
|
- // if (App.DatabaseSettings.DatabaseType == DatabaseType.Networked)
|
|
|
- // {
|
|
|
- // if(ClientFactory.ClientType == typeof(RestClient<>))
|
|
|
- // {
|
|
|
- // string url = "";
|
|
|
- // //var domain = App.DatabaseSettings.URL.Split(new[] { "://" }, StringSplitOptions.RemoveEmptyEntries).Last();
|
|
|
- // //var port = App.DatabaseSettings.Port;
|
|
|
- // var domain = ClientFactory.Parameters?.FirstOrDefault()?.ToString() ?? "";
|
|
|
- // domain = domain.Split(new[] { "://" }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault() ?? "";
|
|
|
- // if (!String.IsNullOrWhiteSpace(domain))
|
|
|
- // {
|
|
|
- //
|
|
|
- // try
|
|
|
- // {
|
|
|
- // var client = new HttpClient { BaseAddress = new Uri($"https://{domain}") };
|
|
|
- // client.GetAsync("operations").Wait();
|
|
|
- // url = $"https://{domain}";
|
|
|
- // }
|
|
|
- // catch (Exception)
|
|
|
- // {
|
|
|
- // url = $"http://{domain}";
|
|
|
- // }
|
|
|
- // }
|
|
|
- // return url;
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // return "";
|
|
|
- // }
|
|
|
- // }
|
|
|
- // else
|
|
|
- // return Path.Combine(CoreUtils.GetCommonAppData("PRSServer"), "update");
|
|
|
- // }
|
|
|
- //
|
|
|
- // private string GetLatestVersion(string location)
|
|
|
- // {
|
|
|
- // return Client.Version();
|
|
|
- // }
|
|
|
- // private string GetReleaseNotes(string location)
|
|
|
- // {
|
|
|
- // return Client.ReleaseNotes();
|
|
|
- // }
|
|
|
- // private byte[]? GetInstaller(string location)
|
|
|
- // {
|
|
|
- // return Client.Installer();
|
|
|
- // }
|
|
|
- //
|
|
|
- // private void CheckForUpdates()
|
|
|
- // {
|
|
|
- // Update.CheckForUpdates(
|
|
|
- // GetUpdateLocation, GetLatestVersion, GetReleaseNotes, GetInstaller, null, App.AutoUpdateSettings.Elevated, "PRSDesktopSetup.exe");
|
|
|
- // }
|
|
|
- //
|
|
|
- // #endregion
|
|
|
-
|
|
|
#region Modules + Reports
|
|
|
|
|
|
public void ClearActions()
|
|
@@ -3348,6 +2927,12 @@ public partial class MainWindow : IPanelHostControl
|
|
|
list.ShowDialog();
|
|
|
}
|
|
|
|
|
|
+ private void EventList_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ var list = new MasterList(typeof(Event));
|
|
|
+ list.ShowDialog();
|
|
|
+ }
|
|
|
+
|
|
|
private void EditDetailsButton_OnClick(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
var employee = new Client<Employee>().Query(
|
|
@@ -3413,24 +2998,5 @@ public partial class MainWindow : IPanelHostControl
|
|
|
Close();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
#endregion
|
|
|
-
|
|
|
- private void Issues_Click(object sender, RoutedEventArgs e)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- IssuesWindow.Execute();
|
|
|
- CheckSupportTicketStatus();
|
|
|
- }
|
|
|
- catch(Exception err)
|
|
|
- {
|
|
|
- MessageWindow.ShowError("Could not load issues.", err);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|