| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Threading;
 
- using System.Windows.Media.Imaging;
 
- using FastReport.Dialog;
 
- using InABox.Core;
 
- using InABox.DynamicGrid;
 
- using InABox.WPF;
 
- using org.w3c.dom.html;
 
- using static InABox.Core.DataModelTemplate;
 
- using ScriptEditorWindow = InABox.DynamicGrid.ScriptEditorWindow;
 
- namespace PRSDesktop
 
- {
 
-     public class DataModelTemplateGrid : DynamicDataGrid<DataModelTemplate>
 
-     {
 
-         private readonly BitmapImage _edit = PRSDesktop.Resources.pencil.AsBitmapImage();
 
-         private DataModelTemplate[] Items;
 
-         public DataModelTemplateGrid()
 
-         {
 
-             HiddenColumns.Add(x => x.Template);
 
-             OnCustomiseEditor += DataModelTemplateGrid_OnCustomiseEditor;
 
-         }
 
-         private void DataModelTemplateGrid_OnCustomiseEditor(IDynamicEditorForm sender, DataModelTemplate[]? items, DynamicGridColumn column, BaseEditor editor)
 
-         {
 
-             if (editor == null)
 
-                 return;
 
-             if (column.ColumnName.Equals("Template")
 
-                 || column.ColumnName.Equals("To")
 
-                 || column.ColumnName.Equals("Subject")
 
-                 || column.ColumnName.Equals("AttachmentName")
 
-                 )
 
-             {
 
-                 var edt = editor as TextBoxEditor;
 
-                 edt.Buttons = new EditorButton[]
 
-                 {
 
-                     new EditorButton(items.FirstOrDefault(), "Edit", 60, TemplateEditorClicked, true)
 
-                 };
 
-             }
 
-         }
 
-         private void TemplateEditorClicked(object editor, object? item)
 
-         {
 
-             var template = item as DataModelTemplate;
 
-             var edtControl = editor as TextBoxEditorControl;
 
-             var col = edtControl.ColumnName;
 
-             var toEdit = CoreUtils.GetPropertyValue(template, col);
 
-             var edt = new ScriptEditorWindow(toEdit as string, SyntaxLanguage.HTML);
 
-             var snippets = new Dictionary<string, string[]>();
 
-             foreach (var (name, table) in Model.ModelTables)
 
-             {
 
-                 var variable = name.Substring(0, 1).ToLower();
 
-                 var cursnippets = new List<string>();
 
-                 cursnippets.Add("{{ for " + variable + " in " + name + " }}\n\n{{ end }}");
 
-                 if(table.Type is not null)
 
-                 {
 
-                     var props = DatabaseSchema.Properties(table.Type)
 
-                         .Where(x => x.Editor != null && x.Editor.GetType() != typeof(NullEditor) && x.Editor.Visible != Visible.Hidden);
 
-                     foreach (var prop in props)
 
-                         cursnippets.Add("{{ " + variable + "." + prop.Name + " }}");
 
-                 }
 
-                 snippets[name] = cursnippets.ToArray();
 
-             }
 
-             edt.Snippets = snippets;
 
-             if (edt.ShowDialog() == true)
 
-             {
 
-                 CoreUtils.SetPropertyValue(template, col, edt.Script);
 
-             }
 
-         }
 
-         
 
-         // private String[] EmailTemplateManagerWindow_OnGetVariables()
 
-         // {
 
-         //     List<string> list = new List<string>();
 
-         //     foreach (var table in Model.DefaultTables)
 
-         //     {
 
-         //         foreach (var col in table.Columns)
 
-         //         {
 
-         //             if (col.ToString() != "ID")
 
-         //                 list.Add(table.ToString() + "." + col.ToString());
 
-         //         }
 
-         //     }
 
-         //     list.Sort();
 
-         //     return list.ToArray();
 
-         // }
 
-         
 
-         public DataModel Model { get; set; }
 
-         protected override void Reload(
 
-         	Filters<DataModelTemplate> criteria, Columns<DataModelTemplate> columns, ref SortOrder<DataModelTemplate>? sort,
 
-         	CancellationToken token, Action<CoreTable?, Exception?> action)
 
-         {
 
-             criteria.Add(new Filter<DataModelTemplate>(x => x.Model).IsEqualTo(Model.Name));
 
-             base.Reload(criteria, columns, ref sort, token, action);
 
-         }
 
-         public override DataModelTemplate CreateItem()
 
-         {
 
-             var result = base.CreateItem();
 
-             result.Visible = true;
 
-             result.Model = Model.Name;
 
-             return result;
 
-         }
 
-     }
 
- }
 
 
  |