diff --git a/public/static/css/white.css b/public/static/css/white.css index a2b13b8..b47e658 100644 --- a/public/static/css/white.css +++ b/public/static/css/white.css @@ -84,7 +84,7 @@ } .theme-default #breadcrumb { - padding: 1rem; + padding: 1rem 0; width: 100%; } @@ -119,14 +119,13 @@ .theme-default .select-btn { width: 8rem; display: inline-block; - margin: 0 1rem 0 0; } .theme-default #op-bar { } .theme-default #browser-op { - padding: 1rem; + margin-bottom: 1rem; } .theme-default #browser-op button { @@ -144,10 +143,16 @@ .theme-default #browser .item-op { line-height: 4rem; - padding: 1rem; + padding: 1rem 0; text-align: right; } +.theme-default #browser .item-info { + padding: 1rem; + font-size: 1.2rem; + border: dashed 1px #7f8c8d; +} + .theme-default #browser .error { line-height: 4rem; border: dashed 1px #e74c3c; @@ -171,7 +176,7 @@ } .theme-default #upload-op { - padding: 1rem; + padding: 0; } .theme-default .red-btn { @@ -365,10 +370,10 @@ background-color: #ecf0f6; } -#item-list .item-name-vertical { +.item-name-vertical { width: 14rem; } -#item-list .item-name-horizontal { +.item-name-horizontal { width: 48rem; } diff --git a/src/client/web/src/components/pane_settings.tsx b/src/client/web/src/components/pane_settings.tsx index 6d3b096..0f3e310 100644 --- a/src/client/web/src/components/pane_settings.tsx +++ b/src/client/web/src/components/pane_settings.tsx @@ -143,9 +143,7 @@ export class PaneSettings extends React.Component {
-
- {this.props.msg.pkg.get("user.profile")} -
+
{this.props.msg.pkg.get("user.profile")}
{
{this.props.msg.pkg.get("settings.chooseLan")}
, - - - - - , ])} childrenStyles={List([{}, { justifyContent: "flex-end" }])} /> +
+ + +
diff --git a/src/client/web/src/components/panel_files.tsx b/src/client/web/src/components/panel_files.tsx index 33165d4..50b6014 100644 --- a/src/client/web/src/components/panel_files.tsx +++ b/src/client/web/src/components/panel_files.tsx @@ -13,8 +13,10 @@ import { ICoreState, MsgProps, UIProps } from "./core_state"; import { LoginProps } from "./pane_login"; import { MetadataResp, roleVisitor, roleAdmin } from "../client"; import { Flexbox } from "./layout/flexbox"; +import { Container } from "./layout/container"; import { Up } from "../worker/upload_mgr"; import { UploadEntry, UploadState } from "../worker/interface"; +import { getIcon } from "./visual/icons"; export interface Item { name: string; @@ -391,47 +393,38 @@ export class FilesPanel extends React.Component { - , + , - - this.gotoChild(item.name)} - > - {item.name} + + this.gotoChild(item.name)} + > + {item.name} + +
+ + {item.modTime.slice(0, item.modTime.indexOf("T"))} -
- - {item.modTime.slice(0, item.modTime.indexOf("T"))} - -
- , - ])} - childrenStyles={List([ - { flex: "0 0 auto" }, - { flex: "0 0 auto" }, - ])} - /> - , - - -
+
, + ])} + childrenStyles={List([ + { flex: "0 0 auto" }, + { flex: "0 0 auto" }, + ])} + />, + + this.select(item.name)} className="float-l"> {isSelected - ? this.props.msg.pkg.get("browser.deselect") - : this.props.msg.pkg.get("browser.select")} - + ? getIcon("RiCheckboxFill", "1.8rem", "cyan0") + : getIcon("RiCheckboxBlankFill", "1.8rem", "grey1")} + , ])} childrenStyles={List([ @@ -446,10 +439,7 @@ export class FilesPanel extends React.Component { children={List([ , + , { ])} />, - - + {getIcon("RiInformationFill", "1.8rem", "grey1")} + - + ? getIcon("RiCheckboxFill", "1.8rem", "cyan0") + : getIcon("RiCheckboxBlankFill", "1.8rem", "grey1")} +
, ])} childrenStyles={List([ @@ -511,8 +496,8 @@ export class FilesPanel extends React.Component { - SHA1: - {` ${item.sha1}`} + {`SHA1: `} +
, , ])} - className={`grey2-bg grey3-font detail margin-r-m`} + className={`item-info`} childrenStyles={List([{}, { justifyContent: "flex-end" }])} />
@@ -542,9 +527,11 @@ export class FilesPanel extends React.Component { const itemListPane = (
-
{ops}
+
+ {ops} +
-
+
{ /> {itemList} -
+
); diff --git a/src/client/web/src/components/panel_sharings.tsx b/src/client/web/src/components/panel_sharings.tsx index 1ecdd29..a44fe65 100644 --- a/src/client/web/src/components/panel_sharings.tsx +++ b/src/client/web/src/components/panel_sharings.tsx @@ -11,6 +11,7 @@ import { ICoreState, MsgProps, UIProps } from "./core_state"; import { LoginProps } from "./pane_login"; import { Flexbox } from "./layout/flexbox"; import { Container } from "./layout/container"; +import { getIcon } from "./visual/icons"; export interface SharingsProps { sharings: List; @@ -94,30 +95,34 @@ export class SharingsPanel extends React.Component { size="3rem" className="purple0-font margin-r-m" />, - {dirPath}, + {dirPath}, ])} />, + { + this.deleteSharing(dirPath); + }} + className="margin-r-m" + > + {getIcon("RiDeleteBin2Fill", "1.8rem", "red0")} + , + - , ])} - childrenStyles={List([{}, { justifyContent: "flex-end" }])} + childrenStyles={List([ + { alignItems: "center" }, + { alignItems: "center", justifyContent: "flex-end" }, + { alignItems: "center", justifyContent: "flex-end" }, + ])} />
); diff --git a/src/client/web/src/components/visual/icons.tsx b/src/client/web/src/components/visual/icons.tsx index 3b1e0a4..1540a5f 100644 --- a/src/client/web/src/components/visual/icons.tsx +++ b/src/client/web/src/components/visual/icons.tsx @@ -7,6 +7,12 @@ import { RiShareBoxLine } from "@react-icons/all-files/ri/RiShareBoxLine"; import { RiUploadCloudFill } from "@react-icons/all-files/ri/RiUploadCloudFill"; import { RiSettings3Fill } from "@react-icons/all-files/ri/RiSettings3Fill"; import { RiWindowFill } from "@react-icons/all-files/ri/RiWindowFill"; +import { RiCheckboxBlankFill } from "@react-icons/all-files/ri/RiCheckboxBlankFill"; +import { RiCheckboxFill } from "@react-icons/all-files/ri/RiCheckboxFill"; +import { RiMenuFill } from "@react-icons/all-files/ri/RiMenuFill"; +import { RiInformationFill } from "@react-icons/all-files/ri/RiInformationFill"; +import { RiDeleteBin2Fill } from "@react-icons/all-files/ri/RiDeleteBin2Fill"; + import { colorClass } from "./colors"; @@ -22,6 +28,11 @@ const icons = Map({ RiUploadCloudFill: RiUploadCloudFill, RiSettings3Fill: RiSettings3Fill, RiWindowFill: RiWindowFill, + RiCheckboxBlankFill: RiCheckboxBlankFill, + RiCheckboxFill: RiCheckboxFill, + RiMenuFill: RiMenuFill, + RiInformationFill: RiInformationFill, + RiDeleteBin2Fill: RiDeleteBin2Fill, }); export function getIconWithProps(