diff --git a/src/common/api-browser.js b/src/common/api-browser.js
index 08e7e57..6044a9b 100644
--- a/src/common/api-browser.js
+++ b/src/common/api-browser.js
@@ -21,7 +21,6 @@ import SwaggerUI from 'swagger-ui-react'
import 'swagger-ui-react/swagger-ui.css'
import '../styles/swagger-ui.css';
import RestAPI from './api/rest-api';
-import RestDataManager from './data-managers/rest-data-manager';
class APIBrowser extends React.Component {
diff --git a/src/common/app-dispatcher.js b/src/common/app-dispatcher.js
deleted file mode 100644
index 76866ed..0000000
--- a/src/common/app-dispatcher.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * This file is part of VILLASweb.
- *
- * VILLASweb is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * VILLASweb is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with VILLASweb. If not, see .
- ******************************************************************************/
-
-import { Dispatcher } from 'flux';
-
-class AppDispatcher extends Dispatcher {
- dispatch(payload) {
- if (this.isDispatching()) {
- // try again later
- var self = this;
-
- setTimeout(function() {
- self.dispatch(payload);
- }, 1);
- } else {
- // do actual dispatch
- super.dispatch(payload);
- }
- }
-}
-
-export default new AppDispatcher();
diff --git a/src/common/array-store.js b/src/common/array-store.js
deleted file mode 100644
index ff9238c..0000000
--- a/src/common/array-store.js
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * This file is part of VILLASweb.
- *
- * VILLASweb is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * VILLASweb is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with VILLASweb. If not, see .
- ******************************************************************************/
-
-import { ReduceStore } from 'flux/utils';
-
-import AppDispatcher from './app-dispatcher';
-import NotificationsDataManager from '../common/data-managers/notifications-data-manager';
-import NotificationsFactory from "./data-managers/notifications-factory";
-
-class ArrayStore extends ReduceStore {
- constructor(type, dataManager) {
- super(AppDispatcher);
-
- this.type = type;
- this.dataManager = dataManager;
- }
-
- getInitialState() {
- return [];
- }
-
- updateElements(state, newElements) {
- // search for existing element to update
- state.forEach((element, index, array) => {
- newElements = newElements.filter((updateElement, newIndex) => {
- if (element.id === updateElement.id) {
- // update each property
- for (var key in updateElement) {
- if (updateElement.hasOwnProperty(key)) {
- array[index][key] = updateElement[key];
- }
- }
-
- // remove updated element from update list
- return false;
- }
-
- return true;
- });
- });
-
- // all elements still in the list will just be added
- state = state.concat(newElements);
-
- // announce change to listeners
- this.__emitChange();
-
- return state;
- }
-
- reduce(state, action) {
- switch (action.type) {
- case this.type + '/start-load':
- if (Array.isArray(action.data)) {
- action.data.forEach((id) => {
- this.dataManager.load(id, action.token,action.param);
- });
- } else {
- this.dataManager.load(action.data, action.token,action.param);
- }
- return state;
-
- case this.type + '/loaded':
- if (Array.isArray(action.data)) {
- return this.updateElements(state, action.data);
- } else {
- return this.updateElements(state, [action.data]);
- }
-
- case this.type + '/load-error':
- if (action.error && !action.error.handled && action.error.response) {
-
- NotificationsDataManager.addNotification(NotificationsFactory.LOAD_ERROR(action.error.response.body.message));
- }
- return super.reduce(state, action);
-
- case this.type + '/start-add':
- this.dataManager.add(action.data, action.token,action.param);
- return state;
-
- case this.type + '/added':
- if(typeof action.data.managedexternally !== "undefined" && action.data.managedexternally === true ) return state;
- return this.updateElements(state, [action.data]);
-
- case this.type + '/add-error':
-
- return state;
-
-
- case this.type + '/start-remove':
- this.dataManager.remove(action.data, action.token,action.param);
- return state;
-
- case this.type + '/removed':
- if (action.original) {
- return state.filter((item) => {
- return (item !== action.original);
- });
- } else {
- return state.filter((item) => {
- return (item.id !== action.data);
- });
- }
-
- case this.type + '/remove-error':
- if (action.error && !action.error.handled && action.error.response) {
- NotificationsDataManager.addNotification(NotificationsFactory.DELETE_ERROR(action.error.response.body.message));
- }
- return super.reduce(state, action);
-
- case this.type + '/start-edit':
- if(action.id){
- this.dataManager.update(action.data, action.token,action.param,action.id);
- }
- else{
- this.dataManager.update(action.data, action.token,action.param);
- }
- return state;
-
- case this.type + '/edited':
- return this.updateElements(state, [action.data]);
-
- case this.type + '/edit-error':
- return state;
-
- default:
- return state;
- }
- }
-}
-
-export default ArrayStore;
diff --git a/src/common/data-managers/rest-data-manager.js b/src/common/data-managers/rest-data-manager.js
deleted file mode 100644
index 7727a4e..0000000
--- a/src/common/data-managers/rest-data-manager.js
+++ /dev/null
@@ -1,229 +0,0 @@
-/**
- * This file is part of VILLASweb.
- *
- * VILLASweb is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * VILLASweb is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with VILLASweb. If not, see .
- ******************************************************************************/
-
-import RestAPI from '../api/rest-api';
-import AppDispatcher from '../app-dispatcher';
-
-const API_URL = '/api/v2';
-
-class RestDataManager {
- constructor(type, url, keyFilter) {
- this.url = url;
- this.type = type;
- this.keyFilter = keyFilter;
- this.onLoad = null;
- }
-
- makeURL(part) {
- return API_URL + part;
- }
-
- filterKeys(object) {
- // don't change anything if no filter is set
- if (this.keyFilter == null || Array.isArray(this.keyFilter) === false) {
- return object;
- }
-
- // remove all keys not in the filter
- Object.keys(object).filter(key => {
- return this.keyFilter.indexOf(key) === -1;
- }).forEach(key => {
- delete object[key];
- });
-
- return object;
- }
-
- requestURL(form, id, param, object = null){
- switch(form){
- case 'load/add':
- if (param === null){
- if(id != null){
- return this.makeURL(this.url + '/' + id);
- }
- else {
- return this.makeURL(this.url);
- }
- }
- else{
- if(id != null){
- return this.makeURL(this.url + '/' + id + param);
- }
- else {
- return this.makeURL(this.url + param)
- }
- }
- case 'remove/update':
- if(id !== null){
- return this.makeURL(this.url + '/' + id);
-
- }
- else if(param === null){
- return this.makeURL(this.url + '/' + object.id);
- }
- else{
- return this.makeURL(this.url + '/' + object.id + param);
- }
- default:
- console.log("something went wrong");
- break;
- }
- }
-
- load(id, token = null,param = null) {
- if (id != null) {
- // load single object
- RestAPI.get(this.requestURL('load/add',id,param), token).then(response => {
- let data;
- if (response.hasOwnProperty(this.type)) {
- data = this.filterKeys(response[this.type]);
- }else{
- // loaded file
- data = response;
- }
-
- AppDispatcher.dispatch({
- type: this.type + 's/loaded',
- data: data,
- token: token
- });
-
- if (this.onLoad != null) {
- this.onLoad(data, token);
- }
- }).catch(error => {
- AppDispatcher.dispatch({
- type: this.type + 's/load-error',
- error: error
- });
- });
- } else {
- // load all objects
- RestAPI.get(this.requestURL('load/add',id,param), token).then(response => {
- const data = response[this.type + 's'].map(element => {
- return this.filterKeys(element);
- });
-
- AppDispatcher.dispatch({
- type: this.type + 's/loaded',
- data: data,
- token: token,
- });
-
- if (this.onLoad != null) {
- this.onLoad(data, token);
- }
- }).catch(error => {
- AppDispatcher.dispatch({
- type: this.type + 's/load-error',
- error: error
- });
- });
- }
- }
-
-
- add(object, token = null, param = null, subObjects = null) {
- var obj = {};
- obj[this.type] = this.filterKeys(object);
- RestAPI.post(this.requestURL('load/add',null,param), obj, token).then(response => {
- AppDispatcher.dispatch({
- type: this.type + 's/added',
- data: response[this.type],
- token: token
- });
-
- // check if POST is done for import of object and issue dispatches of sub-objects
- if (subObjects !== null){
- // there are sub-objects to be added for an import
- for (let objectType of subObjects){
- let type = Object.keys(objectType) // type can be dashboards, configs, widgets, ...
- type = type[0];
- for (let newObj of objectType[type]){
-
- // set the ID of the object that the sub-object shall be associated with
- if(type === "configs" || type === "dashboards"){
- // the main object is a scenario
- newObj.scenarioID = response[this.type].id
- } else if (type === "widgets") {
- // the main object is a dashboard
- newObj.dashboardID = response[this.type].id
- } else if (type === "signals") {
- // the main object is a component configuration
- newObj.configID = response[this.type].id
- }
-
- // iterate over all objects of type 'type' add issue add dispatch
- AppDispatcher.dispatch({
- type: type + '/start-add',
- data: newObj,
- token: token
- })
-
- }
- }
-
-
- }
-
-
- }).catch(error => {
- AppDispatcher.dispatch({
- type: this.type + 's/add-error',
- error: error
- });
- });
- }
-
- remove(object, token = null, param = null) {
- RestAPI.delete(this.requestURL('remove/update',null,param,object), token).then(response => {
- AppDispatcher.dispatch({
- type: this.type + 's/removed',
- data: response[this.type],
- original: object,
- token: token
- });
- }).catch(error => {
- AppDispatcher.dispatch({
- type: this.type + 's/remove-error',
- error: error
- });
- });
- }
-
- update(object, token = null, param = null, id = null) {
- var obj = {};
- obj[this.type] = this.filterKeys(object);
-
- RestAPI.put(this.requestURL('remove/update',id,param,object), obj, token).then(response => {
- AppDispatcher.dispatch({
- type: this.type + 's/edited',
- data: response[this.type]
- });
- }).catch(error => {
- AppDispatcher.dispatch({
- type: this.type + 's/edit-error',
- error: error
- });
- });
- }
-
-
-
-};
-
-export default RestDataManager;