Merge branch 'release/rc-v1.2.0' of github.com:ONLYOFFICE/DocSpace into release/rc-v1.2.0
# Conflicts: # packages/client/src/helpers/confirmRoute.js
This commit is contained in:
commit
532f94ba0c
@ -88,7 +88,7 @@ echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] http://download.onlyoff
|
||||
mkdir -p -m 700 $HOME/.gnupg
|
||||
gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/onlyoffice.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
|
||||
chmod 644 /usr/share/keyrings/onlyoffice.gpg
|
||||
echo "deb http://static.teamlab.info.s3.amazonaws.com/repo/4testing/debian stable main" | sudo tee /etc/apt/sources.list.d/onlyoffice4testing.list
|
||||
echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] http://static.teamlab.info.s3.amazonaws.com/repo/4testing/debian stable main" | sudo tee /etc/apt/sources.list.d/onlyoffice4testing.list
|
||||
|
||||
declare -x LANG="en_US.UTF-8"
|
||||
declare -x LANGUAGE="en_US:en"
|
||||
|
@ -70,7 +70,7 @@ DATABASE_MIGRATION="true"
|
||||
ELK_VERSION=""
|
||||
ELK_HOST=""
|
||||
|
||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
||||
DOCUMENT_SERVER_IMAGE_NAME="onlyoffice/4testing-documentserver-ee:latest"
|
||||
DOCUMENT_SERVER_JWT_SECRET=""
|
||||
DOCUMENT_SERVER_JWT_HEADER=""
|
||||
DOCUMENT_SERVER_HOST=""
|
||||
@ -124,7 +124,7 @@ while [ "$1" != "" ]; do
|
||||
fi
|
||||
;;
|
||||
|
||||
-ids | --installdocumentserver )
|
||||
-idocs | --installdocumentserver )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_DOCUMENT_SERVER=$2
|
||||
shift
|
||||
@ -138,14 +138,14 @@ while [ "$1" != "" ]; do
|
||||
fi
|
||||
;;
|
||||
|
||||
-ira | --installrabbitmq )
|
||||
-irb | --installrabbitmq )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_RABBITMQ=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ire | --installredis )
|
||||
-ird | --installredis )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_REDIS=$2
|
||||
shift
|
||||
@ -294,11 +294,11 @@ while [ "$1" != "" ]; do
|
||||
echo " -p, --password dockerhub password"
|
||||
echo " -ids, --installdocspace install or update $PRODUCT (true|false)"
|
||||
echo " -tag, --dockertag select the version to install $PRODUCT (latest|develop|version number)"
|
||||
echo " -ids, --installdocumentserver install or update document server (true|false)"
|
||||
echo " -idocs, --installdocumentserver install or update document server (true|false)"
|
||||
echo " -di, --documentserverimage document server image name"
|
||||
echo " -imysql, --installmysql install or update mysql (true|false)"
|
||||
echo " -ira, --installrabbitmq install or update rabbitmq (true|false)"
|
||||
echo " -ire, --installredis install or update redis (true|false)"
|
||||
echo " -irb, --installrabbitmq install or update rabbitmq (true|false)"
|
||||
echo " -ird, --installredis install or update redis (true|false)"
|
||||
echo " -mysqlrp, --mysqlrootpassword mysql server root password"
|
||||
echo " -mysqld, --mysqldatabase $PRODUCT database name"
|
||||
echo " -mysqlu, --mysqluser $PRODUCT database user"
|
||||
@ -309,25 +309,26 @@ while [ "$1" != "" ]; do
|
||||
echo " -env, --environment $PRODUCT environment"
|
||||
echo " -skiphc, --skiphardwarecheck skip hardware check (true|false)"
|
||||
echo " -ip, --internalport internal $PRODUCT port (default value 5050)"
|
||||
echo " -ep, --externalport external $PRODUCT port (default value 8092)"
|
||||
echo " -ep, --externalport external $PRODUCT port (default value 80)"
|
||||
echo " -mk, --machinekey setting for core.machinekey"
|
||||
echo " -ls, --local_scripts run the installation from local scripts"
|
||||
echo " -dbm, --databasemigration database migration (true|false)"
|
||||
echo " -?, -h, --help this help"
|
||||
echo
|
||||
echo " Install all the components without document server:"
|
||||
echo " bash $HELP_TARGET -ids false"
|
||||
echo " bash $HELP_TARGET -idocs false"
|
||||
echo
|
||||
echo " Install Document Server only. Skip the installation of MYSQL and $PRODUCT:"
|
||||
echo " bash $HELP_TARGET -ias false -ids true -imysql false -ims false"
|
||||
echo " bash $HELP_TARGET -ids false -idocs true -imysql false -irb false -ird false"
|
||||
echo
|
||||
echo " Update all installed components. Stop the containers that need to be updated, remove them and run the latest versions of the corresponding components. The portal data should be picked up automatically:"
|
||||
echo " bash $HELP_TARGET -u true"
|
||||
echo
|
||||
echo " Update Document Server only to version 4.4.2.20 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -dv 4.4.2.20 -ias false"
|
||||
echo " Update Document Server only to version 7.2.1.34 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -di onlyoffice/documentserver-ee:7.2.1.34 -ids false"
|
||||
echo
|
||||
echo " Update $PRODUCT only to version 0.1.10 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -av 9.1.0.393 -ids false"
|
||||
echo " Update $PRODUCT only to version 1.2.0 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -tag rc-v1.2.0 -idocs false"
|
||||
echo
|
||||
exit 0
|
||||
;;
|
||||
|
@ -64,6 +64,10 @@ public static class ISetupBuilderExtension
|
||||
if (!string.IsNullOrEmpty(awsAccessKeyId))
|
||||
{
|
||||
awsTarget.Credentials = new Amazon.Runtime.BasicAWSCredentials(awsAccessKeyId, awsSecretAccessKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
conf.RemoveTarget(targetName);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ public class TenantStatusFilter : IResourceFilter
|
||||
{
|
||||
private readonly TenantManager _tenantManager;
|
||||
private readonly ILogger<TenantStatusFilter> _logger;
|
||||
private readonly string[] _passthroughtRequestEndings = new[] { "preparation-portal", "getrestoreprogress", "settings", "settings.json" }; //TODO add or update when "preparation-portal" will be done
|
||||
private readonly string[] _passthroughtRequestEndings = new[] { "preparation-portal", "getrestoreprogress", "settings", "settings.json", "colortheme.json", "logos.json", "build.json", "@self.json" }; //TODO add or update when "preparation-portal" will be done
|
||||
|
||||
|
||||
public TenantStatusFilter(ILogger<TenantStatusFilter> logger, TenantManager tenantManager)
|
||||
|
@ -38,19 +38,19 @@ public class RedisCacheNotify<T> : ICacheNotify<T> where T : IMessage<T>, new()
|
||||
|
||||
public void Publish(T obj, CacheNotifyAction action)
|
||||
{
|
||||
Task.Run(() => _redis.PublishAsync(GetChannelName(action), new RedisCachePubSubItem<T>() { Object = obj, Action = action }))
|
||||
Task.Run(async () => await _redis.PublishAsync(GetChannelName(action), new RedisCachePubSubItem<T>() { Object = obj, Action = action }))
|
||||
.GetAwaiter()
|
||||
.GetResult();
|
||||
}
|
||||
|
||||
public async Task PublishAsync(T obj, CacheNotifyAction action)
|
||||
{
|
||||
await Task.Run(() => _redis.PublishAsync(GetChannelName(action), new RedisCachePubSubItem<T>() { Object = obj, Action = action }));
|
||||
await Task.Run(async () => await _redis.PublishAsync(GetChannelName(action), new RedisCachePubSubItem<T>() { Object = obj, Action = action }));
|
||||
}
|
||||
|
||||
public void Subscribe(Action<T> onchange, CacheNotifyAction action)
|
||||
{
|
||||
Task.Run(() => _redis.SubscribeAsync<RedisCachePubSubItem<T>>(GetChannelName(action), (i) =>
|
||||
Task.Run(async () => await _redis.SubscribeAsync<RedisCachePubSubItem<T>>(GetChannelName(action), (i) =>
|
||||
{
|
||||
onchange(i.Object);
|
||||
|
||||
@ -61,7 +61,7 @@ public class RedisCacheNotify<T> : ICacheNotify<T> where T : IMessage<T>, new()
|
||||
|
||||
public void Unsubscribe(CacheNotifyAction action)
|
||||
{
|
||||
Task.Run(() => _redis.UnsubscribeAsync<RedisCachePubSubItem<T>>(GetChannelName(action), (i) =>
|
||||
Task.Run(async () => await _redis.UnsubscribeAsync<RedisCachePubSubItem<T>>(GetChannelName(action), (i) =>
|
||||
{
|
||||
return Task.FromResult(true);
|
||||
})).GetAwaiter()
|
||||
|
@ -254,7 +254,7 @@ public class TariffService : ITariffService
|
||||
}
|
||||
}
|
||||
|
||||
if (tariffId.HasValue)
|
||||
if (tariffId.HasValue && tariffId.Value != 0)
|
||||
{
|
||||
_notify.Publish(new TariffCacheItem { TenantId = tenantId, TariffId = tariffId.Value }, CacheNotifyAction.Insert);
|
||||
}
|
||||
@ -734,12 +734,12 @@ public class TariffService : ITariffService
|
||||
efTariff.CustomerId = "";
|
||||
}
|
||||
|
||||
efTariff = dbContext.AddOrUpdate(r => r.Tariffs, efTariff);
|
||||
efTariff = dbContext.AddOrUpdate(dbContext.Tariffs, efTariff);
|
||||
dbContext.SaveChanges();
|
||||
|
||||
foreach (var q in tariffInfo.Quotas)
|
||||
{
|
||||
dbContext.AddOrUpdate(r => r.TariffRows, new DbTariffRow
|
||||
dbContext.AddOrUpdate(dbContext.TariffRows, new DbTariffRow
|
||||
{
|
||||
TariffId = efTariff.Id,
|
||||
Quota = q.Id,
|
||||
|
@ -161,7 +161,7 @@ class DbAzService : IAzService
|
||||
private void InsertRecord(AzRecord r)
|
||||
{
|
||||
using var userDbContext = _dbContextFactory.CreateDbContext();
|
||||
userDbContext.AddOrUpdate(r => r.Acl, _mapper.Map<AzRecord, Acl>(r));
|
||||
userDbContext.AddOrUpdate(userDbContext.Acl, _mapper.Map<AzRecord, Acl>(r));
|
||||
userDbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class DbQuotaService : IQuotaService
|
||||
ArgumentNullException.ThrowIfNull(quota);
|
||||
|
||||
using var coreDbContext = _dbContextFactory.CreateDbContext();
|
||||
coreDbContext.AddOrUpdate(r => r.Quotas, _mapper.Map<TenantQuota, DbQuota>(quota));
|
||||
coreDbContext.AddOrUpdate(coreDbContext.Quotas, _mapper.Map<TenantQuota, DbQuota>(quota));
|
||||
coreDbContext.SaveChanges();
|
||||
|
||||
return quota;
|
||||
@ -123,7 +123,7 @@ class DbQuotaService : IQuotaService
|
||||
dbTenantQuotaRow.Counter = counter + row.Counter;
|
||||
}
|
||||
|
||||
coreDbContext.AddOrUpdate(r => r.QuotaRows, dbTenantQuotaRow);
|
||||
coreDbContext.AddOrUpdate(coreDbContext.QuotaRows, dbTenantQuotaRow);
|
||||
coreDbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ public class DbSettingsManager
|
||||
Data = data
|
||||
};
|
||||
|
||||
webstudioDbContext.AddOrUpdate(r => r.WebstudioSettings, s);
|
||||
webstudioDbContext.AddOrUpdate(webstudioDbContext.WebstudioSettings, s);
|
||||
|
||||
webstudioDbContext.SaveChanges();
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ public class DbSubscriptionService : ISubscriptionService
|
||||
};
|
||||
|
||||
using var userDbContext = _dbContextFactory.CreateDbContext();
|
||||
userDbContext.AddOrUpdate(r => r.Subscriptions, subs);
|
||||
userDbContext.AddOrUpdate(userDbContext.Subscriptions, subs);
|
||||
userDbContext.SaveChanges();
|
||||
}
|
||||
|
||||
@ -283,7 +283,7 @@ public class DbSubscriptionService : ISubscriptionService
|
||||
Tenant = m.Tenant,
|
||||
Sender = string.Join("|", m.Methods)
|
||||
};
|
||||
userDbContext.AddOrUpdate(r => r.SubscriptionMethods, sm);
|
||||
userDbContext.AddOrUpdate(userDbContext.SubscriptionMethods, sm);
|
||||
}
|
||||
|
||||
userDbContext.SaveChanges();
|
||||
|
@ -350,7 +350,7 @@ public class DbTenantService : ITenantService
|
||||
LastModified = DateTime.UtcNow
|
||||
};
|
||||
|
||||
tenantDbContext.AddOrUpdate(r => r.CoreSettings, settings);
|
||||
tenantDbContext.AddOrUpdate(tenantDbContext.CoreSettings, settings);
|
||||
}
|
||||
|
||||
tenantDbContext.SaveChanges();
|
||||
|
@ -223,8 +223,11 @@ public class EFUserService : IUserService
|
||||
{
|
||||
if (sortBy == "type")
|
||||
{
|
||||
var q1 = from user in q join userGroup in userDbContext.UserGroups.Where(g => !g.Removed && (g.UserGroupId == Users.Constants.GroupAdmin.ID || g.UserGroupId == Users.Constants.GroupUser.ID))
|
||||
on user.Id equals userGroup.Userid into joinedGroup from @group in joinedGroup.DefaultIfEmpty() select new { user, @group };
|
||||
var q1 = from user in q
|
||||
join userGroup in userDbContext.UserGroups.Where(g => !g.Removed && (g.UserGroupId == Users.Constants.GroupAdmin.ID || g.UserGroupId == Users.Constants.GroupUser.ID))
|
||||
on user.Id equals userGroup.Userid into joinedGroup
|
||||
from @group in joinedGroup.DefaultIfEmpty()
|
||||
select new { user, @group };
|
||||
|
||||
q = sortOrderAsc ? q1.OrderBy(r => r.group != null && r.group.UserGroupId == Users.Constants.GroupAdmin.ID ? 1 : r.group == null ? 2 : 3).Select(r => r.user)
|
||||
: q1.OrderByDescending(u => u.group != null && u.group.UserGroupId == Users.Constants.GroupAdmin.ID ? 1 : u.group == null ? 2 : 3).Select(r => r.user);
|
||||
@ -412,7 +415,7 @@ public class EFUserService : IUserService
|
||||
var dbGroup = _mapper.Map<Group, DbGroup>(group);
|
||||
|
||||
using var userDbContext = _dbContextFactory.CreateDbContext();
|
||||
userDbContext.AddOrUpdate(r => r.Groups, dbGroup);
|
||||
userDbContext.AddOrUpdate(userDbContext.Groups, dbGroup);
|
||||
userDbContext.SaveChanges();
|
||||
|
||||
return group;
|
||||
@ -465,7 +468,7 @@ public class EFUserService : IUserService
|
||||
throw new ArgumentOutOfRangeException("Duplicate email.");
|
||||
}
|
||||
|
||||
userDbContext.AddOrUpdate(r => r.Users, _mapper.Map<UserInfo, User>(user));
|
||||
userDbContext.AddOrUpdate(userDbContext.Users, _mapper.Map<UserInfo, User>(user));
|
||||
userDbContext.SaveChanges();
|
||||
tx.Commit();
|
||||
});
|
||||
@ -491,7 +494,7 @@ public class EFUserService : IUserService
|
||||
if (user != null)
|
||||
{
|
||||
user.LastModified = userGroupRef.LastModified;
|
||||
userDbContext.AddOrUpdate(r => r.UserGroups, _mapper.Map<UserGroupRef, UserGroup>(userGroupRef));
|
||||
userDbContext.AddOrUpdate(userDbContext.UserGroups, _mapper.Map<UserGroupRef, UserGroup>(userGroupRef));
|
||||
}
|
||||
|
||||
userDbContext.SaveChanges();
|
||||
@ -516,7 +519,7 @@ public class EFUserService : IUserService
|
||||
};
|
||||
|
||||
using var userDbContext = _dbContextFactory.CreateDbContext();
|
||||
userDbContext.AddOrUpdate(r => r.UserSecurity, us);
|
||||
userDbContext.AddOrUpdate(userDbContext.UserSecurity, us);
|
||||
userDbContext.SaveChanges();
|
||||
}
|
||||
|
||||
@ -547,7 +550,7 @@ public class EFUserService : IUserService
|
||||
userPhoto.Photo = photo;
|
||||
}
|
||||
|
||||
userDbContext.AddOrUpdate(r => r.Photos, userPhoto);
|
||||
userDbContext.AddOrUpdate(userDbContext.Photos, userPhoto);
|
||||
}
|
||||
else if (userPhoto != null)
|
||||
{
|
||||
|
@ -97,10 +97,10 @@ public static class BaseDbContextExtension
|
||||
services.AddDbContext<T>(OptionsAction);
|
||||
}
|
||||
|
||||
public static T AddOrUpdate<T, TContext>(this TContext b, Expression<Func<TContext, DbSet<T>>> expressionDbSet, T entity) where T : BaseEntity where TContext : DbContext
|
||||
public static T AddOrUpdate<T, TContext>(this TContext b, DbSet<T> dbSet, T entity) where T : BaseEntity where TContext : DbContext
|
||||
{
|
||||
var dbSet = expressionDbSet.Compile().Invoke(b);
|
||||
var existingBlog = dbSet.Find(entity.GetKeys());
|
||||
var keys = entity.GetKeys();
|
||||
var existingBlog = dbSet.Find(keys);
|
||||
if (existingBlog == null)
|
||||
{
|
||||
return dbSet.Add(entity).Entity;
|
||||
|
@ -47,7 +47,7 @@ public class TelegramDao
|
||||
};
|
||||
|
||||
using var dbContext = _dbContextFactory.CreateDbContext();
|
||||
dbContext.AddOrUpdate(r => r.Users, user);
|
||||
dbContext.AddOrUpdate(dbContext.Users, user);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ public class DbRadicale
|
||||
public void SaveCardDavUser(int tenant, Guid id)
|
||||
{
|
||||
using var userDbContext = _dbContextFactory.CreateDbContext();
|
||||
userDbContext.AddOrUpdate(r => r.UsersDav, new UserDav() { TenantId = tenant, UserId = id });
|
||||
userDbContext.AddOrUpdate(userDbContext.UsersDav, new UserDav() { TenantId = tenant, UserId = id });
|
||||
userDbContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ public static class Crypto
|
||||
{
|
||||
using var ms = new MemoryStream();
|
||||
using var ss = new CryptoStream(ms, hasher.CreateEncryptor(), CryptoStreamMode.Write);
|
||||
using var plainTextStream = new MemoryStream(Convert.FromBase64String(data));
|
||||
using var plainTextStream = new MemoryStream(Encoding.Unicode.GetBytes(data));
|
||||
plainTextStream.CopyTo(ss);
|
||||
ss.FlushFinalBlock();
|
||||
hasher.Clear();
|
||||
|
@ -39,7 +39,7 @@ public class BackupRepository : IBackupRepository
|
||||
public void SaveBackupRecord(BackupRecord backup)
|
||||
{
|
||||
using var backupContext = _dbContextFactory.CreateDbContext();
|
||||
backupContext.AddOrUpdate(r => r.Backups, backup);
|
||||
backupContext.AddOrUpdate(backupContext.Backups, backup);
|
||||
backupContext.SaveChanges();
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ public class BackupRepository : IBackupRepository
|
||||
public void SaveBackupSchedule(BackupSchedule schedule)
|
||||
{
|
||||
using var backupContext = _dbContextFactory.CreateDbContext();
|
||||
backupContext.AddOrUpdate(r => r.Schedules, schedule);
|
||||
backupContext.AddOrUpdate(backupContext.Schedules, schedule);
|
||||
backupContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
@ -79,6 +79,6 @@ public class DataStoreBackupStorage : IBackupStorage
|
||||
|
||||
protected virtual IDataStore GetDataStore()
|
||||
{
|
||||
return _storageFactory.GetStorage(_tenant, "backup", null);
|
||||
return _storageFactory.GetStorage(_tenant, "backup");
|
||||
}
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ public class AccountLinker
|
||||
};
|
||||
|
||||
using var accountLinkContext = _accountLinkContextManager.CreateDbContext();
|
||||
accountLinkContext.AddOrUpdate(r => r.AccountLinks, accountLink);
|
||||
accountLinkContext.AddOrUpdate(accountLinkContext.AccountLinks, accountLink);
|
||||
accountLinkContext.SaveChanges();
|
||||
|
||||
_accountLinkerStorage.RemoveFromCache(obj);
|
||||
|
@ -71,7 +71,7 @@ public class FeedAggregateDataProvider
|
||||
};
|
||||
|
||||
using var feedDbContext = _dbContextFactory.CreateDbContext();
|
||||
feedDbContext.AddOrUpdate(r => r.FeedLast, feedLast);
|
||||
feedDbContext.AddOrUpdate(feedDbContext.FeedLast, feedLast);
|
||||
feedDbContext.SaveChanges();
|
||||
|
||||
var aggregatedDate = DateTime.UtcNow;
|
||||
@ -124,7 +124,7 @@ public class FeedAggregateDataProvider
|
||||
}
|
||||
}
|
||||
|
||||
feedDbContext.AddOrUpdate(r => r.FeedAggregates, feedAggregate);
|
||||
feedDbContext.AddOrUpdate(feedDbContext.FeedAggregates, feedAggregate);
|
||||
|
||||
foreach (var u in f.Users)
|
||||
{
|
||||
@ -134,7 +134,7 @@ public class FeedAggregateDataProvider
|
||||
UserId = u
|
||||
};
|
||||
|
||||
feedDbContext.AddOrUpdate(r => r.FeedUsers, feedUser);
|
||||
feedDbContext.AddOrUpdate(feedDbContext.FeedUsers, feedUser);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ public class FeedReadedDataProvider
|
||||
};
|
||||
|
||||
using var feedDbContext = _dbContextFactory.CreateDbContext();
|
||||
feedDbContext.AddOrUpdate(r => r.FeedReaded, feedReaded);
|
||||
feedDbContext.AddOrUpdate(feedDbContext.FeedReaded, feedReaded);
|
||||
feedDbContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,8 @@
|
||||
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
|
||||
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
using ASC.Core.Tenants;
|
||||
|
||||
namespace ASC.AuditTrail.Models.Mappings;
|
||||
|
||||
[Scope]
|
||||
@ -33,15 +35,18 @@ internal class EventTypeConverter : ITypeConverter<LoginEventQuery, LoginEventDt
|
||||
private readonly UserFormatter _userFormatter;
|
||||
private readonly AuditActionMapper _auditActionMapper;
|
||||
private readonly MessageTarget _messageTarget;
|
||||
private readonly TenantUtil _tenantUtil;
|
||||
|
||||
public EventTypeConverter(
|
||||
UserFormatter userFormatter,
|
||||
AuditActionMapper actionMapper,
|
||||
MessageTarget messageTarget)
|
||||
MessageTarget messageTarget,
|
||||
TenantUtil tenantUtil)
|
||||
{
|
||||
_userFormatter = userFormatter;
|
||||
_auditActionMapper = actionMapper;
|
||||
_messageTarget = messageTarget;
|
||||
_messageTarget = messageTarget;
|
||||
_tenantUtil = tenantUtil;
|
||||
}
|
||||
|
||||
public LoginEventDto Convert(LoginEventQuery source, LoginEventDto destination, ResolutionContext context)
|
||||
@ -83,6 +88,9 @@ internal class EventTypeConverter : ITypeConverter<LoginEventQuery, LoginEventDt
|
||||
}
|
||||
|
||||
result.ActionText = _auditActionMapper.GetActionText(_auditActionMapper.GetMessageMaps(result.Action), result);
|
||||
|
||||
result.Date = _tenantUtil.DateTimeFromUtc(result.Date);
|
||||
result.IP = result.IP.Split(':').Length > 1 ? result.IP.Split(':')[0] : result.IP;
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -138,6 +146,10 @@ internal class EventTypeConverter : ITypeConverter<LoginEventQuery, LoginEventDt
|
||||
result.Product = _auditActionMapper.GetProductText(map);
|
||||
result.Module = _auditActionMapper.GetModuleText(map);
|
||||
}
|
||||
|
||||
|
||||
result.Date = _tenantUtil.DateTimeFromUtc(result.Date);
|
||||
result.IP = result.IP.Split(':').Length > 1 ? result.IP.Split(':')[0] : result.IP;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ public class BaseIndexer<T> where T : class, ISearchItem
|
||||
yield return getData(ids[i], ids[i + 1], lastIndexed);
|
||||
}
|
||||
|
||||
webstudioDbContext.AddOrUpdate(r => r.WebstudioIndex, new DbWebstudioIndex()
|
||||
webstudioDbContext.AddOrUpdate(webstudioDbContext.WebstudioIndex, new DbWebstudioIndex()
|
||||
{
|
||||
IndexName = Wrapper.IndexName,
|
||||
LastModified = now
|
||||
|
@ -70,6 +70,21 @@
|
||||
-->
|
||||
<script>
|
||||
console.log("It's WEB CLIENT INIT");
|
||||
fetch("/static/scripts/config.json")
|
||||
.then((response) => {
|
||||
if (!response.ok) {
|
||||
throw new Error("HTTP error " + response.status);
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then((config) => {
|
||||
window.DocSpaceConfig = {
|
||||
...config,
|
||||
};
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -41,6 +41,7 @@
|
||||
"Other": "Other",
|
||||
"OwnerChange": "Change owner",
|
||||
"Presentations": "Presentations",
|
||||
"FormTemplates": "Form templates",
|
||||
"Remove": "Remove",
|
||||
"RoleCommentator": "Commentator",
|
||||
"RoleCommentatorDescription": "Operations with existing files: viewing, commenting.",
|
||||
|
@ -40,6 +40,7 @@
|
||||
"Other": "Другой",
|
||||
"OwnerChange": "Сменить владельца",
|
||||
"Presentations": "Презентации",
|
||||
"FormTemplates": "Шаблоны форм",
|
||||
"Spreadsheets": "Таблицы",
|
||||
"SubNewForm": "Пустая",
|
||||
"SubNewFormFile": " Из текстового файла",
|
||||
|
@ -1,10 +1,6 @@
|
||||
import React from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import {
|
||||
ShareAccessRights,
|
||||
AppServerConfig,
|
||||
FileStatus,
|
||||
} from "@docspace/common/constants";
|
||||
import { ShareAccessRights, FileStatus } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
|
||||
import Badges from "../components/Badges";
|
||||
|
@ -2,7 +2,6 @@ import React from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
//import toastr from "@docspace/components/toast/toastr";
|
||||
import {
|
||||
// AppServerConfig,
|
||||
// FileAction,
|
||||
FileStatus,
|
||||
ShareAccessRights,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import React, { useCallback } from "react";
|
||||
import React from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
@ -6,10 +6,6 @@ import Link from "@docspace/components/link";
|
||||
import LinkWithDropdown from "@docspace/components/link-with-dropdown";
|
||||
import Avatar from "@docspace/components/avatar";
|
||||
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
|
||||
export default function withContent(WrappedContent) {
|
||||
const WithContent = (props) => {
|
||||
const {
|
||||
@ -95,7 +91,7 @@ export default function withContent(WrappedContent) {
|
||||
/*const redirectToProfile = () => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/accounts/view/${userName}`
|
||||
)
|
||||
@ -110,7 +106,7 @@ export default function withContent(WrappedContent) {
|
||||
clearTimeout(timer);
|
||||
if (
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/accounts/view/${userName}`
|
||||
) !== window.location.pathname
|
||||
|
@ -26,8 +26,7 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
? toastr.success(t("Translations:FileUnlocked"))
|
||||
: toastr.success(t("Translations:FileLocked"))
|
||||
)
|
||||
.catch((err) => toastr.error(err))
|
||||
.finally(() => this.setState({ isLoading: false }));
|
||||
.catch((err) => toastr.error(err), this.setState({ isLoading: false }))
|
||||
}
|
||||
return;
|
||||
};
|
||||
@ -57,7 +56,7 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
isAdmin,
|
||||
sectionWidth,
|
||||
viewAs,
|
||||
isPersonalRoom,
|
||||
folderCategory,
|
||||
} = this.props;
|
||||
|
||||
const quickButtonsComponent = (
|
||||
@ -72,7 +71,7 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
isCanWebEdit={isCanWebEdit}
|
||||
onClickLock={this.onClickLock}
|
||||
onClickFavorite={this.onClickFavorite}
|
||||
isPersonalRoom={isPersonalRoom}
|
||||
folderCategory={folderCategory}
|
||||
/>
|
||||
);
|
||||
|
||||
@ -98,9 +97,16 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
setFavoriteAction,
|
||||
onSelectItem,
|
||||
} = filesActionsStore;
|
||||
const { isPersonalRoom } = treeFoldersStore;
|
||||
const {
|
||||
isPersonalFolderRoot,
|
||||
isArchiveFolderRoot,
|
||||
isTrashFolder,
|
||||
} = treeFoldersStore;
|
||||
const { setSharingPanelVisible } = dialogsStore;
|
||||
|
||||
const folderCategory =
|
||||
isTrashFolder || isArchiveFolderRoot || isPersonalFolderRoot;
|
||||
|
||||
return {
|
||||
theme: auth.settingsStore.theme,
|
||||
isAdmin: auth.isAdmin,
|
||||
@ -108,8 +114,7 @@ export default function withQuickButtons(WrappedComponent) {
|
||||
setFavoriteAction,
|
||||
onSelectItem,
|
||||
setSharingPanelVisible,
|
||||
|
||||
isPersonalRoom,
|
||||
folderCategory,
|
||||
};
|
||||
}
|
||||
)(observer(WithQuickButtons));
|
||||
|
@ -20,8 +20,6 @@ import config from "PACKAGE_FILE";
|
||||
import { I18nextProvider, useTranslation } from "react-i18next";
|
||||
import i18n from "./i18n";
|
||||
import AppLoader from "@docspace/common/components/AppLoader";
|
||||
import System from "./components/System";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import Snackbar from "@docspace/components/snackbar";
|
||||
import moment from "moment";
|
||||
import ReactSmartBanner from "./components/SmartBanner";
|
||||
@ -32,29 +30,6 @@ import DialogsWrapper from "./components/dialogs/DialogsWrapper";
|
||||
import MainBar from "./components/MainBar";
|
||||
import { Portal } from "@docspace/components";
|
||||
|
||||
// const { proxyURL } = AppServerConfig;
|
||||
// const homepage = config.homepage;
|
||||
|
||||
// const PROXY_HOMEPAGE_URL = combineUrl(proxyURL, homepage);
|
||||
// const HOME_URLS = [
|
||||
// combineUrl(PROXY_HOMEPAGE_URL),
|
||||
// combineUrl(PROXY_HOMEPAGE_URL, "/"),
|
||||
// combineUrl(PROXY_HOMEPAGE_URL, "/error=:error"),
|
||||
// ];
|
||||
// const WIZARD_URL = combineUrl(PROXY_HOMEPAGE_URL, "/wizard");
|
||||
// const ABOUT_URL = combineUrl(PROXY_HOMEPAGE_URL, "/about");
|
||||
// const CONFIRM_URL = combineUrl(PROXY_HOMEPAGE_URL, "/confirm");
|
||||
|
||||
// const PAYMENTS_URL = combineUrl(PROXY_HOMEPAGE_URL, "/payments");
|
||||
// const SETTINGS_URL = combineUrl(PROXY_HOMEPAGE_URL, "/portal-settings");
|
||||
// const ERROR_401_URL = combineUrl(PROXY_HOMEPAGE_URL, "/error401");
|
||||
// const PROFILE_MY_URL = combineUrl(PROXY_HOMEPAGE_URL, "/my");
|
||||
// const ENTER_CODE_URL = combineUrl(PROXY_HOMEPAGE_URL, "/code");
|
||||
// const PREPARATION_PORTAL = combineUrl(
|
||||
// PROXY_HOMEPAGE_URL,
|
||||
// "/preparation-portal"
|
||||
// );
|
||||
|
||||
const Payments = React.lazy(() => import("./pages/Payments"));
|
||||
const Error404 = React.lazy(() => import("client/Error404"));
|
||||
const Error401 = React.lazy(() => import("client/Error401"));
|
||||
@ -202,7 +177,7 @@ const Shell = ({ items = [], page = "home", ...rest }) => {
|
||||
useEffect(() => {
|
||||
socketHelper.emit({
|
||||
command: "subscribe",
|
||||
data: { roomParts: "backup-restore" }
|
||||
data: { roomParts: "backup-restore" },
|
||||
});
|
||||
socketHelper.on("restore-backup", () => {
|
||||
setPreparationPortalDialogVisible(true);
|
||||
|
@ -4,7 +4,6 @@ import CatalogItem from "@docspace/components/catalog-item";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import withLoader from "../../../HOCs/withLoader";
|
||||
import config from "PACKAGE_FILE";
|
||||
|
||||
@ -25,7 +24,11 @@ const PureAccountsItem = ({
|
||||
setSelectedNode(["accounts", "filter"]);
|
||||
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, "/accounts")
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/accounts"
|
||||
)
|
||||
);
|
||||
toggleArticleOpen();
|
||||
}, [setSelectedFolder, setSelectedNode, history]);
|
||||
|
@ -5,7 +5,6 @@ import { inject, observer } from "mobx-react";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import withLoader from "../../../HOCs/withLoader";
|
||||
import { isMobile } from "@docspace/components/utils/device";
|
||||
import { isMobileOnly } from "react-device-detect";
|
||||
@ -40,7 +39,11 @@ const PureSettingsItem = ({
|
||||
setExpandSettingsTree(["common"]);
|
||||
if (isMobile() || isMobileOnly) toggleArticleOpen();
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, "/settings/common")
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/settings/common"
|
||||
)
|
||||
);
|
||||
}, [
|
||||
setSelectedFolder,
|
||||
|
@ -7,9 +7,7 @@ import { isMobileOnly } from "react-device-detect";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { withRouter } from "react-router";
|
||||
import { combineUrl, getOAuthToken } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import withLoader from "../../../HOCs/withLoader";
|
||||
import { useCallback } from "react";
|
||||
import IconButton from "@docspace/components/icon-button";
|
||||
import { connectedCloudsTitleTranslation } from "@docspace/client/src/helpers/filesUtils";
|
||||
@ -123,7 +121,11 @@ const PureThirdPartyListContainer = ({
|
||||
toggleArticleOpen();
|
||||
}
|
||||
return history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, thirdPartyUrl)
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
thirdPartyUrl
|
||||
)
|
||||
);
|
||||
}
|
||||
}, [setSelectedNode, setSelectedFolder]);
|
||||
|
@ -4,7 +4,7 @@ import { inject, observer } from "mobx-react";
|
||||
import { withRouter } from "react-router";
|
||||
import { setDocumentTitle } from "@docspace/client/src/helpers/filesUtils";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { AppServerConfig, RoomSearchArea } from "@docspace/common/constants";
|
||||
import { RoomSearchArea } from "@docspace/common/constants";
|
||||
import Items from "./Items";
|
||||
import { isMobile, tablet } from "@docspace/components/utils/device";
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
@ -99,7 +99,7 @@ const ArticleBodyContent = (props) => {
|
||||
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
homepage,
|
||||
`${url}?${filterParamsStr}`
|
||||
)
|
||||
@ -130,7 +130,11 @@ const ArticleBodyContent = (props) => {
|
||||
const pathname = `${url}?${filterParamsStr}`;
|
||||
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, pathname)
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
pathname
|
||||
)
|
||||
);
|
||||
}
|
||||
})
|
||||
|
@ -6,7 +6,6 @@ import MainButton from "@docspace/components/main-button";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { isMobile } from "react-device-detect";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { AppServerConfig, FileAction } from "@docspace/common/constants";
|
||||
import { encryptionUploadDialog } from "../../../helpers/desktop";
|
||||
import { withRouter } from "react-router";
|
||||
|
||||
@ -171,7 +170,7 @@ const ArticleMainButtonContent = (props) => {
|
||||
const onShowGallery = () => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/form-gallery/${currentFolderId}/`
|
||||
)
|
||||
|
@ -8,7 +8,6 @@ import Link from "@docspace/components/link";
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { getCategoryUrl } from "SRC_DIR/helpers/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import history from "@docspace/common/history";
|
||||
import config from "PACKAGE_FILE";
|
||||
|
||||
@ -47,7 +46,11 @@ const RoomNoAccessContainer = (props) => {
|
||||
const pathname = `${url}?${filterParamsStr}`;
|
||||
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, pathname)
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
pathname
|
||||
)
|
||||
);
|
||||
})
|
||||
.finally(() => {
|
||||
|
@ -11,7 +11,6 @@ import Loaders from "@docspace/common/components/Loaders";
|
||||
import RoomsFilter from "@docspace/common/api/rooms/filter";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { getCategoryUrl } from "SRC_DIR/helpers/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import history from "@docspace/common/history";
|
||||
import config from "PACKAGE_FILE";
|
||||
import PlusIcon from "@docspace/client/public/images/plus.react.svg";
|
||||
@ -113,7 +112,11 @@ const RootFolderContainer = (props) => {
|
||||
const pathname = `${url}?${filterParamsStr}`;
|
||||
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, pathname)
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
pathname
|
||||
)
|
||||
);
|
||||
})
|
||||
.finally(() => {
|
||||
|
@ -4,7 +4,6 @@ import { useTranslation } from "react-i18next";
|
||||
|
||||
import toastr from "@docspace/components/toast/toastr";
|
||||
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
|
||||
import config from "PACKAGE_FILE";
|
||||
@ -104,7 +103,11 @@ const CreateEvent = ({
|
||||
let tab =
|
||||
!isDesktop && extension && open
|
||||
? window.open(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, `/doceditor`),
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/doceditor`
|
||||
),
|
||||
"_blank"
|
||||
)
|
||||
: null;
|
||||
|
@ -6,6 +6,9 @@ import { Encoder } from "@docspace/common/utils/encoder";
|
||||
import api from "@docspace/common/api";
|
||||
|
||||
const EditRoomEvent = ({
|
||||
addActiveItems,
|
||||
setActiveFolders,
|
||||
|
||||
visible,
|
||||
onClose,
|
||||
item,
|
||||
@ -95,6 +98,8 @@ const EditRoomEvent = ({
|
||||
logo: { big: item.logo.small },
|
||||
});
|
||||
|
||||
addActiveItems(null, [room.id]);
|
||||
|
||||
await uploadRoomLogo(uploadLogoData).then((response) => {
|
||||
const url = URL.createObjectURL(roomParams.icon.uploadedFile);
|
||||
const img = new Image();
|
||||
@ -113,6 +118,8 @@ const EditRoomEvent = ({
|
||||
reloadSelection();
|
||||
|
||||
URL.revokeObjectURL(img.src);
|
||||
|
||||
setActiveFolders([]);
|
||||
};
|
||||
img.src = url;
|
||||
});
|
||||
@ -197,6 +204,8 @@ export default inject(
|
||||
setFolder,
|
||||
addLogoToRoom,
|
||||
removeLogoFromRoom,
|
||||
addActiveItems,
|
||||
setActiveFolders,
|
||||
} = filesStore;
|
||||
|
||||
const { createTag, fetchTags } = tagsStore;
|
||||
@ -207,6 +216,9 @@ export default inject(
|
||||
const { withPaging } = auth.settingsStore;
|
||||
const { reloadSelection } = auth.infoPanelStore;
|
||||
return {
|
||||
addActiveItems,
|
||||
setActiveFolders,
|
||||
|
||||
editRoom,
|
||||
addTagsToRoom,
|
||||
removeTagsFromRoom,
|
||||
|
@ -14,6 +14,14 @@ const StyledIcon = styled.img`
|
||||
border-radius: 6px;
|
||||
outline: 1px solid ${(props) => props.theme.itemIcon.borderColor};
|
||||
`}
|
||||
|
||||
${(props) =>
|
||||
props.isHidden &&
|
||||
css`
|
||||
display: none;
|
||||
border-radius: none;
|
||||
outline: none;
|
||||
`}
|
||||
`;
|
||||
|
||||
StyledIcon.defaultProps = { theme: Base };
|
||||
@ -27,10 +35,32 @@ const EncryptedFileIcon = styled.div`
|
||||
margin-left: 12px;
|
||||
`;
|
||||
|
||||
const ItemIcon = ({ icon, fileExst, isPrivacy, isRoom }) => {
|
||||
const ItemIcon = ({ icon, fileExst, isPrivacy, isRoom, defaultRoomIcon }) => {
|
||||
const [showDefaultIcon, setShowDefaultIcon] = React.useState(isRoom);
|
||||
|
||||
const onLoadRoomIcon = () => {
|
||||
if (!isRoom || defaultRoomIcon === icon) return;
|
||||
|
||||
setShowDefaultIcon(false);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<StyledIcon className={`react-svg-icon`} isRoom={isRoom} src={icon} />
|
||||
{isRoom && (
|
||||
<StyledIcon
|
||||
className={`react-svg-icon`}
|
||||
isHidden={!showDefaultIcon}
|
||||
isRoom={isRoom}
|
||||
src={defaultRoomIcon}
|
||||
/>
|
||||
)}
|
||||
<StyledIcon
|
||||
className={`react-svg-icon`}
|
||||
isHidden={showDefaultIcon}
|
||||
isRoom={isRoom}
|
||||
src={icon}
|
||||
onLoad={onLoadRoomIcon}
|
||||
/>
|
||||
{isPrivacy && fileExst && <EncryptedFileIcon isEdit={false} />}
|
||||
</>
|
||||
);
|
||||
|
@ -5,7 +5,6 @@ import Box from "@docspace/components/box";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { Base } from "@docspace/components/themes";
|
||||
import { hugeMobile } from "@docspace/components/utils/device";
|
||||
|
||||
@ -74,7 +73,7 @@ const HeaderUnAuth = ({
|
||||
<img
|
||||
className="header-logo-icon"
|
||||
src={combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/static/images/logo.docspace.react.svg"
|
||||
)}
|
||||
/>
|
||||
|
@ -1,36 +1,16 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import PropTypes from "prop-types";
|
||||
import styled, { css } from "styled-components";
|
||||
import styled from "styled-components";
|
||||
import { Link as LinkWithoutRedirect } from "react-router-dom";
|
||||
import { isMobileOnly, isMobile } from "react-device-detect";
|
||||
import NavItem from "./nav-item";
|
||||
import Headline from "@docspace/common/components/Headline";
|
||||
import Nav from "./nav";
|
||||
import NavLogoItem from "./nav-logo-item";
|
||||
import Link from "@docspace/components/link";
|
||||
import history from "@docspace/common/history";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import HeaderNavigationIcon from "./header-navigation-icon";
|
||||
import Box from "@docspace/components/box";
|
||||
import Text from "@docspace/components/text";
|
||||
import {
|
||||
desktop,
|
||||
isDesktop,
|
||||
tablet,
|
||||
mobile,
|
||||
} from "@docspace/components/utils/device";
|
||||
import i18n from "../i18n";
|
||||
import { isDesktop, tablet, mobile } from "@docspace/components/utils/device";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import NoUserSelect from "@docspace/components/utils/commonStyles";
|
||||
import { getLink, checkIfModuleOld, onItemClick } from "SRC_DIR/helpers/utils";
|
||||
import StyledExternalLinkIcon from "@docspace/client/src/components/StyledExternalLinkIcon";
|
||||
import HeaderCatalogBurger from "./header-catalog-burger";
|
||||
import { Base, Dark } from "@docspace/components/themes";
|
||||
import { ReactSVG } from "react-svg";
|
||||
|
||||
const { proxyURL } = AppServerConfig;
|
||||
import { Base } from "@docspace/components/themes";
|
||||
|
||||
const Header = styled.header`
|
||||
display: flex;
|
||||
@ -243,7 +223,7 @@ const HeaderComponent = ({
|
||||
alt="logo"
|
||||
className="header-logo-icon"
|
||||
src={combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/static/images/personal.logo.react.svg"
|
||||
)}
|
||||
/>
|
||||
@ -297,7 +277,7 @@ const HeaderComponent = ({
|
||||
<Box className="version-box">
|
||||
<Link
|
||||
as="a"
|
||||
href={`https://github.com/ONLYOFFICE/AppServer/releases`}
|
||||
href={`https://github.com/ONLYOFFICE/Docspace/releases`}
|
||||
target="_blank"
|
||||
{...versionBadgeProps}
|
||||
>
|
||||
@ -309,7 +289,7 @@ const HeaderComponent = ({
|
||||
</Text>
|
||||
<StyledLink>
|
||||
<LinkWithoutRedirect
|
||||
to={combineUrl(proxyURL, "/about")}
|
||||
to={combineUrl(window.DocSpaceConfig?.proxy?.url, "/about")}
|
||||
className="nav-menu-header_link"
|
||||
>
|
||||
{t("Common:About")}
|
||||
|
@ -9,7 +9,6 @@ import { isMobile } from "@docspace/components/utils/device";
|
||||
import { isMobileOnly } from "react-device-detect";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import CatalogItem from "@docspace/components/catalog-item";
|
||||
import withLoader from "../../../HOCs/withLoader";
|
||||
|
||||
@ -67,7 +66,7 @@ const ArticleBodyContent = ({
|
||||
|
||||
const urlFilter = newFilter.toUrlParams();
|
||||
const url = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/accounts/filter?${urlFilter}`
|
||||
);
|
||||
|
@ -9,7 +9,6 @@ import Loaders from "@docspace/common/components/Loaders";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { isMobile } from "react-device-detect";
|
||||
import {
|
||||
isMobile as isMobileUtils,
|
||||
@ -30,7 +29,11 @@ class ArticleMainButtonContent extends React.Component {
|
||||
onImportClick = () => {
|
||||
const { history, homepage } = this.props;
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, homepage, "${homepage}/import")
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
homepage,
|
||||
"${homepage}/import"
|
||||
)
|
||||
);
|
||||
if (isMobile || isMobileUtils()) this.props.toggleShowText();
|
||||
};
|
||||
@ -38,7 +41,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
goToEmployeeCreate = () => {
|
||||
const { history, homepage } = this.props;
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, homepage, "/create/user")
|
||||
combineUrl(window.DocSpaceConfig?.proxy?.url, homepage, "/create/user")
|
||||
);
|
||||
if (isMobile || isMobileUtils()) this.props.toggleShowText();
|
||||
};
|
||||
@ -46,7 +49,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
// goToGuestCreate = () => {
|
||||
// const { history, homepage } = this.props;
|
||||
// history.push(
|
||||
// combineUrl(AppServerConfig.proxyURL, homepage, "/create/guest")
|
||||
// combineUrl(window.DocSpaceConfig?.proxy?.url, homepage, "/create/guest")
|
||||
// );
|
||||
// if (isMobile || isMobileUtils()) this.props.toggleShowText();
|
||||
// };
|
||||
@ -54,7 +57,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
// goToGroupCreate = () => {
|
||||
// const { history, homepage } = this.props;
|
||||
// history.push(
|
||||
// combineUrl(AppServerConfig.proxyURL, homepage, "/group/create")
|
||||
// combineUrl(window.DocSpaceConfig?.proxy?.url, homepage, "/group/create")
|
||||
// );
|
||||
// if (isMobile || isMobileUtils()) this.props.toggleShowText();
|
||||
// };
|
||||
@ -91,7 +94,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
{
|
||||
key: "create-user",
|
||||
icon: combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
homepage,
|
||||
"/images/add.employee.react.svg"
|
||||
),
|
||||
@ -101,7 +104,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
// {
|
||||
// key: "create-guest",
|
||||
// icon: combineUrl(
|
||||
// AppServerConfig.proxyURL,
|
||||
// window.DocSpaceConfig?.proxy?.url,
|
||||
// homepage,
|
||||
// "/images/add.guest.react.svg"
|
||||
// ),
|
||||
@ -111,7 +114,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
// {
|
||||
// key: "create-group",
|
||||
// icon: combineUrl(
|
||||
// AppServerConfig.proxyURL,
|
||||
// window.DocSpaceConfig?.proxy?.url,
|
||||
// homepage,
|
||||
// "/images/add.department.react.svg"
|
||||
// ),
|
||||
@ -124,7 +127,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
{
|
||||
key: "invite-link",
|
||||
icon: combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/static/images/invitation.link.react.svg"
|
||||
),
|
||||
label: t("PeopleTranslations:InviteLinkTitle"),
|
||||
@ -132,7 +135,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
},
|
||||
/* {
|
||||
icon: combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/static/images/plane.react.svg"
|
||||
),
|
||||
label: t("SendInvitesAgain"),
|
||||
@ -141,7 +144,7 @@ class ArticleMainButtonContent extends React.Component {
|
||||
separator,
|
||||
{
|
||||
icon: combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/static/images/import.react.svg"
|
||||
),
|
||||
label: t("ImportPeople"),
|
||||
|
@ -16,13 +16,14 @@ const QuickButtons = (props) => {
|
||||
item,
|
||||
theme,
|
||||
sectionWidth,
|
||||
isTrashFolder,
|
||||
|
||||
onClickLock,
|
||||
isDisabled,
|
||||
onClickFavorite,
|
||||
viewAs,
|
||||
isCanWebEdit,
|
||||
isPersonalRoom,
|
||||
|
||||
folderCategory,
|
||||
} = props;
|
||||
|
||||
const { id, locked, fileStatus, title, fileExst } = item;
|
||||
@ -58,7 +59,7 @@ const QuickButtons = (props) => {
|
||||
const setFavorite = () => onClickFavorite(isFavorite);
|
||||
|
||||
const isAvailableLockFile =
|
||||
!isPersonalRoom && fileExst && displayBadges && isCanWebEdit;
|
||||
!folderCategory && fileExst && displayBadges && isCanWebEdit;
|
||||
|
||||
return (
|
||||
<div className="badges additional-badges">
|
||||
|
@ -132,36 +132,40 @@ const ArchiveDialog = withTranslation(["Files", "ArchiveDialog", "Common"])(
|
||||
ArchiveDialogComponent
|
||||
);
|
||||
|
||||
export default inject(({ filesStore, filesActionsStore, dialogsStore }) => {
|
||||
const { roomsForRestore, selection, bufferSelection } = filesStore;
|
||||
const { setArchiveAction } = filesActionsStore;
|
||||
export default inject(
|
||||
({ filesStore, filesActionsStore, dialogsStore, selectedFolderStore }) => {
|
||||
const { roomsForRestore, selection, bufferSelection } = filesStore;
|
||||
const { setArchiveAction } = filesActionsStore;
|
||||
|
||||
const {
|
||||
archiveDialogVisible: visible,
|
||||
restoreAllArchive: restoreAll,
|
||||
archiveAction: action,
|
||||
const {
|
||||
archiveDialogVisible: visible,
|
||||
restoreAllArchive: restoreAll,
|
||||
archiveAction: action,
|
||||
|
||||
setArchiveDialogVisible,
|
||||
setRestoreAllArchive,
|
||||
setArchiveAction: setArchiveActionType,
|
||||
} = dialogsStore;
|
||||
setArchiveDialogVisible,
|
||||
setRestoreAllArchive,
|
||||
setArchiveAction: setArchiveActionType,
|
||||
} = dialogsStore;
|
||||
|
||||
const items = restoreAll
|
||||
? roomsForRestore
|
||||
: selection.length > 0
|
||||
? selection
|
||||
: [bufferSelection];
|
||||
const items = restoreAll
|
||||
? roomsForRestore
|
||||
: selection.length > 0
|
||||
? selection
|
||||
: bufferSelection
|
||||
? [bufferSelection]
|
||||
: [{ id: selectedFolderStore.id }];
|
||||
|
||||
return {
|
||||
visible,
|
||||
restoreAll,
|
||||
action,
|
||||
return {
|
||||
visible,
|
||||
restoreAll,
|
||||
action,
|
||||
|
||||
setArchiveDialogVisible,
|
||||
setRestoreAllArchive,
|
||||
setArchiveActionType,
|
||||
setArchiveDialogVisible,
|
||||
setRestoreAllArchive,
|
||||
setArchiveActionType,
|
||||
|
||||
setArchiveAction,
|
||||
items,
|
||||
};
|
||||
})(withRouter(observer(ArchiveDialog)));
|
||||
setArchiveAction,
|
||||
items,
|
||||
};
|
||||
}
|
||||
)(withRouter(observer(ArchiveDialog)));
|
||||
|
@ -6,7 +6,6 @@ import { withTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import SimulatePassword from "../../SimulatePassword";
|
||||
import StyledComponent from "./StyledConvertPasswordDialog";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { openDocEditor } from "@docspace/client/src/helpers/filesUtils";
|
||||
import combineUrl from "@docspace/common/utils/combineUrl";
|
||||
@ -58,7 +57,11 @@ const ConvertPasswordDialogComponent = (props) => {
|
||||
tab =
|
||||
!isDesktop && formCreationInfo.fileInfo.fileExst && formCreationInfo.open
|
||||
? window.open(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, "/doceditor"),
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/doceditor"
|
||||
),
|
||||
"_blank"
|
||||
)
|
||||
: null;
|
||||
|
@ -13,8 +13,6 @@ import ModalDialogContainer from "../ModalDialogContainer";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
// import Link from "@docspace/components/link";
|
||||
|
||||
const { deleteUser } = api.people; //TODO: Move to action
|
||||
const { Filter } = api;
|
||||
@ -34,7 +32,7 @@ class DeleteProfileEverDialogComponent extends React.Component {
|
||||
const params = filter.toUrlParams();
|
||||
|
||||
const url = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
homepage,
|
||||
`/accounts/filter?${params}`
|
||||
);
|
||||
@ -56,7 +54,7 @@ class DeleteProfileEverDialogComponent extends React.Component {
|
||||
const { homepage, user } = this.props;
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
homepage,
|
||||
`/reassign/${user.userName}`
|
||||
)
|
||||
|
@ -1,6 +1,5 @@
|
||||
import React, { useState } from "react";
|
||||
import Text from "@docspace/components/text";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import LinkWithDropdown from "@docspace/components/link-with-dropdown";
|
||||
import Checkbox from "@docspace/components/checkbox";
|
||||
import ArrowIcon from "@docspace/client/public/images/arrow.react.svg";
|
||||
@ -86,6 +85,8 @@ const DownloadContent = (props) => {
|
||||
return formats;
|
||||
case "presentations":
|
||||
return formats;
|
||||
case "masterForms":
|
||||
return formats;
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
@ -170,11 +171,4 @@ const DownloadContent = (props) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default inject(({ auth }) => {
|
||||
const { settingsStore } = auth;
|
||||
const { theme } = settingsStore;
|
||||
|
||||
return {
|
||||
theme,
|
||||
};
|
||||
})(observer(DownloadContent));
|
||||
export default DownloadContent;
|
||||
|
@ -5,6 +5,7 @@ const StyledDownloadDialog = styled(ModalDialog)`
|
||||
.download-dialog-description {
|
||||
margin-bottom: 16px;
|
||||
line-height: 20px;
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
.download-dialog-convert-message {
|
||||
|
@ -16,6 +16,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
documents,
|
||||
spreadsheets,
|
||||
presentations,
|
||||
masterForms,
|
||||
other,
|
||||
} = this.props.sortedFiles;
|
||||
|
||||
@ -38,11 +39,18 @@ class DownloadDialogComponent extends React.Component {
|
||||
format: null,
|
||||
files: presentations,
|
||||
},
|
||||
masterForms: {
|
||||
isChecked: true,
|
||||
isIndeterminate: false,
|
||||
format: null,
|
||||
files: masterForms,
|
||||
},
|
||||
other: {
|
||||
isChecked: true,
|
||||
isIndeterminate: false,
|
||||
files: other,
|
||||
},
|
||||
modalDialogToggle: "modalDialogToggle",
|
||||
};
|
||||
}
|
||||
|
||||
@ -53,6 +61,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
...this.state.documents.files,
|
||||
...this.state.spreadsheets.files,
|
||||
...this.state.presentations.files,
|
||||
...this.state.masterForms.files,
|
||||
...this.state.other.files,
|
||||
];
|
||||
|
||||
@ -195,6 +204,9 @@ class DownloadDialogComponent extends React.Component {
|
||||
case "presentations":
|
||||
this.updateDocsState("presentations", itemId);
|
||||
break;
|
||||
case "masterForms":
|
||||
this.updateDocsState("masterForms", itemId);
|
||||
break;
|
||||
case "other":
|
||||
this.updateDocsState("other", itemId);
|
||||
break;
|
||||
@ -205,7 +217,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
};
|
||||
|
||||
render() {
|
||||
const { t, tReady, visible, extsConvertible } = this.props;
|
||||
const { t, tReady, visible, extsConvertible, theme } = this.props;
|
||||
|
||||
const {
|
||||
files: documents,
|
||||
@ -228,6 +240,13 @@ class DownloadDialogComponent extends React.Component {
|
||||
format: presentationsTitleFormat,
|
||||
} = this.state.presentations;
|
||||
|
||||
const {
|
||||
files: masterForms,
|
||||
isChecked: checkedMasterFormsTitle,
|
||||
isIndeterminate: indeterminateMasterFormsTitle,
|
||||
format: masterFormsTitleFormat,
|
||||
} = this.state.masterForms;
|
||||
|
||||
const {
|
||||
files: other,
|
||||
isChecked: checkedOtherTitle,
|
||||
@ -238,12 +257,14 @@ class DownloadDialogComponent extends React.Component {
|
||||
documents.filter((f) => f.checked).length +
|
||||
spreadsheets.filter((f) => f.checked).length +
|
||||
presentations.filter((f) => f.checked).length +
|
||||
masterForms.filter((f) => f.checked).length +
|
||||
other.filter((f) => f.checked).length;
|
||||
|
||||
const isSingleFile = isCheckedLength <= 1;
|
||||
|
||||
const downloadContentProps = {
|
||||
t,
|
||||
theme,
|
||||
extsConvertible,
|
||||
onSelectFormat: this.onSelectFormat,
|
||||
onRowSelect: this.onRowSelect,
|
||||
@ -254,10 +275,12 @@ class DownloadDialogComponent extends React.Component {
|
||||
this.state.documents.files.length +
|
||||
this.state.spreadsheets.files.length +
|
||||
this.state.presentations.files.length +
|
||||
this.state.masterForms.files.length +
|
||||
this.state.other.files.length +
|
||||
(this.state.documents.files.length > 1 && 1) +
|
||||
(this.state.spreadsheets.files.length > 1 && 1) +
|
||||
(this.state.presentations.files.length > 1 && 1) +
|
||||
(this.state.masterForms.files.length > 1 && 1) +
|
||||
(this.state.other.files.length > 1 && 1);
|
||||
|
||||
return (
|
||||
@ -273,7 +296,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
>
|
||||
<ModalDialog.Header>{t("Translations:DownloadAs")}</ModalDialog.Header>
|
||||
|
||||
<ModalDialog.Body>
|
||||
<ModalDialog.Body className={this.state.modalDialogToggle}>
|
||||
<div className="download-dialog-description">
|
||||
<Text noSelect>{t("ChooseFormatText")}.</Text>
|
||||
{!isSingleFile && (
|
||||
@ -318,6 +341,18 @@ class DownloadDialogComponent extends React.Component {
|
||||
/>
|
||||
)}
|
||||
|
||||
{masterForms.length > 0 && (
|
||||
<DownloadContent
|
||||
{...downloadContentProps}
|
||||
isChecked={checkedMasterFormsTitle}
|
||||
isIndeterminate={indeterminateMasterFormsTitle}
|
||||
items={masterForms}
|
||||
titleFormat={masterFormsTitleFormat || t("OriginalFormat")}
|
||||
type="masterForms"
|
||||
title={t("Translations:FormTemplates")}
|
||||
/>
|
||||
)}
|
||||
|
||||
{other.length > 0 && (
|
||||
<DownloadContent
|
||||
{...downloadContentProps}
|
||||
@ -364,9 +399,10 @@ const DownloadDialog = withTranslation([
|
||||
])(DownloadDialogComponent);
|
||||
|
||||
export default inject(
|
||||
({ filesStore, dialogsStore, filesActionsStore, settingsStore }) => {
|
||||
({ auth, filesStore, dialogsStore, filesActionsStore, settingsStore }) => {
|
||||
const { sortedFiles } = filesStore;
|
||||
const { extsConvertible } = settingsStore;
|
||||
const { theme } = auth.settingsStore;
|
||||
|
||||
const {
|
||||
downloadDialogVisible: visible,
|
||||
@ -382,6 +418,8 @@ export default inject(
|
||||
|
||||
setDownloadDialogVisible,
|
||||
downloadFiles,
|
||||
|
||||
theme,
|
||||
};
|
||||
}
|
||||
)(withRouter(observer(DownloadDialog)));
|
||||
|
@ -4,12 +4,14 @@ import { withTranslation, Trans } from "react-i18next";
|
||||
import { withRouter } from "react-router";
|
||||
import moment from "moment";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import AppServerConfig from "@docspace/common/constants/AppServerConfig";
|
||||
import ModalDialog from "@docspace/components/modal-dialog";
|
||||
import Button from "@docspace/components/button";
|
||||
import Text from "@docspace/components/text";
|
||||
|
||||
const PROXY_BASE_URL = combineUrl(AppServerConfig.proxyURL, "/portal-settings");
|
||||
const PROXY_BASE_URL = combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/portal-settings"
|
||||
);
|
||||
|
||||
const InviteUsersWarningDialog = (props) => {
|
||||
const {
|
||||
|
@ -7,7 +7,6 @@ import Text from "@docspace/components/text";
|
||||
import Heading from "@docspace/components/heading";
|
||||
import Aside from "@docspace/components/aside";
|
||||
import Row from "@docspace/components/row";
|
||||
import Box from "@docspace/components/box";
|
||||
import Button from "@docspace/components/button";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import toastr from "@docspace/components/toast/toastr";
|
||||
@ -22,7 +21,6 @@ import {
|
||||
} from "../StyledPanels";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import withLoader from "../../../HOCs/withLoader";
|
||||
@ -152,7 +150,7 @@ class NewFilesPanel extends React.Component {
|
||||
.finally(
|
||||
window.open(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/doceditor?fileId=${id}`
|
||||
),
|
||||
|
@ -39,6 +39,7 @@ const SelectFolderDialogAsideView = ({
|
||||
selectionFiles,
|
||||
folderSelectionDisabled,
|
||||
}) => {
|
||||
const isLoaded = folderId && resultingFolderTree;
|
||||
return (
|
||||
<StyledModalDialog
|
||||
theme={theme}
|
||||
@ -68,13 +69,21 @@ const SelectFolderDialogAsideView = ({
|
||||
<div className="selection-panel_aside-body">
|
||||
<div className="selection-panel_aside-header">
|
||||
<div>{header}</div>
|
||||
<Text fontWeight="700" fontSize="18px">
|
||||
{t("Common:Rooms")}
|
||||
</Text>
|
||||
{isLoaded ? (
|
||||
<Text fontWeight="700" fontSize="18px">
|
||||
{t("Common:Rooms")}
|
||||
</Text>
|
||||
) : (
|
||||
<Loaders.Rectangle
|
||||
className="selection-panel_header-loader"
|
||||
width="83px"
|
||||
height="24px"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="selection-panel_aside-tree">
|
||||
{folderId && resultingFolderTree ? (
|
||||
{isLoaded ? (
|
||||
<FolderTreeBody
|
||||
selectionFiles={selectionFiles}
|
||||
parentId={parentId}
|
||||
|
@ -4,7 +4,6 @@ import toastr from "@docspace/components/toast/toastr";
|
||||
import FilesListBody from "./FilesListBody";
|
||||
import axios from "axios";
|
||||
import { combineUrl, getFolderOptions } from "@docspace/common/utils";
|
||||
import AppServerConfig from "@docspace/common/constants/AppServerConfig";
|
||||
|
||||
class FilesListWrapper extends React.Component {
|
||||
constructor(props) {
|
||||
@ -72,9 +71,16 @@ class FilesListWrapper extends React.Component {
|
||||
const options = getFolderOptions(folderId, this.newFilter);
|
||||
|
||||
const response = await axios
|
||||
.get(combineUrl(AppServerConfig.apiPrefix, options.url), {
|
||||
cancelToken: this.source.token,
|
||||
})
|
||||
.get(
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
window.DocSpaceConfig?.api?.prefix,
|
||||
options.url
|
||||
),
|
||||
{
|
||||
cancelToken: this.source.token,
|
||||
}
|
||||
)
|
||||
.catch((thrown) => {
|
||||
if (axios.isCancel(thrown)) {
|
||||
console.log("Request canceled", thrown.message);
|
||||
|
@ -53,6 +53,7 @@ const SelectionPanelBody = ({
|
||||
folderSelectionDisabled,
|
||||
isCurrentFolder,
|
||||
}) => {
|
||||
const isLoaded = folderId && resultingFolderTree;
|
||||
return (
|
||||
<StyledModalDialog
|
||||
theme={theme}
|
||||
@ -71,15 +72,25 @@ const SelectionPanelBody = ({
|
||||
<StyledBody header={!!header} footer={!!footer}>
|
||||
<div className="selection-panel_body">
|
||||
<div className="selection-panel_tree-body">
|
||||
<Text
|
||||
fontWeight="700"
|
||||
fontSize="18px"
|
||||
className="selection-panel_folder-title"
|
||||
>
|
||||
{t("Common:Rooms")}
|
||||
</Text>
|
||||
{isLoaded ? (
|
||||
<Text
|
||||
fontWeight="700"
|
||||
fontSize="18px"
|
||||
className="selection-panel_folder-title"
|
||||
>
|
||||
{t("Common:Rooms")}
|
||||
</Text>
|
||||
) : (
|
||||
<div className="selection-panel_folder-title">
|
||||
<Loaders.Rectangle
|
||||
className="selection-panel_header-loader"
|
||||
width="83px"
|
||||
height="24px"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{folderId && resultingFolderTree ? (
|
||||
{isLoaded ? (
|
||||
<FolderTreeBody
|
||||
selectionFiles={selectionFiles}
|
||||
theme={theme}
|
||||
|
@ -79,6 +79,11 @@ const StyledBody = styled.div`
|
||||
.selection-panel_folder-title {
|
||||
padding: 12px 20px 14px 0px;
|
||||
}
|
||||
|
||||
.selection-panel_header-loader {
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.selection-panel_tree-folder {
|
||||
height: ${(props) => (props.footer ? "343px" : "387px")};
|
||||
max-height: 384px;
|
||||
@ -212,6 +217,10 @@ const StyledAsideBody = styled.div`
|
||||
div:first-child {
|
||||
${(props) => props.header && " margin-bottom: 12px;"}
|
||||
}
|
||||
|
||||
.selection-panel_header-loader {
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
}
|
||||
.selection-panel_aside-folder-title {
|
||||
margin-top: 12px;
|
||||
|
@ -7,7 +7,6 @@ import Section from "@docspace/common/components/Section";
|
||||
import { checkConfirmLink } from "@docspace/common/api/user"; //TODO: Move AuthStore
|
||||
import { combineUrl, getObjectByLocation } from "@docspace/common/utils";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
|
||||
class ConfirmRoute extends React.Component {
|
||||
constructor(props) {
|
||||
@ -56,7 +55,7 @@ class ConfirmRoute extends React.Component {
|
||||
case ValidationResult.Invalid:
|
||||
console.error("invlid link");
|
||||
window.location.href = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
path,
|
||||
"/error"
|
||||
);
|
||||
@ -64,7 +63,7 @@ class ConfirmRoute extends React.Component {
|
||||
case ValidationResult.Expired:
|
||||
console.error("expired link");
|
||||
window.location.href = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
path,
|
||||
"/error"
|
||||
);
|
||||
@ -72,7 +71,7 @@ class ConfirmRoute extends React.Component {
|
||||
default:
|
||||
console.error("unknown link");
|
||||
window.location.href = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
path,
|
||||
"/error"
|
||||
);
|
||||
@ -82,7 +81,7 @@ class ConfirmRoute extends React.Component {
|
||||
.catch((error) => {
|
||||
console.error(error);
|
||||
window.location.href = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
path,
|
||||
"/error"
|
||||
);
|
||||
|
@ -1,9 +1,5 @@
|
||||
import authStore from "@docspace/common/store/AuthStore";
|
||||
import {
|
||||
AppServerConfig,
|
||||
FileType,
|
||||
RoomsType,
|
||||
} from "@docspace/common/constants";
|
||||
import { FileType, RoomsType } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl, toUrlParams } from "@docspace/common/utils";
|
||||
import { addFileToRecentlyViewed } from "@docspace/common/api/files";
|
||||
@ -111,7 +107,7 @@ export const openDocEditor = async (
|
||||
|
||||
if (!url && id) {
|
||||
url = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/doceditor?fileId=${encodeURIComponent(id)}`
|
||||
);
|
||||
@ -129,7 +125,7 @@ export const openDocEditor = async (
|
||||
export const getDataSaveAs = async (params) => {
|
||||
try {
|
||||
const data = await request({
|
||||
baseURL: combineUrl(AppServerConfig.proxyURL, config.homepage),
|
||||
baseURL: combineUrl(window.DocSpaceConfig?.proxy?.url, config.homepage),
|
||||
method: "get",
|
||||
url: `/products/files/httphandlers/filehandler.ashx?${params}`,
|
||||
responseType: "text",
|
||||
@ -155,7 +151,7 @@ export const SaveAs = (title, url, folderId, openNewTab) => {
|
||||
} else {
|
||||
window.open(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`products/files/httphandlers/filehandler.ashx?${params}` //TODO: will change 'products/files' path
|
||||
),
|
||||
|
@ -79,7 +79,7 @@ const AboutContent = (props) => {
|
||||
} = props;
|
||||
const { t } = useTranslation("About");
|
||||
const license = "AGPL-3.0";
|
||||
const linkAppServer = "https://github.com/ONLYOFFICE/DocSpace";
|
||||
const linkRepo = "https://github.com/ONLYOFFICE/DocSpace";
|
||||
const linkDocs = "https://github.com/ONLYOFFICE/DocumentServer";
|
||||
|
||||
const companyName = previewData
|
||||
@ -134,14 +134,14 @@ const AboutContent = (props) => {
|
||||
className="row-el"
|
||||
fontSize="13px"
|
||||
fontWeight="600"
|
||||
href={linkAppServer}
|
||||
href={linkRepo}
|
||||
target="_blank"
|
||||
>
|
||||
ONLYOFFICE DocSpace
|
||||
</ColorTheme>
|
||||
|
||||
<Text className="row-el select-el" fontSize="13px" fontWeight="600">
|
||||
v.{buildVersionInfo.appServer}
|
||||
v.{buildVersionInfo.docspace}
|
||||
</Text>
|
||||
</div>
|
||||
|
||||
|
@ -6,7 +6,6 @@ import Section from "@docspace/common/components/Section";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import tryRedirectTo from "@docspace/common/utils/tryRedirectTo";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
|
||||
class ActivateEmail extends React.PureComponent {
|
||||
componentDidMount() {
|
||||
@ -21,7 +20,7 @@ class ActivateEmail extends React.PureComponent {
|
||||
.then((res) => {
|
||||
tryRedirectTo(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
`/login?confirmedEmail=${email}`
|
||||
)
|
||||
);
|
||||
@ -41,7 +40,7 @@ class ActivateEmail extends React.PureComponent {
|
||||
|
||||
tryRedirectTo(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
`/login/error?message=${errorMessage}`
|
||||
)
|
||||
);
|
||||
|
@ -6,7 +6,6 @@ import Loader from "@docspace/components/loader";
|
||||
import Section from "@docspace/common/components/Section";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import tryRedirectTo from "@docspace/common/utils/tryRedirectTo";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
|
||||
class ChangeEmail extends React.PureComponent {
|
||||
componentDidMount() {
|
||||
@ -18,7 +17,7 @@ class ChangeEmail extends React.PureComponent {
|
||||
console.log("change client email success", res);
|
||||
tryRedirectTo(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
`/accounts/view/@self?email_change=success`
|
||||
)
|
||||
);
|
||||
@ -37,7 +36,10 @@ class ChangeEmail extends React.PureComponent {
|
||||
|
||||
console.log("change client email error", e);
|
||||
tryRedirectTo(
|
||||
combineUrl(AppServerConfig.proxyURL, `/error=${errorMessage}`)
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
`/error=${errorMessage}`
|
||||
)
|
||||
);
|
||||
});
|
||||
}
|
||||
@ -52,7 +54,7 @@ class ChangeEmail extends React.PureComponent {
|
||||
console.log("change client email success", res);
|
||||
tryRedirectTo(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
`/accounts/view/@self?email_change=success`
|
||||
)
|
||||
);
|
||||
|
@ -3,7 +3,6 @@ import { observer, inject } from "mobx-react";
|
||||
import Loader from "@docspace/components/loader";
|
||||
import axios from "axios";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
|
||||
let loadTimeout = null;
|
||||
export default function withLoader(WrappedComponent) {
|
||||
@ -48,7 +47,7 @@ export default function withLoader(WrappedComponent) {
|
||||
console.error(errorMessage);
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
`/login/error?message=${errorMessage}`
|
||||
)
|
||||
);
|
||||
@ -72,7 +71,7 @@ export default function withLoader(WrappedComponent) {
|
||||
console.error(errorMessage);
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
`/login/error?message=${errorMessage}`
|
||||
)
|
||||
);
|
||||
|
@ -21,7 +21,6 @@ import Settings from "./Settings";
|
||||
import PrivateRoomsPage from "./PrivateRoomsPage";
|
||||
import ErrorBoundary from "@docspace/common/components/ErrorBoundary";
|
||||
import Panels from "../components/FilesPanels";
|
||||
//import { AppServerConfig } from "@docspace/common/constants";
|
||||
import Article from "@docspace/common/components/Article";
|
||||
import {
|
||||
ArticleBodyContent,
|
||||
@ -32,10 +31,9 @@ import {
|
||||
import GlobalEvents from "../components/GlobalEvents";
|
||||
import Accounts from "./Accounts";
|
||||
|
||||
// const { proxyURL } = AppServerConfig;
|
||||
// const homepage = config.homepage;
|
||||
|
||||
// const PROXY_HOMEPAGE_URL = combineUrl(proxyURL, homepage);
|
||||
// const PROXY_HOMEPAGE_URL = combineUrl(window.DocSpaceConfig?.proxy?.url, homepage);
|
||||
|
||||
// const HOME_URL = combineUrl(PROXY_HOMEPAGE_URL, "/");
|
||||
// const SETTINGS_URL = combineUrl(PROXY_HOMEPAGE_URL, "/settings/:setting");
|
||||
@ -222,19 +220,16 @@ class FilesContent extends React.Component {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { showArticle, isFrame, withMainButton } = this.props;
|
||||
const { showMenu, isFrame, withMainButton, history } = this.props;
|
||||
|
||||
return (
|
||||
<>
|
||||
<GlobalEvents />
|
||||
<Panels />
|
||||
{isFrame ? (
|
||||
showArticle && <FilesArticle history={this.props.history} />
|
||||
showMenu && <FilesArticle history={history} />
|
||||
) : (
|
||||
<FilesArticle
|
||||
history={this.props.history}
|
||||
withMainButton={withMainButton}
|
||||
/>
|
||||
<FilesArticle history={history} withMainButton={withMainButton} />
|
||||
)}
|
||||
<FilesSection />
|
||||
</>
|
||||
@ -259,7 +254,7 @@ const Files = inject(({ auth, filesStore }) => {
|
||||
return {
|
||||
isDesktop: isDesktopClient,
|
||||
isFrame,
|
||||
showArticle: frameConfig?.showArticle,
|
||||
showMenu: frameConfig?.showMenu,
|
||||
user: auth.userStore.user,
|
||||
isAuthenticated: auth.isAuthenticated,
|
||||
encryptionKeys: encryptionKeys,
|
||||
|
@ -3,7 +3,6 @@ import { inject, observer } from "mobx-react";
|
||||
import IconButton from "@docspace/components/icon-button";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { withRouter } from "react-router-dom";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import {
|
||||
StyledHeadline,
|
||||
StyledContainer,
|
||||
@ -39,7 +38,7 @@ const SectionHeaderContent = (props) => {
|
||||
const pathname = `${url}?${filterParamsStr}`;
|
||||
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, pathname)
|
||||
combineUrl(window.DocSpaceConfig?.proxy?.url, config.homepage, pathname)
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -3,11 +3,9 @@ import { inject, observer } from "mobx-react";
|
||||
import ContextMenuButton from "@docspace/components/context-menu-button";
|
||||
import PropTypes from "prop-types";
|
||||
import ContextMenu from "@docspace/components/context-menu";
|
||||
import { isDesktop } from "react-device-detect";
|
||||
import Link from "@docspace/components/link";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { ReactSVG } from "react-svg";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "PACKAGE_FILE";
|
||||
import FilesFilter from "@docspace/common/api/files/filter";
|
||||
@ -97,7 +95,7 @@ class Tile extends React.PureComponent {
|
||||
setIsInfoPanelVisible(false);
|
||||
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, pathname)
|
||||
combineUrl(window.DocSpaceConfig?.proxy?.url, config.homepage, pathname)
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -12,16 +12,14 @@ import Loaders from "@docspace/common/components/Loaders";
|
||||
import PeopleSelector from "../../../../components/PeopleSelector";
|
||||
import { GUID_EMPTY } from "../../../../helpers/constants";
|
||||
import PropTypes from "prop-types";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import React, { useState } from "react";
|
||||
import styled from "styled-components";
|
||||
import { withRouter } from "react-router";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import CatalogGuestIcon from "PUBLIC_DIR/images/catalog.guest.react.svg";
|
||||
import { ID_NO_GROUP_MANAGER } from "../../../../helpers/constants";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
import withLoader from "../../../../HOCs/withLoader";
|
||||
@ -189,7 +187,7 @@ const SectionBodyContent = ({
|
||||
return selectGroup(group.id);
|
||||
} else {
|
||||
return history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, "/")
|
||||
combineUrl(window.DocSpaceConfig?.proxy?.url, config.homepage, "/")
|
||||
);
|
||||
}
|
||||
})
|
||||
|
@ -114,20 +114,17 @@ const InfoPanelBodyContent = ({
|
||||
|
||||
const currentFolderRoomId =
|
||||
selectedFolder?.pathParts &&
|
||||
selectedFolder?.pathParts?.length === 2 &&
|
||||
selectedFolder?.pathParts?.length > 1 &&
|
||||
selectedFolder.pathParts[1];
|
||||
|
||||
const storeRoomId = selectionParentRoom?.id;
|
||||
if (!currentFolderRoomId || currentFolderRoomId === storeRoomId) return;
|
||||
|
||||
const newSelectionParentRoom = await getRoomInfo(currentFolderRoomId);
|
||||
|
||||
if (storeRoomId === newSelectionParentRoom.id) return;
|
||||
|
||||
if (
|
||||
newSelectionParentRoom.parentId === newSelectionParentRoom.rootFolderId
|
||||
) {
|
||||
setSelectionParentRoom(null);
|
||||
} else setSelectionParentRoom(normalizeSelection(newSelectionParentRoom));
|
||||
setSelectionParentRoom(normalizeSelection(newSelectionParentRoom));
|
||||
}, [selectedFolder]);
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
@ -189,6 +186,8 @@ export default inject(({ auth, selectedFolderStore, oformsStore }) => {
|
||||
calculateSelection,
|
||||
normalizeSelection,
|
||||
isItemChanged,
|
||||
|
||||
selectionParentRoom,
|
||||
setSelectionParentRoom,
|
||||
roomsView,
|
||||
fileView,
|
||||
|
@ -180,12 +180,12 @@ const StyledSimpleFilesRow = styled(Row)`
|
||||
}
|
||||
|
||||
.expandButton {
|
||||
margin-left: ${(props) => (!props.isPersonalRoom ? "6px" : "0")};
|
||||
margin-left: ${(props) => (!props.folderCategory ? "6px" : "0")};
|
||||
padding-top: 0px;
|
||||
}
|
||||
.expandButton > div:first-child {
|
||||
${(props) =>
|
||||
props.isPersonalRoom &&
|
||||
props.folderCategory &&
|
||||
css`
|
||||
padding-left: 0 !important;
|
||||
`}
|
||||
@ -220,7 +220,8 @@ const SimpleFilesRow = (props) => {
|
||||
showHotkeyBorder,
|
||||
id,
|
||||
isRooms,
|
||||
isPersonalRoom,
|
||||
|
||||
folderCategory,
|
||||
} = props;
|
||||
|
||||
const [isDragOver, setIsDragOver] = React.useState(false);
|
||||
@ -234,6 +235,7 @@ const SimpleFilesRow = (props) => {
|
||||
icon={item.icon}
|
||||
fileExst={item.fileExst}
|
||||
isRoom={item.isRoom}
|
||||
defaultRoomIcon={item.defaultRoomIcon}
|
||||
/>
|
||||
);
|
||||
|
||||
@ -315,7 +317,7 @@ const SimpleFilesRow = (props) => {
|
||||
isDragOver={isDragOver}
|
||||
isSmallContainer={isSmallContainer}
|
||||
isRooms={isRooms}
|
||||
isPersonalRoom={isPersonalRoom}
|
||||
folderCategory={folderCategory}
|
||||
>
|
||||
<FilesRowContent
|
||||
item={item}
|
||||
|
@ -86,14 +86,14 @@ class FilesTableHeader extends React.Component {
|
||||
resizable: true,
|
||||
sortBy: "Author",
|
||||
|
||||
isDisabled: isPersonalRoom,
|
||||
// isDisabled: isPersonalRoom,
|
||||
onClick: this.onFilter,
|
||||
onChange: this.onColumnChange,
|
||||
};
|
||||
|
||||
if (isPersonalRoom) {
|
||||
authorOption.defaultSize = 0;
|
||||
}
|
||||
// if (isPersonalRoom) {
|
||||
// authorOption.defaultSize = 0;
|
||||
// }
|
||||
|
||||
const columns = [
|
||||
{
|
||||
|
@ -327,6 +327,7 @@ const FilesTableRow = (props) => {
|
||||
icon={item.icon}
|
||||
fileExst={item.fileExst}
|
||||
isRoom={item.isRoom}
|
||||
defaultRoomIcon={item.defaultRoomIcon}
|
||||
/>
|
||||
);
|
||||
|
||||
|
@ -9,6 +9,7 @@ const StyledText = styled(Text)`
|
||||
const StyledAuthorCell = styled.div`
|
||||
display: flex;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
.author-avatar-cell {
|
||||
width: 16px;
|
||||
|
@ -71,6 +71,7 @@ const FileTile = (props) => {
|
||||
icon={item.icon}
|
||||
fileExst={item.fileExst}
|
||||
isRoom={item.isRoom}
|
||||
defaultRoomIcon={item.defaultRoomIcon}
|
||||
/>
|
||||
);
|
||||
|
||||
|
@ -561,7 +561,7 @@ const SectionFilterContent = ({
|
||||
}
|
||||
}
|
||||
|
||||
return filterValues;
|
||||
// return filterValues;
|
||||
const currentFilterValues = [];
|
||||
|
||||
setSelectedFilterValues((value) => {
|
||||
@ -949,38 +949,36 @@ const SectionFilterContent = ({
|
||||
filterOptions.push(...contentOptions);
|
||||
}
|
||||
|
||||
if (!isPersonalRoom) {
|
||||
const authorOption = [
|
||||
{
|
||||
key: FilterGroups.filterAuthor,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("ByAuthor"),
|
||||
isHeader: true,
|
||||
withMultiItems: true,
|
||||
},
|
||||
{
|
||||
id: "filter_author-me",
|
||||
key: FilterKeys.me,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("Common:MeLabel"),
|
||||
},
|
||||
{
|
||||
id: "filter_author-other",
|
||||
key: FilterKeys.other,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("Common:OtherLabel"),
|
||||
},
|
||||
{
|
||||
id: "filter_author-user",
|
||||
key: FilterKeys.user,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("Translations:AddAuthor"),
|
||||
isSelector: true,
|
||||
},
|
||||
];
|
||||
const authorOption = [
|
||||
{
|
||||
key: FilterGroups.filterAuthor,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("ByAuthor"),
|
||||
isHeader: true,
|
||||
withMultiItems: true,
|
||||
},
|
||||
{
|
||||
id: "filter_author-me",
|
||||
key: FilterKeys.me,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("Common:MeLabel"),
|
||||
},
|
||||
{
|
||||
id: "filter_author-other",
|
||||
key: FilterKeys.other,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("Common:OtherLabel"),
|
||||
},
|
||||
{
|
||||
id: "filter_author-user",
|
||||
key: FilterKeys.user,
|
||||
group: FilterGroups.filterAuthor,
|
||||
label: t("Translations:ChooseFromList"),
|
||||
isSelector: true,
|
||||
},
|
||||
];
|
||||
|
||||
filterOptions.push(...authorOption);
|
||||
}
|
||||
filterOptions.push(...authorOption);
|
||||
|
||||
filterOptions.push(...typeOptions);
|
||||
}
|
||||
|
@ -4,11 +4,7 @@ import styled, { css } from "styled-components";
|
||||
import { withRouter } from "react-router";
|
||||
import toastr from "@docspace/components/toast/toastr";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import {
|
||||
AppServerConfig,
|
||||
FolderType,
|
||||
RoomSearchArea,
|
||||
} from "@docspace/common/constants";
|
||||
import { FolderType, RoomSearchArea } from "@docspace/common/constants";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { isMobile, isTablet, isMobileOnly } from "react-device-detect";
|
||||
import DropDownItem from "@docspace/components/drop-down-item";
|
||||
@ -76,6 +72,14 @@ class SectionHeaderContent extends React.Component {
|
||||
this.state = { navigationItems: [] };
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
window.addEventListener("popstate", this.onBackToParentFolder);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
window.removeEventListener("popstate", this.onBackToParentFolder);
|
||||
}
|
||||
|
||||
onCreate = (format) => {
|
||||
const event = new Event(Events.CREATE);
|
||||
|
||||
@ -110,7 +114,7 @@ class SectionHeaderContent extends React.Component {
|
||||
const { history, currentFolderId } = this.props;
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/form-gallery/${currentFolderId}/`
|
||||
)
|
||||
@ -480,7 +484,7 @@ class SectionHeaderContent extends React.Component {
|
||||
key: "archive-room",
|
||||
label: t("Archived"),
|
||||
icon: "/static/images/room.archive.svg",
|
||||
onClick: (e) => onClickArchive(e, selectedFolder, t),
|
||||
onClick: (e) => onClickArchive(e),
|
||||
disabled: !isRoom,
|
||||
"data-action": "archive",
|
||||
action: "archive",
|
||||
|
@ -18,7 +18,6 @@ import {
|
||||
checkPropertyByLink,
|
||||
} from "../../../utils";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { isMobile, isTablet, isMobileOnly } from "react-device-detect";
|
||||
|
||||
const HeaderContainer = styled.div`
|
||||
@ -196,7 +195,9 @@ class SectionHeaderContent extends React.Component {
|
||||
let newArrayOfParams = this.getArrayOfParams();
|
||||
newArrayOfParams.splice(-1, 1);
|
||||
const newPath = "/portal-settings/" + newArrayOfParams.join("/");
|
||||
this.props.history.push(combineUrl(AppServerConfig.proxyURL, newPath));
|
||||
this.props.history.push(
|
||||
combineUrl(window.DocSpaceConfig?.proxy?.url, newPath)
|
||||
);
|
||||
};
|
||||
|
||||
getArrayOfParams = () => {
|
||||
|
@ -6,7 +6,6 @@ import TextInput from "@docspace/components/text-input";
|
||||
import Button from "@docspace/components/button";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import history from "@docspace/common/history";
|
||||
import { isMobileOnly } from "react-device-detect";
|
||||
@ -78,7 +77,7 @@ const DNSSettings = (props) => {
|
||||
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/portal-settings/common/customization"
|
||||
)
|
||||
|
@ -11,7 +11,6 @@ import { inject, observer } from "mobx-react";
|
||||
import { LANGUAGE, COOKIE_EXPIRATION_YEAR } from "@docspace/common/constants";
|
||||
import { LanguageTimeSettingsTooltip } from "../sub-components/common-tooltips";
|
||||
import { combineUrl, setCookie } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import history from "@docspace/common/history";
|
||||
import { isMobileOnly } from "react-device-detect";
|
||||
@ -386,7 +385,7 @@ class LanguageAndTimeZone extends React.Component {
|
||||
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/portal-settings/common/customization"
|
||||
)
|
||||
|
@ -7,7 +7,6 @@ import TextInput from "@docspace/components/text-input";
|
||||
import SaveCancelButtons from "@docspace/components/save-cancel-buttons";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import history from "@docspace/common/history";
|
||||
import { isMobileOnly } from "react-device-detect";
|
||||
@ -224,7 +223,7 @@ const PortalRenaming = (props) => {
|
||||
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/portal-settings/common/customization"
|
||||
)
|
||||
|
@ -10,7 +10,6 @@ import { setDocumentTitle } from "SRC_DIR/helpers/utils";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { CustomTitlesTooltip } from "../sub-components/common-tooltips";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import history from "@docspace/common/history";
|
||||
import { isMobileOnly } from "react-device-detect";
|
||||
@ -249,7 +248,7 @@ class WelcomePageSettings extends React.Component {
|
||||
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/portal-settings/common/customization"
|
||||
)
|
||||
|
@ -6,7 +6,6 @@ import Box from "@docspace/components/box";
|
||||
import Link from "@docspace/components/link";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import withCultureNames from "@docspace/common/hoc/withCultureNames";
|
||||
import history from "@docspace/common/history";
|
||||
import { Base } from "@docspace/components/themes";
|
||||
@ -91,7 +90,7 @@ const CustomizationNavbar = ({
|
||||
onClick={onClickLink}
|
||||
truncate={true}
|
||||
href={combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/portal-settings/common/customization/language-and-time-zone"
|
||||
)}
|
||||
>
|
||||
@ -121,7 +120,7 @@ const CustomizationNavbar = ({
|
||||
className="inherit-title-link header"
|
||||
onClick={onClickLink}
|
||||
href={combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/portal-settings/common/customization/welcome-page-settings"
|
||||
)}
|
||||
>
|
||||
@ -142,7 +141,7 @@ const CustomizationNavbar = ({
|
||||
className="inherit-title-link header"
|
||||
onClick={onClickLink}
|
||||
href={combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/portal-settings/common/customization/dns-settings"
|
||||
)}
|
||||
>
|
||||
@ -180,7 +179,7 @@ const CustomizationNavbar = ({
|
||||
className="inherit-title-link header"
|
||||
onClick={onClickLink}
|
||||
href={combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/portal-settings/common/customization/portal-renaming"
|
||||
)}
|
||||
>
|
||||
|
@ -2,7 +2,6 @@ import React, { useEffect, useState } from "react";
|
||||
import Submenu from "@docspace/components/submenu";
|
||||
import { withRouter } from "react-router";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { inject, observer } from "mobx-react";
|
||||
@ -63,7 +62,7 @@ const SubmenuCommon = (props) => {
|
||||
const onSelect = (e) => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/portal-settings/common/${e.id}`
|
||||
)
|
||||
|
@ -3,7 +3,6 @@ import { withTranslation, Trans } from "react-i18next";
|
||||
import Submenu from "@docspace/components/submenu";
|
||||
import Link from "@docspace/components/link";
|
||||
import HelpButton from "@docspace/components/help-button";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import AutoBackup from "./auto-backup";
|
||||
@ -68,7 +67,7 @@ const Backup = ({
|
||||
const onSelect = (e) => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/portal-settings/backup/${e.id}`
|
||||
)
|
||||
|
@ -8,7 +8,7 @@ import RadioButton from "@docspace/components/radio-button";
|
||||
import toastr from "@docspace/components/toast/toastr";
|
||||
import { startRestore } from "@docspace/common/api/portal";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig, BackupStorageType } from "@docspace/common/constants";
|
||||
import { BackupStorageType } from "@docspace/common/constants";
|
||||
import { request } from "@docspace/common/api/client";
|
||||
import { StyledRestoreBackup } from "./../StyledBackup";
|
||||
import BackupListModalDialog from "./sub-components/backup-list";
|
||||
@ -227,7 +227,10 @@ class RestoreBackup extends React.Component {
|
||||
try {
|
||||
if (isCheckedLocalFile) {
|
||||
checkedFile = await request({
|
||||
baseURL: combineUrl(AppServerConfig.proxyURL, config.homepage),
|
||||
baseURL: combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage
|
||||
),
|
||||
method: "post",
|
||||
url: `/backupFileUpload.ashx`,
|
||||
responseType: "text",
|
||||
@ -259,7 +262,7 @@ class RestoreBackup extends React.Component {
|
||||
.then(() =>
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/preparation-portal"
|
||||
)
|
||||
|
@ -15,7 +15,6 @@ import {
|
||||
import toastr from "@docspace/components/toast/toastr";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import Checkbox from "@docspace/components/checkbox";
|
||||
import HelpButton from "@docspace/components/help-button";
|
||||
import config from "PACKAGE_FILE";
|
||||
@ -114,7 +113,7 @@ class BackupListModalDialog extends React.Component {
|
||||
.then(() =>
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
"/preparation-portal"
|
||||
)
|
||||
|
@ -3,7 +3,6 @@ import Submenu from "@docspace/components/submenu";
|
||||
import { withRouter } from "react-router";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "../../../../../../package.json";
|
||||
|
||||
@ -33,7 +32,7 @@ const DataManagementWrapper = (props) => {
|
||||
const onSelect = (e) => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/settings/datamanagement/${e.id}`
|
||||
)
|
||||
|
@ -6,8 +6,6 @@ import { inject, observer } from "mobx-react";
|
||||
import PortalDeactivationSection from "./portalDeactivation";
|
||||
import PortalDeletionSection from "./portalDeletion";
|
||||
import DeleteDataLoader from "./DeleteDataLoader";
|
||||
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "../../../../../package.json";
|
||||
|
||||
@ -40,7 +38,7 @@ const DeleteData = (props) => {
|
||||
const onSelect = (e) => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/portal-settings/delete-data/${e.id}`
|
||||
)
|
||||
|
@ -3,7 +3,6 @@ import Submenu from "@docspace/components/submenu";
|
||||
import { withRouter } from "react-router";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { isMobile } from "react-device-detect";
|
||||
@ -67,7 +66,7 @@ const IntegrationWrapper = (props) => {
|
||||
const onSelect = (e) => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/portal-settings/integration/${e.id}`
|
||||
)
|
||||
|
@ -4,9 +4,7 @@ import Text from "@docspace/components/text";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import SelectUsersCountContainer from "./sub-components/SelectUsersCountContainer";
|
||||
import TotalTariffContainer from "./sub-components/TotalTariffContainer";
|
||||
import { smallTablet } from "@docspace/components/utils/device";
|
||||
import toastr from "@docspace/components/toast/toastr";
|
||||
import AppServerConfig from "@docspace/common/constants/AppServerConfig";
|
||||
import axios from "axios";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import ButtonContainer from "./sub-components/ButtonContainer";
|
||||
@ -103,7 +101,7 @@ const PriceCalculation = ({
|
||||
|
||||
await axios
|
||||
.put(
|
||||
combineUrl(AppServerConfig.apiPrefix, "/portal/payment/url"),
|
||||
combineUrl(window.DocSpaceConfig?.proxy?.url, "/portal/payment/url"),
|
||||
{ quantity: { admin: value } },
|
||||
{
|
||||
cancelToken: source.token,
|
||||
|
@ -78,18 +78,17 @@ const StyledBody = styled.div`
|
||||
cursor: ${(props) => (props.isDisabled ? "default" : "pointer")};
|
||||
}
|
||||
.circle {
|
||||
position: relative;
|
||||
background: ${(props) =>
|
||||
props.theme.client.settings.payment.rectangleColor};
|
||||
display: flex;
|
||||
border: 1px solid
|
||||
${(props) => props.theme.client.settings.payment.rectangleColor};
|
||||
border-radius: 50%;
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
justify-content: center;
|
||||
-ms-align-items: center;
|
||||
align-items: center;
|
||||
|
||||
svg {
|
||||
position: absolute;
|
||||
path {
|
||||
fill: ${(props) =>
|
||||
props.isDisabled
|
||||
@ -98,6 +97,19 @@ const StyledBody = styled.div`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.minus-icon {
|
||||
svg {
|
||||
top: 44%;
|
||||
left: 28%;
|
||||
}
|
||||
}
|
||||
.plus-icon {
|
||||
svg {
|
||||
top: 30%;
|
||||
left: 27%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.payment-users_count {
|
||||
margin-left: 20px;
|
||||
@ -223,7 +235,11 @@ const SelectUsersCountContainer = ({
|
||||
</Text>
|
||||
<SelectTotalSizeContainer isNeedPlusSign={isNeedPlusSign} />
|
||||
<div className="payment-users">
|
||||
<div className="circle" {...onClickProp} data-operation={"minus"}>
|
||||
<div
|
||||
className="circle minus-icon"
|
||||
{...onClickProp}
|
||||
data-operation={"minus"}
|
||||
>
|
||||
<MinusIcon {...onClickProp} className="payment-score" />
|
||||
</div>
|
||||
|
||||
@ -234,7 +250,11 @@ const SelectUsersCountContainer = ({
|
||||
value={value}
|
||||
{...onchangeNumberProp}
|
||||
/>
|
||||
<div className="circle" {...onClickProp} data-operation={"plus"}>
|
||||
<div
|
||||
className="circle plus-icon"
|
||||
{...onClickProp}
|
||||
data-operation={"plus"}
|
||||
>
|
||||
<PlusIcon {...onClickProp} className="payment-score" />
|
||||
</div>
|
||||
</div>
|
||||
|
@ -3,7 +3,6 @@ import Submenu from "@docspace/components/submenu";
|
||||
import { withRouter } from "react-router";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "PACKAGE_FILE";
|
||||
|
||||
@ -55,7 +54,7 @@ const SecurityWrapper = (props) => {
|
||||
const onSelect = (e) => {
|
||||
history.push(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/portal-settings/security/${e.id}`
|
||||
)
|
||||
|
@ -7,7 +7,6 @@ import {
|
||||
StyledArrowRightIcon,
|
||||
} from "../StyledSecurity";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
|
||||
const MobileCategoryWrapper = (props) => {
|
||||
const { title, url, subtitle, onClickLink } = props;
|
||||
@ -19,7 +18,7 @@ const MobileCategoryWrapper = (props) => {
|
||||
className="inherit-title-link header"
|
||||
onClick={onClickLink}
|
||||
truncate={true}
|
||||
href={combineUrl(AppServerConfig.proxyURL, url)}
|
||||
href={combineUrl(window.DocSpaceConfig?.proxy?.url, url)}
|
||||
>
|
||||
{title}
|
||||
</Link>
|
||||
|
@ -3,7 +3,6 @@ import { Route, Switch, Redirect } from "react-router-dom";
|
||||
import { withRouter } from "react-router";
|
||||
import Layout from "./Layout";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import AppServerConfig from "@docspace/common/constants/AppServerConfig";
|
||||
import Panels from "../../components/FilesPanels";
|
||||
|
||||
const SecuritySettings = lazy(() => import("./categories/security/index.js"));
|
||||
@ -67,7 +66,10 @@ const WhiteLabel = lazy(() =>
|
||||
);
|
||||
|
||||
const Branding = lazy(() => import("./categories/common/branding"));
|
||||
const PROXY_BASE_URL = combineUrl(AppServerConfig.proxyURL, "/portal-settings");
|
||||
const PROXY_BASE_URL = combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/portal-settings"
|
||||
);
|
||||
|
||||
const COMMON_URLS = [
|
||||
PROXY_BASE_URL,
|
||||
@ -167,7 +169,10 @@ const DELETE_DATA_URLS = [
|
||||
combineUrl(PROXY_BASE_URL, "/delete-data/deactivation"),
|
||||
];
|
||||
|
||||
const ERROR_404_URL = combineUrl(AppServerConfig.proxyURL, "/error/404");
|
||||
const ERROR_404_URL = combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
"/error/404"
|
||||
);
|
||||
|
||||
const Settings = () => {
|
||||
return (
|
||||
|
@ -7,7 +7,6 @@ import IconButton from "@docspace/components/icon-button";
|
||||
import ContextMenuButton from "@docspace/components/context-menu-button";
|
||||
import Headline from "@docspace/common/components/Headline";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import { DeleteSelfProfileDialog } from "SRC_DIR/components/dialogs";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import config from "PACKAGE_FILE";
|
||||
@ -71,7 +70,7 @@ const Header = (props) => {
|
||||
const onClickBack = () => {
|
||||
const url = filter.toUrlParams();
|
||||
const backUrl = combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/accounts/filter?/${url}`
|
||||
);
|
||||
|
@ -6,7 +6,6 @@ import { useTranslation } from "react-i18next";
|
||||
import styled from "styled-components";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
|
||||
const Wrapper = styled.div`
|
||||
display: grid;
|
||||
@ -30,7 +29,9 @@ const SectionHeaderContent = (props) => {
|
||||
const { t } = useTranslation("People");
|
||||
|
||||
const onClickBack = useCallback(() => {
|
||||
history.push(combineUrl(AppServerConfig.proxyURL, config.homepage));
|
||||
history.push(
|
||||
combineUrl(window.DocSpaceConfig?.proxy?.url, config.homepage)
|
||||
);
|
||||
}, [history]);
|
||||
|
||||
return (
|
||||
|
@ -11,7 +11,6 @@ import { withTranslation } from "react-i18next";
|
||||
import EmptyFolderContainer from "../../../../components/EmptyContainer/EmptyContainer";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import combineUrl from "@docspace/common/utils/combineUrl";
|
||||
import AppServerConfig from "@docspace/common/constants/AppServerConfig";
|
||||
import config from "PACKAGE_FILE";
|
||||
import { withRouter } from "react-router";
|
||||
import { connectedCloudsTypeTitleTranslation } from "@docspace/client/src/helpers/filesUtils";
|
||||
@ -155,7 +154,11 @@ class ConnectClouds extends React.Component {
|
||||
const urlFilter = newFilter.toUrlParams();
|
||||
setFirstLoad(true);
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, homepage, `/filter?${urlFilter}`) //TODO: Change url by category
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
homepage,
|
||||
`/filter?${urlFilter}`
|
||||
) //TODO: Change url by category
|
||||
);
|
||||
});
|
||||
};
|
||||
|
@ -6,7 +6,6 @@ import Error520 from "client/Error520";
|
||||
//import ConnectClouds from "./ConnectedClouds";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { combineUrl } from "@docspace/common/utils";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import config from "PACKAGE_FILE";
|
||||
import Submenu from "@docspace/components/submenu";
|
||||
import CommonSettings from "./CommonSettings";
|
||||
@ -65,7 +64,11 @@ const SectionBodyContent = ({ isVisitor, isErrorSettings, history }) => {
|
||||
if (id === setting) return;
|
||||
|
||||
history.push(
|
||||
combineUrl(AppServerConfig.proxyURL, config.homepage, `/settings/${id}`)
|
||||
combineUrl(
|
||||
window.DocSpaceConfig?.proxy?.url,
|
||||
config.homepage,
|
||||
`/settings/${id}`
|
||||
)
|
||||
);
|
||||
},
|
||||
[setting, history]
|
||||
|
@ -96,11 +96,12 @@ const VersionRow = (props) => {
|
||||
label: t("EditComment"),
|
||||
onClick: onEditComment,
|
||||
},
|
||||
canChangeVersionFileHistory && {
|
||||
key: "restore",
|
||||
label: t("Common:Restore"),
|
||||
onClick: onRestoreClick,
|
||||
},
|
||||
index !== 0 &&
|
||||
canChangeVersionFileHistory && {
|
||||
key: "restore",
|
||||
label: t("Common:Restore"),
|
||||
onClick: onRestoreClick,
|
||||
},
|
||||
{
|
||||
key: "download",
|
||||
label: `${t("Common:Download")} (${info.contentLength})`,
|
||||
|
@ -24,7 +24,6 @@ import ModalContainer from "./sub-components/modal-dialog-container";
|
||||
|
||||
import { setDocumentTitle } from "SRC_DIR/helpers/utils";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { AppServerConfig } from "@docspace/common/constants";
|
||||
import withCultureNames from "@docspace/common/hoc/withCultureNames";
|
||||
|
||||
const emailSettings = new EmailSettings();
|
||||
@ -103,7 +102,7 @@ class Body extends Component {
|
||||
window.addEventListener("keyup", this.onKeyPressHandler);
|
||||
|
||||
if (!wizardToken) {
|
||||
history.push(combineUrl(AppServerConfig.proxyURL, "/"));
|
||||
history.push(combineUrl(window.DocSpaceConfig?.proxy?.url, "/"));
|
||||
} else {
|
||||
await axios
|
||||
.all([
|
||||
@ -254,7 +253,7 @@ class Body extends Component {
|
||||
getPortalSettings();
|
||||
})
|
||||
.then(() =>
|
||||
history.push(combineUrl(AppServerConfig.proxyURL, "/login"))
|
||||
history.push(combineUrl(window.DocSpaceConfig?.proxy?.url, "/login"))
|
||||
)
|
||||
.catch((error) => {
|
||||
let errorMessage = "";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user