adminforth 3.12.3 → 3.13.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketBroker.d.ts","sourceRoot":"","sources":["../../modules/socketBroker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socketBroker.d.ts","sourceRoot":"","sources":["../../modules/socketBroker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,gBAAgB;IAC3D,OAAO,EAAE,gBAAgB,EAAE,CAAM;IACjC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KAAE,CAAM;IACnD,UAAU,EAAE,WAAW,CAAC;IACxB,kBAAkB,UAAS;gBAEf,UAAU,EAAE,WAAW;IAI7B,YAAY;IAYZ,gBAAgB;IActB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM;IAO7D,mBAAmB,CAAC,KAAK,EAAE,MAAM;IASjC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAmG1C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BjH"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import pLimit from 'p-limit';
|
|
1
2
|
import { afLogger } from '../modules/logger.js';
|
|
3
|
+
const PUBLISH_FILTER_CONCURRENCY = 10;
|
|
2
4
|
export default class SocketBroker {
|
|
3
5
|
constructor(adminforth) {
|
|
4
6
|
this.clients = [];
|
|
@@ -134,16 +136,23 @@ export default class SocketBroker {
|
|
|
134
136
|
afLogger.trace(`No clients subscribed to topic ${topic}`);
|
|
135
137
|
return;
|
|
136
138
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
139
|
+
const message = JSON.stringify({ type: 'message', topic, data });
|
|
140
|
+
if (!filterUsers) {
|
|
141
|
+
for (const client of this.topics[topic]) {
|
|
142
|
+
afLogger.trace(`Sending data to socket ${topic} ${JSON.stringify(data)}`);
|
|
143
|
+
client.send(message);
|
|
143
144
|
}
|
|
144
|
-
|
|
145
|
-
client.send(JSON.stringify({ type: 'message', topic, data }));
|
|
145
|
+
return;
|
|
146
146
|
}
|
|
147
|
+
const limit = pLimit(PUBLISH_FILTER_CONCURRENCY);
|
|
148
|
+
await Promise.all(this.topics[topic].map((client) => limit(async () => {
|
|
149
|
+
if (!(await filterUsers(client.adminUser))) {
|
|
150
|
+
afLogger.trace(`Client not authorized to receive message ${topic} ${client.adminUser}`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
afLogger.trace(`Sending data to socket ${topic} ${JSON.stringify(data)}`);
|
|
154
|
+
client.send(message);
|
|
155
|
+
})));
|
|
147
156
|
}
|
|
148
157
|
}
|
|
149
158
|
//# sourceMappingURL=socketBroker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketBroker.js","sourceRoot":"","sources":["../../modules/socketBroker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socketBroker.js","sourceRoot":"","sources":["../../modules/socketBroker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="inline-flex items-center gap-1">
|
|
3
|
-
<Tooltip>
|
|
3
|
+
<Tooltip v-if="tooltipText">
|
|
4
4
|
<div
|
|
5
5
|
class="overflow-hidden max-h-[20px] rounded-default"
|
|
6
6
|
:class="{ 'shrink-0 w-[90px]': compact }"
|
|
@@ -21,10 +21,39 @@
|
|
|
21
21
|
<span class="whitespace-nowrap">{{ tooltipText }}</span>
|
|
22
22
|
</template>
|
|
23
23
|
</Tooltip>
|
|
24
|
+
<div
|
|
25
|
+
v-else
|
|
26
|
+
class="overflow-hidden max-h-[20px] rounded-default"
|
|
27
|
+
:class="{ 'shrink-0 w-[90px]': compact }"
|
|
28
|
+
@click="toggle"
|
|
29
|
+
>
|
|
30
|
+
<span
|
|
31
|
+
class="cursor-pointer select-none transition-all duration-200 text-lightListTableText dark:text-darkListTableText"
|
|
32
|
+
:class="{
|
|
33
|
+
'block truncate': compact,
|
|
34
|
+
'blur-[7px] hover:blur-[5px] brightness-50 dark:brightness-150': !show,
|
|
35
|
+
}"
|
|
36
|
+
>
|
|
37
|
+
<template v-if="compact">{{ visualValue }}</template>
|
|
38
|
+
<ValueRenderer v-else :column="column" :record="record" />
|
|
39
|
+
</span>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<span v-if="eyeButton" class="shrink-0 w-5 h-5">
|
|
43
|
+
<IconEyeSolid
|
|
44
|
+
v-if="!show"
|
|
45
|
+
@click.stop="toggle"
|
|
46
|
+
class="w-5 h-5 cursor-pointer text-lightPrimary dark:text-darkPrimary"
|
|
47
|
+
/>
|
|
48
|
+
<IconEyeSlashSolid
|
|
49
|
+
v-else
|
|
50
|
+
@click.stop="toggle"
|
|
51
|
+
class="w-5 h-5 cursor-pointer text-lightPrimary dark:text-darkPrimary"
|
|
52
|
+
/>
|
|
53
|
+
</span>
|
|
24
54
|
|
|
25
55
|
<span v-if="showCopy && rawValue" class="shrink-0 w-5 h-5">
|
|
26
56
|
<IconFileCopyAltSolid
|
|
27
|
-
v-if="show"
|
|
28
57
|
@click.stop="copyToCB"
|
|
29
58
|
class="w-5 h-5 cursor-pointer text-lightPrimary dark:text-darkPrimary"
|
|
30
59
|
/>
|
|
@@ -35,7 +64,7 @@
|
|
|
35
64
|
<script setup lang="ts">
|
|
36
65
|
import { ref, computed } from 'vue';
|
|
37
66
|
import { useI18n } from 'vue-i18n';
|
|
38
|
-
import { IconFileCopyAltSolid } from '@iconify-prerendered/vue-flowbite';
|
|
67
|
+
import { IconFileCopyAltSolid, IconEyeSolid, IconEyeSlashSolid } from '@iconify-prerendered/vue-flowbite';
|
|
39
68
|
import ValueRenderer from '@/components/ValueRenderer.vue';
|
|
40
69
|
import Tooltip from '@/afcl/Tooltip.vue';
|
|
41
70
|
import { useAdminforth } from '@/adminforth';
|
|
@@ -44,7 +73,7 @@ import type { AdminForthResourceColumnCommon, AdminForthResourceCommon, AdminUse
|
|
|
44
73
|
const props = defineProps<{
|
|
45
74
|
column: AdminForthResourceColumnCommon;
|
|
46
75
|
record: any;
|
|
47
|
-
meta: { compact?: boolean; copy?: boolean } | any;
|
|
76
|
+
meta: { compact?: boolean; copy?: boolean; eyeButton?: boolean } | any;
|
|
48
77
|
resource: AdminForthResourceCommon;
|
|
49
78
|
adminUser: AdminUser;
|
|
50
79
|
}>();
|
|
@@ -57,7 +86,8 @@ const show = ref(false);
|
|
|
57
86
|
const rawValue = computed(() => props.record[props.column.name]);
|
|
58
87
|
|
|
59
88
|
const compact = computed(() => props.meta?.compact);
|
|
60
|
-
const showCopy = computed(() =>
|
|
89
|
+
const showCopy = computed(() => props.meta?.copy);
|
|
90
|
+
const eyeButton = computed(() => props.meta?.eyeButton);
|
|
61
91
|
const visualValue = computed(() => {
|
|
62
92
|
const val = rawValue.value;
|
|
63
93
|
if (val && String(val).length > 8) {
|
|
@@ -71,6 +101,9 @@ const tooltipText = computed(() => {
|
|
|
71
101
|
if (compact.value && show.value) {
|
|
72
102
|
return rawValue.value;
|
|
73
103
|
}
|
|
104
|
+
if (eyeButton.value) {
|
|
105
|
+
return '';
|
|
106
|
+
}
|
|
74
107
|
return show.value ? t('Click to hide') : t('Click to show');
|
|
75
108
|
});
|
|
76
109
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adminforth",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.13.0",
|
|
4
4
|
"description": "OpenSource Agent-Native forth-generation admin panel",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adminforth",
|
|
@@ -109,6 +109,7 @@
|
|
|
109
109
|
"listr2": "^8.2.5",
|
|
110
110
|
"multer": "^2.1.1",
|
|
111
111
|
"node-fetch": "^3.3.2",
|
|
112
|
+
"p-limit": "^7.3.1",
|
|
112
113
|
"pino": "^10.1.0",
|
|
113
114
|
"pino-pretty": "^13.1.3",
|
|
114
115
|
"private-ip": "^3.0.2",
|