|
5 | 5 | @contextmenu.prevent
|
6 | 6 | :href="hyperLinkHref"
|
7 | 7 | :target="anchorTarget"
|
8 |
| - :class="`item ${!icon? 'short': ''} size-${itemSize} ${isAddNew ? 'add-new' : ''}`" |
| 8 | + :class="`item ${makeClassList}`" |
9 | 9 | v-tooltip="getTooltipOptions()"
|
10 | 10 | rel="noopener noreferrer" tabindex="0"
|
11 | 11 | :id="`link-${id}`"
|
|
30 | 30 | :statusSuccess="statusResponse ? statusResponse.successStatus : undefined"
|
31 | 31 | :statusText="statusResponse ? statusResponse.message : undefined"
|
32 | 32 | />
|
| 33 | + <!-- Edit icon (displayed only when in edit mode) --> |
33 | 34 | <EditModeIcon v-if="isEditMode" class="edit-mode-item" @click="openItemSettings()" />
|
34 | 35 | </a>
|
| 36 | + <!-- Right-click context menu --> |
35 | 37 | <ContextMenu
|
36 | 38 | :show="contextMenuOpen && !isAddNew"
|
37 | 39 | v-click-outside="closeContextMenu"
|
|
43 | 45 | @openMoveItemMenu="openMoveItemMenu"
|
44 | 46 | @openDeleteItem="openDeleteItem"
|
45 | 47 | />
|
| 48 | + <!-- Edit and move item menu modals --> |
46 | 49 | <MoveItemTo v-if="isEditMode" :itemId="id" />
|
47 | 50 | <EditItem v-if="editMenuOpen" :itemId="id"
|
48 | 51 | @closeEditMenu="closeEditMenu"
|
@@ -114,6 +117,14 @@ export default {
|
114 | 117 | accumulatedTarget() {
|
115 | 118 | return this.target || this.appConfig.defaultOpeningMethod || defaultOpeningMethod;
|
116 | 119 | },
|
| 120 | + /* Based on item props, adjust class names */ |
| 121 | + makeClassList() { |
| 122 | + const { |
| 123 | + icon, itemSize, isAddNew, isEditMode, |
| 124 | + } = this; |
| 125 | + return `size-${itemSize} ${!icon ? 'short' : ''} ` |
| 126 | + + `${isAddNew ? 'add-new' : ''} ${isEditMode ? 'is-edit-mode' : ''}`; |
| 127 | + }, |
117 | 128 | /* Convert config target value, into HTML anchor target attribute */
|
118 | 129 | anchorTarget() {
|
119 | 130 | if (this.isEditMode) return '_self';
|
@@ -521,13 +532,18 @@ export default {
|
521 | 532 | }
|
522 | 533 | }
|
523 | 534 |
|
| 535 | +/* Adjust positioning of status indicator, when in edit mode */ |
| 536 | +a.item.is-edit-mode { |
| 537 | + &.size-medium .status-indicator { top: 1rem; } |
| 538 | + &.size-small .status-indicator { right: 1rem; } |
| 539 | + &.size-large .status-indicator { top: 1.5rem; } |
| 540 | +} |
| 541 | +
|
524 | 542 | </style>
|
525 | 543 |
|
526 | 544 | <!-- An un-scoped style tag, since tooltip is outside this DOM tree -->
|
527 | 545 | <style lang="scss">
|
528 |
| -
|
529 | 546 | .disabled-link {
|
530 | 547 | pointer-events: none;
|
531 | 548 | }
|
532 |
| -
|
533 | 549 | </style>
|
0 commit comments