diff --git a/client/res/templates/fields/link/detail.tpl b/client/res/templates/fields/link/detail.tpl
index b2df4c10aa..bc212dfff3 100644
--- a/client/res/templates/fields/link/detail.tpl
+++ b/client/res/templates/fields/link/detail.tpl
@@ -1,5 +1,5 @@
{{#if url}}
-{{#if iconHtml}}{{{iconHtml}}}{{/if}}{{nameValue}}
+{{#if iconHtml}}{{{iconHtml}}}{{/if}}{{nameValue}}
{{else}}
{{#if valueIsSet}}
{{translate 'None'}}
diff --git a/client/res/templates/fields/user-with-avatar/detail.tpl b/client/res/templates/fields/user-with-avatar/detail.tpl
index c5f73f8db7..3a07bebb98 100644
--- a/client/res/templates/fields/user-with-avatar/detail.tpl
+++ b/client/res/templates/fields/user-with-avatar/detail.tpl
@@ -1,5 +1,5 @@
{{#if idValue}}
-{{{avatar}}}{{nameValue}}
+{{{avatar}}}{{nameValue}}
{{else}}
{{translate 'None'}}
{{/if}}
diff --git a/client/src/views/fields/assigned-users.js b/client/src/views/fields/assigned-users.js
index 853641bdb2..9b19d7d283 100644
--- a/client/src/views/fields/assigned-users.js
+++ b/client/src/views/fields/assigned-users.js
@@ -30,6 +30,8 @@ import LinkMultipleFieldView from 'views/fields/link-multiple';
class AssignedUsersFieldView extends LinkMultipleFieldView {
+ linkClass = 'text-default'
+
init() {
this.assignmentPermission = this.getAcl().getPermissionLevel('assignmentPermission');
diff --git a/client/src/views/fields/collaborators.js b/client/src/views/fields/collaborators.js
index 632dd54c40..e6cad4f7c3 100644
--- a/client/src/views/fields/collaborators.js
+++ b/client/src/views/fields/collaborators.js
@@ -30,6 +30,8 @@ import LinkMultipleFieldView from 'views/fields/link-multiple';
export default class CollaboratorsFieldView extends LinkMultipleFieldView {
+ linkClass = 'text-default'
+
init() {
this.assignmentPermission = this.getAcl().getPermissionLevel('assignmentPermission');
diff --git a/client/src/views/fields/followers.js b/client/src/views/fields/followers.js
index 30bdd92582..2ef1358f7d 100644
--- a/client/src/views/fields/followers.js
+++ b/client/src/views/fields/followers.js
@@ -32,6 +32,7 @@ class FollowersFieldView extends LinkMultipleFieldView {
foreignScope = 'User'
portionSize = 6
+ linkClass = 'text-default'
setup() {
super.setup();
diff --git a/client/src/views/fields/link-multiple.js b/client/src/views/fields/link-multiple.js
index 1a4c2ca3e3..d13b057ff4 100644
--- a/client/src/views/fields/link-multiple.js
+++ b/client/src/views/fields/link-multiple.js
@@ -76,7 +76,6 @@ class LinkMultipleFieldView extends BaseFieldView {
editTemplate = 'fields/link-multiple/edit'
searchTemplate = 'fields/link-multiple/search'
-
// noinspection JSUnusedGlobalSymbols
listLinkTemplateContent = `
{{#if value}}
@@ -247,6 +246,14 @@ class LinkMultipleFieldView extends BaseFieldView {
*/
iconHtml = ''
+ /**
+ * A link element class name. Applicable in the detail mode.
+ *
+ * @protected
+ * @since 9.1.6
+ */
+ linkClass
+
/** @inheritDoc */
events = {
/** @this LinkMultipleFieldView */
@@ -834,6 +841,8 @@ class LinkMultipleFieldView extends BaseFieldView {
if (this.mode === this.MODE_LIST) {
$a.addClass('text-default');
+ } else if (this.linkClass) {
+ $a.addClass(this.linkClass);
}
if (iconHtml) {
diff --git a/client/src/views/fields/link.js b/client/src/views/fields/link.js
index 3ab61c5e30..4c0605ceed 100644
--- a/client/src/views/fields/link.js
+++ b/client/src/views/fields/link.js
@@ -209,6 +209,14 @@ class LinkFieldView extends BaseFieldView {
*/
autocompleteOnEmpty = false
+ /**
+ * A link element class name. Applicable in the detail mode.
+ *
+ * @protected
+ * @since 9.1.6
+ */
+ linkClass
+
/** @inheritDoc */
events = {
/** @this LinkFieldView */
@@ -265,6 +273,7 @@ class LinkFieldView extends BaseFieldView {
iconHtml: iconHtml,
url: this.getUrl(),
createButton: createButton,
+ linkClass: this.linkClass,
};
}
diff --git a/client/src/views/fields/user.js b/client/src/views/fields/user.js
index 02ff10a204..aa8ffa809b 100644
--- a/client/src/views/fields/user.js
+++ b/client/src/views/fields/user.js
@@ -32,6 +32,7 @@ import Autocomplete from 'ui/autocomplete';
class UserFieldView extends LinkFieldView {
searchTemplate = 'fields/user/search'
+ linkClass = 'text-default'
setupSearch() {
super.setupSearch();
diff --git a/client/src/views/stream/reactions.js b/client/src/views/stream/reactions.js
index 05487a12b5..52aba986b3 100644
--- a/client/src/views/stream/reactions.js
+++ b/client/src/views/stream/reactions.js
@@ -27,7 +27,6 @@
************************************************************************/
import View from 'view';
-import Collection from 'collection';
import ListRecordView from 'views/record/list';
import ReactionsHelper from 'helpers/misc/reactions';
@@ -42,7 +41,7 @@ export default class NoteReactionsView extends View {
title="{{label}}"
data-type="{{type}}"
>
-
+
{{count}}
{{/each}}
diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less
index 48fdc26689..36989fac9f 100644
--- a/frontend/less/espo/custom.less
+++ b/frontend/less/espo/custom.less
@@ -2369,13 +2369,18 @@ td > span.color-icon {
span.text-primary {
color: var(--link-hover-color);
}
+
+ span.text-primary {
+ color: var(--link-hover-color);
+ }
+
+ span.text-warning {
+ color: var(--state-warning-text-10);
+ }
}
text-align: right;
min-width: var(--30px);
-
-
-
}
}
}
@@ -4102,21 +4107,36 @@ body > .autocomplete-suggestions.text-search-suggestions {
width: var(--220px);
}
+ &:has(.popover-content > .list > table) {
+ padding-left: 0;
+ padding-right: 0;
+ }
+
.popover-content {
&:has(> .list > table) {
padding: 0;
}
- > .list > table > tbody {
- > tr {
- > td:first-child {
- padding-left: var(--14px);
- }
+ > .list > table {
+ > tbody {
+ > tr {
+ > td:first-child {
+ padding-left: var(--14px);
+ }
- > td:last-child {
- padding-right: var(--14px);
+ > td:last-child {
+ padding-right: var(--14px);
+ border-bottom: 0;
+ }
+
+ > td {
+ border-left: 0;
+ border-right: 0;
+ }
}
}
+
+ background-color: unset;
}
}
}