@humandialog/forms.svelte 0.4.45 → 0.5.1
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/components/Fab.svelte +60 -48
- package/components/Floating_container.svelte +5 -4
- package/components/Floating_container.svelte.d.ts +2 -2
- package/components/Grid.menu.svelte +13 -9
- package/components/Grid.menu.svelte.d.ts +2 -2
- package/components/button.svelte +4 -4
- package/components/checkbox.svelte +12 -10
- package/components/checkbox.svelte.d.ts +1 -0
- package/components/combo/combo.d.ts +1 -1
- package/components/combo/combo.js +1 -1
- package/components/combo/combo.source.svelte +2 -2
- package/components/combo/combo.source.svelte.d.ts +1 -1
- package/components/combo/combo.svelte +92 -61
- package/components/combo/combo.svelte.d.ts +7 -4
- package/components/contextmenu.svelte +20 -19
- package/components/contextmenu.svelte.d.ts +5 -5
- package/components/date.svelte +40 -25
- package/components/date.svelte.d.ts +3 -2
- package/components/delayed.spinner.svelte +2 -2
- package/components/document/internal/palette.row.svelte +3 -3
- package/components/document/internal/palette.svelte +2 -2
- package/components/document/internal/palette.svelte.d.ts +1 -1
- package/components/document/rich.edit.svelte +307 -35
- package/components/document/rich.edit.svelte.d.ts +9 -0
- package/components/edit.field.svelte +17 -15
- package/components/edit.field.svelte.d.ts +2 -1
- package/components/file.loader.svelte +6 -6
- package/components/file.loader.svelte.d.ts +10 -10
- package/components/icon.svelte +2 -2
- package/components/icon.svelte.d.ts +3 -3
- package/components/input.text.svelte +3 -3
- package/components/inputbox.ltop.svelte +19 -17
- package/components/inputbox.ltop.svelte.d.ts +4 -2
- package/components/kanban/Kanban.d.ts +23 -0
- package/components/kanban/Kanban.js +23 -0
- package/components/kanban/internal/kanban.card.svelte +158 -0
- package/components/kanban/internal/kanban.card.svelte.d.ts +35 -0
- package/components/kanban/internal/kanban.column.svelte +181 -0
- package/components/kanban/internal/kanban.column.svelte.d.ts +51 -0
- package/components/kanban/internal/kanban.inserter.svelte +24 -0
- package/components/kanban/internal/kanban.inserter.svelte.d.ts +18 -0
- package/components/kanban/internal/kanban.move.menu.svelte +146 -0
- package/components/kanban/internal/kanban.move.menu.svelte.d.ts +19 -0
- package/components/kanban/kanban.callbacks.svelte +15 -0
- package/components/kanban/kanban.callbacks.svelte.d.ts +21 -0
- package/components/kanban/kanban.column.svelte +20 -0
- package/components/kanban/kanban.column.svelte.d.ts +21 -0
- package/components/kanban/kanban.summary.svelte +5 -0
- package/components/kanban/kanban.summary.svelte.d.ts +16 -0
- package/components/kanban/kanban.svelte +156 -0
- package/components/kanban/kanban.svelte.d.ts +43 -0
- package/components/kanban/kanban.title.svelte +8 -0
- package/components/kanban/kanban.title.svelte.d.ts +17 -0
- package/components/list/List.d.ts +4 -2
- package/components/list/List.js +4 -2
- package/components/list/internal/list.element.props.svelte +7 -8
- package/components/list/internal/list.element.props.svelte.d.ts +2 -2
- package/components/list/internal/list.element.summary.svelte +4 -4
- package/components/list/internal/list.element.summary.svelte.d.ts +1 -1
- package/components/list/internal/list.element.svelte +61 -49
- package/components/list/internal/list.element.svelte.d.ts +4 -4
- package/components/list/internal/list.inserter.svelte +9 -6
- package/components/list/internal/list.inserter.svelte.d.ts +1 -1
- package/components/list/list.combo.svelte +2 -2
- package/components/list/list.combo.svelte.d.ts +1 -1
- package/components/list/list.date.svelte +2 -2
- package/components/list/list.date.svelte.d.ts +1 -1
- package/components/list/list.inserter.svelte +1 -1
- package/components/list/list.summary.svelte +2 -2
- package/components/list/list.summary.svelte.d.ts +1 -1
- package/components/list/list.svelte +173 -35
- package/components/list/list.svelte.d.ts +27 -10
- package/components/list/list.title.svelte +6 -2
- package/components/list/list.title.svelte.d.ts +3 -1
- package/components/menu.d.ts +4 -4
- package/components/menu.js +15 -13
- package/components/radio.svelte +12 -10
- package/components/radio.svelte.d.ts +1 -0
- package/components/sidebar/sidebar.group.svelte +1 -13
- package/components/sidebar/sidebar.group.svelte.d.ts +0 -4
- package/components/sidebar/sidebar.item.svelte +13 -13
- package/components/sidebar/sidebar.list.svelte +68 -0
- package/components/sidebar/sidebar.list.svelte.d.ts +33 -0
- package/components/sidebar/sidebar.svelte +1 -1
- package/components/simple.table.svelte +15 -15
- package/components/simple.table.svelte.d.ts +2 -2
- package/components/table/_template.table.svelte +17 -17
- package/components/table/_template.table.svelte.d.ts +2 -2
- package/components/table/table.svelte +31 -31
- package/components/table/table.svelte.d.ts +8 -8
- package/components/textarea.ltop.svelte +4 -4
- package/components/tile.title.svelte +6 -6
- package/desk.svelte +13 -13
- package/form.box.svelte +2 -2
- package/horizontal.toolbar.svelte +24 -15
- package/horizontal.toolbar.svelte.d.ts +2 -2
- package/index.d.ts +14 -5
- package/index.js +14 -5
- package/modal.svelte +17 -17
- package/modal.svelte.d.ts +4 -4
- package/operations.svelte +42 -27
- package/package.json +12 -1
- package/page.svelte +115 -124
- package/page.svelte.d.ts +4 -4
- package/stores.d.ts +9 -7
- package/stores.js +17 -9
- package/tenant.members.svelte +44 -44
- package/tenant.members.svelte.d.ts +10 -10
- package/tile.svelte +3 -3
- package/tiles.vertical.row.svelte +1 -1
- package/updates.d.ts +3 -3
- package/updates.js +35 -3
- package/utils.d.ts +22 -13
- package/utils.js +198 -50
- package/vertical.toolbar.svelte +22 -13
- package/vertical.toolbar.svelte.d.ts +2 -2
package/page.svelte
CHANGED
|
@@ -1,127 +1,118 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
$context_items_store[c] = null;
|
|
113
|
-
$context_info_store[c] = '';
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
//e.stopPropagation();
|
|
117
|
-
|
|
118
|
-
$context_toolbar_operations = [];
|
|
119
|
-
$data_tick_store = $data_tick_store + 1;
|
|
120
|
-
}
|
|
2
|
+
import { setContext, onMount } from 'svelte';
|
|
3
|
+
import {
|
|
4
|
+
contextItemsStore,
|
|
5
|
+
data_tick_store,
|
|
6
|
+
contextTypesStore,
|
|
7
|
+
context_info_store,
|
|
8
|
+
contextToolbarOperations,
|
|
9
|
+
pageToolbarOperations,
|
|
10
|
+
page_title
|
|
11
|
+
} from './stores.js';
|
|
12
|
+
|
|
13
|
+
//import {chnages} from './utils.js'
|
|
14
|
+
|
|
15
|
+
export let context = 'data';
|
|
16
|
+
export let self = null;
|
|
17
|
+
export let typename = '';
|
|
18
|
+
export let focused_only = false;
|
|
19
|
+
export let inContext = '';
|
|
20
|
+
export let cl =
|
|
21
|
+
'w-full h-full flex flex-col dark:bg-stone-800 overflow-y-hidden overflow-x-hidden py-1 px-1 border-0'; // border-green-500
|
|
22
|
+
export let c = '';
|
|
23
|
+
|
|
24
|
+
export let toolbarOperations = undefined;
|
|
25
|
+
export let clears_context = '';
|
|
26
|
+
export let title = '';
|
|
27
|
+
|
|
28
|
+
switch (c) {
|
|
29
|
+
case 'main':
|
|
30
|
+
cl =
|
|
31
|
+
'w-full h-full flex flex-col dark:bg-stone-800 overflow-y-hidden overflow-x-hidden py-1 px-1 border-0';
|
|
32
|
+
break;
|
|
33
|
+
case 'main-d':
|
|
34
|
+
cl =
|
|
35
|
+
'bg-stone-800 w-full h-full flex flex-col dark:bg-stone-800 overflow-y-hidden overflow-x-hidden py-1 px-1 border-0';
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
//NOP
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
onMount(() => {
|
|
42
|
+
if (toolbarOperations != undefined && Array.isArray(toolbarOperations))
|
|
43
|
+
$pageToolbarOperations = [...toolbarOperations];
|
|
44
|
+
|
|
45
|
+
$page_title = title;
|
|
46
|
+
|
|
47
|
+
//clear_selection();
|
|
48
|
+
$contextToolbarOperations = [];
|
|
49
|
+
$data_tick_store = $data_tick_store + 1;
|
|
50
|
+
|
|
51
|
+
return () => {
|
|
52
|
+
$pageToolbarOperations = [];
|
|
53
|
+
$page_title = '';
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
setContext('ctx', context);
|
|
58
|
+
let item = null;
|
|
59
|
+
let visibilty = 'hidden';
|
|
60
|
+
if (inContext == '') inContext = context;
|
|
61
|
+
let last_tick = 0;
|
|
62
|
+
if (self != null) $contextItemsStore[context] = self;
|
|
63
|
+
|
|
64
|
+
if (typename) $contextTypesStore[context] = typename;
|
|
65
|
+
|
|
66
|
+
item = $contextItemsStore[context];
|
|
67
|
+
visibilty = 'hidden';
|
|
68
|
+
if (item != null) {
|
|
69
|
+
if (focused_only) {
|
|
70
|
+
if ($contextItemsStore.focused == inContext) visibilty = '';
|
|
71
|
+
} else visibilty = '';
|
|
72
|
+
}
|
|
73
|
+
let t = 0;
|
|
74
|
+
$: {
|
|
75
|
+
t = $data_tick_store;
|
|
76
|
+
//chnages.just_changed_context = false;
|
|
77
|
+
|
|
78
|
+
if (t > last_tick) {
|
|
79
|
+
last_tick = t;
|
|
80
|
+
if (self != null) $contextItemsStore[context] = self;
|
|
81
|
+
|
|
82
|
+
if (typename) $contextTypesStore[context] = typename;
|
|
83
|
+
|
|
84
|
+
item = $contextItemsStore[context];
|
|
85
|
+
visibilty = 'hidden';
|
|
86
|
+
if (item != null) {
|
|
87
|
+
if (focused_only) {
|
|
88
|
+
if ($contextItemsStore.focused == inContext) visibilty = '';
|
|
89
|
+
} else visibilty = '';
|
|
90
|
+
}
|
|
91
|
+
//console.log("$page[" + inContext + ", " + context + "]: " + visibilty)
|
|
92
|
+
//console.log(item)
|
|
93
|
+
//console.log("--------------")
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function clear_selection(e) {
|
|
98
|
+
//console.log('page click', chnages.just_changed_context)
|
|
99
|
+
if (!clears_context) return;
|
|
100
|
+
|
|
101
|
+
let contexts = clears_context.split(' ');
|
|
102
|
+
contexts.forEach((c) => {
|
|
103
|
+
$contextItemsStore[c] = null;
|
|
104
|
+
$context_info_store[c] = '';
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
//e.stopPropagation();
|
|
108
|
+
|
|
109
|
+
$contextToolbarOperations = [];
|
|
110
|
+
$data_tick_store = $data_tick_store + 1;
|
|
111
|
+
}
|
|
121
112
|
</script>
|
|
122
113
|
|
|
123
|
-
<div class="bg-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
</div>
|
|
114
|
+
<div class="bg-stone-100 dark:bg-stone-800 {visibilty} {cl}" on:click={clear_selection}>
|
|
115
|
+
{#if visibilty == ''}
|
|
116
|
+
<slot />
|
|
117
|
+
{/if}
|
|
118
|
+
</div>
|
package/page.svelte.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export default class Page extends SvelteComponentTyped<{
|
|
|
8
8
|
cl?: string | undefined;
|
|
9
9
|
typename?: string | undefined;
|
|
10
10
|
focused_only?: boolean | undefined;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
inContext?: string | undefined;
|
|
12
|
+
toolbarOperations?: any;
|
|
13
13
|
clears_context?: string | undefined;
|
|
14
14
|
title?: string | undefined;
|
|
15
15
|
}, {
|
|
@@ -30,8 +30,8 @@ declare const __propDef: {
|
|
|
30
30
|
cl?: string | undefined;
|
|
31
31
|
typename?: string | undefined;
|
|
32
32
|
focused_only?: boolean | undefined;
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
inContext?: string | undefined;
|
|
34
|
+
toolbarOperations?: any;
|
|
35
35
|
clears_context?: string | undefined;
|
|
36
36
|
title?: string | undefined;
|
|
37
37
|
};
|
package/stores.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export function
|
|
2
|
-
export function
|
|
3
|
-
export function
|
|
1
|
+
export function setNavigatorTitle(key: any, title: any): void;
|
|
2
|
+
export function hasSelectedItem(): boolean;
|
|
3
|
+
export function hasDataItem(): boolean;
|
|
4
|
+
export function reloadMainView(): void;
|
|
4
5
|
export function set_dark_mode_default(value: any): void;
|
|
5
6
|
export function set_default_tools_visible(value: any): void;
|
|
6
7
|
export function restore_defults(): void;
|
|
@@ -9,7 +10,7 @@ export function auto_hide_sidebar(): void;
|
|
|
9
10
|
export function hide_sidebar(): void;
|
|
10
11
|
export function show_sidebar(index: any): void;
|
|
11
12
|
export const data_tick_store: import("svelte/store").Writable<number>;
|
|
12
|
-
export const
|
|
13
|
+
export const contextItemsStore: import("svelte/store").Writable<{
|
|
13
14
|
focused: string;
|
|
14
15
|
data: null;
|
|
15
16
|
sel: null;
|
|
@@ -18,15 +19,16 @@ export const context_info_store: import("svelte/store").Writable<{
|
|
|
18
19
|
data: string;
|
|
19
20
|
sel: string;
|
|
20
21
|
}>;
|
|
21
|
-
export const
|
|
22
|
+
export const contextTypesStore: import("svelte/store").Writable<{
|
|
22
23
|
focused: string;
|
|
23
24
|
data: null;
|
|
24
25
|
sel: null;
|
|
25
26
|
}>;
|
|
26
|
-
export const
|
|
27
|
-
export const
|
|
27
|
+
export const contextToolbarOperations: import("svelte/store").Writable<never[]>;
|
|
28
|
+
export const pageToolbarOperations: import("svelte/store").Writable<never[]>;
|
|
28
29
|
export const page_title: import("svelte/store").Writable<string>;
|
|
29
30
|
export const nav_titles: import("svelte/store").Writable<{}>;
|
|
31
|
+
export const mainViewReloader: import("svelte/store").Writable<number>;
|
|
30
32
|
export const dark_mode_store: import("svelte/store").Writable<any>;
|
|
31
33
|
export const main_sidebar_visible_store: import("svelte/store").Writable<any>;
|
|
32
34
|
export let previously_visible_sidebar: string;
|
package/stores.js
CHANGED
|
@@ -3,33 +3,41 @@ import {writable, get} from 'svelte/store';
|
|
|
3
3
|
import {SCREEN_SIZES} from './utils.js'
|
|
4
4
|
|
|
5
5
|
export const data_tick_store = writable(1);
|
|
6
|
-
export const
|
|
6
|
+
export const contextItemsStore = writable({focused:'', data: null, sel: null})
|
|
7
7
|
export const context_info_store = writable({data: '', sel: ''})
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
8
|
+
export const contextTypesStore = writable({focused:'', data: null, sel: null})
|
|
9
|
+
export const contextToolbarOperations = writable([]);
|
|
10
|
+
export const pageToolbarOperations = writable([]);
|
|
11
11
|
export const page_title = writable('');
|
|
12
12
|
export const nav_titles = writable({});
|
|
13
|
+
export const mainViewReloader = writable(1);
|
|
13
14
|
|
|
14
|
-
export function
|
|
15
|
+
export function setNavigatorTitle(key, title)
|
|
15
16
|
{
|
|
16
17
|
let titles = get(nav_titles);
|
|
17
18
|
titles[key] = title;
|
|
18
19
|
nav_titles.set(titles);
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
export function
|
|
22
|
+
export function hasSelectedItem()
|
|
22
23
|
{
|
|
23
|
-
let itm = get(
|
|
24
|
+
let itm = get(contextItemsStore).sel
|
|
24
25
|
return itm !== null && itm !== undefined;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
export function
|
|
28
|
+
export function hasDataItem()
|
|
28
29
|
{
|
|
29
|
-
let itm = get(
|
|
30
|
+
let itm = get(contextItemsStore).data
|
|
30
31
|
return itm !== null && itm !== undefined;
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
export function reloadMainView()
|
|
35
|
+
{
|
|
36
|
+
let val = get(mainViewReloader);
|
|
37
|
+
val += 1;
|
|
38
|
+
mainViewReloader.set(val);
|
|
39
|
+
}
|
|
40
|
+
|
|
33
41
|
|
|
34
42
|
let has_saved_dark_mode = false;
|
|
35
43
|
function create_dark_mode_store()
|
package/tenant.members.svelte
CHANGED
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
// ==============================================================================
|
|
23
23
|
|
|
24
24
|
export let users = undefined;
|
|
25
|
-
export let
|
|
26
|
-
export let
|
|
27
|
-
export let
|
|
28
|
-
export let
|
|
25
|
+
export let nameAttrib = "Name";
|
|
26
|
+
export let emailAttrib = "login";
|
|
27
|
+
export let refAttrib = "$ref";
|
|
28
|
+
export let showFiles = false;
|
|
29
29
|
//export let show_admin = true;
|
|
30
|
-
export let
|
|
30
|
+
export let appGroups = undefined;
|
|
31
31
|
|
|
32
32
|
// ===============================================================================
|
|
33
33
|
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
{
|
|
54
54
|
reef_users.push(
|
|
55
55
|
{
|
|
56
|
-
[
|
|
57
|
-
[
|
|
58
|
-
[
|
|
56
|
+
[nameAttrib]: u[nameAttrib],
|
|
57
|
+
[emailAttrib]: u[emailAttrib],
|
|
58
|
+
[refAttrib]: u[refAttrib],
|
|
59
59
|
auth_group: 0,
|
|
60
60
|
files_group :0,
|
|
61
61
|
app_group: 0,
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
let handled_no = 0;
|
|
85
85
|
reef_users.forEach(async ru =>
|
|
86
86
|
{
|
|
87
|
-
let details = await reef.get(`/sys/user_details?email=${ru[
|
|
87
|
+
let details = await reef.get(`/sys/user_details?email=${ru[emailAttrib]}`)
|
|
88
88
|
set_user_info(ru, details);
|
|
89
89
|
|
|
90
90
|
handled_no++;
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
{
|
|
93
93
|
|
|
94
94
|
|
|
95
|
-
list?.
|
|
95
|
+
list?.updateObjects(reef_users);
|
|
96
96
|
}
|
|
97
97
|
} )
|
|
98
98
|
}
|
|
@@ -136,12 +136,12 @@
|
|
|
136
136
|
|
|
137
137
|
async function delete_user(user)
|
|
138
138
|
{
|
|
139
|
-
let email = user[
|
|
139
|
+
let email = user[emailAttrib];
|
|
140
140
|
|
|
141
141
|
let removed_user_details = await reef.get('/sys/kick_out_user?email=' + email);
|
|
142
142
|
if(removed_user_details)
|
|
143
143
|
{
|
|
144
|
-
//let removed_user = reef_users.find( u => u[
|
|
144
|
+
//let removed_user = reef_users.find( u => u[emailAttrib] == user[emailAttrib])
|
|
145
145
|
set_user_info(user, removed_user_details);
|
|
146
146
|
list?.refresh();
|
|
147
147
|
}
|
|
@@ -151,13 +151,13 @@
|
|
|
151
151
|
{
|
|
152
152
|
user[property] = name;
|
|
153
153
|
|
|
154
|
-
let user_path = user[
|
|
154
|
+
let user_path = user[refAttrib];
|
|
155
155
|
if(!user_path)
|
|
156
156
|
return;
|
|
157
157
|
|
|
158
158
|
await reef.post(`${user_path}/set`,
|
|
159
159
|
{
|
|
160
|
-
[
|
|
160
|
+
[nameAttrib]: name
|
|
161
161
|
});
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
{
|
|
166
166
|
if(user.auth_group != flags)
|
|
167
167
|
{
|
|
168
|
-
let email = user[
|
|
168
|
+
let email = user[emailAttrib];
|
|
169
169
|
let info = await reef.get(`sys/set_user_details?email=${email}&auth_group=${flags}`)
|
|
170
170
|
if(info)
|
|
171
171
|
{
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
{
|
|
184
184
|
user.files_group = flags;
|
|
185
185
|
|
|
186
|
-
let email = user[
|
|
186
|
+
let email = user[emailAttrib];
|
|
187
187
|
let info = await reef.get(`sys/set_user_details?email=${email}&files_group=${flags}`)
|
|
188
188
|
if(info)
|
|
189
189
|
{
|
|
@@ -210,15 +210,15 @@
|
|
|
210
210
|
{
|
|
211
211
|
let operations = [
|
|
212
212
|
{
|
|
213
|
-
caption:
|
|
214
|
-
action: (focused) => { list.edit(user,
|
|
213
|
+
caption: nameAttrib,
|
|
214
|
+
action: (focused) => { list.edit(user, nameAttrib) }
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
caption: 'Privileges',
|
|
218
218
|
action: (focused) => { list.edit(user, 'Privileges') }
|
|
219
219
|
}];
|
|
220
220
|
|
|
221
|
-
if(
|
|
221
|
+
if(showFiles)
|
|
222
222
|
{
|
|
223
223
|
operations.push({
|
|
224
224
|
caption: 'Files',
|
|
@@ -362,9 +362,9 @@
|
|
|
362
362
|
{
|
|
363
363
|
reef_users.push(
|
|
364
364
|
{
|
|
365
|
-
[
|
|
366
|
-
[
|
|
367
|
-
[
|
|
365
|
+
[nameAttrib]: names[i],
|
|
366
|
+
[emailAttrib]: 'u@fake.com',
|
|
367
|
+
[refAttrib]: `./User/${1000+i}`,
|
|
368
368
|
__hd_internal_item_id: 1000+i
|
|
369
369
|
}
|
|
370
370
|
)
|
|
@@ -385,24 +385,24 @@
|
|
|
385
385
|
admin: new_user.maintainer,
|
|
386
386
|
set:
|
|
387
387
|
{
|
|
388
|
-
[
|
|
389
|
-
[
|
|
388
|
+
[nameAttrib]: new_user.name,
|
|
389
|
+
[emailAttrib]: new_user.email
|
|
390
390
|
}
|
|
391
391
|
})
|
|
392
392
|
if(result)
|
|
393
393
|
{
|
|
394
394
|
let created_user = result.User;
|
|
395
395
|
let new_reef_user = {
|
|
396
|
-
[
|
|
397
|
-
[
|
|
398
|
-
[
|
|
396
|
+
[nameAttrib]: created_user[nameAttrib],
|
|
397
|
+
[emailAttrib]: created_user[emailAttrib],
|
|
398
|
+
[refAttrib]: created_user[refAttrib]
|
|
399
399
|
}
|
|
400
400
|
|
|
401
|
-
let details = await reef.get(`/sys/user_details?email=${new_reef_user[
|
|
401
|
+
let details = await reef.get(`/sys/user_details?email=${new_reef_user[emailAttrib]}`)
|
|
402
402
|
set_user_info(new_reef_user, details);
|
|
403
403
|
|
|
404
404
|
reef_users = [...reef_users, new_reef_user]
|
|
405
|
-
list?.
|
|
405
|
+
list?.updateObjects(reef_users);
|
|
406
406
|
}
|
|
407
407
|
|
|
408
408
|
|
|
@@ -424,32 +424,32 @@
|
|
|
424
424
|
</script>
|
|
425
425
|
|
|
426
426
|
<Page self={data_item}
|
|
427
|
-
cl="!bg-white dark:!bg-
|
|
428
|
-
|
|
427
|
+
cl="!bg-white dark:!bg-stone-900 w-full h-full flex flex-col overflow-y-auto overflow-x-hidden py-1 px-1 border-0"
|
|
428
|
+
toolbarOperations={page_operations}
|
|
429
429
|
clears_context='props sel'>
|
|
430
430
|
<!--a href="/" class="underline text-sm font-semibold ml-3"> < Back to root</a-->
|
|
431
431
|
|
|
432
432
|
{#if reef_users && reef_users.length > 0}
|
|
433
433
|
<List objects={reef_users}
|
|
434
434
|
title='Members'
|
|
435
|
-
|
|
436
|
-
|
|
435
|
+
toolbarOperations={user_operations}
|
|
436
|
+
contextMenu={user_context_menu}
|
|
437
437
|
key='__hd_internal_item_id'
|
|
438
438
|
bind:this={list}>
|
|
439
|
-
<ListTitle a={
|
|
440
|
-
<ListSummary a={
|
|
439
|
+
<ListTitle a={nameAttrib} onChange={on_name_changed}/>
|
|
440
|
+
<ListSummary a={emailAttrib} readonly/>
|
|
441
441
|
|
|
442
442
|
<ListStaticProperty name="Membership" a="membership_tag"/>
|
|
443
443
|
|
|
444
|
-
<ListComboProperty name='Privileges' a='auth_group'
|
|
444
|
+
<ListComboProperty name='Privileges' a='auth_group' onSelect={on_change_privileges}>
|
|
445
445
|
<ComboItem name='None' key={0} />
|
|
446
446
|
<ComboItem name='Can See' key={1} />
|
|
447
447
|
<ComboItem name='Can Invite' key={3} />
|
|
448
448
|
<ComboItem name='Maintainer' key={7} />
|
|
449
449
|
</ListComboProperty>
|
|
450
450
|
|
|
451
|
-
{#if
|
|
452
|
-
<ListComboProperty name='Files' a='files_group'
|
|
451
|
+
{#if showFiles}
|
|
452
|
+
<ListComboProperty name='Files' a='files_group' onSelect={on_change_files_access}>
|
|
453
453
|
<ComboItem name='None' key={0} />
|
|
454
454
|
<ComboItem name='Read' key={1} />
|
|
455
455
|
<ComboItem name='Write' key={2} />
|
|
@@ -465,28 +465,28 @@
|
|
|
465
465
|
|
|
466
466
|
<Modal bind:open={create_new_user_enabled}
|
|
467
467
|
title='Invite someone'
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
468
|
+
okCaption='Invite'
|
|
469
|
+
onOkCallback={on_new_user_requested}
|
|
470
|
+
onCancelCallback={on_new_user_canceled}
|
|
471
471
|
icon={FaUserPlus}>
|
|
472
472
|
<Input label='Name'
|
|
473
473
|
placeholder=''
|
|
474
474
|
self={new_user}
|
|
475
475
|
a="name"
|
|
476
|
-
|
|
476
|
+
validateCb={is_valid_name}
|
|
477
477
|
bind:this={name_input}/>
|
|
478
478
|
|
|
479
479
|
<Input label='E-mail'
|
|
480
480
|
placeholder=''
|
|
481
481
|
self={new_user}
|
|
482
482
|
a="email"
|
|
483
|
-
|
|
483
|
+
validateCb={is_valid_email_address}
|
|
484
484
|
bind:this={email_input}/>
|
|
485
485
|
|
|
486
486
|
<Checkbox class="mt-2 text-xs font-normal" self={new_user} a="maintainer">
|
|
487
487
|
<div class="flex flex-row items-center">
|
|
488
488
|
<span class="">Maintainer</span>
|
|
489
|
-
<Icon id="b1" size={4} component={FaInfoCircle} class="text-
|
|
489
|
+
<Icon id="b1" size={4} component={FaInfoCircle} class="text-stone-400 ml-5 pt-0 mt-1"/>
|
|
490
490
|
<Popover class="w-64 text-sm font-light " title="Maintainer" triggeredBy="#b1">
|
|
491
491
|
Means that the invited user will be able to add and remove others and manage permissions in this organization.
|
|
492
492
|
</Popover>
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
/** @typedef {typeof __propDef.slots} TenantSlots */
|
|
4
4
|
export default class Tenant extends SvelteComponentTyped<{
|
|
5
5
|
users?: any;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
nameAttrib?: string | undefined;
|
|
7
|
+
emailAttrib?: string | undefined;
|
|
8
|
+
refAttrib?: string | undefined;
|
|
9
|
+
showFiles?: boolean | undefined;
|
|
10
|
+
appGroups?: any;
|
|
11
11
|
}, {
|
|
12
12
|
[evt: string]: CustomEvent<any>;
|
|
13
13
|
}, {}> {
|
|
@@ -19,11 +19,11 @@ import { SvelteComponentTyped } from "svelte";
|
|
|
19
19
|
declare const __propDef: {
|
|
20
20
|
props: {
|
|
21
21
|
users?: any;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
nameAttrib?: string | undefined;
|
|
23
|
+
emailAttrib?: string | undefined;
|
|
24
|
+
refAttrib?: string | undefined;
|
|
25
|
+
showFiles?: boolean | undefined;
|
|
26
|
+
appGroups?: any;
|
|
27
27
|
};
|
|
28
28
|
events: {
|
|
29
29
|
[evt: string]: CustomEvent<any>;
|
package/tile.svelte
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
<script>
|
|
4
|
-
import {data_tick_store,
|
|
4
|
+
import {data_tick_store, contextItemsStore} from './stores.js'
|
|
5
5
|
import { setContext } from 'svelte';
|
|
6
6
|
export let c = ''
|
|
7
7
|
export let cl = 'col-span-1'
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{
|
|
14
14
|
setContext('ctx', context)
|
|
15
15
|
if(self != null)
|
|
16
|
-
|
|
16
|
+
contextItemsStore[context] = self
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
|
|
@@ -36,6 +36,6 @@
|
|
|
36
36
|
</script>
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
<div class=" {cl} bg-
|
|
39
|
+
<div class=" {cl} bg-stone-100 dark:bg-stone-800 shadow rounded-lg p-2 flex flex-col">
|
|
40
40
|
<slot/>
|
|
41
41
|
</div>
|