moved access token to browser based

This commit is contained in:
2023-07-26 22:10:10 -06:00
parent 87fc062dfb
commit b03e81caf1
12 changed files with 118 additions and 240 deletions

View File

@@ -0,0 +1,49 @@
@code
{
[Parameter, EditorRequired]
public Func<string,Task> SetToken { get; set; } = default!;
private Modal modal { get; set; } = default!;
private string tokenInput { get; set; } = "";
protected override void OnAfterRender(bool firstRender)
{
if(firstRender)
modal.Show();
}
}
<Modal @ref="modal">
<Title>
<h3>Canvas Token</h3>
</Title>
<Body>
<div>
<p>
Please input your canvas token to enable canvas integration
</p>
<p>
We only store the token encrypted in your browser. We do not store the token on our servers.
</p>
<p>
You can get your canvas token <a href="https://snow.instructure.com/profile/settings">here</a>
</p>
<form
onsubmit:preventDefault="true"
@onsubmit="async () => await SetToken(tokenInput)"
>
<input
type="text"
class="form-control"
@bind="tokenInput"
@bind:event="oninput"
/>
</form>
</div>
</Body>
<Footer>
</Footer>
</Modal>

View File

@@ -1,70 +0,0 @@
.page {
position: relative;
display: flex;
flex-direction: column;
}
main {
flex: 1;
}
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row ::deep a, .top-row .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
}
.top-row a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row:not(.auth) {
display: none;
}
.top-row.auth {
justify-content: space-between;
}
.top-row a, .top-row .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page {
flex-direction: row;
}
.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row {
position: sticky;
top: 0;
z-index: 1;
}
.top-row, article {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}

View File

@@ -3,8 +3,6 @@
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
@inject CoursePlanner planner
@inject ProtectedLocalStorage BrowserStorage
@inject BrowserStorageManagement storage
@code {
private bool showNewModule { get; set; } = false;

View File

@@ -1,30 +0,0 @@
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">Management.Web</a>
<button
title="Navigation menu"
class="navbar-toggler"
@onclick="ToggleNavMenu"
>
<span class="navbar-toggler-icon"></span>
</button>
</div>
</div>
<div class="@NavMenuCssClass nav-scrollable" @onclick="ToggleNavMenu">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link px-3" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</div>
</nav>
</div>
@code {
private bool collapseNavMenu = true; private string? NavMenuCssClass =>
collapseNavMenu ? "collapse" : null; private void ToggleNavMenu()
{
collapseNavMenu = !collapseNavMenu;
}
}

View File

@@ -1,68 +0,0 @@
.navbar-toggler {
background-color: rgba(255, 255, 255, 0.1);
}
.top-row {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}
.navbar-brand {
font-size: 1.1rem;
}
.oi {
width: 2rem;
font-size: 1.1rem;
vertical-align: text-top;
top: -2px;
}
.nav-item {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.nav-item:first-of-type {
padding-top: 1rem;
}
.nav-item:last-of-type {
padding-bottom: 1rem;
}
.nav-item ::deep a {
color: #d7d7d7;
border-radius: 4px;
height: 3rem;
display: flex;
align-items: center;
line-height: 3rem;
}
.nav-item ::deep a.active {
background-color: rgba(255,255,255,0.25);
color: white;
}
.nav-item ::deep a:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
@media (min-width: 641px) {
.navbar-toggler {
display: none;
}
.collapse {
/* Never collapse the sidebar for wide screens */
display: block;
}
.nav-scrollable {
/* Allow sidebar to scroll for tall menus */
height: calc(100vh - 3.5rem);
overflow-y: auto;
}
}