瀏覽代碼

Merge branch 'feat/pt-dev-3' of https://github.com/weseek/growi into feat/pt-dev-3

Taichi Masuyama 4 年之前
父節點
當前提交
7a39c8b77d

+ 2 - 2
packages/app/src/components/Sidebar/PageTree/Item.tsx

@@ -86,8 +86,8 @@ const Item: FC<ItemProps> = (props: ItemProps) => {
         >
           <i className="icon-control-play"></i>
         </button>
-        <a href={page._id} className="d-block flex-grow-1">
-          <p className="grw-pagetree-title">{nodePath.basename(page.path as string) || '/'}</p>
+        <a href={page._id} className="flex-grow-1">
+          <p className="grw-pagetree-title m-auto">{nodePath.basename(page.path as string) || '/'}</p>
         </a>
         <div className="grw-pagetree-control">
           Ctrl

+ 1 - 1
packages/app/src/components/Sidebar/PageTree/ItemsTree.tsx

@@ -85,7 +85,7 @@ const ItemsTree: FC = () => {
 
   const isOpen = true;
   return (
-    <div className="grw-page-tree p-3">
+    <div className="grw-pagetree p-3">
       <Item key={(initialNode as ItemNode).page.path} itemNode={(initialNode as ItemNode)} isOpen={isOpen} />
     </div>
   );

+ 13 - 0
packages/app/src/interfaces/named-query.ts

@@ -0,0 +1,13 @@
+import { IUser } from './user';
+
+
+export enum SearchDelegatorName {
+  DEFAULT = 'FullTextSearch',
+  PRIVATE_LEGACY_PAGES = 'PrivateLegacyPages',
+}
+export interface INamedQuery {
+  name: string
+  aliasOf?: string
+  delegatorName?: SearchDelegatorName
+  creator?: IUser
+}

+ 36 - 0
packages/app/src/server/models/named-query.ts

@@ -0,0 +1,36 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+
+import mongoose, {
+  Schema, Model, Document,
+} from 'mongoose';
+
+import { getOrCreateModel } from '@growi/core';
+import loggerFactory from '../../utils/logger';
+import { INamedQuery, SearchDelegatorName } from '../../interfaces/named-query';
+
+const logger = loggerFactory('growi:models:named-query');
+
+export interface NamedQueryDocument extends INamedQuery, Document {}
+
+export type NamedQueryModel = Model<NamedQueryDocument>
+
+const ObjectId = mongoose.Schema.Types.ObjectId;
+
+const schema = new Schema<NamedQueryDocument, NamedQueryModel>({
+  name: { type: String, required: true, unique: true },
+  aliasOf: { type: String },
+  delegatorName: { type: String, enum: SearchDelegatorName },
+  creator: {
+    type: ObjectId, ref: 'User', index: true, default: null,
+  },
+});
+
+schema.pre('validate', async function(this, next) {
+  if (this.aliasOf == null && this.delegatorName == null) {
+    throw Error('Either of aliasOf and delegatorNameName must not be null.');
+  }
+
+  next();
+});
+
+export default getOrCreateModel<NamedQueryDocument, NamedQueryModel>('NamedQuery', schema);

+ 0 - 5
packages/app/src/styles/_page-tree.scss

@@ -28,8 +28,3 @@
     }
   }
 }
-
-// TODO: improve style
-.grw-prvt-legacy-pages {
-  border-top: solid 1px $border-color;
-}

+ 7 - 0
packages/app/src/styles/_sidebar.scss

@@ -233,6 +233,13 @@
       font-size: 18px;
     }
   }
+
+  .grw-sidebar-content-footer {
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    border-top: solid 1px $border-color;
+  }
 }
 
 // Dock Mode