ganahrhr il y a 3 ans
Parent
commit
c2aa019fb0

+ 71 - 57
Pages/Account.razor

@@ -6,64 +6,78 @@
 
 @attribute [Authorize]
 
-<h3>Личный кабинет</h3>
 
-<EditForm Model="@account">
-    <table class="table-bordered" cellspacing="5" cellpadding="5">
-        <tbody>
-            <tr>
-                <td>UUID:</td>
-                <td>@account.UUID</td>
-            </tr>
-            <tr>
-                <td>Name:</td>
-                <td>@account.Name</td>
-            </tr>
-            <tr>
-                <td>Email:</td>
-                <td>@account.Email</td>
-            </tr>
-            <tr>
-                <td>ETH Address:</td>
-                <td>@account.eth_address</td>
-            </tr>
-            <tr>
-                <td>Balance:</td>
-                <td>@myBalance WEI</td>
-            </tr>
-        </tbody>
-    </table>
-</EditForm>
-
-@code {
-    private AccountModel account = new();
-    string myBalance = "";
-
-    protected override async Task OnInitializedAsync()
-    {
-        account = await GetCurrentAcc();
-        if (Blockchain.GetMain() != null)
-            myBalance = await account.GetBalance();
-    }
 
-    private async Task<AccountModel> GetCurrentAcc()
-    {
-        AccountModel account = new();
 
-        var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
-        var user = authState.User;
-
-        if (user.Identity.IsAuthenticated)
-        {
-            var currentUser = await UserManager.GetUserAsync(user);
-            var acc = AccountModel.Find(currentUser.Id);
-            if (acc != null)
-                account = acc;
-
-            account.AccRole = Role.User;
-            return account;
-        }
+<EditForm Model="@account">
+    <div class="fullpage-wrapper">
+        <header class="header header_account">
+            <img src="img/logo-dark.svg" alt="Логотип" class="logo header__logo">
+            <h1 class="title">Личный кабинет</h1>
+            <nav class="nav nav_dark header__nav">
+                <a href="Account" class="nav__link">Правовая информация</a>
+                <a href="Account" class="nav__link">Контакты</a>
+            </nav>
+        </header>
 
-        return null;
-    }
-}
+        <div class="account-content">
+            <sidebar class="profile-info">
+                <img src="https://place-hold.it/150x150" alt="Фото профиля" class="profile-info__img">
+                <div class="profile-info__list">
+                    <div class="profile-info__item">
+                        <div class="profile-info__link">@account.Name</div>
+                        <div class="profile-info__link">@account.Name</div>
+                    </div>
+                    @*<div class="profile-info__item">
+                        <div class="profile-info__link">@account.UUID</div>
+                    </div>*@
+                    <div class="profile-info__item">
+                        <a href="Account" class="profile-info__link">
+                            <img src="img/qual.svg" alt="qual" class="profile-info__link-img">
+                            Квалификация
+                        </a>
+                        <a href="Account" class="profile-info__link">
+                            <img src="img/rating.svg" alt="qual" class="profile-info__link-img">
+                            Рейтинги
+                        </a>
+                        <a href="Wallet" class="profile-info__link">
+                            <img src="img/wallet.svg" alt="qual" class="profile-info__link-img">
+                            Кошелек
+                        </a>
+                    </div>
+                    <div class="profile-info__item">
+                        <a href="Account" class="profile-info__link">
+                            <img src="img/exit.svg" alt="qual" class="profile-info__link-img">
+                            Выйти
+                        </a>
+                    </div>
+                </div>
+            </sidebar>
+            <main class="tabs">
+                <div class="tabs__controls">
+                    <a href="Account" class="tabs__btn tabs__btn_active">Загрузка материалов</a>
+                    <a href="Account" class="tabs__btn">Верификация</a>
+                    <a href="Account" class="tabs__btn">Библиотеки</a>
+                    <a href="Account" class="tabs__btn">Заказы</a>
+                </div>
+                <div class="tabs__content">
+                    <div class="upload">
+                        <h2 class="upload__title">Загрузка материала</h2>
+                        <form class="upload__form">
+                            <input type="text" placeholder="Наименование статьи" class="form-control upload__input">
+                            <input type="text" placeholder="Год издания" class="form-control upload__input">
+                            <label class="upload__label">
+                                <input type="text" placeholder="Автор" class="form-control upload__input">
+                                <div class="upload__input-descr">+ Добавить автора, указывать имена авторов через запятую</div>
+                            </label>
+                            <input type="text" placeholder="Ключевые слова" class="form-control upload__input">
+                            <textarea placeholder="Аннотация" class="form-control upload__textarea"></textarea>
+                            <input type="text" placeholder="Ссылка на статью" class="form-control upload__input">
+                            <button type="submit" class="upload__btn">загрузить на верификацию</button>
+                        </form>
+                    </div>
+                </div>
+            </main>
+        </div>
+    </div>
+</EditForm>

+ 41 - 0
Pages/Account.razor.cs

@@ -0,0 +1,41 @@
+using System;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Identity;
+using HyperCube.Models;
+
+namespace HyperCube.Pages
+{
+    public partial class Account
+    {
+        private AccountModel account = new();
+        string myBalance = "";
+
+        protected override async Task OnInitializedAsync()
+        {
+            account = await GetCurrentAcc();
+            if (Blockchain.GetMain() != null)
+                myBalance = await account.GetBalance();
+        }
+
+        private async Task<AccountModel> GetCurrentAcc()
+        {
+            AccountModel account = new();
+
+            var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
+            var user = authState.User;
+
+            if (user.Identity.IsAuthenticated)
+            {
+                var currentUser = await UserManager.GetUserAsync(user);
+                var acc = AccountModel.Find(currentUser.Id);
+                if (acc != null)
+                    account = acc;
+
+                account.AccRole = Role.User;
+                return account;
+            }
+
+            return null;
+        }
+    }
+}

+ 69 - 7
Pages/Index.razor

@@ -1,8 +1,70 @@
-@page "/"
+@inherits LayoutComponentBase
+@page "/"
 
-<center>
-    <h1>Цифровая библиотека научных материалов<br>
-        с системой экспертной обработки данных, позволяющая<br>
-        создавать бизнес экосистемы с цифровыми активами.
-    </h1>
-</center>
+<div class="fullpage-wrapper">
+    <header class="header header_main">
+        <img src="img/logo-light.svg" alt="Логотип" class="logo header__logo">
+        <nav class="nav nav_light header__nav">
+            <a href="#" class="nav__link">Правовая информация</a>
+            <a href="#" class="nav__link">Контакты</a>
+            <AuthorizeView>
+                <Authorized>
+                    @*<a class="nav__link" href="Identity/Account/Manage">@context.User.Identity.Name</a>*@
+                    <a class="nav__link" href="Account">@context.User.Identity.Name</a>
+                </Authorized>
+                <NotAuthorized>
+                    <a href="Identity/Account/Register" class="nav__link">Регистрация</a>
+                </NotAuthorized>
+            </AuthorizeView>
+        </nav>
+            <AuthorizeView>
+                <Authorized>
+                    <form method="post" action="Identity/Account/LogOut">
+                        <button type="submit" class="login-form__btn">Выход</button>
+                    </form>
+                </Authorized>
+                <NotAuthorized>
+                    <form class="login-form">
+                        <input type="text" class="form-control login-form__input">
+                        <input type="password" class="form-control login-form__input">
+                        <a href="Identity/Account/Login" class="login-form__btn">Войти</a>
+                    </form>
+                </NotAuthorized>
+            </AuthorizeView>
+        
+    </header>
+    <main class="slider">
+        <div class="slider__controls">
+            <img src="img/arrow_right.svg" class="slider__btn slider__btn-prev">
+            <div class="swiper-container slider__container">
+                <div class="swiper-wrapper">
+                    <div class="swiper-slide">
+                        <p class="slider__text"> Цифровая библиотека научных материалов с системой экспертной обработки данных, позволяющая создавать бизнес экосистемы с цифровыми активами. </p>
+                        <a href="#" class="slider__details-link"> подробнее </a>
+                    </div>
+                    <div class="swiper-slide">
+                        <p class="slider__text"> Цифровая библиотека научных материалов с системой экспертной обработки данных, позволяющая создавать бизнес экосистемы с цифровыми активами. </p>
+                        <a href="#" class="slider__details-link"> подробнее </a>
+                    </div>
+                    <div class="swiper-slide">
+                        <p class="slider__text"> Цифровая библиотека научных материалов с системой экспертной обработки данных, позволяющая создавать бизнес экосистемы с цифровыми активами. </p>
+                        <a href="#" class="slider__details-link"> подробнее </a>
+                    </div>
+                </div>
+            </div>
+            <img src="img/arrow_right.svg" class="slider__btn slider__btn-next">
+        </div>
+        <div class="slider__pagination">
+        </div>
+    </main>
+    <footer class="footer">
+        <img src="img/av_logo.svg" alt="AV logo" class="footer__logo">
+        <ul class="footer__links-list">
+            <li class="footer__links-item"><a href="#" class="footer__link">Telegram</a></li>
+            <li class="footer__links-item"><a href="#" class="footer__link">Discord</a></li>
+            <li class="footer__links-item"><a href="#" class="footer__link">Reddit</a></li>
+            <li class="footer__links-item"><a href="#" class="footer__link">FAQ</a></li>
+            <li class="footer__links-item"><a href="#" class="footer__link">Docs</a></li>
+        </ul>
+    </footer>
+</div>

+ 33 - 0
Pages/Wallet.razor

@@ -0,0 +1,33 @@
+@page "/wallet"
+@using Microsoft.AspNetCore.Identity;
+@inject AuthenticationStateProvider AuthenticationStateProvider
+@inject UserManager<IdentityUser> UserManager;
+
+<h3>Wallet</h3>
+
+<EditForm Model="@account">
+    <table class="table-bordered" cellspacing="5" cellpadding="5">
+        <tbody>
+            <tr>
+                <td>UUID:</td>
+                <td>@account.UUID</td>
+            </tr>
+            <tr>
+                <td>Name:</td>
+                <td>@account.Name</td>
+            </tr>
+            <tr>
+                <td>Email:</td>
+                <td>@account.Email</td>
+            </tr>
+            <tr>
+                <td>ETH Address:</td>
+                <td>@account.eth_address</td>
+            </tr>
+            <tr>
+                <td>Balance:</td>
+                <td>@myBalance WEI</td>
+            </tr>
+        </tbody>
+    </table>
+</EditForm>

+ 39 - 0
Pages/Wallet.razor.cs

@@ -0,0 +1,39 @@
+using System.Threading.Tasks;
+using HyperCube.Models;
+
+namespace HyperCube.Pages
+{
+    public partial class Wallet
+    {
+        private AccountModel account = new();
+        string myBalance = "";
+
+        protected override async Task OnInitializedAsync()
+        {
+            account = await GetCurrentAcc();
+            if (Blockchain.GetMain() != null)
+                myBalance = await account.GetBalance();
+        }
+
+        private async Task<AccountModel> GetCurrentAcc()
+        {
+            AccountModel account = new();
+
+            var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
+            var user = authState.User;
+
+            if (user.Identity.IsAuthenticated)
+            {
+                var currentUser = await UserManager.GetUserAsync(user);
+                var acc = AccountModel.Find(currentUser.Id);
+                if (acc != null)
+                    account = acc;
+
+                account.AccRole = Role.User;
+                return account;
+            }
+
+            return null;
+        }
+    }
+}

+ 1 - 2
Pages/_Host.cshtml

@@ -16,8 +16,7 @@
     <title>HyperCube</title>
     <base href="~/" />
     <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
-    <link href="css/site.css" rel="stylesheet" />
-    <link href="HyperCube.styles.css" rel="stylesheet" />
+    <link rel="stylesheet" href="css/style.min.css">
 </head>
 <body>
     <component type="typeof(App)" render-mode="ServerPrerendered" />

+ 2 - 62
Shared/MainLayout.razor

@@ -1,65 +1,5 @@
 @inherits LayoutComponentBase
-@using Console = HyperCube.Utils.AdvConsole;
 
 <div class="page">
-    <div class="sidebar">
-        <NavMenu />
-    </div>
-
-    <div class="main">
-        <div class="top-row px-4 auth">
-            @if (connected)
-            {
-                <span class="dot-green"></span>
-            }
-            else
-            {
-                <span class="dot-red"></span>
-            }
-            <EditForm Model="Networks">
-                <InputSelect @bind-Value="Networks" class="custom-select">
-                    @foreach (var value in Networks)
-                    {
-                        <option>@value</option>
-                    }
-                </InputSelect>
-            </EditForm>
-            <a class="navbar-brand" href="">Правовая информация</a>
-            <a class="navbar-brand" href="">Контакты</a>
-            <LoginDisplay />
-        </div>
-
-        <div class="content px-4">
-            @Body
-        </div>
-    </div>
-</div>
-
-@using HyperCube.Models;
-
-@code {
-    List<string> Networks = new();
-    bool connected = false;
-
-    protected override async Task OnInitializedAsync()
-    {
-        try
-        {
-            await Blockchain.GetInstance().Initialize();
-            if (Blockchain.Connected != "" && Blockchain.Connected != "none")
-            {
-                connected = true;
-                Networks.Add(Blockchain.Connected);
-            }
-            else
-            {
-                connected = false;
-                Networks.Add("Blockchain not connected");
-            }
-        }
-        catch (Exception e)
-        {
-            Console.WriteLine(e.Message + ", stack trace:" + e.StackTrace);
-        }
-    }
-}
+    @Body
+</div>

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/css/style.min.css


BIN
wwwroot/fonts/Bahnschrift.woff2


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/arrow_right.svg


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/av_logo.svg


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/chart.svg


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/exit.svg


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/logo-dark.svg


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/logo-light.svg


Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/qual.svg


+ 1 - 0
wwwroot/img/rating.svg

@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.73 4.78"><defs><style>.cls-1{fill:#fff;fill-rule:evenodd;}</style></defs><path class="cls-1" d="M297.9,419.35h0a1.12,1.12,0,0,1,1.12,1.11v2.43h-2.23v-2.43a1.11,1.11,0,0,1,1.11-1.11m2.85-1.24h0a1.12,1.12,0,0,1,1.12,1.11v3.67h-2.23v-3.67A1.11,1.11,0,0,1,300.75,418.11Zm-5.5,3.56h0a1.11,1.11,0,0,1,1.11,1.11v.11h-2.23v-.11A1.12,1.12,0,0,1,295.25,421.67Z" transform="translate(-294.13 -418.11)"/></svg>

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
wwwroot/img/wallet.svg


+ 1 - 0
wwwroot/js/script.min.js

@@ -0,0 +1 @@
+const swiper=new Swiper(".swiper-container",{pagination:{el:".slider__pagination",clickable:true,bulletClass:"slider__pagination-bullet",bulletActiveClass:"slider__pagination-bullet_active"},navigation:{lockClass:"slider__btn_locked",nextEl:".slider__btn-next",prevEl:".slider__btn-prev"}});

Fichier diff supprimé car celui-ci est trop grand
+ 14 - 0
wwwroot/js/swiper-bundle.min.js