web-mojo 2.2.18 → 2.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/admin.cjs.js +1 -1
  2. package/dist/admin.cjs.js.map +1 -1
  3. package/dist/admin.es.js +108 -19
  4. package/dist/admin.es.js.map +1 -1
  5. package/dist/auth.cjs.js +1 -1
  6. package/dist/auth.es.js +1 -1
  7. package/dist/charts.cjs.js +1 -1
  8. package/dist/charts.es.js +1 -1
  9. package/dist/chunks/{ChatView-BdRd1iSt.js → ChatView-C8J_kZZC.js} +70 -46
  10. package/dist/chunks/ChatView-C8J_kZZC.js.map +1 -0
  11. package/dist/chunks/ChatView-CDFsDm15.js +2 -0
  12. package/dist/chunks/ChatView-CDFsDm15.js.map +1 -0
  13. package/dist/chunks/{Collection-sSP1JF8d.js → Collection-zmb3xHhH.js} +2 -2
  14. package/dist/chunks/{Collection-sSP1JF8d.js.map → Collection-zmb3xHhH.js.map} +1 -1
  15. package/dist/chunks/ContextMenu-BHxY9KIb.js +3 -0
  16. package/dist/chunks/ContextMenu-BHxY9KIb.js.map +1 -0
  17. package/dist/chunks/{ContextMenu-C9qnhdFg.js → ContextMenu-LPGlaOZ5.js} +3 -2
  18. package/dist/chunks/ContextMenu-LPGlaOZ5.js.map +1 -0
  19. package/dist/chunks/{ListView-0fx1T87y.js → ListView-BBZw7GUS.js} +2 -2
  20. package/dist/chunks/{ListView-0fx1T87y.js.map → ListView-BBZw7GUS.js.map} +1 -1
  21. package/dist/chunks/{TokenManager-DhnHDZlt.js → TokenManager-B5wXvBZd.js} +2 -2
  22. package/dist/chunks/{TokenManager-DhnHDZlt.js.map → TokenManager-B5wXvBZd.js.map} +1 -1
  23. package/dist/chunks/{TokenManager-BPJHPKPk.js → TokenManager-zfkM5o1u.js} +3 -3
  24. package/dist/chunks/{TokenManager-BPJHPKPk.js.map → TokenManager-zfkM5o1u.js.map} +1 -1
  25. package/dist/chunks/{version-DBGAt8po.js → version-BgmfUPIs.js} +2 -2
  26. package/dist/chunks/{version-DBGAt8po.js.map → version-BgmfUPIs.js.map} +1 -1
  27. package/dist/chunks/{version-WosnMiWn.js → version-eR5sdxoe.js} +4 -4
  28. package/dist/chunks/{version-WosnMiWn.js.map → version-eR5sdxoe.js.map} +1 -1
  29. package/dist/docit.cjs.js +1 -1
  30. package/dist/docit.es.js +4 -4
  31. package/dist/index.cjs.js +1 -1
  32. package/dist/index.cjs.js.map +1 -1
  33. package/dist/index.es.js +45 -44
  34. package/dist/lightbox.cjs.js +1 -1
  35. package/dist/lightbox.es.js +1 -1
  36. package/dist/map.es.js +1 -1
  37. package/dist/timeline.es.js +2 -2
  38. package/package.json +1 -1
  39. package/dist/chunks/ChatView-BJbSvaqi.js +0 -2
  40. package/dist/chunks/ChatView-BJbSvaqi.js.map +0 -1
  41. package/dist/chunks/ChatView-BdRd1iSt.js.map +0 -1
  42. package/dist/chunks/ContextMenu-C9qnhdFg.js.map +0 -1
  43. package/dist/chunks/ContextMenu-NNHmt1iq.js +0 -3
  44. package/dist/chunks/ContextMenu-NNHmt1iq.js.map +0 -1
package/dist/admin.es.js CHANGED
@@ -1,16 +1,16 @@
1
- import { P as Page, U as User, e as UserDataView, g as UserDeviceList, i as UserDeviceLocationList, C as ContextMenu, d as UserForms, c as UserList, a as Group, G as GroupList, b as GroupForms, f as UserDevice } from "./chunks/ContextMenu-C9qnhdFg.js";
1
+ import { P as Page, U as User, e as UserDataView, g as UserDeviceList, i as UserDeviceLocationList, C as ContextMenu, d as UserForms, c as UserList, a as Group, G as GroupList, b as GroupForms, f as UserDevice } from "./chunks/ContextMenu-LPGlaOZ5.js";
2
2
  import { V as View, M as MOJOUtils, r as rest } from "./chunks/Rest-0oRgqNjX.js";
3
3
  import "./chunks/WebSocketClient-D53hpvM8.js";
4
4
  import { D as Dialog$1 } from "./chunks/Dialog-BGsJJdvU.js";
5
5
  import { W } from "./chunks/Dialog-BGsJJdvU.js";
6
6
  import { M as MetricsChart, c as MetricsMiniChartWidget, P as PieChart } from "./chunks/MetricsMiniChartWidget-DfW7iH5B.js";
7
- import { aj as MemberList, T as TableView, B as IncidentEventList, ap as PushDeviceList, ai as LogList, c as TabView, b as TablePage, M as Member, ak as MemberForms, ay as GeoLocatedIP, az as GeoLocatedIPList, aB as TicketList, J as IncidentList, a0 as IncidentStats, V as IncidentHistoryList, U as IncidentHistory, H as Incident, C as ChatView, K as IncidentForms, I as IncidentEvent, G as IncidentEventForms, aD as TicketNoteList, aC as TicketNote, aA as Ticket, aE as TicketForms, aF as TicketCategories, W as RuleSet, a2 as MatchByOptions, a1 as BundleByOptions, _ as RuleList, X as RuleSetList, k as EmailDomainForms, j as EmailDomainList, E as EmailDomain, n as MailboxForms, m as MailboxList, l as Mailbox, s as EmailTemplate, u as EmailTemplateForms, t as EmailTemplateList, o as SentMessage, q as SentMessageList, av as PushDeliveryList, aw as PushConfigForms, at as PushConfigList, ax as PushTemplateForms, ar as PushTemplateList, a6 as Job, ac as JobEventList, aa as JobLogList, a8 as JobForms, ad as JobsEngineStats, a7 as JobList, af as JobRunnerList, ag as JobRunnerForms, ae as JobRunner, ah as Log, al as MetricsPermission, an as MetricsForms, am as MetricsPermissionList, x as FileManagerForms, w as FileManagerList, y as File, A as FileForms, z as FileList, i as S3BucketForms, h as S3BucketList } from "./chunks/ChatView-BdRd1iSt.js";
7
+ import { ak as MemberList, T as TableView, B as IncidentEventList, aq as PushDeviceList, aj as LogList, c as TabView, b as TablePage, M as Member, al as MemberForms, az as GeoLocatedIP, aA as GeoLocatedIPList, aC as TicketList, J as IncidentList, a0 as IncidentStats, V as IncidentHistoryList, U as IncidentHistory, H as Incident, C as ChatView, K as IncidentForms, I as IncidentEvent, G as IncidentEventForms, aE as TicketNoteList, aD as TicketNote, aB as Ticket, aF as TicketForms, aG as TicketCategories, W as RuleSet, a2 as MatchByOptions, a1 as BundleByOptions, _ as RuleList, X as RuleSetList, k as EmailDomainForms, j as EmailDomainList, E as EmailDomain, n as MailboxForms, m as MailboxList, l as Mailbox, s as EmailTemplate, u as EmailTemplateForms, t as EmailTemplateList, o as SentMessage, q as SentMessageList, aw as PushDeliveryList, ax as PushConfigForms, au as PushConfigList, ay as PushTemplateForms, as as PushTemplateList, a7 as Job, ad as JobEventList, ab as JobLogList, a9 as JobForms, ae as JobsEngineStats, a8 as JobList, ag as JobRunnerList, ah as JobRunnerForms, af as JobRunner, ai as Log, am as MetricsPermission, ao as MetricsForms, an as MetricsPermissionList, x as FileManagerForms, w as FileManagerList, y as File, A as FileForms, z as FileList, i as S3BucketForms, h as S3BucketList } from "./chunks/ChatView-C8J_kZZC.js";
8
8
  import DataView from "./chunks/DataView-BpXdthN2.js";
9
9
  import { F as FormView, a as applyFileDropMixin } from "./chunks/FormView-D_VTD2EY.js";
10
10
  import { MapView } from "./map.es.js";
11
- import { M as Model, C as Collection } from "./chunks/Collection-sSP1JF8d.js";
11
+ import { M as Model, C as Collection } from "./chunks/Collection-zmb3xHhH.js";
12
12
  import { L as LightboxGallery, P as PDFViewer } from "./chunks/PDFViewer-C9hCxlyT.js";
13
- import { B, a, V, b, c, d } from "./chunks/version-WosnMiWn.js";
13
+ import { B, a, V, b, c, d } from "./chunks/version-eR5sdxoe.js";
14
14
  class AdminHeaderView extends View {
15
15
  constructor(options = {}) {
16
16
  super({
@@ -4521,7 +4521,7 @@ class RuleSetView extends View {
4521
4521
  <div class="fs-1 text-primary"><i class="bi bi-gear-wide-connected"></i></div>
4522
4522
  <div>
4523
4523
  <h3 class="mb-1">{{model.name}}</h3>
4524
- <div class="text-muted small">Category: {{model.category}} | Priority: {{model.priority}}</div>
4524
+ <div class="text-muted small">Scope: {{model.category}} | Priority: {{model.priority}}</div>
4525
4525
  </div>
4526
4526
  </div>
4527
4527
  <div data-container="ruleset-context-menu"></div>
@@ -4545,7 +4545,7 @@ class RuleSetView extends View {
4545
4545
  columns: 2,
4546
4546
  fields: [
4547
4547
  { name: "name", label: "Name", cols: 4 },
4548
- { name: "category", label: "Category", formatter: "badge", cols: 4 },
4548
+ { name: "category", label: "Scope", formatter: "badge", cols: 4 },
4549
4549
  { name: "is_active", label: "Is Active", formatter: "yesno_icon", cols: 4 },
4550
4550
  { name: "priority", label: "Priority", cols: 4 },
4551
4551
  { name: "id", label: "RuleSet ID", cols: 4 },
@@ -4703,7 +4703,7 @@ class RuleSetTablePage extends TablePage {
4703
4703
  columns: [
4704
4704
  { key: "id", label: "ID", width: "70px", sortable: true, class: "text-muted" },
4705
4705
  { key: "name", label: "Name", sortable: true },
4706
- { key: "category", label: "Category", sortable: true, formatter: "badge" },
4706
+ { key: "category", label: "Scope", sortable: true, formatter: "badge" },
4707
4707
  { key: "priority", label: "Priority", sortable: true },
4708
4708
  { key: "match_by", label: "Match Logic", formatter: (v) => v === 0 ? "ALL" : "ANY" }
4709
4709
  ],
@@ -6711,8 +6711,8 @@ class JobsAdminPage extends Page {
6711
6711
  <i class="bi bi-arrow-clockwise"></i> Refresh
6712
6712
  </button>
6713
6713
  <button type="button" class="btn btn-outline-primary btn-sm"
6714
- data-action="export-data" title="Export Data">
6715
- <i class="bi bi-download"></i> Export
6714
+ data-action="view-all-jobs" title="View All Jobs">
6715
+ <i class="bi bi-table"></i> View All
6716
6716
  </button>
6717
6717
  <div class="dropdown">
6718
6718
  <button class="btn btn-outline-secondary btn-sm dropdown-toggle"
@@ -6812,12 +6812,9 @@ class JobsAdminPage extends Page {
6812
6812
  </div>
6813
6813
  </div>
6814
6814
 
6815
- <div class="card shadow-sm mb-5">
6815
+ <div class="card shadow-sm mb-5">
6816
6816
  <div class="card-header d-flex justify-content-between align-items-center">
6817
6817
  <h5 class="mb-0"><i class="bi bi-tools me-2"></i>Operations</h5>
6818
- <button class="btn btn-outline-secondary btn-sm" data-action="view-all-jobs">
6819
- <i class="bi bi-table"></i> View All Jobs
6820
- </button>
6821
6818
  </div>
6822
6819
  <div class="card-body">
6823
6820
  <div class="d-flex flex-wrap gap-2">
@@ -7458,12 +7455,104 @@ class JobsAdminPage extends Page {
7458
7455
  });
7459
7456
  }
7460
7457
  async onActionViewAllJobs() {
7461
- const router = this.getApp()?.router;
7462
- if (router) {
7463
- router.navigateTo("/admin/jobs/table");
7464
- } else {
7465
- this.getApp()?.toast?.info("Router unavailable.");
7466
- }
7458
+ const jobList = new JobList({
7459
+ params: {
7460
+ sort: "-created",
7461
+ size: 25
7462
+ }
7463
+ });
7464
+ const view = new TableView({
7465
+ collection: jobList,
7466
+ fetchOnMount: true,
7467
+ columns: [
7468
+ {
7469
+ key: "id",
7470
+ label: "Job",
7471
+ template: `
7472
+ <div class="fw-semibold font-monospace">{{model.id}}</div>
7473
+ <div class="text-muted small">{{model.func|default('Unknown')}}</div>
7474
+ `
7475
+ },
7476
+ {
7477
+ key: "channel",
7478
+ label: "Channel",
7479
+ formatter: "badge"
7480
+ },
7481
+ {
7482
+ key: "status",
7483
+ label: "Status",
7484
+ formatter: (value, context) => {
7485
+ const job = context.row;
7486
+ const badgeClass = job.getStatusBadgeClass ? job.getStatusBadgeClass() : "bg-secondary";
7487
+ const icon = job.getStatusIcon ? job.getStatusIcon() : "bi-question";
7488
+ return `<span class="badge ${badgeClass}"><i class="${icon} me-1"></i>${value?.toUpperCase() || "UNKNOWN"}</span>`;
7489
+ }
7490
+ },
7491
+ {
7492
+ key: "created",
7493
+ label: "Created",
7494
+ formatter: "datetime"
7495
+ },
7496
+ {
7497
+ key: "finished_at",
7498
+ label: "Finished",
7499
+ formatter: "datetime"
7500
+ },
7501
+ {
7502
+ key: "duration_ms",
7503
+ label: "Duration",
7504
+ formatter: "duration"
7505
+ }
7506
+ ],
7507
+ filters: [
7508
+ {
7509
+ key: "func__icontains",
7510
+ label: "Function",
7511
+ type: "text"
7512
+ },
7513
+ {
7514
+ key: "status",
7515
+ label: "Status",
7516
+ type: "select",
7517
+ options: [
7518
+ { label: "Pending", value: "pending" },
7519
+ { label: "Running", value: "running" },
7520
+ { label: "Completed", value: "completed" },
7521
+ { label: "Failed", value: "failed" },
7522
+ { label: "Canceled", value: "canceled" },
7523
+ { label: "Expired", value: "expired" }
7524
+ ]
7525
+ },
7526
+ {
7527
+ key: "channel",
7528
+ label: "Channel",
7529
+ type: "text"
7530
+ }
7531
+ ],
7532
+ itemView: JobDetailsView,
7533
+ viewDialogOptions: {
7534
+ title: "Job Details",
7535
+ size: "xl",
7536
+ scrollable: true
7537
+ },
7538
+ searchable: true,
7539
+ filterable: true,
7540
+ paginated: true,
7541
+ tableOptions: {
7542
+ striped: true,
7543
+ hover: true,
7544
+ responsive: true
7545
+ }
7546
+ });
7547
+ await this.getApp().showDialog({
7548
+ title: '<i class="bi bi-table me-2"></i>All Jobs',
7549
+ body: view,
7550
+ size: "xl",
7551
+ scrollable: true,
7552
+ buttons: [
7553
+ { text: "Close", class: "btn-secondary", dismiss: true }
7554
+ ]
7555
+ });
7467
7556
  }
7468
7557
  }
7469
7558
  class TaskDetailsView extends View {