Skip to content

Commit d40eb99

Browse files
authored
EQMS-1617 Fix document and category links (#9672)
Signed-off-by: Alexander Onnikov <[email protected]>
1 parent 0218c5d commit d40eb99

File tree

5 files changed

+48
-45
lines changed

5 files changed

+48
-45
lines changed

plugins/controlled-documents-resources/src/components/category/presenters/CategoryPresenter.svelte

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import { Ref, WithLookup } from '@hcengineering/core'
1919
import { getEmbeddedLabel } from '@hcengineering/platform'
2020
import { getClient } from '@hcengineering/presentation'
21-
import { getPanelURI, Icon, tooltip } from '@hcengineering/ui'
22-
import view from '@hcengineering/view'
21+
import { Icon, tooltip } from '@hcengineering/ui'
22+
import { DocNavLink } from '@hcengineering/view-resources'
2323
2424
import documents from '../../../plugin'
2525
@@ -41,19 +41,18 @@
4141
</script>
4242

4343
{#if category}
44-
<a
45-
class={!disableClick ? 'flex-presenter' : 'category-presenter'}
46-
href={!disableClick
47-
? `#${getPanelURI(view.component.EditDoc, category._id, category._class, 'content')}`
48-
: undefined}
49-
class:inline-presenter={inline}
50-
use:tooltip={{ label: getEmbeddedLabel(category.title) }}
51-
>
52-
<div class="icon category-icon">
53-
<Icon icon={documents.icon.Document} size={'small'} />
44+
<DocNavLink object={category} disabled={disableClick} accent {inline}>
45+
<div
46+
class={!disableClick ? 'flex-presenter' : 'category-presenter'}
47+
class:inline-presenter={inline}
48+
use:tooltip={{ label: getEmbeddedLabel(category.title) }}
49+
>
50+
<div class="icon category-icon">
51+
<Icon icon={documents.icon.Document} size={'small'} />
52+
</div>
53+
<span class="label fs-bold whitespace-nowrap">{category.code}</span>
5454
</div>
55-
<span class="label whitespace-nowrap">{category.code}</span>
56-
</a>
55+
</DocNavLink>
5756
{/if}
5857

5958
<style lang="scss">

plugins/controlled-documents-resources/src/components/document/presenters/DocumentPresenter.svelte

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
import { Document } from '@hcengineering/controlled-documents'
1818
import { WithLookup } from '@hcengineering/core'
1919
import { getEmbeddedLabel } from '@hcengineering/platform'
20-
import { getPanelURI, tooltip } from '@hcengineering/ui'
20+
import { tooltip } from '@hcengineering/ui'
21+
import { DocNavLink } from '@hcengineering/view-resources'
2122
2223
import DocumentIcon from '../../icons/DocumentIcon.svelte'
2324
import documents from '../../../plugin'
@@ -29,16 +30,17 @@
2930
export let withIcon = false
3031
export let withTitle = false
3132
export let disableLink = false
32-
export let editable = false
33+
export let canEdit = false
3334
3435
$: documentCode = value !== undefined ? value.code : ''
35-
$: noUnderline = disableLink && !editable
36+
$: noUnderline = disableLink && !canEdit
37+
$: disabled = disableLink && !canEdit
3638
$: title = withTitle ? `${documentCode} ${value?.title}` : documentCode
3739
3840
const dispatch = createEventDispatcher()
3941
4042
function handleClick (event: MouseEvent): void {
41-
if (!editable) {
43+
if (!canEdit) {
4244
return
4345
}
4446
@@ -47,23 +49,26 @@
4749
</script>
4850

4951
{#if value}
50-
<a
51-
class="flex-presenter"
52-
href={!disableLink ? `#${getPanelURI(documents.component.EditDoc, value._id, value._class, 'content')}` : undefined}
53-
class:inline-presenter={inline}
54-
class:noBold={isRegular}
55-
class:no-underline={noUnderline}
56-
class:cursor-inherit={noUnderline}
57-
use:tooltip={{ label: getEmbeddedLabel(title) }}
58-
on:click={handleClick}
52+
<DocNavLink
53+
object={value}
54+
component={documents.component.EditDoc}
55+
onClick={canEdit ? handleClick : undefined}
56+
accent={!isRegular}
57+
{disabled}
58+
{noUnderline}
59+
{inline}
5960
>
60-
{#if withIcon}
61-
<div class="icon">
62-
<DocumentIcon size="small" />
63-
</div>
64-
{/if}
65-
<span class="label nowrap" class:no-underline={noUnderline} class:label-gray={isGray}>{title}</span>
66-
</a>
61+
<div class="flex-presenter" use:tooltip={{ label: getEmbeddedLabel(title) }}>
62+
{#if withIcon}
63+
<div class="icon">
64+
<DocumentIcon size="small" />
65+
</div>
66+
{/if}
67+
<span class="label nowrap" class:fs-bold={!isRegular} class:no-underline={noUnderline} class:label-gray={isGray}
68+
>{title}</span
69+
>
70+
</div>
71+
</DocNavLink>
6772
{/if}
6873

6974
<style lang="scss">

plugins/controlled-documents-resources/src/components/document/presenters/TitlePresenter.svelte

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,18 @@
1515
<script lang="ts">
1616
import { Document } from '@hcengineering/controlled-documents'
1717
import { WithLookup } from '@hcengineering/core'
18-
import { getPanelURI } from '@hcengineering/ui'
19-
import documents from '../../../plugin'
18+
import { tooltip } from '@hcengineering/ui'
19+
import { DocNavLink } from '@hcengineering/view-resources'
20+
import { getEmbeddedLabel } from '@hcengineering/platform'
2021
2122
export let value: WithLookup<Document>
2223
export let inline = false
2324
</script>
2425

2526
{#if value}
26-
<a
27-
class="flex-presenter"
28-
href="#{getPanelURI(documents.component.EditDoc, value._id, value._class, 'content')}"
29-
class:inline-presenter={inline}
30-
>
31-
<span class="label nowrap">{value.title}</span>
32-
</a>
27+
<DocNavLink object={value} {inline}>
28+
<div class="flex-presenter" class:inline-presenter={inline} use:tooltip={{ label: getEmbeddedLabel(value.title) }}>
29+
<span class="label fs-bold nowrap">{value.title}</span>
30+
</div>
31+
</DocNavLink>
3332
{/if}

plugins/controlled-documents-resources/src/components/document/right-panel/DocumentInfoTab.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
value={$controlledDocument}
9797
isRegular
9898
disableLink
99-
editable={isInitialEditableDraft}
99+
canEdit={isInitialEditableDraft}
100100
on:edit={(e) => {
101101
handleCodeEdit(e.detail)
102102
}}

qms-tests/sanity/tests/model/documents/document-reason-impact-page.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class DocumentReasonAndImpactPage extends DocumentCommonPage {
2525
this.textReason = page.locator('//div[contains(@class, "title") and text()="Reason"]/..')
2626
this.textImpactAnalysis = page.locator('//div[contains(@class, "title") and text()="Impact analysis"]/..')
2727
this.textImpactedDocuments = page.locator(
28-
'//div[contains(@class, "title") and text()="Impacted documents"]/..//a/span'
28+
'//div[contains(@class, "title") and text()="Impacted documents"]/..//div/span'
2929
)
3030
}
3131

0 commit comments

Comments
 (0)