web-mojo 2.1.1087 → 2.1.1090

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 (47) 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 +70 -67
  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 +3 -3
  9. package/dist/chunks/{ChatView-BnC15uoD.js → ChatView-DBYroDpU.js} +2 -2
  10. package/dist/chunks/{ChatView-BnC15uoD.js.map → ChatView-DBYroDpU.js.map} +1 -1
  11. package/dist/chunks/{ChatView-D-5lHZ5H.js → ChatView-e0mc38Pf.js} +5 -5
  12. package/dist/chunks/{ChatView-D-5lHZ5H.js.map → ChatView-e0mc38Pf.js.map} +1 -1
  13. package/dist/chunks/{Collection-CsAk0UhA.js → Collection-DpdzB_n7.js} +2 -2
  14. package/dist/chunks/{Collection-CsAk0UhA.js.map → Collection-DpdzB_n7.js.map} +1 -1
  15. package/dist/chunks/{ContextMenu-Cvls3QC_.js → ContextMenu-DG-2yxqU.js} +2 -2
  16. package/dist/chunks/{ContextMenu-Cvls3QC_.js.map → ContextMenu-DG-2yxqU.js.map} +1 -1
  17. package/dist/chunks/{Dialog-DHUsZ92-.js → Dialog-DvSrCOj1.js} +2 -3
  18. package/dist/chunks/{Dialog-DHUsZ92-.js.map → Dialog-DvSrCOj1.js.map} +1 -1
  19. package/dist/chunks/{Dialog-BfXN-fFA.js → Dialog-zrXDKGkH.js} +2 -2
  20. package/dist/chunks/{Dialog-BfXN-fFA.js.map → Dialog-zrXDKGkH.js.map} +1 -1
  21. package/dist/chunks/{ListView-BGJG4GYH.js → ListView-B2gyVSMW.js} +2 -2
  22. package/dist/chunks/{ListView-BGJG4GYH.js.map → ListView-B2gyVSMW.js.map} +1 -1
  23. package/dist/chunks/{MetricsMiniChartWidget-BNdGuSZV.js → MetricsMiniChartWidget-C9ou095r.js} +2 -2
  24. package/dist/chunks/{MetricsMiniChartWidget-BNdGuSZV.js.map → MetricsMiniChartWidget-C9ou095r.js.map} +1 -1
  25. package/dist/chunks/{MetricsMiniChartWidget-BKbFGvXG.js → MetricsMiniChartWidget-Z-Iz-gxt.js} +2 -2
  26. package/dist/chunks/{MetricsMiniChartWidget-BKbFGvXG.js.map → MetricsMiniChartWidget-Z-Iz-gxt.js.map} +1 -1
  27. package/dist/chunks/{PDFViewer-nZAQQScE.js → PDFViewer-BXcbKJHv.js} +2 -2
  28. package/dist/chunks/{PDFViewer-nZAQQScE.js.map → PDFViewer-BXcbKJHv.js.map} +1 -1
  29. package/dist/chunks/{PDFViewer-BIBNhuWY.js → PDFViewer-Bq55sL4x.js} +2 -2
  30. package/dist/chunks/{PDFViewer-BIBNhuWY.js.map → PDFViewer-Bq55sL4x.js.map} +1 -1
  31. package/dist/chunks/{TokenManager-N3e5wDu1.js → TokenManager-BYVQWApC.js} +4 -4
  32. package/dist/chunks/{TokenManager-N3e5wDu1.js.map → TokenManager-BYVQWApC.js.map} +1 -1
  33. package/dist/chunks/{TokenManager-BWc_pRpg.js → TokenManager-D8VO38Nx.js} +2 -2
  34. package/dist/chunks/{TokenManager-BWc_pRpg.js.map → TokenManager-D8VO38Nx.js.map} +1 -1
  35. package/dist/chunks/{version-CKPqwcQJ.js → version-BDuk3lxD.js} +2 -2
  36. package/dist/chunks/{version-CKPqwcQJ.js.map → version-BDuk3lxD.js.map} +1 -1
  37. package/dist/chunks/{version-Dtwh-YkD.js → version-BsWmst16.js} +4 -4
  38. package/dist/chunks/{version-Dtwh-YkD.js.map → version-BsWmst16.js.map} +1 -1
  39. package/dist/docit.cjs.js +1 -1
  40. package/dist/docit.es.js +5 -5
  41. package/dist/index.cjs.js +1 -1
  42. package/dist/index.es.js +10 -10
  43. package/dist/lightbox.cjs.js +1 -1
  44. package/dist/lightbox.es.js +4 -4
  45. package/dist/map.es.js +1 -1
  46. package/dist/timeline.es.js +2 -2
  47. package/package.json +1 -1
package/dist/admin.es.js CHANGED
@@ -1,16 +1,16 @@
1
- import { P as Page, C as ContextMenu, a as Group, G as GroupList, b as GroupForms, f as UserDevice, i as UserDeviceLocationList, g as UserDeviceList, U as User, e as UserDataView, d as UserForms, c as UserList } from "./chunks/ContextMenu-Cvls3QC_.js";
1
+ import { P as Page, C as ContextMenu, a as Group, G as GroupList, b as GroupForms, f as UserDevice, i as UserDeviceLocationList, g as UserDeviceList, U as User, e as UserDataView, d as UserForms, c as UserList } from "./chunks/ContextMenu-DG-2yxqU.js";
2
2
  import { V as View, M as MOJOUtils, r as rest } from "./chunks/Rest-DpbPbmra.js";
3
3
  import "./chunks/WebSocketClient-DghNkEyO.js";
4
- import { D as Dialog$1 } from "./chunks/Dialog-DHUsZ92-.js";
5
- import { W } from "./chunks/Dialog-DHUsZ92-.js";
6
- import { M as MetricsChart, c as MetricsMiniChartWidget, P as PieChart } from "./chunks/MetricsMiniChartWidget-BKbFGvXG.js";
7
- import { b as TablePage, j as EmailDomainForms, i as EmailDomainList, E as EmailDomain, m as MailboxForms, l as MailboxList, k as Mailbox, q as EmailTemplate, c as TabView, s as EmailTemplateForms, r as EmailTemplateList, I as IncidentEvent, A as IncidentEventForms, z as IncidentEventList, v as FileManagerForms, u as FileManagerList, w as File, T as TableView, y as FileForms, x as FileList, au as GeoLocatedIP, ae as LogList, av as GeoLocatedIPList, af as MemberList, ax as TicketList, D as IncidentList, Y as IncidentStats, O as IncidentHistoryList, N as IncidentHistory, B as Incident, C as ChatView, G as IncidentForms, a2 as Job, a8 as JobEventList, a6 as JobLogList, a4 as JobForms, a3 as JobList, ab as JobRunnerList, a9 as JobsEngineStats, ac as JobRunnerForms, aa as JobRunner, ad as Log, M as Member, ag as MemberForms, ah as MetricsPermission, aj as MetricsForms, ai as MetricsPermissionList, as as PushConfigForms, ap as PushConfigList, ar as PushDeliveryList, al as PushDeviceList, at as PushTemplateForms, an as PushTemplateList, R as RuleSet, _ as MatchByOptions, Z as BundleByOptions, W as RuleList, Q as RuleSetList, h as S3BucketForms, g as S3BucketList, n as SentMessage, o as SentMessageList, az as TicketNoteList, ay as TicketNote, aw as Ticket, aA as TicketForms, aB as TicketCategories } from "./chunks/ChatView-D-5lHZ5H.js";
4
+ import { D as Dialog$1 } from "./chunks/Dialog-DvSrCOj1.js";
5
+ import { W } from "./chunks/Dialog-DvSrCOj1.js";
6
+ import { M as MetricsChart, c as MetricsMiniChartWidget, P as PieChart } from "./chunks/MetricsMiniChartWidget-Z-Iz-gxt.js";
7
+ import { b as TablePage, j as EmailDomainForms, i as EmailDomainList, E as EmailDomain, m as MailboxForms, l as MailboxList, k as Mailbox, q as EmailTemplate, c as TabView, s as EmailTemplateForms, r as EmailTemplateList, I as IncidentEvent, A as IncidentEventForms, z as IncidentEventList, v as FileManagerForms, u as FileManagerList, w as File, T as TableView, y as FileForms, x as FileList, au as GeoLocatedIP, ae as LogList, av as GeoLocatedIPList, af as MemberList, ax as TicketList, D as IncidentList, Y as IncidentStats, O as IncidentHistoryList, N as IncidentHistory, B as Incident, C as ChatView, G as IncidentForms, a2 as Job, a8 as JobEventList, a6 as JobLogList, a4 as JobForms, a3 as JobList, ab as JobRunnerList, a9 as JobsEngineStats, ac as JobRunnerForms, aa as JobRunner, ad as Log, M as Member, ag as MemberForms, ah as MetricsPermission, aj as MetricsForms, ai as MetricsPermissionList, as as PushConfigForms, ap as PushConfigList, ar as PushDeliveryList, al as PushDeviceList, at as PushTemplateForms, an as PushTemplateList, R as RuleSet, _ as MatchByOptions, Z as BundleByOptions, W as RuleList, Q as RuleSetList, h as S3BucketForms, g as S3BucketList, n as SentMessage, o as SentMessageList, az as TicketNoteList, ay as TicketNote, aw as Ticket, aA as TicketForms, aB as TicketCategories } from "./chunks/ChatView-e0mc38Pf.js";
8
8
  import DataView from "./chunks/DataView-QXyfcg2M.js";
9
- import { C as Collection, M as Model } from "./chunks/Collection-CsAk0UhA.js";
10
- import { L as LightboxGallery, P as PDFViewer } from "./chunks/PDFViewer-BIBNhuWY.js";
9
+ import { C as Collection, M as Model } from "./chunks/Collection-DpdzB_n7.js";
10
+ import { L as LightboxGallery, P as PDFViewer } from "./chunks/PDFViewer-Bq55sL4x.js";
11
11
  import { a as applyFileDropMixin, F as FormView } from "./chunks/FormView-DGRmcKUG.js";
12
12
  import { MapView } from "./map.es.js";
13
- import { B, a, V, b, c, d } from "./chunks/version-Dtwh-YkD.js";
13
+ import { B, a, V, b, c, d } from "./chunks/version-BsWmst16.js";
14
14
  class AdminHeaderView extends View {
15
15
  constructor(options = {}) {
16
16
  super({
@@ -1600,70 +1600,73 @@ class FileTablePage extends TablePage {
1600
1600
  }
1601
1601
  /**
1602
1602
  * Override the default add action to handle file uploads
1603
- * This ensures both button clicks and drag-drop use the same upload flow
1603
+ * Opens native file picker and uses same upload flow as drag-drop
1604
1604
  */
1605
1605
  async onActionAdd(event, element) {
1606
1606
  event.preventDefault();
1607
- const Dialog2 = (await import("./chunks/Dialog-DHUsZ92-.js").then((n) => n.a)).default;
1608
- const formData = await Dialog2.showForm({
1609
- title: "Upload File",
1610
- size: "md",
1611
- fields: [
1612
- {
1613
- type: "file",
1614
- name: "file",
1615
- label: "Select File",
1616
- required: true,
1617
- accept: "*/*",
1618
- help: "Choose a file to upload (max 100MB)"
1619
- },
1620
- {
1621
- type: "text",
1622
- name: "description",
1623
- label: "Description (optional)",
1624
- placeholder: "Enter a description for this file",
1625
- cols: 12
1607
+ const fileInput = document.createElement("input");
1608
+ fileInput.type = "file";
1609
+ fileInput.accept = "*/*";
1610
+ fileInput.multiple = false;
1611
+ fileInput.style.display = "none";
1612
+ fileInput.addEventListener("change", async (e) => {
1613
+ const file = e.target.files[0];
1614
+ if (!file) {
1615
+ return;
1616
+ }
1617
+ console.log(`File Selected: ${file.name} (${file.type}) (${file.size} bytes)`);
1618
+ const maxSize = 100 * 1024 * 1024;
1619
+ if (file.size > maxSize) {
1620
+ this.showError(`File size (${this._formatFileSize(file.size)}) exceeds maximum (${this._formatFileSize(maxSize)})`);
1621
+ return;
1622
+ }
1623
+ try {
1624
+ const fileModel = new File();
1625
+ let extra = {};
1626
+ if (this.options.requiresGroup && this.getApp().activeGroup) {
1627
+ extra.group = this.getApp().activeGroup.id;
1626
1628
  }
1627
- ]
1628
- });
1629
- if (!formData) {
1630
- return;
1631
- }
1632
- const file = formData.file;
1633
- if (!file || !(file instanceof File)) {
1634
- this.showError("No file selected");
1635
- return;
1636
- }
1637
- console.log(`File Selected: ${file.name} (${file.type}) (${file.size} bytes)`);
1638
- try {
1639
- const fileModel = new File();
1640
- let extra = {};
1641
- if (this.options.requiresGroup && this.getApp().activeGroup) {
1642
- extra.group = this.getApp().activeGroup.id;
1629
+ const upload = fileModel.upload({
1630
+ file,
1631
+ name: file.name,
1632
+ description: `File uploaded on ${(/* @__PURE__ */ new Date()).toLocaleDateString()}`,
1633
+ showToast: true,
1634
+ onProgress: (progressInfo) => {
1635
+ console.log(`Upload progress: ${progressInfo.percentage}%`);
1636
+ },
1637
+ onComplete: (result) => {
1638
+ console.log("Upload completed:", result);
1639
+ this.refresh();
1640
+ },
1641
+ onError: (error) => {
1642
+ console.error("Upload failed:", error);
1643
+ this.showError("Upload failed: " + error.message);
1644
+ },
1645
+ ...extra
1646
+ });
1647
+ await upload;
1648
+ } catch (error) {
1649
+ console.error("Error starting file upload:", error);
1650
+ this.showError("Failed to start file upload: " + error.message);
1651
+ } finally {
1652
+ fileInput.remove();
1643
1653
  }
1644
- const upload = fileModel.upload({
1645
- file,
1646
- name: file.name,
1647
- description: formData.description || `File uploaded on ${(/* @__PURE__ */ new Date()).toLocaleDateString()}`,
1648
- showToast: true,
1649
- onProgress: (progressInfo) => {
1650
- console.log(`Upload progress: ${progressInfo.percentage}%`);
1651
- },
1652
- onComplete: (result) => {
1653
- console.log("Upload completed:", result);
1654
- this.refresh();
1655
- },
1656
- onError: (error) => {
1657
- console.error("Upload failed:", error);
1658
- this.showError("Upload failed: " + error.message);
1659
- },
1660
- ...extra
1661
- });
1662
- await upload;
1663
- } catch (error) {
1664
- console.error("Error starting file upload:", error);
1665
- this.showError("Failed to start file upload: " + error.message);
1666
- }
1654
+ });
1655
+ document.body.appendChild(fileInput);
1656
+ fileInput.click();
1657
+ }
1658
+ /**
1659
+ * Format file size for display
1660
+ * @param {number} bytes - File size in bytes
1661
+ * @returns {string} Formatted file size
1662
+ * @private
1663
+ */
1664
+ _formatFileSize(bytes) {
1665
+ if (bytes === 0) return "0 Bytes";
1666
+ const k = 1024;
1667
+ const sizes = ["Bytes", "KB", "MB", "GB"];
1668
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
1669
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
1667
1670
  }
1668
1671
  async onFileDrop(files, event, validation) {
1669
1672
  const file = files[0];