From 041c24a837d58ff46362699b54e8088f22ba2daa Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 13 Jan 2021 21:05:03 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=99=8B=E2=80=8D=E2=99=82=EF=B8=8F=20UserD?= =?UTF-8?q?etails=20-=20group=20updating?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref #12 --- src/components/UserDetail.svelte | 48 +++++++++++--------------------- 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/src/components/UserDetail.svelte b/src/components/UserDetail.svelte index 0a07e966..fbe7687b 100644 --- a/src/components/UserDetail.svelte +++ b/src/components/UserDetail.svelte @@ -19,55 +19,52 @@ $: allpermissions = []; $: allgroups = []; $: allgroups_ids = []; + $: usergroups_array_objects = []; $: usergroups_array = []; + let usergroups_array_original = []; user_promise.then((data) => { - console.log(data); data_loaded = true; original_data = Object.assign(original_data, data); editable_userdata = data; - usergroups_array = []; data.groups.forEach((g) => { - usergroups_array.push(g.id); + usergroups_array=usergroups_array.concat([g.id]); }); + usergroups_array_original = usergroups_array; allgroups.forEach((g) => { allgroups_ids.push(g.id); }); }); UserGroupService.userGroupControllerGetAll().then((data) => { - console.log(data); allgroups = data; }); const permissions_promise = PermissionService.permissionControllerGetAll(); permissions_promise.then((data) => { data.forEach((p) => { - allpermissions.push(p.target + ":" + p.action); + allpermissions=allpermissions.concat([p.target + ":" + p.action]) }); - allpermissions=allpermissions; }); $: changes_performed = !lodashIsEqual(original_data, editable_userdata); - function updateGroups() { - usergroups_array.forEach((id) => { - const group = allgroups.find((e) => e.id === id); - editable_userdata.groups.push(group); - }); - editable_userdata.groups = editable_userdata.groups; - } + $: groups_changed = JSON.stringify(usergroups_array)===JSON.stringify(usergroups_array_original); + $: save_enabled = changes_performed||!groups_changed; function submit() { if ( !lodashIsEqual(original_data.permissions, editable_userdata.permissions) ) { // TODO: add+delete permissions } - if (data_loaded === true && changes_performed === true) { - console.log("ok, submitting..."); - console.log(editable_userdata); + if (data_loaded === true && save_enabled) { + let tmp=[]; + usergroups_array.forEach(g => { + const group=allgroups.find(obj=>obj.id===g); + tmp.push(group); + }); + editable_userdata.groups=tmp; Toastify({ text: $_("updating-user"), duration: 2500, }).showToast(); UserService.userControllerPut(original_data.id, editable_userdata) .then((resp) => { - console.log(resp); Object.assign(original_data, editable_userdata); original_data = editable_userdata; Object.assign(original_data, editable_userdata); @@ -79,20 +76,16 @@ }).showToast(); }) .catch((err) => { - console.log(err); }); } else { - console.log("no changes performed"); } } function deleteUser() { UserService.userControllerRemove(original_data.id, true) .then((resp) => { - console.log(resp); location.replace("./"); }) .catch((err) => { - console.log(err); }); } @@ -170,27 +163,19 @@ {/if} {#if !delete_triggered} {/if} - -
{$_('profile-picture')} - @@ -276,7 +261,6 @@ {$_('groups')}