mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-17 22:03:09 +00:00
TSK-1359, TSK-1357, TSK-1354, TSK-1355: Small fixes (#3084)
Signed-off-by: Alexander Platov <sas_lord@mail.ru>
This commit is contained in:
parent
60702a48d2
commit
caacfd417b
packages/theme/styles
plugins
tracker-assets/assets
tracker-resources/src/components/issues/edit
workbench-resources/src/components
@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
--theme-bg-color: #1A1A28;
|
--theme-bg-color: #1A1A28;
|
||||||
--theme-back-color: #0f0f18;
|
--theme-back-color: #0f0f18;
|
||||||
--theme-overlay-color: #0000007f;
|
--theme-overlay-color: rgba(0, 0, 0, .3);
|
||||||
--theme-statusbar-color: #2C2C35;
|
--theme-statusbar-color: #2C2C35;
|
||||||
--theme-navpanel-color: #14141F;
|
--theme-navpanel-color: #14141F;
|
||||||
--theme-navpanel-hovered: rgba(255, 255, 255, .04);
|
--theme-navpanel-hovered: rgba(255, 255, 255, .04);
|
||||||
@ -117,6 +117,8 @@
|
|||||||
--theme-progress-color: #FFFFFF;
|
--theme-progress-color: #FFFFFF;
|
||||||
--theme-popup-color: #292938;
|
--theme-popup-color: #292938;
|
||||||
--theme-popup-divider: rgba(255, 255, 255, .1);
|
--theme-popup-divider: rgba(255, 255, 255, .1);
|
||||||
|
--theme-popup-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1); // Light
|
||||||
|
--theme-panel-color: #1F1F2C;
|
||||||
|
|
||||||
--body-color: #1f2023;
|
--body-color: #1f2023;
|
||||||
--body-accent: #222326;
|
--body-accent: #222326;
|
||||||
@ -222,7 +224,7 @@
|
|||||||
|
|
||||||
--theme-bg-color: #F1F1F4;
|
--theme-bg-color: #F1F1F4;
|
||||||
--theme-back-color: #D9D9DD;
|
--theme-back-color: #D9D9DD;
|
||||||
--theme-overlay-color: #0000007f;
|
--theme-overlay-color: rgba(0, 0, 0, .2);
|
||||||
--theme-statusbar-color: #bfbfc6;
|
--theme-statusbar-color: #bfbfc6;
|
||||||
--theme-navpanel-color: #E8E8ED;
|
--theme-navpanel-color: #E8E8ED;
|
||||||
--theme-navpanel-hovered: rgba(218, 218, 231, .5);
|
--theme-navpanel-hovered: rgba(218, 218, 231, .5);
|
||||||
@ -265,6 +267,8 @@
|
|||||||
--theme-progress-color: rgba(0, 0, 0, .5);
|
--theme-progress-color: rgba(0, 0, 0, .5);
|
||||||
--theme-popup-color: #F1F1F4;
|
--theme-popup-color: #F1F1F4;
|
||||||
--theme-popup-divider: rgba(0, 0, 0, .1);
|
--theme-popup-divider: rgba(0, 0, 0, .1);
|
||||||
|
--theme-popup-shadow: 0px 4px 4px rgba(0, 0, 0, 0.1);
|
||||||
|
--theme-panel-color: #FFFFFF;
|
||||||
|
|
||||||
--body-color: #fff;
|
--body-color: #fff;
|
||||||
--body-accent: #fafafa; // HZ
|
--body-accent: #fafafa; // HZ
|
||||||
|
@ -406,6 +406,7 @@ input.search {
|
|||||||
&:not(.reverse) > *:not(:first-child) { margin-left: .5rem; }
|
&:not(.reverse) > *:not(:first-child) { margin-left: .5rem; }
|
||||||
&.reverse > *:not(:last-child) { margin-right: .5rem; }
|
&.reverse > *:not(:last-child) { margin-right: .5rem; }
|
||||||
}
|
}
|
||||||
|
.gap-around-2 > * { margin: .25rem; }
|
||||||
|
|
||||||
/* --------- */
|
/* --------- */
|
||||||
.sm-tool-icon {
|
.sm-tool-icon {
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
border-top: 1px solid var(--theme-navpanel-divider);
|
border-top: 1px solid var(--theme-navpanel-divider);
|
||||||
}
|
}
|
||||||
|
&.lastDivider { border-color: var(--theme-navpanel-border); }
|
||||||
}
|
}
|
||||||
.antiPanel-navigator,
|
.antiPanel-navigator,
|
||||||
.antiPanel-component {
|
.antiPanel-component {
|
||||||
|
@ -116,7 +116,7 @@
|
|||||||
min-height: 0;
|
min-height: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-color: var(--theme-bg-color);
|
background-color: var(--theme-panel-color);
|
||||||
border: 1px solid var(--theme-divider-color);
|
border: 1px solid var(--theme-divider-color);
|
||||||
&:not(.embedded) {
|
&:not(.embedded) {
|
||||||
border-radius: 0 0 .5rem .5rem;
|
border-radius: 0 0 .5rem .5rem;
|
||||||
@ -226,7 +226,7 @@
|
|||||||
min-width: 0;
|
min-width: 0;
|
||||||
max-width: 320px;
|
max-width: 320px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-color: var(--theme-list-row-color);
|
background-color: var(--theme-panel-color);
|
||||||
border-left: 1px solid var(--theme-divider-color);
|
border-left: 1px solid var(--theme-divider-color);
|
||||||
border-bottom-right-radius: .45rem;
|
border-bottom-right-radius: .45rem;
|
||||||
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
|
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
<rect opacity="0.6" x="2" y="7.5" width="12" height="1" rx="0.5" />
|
<rect opacity="0.6" x="2" y="7.5" width="12" height="1" rx="0.5" />
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="priority-urgent" viewBox="-1 -1 16 16">
|
<symbol id="priority-urgent" viewBox="-1 -1 16 16">
|
||||||
<path fill="var(--warning-color)" d="M2 0a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V2a2 2 0 00-2-2H2zm3.914 3h1.738L7.5 8.602H6.07L5.914 3zm1.809 7.164a.95.95 0 01-.938.938.934.934 0 110-1.867c.5 0 .934.417.938.93z" />
|
<path fill="var(--primary-color-orange-02)" d="M2 0a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V2a2 2 0 00-2-2H2zm3.914 3h1.738L7.5 8.602H6.07L5.914 3zm1.809 7.164a.95.95 0 01-.938.938.934.934 0 110-1.867c.5 0 .934.417.938.93z" />
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="priority-high" viewBox="0 0 16 16">
|
<symbol id="priority-high" viewBox="0 0 16 16">
|
||||||
<rect x="1" y="8" width="3" height="6" rx="1" fill-opacity=".4" />
|
<rect x="1" y="8" width="3" height="6" rx="1" fill-opacity=".4" />
|
||||||
|
Before (image error) Size: 32 KiB After (image error) Size: 32 KiB |
@ -19,7 +19,7 @@
|
|||||||
import presentation, { DraftController, getClient, KeyedAttribute } from '@hcengineering/presentation'
|
import presentation, { DraftController, getClient, KeyedAttribute } from '@hcengineering/presentation'
|
||||||
import tags, { TagElement, TagReference } from '@hcengineering/tags'
|
import tags, { TagElement, TagReference } from '@hcengineering/tags'
|
||||||
import { calcRank, Issue, IssueDraft, IssuePriority, Project } from '@hcengineering/tracker'
|
import { calcRank, Issue, IssueDraft, IssuePriority, Project } from '@hcengineering/tracker'
|
||||||
import { addNotification, Button, Component, EditBox } from '@hcengineering/ui'
|
import { addNotification, Button, Component, EditBox, deviceOptionsStore, ButtonSize } from '@hcengineering/ui'
|
||||||
import { createEventDispatcher, onDestroy } from 'svelte'
|
import { createEventDispatcher, onDestroy } from 'svelte'
|
||||||
import tracker from '../../../plugin'
|
import tracker from '../../../plugin'
|
||||||
import AssigneeEditor from '../AssigneeEditor.svelte'
|
import AssigneeEditor from '../AssigneeEditor.svelte'
|
||||||
@ -188,10 +188,12 @@
|
|||||||
$: if (!object.status && currentProject?.defaultIssueStatus) {
|
$: if (!object.status && currentProject?.defaultIssueStatus) {
|
||||||
object.status = currentProject.defaultIssueStatus
|
object.status = currentProject.defaultIssueStatus
|
||||||
}
|
}
|
||||||
|
let buttonSize: ButtonSize
|
||||||
|
$: buttonSize = $deviceOptionsStore.twoRows ? 'small' : 'large'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="sub-issue-child-editor" bind:this={thisRef} class="flex-col root">
|
<div id="sub-issue-child-editor" bind:this={thisRef} class="flex-col subissue-container">
|
||||||
<div class="flex-row-top">
|
<div class="flex-row-top subissue-content">
|
||||||
<div id="status-editor" class="mr-1">
|
<div id="status-editor" class="mr-1">
|
||||||
<StatusEditor
|
<StatusEditor
|
||||||
value={object}
|
value={object}
|
||||||
@ -231,15 +233,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-4 flex-between">
|
<div class="subissue-footer flex-between">
|
||||||
<div class="buttons-group xsmall-gap">
|
<div class="flex-row-center gap-around-2 flex-wrap">
|
||||||
<div id="sub-issue-priority">
|
<div id="sub-issue-priority">
|
||||||
<PriorityEditor
|
<PriorityEditor
|
||||||
value={object}
|
value={object}
|
||||||
shouldShowLabel
|
shouldShowLabel
|
||||||
isEditable
|
isEditable
|
||||||
kind="no-border"
|
kind={'secondary'}
|
||||||
size="small"
|
size={buttonSize}
|
||||||
justify="center"
|
justify="center"
|
||||||
on:change={({ detail }) => (object.priority = detail)}
|
on:change={({ detail }) => (object.priority = detail)}
|
||||||
/>
|
/>
|
||||||
@ -248,8 +250,8 @@
|
|||||||
{#key object.assignee}
|
{#key object.assignee}
|
||||||
<AssigneeEditor
|
<AssigneeEditor
|
||||||
value={object}
|
value={object}
|
||||||
size="small"
|
kind={'secondary'}
|
||||||
kind="no-border"
|
size={buttonSize}
|
||||||
on:change={({ detail }) => (object.assignee = detail)}
|
on:change={({ detail }) => (object.assignee = detail)}
|
||||||
/>
|
/>
|
||||||
{/key}
|
{/key}
|
||||||
@ -260,7 +262,9 @@
|
|||||||
items: object.labels,
|
items: object.labels,
|
||||||
key,
|
key,
|
||||||
targetClass: tracker.class.Issue,
|
targetClass: tracker.class.Issue,
|
||||||
countLabel: tracker.string.NumberLabels
|
countLabel: tracker.string.NumberLabels,
|
||||||
|
kind: 'secondary',
|
||||||
|
size: buttonSize
|
||||||
}}
|
}}
|
||||||
on:open={(evt) => {
|
on:open={(evt) => {
|
||||||
addTagRef(evt.detail)
|
addTagRef(evt.detail)
|
||||||
@ -269,16 +273,16 @@
|
|||||||
object.labels = object.labels.filter((it) => it._id !== evt.detail)
|
object.labels = object.labels.filter((it) => it._id !== evt.detail)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<EstimationEditor kind={'no-border'} size={'small'} value={object} />
|
<EstimationEditor kind={'secondary'} size={buttonSize} value={object} />
|
||||||
</div>
|
</div>
|
||||||
<div class="buttons-group small-gap">
|
<div class="flex-row-center gap-around-2 self-end flex-no-shrink">
|
||||||
<Button label={presentation.string.Cancel} size="small" kind="transparent" on:click={close} />
|
<Button label={presentation.string.Cancel} kind={'secondary'} size={buttonSize} on:click={close} />
|
||||||
<Button
|
<Button
|
||||||
{loading}
|
{loading}
|
||||||
disabled={!canSave}
|
disabled={!canSave}
|
||||||
label={presentation.string.Save}
|
label={presentation.string.Save}
|
||||||
size="small"
|
kind={'primary'}
|
||||||
kind="no-border"
|
size={buttonSize}
|
||||||
on:click={createIssue}
|
on:click={createIssue}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -286,15 +290,20 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.root {
|
.subissue-container {
|
||||||
padding: 0.75rem;
|
background-color: var(--theme-button-enabled);
|
||||||
background-color: var(--body-accent);
|
border: 1px solid var(--theme-button-border);
|
||||||
border: 1px solid var(--button-border-color);
|
border-radius: 0.25rem;
|
||||||
border-radius: 0.5rem;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.content {
|
.subissue-content {
|
||||||
padding-top: 0.3rem;
|
padding: 0.75rem;
|
||||||
|
.content {
|
||||||
|
padding-top: 0.3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.subissue-footer {
|
||||||
|
padding: 0.25rem 0.5rem 0.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -12,24 +12,10 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
-->
|
-->
|
||||||
<script lang="ts">
|
<div class="antiLogo red">P</div>
|
||||||
import type { IntlString } from '@hcengineering/platform'
|
|
||||||
import { tooltip } from '@hcengineering/ui'
|
|
||||||
import Arrows from './icons/Arrows.svelte'
|
|
||||||
|
|
||||||
export let bundle: 'platform' | 'ezthera' = 'platform'
|
|
||||||
export let label: IntlString
|
|
||||||
export let selected: boolean
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<button class="antiLogo {bundle}" class:selected tabindex="0" use:tooltip={{ label }} on:click>
|
|
||||||
<span class="logo">{bundle === 'ezthera' ? 'E' : 'P'}</span>
|
|
||||||
<div class="arrows"><Arrows size={'small'} /></div>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.antiLogo {
|
.antiLogo {
|
||||||
position: relative;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -40,50 +26,12 @@
|
|||||||
color: var(--primary-button-color);
|
color: var(--primary-button-color);
|
||||||
border-radius: 0.25rem;
|
border-radius: 0.25rem;
|
||||||
outline: none;
|
outline: none;
|
||||||
perspective: 16px;
|
|
||||||
transform-style: preserve-3d;
|
|
||||||
|
|
||||||
&.platform {
|
&.red {
|
||||||
background-color: #c93030;
|
background-color: #c93030;
|
||||||
}
|
}
|
||||||
&.ezthera {
|
&.blue {
|
||||||
background-color: #2b5190;
|
background-color: #2b5190;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:focus {
|
|
||||||
box-shadow: 0 0 0 2px var(--primary-button-focused-border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo,
|
|
||||||
.arrows {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transition: all 0.15s ease-in-out;
|
|
||||||
}
|
|
||||||
.logo {
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
.arrows {
|
|
||||||
transform: translate(0, -50%) rotateY(0deg);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
&:hover {
|
|
||||||
.logo {
|
|
||||||
transform: translate(-100%, -50%);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
.arrows {
|
|
||||||
transform: translate(-50%, -50%) rotateY(0deg);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.selected:hover {
|
|
||||||
.arrows {
|
|
||||||
transform: translate(-50%, -50%) rotateY(180deg);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -65,6 +65,7 @@
|
|||||||
import SpaceView from './SpaceView.svelte'
|
import SpaceView from './SpaceView.svelte'
|
||||||
import Settings from './icons/Settings.svelte'
|
import Settings from './icons/Settings.svelte'
|
||||||
import Logo from './Logo.svelte'
|
import Logo from './Logo.svelte'
|
||||||
|
import TopMenu from './icons/TopMenu.svelte'
|
||||||
|
|
||||||
let contentPanel: HTMLElement
|
let contentPanel: HTMLElement
|
||||||
let shownMenu: boolean = false
|
let shownMenu: boolean = false
|
||||||
@ -551,17 +552,21 @@
|
|||||||
</clipPath>
|
</clipPath>
|
||||||
</svg>
|
</svg>
|
||||||
<div class="workbench-container" style:flex-direction={appsDirection === 'horizontal' ? 'column-reverse' : 'row'}>
|
<div class="workbench-container" style:flex-direction={appsDirection === 'horizontal' ? 'column-reverse' : 'row'}>
|
||||||
<div class="antiPanel-application {appsDirection}">
|
<div class="antiPanel-application {appsDirection}" class:lastDivider={!visibileNav}>
|
||||||
<div
|
<div
|
||||||
class="hamburger-container clear-mins"
|
class="hamburger-container clear-mins"
|
||||||
class:portrait={appsDirection === 'horizontal'}
|
class:portrait={appsDirection === 'horizontal'}
|
||||||
class:landscape={appsDirection === 'vertical'}
|
class:landscape={appsDirection === 'vertical'}
|
||||||
>
|
>
|
||||||
<div class="logo-container clear-mins">
|
<div class="logo-container clear-mins">
|
||||||
<Logo
|
<Logo />
|
||||||
bundle={'platform'}
|
</div>
|
||||||
|
<div class="topmenu-container clear-mins" class:mini={appsMini}>
|
||||||
|
<AppItem
|
||||||
|
icon={TopMenu}
|
||||||
label={visibileNav ? workbench.string.HideMenu : workbench.string.ShowMenu}
|
label={visibileNav ? workbench.string.HideMenu : workbench.string.ShowMenu}
|
||||||
selected={!visibileNav}
|
selected={!visibileNav}
|
||||||
|
mini={appsMini}
|
||||||
on:click={toggleNav}
|
on:click={toggleNav}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -742,6 +747,9 @@
|
|||||||
.logo-container {
|
.logo-container {
|
||||||
margin-right: 0.5rem;
|
margin-right: 0.5rem;
|
||||||
}
|
}
|
||||||
|
.topmenu-container {
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
.divider {
|
.divider {
|
||||||
margin-left: 0.5rem;
|
margin-left: 0.5rem;
|
||||||
width: 1px;
|
width: 1px;
|
||||||
@ -753,7 +761,10 @@
|
|||||||
margin-top: 1.25rem;
|
margin-top: 1.25rem;
|
||||||
|
|
||||||
.logo-container {
|
.logo-container {
|
||||||
margin-bottom: 1.75rem;
|
margin-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
.topmenu-container {
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
}
|
}
|
||||||
.divider {
|
.divider {
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.5rem;
|
||||||
@ -761,15 +772,17 @@
|
|||||||
height: 1px;
|
height: 1px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// &.mini {
|
|
||||||
// position: fixed;
|
|
||||||
// top: 4px;
|
|
||||||
// left: 4px;
|
|
||||||
// }
|
|
||||||
|
|
||||||
.logo-container {
|
.logo-container,
|
||||||
|
.topmenu-container,
|
||||||
|
.divider {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
.topmenu-container.mini {
|
||||||
|
position: fixed;
|
||||||
|
top: 4px;
|
||||||
|
left: 4px;
|
||||||
|
}
|
||||||
.divider {
|
.divider {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
background-color: var(--theme-navpanel-icons-divider);
|
background-color: var(--theme-navpanel-icons-divider);
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svg class="svg-{size}" {fill} viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
<svg class="svg-{size}" {fill} viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M3,9.6h18c0.3,0,0.6-0.3,0.6-0.6S21.3,8.4,21,8.4H3C2.7,8.4,2.4,8.7,2.4,9S2.7,9.6,3,9.6z" />
|
<rect x="4" y="9.4" width="16" height="1.2" />
|
||||||
<path d="M21,14.4H3c-0.3,0-0.6,0.3-0.6,0.6s0.3,0.6,0.6,0.6h18c0.3,0,0.6-0.3,0.6-0.6S21.3,14.4,21,14.4z" />
|
<rect x="4" y="14.4" width="16" height="1.2" />
|
||||||
</svg>
|
</svg>
|
||||||
|
Loading…
Reference in New Issue
Block a user