From a69ee3f38432af653ed96efd96f5f7682b3ebf24 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 3 Nov 2020 21:30:53 +0800 Subject: build: Dev server no longer listen on 0.0.0.0 . --- FrontEnd/webpack.config.dev.js | 1 - 1 file changed, 1 deletion(-) diff --git a/FrontEnd/webpack.config.dev.js b/FrontEnd/webpack.config.dev.js index 937ab3fb..2e2959a3 100644 --- a/FrontEnd/webpack.config.dev.js +++ b/FrontEnd/webpack.config.dev.js @@ -42,7 +42,6 @@ config.resolve.set("fallback", { config.devServer .contentBase(path.resolve(__dirname, "public/")) - .host("0.0.0.0") .port(3000) .historyApiFallback(true) .hotOnly(true); -- cgit v1.2.3 From 1ecd77cf83049792d0d6380f0f65f9400e78c403 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 3 Nov 2020 22:17:20 +0800 Subject: feat: Add title to timeline. --- FrontEnd/src/app/http/timeline.ts | 3 +++ FrontEnd/src/app/locales/en/translation.ts | 1 + FrontEnd/src/app/locales/scheme.ts | 1 + FrontEnd/src/app/locales/zh/translation.ts | 1 + .../src/app/views/timeline-common/TimelinePageTemplate.tsx | 1 + .../views/timeline-common/TimelinePropertyChangeDialog.tsx | 11 ++++++++++- FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx | 7 ++++--- FrontEnd/src/app/views/user/UserInfoCard.tsx | 8 ++++++-- FrontEnd/webpack.config.dev.js | 5 +++-- 9 files changed, 30 insertions(+), 8 deletions(-) diff --git a/FrontEnd/src/app/http/timeline.ts b/FrontEnd/src/app/http/timeline.ts index eb7d5065..71c49852 100644 --- a/FrontEnd/src/app/http/timeline.ts +++ b/FrontEnd/src/app/http/timeline.ts @@ -23,6 +23,7 @@ export type TimelineVisibility = typeof kTimelineVisibilities[number]; export interface HttpTimelineInfo { uniqueId: string; + title: string; name: string; description: string; owner: HttpUser; @@ -95,6 +96,7 @@ export interface HttpTimelinePostPostRequest { } export interface HttpTimelinePatchRequest { + title?: string; visibility?: TimelineVisibility; description?: string; } @@ -121,6 +123,7 @@ export class HttpTimelineNameConflictError extends Error { interface RawTimelineInfo { uniqueId: string; + title: string; name: string; description: string; owner: HttpUser; diff --git a/FrontEnd/src/app/locales/en/translation.ts b/FrontEnd/src/app/locales/en/translation.ts index c7f33d1e..d88a3376 100644 --- a/FrontEnd/src/app/locales/en/translation.ts +++ b/FrontEnd/src/app/locales/en/translation.ts @@ -74,6 +74,7 @@ const translation: TranslationResource = { }, dialogChangeProperty: { title: "Change Timeline Properties", + titleField: "Title", visibility: "Visibility", description: "Description", }, diff --git a/FrontEnd/src/app/locales/scheme.ts b/FrontEnd/src/app/locales/scheme.ts index 9e3534ac..dcb478cc 100644 --- a/FrontEnd/src/app/locales/scheme.ts +++ b/FrontEnd/src/app/locales/scheme.ts @@ -65,6 +65,7 @@ export default interface TranslationResource { }; dialogChangeProperty: { title: string; + titleField: string; visibility: string; description: string; }; diff --git a/FrontEnd/src/app/locales/zh/translation.ts b/FrontEnd/src/app/locales/zh/translation.ts index df316366..71f0d9fc 100644 --- a/FrontEnd/src/app/locales/zh/translation.ts +++ b/FrontEnd/src/app/locales/zh/translation.ts @@ -70,6 +70,7 @@ const translation: TranslationResource = { }, dialogChangeProperty: { title: "修改时间线属性", + titleField: "标题", visibility: "可见性", description: "描述", }, diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx index d5c91622..0f792b53 100644 --- a/FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx +++ b/FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx @@ -76,6 +76,7 @@ export default function TimelinePageTemplate( open close={closeDialog} oldInfo={{ + title: timeline.title, visibility: timeline.visibility, description: timeline.description, }} diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx index 87638f31..223525f9 100644 --- a/FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx +++ b/FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx @@ -11,6 +11,7 @@ import OperationDialog, { } from "../common/OperationDialog"; export interface TimelinePropertyInfo { + title: string; visibility: TimelineVisibility; description: string; } @@ -36,6 +37,11 @@ const TimelinePropertyChangeDialog: React.FC title={"timeline.dialogChangeProperty.title"} titleColor="default" inputScheme={[ + { + type: "text", + label: "timeline.dialogChangeProperty.titleField", + initValue: props.oldInfo.title, + }, { type: "select", label: "timeline.dialogChangeProperty.visibility", @@ -55,8 +61,11 @@ const TimelinePropertyChangeDialog: React.FC ]} open={props.open} close={props.close} - onProcess={([newVisibility, newDescription]) => { + onProcess={([newTitle, newVisibility, newDescription]) => { const req: TimelineChangePropertyRequest = {}; + if (newTitle !== props.oldInfo.title) { + req.title = newTitle as string; + } if (newVisibility !== props.oldInfo.visibility) { req.visibility = newVisibility as TimelineVisibility; } diff --git a/FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx b/FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx index 2d787709..abc3d0c9 100644 --- a/FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx +++ b/FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx @@ -37,10 +37,11 @@ const TimelineInfoCard: React.FC = (props) => { toggleCollapse={toggleCollapse} >

- {timeline.name} + {timeline.title} + {timeline.name}

-
- +
+ {timeline.owner.nickname} @{timeline.owner.username} diff --git a/FrontEnd/src/app/views/user/UserInfoCard.tsx b/FrontEnd/src/app/views/user/UserInfoCard.tsx index 888fb18a..e4edd80d 100644 --- a/FrontEnd/src/app/views/user/UserInfoCard.tsx +++ b/FrontEnd/src/app/views/user/UserInfoCard.tsx @@ -35,8 +35,12 @@ const UserInfoCard: React.FC = (props) => { collapse={collapse} toggleCollapse={toggleCollapse} > -
- +

+ {timeline.title} + {timeline.name} +

+
+ {timeline.owner.nickname} @{timeline.owner.username} diff --git a/FrontEnd/webpack.config.dev.js b/FrontEnd/webpack.config.dev.js index 2e2959a3..75665431 100644 --- a/FrontEnd/webpack.config.dev.js +++ b/FrontEnd/webpack.config.dev.js @@ -6,6 +6,8 @@ const config = require("./webpack.common"); config.mode("development"); +config.target('web'); // Remove this after https://github.com/webpack/webpack-dev-server/issues/2758 is fixed. + config.module .rule("ts") .use("babel") @@ -44,9 +46,8 @@ config.devServer .contentBase(path.resolve(__dirname, "public/")) .port(3000) .historyApiFallback(true) - .hotOnly(true); + .hot(true); -config.plugin("hot").use(webpack.HotModuleReplacementPlugin); config.plugin("react-refresh").use(new ReactRefreshWebpackPlugin()); module.exports = config.toConfig(); -- cgit v1.2.3 From 457f4b2141d7380c0521fb2b6132f0bde0cf7315 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 3 Nov 2020 22:50:00 +0800 Subject: feat: Add timeline title to home page. --- FrontEnd/src/app/views/common/UserTimelineLogo.tsx | 2 +- FrontEnd/src/app/views/home/TimelineBoard.tsx | 9 +++++---- FrontEnd/src/app/views/home/home.sass | 21 +++++++++++++-------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/FrontEnd/src/app/views/common/UserTimelineLogo.tsx b/FrontEnd/src/app/views/common/UserTimelineLogo.tsx index 29f6a69f..19b9fee5 100644 --- a/FrontEnd/src/app/views/common/UserTimelineLogo.tsx +++ b/FrontEnd/src/app/views/common/UserTimelineLogo.tsx @@ -15,7 +15,7 @@ const UserTimelineLogo: React.FC = (props) => { - + diff --git a/FrontEnd/src/app/views/home/TimelineBoard.tsx b/FrontEnd/src/app/views/home/TimelineBoard.tsx index a3d176e1..c2a7e5fe 100644 --- a/FrontEnd/src/app/views/home/TimelineBoard.tsx +++ b/FrontEnd/src/app/views/home/TimelineBoard.tsx @@ -48,20 +48,21 @@ const TimelineBoard: React.FC = (props) => { ); } else { return timelines.map((timeline) => { - const { name } = timeline; + const { name, title } = timeline; const isPersonal = name.startsWith("@"); const url = isPersonal ? `/users/${timeline.owner.username}` : `/timelines/${name}`; return ( -
+ {isPersonal ? ( ) : ( )} - {name} -
+ {title} + {name} + ); }); } diff --git a/FrontEnd/src/app/views/home/home.sass b/FrontEnd/src/app/views/home/home.sass index 28a2e5f3..0c01019b 100644 --- a/FrontEnd/src/app/views/home/home.sass +++ b/FrontEnd/src/app/views/home/home.sass @@ -1,13 +1,18 @@ -.timeline-board-item - font-size: 1.1em - @extend .my-2 - .icon - height: 1.3em - @extend .mr-2 - .timeline-board @extend .cru-card @extend .d-flex @extend .flex-column - @extend .p-3 + @extend .py-3 min-height: 200px + +.timeline-board-item + font-size: 1.1em + @extend .px-3 + @extend .py-2 + transition: background 0.3s + .icon + height: 1.3em + color: black + @extend .mr-2 + &:hover + background: $gray-300 -- cgit v1.2.3 From 82b366ea89342593ec1bcde3441c0f2f06eb4649 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 3 Nov 2020 22:53:46 +0800 Subject: feat: Makes card beautiful. --- FrontEnd/src/app/index.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FrontEnd/src/app/index.sass b/FrontEnd/src/app/index.sass index 8e87e4ac..0202e633 100644 --- a/FrontEnd/src/app/index.sass +++ b/FrontEnd/src/app/index.sass @@ -50,9 +50,9 @@ textarea .cru-card @extend .shadow @extend .border - @extend .border-primary @extend .rounded @extend .bg-light + border-color: $gray-200 .full-viewport-center-child position: fixed -- cgit v1.2.3