-
Notifications
You must be signed in to change notification settings - Fork 19
FAQ
While Tuxboard accepts a User Id for it's building of default dashboards, it's not included out of the box because of two reasons:
- Not everyone uses Identity and may have rolled their own Authorization/Authentication scheme. I've seen User Id's as integers and GUIDs so modifications can be made to accommodate specific requirements.
- Users may not want a user-centric dashboard; Simply display a static dashboard with no interactive widgets or settings.
Based on everything created through the Tuxboard.Examples repository, I decided to create a user-based example (09-User-Dashboard) using the commonly-seen "Register/Login" ASP.NET Demo Project using authentication. The companion post is located on DanylkoWeb.com.
So you can register/login a user and they'll be given a dashboard based on defaults.
I'll be honest. When I initially started this project, the dashboards were created using native JavaScript (ok, maybe a little bit of jQuery). I decided to move forward with native JS for five reasons:
- JavaScript is the common denominator for the web so it made sense to update my library.
However, there is one exception I'm considering: TypeScript.
At one point, I may move it over to TypeScript, but for now, I decided to keep it simple. I'm now using TypeScript for the examples. - Native JavaScript is small when written well. With the web becoming bloated with all of these frameworks, I wanted to keep it lean.
- It uses most of the latest ES2016 features like fetch and arrow functions so extra libraries aren't required. (sorry IE).
-
I found a Bootstrap library written in native JavaScript. ;-)
Bootstrap 5 is coming and, by design, it uses vanilla JavaScript, no jQuery.
Bootstrap 5 is already here! This is being used for specific controls in Tuxboard (specifically, only the Dropdown and Modal). - With every single JS framework out there, I'm an expert in none of them. The JavaScript (tuxboard.js) is small enough where a person could fork this repository and work on a Tuxboard.UI. version (i.e. Tuxboard.UI.Vue).
Bootstrap has been around for a long time and has become a standard for developers for the ease of use and JavaScript library of UI components (Tailwind is coming up from the rear though and is becoming JUST as popular).
As I mentioned before, one of my goals for this dashboard library was to make Tuxboard declarative, then programmatic. This means if a change was required in the HTML, CSS, or JavaScript, it could be modified without compilation of C# code. I wanted NO HTML, CSS, OR JAVASCRIPT IN C# CODE.
With that said, I wanted Tuxboard to be an easy way to swap out a CSS library and apply those styles to Widgets and Layouts based on the library and not rely on any C# code.
Most of the views are represented in each core ViewComponent and Widget layouts.
A Widget is an HTML Control to be used throughout the Dashboard.
A WidgetPlacement is a reference to a widget used on a dashboard with personalized settings attached to it. So essentially, it's a reference to a Widget.
Let's break this down with an example.
An RSS Feed could be a Widget so that users can enter or select an RSS URL feed and always see their updated news on the dashboard. Using that widget, a user can add multiple RSS Widgets to their dashboard. Every time they add a new RSS Widget, we are using the Widget template to create a WidgetPlacement on the dashboard. Each item on a dashboard is considered a WidgetPlacement referring to a Widget along with it's default WidgetSettings.
Programmatically, a Widget would be considered the abstract class with the WidgetPlacement as the instance of a Widget.
Yes, I've started building an entire collection of dashboards and blog posts on how to build on each one.
I've deleted the old dashboards with new, updated TypeScript/JavaScript examples to complement the blog posts.
The repository is called Tuxboard.Examples and contains the following examples:
-
01-SimpleDashboard
The simplest way to create a static dashboard; VERY basic; no JavaScript with no features (related post)
-
02-WidgetsExample
A simple dashboard with a simple widget (related post)
-
03-DragWidgets
Using TypeScript to move Widgets around on the dashboard (related post)
-
04-Tuxbar
Demonstrates how to create a complimentary toolbar for Tuxboard (related post)
-
05-Layout-1
Create a simple layout dialog so users can adjust how their dashboard is structured (related post)
-
06-Layout-2
Create an advanced layout dialog for more complex layouts (related post)
-
07-Add-Widgets
Create an Add Widget dialog (related post)
-
08-Widget-Toolbar
Adding buttons and dropdown to a widget's header (related post)
-
09-User-Dashboard
Create user-specific dashboards when users log in (related post)
I'll be creating additional examples based on features and enhancements added to Tuxboard so stay tuned!
Over the years, most users aren't looking for the flashy, glitzy features. They want something that works and can be expanded on later.
When I say "static dashboard," this translates to "public dashboard" which can't be modified and is set in stone. If you want a more personalized dashboard, you can add the features later.
Some companies like the static dashboard with default widgets for everyone who visits. (shrug)