CustomModule.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System.Linq;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. [UserTracking(false)]
  6. public class CustomModule : Entity, IRemotable, IPersistent, ISchedulable, ILicense<CoreLicense>
  7. {
  8. [EditorSequence(1)]
  9. public string Name { get; set; }
  10. [NullEditor]
  11. public string Section { get; set; }
  12. [NullEditor]
  13. public string DataModel { get; set; }
  14. [TextBoxEditor(Visible = InABox.Core.Visible.Hidden, Editable = Editable.Hidden)]
  15. public string Group { get; set; }
  16. [ScriptEditor]
  17. [EditorSequence(3)]
  18. public string Script { get; set; }
  19. [EditorSequence(4)]
  20. public ImageDocumentLink Thumbnail { get; set; }
  21. [CheckBoxEditor]
  22. [EditorSequence(5)]
  23. public bool Visible { get; set; }
  24. [CheckBoxEditor]
  25. [EditorSequence(6)]
  26. public bool AllRecords { get; set; }
  27. [CheckBoxEditor]
  28. [EditorSequence(7)]
  29. public bool SelectedRecords { get; set; }
  30. //[NullEditor]
  31. //public bool ScheduleEnabled { get; set; }
  32. [NullEditor]
  33. public int ActiveSchedules { get; set; }
  34. protected override void Init()
  35. {
  36. base.Init();
  37. AllRecords = false;
  38. SelectedRecords = true;
  39. }
  40. private class SectionLookups : LookupGenerator<object>
  41. {
  42. public SectionLookups(object[] items) : base(items)
  43. {
  44. AddValue("", "Unassigned");
  45. foreach (var module in CustomModules.All.Where(x => !string.IsNullOrWhiteSpace(x)))
  46. AddValue(module, module);
  47. }
  48. }
  49. }
  50. public class CustomModuleLookups : EntityLookup<CustomModule>
  51. {
  52. public override Filter<CustomModule> DefineFilter()
  53. {
  54. return null;
  55. }
  56. public override SortOrder<CustomModule> DefineSortOrder()
  57. {
  58. return new SortOrder<CustomModule>(x => x.Section).ThenBy(x => x.Name);
  59. }
  60. }
  61. }