|
9 | 9 | <div class="@NavMenuCssClass" @onclick="ToggleNavMenu"> |
10 | 10 | <ul class="nav flex-column"> |
11 | 11 | <li class="nav-item px-3"> |
12 | | - <NavLink class="nav-link" href="control/v1/camera/0/" Match="NavLinkMatch.All"> |
13 | | - <span class="oi oi-camera-slr" aria-hidden="true"></span> Camera |
14 | | - </NavLink> |
| 12 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.Cameras) |
| 13 | + { |
| 14 | + <NavLink class="nav-link" href=@GetSetupURL("camera", key.Key) Match="NavLinkMatch.All"> |
| 15 | + <span class="oi oi-camera-slr" aria-hidden="true"></span> @GetDisplayName("Camera", key.Key) |
| 16 | + </NavLink> |
| 17 | + } |
15 | 18 | </li> |
16 | 19 | <li class="nav-item px-3"> |
17 | | - <NavLink class="nav-link" href="/control/v1/covercalibrator/0/" Match="NavLinkMatch.All"> |
18 | | - <span class="oi oi-contrast" aria-hidden="true"></span> CoverCalibrator |
19 | | - </NavLink> |
| 20 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.CoverCalibrators) |
| 21 | + { |
| 22 | + <NavLink class="nav-link" href=@GetSetupURL("covercalibrator", key.Key) Match="NavLinkMatch.All"> |
| 23 | + <span class="oi oi-contrast" aria-hidden="true"></span> @GetDisplayName("CoverCalibrator", key.Key) |
| 24 | + </NavLink> |
| 25 | + } |
20 | 26 | </li> |
21 | 27 | <li class="nav-item px-3"> |
22 | | - <NavLink class="nav-link" href="control/v1/dome/0/" Match="NavLinkMatch.All"> |
23 | | - <span class="oi oi-aperture" aria-hidden="true"></span> Dome |
24 | | - </NavLink> |
| 28 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.Domes) |
| 29 | + { |
| 30 | + <NavLink class="nav-link" href=@GetSetupURL("dome", key.Key) Match="NavLinkMatch.All"> |
| 31 | + <span class="oi oi-aperture" aria-hidden="true"></span> @GetDisplayName("Dome", key.Key) |
| 32 | + </NavLink> |
| 33 | + } |
25 | 34 | </li> |
26 | 35 | <li class="nav-item px-3"> |
27 | 36 |
|
28 | 37 | @foreach (var key in ASCOM.Alpaca.DeviceManager.FilterWheels) |
29 | 38 | { |
30 | 39 | <NavLink class="nav-link" href=@GetSetupURL("filterwheel", key.Key) Match="NavLinkMatch.All"> |
31 | | - <span class="oi oi-sun" aria-hidden="true"></span> Filter Wheel - @key.Key |
| 40 | + <span class="oi oi-sun" aria-hidden="true"></span> @GetDisplayName("Filter Wheel", key.Key) |
32 | 41 | </NavLink> |
33 | 42 | } |
34 | 43 | </li> |
35 | 44 | <li class="nav-item px-3"> |
36 | 45 |
|
37 | | - @foreach(var key in ASCOM.Alpaca.DeviceManager.Focusers) |
| 46 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.Focusers) |
38 | 47 | { |
39 | 48 | <NavLink class="nav-link" href=@GetSetupURL("focuser", key.Key) Match="NavLinkMatch.All"> |
40 | | - <span class="oi oi-elevator" aria-hidden="true"></span> Focuser - @key.Key |
| 49 | + <span class="oi oi-elevator" aria-hidden="true"></span> @GetDisplayName("Focuser", key.Key) |
41 | 50 | </NavLink> |
42 | 51 | } |
43 | 52 | </li> |
44 | 53 | <li class="nav-item px-3"> |
45 | | - <NavLink class="nav-link" href="control/v1/observingconditions/0/" Match="NavLinkMatch.All"> |
46 | | - <span class="oi oi-cloudy" aria-hidden="true"></span> ObservingConditions |
47 | | - </NavLink> |
| 54 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.ObservingConditions) |
| 55 | + { |
| 56 | + <NavLink class="nav-link" href=@GetSetupURL("observingconditions", key.Key) Match="NavLinkMatch.All"> |
| 57 | + <span class="oi oi-cloudy" aria-hidden="true"></span> @GetDisplayName("ObservingConditions", key.Key) |
| 58 | + </NavLink> |
| 59 | + } |
48 | 60 | </li> |
49 | 61 | <li class="nav-item px-3"> |
50 | 62 | @foreach (var key in ASCOM.Alpaca.DeviceManager.Rotators) |
51 | 63 | { |
52 | 64 | <NavLink class="nav-link" href=@GetSetupURL("rotator", key.Key) Match="NavLinkMatch.All"> |
53 | | - <span class="oi oi-elevator" aria-hidden="true"></span> Rotator - @key.Key |
| 65 | + <span class="oi oi-loop-circular" aria-hidden="true"></span> @GetDisplayName("Rotator", key.Key) |
54 | 66 | </NavLink> |
55 | 67 | } |
56 | 68 | </li> |
57 | 69 | <li class="nav-item px-3"> |
58 | | - <NavLink class="nav-link" href="setup/v1/safetymonitor/0/setup" Match="NavLinkMatch.All"> |
59 | | - <span class="oi oi-ban" aria-hidden="true"></span> SafetyMonitor |
60 | | - </NavLink> |
| 70 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.SafetyMonitors) |
| 71 | + { |
| 72 | + <NavLink class="nav-link" href=@GetSetupURL("safetymonitor", key.Key) Match="NavLinkMatch.All"> |
| 73 | + <span class="oi oi-ban" aria-hidden="true"></span> @GetDisplayName("SafetyMonitor", key.Key) |
| 74 | + </NavLink> |
| 75 | + } |
61 | 76 | </li> |
62 | 77 | <li class="nav-item px-3"> |
63 | | - <NavLink class="nav-link" href="control/v1/switch/0/" Match="NavLinkMatch.All"> |
64 | | - <span class="oi oi-circle-check" aria-hidden="true"></span> Switch |
65 | | - </NavLink> |
| 78 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.Switches) |
| 79 | + { |
| 80 | + <NavLink class="nav-link" href=@GetSetupURL("switch", key.Key) Match="NavLinkMatch.All"> |
| 81 | + <span class="oi oi-circle-check" aria-hidden="true"></span> @GetDisplayName("Switch", key.Key) |
| 82 | + </NavLink> |
| 83 | + } |
66 | 84 | </li> |
67 | 85 | <li class="nav-item px-3"> |
68 | | - <NavLink class="nav-link" href="control/v1/telescope/0/" Match="NavLinkMatch.All"> |
69 | | - <span class="oi oi-star" aria-hidden="true"></span> Telescope |
70 | | - </NavLink> |
| 86 | + @foreach (var key in ASCOM.Alpaca.DeviceManager.Telescopes) |
| 87 | + { |
| 88 | + <NavLink class="nav-link" href=@GetSetupURL("Telescope", key.Key) Match="NavLinkMatch.All"> |
| 89 | + <span class="oi oi-star" aria-hidden="true"></span> @GetDisplayName("Telescope", key.Key) |
| 90 | + </NavLink> |
| 91 | + } |
71 | 92 | </li> |
72 | 93 | <li class="nav-item px-3"> |
73 | 94 | <NavLink class="nav-link" href="setup" Match="NavLinkMatch.All"> |
|
115 | 136 | return $"control/v1/{dev}/{index}/"; |
116 | 137 | } |
117 | 138 |
|
| 139 | + string GetDisplayName(string dev, int index) |
| 140 | + { |
| 141 | + if(index == 0) |
| 142 | + { |
| 143 | + return dev; |
| 144 | + } |
| 145 | + return $"{dev} - {index}"; |
| 146 | + } |
| 147 | + |
118 | 148 | void Shutdown() |
119 | 149 | { |
120 | 150 | try |
|
0 commit comments