Просмотр исходного кода

Get activityExpirationSeconds in SWR

Shun Miyazawa 3 лет назад
Родитель
Сommit
3f305f77e0

+ 2 - 1
packages/app/src/client/services/ContextExtractor.tsx

@@ -18,7 +18,7 @@ import {
   useShareLinkId, useShareLinksNumber, useTemplateTagData, useCurrentUpdatedAt, useCreator, useRevisionAuthor, useCurrentUser, useTargetAndAncestors,
   useShareLinkId, useShareLinksNumber, useTemplateTagData, useCurrentUpdatedAt, useCreator, useRevisionAuthor, useCurrentUser, useTargetAndAncestors,
   useNotFoundTargetPathOrId, useIsSearchPage, useIsForbidden, useIsIdenticalPath, useHasParent,
   useNotFoundTargetPathOrId, useIsSearchPage, useIsForbidden, useIsIdenticalPath, useHasParent,
   useIsAclEnabled, useIsSearchServiceConfigured, useIsSearchServiceReachable, useIsEnabledAttachTitleHeader, useIsNotFoundPermalink,
   useIsAclEnabled, useIsSearchServiceConfigured, useIsSearchServiceReachable, useIsEnabledAttachTitleHeader, useIsNotFoundPermalink,
-  useDefaultIndentSize, useIsIndentSizeForced, useCsrfToken,
+  useDefaultIndentSize, useIsIndentSizeForced, useCsrfToken, useActivityExpirationSeconds,
 } from '../../stores/context';
 } from '../../stores/context';
 
 
 const { isTrashPage: _isTrashPage } = pagePathUtils;
 const { isTrashPage: _isTrashPage } = pagePathUtils;
@@ -119,6 +119,7 @@ const ContextExtractorOnce: FC = () => {
   useIsEnabledAttachTitleHeader(configByContextHydrate.isEnabledAttachTitleHeader);
   useIsEnabledAttachTitleHeader(configByContextHydrate.isEnabledAttachTitleHeader);
   useIsIndentSizeForced(configByContextHydrate.isIndentSizeForced);
   useIsIndentSizeForced(configByContextHydrate.isIndentSizeForced);
   useDefaultIndentSize(configByContextHydrate.adminPreferredIndentSize);
   useDefaultIndentSize(configByContextHydrate.adminPreferredIndentSize);
+  useActivityExpirationSeconds(configByContextHydrate.activityExpirationSeconds);
 
 
 
 
   // Page
   // Page

+ 3 - 2
packages/app/src/components/Admin/AuditLogSettings.tsx

@@ -2,11 +2,12 @@ import React, { FC } from 'react';
 
 
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 
 
+import { useActivityExpirationSeconds } from '~/stores/context';
+
 export const AuditLogSettings: FC = () => {
 export const AuditLogSettings: FC = () => {
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
-  const adminAuditLogSettingsElm = document.getElementById('admin-audit-log-settings');
-  const activityExpirationSeconds = adminAuditLogSettingsElm?.getAttribute('activity-expiration-seconds') || 2592000;
+  const { data: activityExpirationSecondsData } = useActivityExpirationSeconds();
 
 
   return (
   return (
     <div data-testid="admin-auditlog-settings">
     <div data-testid="admin-auditlog-settings">

+ 2 - 1
packages/app/src/server/models/config.ts

@@ -1,7 +1,7 @@
+import { getOrCreateModel } from '@growi/core';
 import { Types, Schema } from 'mongoose';
 import { Types, Schema } from 'mongoose';
 import uniqueValidator from 'mongoose-unique-validator';
 import uniqueValidator from 'mongoose-unique-validator';
 
 
-import { getOrCreateModel } from '@growi/core';
 
 
 export interface Config {
 export interface Config {
   _id: Types.ObjectId;
   _id: Types.ObjectId;
@@ -242,6 +242,7 @@ schema.statics.getLocalconfig = function(crowi) {
     globalLang: crowi.configManager.getConfig('crowi', 'app:globalLang'),
     globalLang: crowi.configManager.getConfig('crowi', 'app:globalLang'),
     pageLimitationL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationL'),
     pageLimitationL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationL'),
     pageLimitationXL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationXL'),
     pageLimitationXL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationXL'),
+    activityExpirationSeconds: crowi.configManager.getConfig('crowi', 'app:activityExpirationSeconds'),
   };
   };
 
 
   return localConfig;
   return localConfig;

+ 1 - 2
packages/app/src/server/routes/admin.js

@@ -296,8 +296,7 @@ module.exports = function(crowi, app) {
   };
   };
 
 
   actions.auditLog.settings = (req, res) => {
   actions.auditLog.settings = (req, res) => {
-    const activityExpirationSeconds = configManager.getConfig('crowi', 'app:activityExpirationSeconds') || 2592000;
-    return res.render('admin/audit-log-settings', { activityExpirationSeconds });
+    return res.render('admin/audit-log-settings');
   };
   };
 
 
   // Importer management
   // Importer management

+ 1 - 4
packages/app/src/server/views/admin/audit-log-settings.html

@@ -7,9 +7,6 @@
 {% endblock %}
 {% endblock %}
 
 
 {% block content_main %}
 {% block content_main %}
-<div
-  id="admin-audit-log-settings"
-  activity-expiration-seconds="{{ activityExpirationSeconds }}"
->
+<div id="admin-audit-log-settings">
 </div>
 </div>
 {% endblock content_main %}
 {% endblock content_main %}

+ 4 - 0
packages/app/src/stores/context.tsx

@@ -168,6 +168,10 @@ export const useDefaultIndentSize = (initialData?: number) : SWRResponse<number,
   return useStaticSWR<number, Error>('defaultIndentSize', initialData, { fallbackData: 4 });
   return useStaticSWR<number, Error>('defaultIndentSize', initialData, { fallbackData: 4 });
 };
 };
 
 
+export const useActivityExpirationSeconds = (initialData?: number) : SWRResponse<number, Error> => {
+  return useStaticSWR<number, Error>('activityExpirationSeconds', initialData);
+};
+
 
 
 /** **********************************************************
 /** **********************************************************
  *                     Computed contexts
  *                     Computed contexts