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} - -