Fixed bug where users where deleted when changing group properties

This commit is contained in:
vladfreeze
2021-12-02 11:29:31 +01:00
committed by Min RK
parent d812d0f11c
commit c7cb4138ee
2 changed files with 11 additions and 25 deletions

View File

@@ -1,18 +1,6 @@
import React, { useState } from "react"; import React, { useState } from "react";
import "./table-select.css"; import "./table-select.css";
function hasDuplicates(array) {
var valuesSoFar = Object.create(null);
for (var i = 0; i < array.length; ++i) {
var value = array[i];
if (value in valuesSoFar) {
return true;
}
valuesSoFar[value] = true;
}
return false;
}
export default class DynamicTable extends React.Component { export default class DynamicTable extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);

View File

@@ -86,7 +86,7 @@ const GroupEdit = (props) => {
setProp={setProp} setProp={setProp}
setPropKeys={setPropKeys} setPropKeys={setPropKeys}
setPropValues={setPropValues} setPropValues={setPropValues}
setChanged={setChanged}
//Add keys //Add keys
/> />
</div> </div>
@@ -102,12 +102,6 @@ const GroupEdit = (props) => {
id="submit" id="submit"
className="btn btn-primary" className="btn btn-primary"
onClick={() => { onClick={() => {
// check for changes
//if (!changed) {
// history.push("/groups");
// return;
//}
let new_users = selected.filter( let new_users = selected.filter(
(e) => !group_data.users.includes(e) (e) => !group_data.users.includes(e)
); );
@@ -115,12 +109,16 @@ const GroupEdit = (props) => {
(e) => !selected.includes(e) (e) => !selected.includes(e)
); );
let promiseQueue = []; let promiseQueue = [];
if (new_users.length > 0) // check for changes
promiseQueue.push(addToGroup(new_users, group_data.name)); if (changed) {
if (removed_users.length > 0) if (new_users.length > 0)
promiseQueue.push( promiseQueue.push(addToGroup(new_users, group_data.name));
removeFromGroup(removed_users, group_data.name) if (removed_users.length > 0)
); promiseQueue.push(
removeFromGroup(removed_users, group_data.name)
);
}
if (hasDuplicates(propkeys) == true) { if (hasDuplicates(propkeys) == true) {
error.textContent = "Duplicate key found!"; error.textContent = "Duplicate key found!";
error.style.color = "red"; error.style.color = "red";