Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions docs/configuring.md
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,7 @@ For more info, see the **[Authentication Docs](/docs/authentication.md)**
**`description`** | `string` | _Optional_ | Additional info about an item, which is shown in the tooltip on hover, or visible on large tiles
**`url`** | `string` | Required | The URL / location of web address for when the item is clicked
**`icon`** | `string` | _Optional_ | The icon for a given item. Can be a font-awesome icon, favicon, remote URL or local URL. See [`item.icon`](#sectionicon-and-sectionitemicon)
**`hidden`** | `boolean` | _Optional_ | If set to `true`, this item will be hidden from the default homepage view. It will still appear in search results, and will remain visible while using the Interactive Edit Mode. Defaults to `false`.
**`target`** | `string` | _Optional_ | The opening method for when the item is clicked, either `newtab`, `sametab`, `modal`, `workspace`, `clipboard`, `top` or `parent`. Where `newtab` will open the link in a new tab, `sametab` will open it in the current tab, and `modal` will open a pop-up modal, `workspace` will open in the Workspace view and `clipboard` will copy the URL to system clipboard (but not launch app). Defaults to `newtab`
**`hotkey`** | `number` | _Optional_ | Give frequently opened applications a numeric hotkey, between `0 - 9`. You can then just press that key to launch that application.
**`tags`** | `string[]` | _Optional_ | A list of tags, which can be used for improved search
Expand Down Expand Up @@ -283,6 +284,22 @@ For more info, see the **[Authentication Docs](/docs/authentication.md)**

**[⬆️ Back to Top](#configuring)**

### Example: Hiding an item from the homepage

```yaml
sections:
- name: Media
items:
- title: Admin Panel
url: https://example.local/admin
icon: fa fa-tools
hidden: true # hidden from the default homepage, but still searchable
- title: Plex
url: https://plex.local
icon: favicon
```


## `section.widgets` _(optional)_

**Field** | **Type** | **Required**| **Description**
Expand Down
1 change: 1 addition & 0 deletions docs/development-guides.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ Checklist:
- [ ] Update the [Schema](https://github.com/Lissy93/dashy/blob/master/src/utils/ConfigSchema.js) with the parameters for your new option
- [ ] If required, set a default or fallback value (usually in [`defaults.js`](https://github.com/Lissy93/dashy/blob/master/src/utils/defaults.js))
- [ ] Document the new value in [`configuring.md`](./configuring.md), and if required under the relevant section in the docs
- For example, if adding an item-level flag like `hidden: true`, document its purpose, default, and behavior (e.g., hidden on homepage but still searchable)
- [ ] Ensure your changes are backwards compatible, and that nothing breaks if the attribute isn't specified

---
Expand Down
3 changes: 3 additions & 0 deletions docs/searching.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

One of the primary purposes of Dashy is to allow you to quickly find and launch a given app. To make this as quick as possible, there is no need to touch the mouse, or press a certain key to begin searching - just start typing. Results will be filtered in real-time. No need to worry about case, special characters or small typos, these are taken care of, and your results should appear.

> Note
> Items marked as hidden in your configuration (using `hidden: true`) will not be shown on the homepage by default, but they will still appear in search results.

## Navigating

You can navigate through your items or search results using the keyboard. You can use <kbd>Tab</kbd> to cycle through results, and <kbd>Shift</kbd> + <kbd>Tab</kbd> to go backwards. Or use the arrow keys, <kbd>↑</kbd>, <kbd>→</kbd>, <kbd>↓</kbd> and <kbd>←</kbd>.
Expand Down
1 change: 1 addition & 0 deletions src/components/InteractiveEditor/EditItem.vue
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ export default {
return str === 'true';
};
if (newItem.tags) newItem.tags = strToTags(newItem.tags);
if (newItem.hidden !== undefined) newItem.hidden = strToBool(newItem.hidden);
if (newItem.statusCheck) newItem.statusCheck = strToBool(newItem.statusCheck);
if (newItem.statusCheckAllowInsecure) {
newItem.statusCheckAllowInsecure = strToBool(newItem.statusCheckAllowInsecure);
Expand Down
10 changes: 9 additions & 1 deletion src/components/LinkItems/Section.vue
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ export default {
widgets: Array,
index: Number,
isWide: Boolean,
searchTerm: String,
},
components: {
Collapsable,
Expand Down Expand Up @@ -178,7 +179,14 @@ export default {
},
/* If the sortBy attribute is specified, then return sorted data */
sortedItems() {
const items = [...this.items];
// Filter out items with hidden: true, unless in edit mode or searching
let items = [...this.items];
if (!this.isEditMode) {
// Include hidden items only when there's an active search term
if (!this.searchTerm || this.searchTerm.trim() === '') {
items = items.filter(item => !item.hidden);
}
}
if (this.appConfig.disableSmartSort) return items;
if (this.sortOrder === 'alphabetical') {
return this.sortAlphabetically(items);
Expand Down
6 changes: 6 additions & 0 deletions src/utils/ConfigSchema.json
Original file line number Diff line number Diff line change
Expand Up @@ -955,6 +955,12 @@
"nullable": true,
"description": "An icon, either as a font-awesome, simple-icon, selfh.st, or mdi identifier, emoji, favicon, generative or the URL/path to a local or remote icon asset"
},
"hidden": {
"title": "Hidden from Homepage",
"type": "boolean",
"default": false,
"description": "If true, this item will be hidden from the homepage/dashboard but still searchable."
},
"url": {
"title": "Service URL",
"type": "string",
Expand Down