From d4f088e24205eeadc7a16572b84495ff032108f7 Mon Sep 17 00:00:00 2001 From: Shumit Date: Fri, 17 Apr 2026 03:48:23 +0000 Subject: [PATCH 01/10] Fix invalid devcontainer image tag --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 96b1e1bcf2..0fdfe2cc35 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,7 +3,7 @@ { "name": "Dashy", // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/javascript-node:1-24-bookworm", + "image": "mcr.microsoft.com/devcontainers/javascript-node:latest", "customizations": { "vscode": { "extensions": [ From 4c1980803b5898f9fa5763f2ea6c4ab5a48a99ab Mon Sep 17 00:00:00 2001 From: shumit taher Date: Tue, 9 Sep 2025 10:51:39 +0000 Subject: [PATCH 02/10] opening collapsed section if seach hits --- src/components/LinkItems/Section.vue | 16 ++++++++++++++++ user-data/conf.yml | 15 +++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/components/LinkItems/Section.vue b/src/components/LinkItems/Section.vue index f3178f40a6..b59f2c06b7 100644 --- a/src/components/LinkItems/Section.vue +++ b/src/components/LinkItems/Section.vue @@ -130,6 +130,7 @@ export default { index: Number, isWide: Boolean, activeColCount: Number, + searchTerm: String, }, components: { Collapsable, @@ -217,6 +218,21 @@ export default { return Math.min(this.activeColCount, cols); }, }, + watch: { + searchTerm: { + handler(newSeachTerm) { + let searchIsActive = false; + if (newSeachTerm && newSeachTerm.trim().length > 0) { + searchIsActive = true; + } + const hasHits = this.items.length > 0; + if (searchIsActive && hasHits) { + this.expandCollapseSection(); + } + }, + immediate: true, + }, + }, methods: { /* Opens the iframe modal */ triggerModal(url) { diff --git a/user-data/conf.yml b/user-data/conf.yml index 2d62014781..6c3546d11f 100644 --- a/user-data/conf.yml +++ b/user-data/conf.yml @@ -44,3 +44,18 @@ sections: description: Get help with Dashy, raise a bug, or get in contact url: https://github.com/Lissy93/dashy/blob/master/.github/SUPPORT.md icon: far fa-hands-helping +- name: Stuff + icon: fas fa-rocket + displayData: + collapsed: true + items: + - title: hidden tile 1 + description: Development a project management links for Dashy + icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png + url: https://live.dashy.to/ + target: newtab + - title: hidden tile 2 + description: Development a project management links for Dashy + icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png + url: https://live.dashy.to/ + target: newtab From 950d964570d02a7e74bc0f132402a5f3892b402e Mon Sep 17 00:00:00 2001 From: shumit taher Date: Tue, 9 Sep 2025 11:33:38 +0000 Subject: [PATCH 03/10] auto opening based on state of search and collapsed --- src/components/LinkItems/Section.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/LinkItems/Section.vue b/src/components/LinkItems/Section.vue index b59f2c06b7..95ba58b66c 100644 --- a/src/components/LinkItems/Section.vue +++ b/src/components/LinkItems/Section.vue @@ -151,6 +151,7 @@ export default { }, sectionWidth: 0, resizeObserver: null, + isCollapsed: false, }; }, computed: { @@ -226,7 +227,7 @@ export default { searchIsActive = true; } const hasHits = this.items.length > 0; - if (searchIsActive && hasHits) { + if (searchIsActive && hasHits && this.isCollapsed) { this.expandCollapseSection(); } }, @@ -276,8 +277,13 @@ export default { expandCollapseSection() { const secElem = this.$refs[this.sectionRef]; if (secElem) secElem.toggle(); + this.toggleCollapsedState(); this.closeContextMenu(); }, + /* Toggle sections collapse state tracking */ + toggleCollapsedState() { + this.isCollapsed = !this.isCollapsed; + }, /* Open the Section Edit Menu */ openEditSection() { this.editMenuOpen = true; @@ -328,6 +334,9 @@ export default { this.resizeObserver = new ResizeObserver(this.calculateSectionWidth) .observe(this.$refs[this.sectionRef].$el); } + if (this.displayData.collapsed) { + this.isCollapsed = this.displayData.collapsed; + } }, beforeDestroy() { // If resize observer set, and element still present, then de-register From 7f6e6973f72183446202654b0376325860ea647f Mon Sep 17 00:00:00 2001 From: shumit taher Date: Tue, 9 Sep 2025 11:40:17 +0000 Subject: [PATCH 04/10] auto closing in case no hits or no search --- src/components/LinkItems/Section.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/LinkItems/Section.vue b/src/components/LinkItems/Section.vue index 95ba58b66c..d0f05fa76e 100644 --- a/src/components/LinkItems/Section.vue +++ b/src/components/LinkItems/Section.vue @@ -152,6 +152,7 @@ export default { sectionWidth: 0, resizeObserver: null, isCollapsed: false, + autoOpenedBySearch: false, }; }, computed: { @@ -229,6 +230,11 @@ export default { const hasHits = this.items.length > 0; if (searchIsActive && hasHits && this.isCollapsed) { this.expandCollapseSection(); + this.autoOpenedBySearch = true; + } + if (this.autoOpenedBySearch && (!searchIsActive || !hasHits)) { + this.expandCollapseSection(); + this.autoOpenedBySearch = false; } }, immediate: true, From 4e9208d2755019d27fa180de42fbc7d521c49be0 Mon Sep 17 00:00:00 2001 From: shumit taher Date: Tue, 16 Sep 2025 20:39:53 +0000 Subject: [PATCH 05/10] collpase state is tracked from Collapsable.vue --- src/components/LinkItems/Collapsable.vue | 1 + src/components/LinkItems/Section.vue | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/LinkItems/Collapsable.vue b/src/components/LinkItems/Collapsable.vue index c7e4ef7f2c..97783b48c5 100644 --- a/src/components/LinkItems/Collapsable.vue +++ b/src/components/LinkItems/Collapsable.vue @@ -104,6 +104,7 @@ export default { checkboxState(newState) { this.isExpanded = newState; this.updateLocalStorage(); // Save every change immediately + this.$emit('collapse-change', this.checkboxState); }, uniqueKey(newVal, oldVal) { if (newVal !== oldVal) { diff --git a/src/components/LinkItems/Section.vue b/src/components/LinkItems/Section.vue index d0f05fa76e..5e84395793 100644 --- a/src/components/LinkItems/Section.vue +++ b/src/components/LinkItems/Section.vue @@ -11,6 +11,7 @@ :cutToHeight="displayData.cutToHeight" @openEditSection="openEditSection" @openContextMenu="openContextMenu" + @collapse-change="onCollapseChange" :id="sectionRef" :ref="sectionRef" > @@ -283,12 +284,11 @@ export default { expandCollapseSection() { const secElem = this.$refs[this.sectionRef]; if (secElem) secElem.toggle(); - this.toggleCollapsedState(); this.closeContextMenu(); }, /* Toggle sections collapse state tracking */ - toggleCollapsedState() { - this.isCollapsed = !this.isCollapsed; + onCollapseChange(childExpanded) { + this.isCollapsed = !childExpanded; }, /* Open the Section Edit Menu */ openEditSection() { From fa3c0ff24fec7129c5cbb947d7b063f725de3572 Mon Sep 17 00:00:00 2001 From: shumit taher Date: Tue, 16 Sep 2025 21:59:52 +0000 Subject: [PATCH 06/10] hidden implemented --- src/components/LinkItems/Section.vue | 15 +++++++++++++++ user-data/conf.yml | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/LinkItems/Section.vue b/src/components/LinkItems/Section.vue index 5e84395793..ff5b7c0f4a 100644 --- a/src/components/LinkItems/Section.vue +++ b/src/components/LinkItems/Section.vue @@ -1,5 +1,6 @@ @@ -89,6 +90,11 @@ export default { activeColCount: 1, }), computed: { + isCodeSearch() { + const term = (this.searchTerm || this.searchValue || '').trim(); + // true if it starts with "<" and ends with ">", with at least one char inside + return /^<[^>]+>$/.test(term); + }, singleSectionView() { return this.findSingleSection(this.$store.getters.sections, this.$route.params.section); }, diff --git a/user-data/conf.yml b/user-data/conf.yml index 5166fb3f71..62a6347d18 100644 --- a/user-data/conf.yml +++ b/user-data/conf.yml @@ -49,13 +49,9 @@ sections: displayData: hiddenOnPurpose: true items: - - title: hidden tile 1 - description: Development a project management links for Dashy - icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png - url: https://live.dashy.to/ - target: newtab - - title: hidden tile 2 - description: Development a project management links for Dashy + - title: s + description: s icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png url: https://live.dashy.to/ target: newtab + From c897cddf8e5dc334623fef48b9e916b027324d91 Mon Sep 17 00:00:00 2001 From: shumit taher Date: Tue, 16 Sep 2025 23:24:19 +0000 Subject: [PATCH 08/10] codemode working by editing filtered sections --- src/views/Home.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index 5c5afd3764..c7a0b9001d 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -109,9 +109,15 @@ export default { /* Return sections with filtered items, that match users search term */ filteredSections() { const sections = this.singleSectionView || this.sections; + const codeMode = this.isCodeSearch; + return sections.map((_section) => { const section = _section; - section.filteredItems = this.filterTiles(section.items, this.searchValue); + if (codeMode) { + section.filteredItems = section.items; + } else { + section.filteredItems = this.filterTiles(section.items, this.searchValue); + } return section; }); }, From 4abdeb42194fb713d8160acc62a39f8ce7e2664d Mon Sep 17 00:00:00 2001 From: Shumit Taher Date: Wed, 17 Sep 2025 02:06:44 +0000 Subject: [PATCH 09/10] added some comments --- src/components/LinkItems/Section.vue | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/components/LinkItems/Section.vue b/src/components/LinkItems/Section.vue index 34f2cfa604..9bcaa80241 100644 --- a/src/components/LinkItems/Section.vue +++ b/src/components/LinkItems/Section.vue @@ -240,17 +240,26 @@ export default { watch: { searchTerm: { handler(newSeachTerm) { + // find if special code search is used const showHidden = newSeachTerm.trim().toLowerCase() === ''; this.showHiddenMode = showHidden; + + // check if search is active let searchIsActive = false; if (newSeachTerm && newSeachTerm.trim().length > 0) { searchIsActive = true; } + + // check if search is hit const hasHits = this.items.length > 0; + + // action if search is active and search hits and it was collapsed if (searchIsActive && hasHits && this.isCollapsed) { this.expandCollapseSection(); this.autoOpenedBySearch = true; } + + // action if that search is not a hit anymore if (this.autoOpenedBySearch && (!searchIsActive || !hasHits)) { this.expandCollapseSection(); this.autoOpenedBySearch = false; From a6c8ba0c27c63e833049625fab02705fc308cd96 Mon Sep 17 00:00:00 2001 From: Shumit Date: Fri, 17 Apr 2026 03:16:42 +0000 Subject: [PATCH 10/10] added schema changes --- src/utils/ConfigSchema.json | 6 ++++++ user-data/conf.yml | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils/ConfigSchema.json b/src/utils/ConfigSchema.json index b59dd90acc..ddd231dc3a 100644 --- a/src/utils/ConfigSchema.json +++ b/src/utils/ConfigSchema.json @@ -951,6 +951,12 @@ "type": "boolean", "default": false, "description": "If set to true, section will be visible in the default view but not in the Workspace view sidebar" + }, + "hiddenOnPurpose": { + "title": "Hidden On Purpose", + "type": "boolean", + "default": false, + "description": "If true, this section is intentionally hidden" } } }, diff --git a/user-data/conf.yml b/user-data/conf.yml index 62a6347d18..f644658b70 100644 --- a/user-data/conf.yml +++ b/user-data/conf.yml @@ -49,8 +49,8 @@ sections: displayData: hiddenOnPurpose: true items: - - title: s - description: s + - title: hiddentile + description: This is a hidden tile icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png url: https://live.dashy.to/ target: newtab