Dashboard 2.0 Pre-Alpha Available

Should this happen;

buttons

[{"id":"ad3cb4e43c26a2ee","type":"group","z":"03cd1d2be26baaa9","name":"Examples","style":{"label":true},"nodes":["22c820fe5df10421","a66b236cf6e0e804","6a6da25fb8dd4573","1b1a7e8fddc09c07","81d39df78d7fd9df","4b3b7886bb356094"],"x":134,"y":539,"w":372,"h":162},{"id":"22c820fe5df10421","type":"ui-template","z":"03cd1d2be26baaa9","g":"ad3cb4e43c26a2ee","group":"cb03a2a3aec89425","dashboard":"789c65a14af5d124","page":"19eb6d108e9275e2","name":"Menu","order":0,"width":"3","height":"1","head":"","format":"<template>\n  <div class=\"d-flex justify-space-around\">\n    <v-menu>\n      <template v-slot:activator=\"{ props }\">\n        <v-btn block color=\"primary\" v-bind=\"props\">\n          Select Option 1\n        </v-btn>\n      </template>\n      <v-list>\n        <v-list-item v-for=\"(item, index) in items\"\n            :key=\"index\"\n            :value=\"index\"\n            @click=\"send({payload: item.title})\">\n          <v-list-item-title>{{ item.title }}</v-list-item-title>\n        </v-list-item>\n      </v-list>\n    </v-menu>\n  </div>\n</template>\n\n<script>\n  export default {\n    data: () => ({\n      items: [\n        { title: 'Option 1' },\n        { title: 'Option 2' },\n        { title: 'Option 3' },\n        { title: 'Option 4' },\n      ],\n    }),\n  }\n</script>\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":210,"y":580,"wires":[["a66b236cf6e0e804"]]},{"id":"a66b236cf6e0e804","type":"debug","z":"03cd1d2be26baaa9","g":"ad3cb4e43c26a2ee","name":"debug 37","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":400,"y":580,"wires":[]},{"id":"6a6da25fb8dd4573","type":"ui-template","z":"03cd1d2be26baaa9","g":"ad3cb4e43c26a2ee","group":"cb03a2a3aec89425","dashboard":"789c65a14af5d124","page":"19eb6d108e9275e2","name":"with icons","order":0,"width":"3","height":"1","head":"","format":"<template>\n  <div class=\"d-flex justify-space-around\">\n    <v-menu>\n      <template v-slot:activator=\"{ props }\">\n        <v-btn block color=\"primary\" v-bind=\"props\">\n          Select Option 2\n        </v-btn>\n      </template>\n      <v-list>\n        <v-list-item-group v-if=\"items.length > 0\">\n          <v-list-item v-for=\"(item, index) in items\" :key=\"index\" :value=\"index\"\n            @click=\"send({ payload: item.title })\">\n            <v-list-item-content class=\"d-flex align-center\">\n              <v-list-item-avatar>\n                <!-- Use the icon specified in the item object -->\n                <v-icon>{{ item.icon }}</v-icon>\n              </v-list-item-avatar>\n              <v-list-item-title class=\"text-h6\">{{ item.title }}</v-list-item-title>\n            </v-list-item-content>\n          </v-list-item>\n        </v-list-item-group>\n        <v-list-item v-else>\n          <v-list-item-content>No items available</v-list-item-content>\n        </v-list-item>\n      </v-list>\n    </v-menu>\n  </div>\n</template>\n\n<script>\n  export default {\n  data: () => ({\n    items: [\n      { title: 'Option 1', icon: 'mdi-check' },\n      { title: 'Option 2', icon: 'mdi-account' },\n      { title: 'Option 3', icon: 'mdi-star' },\n      { title: 'Option 4', icon: 'mdi-alert' },\n    ],\n  }),\n};\n</script>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":220,"y":620,"wires":[["1b1a7e8fddc09c07"]]},{"id":"1b1a7e8fddc09c07","type":"debug","z":"03cd1d2be26baaa9","g":"ad3cb4e43c26a2ee","name":"debug 39","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":400,"y":620,"wires":[]},{"id":"81d39df78d7fd9df","type":"ui-template","z":"03cd1d2be26baaa9","g":"ad3cb4e43c26a2ee","group":"cb03a2a3aec89425","dashboard":"789c65a14af5d124","page":"19eb6d108e9275e2","name":"with url","order":0,"width":"3","height":"1","head":"","format":"<template>\n  <div class=\"d-flex justify-space-around\">\n    <v-menu>\n      <template v-slot:activator=\"{ props }\">\n        <v-btn block color=\"primary\" v-bind=\"props\">\n          Select Option 3\n        </v-btn>\n      </template>\n      <v-list>\n          <v-list-item v-for=\"(item, index) in items\" :key=\"index\" :value=\"index\" @click=\"send({ payload: item.url })\">\n            <v-list-item-content class=\"d-flex align-center\">\n              <v-list-item-avatar>\n                <!-- Use the icon specified in the item object -->\n                <v-icon>{{ item.icon }}</v-icon>\n              </v-list-item-avatar>\n              <v-list-item-title class=\"text-h6\">{{ item.title }}</v-list-item-title>\n            </v-list-item-content>\n          </v-list-item>\n      </v-list>\n    </v-menu>\n  </div>\n</template>\n\n<script>\n  export default {\n  data: () => ({\n    items: [\n      { title: 'Option 1', icon: 'mdi-check', url: 'https://example.com/option1' },\n      { title: 'Option 2', icon: 'mdi-account', url: 'https://example.com/option2' },\n      { title: 'Option 3', icon: 'mdi-star', url: 'https://example.com/option3' },\n      { title: 'Option 4', icon: 'mdi-alert', url: 'https://example.com/option4' },\n    ],\n  }),\n};\n</script>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":220,"y":660,"wires":[["4b3b7886bb356094"]]},{"id":"4b3b7886bb356094","type":"debug","z":"03cd1d2be26baaa9","g":"ad3cb4e43c26a2ee","name":"debug 41","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":400,"y":660,"wires":[]},{"id":"cb03a2a3aec89425","type":"ui-group","name":"Test","page":"19eb6d108e9275e2","width":"25","height":"15","order":-1,"showTitle":true,"className":""},{"id":"789c65a14af5d124","type":"ui-base","name":"dash","path":"/dashboard"},{"id":"19eb6d108e9275e2","type":"ui-page","name":"Examples","ui":"789c65a14af5d124","path":"/examples","layout":"grid","theme":"a965ccfef139317a","order":-1,"className":""},{"id":"a965ccfef139317a","type":"ui-theme","name":"Default","colors":{"surface":"#ffffff","primary":"#0094ce","bgPage":"#eeeeee","groupBg":"#ffffff","groupOutline":"#cccccc"}}]

Also, there is over 300 posts in this topic, is it time to close this topic, and move to a new topic, otherwise it's becoming unwieldy for new visitors.

3 Likes

Funky interactions with CSS. Not 100% certain why (flex is not yet fully emblazoned in my mind like @joepavitt ) but removing the div wrapper <div class="d-flex justify-space-around"> (and its associated </div>) improves matters.

It might be a combination of grid layout (the dashboard page is set to grid mode) and the wrapper div was had a flex class)?

Sounds more like a breakpoint wrapping issue? (eg. flex-sm-wrap). The whole basis of a fixed column layout is a flawed concept, but at the core of the opinionated framework.

flex is not yet fully emblazoned in my mind

mnemonic:
grid should be used for 2 dimensions (rows and columns) > layout first
flex should be used for a single dimension (ie. row or column + direction) > content first

1 Like

I only used Flex because it was the only way that I could get the icons and the text aligned horizontally in the dropdown, and didn't consider that such additions would influence the placement of the 3x1 elements.

flex

Please - any new issues, either a new issue in the GitHub repo - or new a new post. Also helps searchability for issues for other users.

Does this relate to the Grid and Fixed options available under Page Layout? I am having trouble understanding this whole area at the moment.

Would it be useful if there were a Dashboard 2.0 category here?

2 Likes

We do have one in Dashboard 2.0 - FlowFuse Community

I'll gladly raise an issue, but I wasn't sure if it was a DB2 issue, or just my clumsy coding.
That's why I asked;

It may well be both :smile:

I actually suspect (on phone so can't check for sure) there may be a min-width on the select, set by Vuetify?

@joepavitt Do you want me to sort this?

@Paul-Reed suggesting new category somehow related to the dashboard - "Fighting with Dashboard 2.0 CSS"
I'll promise to visit it every day :slight_smile:

2 Likes

Joking aside, your mad CSS skillz would be most welcome :hugs:

2 Likes

That would be most appreciated. AFK today

A post was merged into an existing topic: Dashboard 2 development

Topic now closed due to being over 300 posts in this topic & continued at Dashboard 2 development

2 Likes