web-mojo 2.1.1087 → 2.1.1091
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.
- package/dist/admin.cjs.js +1 -1
- package/dist/admin.cjs.js.map +1 -1
- package/dist/admin.es.js +75 -69
- package/dist/admin.es.js.map +1 -1
- package/dist/auth.cjs.js +1 -1
- package/dist/auth.es.js +1 -1
- package/dist/charts.cjs.js +1 -1
- package/dist/charts.es.js +3 -3
- package/dist/chunks/{ChatView-BnC15uoD.js → ChatView-DBYroDpU.js} +2 -2
- package/dist/chunks/{ChatView-BnC15uoD.js.map → ChatView-DBYroDpU.js.map} +1 -1
- package/dist/chunks/{ChatView-D-5lHZ5H.js → ChatView-Ddginkt8.js} +2 -2
- package/dist/chunks/{ChatView-D-5lHZ5H.js.map → ChatView-Ddginkt8.js.map} +1 -1
- package/dist/chunks/{Dialog-DHUsZ92-.js → Dialog-DvSrCOj1.js} +2 -3
- package/dist/chunks/{Dialog-DHUsZ92-.js.map → Dialog-DvSrCOj1.js.map} +1 -1
- package/dist/chunks/{Dialog-BfXN-fFA.js → Dialog-zrXDKGkH.js} +2 -2
- package/dist/chunks/{Dialog-BfXN-fFA.js.map → Dialog-zrXDKGkH.js.map} +1 -1
- package/dist/chunks/{MetricsMiniChartWidget-BNdGuSZV.js → MetricsMiniChartWidget-C9ou095r.js} +2 -2
- package/dist/chunks/{MetricsMiniChartWidget-BNdGuSZV.js.map → MetricsMiniChartWidget-C9ou095r.js.map} +1 -1
- package/dist/chunks/{MetricsMiniChartWidget-BKbFGvXG.js → MetricsMiniChartWidget-Z-Iz-gxt.js} +2 -2
- package/dist/chunks/{MetricsMiniChartWidget-BKbFGvXG.js.map → MetricsMiniChartWidget-Z-Iz-gxt.js.map} +1 -1
- package/dist/chunks/{PDFViewer-nZAQQScE.js → PDFViewer-BXcbKJHv.js} +2 -2
- package/dist/chunks/{PDFViewer-nZAQQScE.js.map → PDFViewer-BXcbKJHv.js.map} +1 -1
- package/dist/chunks/{PDFViewer-BIBNhuWY.js → PDFViewer-Bq55sL4x.js} +2 -2
- package/dist/chunks/{PDFViewer-BIBNhuWY.js.map → PDFViewer-Bq55sL4x.js.map} +1 -1
- package/dist/chunks/{TokenManager-N3e5wDu1.js → TokenManager-CJnUh8Sy.js} +2 -2
- package/dist/chunks/{TokenManager-N3e5wDu1.js.map → TokenManager-CJnUh8Sy.js.map} +1 -1
- package/dist/chunks/{TokenManager-BWc_pRpg.js → TokenManager-D8VO38Nx.js} +2 -2
- package/dist/chunks/{TokenManager-BWc_pRpg.js.map → TokenManager-D8VO38Nx.js.map} +1 -1
- package/dist/chunks/{version-CKPqwcQJ.js → version-BGbxYq0n.js} +2 -2
- package/dist/chunks/{version-CKPqwcQJ.js.map → version-BGbxYq0n.js.map} +1 -1
- package/dist/chunks/{version-Dtwh-YkD.js → version-EBP8p8_k.js} +4 -4
- package/dist/chunks/{version-Dtwh-YkD.js.map → version-EBP8p8_k.js.map} +1 -1
- package/dist/docit.cjs.js +1 -1
- package/dist/docit.es.js +3 -3
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +6 -6
- package/dist/lightbox.cjs.js +1 -1
- package/dist/lightbox.es.js +4 -4
- package/package.json +1 -1
package/dist/admin.es.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
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";
|
|
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-
|
|
5
|
-
import { W } from "./chunks/Dialog-
|
|
6
|
-
import { M as MetricsChart, c as MetricsMiniChartWidget, P as PieChart } from "./chunks/MetricsMiniChartWidget-
|
|
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-
|
|
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-Ddginkt8.js";
|
|
8
8
|
import DataView from "./chunks/DataView-QXyfcg2M.js";
|
|
9
9
|
import { C as Collection, M as Model } from "./chunks/Collection-CsAk0UhA.js";
|
|
10
|
-
import { L as LightboxGallery, P as PDFViewer } from "./chunks/PDFViewer-
|
|
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-
|
|
13
|
+
import { B, a, V, b, c, d } from "./chunks/version-EBP8p8_k.js";
|
|
14
14
|
class AdminHeaderView extends View {
|
|
15
15
|
constructor(options = {}) {
|
|
16
16
|
super({
|
|
@@ -1517,9 +1517,13 @@ class FileTablePage extends TablePage {
|
|
|
1517
1517
|
pageName: "Manage Files",
|
|
1518
1518
|
router: "admin/files",
|
|
1519
1519
|
Collection: FileList,
|
|
1520
|
-
formCreate
|
|
1520
|
+
// Don't use formCreate - we have custom file upload handling
|
|
1521
1521
|
formEdit: FileForms.edit,
|
|
1522
1522
|
itemViewClass: FileView,
|
|
1523
|
+
// Custom add handler for file uploads
|
|
1524
|
+
onAdd: async (event) => {
|
|
1525
|
+
await this.handleFileUpload(event);
|
|
1526
|
+
},
|
|
1523
1527
|
viewDialogOptions: {
|
|
1524
1528
|
header: false,
|
|
1525
1529
|
size: "xl"
|
|
@@ -1599,71 +1603,73 @@ class FileTablePage extends TablePage {
|
|
|
1599
1603
|
});
|
|
1600
1604
|
}
|
|
1601
1605
|
/**
|
|
1602
|
-
*
|
|
1603
|
-
*
|
|
1606
|
+
* Handle file upload via file picker
|
|
1607
|
+
* Opens native file picker and uses same upload flow as drag-drop
|
|
1604
1608
|
*/
|
|
1605
|
-
async
|
|
1606
|
-
event.preventDefault();
|
|
1607
|
-
const
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
}
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1609
|
+
async handleFileUpload(event) {
|
|
1610
|
+
if (event) event.preventDefault();
|
|
1611
|
+
const fileInput = document.createElement("input");
|
|
1612
|
+
fileInput.type = "file";
|
|
1613
|
+
fileInput.accept = "*/*";
|
|
1614
|
+
fileInput.multiple = false;
|
|
1615
|
+
fileInput.style.display = "none";
|
|
1616
|
+
fileInput.addEventListener("change", async (e) => {
|
|
1617
|
+
const file = e.target.files[0];
|
|
1618
|
+
if (!file) {
|
|
1619
|
+
return;
|
|
1620
|
+
}
|
|
1621
|
+
const maxSize = 100 * 1024 * 1024;
|
|
1622
|
+
if (file.size > maxSize) {
|
|
1623
|
+
this.showError(`File size (${this._formatFileSize(file.size)}) exceeds maximum (${this._formatFileSize(maxSize)})`);
|
|
1624
|
+
return;
|
|
1625
|
+
}
|
|
1626
|
+
try {
|
|
1627
|
+
const fileModel = new File();
|
|
1628
|
+
let extra = {};
|
|
1629
|
+
if (this.options.requiresGroup && this.getApp().activeGroup) {
|
|
1630
|
+
extra.group = this.getApp().activeGroup.id;
|
|
1626
1631
|
}
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1632
|
+
const upload = fileModel.upload({
|
|
1633
|
+
file,
|
|
1634
|
+
name: file.name,
|
|
1635
|
+
description: `File uploaded on ${(/* @__PURE__ */ new Date()).toLocaleDateString()}`,
|
|
1636
|
+
showToast: true,
|
|
1637
|
+
onProgress: (progressInfo) => {
|
|
1638
|
+
console.log(`Upload progress: ${progressInfo.percentage}%`);
|
|
1639
|
+
},
|
|
1640
|
+
onComplete: (result) => {
|
|
1641
|
+
console.log("Upload completed:", result);
|
|
1642
|
+
this.refresh();
|
|
1643
|
+
},
|
|
1644
|
+
onError: (error) => {
|
|
1645
|
+
console.error("Upload failed:", error);
|
|
1646
|
+
this.showError("Upload failed: " + error.message);
|
|
1647
|
+
},
|
|
1648
|
+
...extra
|
|
1649
|
+
});
|
|
1650
|
+
await upload;
|
|
1651
|
+
} catch (error) {
|
|
1652
|
+
console.error("Error starting file upload:", error);
|
|
1653
|
+
this.showError("Failed to start file upload: " + error.message);
|
|
1654
|
+
} finally {
|
|
1655
|
+
fileInput.remove();
|
|
1643
1656
|
}
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
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
|
-
}
|
|
1657
|
+
});
|
|
1658
|
+
document.body.appendChild(fileInput);
|
|
1659
|
+
fileInput.click();
|
|
1660
|
+
}
|
|
1661
|
+
/**
|
|
1662
|
+
* Format file size for display
|
|
1663
|
+
* @param {number} bytes - File size in bytes
|
|
1664
|
+
* @returns {string} Formatted file size
|
|
1665
|
+
* @private
|
|
1666
|
+
*/
|
|
1667
|
+
_formatFileSize(bytes) {
|
|
1668
|
+
if (bytes === 0) return "0 Bytes";
|
|
1669
|
+
const k = 1024;
|
|
1670
|
+
const sizes = ["Bytes", "KB", "MB", "GB"];
|
|
1671
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
1672
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
|
|
1667
1673
|
}
|
|
1668
1674
|
async onFileDrop(files, event, validation) {
|
|
1669
1675
|
const file = files[0];
|