mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-08 10:22:46 +00:00
12.0 change dropdown menu style (#6227)
* 01 remove 200px dropdown menu * 02 change check mark icon className * 03 change dropdown padding * 04 change menu min width 200px * 05 change sort repos dropdown
This commit is contained in:
@@ -91,7 +91,7 @@ class CreateTagDialog extends React.Component {
|
|||||||
<input name="color" type="radio" value={item} className="colorinput-input" defaultChecked onClick={this.selectTagcolor}></input> :
|
<input name="color" type="radio" value={item} className="colorinput-input" defaultChecked onClick={this.selectTagcolor}></input> :
|
||||||
<input name="color" type="radio" value={item} className="colorinput-input" onClick={this.selectTagcolor}></input>}
|
<input name="color" type="radio" value={item} className="colorinput-input" onClick={this.selectTagcolor}></input>}
|
||||||
<span className="colorinput-color rounded-circle d-flex align-items-center justify-content-center" style={{backgroundColor:item}}>
|
<span className="colorinput-color rounded-circle d-flex align-items-center justify-content-center" style={{backgroundColor:item}}>
|
||||||
<i className="fas fa-check color-selected"></i>
|
<i className="sf2-icon-tick color-selected"></i>
|
||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -91,7 +91,7 @@ class TagItem extends React.Component {
|
|||||||
<span className="tag-color w-4 h-4 rounded-circle" style={{backgroundColor: repoTag.color}}></span>
|
<span className="tag-color w-4 h-4 rounded-circle" style={{backgroundColor: repoTag.color}}></span>
|
||||||
<span className="tag-name mx-2">{repoTag.name}</span>
|
<span className="tag-name mx-2">{repoTag.name}</span>
|
||||||
</div>
|
</div>
|
||||||
{isTagSelected && <i className="fas fa-check tag-selected-icon"></i>}
|
{isTagSelected && <i className="sf2-icon-tick tag-selected-icon"></i>}
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -88,7 +88,7 @@ class TagColor extends React.Component {
|
|||||||
<label className="colorinput">
|
<label className="colorinput">
|
||||||
<input name="color" type="radio" value={item} className="colorinput-input" defaultChecked={item == tagColor} onClick={this.selectTagColor} />
|
<input name="color" type="radio" value={item} className="colorinput-input" defaultChecked={item == tagColor} onClick={this.selectTagColor} />
|
||||||
<span className="colorinput-color rounded-circle d-flex align-items-center justify-content-center" style={{backgroundColor: item}}>
|
<span className="colorinput-color rounded-circle d-flex align-items-center justify-content-center" style={{backgroundColor: item}}>
|
||||||
<i className="fas fa-check color-selected"></i>
|
<i className="sf2-icon-tick color-selected"></i>
|
||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -66,7 +66,7 @@ class TagItem extends React.Component {
|
|||||||
<div className="tag-item d-flex align-items-center" style={{backgroundColor: repoTag.color}}>
|
<div className="tag-item d-flex align-items-center" style={{backgroundColor: repoTag.color}}>
|
||||||
<span className="tag-name">{repoTag.name}</span>
|
<span className="tag-name">{repoTag.name}</span>
|
||||||
</div>
|
</div>
|
||||||
{isTagSelected && <i className="fas fa-check tag-selected-icon"></i>}
|
{isTagSelected && <i className="sf2-icon-tick tag-selected-icon"></i>}
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -80,7 +80,7 @@ export default class VirtualTagColor extends React.Component {
|
|||||||
<label className="colorinput">
|
<label className="colorinput">
|
||||||
<input name="color" type="radio" value={item} className="colorinput-input" defaultChecked={item == tagColor} onClick={this.selectTagColor} />
|
<input name="color" type="radio" value={item} className="colorinput-input" defaultChecked={item == tagColor} onClick={this.selectTagColor} />
|
||||||
<span className="colorinput-color rounded-circle d-flex align-items-center justify-content-center" style={{backgroundColor: item}}>
|
<span className="colorinput-color rounded-circle d-flex align-items-center justify-content-center" style={{backgroundColor: item}}>
|
||||||
<i className="fas fa-check color-selected"></i>
|
<i className="sf2-icon-tick color-selected"></i>
|
||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
66
frontend/src/components/repos-sort-menu.js
Normal file
66
frontend/src/components/repos-sort-menu.js
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap';
|
||||||
|
import { gettext } from '../utils/constants';
|
||||||
|
|
||||||
|
const propTypes = {
|
||||||
|
sortOptions: PropTypes.array,
|
||||||
|
onSelectSortOption: PropTypes.func.isRequired
|
||||||
|
};
|
||||||
|
|
||||||
|
class ReposSortMenu extends React.Component {
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
isDropdownMenuOpen: false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleDropdownMenu = () => {
|
||||||
|
this.setState({
|
||||||
|
isDropdownMenuOpen: !this.state.isDropdownMenuOpen
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { isDropdownMenuOpen } = this.state;
|
||||||
|
const { sortOptions } = this.props;
|
||||||
|
return (
|
||||||
|
<Dropdown
|
||||||
|
isOpen={isDropdownMenuOpen}
|
||||||
|
toggle={this.toggleDropdownMenu}
|
||||||
|
>
|
||||||
|
<DropdownToggle
|
||||||
|
tag="div"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
title={gettext('Switch view mode')}
|
||||||
|
aria-label={gettext('Switch view mode')}
|
||||||
|
aria-expanded={isDropdownMenuOpen}
|
||||||
|
>
|
||||||
|
<span className="cur-view-path-btn px-1" role="button">
|
||||||
|
<i className="sf3-font-sort2 sf3-font"></i>
|
||||||
|
<i className="sf3-font-down sf3-font"></i>
|
||||||
|
</span>
|
||||||
|
</DropdownToggle>
|
||||||
|
<DropdownMenu right={true} className="mt-1">
|
||||||
|
{sortOptions.map((item, index) => {
|
||||||
|
return (
|
||||||
|
<DropdownItem key={index} onClick={this.props.onSelectSortOption.bind(this, item)}>
|
||||||
|
<div className="d-flex justify-content-between align-items-center">
|
||||||
|
<span className="mr-8">{item.text}</span>
|
||||||
|
<span>{item.isSelected && <i className="sf2-icon-tick"></i>}</span>
|
||||||
|
</div>
|
||||||
|
</DropdownItem>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</DropdownMenu>
|
||||||
|
</Dropdown>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ReposSortMenu.propTypes = propTypes;
|
||||||
|
|
||||||
|
export default ReposSortMenu;
|
@@ -85,7 +85,7 @@ class Selector extends Component {
|
|||||||
return (
|
return (
|
||||||
<li key={index} className="option-item h-6 py-1 px-3 d-flex justify-content-between align-items-center" onClick={(e) => {this.selectItem(e, item);}}>
|
<li key={index} className="option-item h-6 py-1 px-3 d-flex justify-content-between align-items-center" onClick={(e) => {this.selectItem(e, item);}}>
|
||||||
<span className="option-item-text flex-shrink-0 mr-3">{item.text}</span>
|
<span className="option-item-text flex-shrink-0 mr-3">{item.text}</span>
|
||||||
<i className={`sf2-icon-tick text-gray font-weight-bold ${item.isSelected ? '' : 'invisible'}`}></i>
|
<i className={`sf2-icon-tick ${item.isSelected ? '' : 'invisible'}`}></i>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
@@ -236,7 +236,7 @@ class DirOperationToolbar extends React.Component {
|
|||||||
{this.props.children}
|
{this.props.children}
|
||||||
<i className="sf3-font-drop-down sf3-font ml-1 path-item-dropdown-toggle"></i>
|
<i className="sf3-font-drop-down sf3-font ml-1 path-item-dropdown-toggle"></i>
|
||||||
</DropdownToggle>
|
</DropdownToggle>
|
||||||
<DropdownMenu onMouseMove={this.onDropDownMouseMove} style={{'width': '200px'}}>
|
<DropdownMenu onMouseMove={this.onDropDownMouseMove}>
|
||||||
{opList.map((item, index)=> {
|
{opList.map((item, index)=> {
|
||||||
if (item == 'Divider') {
|
if (item == 'Divider') {
|
||||||
return <DropdownItem key={index} divider />;
|
return <DropdownItem key={index} divider />;
|
||||||
@@ -252,7 +252,7 @@ class DirOperationToolbar extends React.Component {
|
|||||||
>
|
>
|
||||||
<DropdownToggle
|
<DropdownToggle
|
||||||
caret
|
caret
|
||||||
className="dropdown-item font-weight-normal rounded-0 d-flex align-items-center pr-2"
|
className="dropdown-item font-weight-normal rounded-0 d-flex align-items-center"
|
||||||
onMouseEnter={this.toggleSubMenuShown.bind(this, item)}
|
onMouseEnter={this.toggleSubMenuShown.bind(this, item)}
|
||||||
>
|
>
|
||||||
<i className={`sf3-font-${item.icon} sf3-font mr-2 dropdown-item-icon`}></i>
|
<i className={`sf3-font-${item.icon} sf3-font mr-2 dropdown-item-icon`}></i>
|
||||||
|
@@ -46,7 +46,7 @@ class SingleDropdownToolbar extends React.Component {
|
|||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
>
|
>
|
||||||
</DropdownToggle>
|
</DropdownToggle>
|
||||||
<DropdownMenu style={{'width': '200px'}}>
|
<DropdownMenu>
|
||||||
{opList.map((item, index)=> {
|
{opList.map((item, index)=> {
|
||||||
if (item == 'Divider') {
|
if (item == 'Divider') {
|
||||||
return <DropdownItem key={index} divider />;
|
return <DropdownItem key={index} divider />;
|
||||||
|
@@ -158,7 +158,7 @@ class ViewFileToolbar extends React.Component {
|
|||||||
{this.props.children}
|
{this.props.children}
|
||||||
<i className="sf3-font-drop-down sf3-font ml-1 path-item-dropdown-toggle"></i>
|
<i className="sf3-font-drop-down sf3-font ml-1 path-item-dropdown-toggle"></i>
|
||||||
</DropdownToggle>
|
</DropdownToggle>
|
||||||
<DropdownMenu onMouseMove={this.onDropDownMouseMove} style={{'width': '200px'}}>
|
<DropdownMenu onMouseMove={this.onDropDownMouseMove}>
|
||||||
{opList.map((item, index)=> {
|
{opList.map((item, index)=> {
|
||||||
if (item == 'Divider') {
|
if (item == 'Divider') {
|
||||||
return <DropdownItem key={index} divider />;
|
return <DropdownItem key={index} divider />;
|
||||||
@@ -174,7 +174,7 @@ class ViewFileToolbar extends React.Component {
|
|||||||
>
|
>
|
||||||
<DropdownToggle
|
<DropdownToggle
|
||||||
caret
|
caret
|
||||||
className="dropdown-item font-weight-normal rounded-0 d-flex align-items-center pr-2"
|
className="dropdown-item font-weight-normal rounded-0 d-flex align-items-center"
|
||||||
onMouseEnter={this.toggleSubMenuShown.bind(this, item)}
|
onMouseEnter={this.toggleSubMenuShown.bind(this, item)}
|
||||||
>
|
>
|
||||||
<i className={`sf3-font-${item.icon} sf3-font mr-2 dropdown-item-icon`}></i>
|
<i className={`sf3-font-${item.icon} sf3-font mr-2 dropdown-item-icon`}></i>
|
||||||
|
@@ -58,7 +58,7 @@ class ViewModes extends React.Component {
|
|||||||
<span>{item.text}</span>
|
<span>{item.text}</span>
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
{currentViewMode === item.value && <i className="fas fa-check color-selected"></i>}
|
{currentViewMode === item.value && <i className="sf2-icon-tick"></i>}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</DropdownItem>
|
</DropdownItem>
|
||||||
|
@@ -37,10 +37,6 @@
|
|||||||
margin-right: 0.25rem;
|
margin-right: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.history-body .dropdown-menu {
|
|
||||||
min-width: 8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.history-body .dropdown-menu a {
|
.history-body .dropdown-menu a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #6e7687;
|
color: #6e7687;
|
||||||
|
@@ -153,10 +153,6 @@
|
|||||||
color:#fff;
|
color:#fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
min-width: 8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.parent-path {
|
.parent-path {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
@@ -177,10 +177,6 @@
|
|||||||
color:#fff;
|
color:#fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
min-width: 8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.parent-path {
|
.parent-path {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
@@ -39,20 +39,6 @@
|
|||||||
margin-right: -4px;
|
margin-right: -4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#cur-view-change-mode-dropdown .dropdown-item {
|
|
||||||
padding: 4px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cur-view-change-mode-dropdown .dropdown-item .fas,
|
|
||||||
#cur-view-change-mode-dropdown .dropdown-item .sf3-font {
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cur-view-change-mode-dropdown .dropdown-item:hover .fas,
|
|
||||||
#cur-view-change-mode-dropdown .dropdown-item:hover .sf3-font {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* begin common-toolbar */
|
/* begin common-toolbar */
|
||||||
.common-toolbar {
|
.common-toolbar {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@@ -46,7 +46,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.notification-header-close .dropdown-menu {
|
.notification-header-close .dropdown-menu {
|
||||||
min-width: 8rem;
|
|
||||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -8,8 +8,8 @@ import toaster from '../../components/toast';
|
|||||||
import Repo from '../../models/repo';
|
import Repo from '../../models/repo';
|
||||||
import Group from '../../models/group';
|
import Group from '../../models/group';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
import Selector from '../../components/single-selector';
|
|
||||||
import ViewModes from '../../components/view-modes';
|
import ViewModes from '../../components/view-modes';
|
||||||
|
import ReposSortMenu from '../../components/repos-sort-menu';
|
||||||
import TopToolbar from '../../components/toolbar/top-toolbar';
|
import TopToolbar from '../../components/toolbar/top-toolbar';
|
||||||
import SingleDropdownToolbar from '../../components/toolbar/single-dropdown-toolbar';
|
import SingleDropdownToolbar from '../../components/toolbar/single-dropdown-toolbar';
|
||||||
import SortOptionsDialog from '../../components/dialog/sort-options';
|
import SortOptionsDialog from '../../components/dialog/sort-options';
|
||||||
@@ -237,14 +237,6 @@ class Libraries extends Component {
|
|||||||
isSelected: item.value == `${sortBy}-${sortOrder}`
|
isSelected: item.value == `${sortBy}-${sortOrder}`
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
const customSelectorToggle = (
|
|
||||||
<span className="cur-view-path-btn px-1" role="button">
|
|
||||||
<i className="sf3-font-sort2 sf3-font"></i>
|
|
||||||
<i className="sf3-font-down sf3-font"></i>
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<TopToolbar
|
<TopToolbar
|
||||||
@@ -258,15 +250,10 @@ class Libraries extends Component {
|
|||||||
<h3 className="sf-heading m-0">{gettext('Files')}</h3>
|
<h3 className="sf-heading m-0">{gettext('Files')}</h3>
|
||||||
{isDesktop &&
|
{isDesktop &&
|
||||||
<div className="d-flex align-items-center">
|
<div className="d-flex align-items-center">
|
||||||
<div className="view-modes mr-2">
|
<div className="mr-2">
|
||||||
<ViewModes currentViewMode={currentViewMode} switchViewMode={this.switchViewMode} />
|
<ViewModes currentViewMode={currentViewMode} switchViewMode={this.switchViewMode} />
|
||||||
</div>
|
</div>
|
||||||
<Selector
|
<ReposSortMenu sortOptions={sortOptions} onSelectSortOption={this.onSelectSortOption}/>
|
||||||
customSelectorToggle={customSelectorToggle}
|
|
||||||
options={sortOptions}
|
|
||||||
selectOption={this.onSelectSortOption}
|
|
||||||
menuCustomClass='repos-sort-menu dropdown-menu-right'
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
@@ -269,10 +269,6 @@
|
|||||||
min-height: 22.5px;
|
min-height: 22.5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sdoc-file-history-versions .dropdown-menu {
|
|
||||||
min-width: 8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.history-content .main-panel {
|
.history-content .main-panel {
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
|
@@ -249,7 +249,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.view-operation-dropdown-menu .sf3-font {
|
.view-operation-dropdown-menu .sf3-font {
|
||||||
font-size: 10px;
|
font-size: 14px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,7 +306,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.view-structure .folders-dropdown .dropdown-menu {
|
.view-structure .folders-dropdown .dropdown-menu {
|
||||||
max-width: 180px;
|
|
||||||
max-height: 300px;
|
max-height: 300px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
@@ -129,24 +129,29 @@ a, a:hover { color: #ec8000; }
|
|||||||
.no-deco:focus {
|
.no-deco:focus {
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ellipsis {
|
.ellipsis {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.op-target {
|
.op-target {
|
||||||
color: #ec8000;
|
color: #ec8000;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-zero {
|
.left-zero {
|
||||||
left: 0px !important;
|
left: 0px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-heading {
|
.sf-heading {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
color: #212529;
|
color: #212529;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cur-view-path .sf-heading {
|
.cur-view-path .sf-heading {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
@@ -178,6 +183,7 @@ a, a:hover { color: #ec8000; }
|
|||||||
.pl10 {
|
.pl10 {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cursor-pointer {
|
.cursor-pointer {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
@@ -280,21 +286,25 @@ a, a:hover { color: #ec8000; }
|
|||||||
z-index:100;
|
z-index:100;
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inner-caret {
|
.inner-caret {
|
||||||
border-top-color:#fff;
|
border-top-color:#fff;
|
||||||
position:relative;
|
position:relative;
|
||||||
top:-15px;
|
top:-15px;
|
||||||
left:-14px;
|
left:-14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.up-outer-caret,
|
.up-outer-caret,
|
||||||
.up-outer-caret .inner-caret {
|
.up-outer-caret .inner-caret {
|
||||||
border-width:0 10px 10px;
|
border-width:0 10px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.up-outer-caret .inner-caret {
|
.up-outer-caret .inner-caret {
|
||||||
border-bottom-color:#fff;
|
border-bottom-color:#fff;
|
||||||
top:1px;
|
top:1px;
|
||||||
left:-10px;
|
left:-10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.up-outer-caret {
|
.up-outer-caret {
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:-11px;
|
top:-11px;
|
||||||
@@ -311,6 +321,7 @@ a, a:hover { color: #ec8000; }
|
|||||||
transform: rotate(360deg);
|
transform: rotate(360deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes loading {
|
@-webkit-keyframes loading {
|
||||||
0% {
|
0% {
|
||||||
-webkit-transform: rotate(0deg);
|
-webkit-transform: rotate(0deg);
|
||||||
@@ -321,6 +332,7 @@ a, a:hover { color: #ec8000; }
|
|||||||
transform: rotate(360deg);
|
transform: rotate(360deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes loading {
|
@keyframes loading {
|
||||||
0% {
|
0% {
|
||||||
-moz-transform: rotate(0deg);
|
-moz-transform: rotate(0deg);
|
||||||
@@ -335,6 +347,7 @@ a, a:hover { color: #ec8000; }
|
|||||||
transform: rotate(360deg);
|
transform: rotate(360deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.loading-icon {
|
.loading-icon {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
width:26px;
|
width:26px;
|
||||||
@@ -346,6 +359,7 @@ a, a:hover { color: #ec8000; }
|
|||||||
-webkit-animation:loading 0.9s infinite linear;
|
-webkit-animation:loading 0.9s infinite linear;
|
||||||
animation:loading 0.9s infinite linear;
|
animation:loading 0.9s infinite linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
.loading-tip {
|
.loading-tip {
|
||||||
display:block;
|
display:block;
|
||||||
margin:1em auto;
|
margin:1em auto;
|
||||||
@@ -544,6 +558,7 @@ a, a:hover { color: #ec8000; }
|
|||||||
.nav .nav-item {
|
.nav .nav-item {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav .nav-item .nav-link {
|
.nav .nav-item .nav-link {
|
||||||
padding: 0.5rem 0;
|
padding: 0.5rem 0;
|
||||||
margin-right: 30px;
|
margin-right: 30px;
|
||||||
@@ -578,9 +593,11 @@ a, a:hover { color: #ec8000; }
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cur-view-path.tab-nav-container {
|
.cur-view-path.tab-nav-container {
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cur-view-path.tab-nav-container .nav .nav-item .nav-link {
|
.cur-view-path.tab-nav-container .nav .nav-item .nav-link {
|
||||||
justify-content: center; /* make short word like 'All' in the center */
|
justify-content: center; /* make short word like 'All' in the center */
|
||||||
margin: 0 0.75rem;
|
margin: 0 0.75rem;
|
||||||
@@ -815,6 +832,7 @@ a, a:hover { color: #ec8000; }
|
|||||||
.sf-popover-container {
|
.sf-popover-container {
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-popover {
|
.sf-popover {
|
||||||
width:240px;
|
width:240px;
|
||||||
background:#fff;
|
background:#fff;
|
||||||
@@ -824,29 +842,35 @@ a, a:hover { color: #ec8000; }
|
|||||||
position:absolute;
|
position:absolute;
|
||||||
z-index: 20;
|
z-index: 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-popover-hd {
|
.sf-popover-hd {
|
||||||
padding:5px 0 3px;
|
padding:5px 0 3px;
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-popover-title {
|
.sf-popover-title {
|
||||||
text-align:center;
|
text-align:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-popover-close {
|
.sf-popover-close {
|
||||||
font-size:16px;
|
font-size:16px;
|
||||||
color:#b9b9b9;
|
color:#b9b9b9;
|
||||||
margin:4px 0 0;
|
margin:4px 0 0;
|
||||||
float:right;
|
float:right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-popover-con {
|
.sf-popover-con {
|
||||||
padding:0 10px;
|
padding:0 10px;
|
||||||
overflow:auto;
|
overflow:auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-popover-list {
|
.sf-popover-list {
|
||||||
border-top: 1px solid #e3e3e5;
|
border-top: 1px solid #e3e3e5;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.sf-popover-item {
|
a.sf-popover-item {
|
||||||
display:block;
|
display:block;
|
||||||
color:#444;
|
color:#444;
|
||||||
@@ -856,6 +880,7 @@ a.sf-popover-item {
|
|||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
margin: 0px -10px;
|
margin: 0px -10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.sf-popover-item:hover {
|
a.sf-popover-item:hover {
|
||||||
background-color: #f8f8f8;
|
background-color: #f8f8f8;
|
||||||
}
|
}
|
||||||
@@ -864,9 +889,11 @@ a.sf-popover-item:hover {
|
|||||||
.side-panel-top {
|
.side-panel-top {
|
||||||
padding: .5rem 1rem;
|
padding: .5rem 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.side-panel-close {
|
.side-panel-close {
|
||||||
margin:10px 0 0 auto;
|
margin:10px 0 0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-top {
|
.panel-top {
|
||||||
padding:.5rem 1rem;
|
padding:.5rem 1rem;
|
||||||
background:#f4f4f7;
|
background:#f4f4f7;
|
||||||
@@ -888,15 +915,18 @@ a.sf-popover-item:hover {
|
|||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.path-split {
|
.path-split {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
color: #818a91;
|
color: #818a91;
|
||||||
}
|
}
|
||||||
|
|
||||||
.path-link {
|
.path-link {
|
||||||
color: #eb8205 !important;
|
color: #eb8205 !important;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.path-link:hover {
|
.path-link:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-decoration: underline !important;
|
text-decoration: underline !important;
|
||||||
@@ -1003,12 +1033,14 @@ table td {
|
|||||||
a.table-sort-op {
|
a.table-sort-op {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width:767px) {
|
@media (max-width:767px) {
|
||||||
a.table-sort-op {
|
a.table-sort-op {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
a.table-sort-op:hover {
|
a.table-sort-op:hover {
|
||||||
outline: none;
|
outline: none;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@@ -1020,15 +1052,21 @@ a.table-sort-op:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
min-width: 8rem;
|
min-width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item {
|
.dropdown-item {
|
||||||
|
height: 32px;
|
||||||
|
padding: 0.25rem 1rem;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #212529;
|
color: #212529;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dropdown-item .sf3-font {
|
||||||
|
color: #8c8c8c;
|
||||||
|
}
|
||||||
|
|
||||||
.btn-secondary.dropdown-toggle.dropdown-item {
|
.btn-secondary.dropdown-toggle.dropdown-item {
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
}
|
}
|
||||||
@@ -1038,16 +1076,8 @@ a.table-sort-op:hover {
|
|||||||
background-color: #20a0ff;
|
background-color: #20a0ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item-icon,
|
.show>.btn-secondary.dropdown-toggle.dropdown-item .dropdown-item-icon,
|
||||||
.btn .dropdown-item-icon {
|
.dropdown-item:hover .sf3-font,
|
||||||
color: #444;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.show>.btn-secondary.dropdown-toggle.dropdown-item .dropdown-item-icon {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-item:hover .dropdown-item-icon,
|
.dropdown-item:hover .dropdown-item-icon,
|
||||||
.dropdown-item:hover .btn .dropdown-item-icon,
|
.dropdown-item:hover .btn .dropdown-item-icon,
|
||||||
.dropdown-item:focus .dropdown-item-icon,
|
.dropdown-item:focus .dropdown-item-icon,
|
||||||
@@ -1064,15 +1094,18 @@ a.table-sort-op:hover {
|
|||||||
background-color: #fafafa;
|
background-color: #fafafa;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
.empty-tip {
|
.empty-tip {
|
||||||
padding: 30px 80px;
|
padding: 30px 80px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-items-img-tip {
|
.no-items-img-tip {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.empty-tip h2 {
|
.empty-tip h2 {
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -1277,12 +1310,14 @@ a.table-sort-op:hover {
|
|||||||
.seafile-md-viewer-content .article {
|
.seafile-md-viewer-content .article {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-md-viewer-content {
|
.seafile-md-viewer-content {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
padding: 70px 75px;
|
padding: 70px 75px;
|
||||||
border:1px solid #e6e6dd;
|
border:1px solid #e6e6dd;
|
||||||
min-height: calc(100% - 60px);
|
min-height: calc(100% - 60px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-md-viewer-outline-heading2,
|
.seafile-md-viewer-outline-heading2,
|
||||||
.seafile-md-viewer-outline-heading3 {
|
.seafile-md-viewer-outline-heading3 {
|
||||||
margin-left: .75rem;
|
margin-left: .75rem;
|
||||||
@@ -1293,13 +1328,16 @@ a.table-sort-op:hover {
|
|||||||
text-overflow:ellipsis;
|
text-overflow:ellipsis;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-md-viewer-outline-heading3 {
|
.seafile-md-viewer-outline-heading3 {
|
||||||
margin-left: 2rem;
|
margin-left: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-md-viewer-outline-heading2:hover,
|
.seafile-md-viewer-outline-heading2:hover,
|
||||||
.seafile-md-viewer-outline-heading3:hover {
|
.seafile-md-viewer-outline-heading3:hover {
|
||||||
color: #eb8205;
|
color: #eb8205;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-markdown-outline {
|
.seafile-markdown-outline {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
@@ -1309,13 +1347,16 @@ a.table-sort-op:hover {
|
|||||||
overflow: auto;
|
overflow: auto;
|
||||||
height: 80%;
|
height: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-editor-outline {
|
.seafile-editor-outline {
|
||||||
border-left: 1px solid #ddd;
|
border-left: 1px solid #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-markdown-outline .active {
|
.seafile-markdown-outline .active {
|
||||||
color: #eb8205;
|
color: #eb8205;
|
||||||
border-left: 1px solid #eb8205;
|
border-left: 1px solid #eb8205;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-markdown-outline .outline-h2,
|
.seafile-markdown-outline .outline-h2,
|
||||||
.seafile-markdown-outline .outline-h3 {
|
.seafile-markdown-outline .outline-h3 {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
@@ -1325,9 +1366,11 @@ a.table-sort-op:hover {
|
|||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-markdown-outline .outline-h2 {
|
.seafile-markdown-outline .outline-h2 {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seafile-markdown-outline .outline-h3 {
|
.seafile-markdown-outline .outline-h3 {
|
||||||
padding-left: 40px;
|
padding-left: 40px;
|
||||||
}
|
}
|
||||||
@@ -1360,8 +1403,5 @@ a.table-sort-op:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.word-break-all {
|
.word-break-all {
|
||||||
/* overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap; */
|
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user