show transaction usage history detail

This commit is contained in:
Čarodej
2022-01-17 13:30:44 +01:00
parent 97b429f8d1
commit 2403f89ca3
11 changed files with 444 additions and 103 deletions
+152 -7
View File
@@ -28,14 +28,14 @@
"/chunks/app-settings.js": "/chunks/app-settings.js?id=62ce73b2d66590912cbc",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=c3a013b11ae7bde6f39d",
"/chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/database~chunks/email-veri~2c1222b7.js": "/chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/database~chunks/email-veri~2c1222b7.js?id=5963f5d9fb4e759c600a",
"/chunks/billing.js": "/chunks/billing.js?id=f33b2fc1ee85392e3883",
"/chunks/billing.js": "/chunks/billing.js?id=42bd4fd1fcb7b7b4e301",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=0ffe43f76a33278ce1b8",
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js?id=d56f3c7df8d8dd9caaaf",
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.js?id=cb4a650a91230e3d2abe",
"/chunks/billing~chunks/settings-storage~chunks/user-storage~chunks/user-subscription.js": "/chunks/billing~chunks/settings-storage~chunks/user-storage~chunks/user-subscription.js?id=669bd6d15cfa4c6e75df",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=b3feaa361fc486e6a0b3",
"/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=65ee559ca803555be568",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=8451872075acf5b1b9ab",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=eda5f98a3982867337cc",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=1e356001cbd178279e37",
"/chunks/dashboard~chunks/plan-subscribers~chunks/users.js": "/chunks/dashboard~chunks/plan-subscribers~chunks/users.js?id=9bb04319263a6c0742f0",
"/chunks/database.js": "/chunks/database.js?id=d469910e2c3f230d05f0",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=6c86916c6c6f679fa86b",
@@ -71,9 +71,9 @@
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=a81388efd770d51f8a9c",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=2da6b9e5f951fb7f4312",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=8577d4c771602671b38a",
"/chunks/settings.js": "/chunks/settings.js?id=a3d805c2e2a066f87653",
"/chunks/settings.js": "/chunks/settings.js?id=d43d99bf7a6bdbe4f526",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=99a6e8d1766e79bb2a09",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=9eefbf595758685d01b7",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=84f35e2124d825cc5039",
"/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=aafc9cd6aa47b01bc25a",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=651d5accf401908724c5",
"/chunks/shared.js": "/chunks/shared.js?id=db60726012b6d246bd77",
@@ -97,7 +97,7 @@
"/chunks/user-delete.js": "/chunks/user-delete.js?id=583f4b95444d3d85550e",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=d007b9e4c73748be49e4",
"/chunks/user-password.js": "/chunks/user-password.js?id=da0dced867709ba29629",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=1d2248f2fca7f0bc95f6",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=dc15b1ab19069deb07a1",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=ab860189f1c734dc042c",
"/chunks/users.js": "/chunks/users.js?id=30dcb71f8bc48a2c8893",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-email~chunks/app-index~ch~7523d900.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-email~chunks/app-index~ch~7523d900.js?id=02104d6d78a8ffe97c12",
@@ -209,5 +209,150 @@
"/chunks/dashboard.b74701f4fc0048082c83.hot-update.js": "/chunks/dashboard.b74701f4fc0048082c83.hot-update.js",
"/chunks/dashboard.0a5793d3140c67329f68.hot-update.js": "/chunks/dashboard.0a5793d3140c67329f68.hot-update.js",
"/chunks/dashboard.355d4c1c7c311cf4d00c.hot-update.js": "/chunks/dashboard.355d4c1c7c311cf4d00c.hot-update.js",
"/chunks/dashboard.949feb2d4c59f318d311.hot-update.js": "/chunks/dashboard.949feb2d4c59f318d311.hot-update.js"
"/chunks/dashboard.949feb2d4c59f318d311.hot-update.js": "/chunks/dashboard.949feb2d4c59f318d311.hot-update.js",
"/chunks/billing.3f28e3938e54bec091a8.hot-update.js": "/chunks/billing.3f28e3938e54bec091a8.hot-update.js",
"/chunks/billing.353be9534c66587b95bb.hot-update.js": "/chunks/billing.353be9534c66587b95bb.hot-update.js",
"/chunks/billing.3f0f546a80b0b01ad208.hot-update.js": "/chunks/billing.3f0f546a80b0b01ad208.hot-update.js",
"/chunks/billing.77f53d250bc372273737.hot-update.js": "/chunks/billing.77f53d250bc372273737.hot-update.js",
"/chunks/billing.c6a3c5d2737ac2c87d59.hot-update.js": "/chunks/billing.c6a3c5d2737ac2c87d59.hot-update.js",
"/chunks/billing.9c66f94c95217ede2a9f.hot-update.js": "/chunks/billing.9c66f94c95217ede2a9f.hot-update.js",
"/chunks/billing.eb73f9df364fbc91324a.hot-update.js": "/chunks/billing.eb73f9df364fbc91324a.hot-update.js",
"/chunks/billing.288d47e9c5a02146cd4d.hot-update.js": "/chunks/billing.288d47e9c5a02146cd4d.hot-update.js",
"/chunks/billing.7ce8883f7933a274e52c.hot-update.js": "/chunks/billing.7ce8883f7933a274e52c.hot-update.js",
"/chunks/billing.ae847eea001d33691526.hot-update.js": "/chunks/billing.ae847eea001d33691526.hot-update.js",
"/chunks/billing.297ad2b0812de4e6e057.hot-update.js": "/chunks/billing.297ad2b0812de4e6e057.hot-update.js",
"/chunks/billing.4999dfe3163965e24ace.hot-update.js": "/chunks/billing.4999dfe3163965e24ace.hot-update.js",
"/chunks/billing.7ee6ce45de3aef3dd811.hot-update.js": "/chunks/billing.7ee6ce45de3aef3dd811.hot-update.js",
"/chunks/billing.52b3de7246605beebf65.hot-update.js": "/chunks/billing.52b3de7246605beebf65.hot-update.js",
"/chunks/billing.8fb1783c6217092398ad.hot-update.js": "/chunks/billing.8fb1783c6217092398ad.hot-update.js",
"/chunks/billing.75cb21487cd3bce1c423.hot-update.js": "/chunks/billing.75cb21487cd3bce1c423.hot-update.js",
"/chunks/billing.ffef43cf83ea9de91b1b.hot-update.js": "/chunks/billing.ffef43cf83ea9de91b1b.hot-update.js",
"/chunks/billing.470e77a8264363e6029c.hot-update.js": "/chunks/billing.470e77a8264363e6029c.hot-update.js",
"/chunks/billing.b1796e9a06e4c7a31491.hot-update.js": "/chunks/billing.b1796e9a06e4c7a31491.hot-update.js",
"/chunks/billing.1189c11ab2faaa5f020e.hot-update.js": "/chunks/billing.1189c11ab2faaa5f020e.hot-update.js",
"/chunks/billing.8af4cc4a334b02318d5d.hot-update.js": "/chunks/billing.8af4cc4a334b02318d5d.hot-update.js",
"/chunks/billing.9d8e625a0072471e9f93.hot-update.js": "/chunks/billing.9d8e625a0072471e9f93.hot-update.js",
"/chunks/billing.5cf6716edf8a470e6258.hot-update.js": "/chunks/billing.5cf6716edf8a470e6258.hot-update.js",
"/chunks/billing.640b057a799494587d58.hot-update.js": "/chunks/billing.640b057a799494587d58.hot-update.js",
"/chunks/billing.5539da0d7790513ae0e9.hot-update.js": "/chunks/billing.5539da0d7790513ae0e9.hot-update.js",
"/chunks/billing.94cf499292df4964649b.hot-update.js": "/chunks/billing.94cf499292df4964649b.hot-update.js",
"/chunks/billing.e6ae0baeb80d5ea7c7af.hot-update.js": "/chunks/billing.e6ae0baeb80d5ea7c7af.hot-update.js",
"/chunks/billing.eb3311d750ca3a9b03c3.hot-update.js": "/chunks/billing.eb3311d750ca3a9b03c3.hot-update.js",
"/chunks/billing.02144ff10cfd85ac86b6.hot-update.js": "/chunks/billing.02144ff10cfd85ac86b6.hot-update.js",
"/chunks/billing.b872ab40da4863571ce6.hot-update.js": "/chunks/billing.b872ab40da4863571ce6.hot-update.js",
"/chunks/billing.9e61907e3caad03fbd2f.hot-update.js": "/chunks/billing.9e61907e3caad03fbd2f.hot-update.js",
"/chunks/billing.1c28c03888d3e6f668fb.hot-update.js": "/chunks/billing.1c28c03888d3e6f668fb.hot-update.js",
"/chunks/billing.f02c630da40ae8b10fc6.hot-update.js": "/chunks/billing.f02c630da40ae8b10fc6.hot-update.js",
"/chunks/billing.cc9413866a199159ad77.hot-update.js": "/chunks/billing.cc9413866a199159ad77.hot-update.js",
"/chunks/billing.dcff5b9b4e5673330c6b.hot-update.js": "/chunks/billing.dcff5b9b4e5673330c6b.hot-update.js",
"/chunks/billing.3a86c6e8262d4323c3bf.hot-update.js": "/chunks/billing.3a86c6e8262d4323c3bf.hot-update.js",
"/chunks/billing.c523d518bde39e967d6d.hot-update.js": "/chunks/billing.c523d518bde39e967d6d.hot-update.js",
"/chunks/billing.9f84367a1897fc0e95f1.hot-update.js": "/chunks/billing.9f84367a1897fc0e95f1.hot-update.js",
"/chunks/billing.57b5e7c2ff844e6a1200.hot-update.js": "/chunks/billing.57b5e7c2ff844e6a1200.hot-update.js",
"/chunks/billing.5a75b549ea91110e7bb0.hot-update.js": "/chunks/billing.5a75b549ea91110e7bb0.hot-update.js",
"/chunks/billing.d2ac0cc314c50dd5dd1b.hot-update.js": "/chunks/billing.d2ac0cc314c50dd5dd1b.hot-update.js",
"/chunks/billing.8917db149f36e31b2e0e.hot-update.js": "/chunks/billing.8917db149f36e31b2e0e.hot-update.js",
"/chunks/dashboard.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/dashboard.1768366c2c5ca45cfdf0.hot-update.js",
"/chunks/settings-storage.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/settings-storage.1768366c2c5ca45cfdf0.hot-update.js",
"/chunks/user-storage.1768366c2c5ca45cfdf0.hot-update.js": "/chunks/user-storage.1768366c2c5ca45cfdf0.hot-update.js",
"/chunks/dashboard.09c5a2ad001f422532bf.hot-update.js": "/chunks/dashboard.09c5a2ad001f422532bf.hot-update.js",
"/chunks/settings-storage.09c5a2ad001f422532bf.hot-update.js": "/chunks/settings-storage.09c5a2ad001f422532bf.hot-update.js",
"/chunks/user-storage.09c5a2ad001f422532bf.hot-update.js": "/chunks/user-storage.09c5a2ad001f422532bf.hot-update.js",
"/chunks/dashboard.51f178c18acaddee8b3f.hot-update.js": "/chunks/dashboard.51f178c18acaddee8b3f.hot-update.js",
"/chunks/settings-storage.51f178c18acaddee8b3f.hot-update.js": "/chunks/settings-storage.51f178c18acaddee8b3f.hot-update.js",
"/chunks/user-storage.51f178c18acaddee8b3f.hot-update.js": "/chunks/user-storage.51f178c18acaddee8b3f.hot-update.js",
"/chunks/billing.ff5b7d3fa56ca196ac1f.hot-update.js": "/chunks/billing.ff5b7d3fa56ca196ac1f.hot-update.js",
"/chunks/billing.6cb3fbdcd71f98c8fe1d.hot-update.js": "/chunks/billing.6cb3fbdcd71f98c8fe1d.hot-update.js",
"/chunks/billing.de44db6c6061e9ea02ae.hot-update.js": "/chunks/billing.de44db6c6061e9ea02ae.hot-update.js",
"/chunks/billing.f0c68ed57836b4362960.hot-update.js": "/chunks/billing.f0c68ed57836b4362960.hot-update.js",
"/chunks/billing.511807a92aa8134fc3f5.hot-update.js": "/chunks/billing.511807a92aa8134fc3f5.hot-update.js",
"/chunks/billing.da37360b36176b0939f9.hot-update.js": "/chunks/billing.da37360b36176b0939f9.hot-update.js",
"/chunks/billing.71928a9c5a7fe8ebf2ff.hot-update.js": "/chunks/billing.71928a9c5a7fe8ebf2ff.hot-update.js",
"/chunks/billing.848bed9aa612ffa83c16.hot-update.js": "/chunks/billing.848bed9aa612ffa83c16.hot-update.js",
"/chunks/billing.9a17f7240f2d45bd4b98.hot-update.js": "/chunks/billing.9a17f7240f2d45bd4b98.hot-update.js",
"/chunks/billing.491f5d1d2d48362ef385.hot-update.js": "/chunks/billing.491f5d1d2d48362ef385.hot-update.js",
"/chunks/billing.9f12b0cf92b8d66f2aae.hot-update.js": "/chunks/billing.9f12b0cf92b8d66f2aae.hot-update.js",
"/chunks/billing.10b639acfd367914cd39.hot-update.js": "/chunks/billing.10b639acfd367914cd39.hot-update.js",
"/chunks/billing.6d8060a1bee99e4fc25f.hot-update.js": "/chunks/billing.6d8060a1bee99e4fc25f.hot-update.js",
"/chunks/settings.09f70076461cbfc47483.hot-update.js": "/chunks/settings.09f70076461cbfc47483.hot-update.js",
"/chunks/billing.fea532b55d06222418d5.hot-update.js": "/chunks/billing.fea532b55d06222418d5.hot-update.js",
"/chunks/settings.a4aaab8ad59f363247d0.hot-update.js": "/chunks/settings.a4aaab8ad59f363247d0.hot-update.js",
"/chunks/settings.56507f2e88509ada0487.hot-update.js": "/chunks/settings.56507f2e88509ada0487.hot-update.js",
"/chunks/settings.8e4c7736a55ee6c40517.hot-update.js": "/chunks/settings.8e4c7736a55ee6c40517.hot-update.js",
"/chunks/settings.0604d8fb1ce2c3f6c9a7.hot-update.js": "/chunks/settings.0604d8fb1ce2c3f6c9a7.hot-update.js",
"/chunks/settings.1911682ada11ad1f2e1a.hot-update.js": "/chunks/settings.1911682ada11ad1f2e1a.hot-update.js",
"/chunks/settings.568507e6ebd8d80946e5.hot-update.js": "/chunks/settings.568507e6ebd8d80946e5.hot-update.js",
"/chunks/settings.370540c5b62299b6c3a2.hot-update.js": "/chunks/settings.370540c5b62299b6c3a2.hot-update.js",
"/chunks/billing.59f737749a55d034f1e5.hot-update.js": "/chunks/billing.59f737749a55d034f1e5.hot-update.js",
"/chunks/billing.69ceca93b226be276d1f.hot-update.js": "/chunks/billing.69ceca93b226be276d1f.hot-update.js",
"/chunks/billing.b546be24322bbfb8dee4.hot-update.js": "/chunks/billing.b546be24322bbfb8dee4.hot-update.js",
"/chunks/billing.455877de1435c64c4662.hot-update.js": "/chunks/billing.455877de1435c64c4662.hot-update.js",
"/chunks/billing.2b03ab2e6000a8631b4a.hot-update.js": "/chunks/billing.2b03ab2e6000a8631b4a.hot-update.js",
"/chunks/billing.4220572dd9a64414e0bd.hot-update.js": "/chunks/billing.4220572dd9a64414e0bd.hot-update.js",
"/chunks/billing.6c4d4140f8d2f64e7e29.hot-update.js": "/chunks/billing.6c4d4140f8d2f64e7e29.hot-update.js",
"/chunks/billing.d6ab30375db2849f827a.hot-update.js": "/chunks/billing.d6ab30375db2849f827a.hot-update.js",
"/chunks/billing.9310267b0b8d118dc155.hot-update.js": "/chunks/billing.9310267b0b8d118dc155.hot-update.js",
"/chunks/billing.d707ff2df6c7d0bd60df.hot-update.js": "/chunks/billing.d707ff2df6c7d0bd60df.hot-update.js",
"/chunks/billing.7c38045bf9f1781e548f.hot-update.js": "/chunks/billing.7c38045bf9f1781e548f.hot-update.js",
"/js/main.ffba8bb652ebd451714f.hot-update.js": "/js/main.ffba8bb652ebd451714f.hot-update.js",
"/js/main.100ec61125bc90a63ccf.hot-update.js": "/js/main.100ec61125bc90a63ccf.hot-update.js",
"/chunks/billing.1f769ffe383ca65b2260.hot-update.js": "/chunks/billing.1f769ffe383ca65b2260.hot-update.js",
"/chunks/billing.4e93ed13caa9651ae023.hot-update.js": "/chunks/billing.4e93ed13caa9651ae023.hot-update.js",
"/chunks/billing.54f91c1cb4ef0a22df2b.hot-update.js": "/chunks/billing.54f91c1cb4ef0a22df2b.hot-update.js",
"/chunks/billing.7017eebd1a40a4c29336.hot-update.js": "/chunks/billing.7017eebd1a40a4c29336.hot-update.js",
"/chunks/billing.94873e7e84cb1de4b615.hot-update.js": "/chunks/billing.94873e7e84cb1de4b615.hot-update.js",
"/chunks/billing.97d8eb920b5af070b2a2.hot-update.js": "/chunks/billing.97d8eb920b5af070b2a2.hot-update.js",
"/chunks/billing.95093d8fb8fe26fecad5.hot-update.js": "/chunks/billing.95093d8fb8fe26fecad5.hot-update.js",
"/chunks/billing.53677d7301784a0dfc30.hot-update.js": "/chunks/billing.53677d7301784a0dfc30.hot-update.js",
"/chunks/billing.895f463adeff15c31ce0.hot-update.js": "/chunks/billing.895f463adeff15c31ce0.hot-update.js",
"/chunks/billing.1ca6afe4ab0ea1e4dd5f.hot-update.js": "/chunks/billing.1ca6afe4ab0ea1e4dd5f.hot-update.js",
"/chunks/billing.63de3f13374ced4187b4.hot-update.js": "/chunks/billing.63de3f13374ced4187b4.hot-update.js",
"/chunks/billing.54180aec1a7dd044ccf3.hot-update.js": "/chunks/billing.54180aec1a7dd044ccf3.hot-update.js",
"/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.21980d7efb5c89ef8fa3.hot-update.js": "/chunks/billing~chunks/dashboard~chunks/invoices~chunks/pages~chunks/payments/settings~chunks/plan-su~cdf8788b.21980d7efb5c89ef8fa3.hot-update.js",
"/chunks/billing.89f329dfe2918be60b2d.hot-update.js": "/chunks/billing.89f329dfe2918be60b2d.hot-update.js",
"/chunks/billing.ab1f75c20417a9c76c52.hot-update.js": "/chunks/billing.ab1f75c20417a9c76c52.hot-update.js",
"/chunks/billing.0a9bfa51e84f9a436182.hot-update.js": "/chunks/billing.0a9bfa51e84f9a436182.hot-update.js",
"/chunks/billing.9422dcf23dd5c44eaa1c.hot-update.js": "/chunks/billing.9422dcf23dd5c44eaa1c.hot-update.js",
"/chunks/billing.6ad03d9933308d2d9a78.hot-update.js": "/chunks/billing.6ad03d9933308d2d9a78.hot-update.js",
"/chunks/billing.0ae9cfe2030abe155177.hot-update.js": "/chunks/billing.0ae9cfe2030abe155177.hot-update.js",
"/chunks/billing.96f91847569dd550c69a.hot-update.js": "/chunks/billing.96f91847569dd550c69a.hot-update.js",
"/chunks/billing.a0bd4cf216f2a8f5ae81.hot-update.js": "/chunks/billing.a0bd4cf216f2a8f5ae81.hot-update.js",
"/chunks/billing.edd9a973910cbae06261.hot-update.js": "/chunks/billing.edd9a973910cbae06261.hot-update.js",
"/chunks/billing.c6438e7b5531d22a3cda.hot-update.js": "/chunks/billing.c6438e7b5531d22a3cda.hot-update.js",
"/chunks/billing.628da4e4303326e67edc.hot-update.js": "/chunks/billing.628da4e4303326e67edc.hot-update.js",
"/chunks/billing.f9f8c483fb0cb84297bc.hot-update.js": "/chunks/billing.f9f8c483fb0cb84297bc.hot-update.js",
"/chunks/billing.4ebaf80a564874a8f880.hot-update.js": "/chunks/billing.4ebaf80a564874a8f880.hot-update.js",
"/chunks/billing.8f7c74627f17a2738a40.hot-update.js": "/chunks/billing.8f7c74627f17a2738a40.hot-update.js",
"/chunks/billing.fdcc28962927c4ae5425.hot-update.js": "/chunks/billing.fdcc28962927c4ae5425.hot-update.js",
"/chunks/billing.05af80d5540150f4b4bb.hot-update.js": "/chunks/billing.05af80d5540150f4b4bb.hot-update.js",
"/chunks/billing.0a9b243bb3fff275845d.hot-update.js": "/chunks/billing.0a9b243bb3fff275845d.hot-update.js",
"/chunks/billing.feb37f6ae865778f3bf0.hot-update.js": "/chunks/billing.feb37f6ae865778f3bf0.hot-update.js",
"/chunks/billing.ace9b872b7c7ca5b3315.hot-update.js": "/chunks/billing.ace9b872b7c7ca5b3315.hot-update.js",
"/chunks/billing.9f9375b7a73810185ba8.hot-update.js": "/chunks/billing.9f9375b7a73810185ba8.hot-update.js",
"/chunks/billing.8c078532cdcf3eb6646e.hot-update.js": "/chunks/billing.8c078532cdcf3eb6646e.hot-update.js",
"/chunks/billing.a6e16dfd98623d1c6fe3.hot-update.js": "/chunks/billing.a6e16dfd98623d1c6fe3.hot-update.js",
"/chunks/billing.d89ebefd1929642ec7b8.hot-update.js": "/chunks/billing.d89ebefd1929642ec7b8.hot-update.js",
"/chunks/billing.4b0e0ffcbac1ac8b28d8.hot-update.js": "/chunks/billing.4b0e0ffcbac1ac8b28d8.hot-update.js",
"/chunks/billing.0c36385ac001f5d85720.hot-update.js": "/chunks/billing.0c36385ac001f5d85720.hot-update.js",
"/chunks/billing.5ae12df0e6221943f8fe.hot-update.js": "/chunks/billing.5ae12df0e6221943f8fe.hot-update.js",
"/chunks/billing.f50632a11c8380c1fdfb.hot-update.js": "/chunks/billing.f50632a11c8380c1fdfb.hot-update.js",
"/chunks/billing.cd25f459a392710ac260.hot-update.js": "/chunks/billing.cd25f459a392710ac260.hot-update.js",
"/chunks/billing.11a65b412f5fe7cf21f4.hot-update.js": "/chunks/billing.11a65b412f5fe7cf21f4.hot-update.js",
"/chunks/billing.3518676d250698148277.hot-update.js": "/chunks/billing.3518676d250698148277.hot-update.js",
"/chunks/billing.71beea9a28e1cdf6c3b3.hot-update.js": "/chunks/billing.71beea9a28e1cdf6c3b3.hot-update.js",
"/chunks/billing.30a99bceacb742f9f14c.hot-update.js": "/chunks/billing.30a99bceacb742f9f14c.hot-update.js",
"/chunks/billing.c08835e2571944689949.hot-update.js": "/chunks/billing.c08835e2571944689949.hot-update.js",
"/chunks/billing.068d87ccd9602b6b5607.hot-update.js": "/chunks/billing.068d87ccd9602b6b5607.hot-update.js",
"/chunks/billing.deaa75eebf6714499b61.hot-update.js": "/chunks/billing.deaa75eebf6714499b61.hot-update.js",
"/chunks/billing.4f4d50392150e84b232c.hot-update.js": "/chunks/billing.4f4d50392150e84b232c.hot-update.js",
"/chunks/billing.ba7b4517ea952230f068.hot-update.js": "/chunks/billing.ba7b4517ea952230f068.hot-update.js",
"/chunks/billing.f94236e120e695581da7.hot-update.js": "/chunks/billing.f94236e120e695581da7.hot-update.js",
"/chunks/billing.55975add60c3cd6ddf50.hot-update.js": "/chunks/billing.55975add60c3cd6ddf50.hot-update.js",
"/chunks/billing.1e0e627b9b0b5a31b1c0.hot-update.js": "/chunks/billing.1e0e627b9b0b5a31b1c0.hot-update.js",
"/chunks/billing.088ca33888a57757c0b9.hot-update.js": "/chunks/billing.088ca33888a57757c0b9.hot-update.js",
"/chunks/billing.354123f9ae5a730a0f39.hot-update.js": "/chunks/billing.354123f9ae5a730a0f39.hot-update.js",
"/chunks/billing.ddbbd21b07838acfad59.hot-update.js": "/chunks/billing.ddbbd21b07838acfad59.hot-update.js",
"/chunks/billing.51b976e8a57d4c966480.hot-update.js": "/chunks/billing.51b976e8a57d4c966480.hot-update.js",
"/chunks/billing.28887d58a1607435d7a6.hot-update.js": "/chunks/billing.28887d58a1607435d7a6.hot-update.js",
"/chunks/billing.6e9762e10af164f8b6ab.hot-update.js": "/chunks/billing.6e9762e10af164f8b6ab.hot-update.js"
}
@@ -2,7 +2,7 @@
<div class="w-full">
<table v-if="hasData" class="w-full">
<thead class="">
<tr>
<tr class="whitespace-nowrap">
<th
class="text-left"
v-for="(column, index) in columns"
@@ -5,39 +5,82 @@
</FormLabel>
<DatatableWrapper
api="/api/subscriptions/transactions"
class="overflow-x-auto"
api="/api/user/transactions"
:paginator="true"
:columns="columns"
>
<!--TODO: refactor all tables as this template-->
<template slot-scope="{ row }">
<tr class="border-b dark:border-opacity-5 border-light border-dashed">
<td class="py-4">
<tr class="border-b dark:border-opacity-5 border-light border-dashed whitespace-nowrap">
<td class="py-5 md:pr-1 pr-3">
<span class="text-sm font-bold">
{{ row.data.attributes.note }}
</span>
</td>
<td>
<td class="md:px-1 px-3">
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
{{ row.data.attributes.status }}
</ColorLabel>
</td>
<td class="py-4">
<td class="md:px-1 px-3">
<span class="text-sm font-bold capitalize">
{{ $t(row.data.attributes.type) }}
</span>
</td>
<td>
<td class="md:px-1 px-3">
<span class="text-sm font-bold" :class="$getTransactionTypeTextColor(row.data.attributes.type)">
{{ $getTransactionMark(row.data.attributes.type) + row.data.attributes.price }}
</span>
</td>
<td>
<td class="md:px-1 px-3">
<span class="text-sm font-bold">
{{ row.data.attributes.created_at }}
</span>
</td>
<td class="text-right">
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
<td class="md:px-1 px-3">
<div class="w-28">
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
</div>
</td>
<td class="md:pl-1 pl-3 text-right">
<div v-if="row.data.attributes.metadata" class="flex space-x-2 w-full justify-end">
<div @click="showTransactionDetail(row.data.id)" class="cursor-pointer flex items-center justify-center w-8 h-8 rounded-md hover:bg-green-100 dark:bg-2x-dark-foreground bg-light-background transition-colors">
<EyeIcon size="15" class="opacity-75" />
</div>
<div class="cursor-pointer flex items-center justify-center w-8 h-8 rounded-md hover:bg-purple-100 dark:bg-2x-dark-foreground bg-light-background transition-colors">
<FileTextIcon size="15" class="opacity-75" />
</div>
</div>
<div v-else>
-
</div>
</td>
</tr>
<!--Transaction detail-->
<tr v-if="row.data.attributes.metadata && showedTransactionDetailById === row.data.id">
<td colspan="7" class="dark:bg-2x-dark-foreground bg-light-background bg-opacity-50 rounded-lg overflow-hidden py-2 px-4">
<div class="flex items-center justify-between py-2 border-b dark:border-opacity-5 border-light border-dashed" v-for="(usage, i) in row.data.attributes.metadata" :key="i">
<div class="w-2/4 leading-none">
<b class="text-sm font-bold leading-none">
{{ $t(usage.feature) }}
</b>
<small class="text-xs text-gray-500 pt-2 leading-none sm:block hidden">
{{ $t(`feature_usage_desc_${usage.feature}`) }}
</small>
</div>
<div class="text-left w-1/4">
<span class="text-sm font-bold text-gray-560">
{{ usage.usage }}
</span>
</div>
<div class="text-right w-1/4">
<span class="text-sm font-bold text-theme">
{{ usage.cost }}
</span>
</div>
</div>
</td>
</tr>
</template>
@@ -52,54 +95,76 @@
</div>
</template>
<script>
import ColorLabel from "../Others/ColorLabel"
import DatatableWrapper from "../Others/Tables/DatatableWrapper"
import FormLabel from "../Others/Forms/FormLabel"
import InfoBox from '/resources/js/components/Others/Forms/InfoBox'
import {EyeIcon, FileTextIcon} from 'vue-feather-icons'
import ColorLabel from "../Others/ColorLabel"
import DatatableWrapper from "../Others/Tables/DatatableWrapper"
import FormLabel from "../Others/Forms/FormLabel"
import InfoBox from '/resources/js/components/Others/Forms/InfoBox'
import {mapGetters} from "vuex";
export default {
name: 'UserTransactionsForMeteredBilling',
components: {
ColorLabel,
DatatableWrapper,
FormLabel,
InfoBox
},
data() {
return {
columns: [
{
label: this.$t('Note'),
field: 'note',
sortable: true
},
{
label: this.$t('Status'),
field: 'status',
sortable: true
},
{
label: this.$t('Type'),
field: 'status',
sortable: true
},
{
label: this.$t('admin_page_invoices.table.total'),
field: 'amount',
sortable: true
},
{
label: this.$t('Payed At'),
field: 'created_at',
sortable: true
},
{
label: this.$t('Service'),
field: 'driver',
sortable: true
},
],
export default {
name: 'UserTransactionsForMeteredBilling',
components: {
DatatableWrapper,
ColorLabel,
FormLabel,
InfoBox,
FileTextIcon,
EyeIcon,
},
computed: {
...mapGetters([
'user',
])
},
data() {
return {
showedTransactionDetailById: undefined,
columns: [
{
label: this.$t('Note'),
field: 'note',
sortable: true
},
{
label: this.$t('Status'),
field: 'status',
sortable: true
},
{
label: this.$t('Type'),
field: 'status',
sortable: true
},
{
label: this.$t('admin_page_invoices.table.total'),
field: 'amount',
sortable: true
},
{
label: this.$t('Payed At'),
field: 'created_at',
sortable: true
},
{
label: this.$t('Service'),
field: 'driver',
sortable: true
},
{
label: this.$t('Actions'),
sortable: false
},
],
}
},
methods: {
showTransactionDetail(id) {
if (this.showedTransactionDetailById === id)
this.showedTransactionDetailById = undefined
else
this.showedTransactionDetailById = id
}
}
}
}
</script>
+1 -1
View File
@@ -13,7 +13,7 @@
v-if="ghostLength > 0"
class="2xl:w-3 md:w-2 w-1 block rounded-lg lg:mr-2 mr-1.5 dark:bg-gray-800 bg-gray-100"
v-for="(ghost, i) in ghostLength"
:style="{height: '5%'}"
:style="{height: '7%'}"
:key="i">
</span>
</div>
+1 -1
View File
@@ -19,7 +19,7 @@
<SidebarNavigation />
<div v-if="user" class="px-6 w-full overflow-x-hidden relative pt-6 xl:max-w-screen-lg md:max-w-screen-md mx-auto">
<div v-if="user" class="px-6 w-full overflow-x-hidden relative pt-6 xl:max-w-screen-lg md:max-w-4xl mx-auto">
<div v-if="! isLoading" id="page-content">
<div class="card shadow-card sticky top-0 z-10" style="padding-bottom: 0">
+2
View File
@@ -4,6 +4,7 @@ use App\Users\Controllers\Account\AccountDetailsController;
use App\Users\Controllers\Account\UpdatePasswordController;
use App\Users\Controllers\Account\StorageCapacityController;
use App\Users\Controllers\Verification\VerifyEmailController;
use Domain\Transactions\Controllers\GetTransactionsController;
use App\Users\Controllers\Verification\ResendVerificationEmail;
use App\Users\Controllers\Authentication\CheckAccountController;
use App\Users\Controllers\Account\UpdateProfileSettingsController;
@@ -24,6 +25,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
// Account
Route::patch('/settings', UpdateProfileSettingsController::class);
Route::get('/transactions', GetTransactionsController::class);
Route::post('/password', UpdatePasswordController::class);
Route::get('/storage', StorageCapacityController::class);
Route::get('/', AccountDetailsController::class);
@@ -146,7 +146,7 @@ class GenerateDemoSubscriptionContentCommand extends Command
'type' => 'withdrawal',
'created_at' => now()->subDays(2),
'amount' => $isHowdy ? 12.59 : random_int(1, 20),
'note' => now()->subDays(2)->format('d. M') . ' - ' . now()->subDays(32)->format('d. M'),
'note' => now()->subDays(32)->format('d. M') . ' - ' . now()->subDays(2)->format('d. M'),
'driver' => 'system',
],
[
@@ -159,28 +159,28 @@ class GenerateDemoSubscriptionContentCommand extends Command
[
'type' => 'withdrawal',
'created_at' => now()->subDays(26 * 1),
'note' => now()->subDays(26 * 1)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 1)->format('d. M'),
'note' => now()->subDays(30 + 26 * 1)->format('d. M') . ' - ' . now()->subDays(26 * 1)->format('d. M'),
'amount' => $isHowdy ? 2.38 : random_int(1, 20),
'driver' => 'system',
],
[
'type' => 'withdrawal',
'created_at' => now()->subDays(26 * 2),
'note' => now()->subDays(26 * 2)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 2)->format('d. M'),
'note' => now()->subDays(30 + 26 * 2)->format('d. M') . ' - ' . now()->subDays(26 * 2)->format('d. M'),
'amount' => $isHowdy ? 5.12 : random_int(1, 20),
'driver' => 'system',
],
[
'type' => 'withdrawal',
'created_at' => now()->subDays(26 * 3),
'note' => now()->subDays(26 * 3)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 3)->format('d. M'),
'note' => now()->subDays(30 + 26 * 3)->format('d. M') . ' - ' . now()->subDays(26 * 3)->format('d. M'),
'amount' => $isHowdy ? 3.89 : random_int(1, 20),
'driver' => 'system',
],
[
'type' => 'withdrawal',
'created_at' => now()->subDays(26 * 4),
'note' => now()->subDays(26 * 4)->format('d. M') . ' - ' . now()->subDays(30 + 26 * 4)->format('d. M'),
'note' => now()->subDays(30 + 26 * 4)->format('d. M') . ' - ' . now()->subDays(26 * 4)->format('d. M'),
'amount' => $isHowdy ? 7.42 : random_int(1, 20),
'driver' => 'system',
],
@@ -192,16 +192,46 @@ class GenerateDemoSubscriptionContentCommand extends Command
'driver' => 'paypal',
],
])->each(
fn ($transaction) => $user->transactions()->create([
'type' => $transaction['type'],
'status' => 'completed',
'note' => $transaction['note'],
'currency' => $plan->currency,
'driver' => $transaction['driver'],
'amount' => $transaction['amount'],
'created_at' => $transaction['created_at'],
'reference' => Str::random(12),
])
function ($transaction) use ($user, $plan) {
$bandwidthUsage = random_int(1000, 12000);
$storageUsage = random_int(300, 4900);
$memberUsage = random_int(3, 20);
$user->transactions()->create([
'type' => $transaction['type'],
'status' => 'completed',
'note' => $transaction['note'],
'currency' => $plan->currency,
'driver' => $transaction['driver'],
'amount' => $transaction['amount'],
'created_at' => $transaction['created_at'],
'reference' => Str::random(12),
'metadata' => $transaction['type'] === 'withdrawal'
? [
[
'feature' => 'bandwidth',
'amount' => 0.29 * $bandwidthUsage,
'usage' => $bandwidthUsage,
],
[
'feature' => 'storage',
'amount' => 0.19 * $storageUsage,
'usage' => $storageUsage,
],
[
'feature' => 'flatFee',
'amount' => 2.49,
'usage' => 1,
],
[
'feature' => 'member',
'amount' => 0.10 * $memberUsage,
'usage' => $memberUsage,
],
]
: null,
]);
}
);
// Make fake credit card
@@ -6,30 +6,31 @@ use Illuminate\Support\Collection;
class FormatUsageEstimatesAction
{
public function __invoke(string $currency, Collection $usage)
public function __invoke(string $currency, Collection|array $usage)
{
return $usage->mapWithKeys(function ($estimate) use ($currency) {
// Format usage
$usage = match ($estimate['feature']) {
'bandwidth', 'storage' => Metric::megabytes($estimate['usage'])->format(),
'flatFee' => intval($estimate['usage']) . ' ' . __('Pcs.'),
'member' => intval($estimate['usage']) . ' ' . __('Mem.'),
};
return collect($usage)
->mapWithKeys(function ($estimate) use ($currency) {
// Format usage
$usage = match ($estimate['feature']) {
'bandwidth', 'storage' => Metric::megabytes($estimate['usage'])->format(),
'flatFee' => intval($estimate['usage']) . ' ' . __('Pcs.'),
'member' => intval($estimate['usage']) . ' ' . __('Mem.'),
};
// Normalize units
$amount = match ($estimate['feature']) {
'bandwidth', 'storage' => $estimate['amount'] / 1000,
'flatFee', 'member' => $estimate['amount'],
};
// Normalize units
$amount = match ($estimate['feature']) {
'bandwidth', 'storage' => $estimate['amount'] / 1000,
'flatFee', 'member' => $estimate['amount'],
};
return [
$estimate['feature'] => [
'feature' => $estimate['feature'],
'amount' => $amount,
'cost' => format_currency($amount, $currency),
'usage' => $usage,
],
];
});
return [
$estimate['feature'] => [
'feature' => $estimate['feature'],
'amount' => $amount,
'cost' => format_currency($amount, $currency),
'usage' => $usage,
],
];
});
}
}
@@ -0,0 +1,19 @@
<?php
namespace Domain\Transactions\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Domain\Transactions\Resources\TransactionCollection;
class GetTransactionsController extends Controller
{
public function __invoke()
{
$transactions = Auth::user()
->transactions()
->sortable(['created_at' => 'desc'])
->paginate(20);
return new TransactionCollection($transactions);
}
}
@@ -0,0 +1,22 @@
<?php
namespace Domain\Transactions\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class TransactionCollection extends ResourceCollection
{
public $collects = TransactionResource::class;
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
];
}
}
@@ -0,0 +1,57 @@
<?php
namespace Domain\Transactions\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use App\Users\Actions\FormatUsageEstimatesAction;
class TransactionResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => [
'id' => $this->id,
'type' => 'transactions',
'attributes' => [
'type' => $this->type,
'status' => $this->status,
'note' => $this->note,
'price' => format_currency($this->amount, $this->currency),
'currency' => $this->currency,
'amount' => $this->amount,
'driver' => $this->driver,
'reference' => $this->reference,
'metadata' => $this->metadata
? resolve(FormatUsageEstimatesAction::class)($this->currency, $this->metadata)
: null,
'created_at' => $this->created_at->formatLocalized('%d. %b. %Y'),
'updated_at' => $this->updated_at,
],
'relationships' => [
$this->mergeWhen($this->user && $this->user->settings, fn () => [
'user' => [
'data' => [
'id' => $this->user->id,
'type' => 'users',
'attributes' => [
'avatar' => $this->user->settings->avatar,
'first_name' => $this->user->settings->first_name,
'last_name' => $this->user->settings->last_name,
'name' => $this->user->settings->name,
'color' => $this->user->settings->color,
'email' => $this->user->email,
],
],
],
]),
],
],
];
}
}