This commit is contained in:
aspenyang 2025-11-08 21:26:26 +00:00 committed by GitHub
commit f5d54aa942
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 37 additions and 1 deletions

View file

@ -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 **`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 **`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) **`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` **`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. **`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 **`tags`** | `string[]` | _Optional_ | A list of tags, which can be used for improved search
@ -283,6 +284,22 @@ For more info, see the **[Authentication Docs](/docs/authentication.md)**
**[⬆️ Back to Top](#configuring)** **[⬆️ 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)_ ## `section.widgets` _(optional)_
**Field** | **Type** | **Required**| **Description** **Field** | **Type** | **Required**| **Description**

View file

@ -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 - [ ] 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)) - [ ] 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 - [ ] 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 - [ ] Ensure your changes are backwards compatible, and that nothing breaks if the attribute isn't specified
--- ---

View file

@ -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. 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 ## 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>. 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>.

View file

@ -240,6 +240,7 @@ export default {
return str === 'true'; return str === 'true';
}; };
if (newItem.tags) newItem.tags = strToTags(newItem.tags); 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.statusCheck) newItem.statusCheck = strToBool(newItem.statusCheck);
if (newItem.statusCheckAllowInsecure) { if (newItem.statusCheckAllowInsecure) {
newItem.statusCheckAllowInsecure = strToBool(newItem.statusCheckAllowInsecure); newItem.statusCheckAllowInsecure = strToBool(newItem.statusCheckAllowInsecure);

View file

@ -128,6 +128,7 @@ export default {
widgets: Array, widgets: Array,
index: Number, index: Number,
isWide: Boolean, isWide: Boolean,
searchTerm: String,
}, },
components: { components: {
Collapsable, Collapsable,
@ -178,7 +179,14 @@ export default {
}, },
/* If the sortBy attribute is specified, then return sorted data */ /* If the sortBy attribute is specified, then return sorted data */
sortedItems() { 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.appConfig.disableSmartSort) return items;
if (this.sortOrder === 'alphabetical') { if (this.sortOrder === 'alphabetical') {
return this.sortAlphabetically(items); return this.sortAlphabetically(items);

View file

@ -955,6 +955,12 @@
"nullable": true, "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" "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": { "url": {
"title": "Service URL", "title": "Service URL",
"type": "string", "type": "string",