Removed 8 additional files
This commit is contained in:
@@ -1,50 +0,0 @@
|
|||||||
import Observable from '@deprecated/CollectionsV1/observable.js';
|
|
||||||
|
|
||||||
import Globals from '@features/global/services/globals-tdrive-app-service';
|
|
||||||
|
|
||||||
class ConfiguratorsManager extends Observable {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
this.setObservableName('configurators_manager');
|
|
||||||
Globals.window.configuratorsManager = this;
|
|
||||||
|
|
||||||
this.currentConfigurators = {};
|
|
||||||
this.configurator_order = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
openConfigurator(app, form, hidden_data, id) {
|
|
||||||
this.currentConfigurators[app.id] = {
|
|
||||||
app: app,
|
|
||||||
form: form,
|
|
||||||
hidden_data: hidden_data,
|
|
||||||
id: id,
|
|
||||||
};
|
|
||||||
|
|
||||||
var _new_order = [];
|
|
||||||
this.configurator_order.forEach(id => {
|
|
||||||
if (app.id !== id) {
|
|
||||||
_new_order.push(id);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
_new_order.push(app.id);
|
|
||||||
this.configurator_order = _new_order;
|
|
||||||
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
closeConfigurator(app) {
|
|
||||||
delete this.currentConfigurators[app.id];
|
|
||||||
|
|
||||||
var _new_order = [];
|
|
||||||
this.configurator_order.forEach(id => {
|
|
||||||
if (app.id !== id) {
|
|
||||||
_new_order.push(id);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.configurator_order = _new_order;
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const conf_serv = new ConfiguratorsManager();
|
|
||||||
export default conf_serv;
|
|
||||||
@@ -1,226 +0,0 @@
|
|||||||
import Api from '@features/global/framework/api-service';
|
|
||||||
import Languages from '@features/global/services/languages-service';
|
|
||||||
import DepreciatedCollections from '@deprecated/CollectionsV1/Collections/Collections.js';
|
|
||||||
import Login from '../../features/auth/login-service';
|
|
||||||
import { getUser } from '../../features/users/hooks/use-user-list';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This service is depreciated as Tdrive will exclusively use Console in the future
|
|
||||||
*/
|
|
||||||
class Account {
|
|
||||||
notify() {
|
|
||||||
Login.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Recover password
|
|
||||||
*/
|
|
||||||
|
|
||||||
recover(mail, funct, th) {
|
|
||||||
var data = {
|
|
||||||
email: mail,
|
|
||||||
};
|
|
||||||
var that = this;
|
|
||||||
this.login_loading = true;
|
|
||||||
that.error_recover_nosuchmail = false;
|
|
||||||
this.notify();
|
|
||||||
Api.post('/ajax/users/recover/mail', data, function (res) {
|
|
||||||
if (res.data.token) {
|
|
||||||
that.recover_token = res.data.token;
|
|
||||||
|
|
||||||
that.login_loading = false;
|
|
||||||
that.notify();
|
|
||||||
funct(th);
|
|
||||||
} else {
|
|
||||||
that.error_recover_nosuchmail = true;
|
|
||||||
that.login_loading = false;
|
|
||||||
|
|
||||||
that.notify();
|
|
||||||
//appel de funtion error
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
recoverCode(code, funct, th) {
|
|
||||||
var data = {
|
|
||||||
code: code,
|
|
||||||
token: this.recover_token,
|
|
||||||
};
|
|
||||||
var that = this;
|
|
||||||
that.error_recover_badcode = false;
|
|
||||||
this.login_loading = true;
|
|
||||||
this.notify();
|
|
||||||
Api.post('/ajax/users/recover/verify', data, function (res) {
|
|
||||||
if (res.data.status === 'success') {
|
|
||||||
that.recover_code = code;
|
|
||||||
|
|
||||||
that.login_loading = false;
|
|
||||||
that.notify();
|
|
||||||
funct(th);
|
|
||||||
} else {
|
|
||||||
that.error_recover_badcode = true;
|
|
||||||
that.login_loading = false;
|
|
||||||
|
|
||||||
that.notify();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
recoverNewPassword(password, password2, funct, th) {
|
|
||||||
this.login_loading = true;
|
|
||||||
this.notify();
|
|
||||||
|
|
||||||
if (password !== password2 || password.length < 8) {
|
|
||||||
this.error_recover_badpasswords = true;
|
|
||||||
this.login_loading = false;
|
|
||||||
this.notify();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var data = {
|
|
||||||
code: this.recover_code,
|
|
||||||
token: this.recover_token,
|
|
||||||
password: password,
|
|
||||||
};
|
|
||||||
var that = this;
|
|
||||||
that.error_recover_badpasswords = false;
|
|
||||||
that.error_recover_unknown = false;
|
|
||||||
this.notify();
|
|
||||||
Api.post('/ajax/users/recover/password', data, function (res) {
|
|
||||||
if (res.data.status === 'success') {
|
|
||||||
funct(th);
|
|
||||||
|
|
||||||
that.login_loading = false;
|
|
||||||
that.notify();
|
|
||||||
} else {
|
|
||||||
that.error_recover_unknown = true;
|
|
||||||
that.login_loading = false;
|
|
||||||
|
|
||||||
that.notify();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
subscribeMail(username, password, name, first_name, phone, mail, newsletter, cb, th) {
|
|
||||||
if (this.doing_subscribe) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var data = {
|
|
||||||
email: mail,
|
|
||||||
username: username,
|
|
||||||
password: password,
|
|
||||||
name: name,
|
|
||||||
first_name: first_name,
|
|
||||||
phone: phone,
|
|
||||||
language: Languages.language,
|
|
||||||
newsletter: newsletter,
|
|
||||||
};
|
|
||||||
var that = this;
|
|
||||||
that.error_subscribe_mailalreadyused = false;
|
|
||||||
that.login_loading = true;
|
|
||||||
that.doing_subscribe = true;
|
|
||||||
this.notify();
|
|
||||||
Api.post('/ajax/users/subscribe/mail', data, function (res) {
|
|
||||||
that.login_loading = false;
|
|
||||||
that.doing_subscribe = false;
|
|
||||||
that.notify();
|
|
||||||
if (res.data.token) {
|
|
||||||
that.subscribe_token = res.data.token;
|
|
||||||
cb(th, 0);
|
|
||||||
|
|
||||||
that.waitForVerification(username, password, th);
|
|
||||||
} else {
|
|
||||||
cb(th, 1);
|
|
||||||
that.error_subscribe_mailalreadyused = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
waitForVerification(username, password, th) {
|
|
||||||
if (this.waitForVerificationTimeout) {
|
|
||||||
clearTimeout(this.waitForVerificationTimeout);
|
|
||||||
}
|
|
||||||
this.waitForVerificationTimeout = setTimeout(() => {
|
|
||||||
this.waitForVerification(username, password, th);
|
|
||||||
Login.login({ username, password }, true);
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
|
|
||||||
doVerifyMail(mail, code, token, success, fail) {
|
|
||||||
Api.post(
|
|
||||||
'/ajax/users/subscribe/doverifymail',
|
|
||||||
{
|
|
||||||
code: code,
|
|
||||||
token: token,
|
|
||||||
mail: mail,
|
|
||||||
device: {},
|
|
||||||
},
|
|
||||||
function (res) {
|
|
||||||
if (res.data.status === 'success') {
|
|
||||||
success();
|
|
||||||
} else {
|
|
||||||
fail();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
checkMailandUsername(mail, username, callback, th) {
|
|
||||||
var that = this;
|
|
||||||
|
|
||||||
that.error_subscribe_username = false;
|
|
||||||
that.error_subscribe_mailalreadyused = false;
|
|
||||||
var data = {
|
|
||||||
mail: mail,
|
|
||||||
username: username,
|
|
||||||
};
|
|
||||||
that.login_loading = true;
|
|
||||||
that.notify();
|
|
||||||
Api.post('/ajax/users/subscribe/availability', data, function (res) {
|
|
||||||
that.login_loading = false;
|
|
||||||
if (res.data.status === 'success') {
|
|
||||||
callback(th, 0);
|
|
||||||
} else {
|
|
||||||
if (res.errors.length === 1 && res.errors[0] === 'mailalreadytaken') {
|
|
||||||
callback(th, 1);
|
|
||||||
that.error_subscribe_mailalreadyused = true;
|
|
||||||
} else if (res.errors.length === 1 && res.errors[0] === 'usernamealreadytaken') {
|
|
||||||
callback(th, 2);
|
|
||||||
that.error_subscribe_username = true;
|
|
||||||
} else {
|
|
||||||
callback(th, 3);
|
|
||||||
that.error_subscribe_mailalreadyused = true;
|
|
||||||
that.error_subscribe_username = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
that.notify();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
addNewMail(mail, cb, thot) {
|
|
||||||
var that = this;
|
|
||||||
that.loading = true;
|
|
||||||
that.error_secondary_mail_already = false;
|
|
||||||
that.error_code = false;
|
|
||||||
that.notify();
|
|
||||||
Api.post('/ajax/users/account/addmail', { mail: mail }, function (res) {
|
|
||||||
that.loading = false;
|
|
||||||
|
|
||||||
if (res.errors.indexOf('badmail') > -1) {
|
|
||||||
that.error_secondary_mail_already = true;
|
|
||||||
that.notify();
|
|
||||||
} else {
|
|
||||||
that.addmail_token = res.data.token;
|
|
||||||
that.notify();
|
|
||||||
cb(thot);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
verifySecondMail(mail, code, cb, thot) {
|
|
||||||
//unimplemented
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const æccount = new Account();
|
|
||||||
export default æccount;
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
import Observable from '@deprecated/CollectionsV1/observable.js';
|
|
||||||
import Api from '@features/global/framework/api-service';
|
|
||||||
import ws from '@deprecated/websocket/websocket.js';
|
|
||||||
import Collections from '@deprecated/CollectionsV1/Collections/Collections.js';
|
|
||||||
import Workspaces from '@deprecated/workspaces/workspaces.jsx';
|
|
||||||
import ListenGroups from './listen_groups.js';
|
|
||||||
|
|
||||||
import $ from 'jquery';
|
|
||||||
import JWTStorage from '@features/auth/jwt-storage-service';
|
|
||||||
import CompanyAPIClient from '../../features/companies/api/company-api-client';
|
|
||||||
import UserService from '@features/users/services/current-user-service';
|
|
||||||
import Globals from '@features/global/services/globals-tdrive-app-service';
|
|
||||||
|
|
||||||
class Groups extends Observable {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
this.setObservableName('groups');
|
|
||||||
this.currentGroupId = null;
|
|
||||||
|
|
||||||
this.user_groups = {};
|
|
||||||
Globals.window.gs = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
select(group) {
|
|
||||||
if (this.currentGroupId === group.id) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!group.id) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.currentGroupId) {
|
|
||||||
ListenGroups.cancelListenGroup(this.currentGroupId);
|
|
||||||
}
|
|
||||||
ListenGroups.listenGroup(group.id);
|
|
||||||
|
|
||||||
this.currentGroupId = group.id;
|
|
||||||
Workspaces.changeGroup(group);
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
addToUser(group) {
|
|
||||||
var current_group = Collections.get('groups').find(group.id);
|
|
||||||
if (current_group && current_group._user_hasnotifications) {
|
|
||||||
group._user_hasnotifications =
|
|
||||||
group._user_hasnotifications || current_group._user_hasnotifications;
|
|
||||||
}
|
|
||||||
|
|
||||||
var id = group.id;
|
|
||||||
Collections.get('groups').updateObject(group);
|
|
||||||
this.user_groups[id] = Collections.get('groups').known_objects_by_id[id];
|
|
||||||
}
|
|
||||||
|
|
||||||
async getOrderedGroups() {
|
|
||||||
const userCompanies = await CompanyAPIClient.listCompanies(UserService.getCurrentUserId());
|
|
||||||
|
|
||||||
return userCompanies;
|
|
||||||
//.sort((a, b) => String(a.name).localeCompare(String(b.name)));
|
|
||||||
}
|
|
||||||
|
|
||||||
updateName(name) {
|
|
||||||
var that = this;
|
|
||||||
this.loading = true;
|
|
||||||
this.notify();
|
|
||||||
Api.post('/ajax/workspace/group/data/name', { groupId: this.currentGroupId, name }, res => {
|
|
||||||
if (res.errors.length === 0) {
|
|
||||||
var group = { id: that.currentGroupId, name: name };
|
|
||||||
Collections.get('groups').updateObject(group);
|
|
||||||
ws.publish('group/' + group.id, { data: { group: group } });
|
|
||||||
}
|
|
||||||
that.loading = false;
|
|
||||||
that.notify();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
updateLogo(logo) {
|
|
||||||
this.loading = true;
|
|
||||||
this.notify();
|
|
||||||
var route = `${Globals.api_root_url}/ajax/workspace/group/data/logo`;
|
|
||||||
|
|
||||||
var data = new FormData();
|
|
||||||
if (logo !== false) {
|
|
||||||
data.append('logo', logo);
|
|
||||||
}
|
|
||||||
data.append('groupId', this.currentGroupId);
|
|
||||||
var that = this;
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url: route,
|
|
||||||
type: 'POST',
|
|
||||||
data: data,
|
|
||||||
cache: false,
|
|
||||||
contentType: false,
|
|
||||||
processData: false,
|
|
||||||
|
|
||||||
headers: {
|
|
||||||
Authorization: JWTStorage.getAutorizationHeader(),
|
|
||||||
},
|
|
||||||
xhrFields: {
|
|
||||||
withCredentials: true,
|
|
||||||
},
|
|
||||||
xhr: function () {
|
|
||||||
var myXhr = $.ajaxSettings.xhr();
|
|
||||||
myXhr.onreadystatechange = function () {
|
|
||||||
if (myXhr.readyState === XMLHttpRequest.DONE) {
|
|
||||||
that.loading = false;
|
|
||||||
var resp = JSON.parse(myXhr.responseText);
|
|
||||||
if (resp.errors.indexOf('badimage') > -1) {
|
|
||||||
that.error_identity_badimage = true;
|
|
||||||
} else {
|
|
||||||
var group = resp.data;
|
|
||||||
Collections.get('groups').updateObject(group);
|
|
||||||
ws.publish('group/' + group.id, { data: { group: group } });
|
|
||||||
}
|
|
||||||
that.notify();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return myXhr;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const service = new Groups();
|
|
||||||
export default service;
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
export const Groups: { currentGroupId: null | string } = {
|
||||||
|
currentGroupId: null,
|
||||||
|
};
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
import ws from '@deprecated/websocket/websocket.js';
|
|
||||||
import Collections from '@deprecated/CollectionsV1/Collections/Collections.js';
|
|
||||||
|
|
||||||
class ListenGroups {
|
|
||||||
constructor() {
|
|
||||||
this.groups_repository = Collections.get('groups');
|
|
||||||
this.listenerCount = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
listenGroup(idGroup) {
|
|
||||||
if (!idGroup) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.listenerCount[idGroup]) {
|
|
||||||
this.listenerCount[idGroup] = 0;
|
|
||||||
}
|
|
||||||
this.listenerCount[idGroup] += 1;
|
|
||||||
|
|
||||||
var that = this;
|
|
||||||
if (this.listenerCount[idGroup] === 1) {
|
|
||||||
ws.subscribe('group/' + idGroup, function (uri, data) {
|
|
||||||
data = data.data;
|
|
||||||
if (data.group) {
|
|
||||||
data.group.id = idGroup;
|
|
||||||
that.groups_repository.updateObject(data.group);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cancelListenGroup(idGroup) {
|
|
||||||
if (!idGroup) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.listenerCount[idGroup]) {
|
|
||||||
this.listenerCount[idGroup] += -1;
|
|
||||||
}
|
|
||||||
if (!this.listenerCount[idGroup] || this.listenerCount[idGroup] === 0) {
|
|
||||||
ws.unsubscribe('group/' + idGroup);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const service = new ListenGroups();
|
|
||||||
export default service;
|
|
||||||
@@ -2,8 +2,6 @@ import DepreciatedCollections from '@deprecated/CollectionsV1/Collections/Collec
|
|||||||
import Observable from '@deprecated/CollectionsV1/observable.js';
|
import Observable from '@deprecated/CollectionsV1/observable.js';
|
||||||
import { default as popupManager, default as PopupManager } from '@deprecated/popupManager/popupManager.js';
|
import { default as popupManager, default as PopupManager } from '@deprecated/popupManager/popupManager.js';
|
||||||
import ws from '@deprecated/websocket/websocket.js';
|
import ws from '@deprecated/websocket/websocket.js';
|
||||||
import Groups from '@deprecated/workspaces/groups.js';
|
|
||||||
import workspacesApps from '@deprecated/workspaces/workspaces_apps.jsx';
|
|
||||||
import JWTStorage from '@features/auth/jwt-storage-service';
|
import JWTStorage from '@features/auth/jwt-storage-service';
|
||||||
import loginService from '@features/auth/login-service';
|
import loginService from '@features/auth/login-service';
|
||||||
import ConsoleService from '@features/console/services/console-service';
|
import ConsoleService from '@features/console/services/console-service';
|
||||||
@@ -53,7 +51,6 @@ class Workspaces extends Observable {
|
|||||||
if (!this.getting_details[workspaceId]) {
|
if (!this.getting_details[workspaceId]) {
|
||||||
this.getting_details[workspaceId] = true;
|
this.getting_details[workspaceId] = true;
|
||||||
|
|
||||||
workspacesApps.unload(this.currentWorkspaceId);
|
|
||||||
WorkspaceAPIClient.get(workspace.company_id, workspaceId)
|
WorkspaceAPIClient.get(workspace.company_id, workspaceId)
|
||||||
.then(workspace => {
|
.then(workspace => {
|
||||||
if (!workspace) {
|
if (!workspace) {
|
||||||
@@ -76,7 +73,6 @@ class Workspaces extends Observable {
|
|||||||
|
|
||||||
updateCurrentCompanyId(companyId, notify = false) {
|
updateCurrentCompanyId(companyId, notify = false) {
|
||||||
if (this.currentGroupId !== companyId && companyId) {
|
if (this.currentGroupId !== companyId && companyId) {
|
||||||
Groups.currentGroupId = companyId;
|
|
||||||
this.currentGroupId = companyId;
|
this.currentGroupId = companyId;
|
||||||
notify && this.notify();
|
notify && this.notify();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,262 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import Observable from '@deprecated/CollectionsV1/observable.js';
|
|
||||||
import CurrentUser from '@deprecated/user/CurrentUser';
|
|
||||||
import Api from '@features/global/framework/api-service';
|
|
||||||
import ws from '@deprecated/websocket/websocket.js';
|
|
||||||
import Collections from '@deprecated/CollectionsV1/Collections/Collections.js';
|
|
||||||
import Groups from './groups.js';
|
|
||||||
import Workspaces from './workspaces.jsx';
|
|
||||||
import Globals from '@features/global/services/globals-tdrive-app-service';
|
|
||||||
import Icon from '@components/icon/icon';
|
|
||||||
import { getUser } from '@features/users/hooks/use-user-list';
|
|
||||||
import Login from '@features/auth/login-service';
|
|
||||||
import { Folder, Calendar, CheckSquare, Hexagon } from 'react-feather';
|
|
||||||
import { getCompanyApplication as getApplication } from '@features/applications/state/company-applications';
|
|
||||||
|
|
||||||
class WorkspacesApps extends Observable {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
this.setObservableName('workspaces_apps');
|
|
||||||
|
|
||||||
Collections.get('applications');
|
|
||||||
var options = {
|
|
||||||
base_url: 'applications',
|
|
||||||
use_cache: true,
|
|
||||||
};
|
|
||||||
Collections.updateOptions('applications', options);
|
|
||||||
|
|
||||||
this.apps_by_workspace = {};
|
|
||||||
this.apps_by_group = {};
|
|
||||||
this.findingApp = {};
|
|
||||||
this.did_first_load = {};
|
|
||||||
|
|
||||||
Globals.window.workspacesApps = this;
|
|
||||||
|
|
||||||
this.loading_by_workspace = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
notifyApp(app_id, type, event, data, workspace_id = undefined, group_id = undefined) {
|
|
||||||
workspace_id = workspace_id || Workspaces.currentWorkspaceId;
|
|
||||||
group_id = group_id || Workspaces.currentGroupId;
|
|
||||||
|
|
||||||
const connection_id = CurrentUser.unique_connection_id;
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-redeclare
|
|
||||||
data = {
|
|
||||||
workspace_id: workspace_id,
|
|
||||||
company_id: group_id,
|
|
||||||
app_id: app_id,
|
|
||||||
type: type,
|
|
||||||
name: event,
|
|
||||||
data: { user: Collections.get('users').find(Login.currentUserId), ...data },
|
|
||||||
content: {},
|
|
||||||
connection_id: connection_id,
|
|
||||||
};
|
|
||||||
|
|
||||||
Api.post(
|
|
||||||
`/internal/services/applications/v1/applications/${app_id}/event`,
|
|
||||||
data,
|
|
||||||
res => {},
|
|
||||||
).then();
|
|
||||||
}
|
|
||||||
|
|
||||||
unload(workspace_id) {
|
|
||||||
ws.unsubscribe('workspace_apps/' + workspace_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
load(workspace_id, reset_offset, options) {
|
|
||||||
if (!workspace_id) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!options) {
|
|
||||||
options = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.loading_by_workspace[workspace_id]) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.loading_by_workspace[workspace_id] = true;
|
|
||||||
this.notify();
|
|
||||||
|
|
||||||
var data = {
|
|
||||||
workspace_id: workspace_id,
|
|
||||||
};
|
|
||||||
|
|
||||||
var loadApps = data => {
|
|
||||||
if (data.length > 0) {
|
|
||||||
this.apps_by_workspace[data[0].workspace_id] = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
data.forEach(item => {
|
|
||||||
this.apps_by_workspace[item.workspace_id][item.app.id] = item.app;
|
|
||||||
Collections.get('applications').updateObject(item.app);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.did_first_load[workspace_id] = true;
|
|
||||||
|
|
||||||
this.notify();
|
|
||||||
};
|
|
||||||
|
|
||||||
if (options.apps) {
|
|
||||||
this.loading_by_workspace[workspace_id] = false;
|
|
||||||
loadApps(options.apps);
|
|
||||||
} else {
|
|
||||||
Api.post('/ajax/workspace/apps/get', data, res => {
|
|
||||||
if (res.data) {
|
|
||||||
loadApps(res.data);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.loading_by_workspace[workspace_id] = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
loadGroupApps() {
|
|
||||||
Api.post('/ajax/workspace/group/apps/get', { group_id: Groups.currentGroupId }, res => {
|
|
||||||
if (res.data) {
|
|
||||||
res.data.forEach(item => {
|
|
||||||
var app_link = {
|
|
||||||
workspace_count: item.workspace_count,
|
|
||||||
workspace_default: item.workspace_default,
|
|
||||||
app: item.app,
|
|
||||||
};
|
|
||||||
if (!this.apps_by_group) this.apps_by_group = {};
|
|
||||||
if (!this.apps_by_group[item.group_id]) this.apps_by_group[item.group_id] = {};
|
|
||||||
this.apps_by_group[item.group_id][item.app.id] = app_link;
|
|
||||||
});
|
|
||||||
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
recieveWS(res) {
|
|
||||||
if (res.type === 'add') {
|
|
||||||
var app_link = {
|
|
||||||
workspace_count: res.workspace_app.workspace_count,
|
|
||||||
workspace_default: res.workspace_app.workspace_default,
|
|
||||||
app: res.workspace_app.app,
|
|
||||||
};
|
|
||||||
this.apps_by_workspace[res.workspace_app.workspace_id][res.workspace_app.app.id] =
|
|
||||||
res.workspace_app.app;
|
|
||||||
this.apps_by_group[res.workspace_app.group_id][res.workspace_app.app.id] = app_link;
|
|
||||||
Collections.get('applications').completeObject(
|
|
||||||
res.workspace_app.app,
|
|
||||||
res.workspace_app.app.front_id,
|
|
||||||
);
|
|
||||||
} else if (res.type === 'remove') {
|
|
||||||
delete this.apps_by_workspace[res.workspace_app.workspace_id][res.workspace_app.app.id];
|
|
||||||
}
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
forceInEntreprise(id) {
|
|
||||||
var data = {
|
|
||||||
group_id: Groups.currentGroupId,
|
|
||||||
app_id: id,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (
|
|
||||||
this.apps_by_group[Groups.currentGroupId] &&
|
|
||||||
this.apps_by_group[Groups.currentGroupId][id]
|
|
||||||
) {
|
|
||||||
this.apps_by_workspace[Workspaces.currentWorkspaceId][id] =
|
|
||||||
this.apps_by_group[Groups.currentGroupId][id].app;
|
|
||||||
}
|
|
||||||
|
|
||||||
Api.post('/ajax/workspace/group/application/force', data, function (res) {});
|
|
||||||
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
forceRemoveFromEntreprise(id) {
|
|
||||||
var data = {
|
|
||||||
group_id: Groups.currentGroupId,
|
|
||||||
app_id: id,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (
|
|
||||||
this.apps_by_group[Groups.currentGroupId] &&
|
|
||||||
this.apps_by_group[Groups.currentGroupId][id]
|
|
||||||
) {
|
|
||||||
delete this.apps_by_group[Groups.currentGroupId][id];
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
this.apps_by_workspace[Workspaces.currentWorkspaceId] &&
|
|
||||||
this.apps_by_workspace[Workspaces.currentWorkspaceId][id]
|
|
||||||
) {
|
|
||||||
delete this.apps_by_workspace[Workspaces.currentWorkspaceId][id];
|
|
||||||
}
|
|
||||||
|
|
||||||
Api.post('/ajax/workspace/group/application/remove', data, function (res) {});
|
|
||||||
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultForWorkspacesInEntreprise(id, state) {
|
|
||||||
var data = {
|
|
||||||
group_id: Groups.currentGroupId,
|
|
||||||
app_id: id,
|
|
||||||
state: state,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (
|
|
||||||
this.apps_by_group[Groups.currentGroupId] &&
|
|
||||||
this.apps_by_group[Groups.currentGroupId][id]
|
|
||||||
) {
|
|
||||||
this.apps_by_group[Groups.currentGroupId][id].workspace_default = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
Api.post('/ajax/workspace/group/workspacedefault/set', data, function (res) {});
|
|
||||||
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
openAppPopup(app_id) {}
|
|
||||||
|
|
||||||
getAppIcon(app, feather = false) {
|
|
||||||
if (app && app?.identity?.code) {
|
|
||||||
switch (app?.identity?.code.toLocaleLowerCase()) {
|
|
||||||
case 'tdrive_calendar':
|
|
||||||
return feather ? Calendar : 'calendar-alt';
|
|
||||||
case 'tdrive_drive':
|
|
||||||
return feather ? Folder : 'folder';
|
|
||||||
case 'tdrive_tasks':
|
|
||||||
return feather ? CheckSquare : 'check-square';
|
|
||||||
default:
|
|
||||||
return app.identity?.icon || (feather ? Hexagon : 'puzzle-piece');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return feather ? Hexagon : 'puzzle-piece';
|
|
||||||
}
|
|
||||||
|
|
||||||
getAppIconComponent(item, options = {}) {
|
|
||||||
const application = getApplication(item.application_id ? item.application_id : item.id);
|
|
||||||
const IconType = this.getAppIcon(application, true);
|
|
||||||
|
|
||||||
if (item.code === 'jitsi') {
|
|
||||||
return (
|
|
||||||
<div
|
|
||||||
className="menu-app-icon"
|
|
||||||
style={item.icon_url ? { backgroundImage: 'url(' + item.icon_url + ')' } : {}}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
if (typeof IconType === 'string') {
|
|
||||||
return (
|
|
||||||
<Icon
|
|
||||||
type={IconType}
|
|
||||||
style={{ width: options.size || 18, height: options.size || 18 }}
|
|
||||||
className="small-right-margin"
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return <IconType size={options.size || 18} className="small-right-margin" />;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const workspaces = new WorkspacesApps();
|
|
||||||
export default workspaces;
|
|
||||||
@@ -10,7 +10,6 @@ import _ from 'lodash';
|
|||||||
import RouterService from '@features/router/services/router-service';
|
import RouterService from '@features/router/services/router-service';
|
||||||
import WorkspacesService from '@deprecated/workspaces/workspaces.jsx';
|
import WorkspacesService from '@deprecated/workspaces/workspaces.jsx';
|
||||||
import AccessRightsService from '@features/workspace-members/services/workspace-members-access-rights-service';
|
import AccessRightsService from '@features/workspace-members/services/workspace-members-access-rights-service';
|
||||||
import Groups from '@deprecated/workspaces/groups.js';
|
|
||||||
import LoginService from '@features/auth/login-service';
|
import LoginService from '@features/auth/login-service';
|
||||||
import UserAPIClient from '@features/users/api/user-api-client';
|
import UserAPIClient from '@features/users/api/user-api-client';
|
||||||
import { useRealtimeRoom } from '@features/global/hooks/use-realtime';
|
import { useRealtimeRoom } from '@features/global/hooks/use-realtime';
|
||||||
@@ -72,7 +71,6 @@ export const useCurrentCompany = () => {
|
|||||||
//Always set the current company in localstorage to open it automatically later
|
//Always set the current company in localstorage to open it automatically later
|
||||||
if (routerCompanyId && company) {
|
if (routerCompanyId && company) {
|
||||||
//Depreciated retrocompatibility
|
//Depreciated retrocompatibility
|
||||||
Groups.addToUser(company);
|
|
||||||
AccessRightsService.updateCompanyLevel(
|
AccessRightsService.updateCompanyLevel(
|
||||||
company.id,
|
company.id,
|
||||||
company.role === 'admin' || company.role === 'owner'
|
company.role === 'admin' || company.role === 'owner'
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
/* eslint-disable @typescript-eslint/ban-types */
|
/* eslint-disable @typescript-eslint/ban-types */
|
||||||
import Observable from '@deprecated/CollectionsV1/observable';
|
import Observable from '@deprecated/CollectionsV1/observable';
|
||||||
import DateTime from '@features/global/utils/datetime';
|
|
||||||
import i18n from 'i18next';
|
import i18n from 'i18next';
|
||||||
import { initReactI18next } from 'react-i18next';
|
import { initReactI18next } from 'react-i18next';
|
||||||
import Backend from 'i18next-http-backend';
|
import Backend from 'i18next-http-backend';
|
||||||
@@ -66,7 +65,6 @@ class LanguagesService extends Observable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await i18n.changeLanguage(language);
|
await i18n.changeLanguage(language);
|
||||||
DateTime.setCurrentLanguage(language);
|
|
||||||
|
|
||||||
this.notify();
|
this.notify();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
import $ from 'jquery';
|
|
||||||
|
|
||||||
class DroppableManager {
|
|
||||||
constructor() {
|
|
||||||
this.drop = {};
|
|
||||||
this.draggingData = {};
|
|
||||||
this.dragging = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
over(key, callback, event) {
|
|
||||||
this.drop[key] = {
|
|
||||||
callback: callback,
|
|
||||||
element: event.target,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
out(key) {
|
|
||||||
this.drop[key] = undefined;
|
|
||||||
delete this.drop[key];
|
|
||||||
}
|
|
||||||
|
|
||||||
up() {
|
|
||||||
var that = this;
|
|
||||||
if (!that.draggingData.type || !that.draggingData.data || that.draggingData.data.length == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!this.dragging) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.drop.forEach(el => {
|
|
||||||
if (el && el.callback) {
|
|
||||||
el.callback(that.draggingData);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const instanceDroppableManager = new DroppableManager();
|
|
||||||
export default instanceDroppableManager;
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
import moment from 'moment';
|
|
||||||
import 'moment/locale/ru';
|
|
||||||
import 'moment/locale/fr';
|
|
||||||
import 'moment/locale/de';
|
|
||||||
import 'moment/locale/ja';
|
|
||||||
import 'moment/locale/es';
|
|
||||||
import Observable from '@deprecated/CollectionsV1/observable.js';
|
|
||||||
import UserService from '@features/users/services/current-user-service';
|
|
||||||
|
|
||||||
import Globals from '@features/global/services/globals-tdrive-app-service';
|
|
||||||
|
|
||||||
class DateTime extends Observable {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
|
|
||||||
if (!Globals.window.navigator) {
|
|
||||||
Globals.window.navigator = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
this.observableName = 'dateTimeService';
|
|
||||||
this.locale = this.cleanLocal(
|
|
||||||
Globals.window.navigator.userLanguage || Globals.window.navigator.language || 'en',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
getCurrentLanguage() {
|
|
||||||
return this.locale;
|
|
||||||
}
|
|
||||||
setCurrentLanguage(lang) {
|
|
||||||
this.locale = this.cleanLocal(lang);
|
|
||||||
moment.locale(this.locale);
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
cleanLocal(string) {
|
|
||||||
if (string.split('-').length > 1) {
|
|
||||||
return string.split('-')[0];
|
|
||||||
}
|
|
||||||
return string;
|
|
||||||
}
|
|
||||||
|
|
||||||
getDefaultTimeFormat() {
|
|
||||||
var h24list = [
|
|
||||||
'af',
|
|
||||||
'ar-dz',
|
|
||||||
'ar-kw',
|
|
||||||
'ar-ly',
|
|
||||||
'ar-ma',
|
|
||||||
'ar-sa',
|
|
||||||
'ar-tn',
|
|
||||||
'ar',
|
|
||||||
'az',
|
|
||||||
'be',
|
|
||||||
'bg',
|
|
||||||
'bn',
|
|
||||||
'bo',
|
|
||||||
'br',
|
|
||||||
'bs',
|
|
||||||
'ca',
|
|
||||||
'cs',
|
|
||||||
'cv',
|
|
||||||
'cy',
|
|
||||||
'da',
|
|
||||||
'de-at',
|
|
||||||
'de-ch',
|
|
||||||
'de',
|
|
||||||
'dv',
|
|
||||||
'el',
|
|
||||||
'en-au',
|
|
||||||
'en-ca',
|
|
||||||
'en-gb',
|
|
||||||
'en-ie',
|
|
||||||
'en-nz',
|
|
||||||
'eo',
|
|
||||||
'es-do',
|
|
||||||
'es',
|
|
||||||
'et',
|
|
||||||
'eu',
|
|
||||||
'fa',
|
|
||||||
'fi',
|
|
||||||
'fo',
|
|
||||||
'fr-ca',
|
|
||||||
'fr-ch',
|
|
||||||
'fr',
|
|
||||||
'fy',
|
|
||||||
'gd',
|
|
||||||
'gl',
|
|
||||||
'gom-latn',
|
|
||||||
'he',
|
|
||||||
'hi',
|
|
||||||
'hr',
|
|
||||||
'hu',
|
|
||||||
'hy-am',
|
|
||||||
'id',
|
|
||||||
'is',
|
|
||||||
'it',
|
|
||||||
'ja',
|
|
||||||
'jv',
|
|
||||||
'ka',
|
|
||||||
'kk',
|
|
||||||
'km',
|
|
||||||
'kn',
|
|
||||||
'ko',
|
|
||||||
'ky',
|
|
||||||
'lb',
|
|
||||||
'lo',
|
|
||||||
'lt',
|
|
||||||
'lv',
|
|
||||||
'me',
|
|
||||||
'mi',
|
|
||||||
'mk',
|
|
||||||
'ml',
|
|
||||||
'mr',
|
|
||||||
'ms-my',
|
|
||||||
'ms',
|
|
||||||
'my',
|
|
||||||
'nb',
|
|
||||||
'ne',
|
|
||||||
'nl-be',
|
|
||||||
'nl',
|
|
||||||
'nn',
|
|
||||||
'pa-in',
|
|
||||||
'pl',
|
|
||||||
'pt-br',
|
|
||||||
'pt',
|
|
||||||
'ro',
|
|
||||||
'ru',
|
|
||||||
'sd',
|
|
||||||
'se',
|
|
||||||
'si',
|
|
||||||
'sk',
|
|
||||||
'sl',
|
|
||||||
'sq',
|
|
||||||
'sr-cyrl',
|
|
||||||
'sr',
|
|
||||||
'ss',
|
|
||||||
'sv',
|
|
||||||
'sw',
|
|
||||||
'ta',
|
|
||||||
'te',
|
|
||||||
'tet',
|
|
||||||
'th',
|
|
||||||
'tl-ph',
|
|
||||||
'tlh',
|
|
||||||
'tr',
|
|
||||||
'tzl',
|
|
||||||
'tzm-latn',
|
|
||||||
'tzm',
|
|
||||||
'uk',
|
|
||||||
'ur',
|
|
||||||
'uz-latn',
|
|
||||||
'uz',
|
|
||||||
'vi',
|
|
||||||
'x-pseudo',
|
|
||||||
'yo',
|
|
||||||
'zh-cn',
|
|
||||||
'zh-hk',
|
|
||||||
'zh-tw',
|
|
||||||
];
|
|
||||||
if (
|
|
||||||
h24list.indexOf(
|
|
||||||
(UserService.getCurrentUser() || {}).language ||
|
|
||||||
Globals.window.navigator.language ||
|
|
||||||
Globals.window.navigator.userLanguage ||
|
|
||||||
'en',
|
|
||||||
) >= 0
|
|
||||||
) {
|
|
||||||
return 'H:mm';
|
|
||||||
}
|
|
||||||
return 'LT';
|
|
||||||
}
|
|
||||||
isDateFirstInFormat() {
|
|
||||||
var numbers = moment().format('L').split('/');
|
|
||||||
if (numbers[0] === new Date().getDate()) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
getDefaultDateFormat() {
|
|
||||||
/*var numbers = moment().format("L").split("/");
|
|
||||||
if(numbers[0] == (new Date()).getDate()){
|
|
||||||
return "DD/MM/YYYY";
|
|
||||||
}else{
|
|
||||||
return "MM/DD/YYYY";
|
|
||||||
}*/
|
|
||||||
return 'LL'; //Default format for country better but US is "May 11, 2019" instead of "11 may 2019"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var x = new DateTime();
|
|
||||||
Globals.window.dateTimeService = x;
|
|
||||||
export default x;
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
import Observable from '@deprecated/CollectionsV1/observable.js';
|
|
||||||
import Api from '@features/global/framework/api-service';
|
|
||||||
|
|
||||||
class WorkspacePicker extends Observable {
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
this.observableName = 'workspacePicker';
|
|
||||||
this.searchedWorkspace = null;
|
|
||||||
this.refresh = false;
|
|
||||||
this.searchInput = '';
|
|
||||||
this.searchLabel = '';
|
|
||||||
this.isSearching = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
getWorkspaceByName(name) {
|
|
||||||
var data = {
|
|
||||||
name: name,
|
|
||||||
};
|
|
||||||
this.isSearching = true;
|
|
||||||
this.notify();
|
|
||||||
var that = this;
|
|
||||||
Api.post('/ajax/workspace/getByName', data, function (res) {
|
|
||||||
that.searchedWorkspace = res.data.workspace;
|
|
||||||
that.isSearching = false;
|
|
||||||
that.notify();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const wsPicker = new WorkspacePicker();
|
|
||||||
export default wsPicker;
|
|
||||||
Reference in New Issue
Block a user