mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-13 01:20:41 +00:00
Update AdminUserList
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
class UserList extends ResourceList {
|
||||
class AdminUserList extends ResourceList {
|
||||
static autoInit() {
|
||||
for (let userListElement of document.querySelectorAll('.user-list:not(.no-autoinit)')) {
|
||||
new UserList(userListElement);
|
||||
for (let adminUserListElement of document.querySelectorAll('.admin-user-list:not(.no-autoinit)')) {
|
||||
new AdminUserList(adminUserListElement);
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,6 +95,7 @@ class UserList extends ResourceList {
|
||||
? 'view' : listActionElement.dataset.listAction;
|
||||
switch (listAction) {
|
||||
case 'delete': {
|
||||
console.log('delete', itemId);
|
||||
Utils.deleteUserRequest(itemId);
|
||||
if (itemId === currentUserId) {window.location.href = '/';}
|
||||
break;
|
@ -13,7 +13,7 @@ class ResourceList {
|
||||
PublicUserList.autoInit();
|
||||
SpaCyNLPPipelineModelList.autoInit();
|
||||
TesseractOCRPipelineModelList.autoInit();
|
||||
UserList.autoInit();
|
||||
AdminUserList.autoInit();
|
||||
}
|
||||
|
||||
static defaultOptions = {
|
||||
@ -24,10 +24,18 @@ class ResourceList {
|
||||
}
|
||||
};
|
||||
|
||||
constructor(listContainerElement, options={}) {
|
||||
if ('items' in options) {throw '"items" is not supported as an option, define it as a getter in the list class';}
|
||||
if ('valueNames' in options) {throw '"valueNames" is not supported as an option, define it as a getter in the list class';}
|
||||
let _options = _.merge({item: this.item, valueNames: this.valueNames}, ResourceList.defaultOptions, options);
|
||||
constructor(listContainerElement, options = {}) {
|
||||
if ('items' in options) {
|
||||
throw '"items" is not supported as an option, define it as a getter in the list class';
|
||||
}
|
||||
if ('valueNames' in options) {
|
||||
throw '"valueNames" is not supported as an option, define it as a getter in the list class';
|
||||
}
|
||||
let _options = Utils.mergeObjectsDeep(
|
||||
{item: this.item, valueNames: this.valueNames},
|
||||
ResourceList.defaultOptions,
|
||||
options
|
||||
);
|
||||
this.listContainerElement = listContainerElement;
|
||||
this.initListContainerElement();
|
||||
this.listjs = new List(listContainerElement, _options);
|
||||
|
@ -12,6 +12,50 @@ class Utils {
|
||||
}
|
||||
}
|
||||
|
||||
static isObject(object) {
|
||||
return object !== null && typeof object === 'object' && !Array.isArray(object);
|
||||
}
|
||||
|
||||
static mergeObjectsDeep(...objects) {
|
||||
let mergedObject = {};
|
||||
if (objects.length === 0) {
|
||||
return mergedObject;
|
||||
}
|
||||
if (objects.length === 1) {
|
||||
if (!Utils.isObject(objects[0])) {
|
||||
throw 'Cannot merge non-object';
|
||||
}
|
||||
return Utils.mergeObjectsDeep(mergedObject, objects[0]);
|
||||
}
|
||||
if (!Utils.isObject(objects[0]) || !Utils.isObject(objects[1])) {
|
||||
throw 'Cannot merge non-object';
|
||||
}
|
||||
for (let key in objects[0]) {
|
||||
if (objects[0].hasOwnProperty(key)) {
|
||||
if (objects[1].hasOwnProperty(key)) {
|
||||
if (Utils.isObject(objects[0][key]) && Utils.isObject(objects[1][key])) {
|
||||
mergedObject[key] = Utils.mergeObjectsDeep(objects[0][key], objects[1][key]);
|
||||
} else {
|
||||
mergedObject[key] = objects[1][key];
|
||||
}
|
||||
} else {
|
||||
mergedObject[key] = objects[0][key];
|
||||
}
|
||||
}
|
||||
}
|
||||
for (let key in objects[1]) {
|
||||
if (objects[1].hasOwnProperty(key)) {
|
||||
if (!objects[0].hasOwnProperty(key)) {
|
||||
mergedObject[key] = objects[1][key];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (objects.length === 2) {
|
||||
return mergedObject;
|
||||
}
|
||||
return Utils.mergeObjectsDeep(mergedObject, ...objects.slice(2));
|
||||
}
|
||||
|
||||
static buildCorpusRequest(userId, corpusId) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let corpus = app.data.users[userId].corpora[corpusId];
|
||||
|
Reference in New Issue
Block a user