/// <summary></summary> private void FillGridOld() { gridOld.BeginUpdate(); gridOld.ListGridColumns.Clear(); gridOld.ListGridRows.Clear(); if (gridMain.GetSelectedIndex() < 0) { gridOld.EndUpdate(); return; } if (string.IsNullOrEmpty(gridMain.SelectedTag <WikiListHist>()?.ListHeaders)) { gridMain.SelectedGridRows[0].Tag = WikiListHists.SelectOne(gridMain.SelectedTag <WikiListHist>()?.WikiListHistNum ?? 0); } Dictionary <string, int> dictColWidths = WikiListHeaderWidths.GetFromListHist(gridMain.SelectedTag <WikiListHist>()) .ToDictionary(x => x.ColName, x => x.ColWidth); using (DataTable table = new DataTable()) { using (StringReader sr = new StringReader(gridMain.SelectedTag <WikiListHist>().ListContent)) using (XmlReader xmlReader = XmlReader.Create(sr)) { try { table.ReadXml(xmlReader); } catch (Exception) { MsgBox.Show(this, "Corruption detected in the Old Revision table. Partial data will be displayed. Please call us for support."); gridOld.EndUpdate(); return; } } gridOld.ListGridColumns.AddRange( table.Columns.OfType <DataColumn>().Select(x => new GridColumn(x.ColumnName, dictColWidths.TryGetValue(x.ColumnName, out int width)?width:100))); gridOld.ListGridRows.AddRange(table.Select().Select(x => new GridRow(x.ItemArray.Select(y => y.ToString()).ToArray()))); } gridOld.EndUpdate(); }
private void butRevert_Click(object sender, EventArgs e) { if (gridMain.GetSelectedIndex() == -1) { return; } if (!MsgBox.Show(this, MsgBoxButtons.OKCancel, "Revert list to currently selected revision?")) { return; } try { WikiListHists.RevertFrom(gridMain.SelectedTag <WikiListHist>(), Security.CurUser.UserNum); } catch (Exception) { MsgBox.Show(this, "There was an error when trying to revert changes. Please call us for support."); return; } FillGridMain(); gridMain.SetSelected(gridMain.ListGridRows.Count - 1, true); //select the new revision. gridMain.ScrollToEnd(); //in case there are LOTS of revisions. Should this go in the fill grid code? FillGridOld(); FillGridCur(); gridMain.Focus(); IsReverted = true; }
///<summary>Sets the _isEdited bool to true and saves a copy in the wikilisthist table. This only happens once to prevent spamming of updates.</summary> private void SetIsEdited() { if (_isEdited || IsNew) //Dont save a wikiListHist entry if this is a new list, or we have already saved an entry prior to a previous edit. { return; } _wikiListOld.WikiListHistNum = WikiListHists.Insert(_wikiListOld); _isEdited = true; }
/// <summary></summary> private void FillGridMain() { gridMain.BeginUpdate(); gridMain.ListGridColumns.Clear(); gridMain.ListGridRows.Clear(); gridMain.ListGridColumns.AddRange(new[] { new GridColumn(Lan.g(this, "User"), 70), new GridColumn(Lan.g(this, "Saved"), 80) }); gridMain.ListGridRows.AddRange(WikiListHists.GetByNameNoContent(ListNameCur) .Select(x => new GridRow(Userods.GetName(x.UserNum), x.DateTimeSaved.ToString()) { Tag = x })); gridMain.EndUpdate(); }
private void FormWikiListEdit_Load(object sender, EventArgs e) { SetFilterControlsAndAction(() => FillGrid(), (int)TimeSpan.FromSeconds(0.5).TotalMilliseconds, textSearch); if (!WikiLists.CheckExists(WikiListCurName)) { IsNew = true; WikiLists.CreateNewWikiList(WikiListCurName); } _wikiListOld = WikiListHists.GenerateFromName(WikiListCurName, Security.CurUser.UserNum) ?? new WikiListHist(); FillGrid(); ActiveControl = textSearch; //start in search box. }
private void butHistory_Click(object sender, EventArgs e) { using (FormWikiListHistory FormWLH = new FormWikiListHistory()) { FormWLH.ListNameCur = WikiListCurName; FormWLH.ShowDialog(); if (!FormWLH.IsReverted) { return; } } //Reversion has already saved a copy of the current revision. _wikiListOld = WikiListHists.GenerateFromName(WikiListCurName, Security.CurUser.UserNum); FillGrid(); _isEdited = false; IsNew = false; }
private void butRenameList_Click(object sender, EventArgs e) { //Logic copied from FormWikiLists.butAdd_Click()--------------------- string newListName; using (InputBox inputListName = new InputBox("New List Name")) { if (inputListName.ShowDialog() != DialogResult.OK) { return; } //Format input as it would be saved in the database-------------------------------------------- newListName = inputListName.textResult.Text.ToLower().Replace(" ", ""); } //Validate list name--------------------------------------------------------------------------- if (string.IsNullOrEmpty(newListName)) { MsgBox.Show(this, "List name cannot be blank."); return; } if (DbHelper.isMySQLReservedWord(newListName)) { //Can become an issue when retrieving column header names. MsgBox.Show(this, "List name is a MySQL reserved word."); return; } if (WikiLists.CheckExists(newListName)) { MsgBox.Show(this, "List name already exists."); return; } try { Cursor = Cursors.WaitCursor; WikiLists.Rename(WikiListCurName, newListName); SetIsEdited(); WikiListHists.Rename(WikiListCurName, newListName); WikiListCurName = newListName; FillGrid(); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } finally { Cursor = Cursors.Default; } }
/// <summary></summary> private void FillGridMain() { gridMain.BeginUpdate(); gridMain.Columns.Clear(); ODGridColumn col = new ODGridColumn(Lan.g(this, "User"), 70); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g(this, "Saved"), 80); gridMain.Columns.Add(col); gridMain.Rows.Clear(); _listWikiListHists = WikiListHists.GetByName(ListNameCur); for (int i = 0; i < _listWikiListHists.Count; i++) { ODGridRow row = new ODGridRow(); row.Cells.Add(Userods.GetName(_listWikiListHists[i].UserNum)); row.Cells.Add(_listWikiListHists[i].DateTimeSaved.ToString()); gridMain.Rows.Add(row); } gridMain.EndUpdate(); }
private void FormWikiListEdit_Load(object sender, EventArgs e) { if (!WikiLists.CheckExists(WikiListCurName)) { IsNew = true; WikiLists.CreateNewWikiList(WikiListCurName); } _table = WikiLists.GetByName(WikiListCurName); _wikiListOld = WikiListHists.GenerateFromName(WikiListCurName, Security.CurUser.UserNum); if (_wikiListOld == null) { _wikiListOld = new WikiListHist(); } //Fill _columnHeaders _listColumnHeaders = WikiListHeaderWidths.GetForList(WikiListCurName); radioButHighlight.Checked = true; radioButFilter.Checked = false; FillGrid(); ActiveControl = textSearch; //start in search box. }
private void butRenameList_Click(object sender, EventArgs e) { //Logic copied from FormWikiLists.butAdd_Click()--------------------- InputBox inputListName = new InputBox("New List Name"); inputListName.ShowDialog(); if (inputListName.DialogResult != DialogResult.OK) { return; } //Format input as it would be saved in the database-------------------------------------------- inputListName.textResult.Text = inputListName.textResult.Text.ToLower().Replace(" ", ""); //Validate list name--------------------------------------------------------------------------- if (DbHelper.isMySQLReservedWord(inputListName.textResult.Text)) { //Can become an issue when retrieving column header names. MsgBox.Show(this, "List name is a reserved word in MySQL."); return; } if (inputListName.textResult.Text == "") { MsgBox.Show(this, "List name cannot be blank."); return; } if (WikiLists.CheckExists(inputListName.textResult.Text)) { MsgBox.Show(this, "List name already exists."); return; } try { WikiLists.Rename(WikiListCurName, inputListName.textResult.Text); SetIsEdited(); WikiListHists.Rename(WikiListCurName, inputListName.textResult.Text); WikiListCurName = inputListName.textResult.Text; _table = WikiLists.GetByName(WikiListCurName); FillGrid(); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }