瀏覽代碼

widjets menu

ganahrhr 3 年之前
父節點
當前提交
ca053ba26f
共有 4 個文件被更改,包括 64 次插入13 次删除
  1. 25 11
      Pages/Desktop.razor
  2. 20 2
      Pages/Desktop.razor.cs
  3. 12 0
      wwwroot/css/style.css
  4. 7 0
      wwwroot/js/main.js

+ 25 - 11
Pages/Desktop.razor

@@ -69,12 +69,18 @@
     <div class="second-block">
         <div class="header-block header-block_second">
             <div class="header-block__text">Рабочий стол</div>
-            <div class="header-block__span">
+            <div class="header-block__span" @onclick="@(() => WidgetMenuClick(".second-block__dropbox"))">
                 <span></span>
                 <span></span>
                 <span></span>
             </div>
         </div>
+
+        <div class="second-block__dropbox" id="desktop_menu">
+            <p class="third-block__dropbox__header__text">Выбрать действие</p>            
+            <a class="third-block__dropbox__search" style="cursor:pointer" @onclick="NewDocument">Новый документ</a>
+        </div>
+
         <div class="second-block__button">
             <button class=@_uploadButtonClass @onclick="(() => SwitchDesktopTab(0))">Загрузка</button>
             <button class=@_verifyButtonClass @onclick="(() => SwitchDesktopTab(1))">Верифицировать</button>
@@ -84,10 +90,10 @@
             <EditForm Model="@_article">
                 <p>Загрузка материала</p>
                 <label class="upload__label">
-                    <InputSelect class="form-control upload__input" @bind-Value="_event">
-                        <option value="">Выбрать мероприятие</option>
-                        <option value="hackathon22_01">Хакатон 2022</option>
-                    </InputSelect>
+                    <select class="form-control upload__input">
+                        <option value="">Выберете мероприятие</option>
+                        <option selected value="hackathon22_01">Хакатон 2022</option>
+                    </select>
                 </label>
                 <label class="upload__label">
                     <InputText type="text" placeholder="Наименование статьи" class="form-control upload__input" @bind-Value="_article.Name" />
@@ -110,7 +116,9 @@
                     <div class="upload__input-descr">Status: @_status</div>
                 </label>
                 <div class="second-block__input__file__label__box">
-                    <InputFile class="second-block__input__file" id="input_file" OnChange="@HandleUpload" accept="application/pdf" />
+                    <InputFile class="second-block__input__file" id="input_file" OnChange="@HandleUpload"
+                               accept="application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document,
+                                    text/html, text/plain, application/rtf" />
                     <label for="input_file" class="second-block__input__file__label" id="file_label">
                         <span>+</span>
                         <p>Прикрепить файл</p>
@@ -124,12 +132,18 @@
         </div>
         <div class=@_verifyTabClass>
             <p>Валидация материала</p>
-            <label class="upload__label upload__label_mb">                
+            <label class="upload__label upload__label_mb">
                 <select class="form-control upload__input" @onchange="DocSelect_OnChange">
                     <option value="">Выберите материал</option>
                     @foreach (var article in AppData.Articles)
                     {
-                        <option value=@article.Value.ID>@article.Value.Name</option>
+                        if (article.Value.ID == _article.ID)
+                            _articleDropdownOption = $"<option selected value={article.Value.ID}>{article.Value.Name}</option>";
+
+                        else
+                            _articleDropdownOption = $"<option value={article.Value.ID}>{article.Value.Name}</option>";
+
+                        @((MarkupString)_articleDropdownOption)
                     }
                 </select>
             </label>
@@ -168,13 +182,13 @@
     <div class="third-block">
         <div class="header-block header-block_third">
             <div class="header-block__text">Библиотека</div>
-            <div class="header-block__span" id="sort_libary">
+            <div class="header-block__span" @onclick="@(() => WidgetMenuClick(".third-block__dropbox"))">
                 <span></span>
                 <span></span>
                 <span></span>
             </div>
         </div>
-        <div class="third-block__dropbox">
+        <div class="third-block__dropbox" id="library_menu">
             <p class="third-block__dropbox__header__text">Сортировка</p>
             <p class="third-block__dropbox__header__text">Выбрать</p>
             <select name="" id="" class="third-block__dropbox__select">
@@ -187,7 +201,7 @@
                 <input type="text">
             </label>
             <label for="" class="third-block__dropbox__search">
-                Найти по мераприятию
+                Найти по мероприятию
                 <input type="text">
             </label>
             <label for="" class="third-block__dropbox__search"></label>

+ 20 - 2
Pages/Desktop.razor.cs

@@ -32,6 +32,8 @@ namespace HyperCube.Pages
         UserManager<IdentityUser> UserManager { get; set; }
         [Inject]
         AppData AppData { get; set; }
+        [Inject]
+        public IJSRuntime JsRuntime { get; set; }
 
         const string STORAGE_FOLDER_NAME = "articles_storage";
         const long MAX_FILE_SIZE = 5120000; //bytes
@@ -50,9 +52,9 @@ namespace HyperCube.Pages
 
         int _counter = 1;
 
-        string _event = "";
+        //string _event = "";
         string _status;
-        //string _header;
+        string _articleDropdownOption = "";
         //string _storageFolderPath;
         MemoryStream _memoryStream;
         ModalInfo _modalInfo_error { get; set; }
@@ -112,6 +114,12 @@ namespace HyperCube.Pages
             }
         }
 
+        async Task WidgetMenuClick(string menuname)
+        {            
+            await JsRuntime.InvokeVoidAsync("WidgetMenuClick", menuname);
+            _counter = 1;
+        }
+
         async Task HandleUpload(InputFileChangeEventArgs e)
         {
             _modalLoading.Open();
@@ -322,6 +330,16 @@ namespace HyperCube.Pages
             _modalLoading.Close();
         }
 
+        void NewDocument()
+        {
+            _article = new();
+            _articleClone = new();
+            _document = null;
+            _memoryStream = null;
+
+            _status = "Blank document created";
+        }
+
         async Task SaveDocument_OnClick(ArticleStatus articleNewStatus)
         {
             Console.WriteLine($"SaveDocument_OnClick. DocID: {_article.ID}, Status: {_article.Status}");

+ 12 - 0
wwwroot/css/style.css

@@ -1368,6 +1368,18 @@ footer {
     height: 12px;
     background: #f27e00; }
 
+.second-block__dropbox {
+    display: none;
+    position: absolute;
+    top: 80px;
+    left: 68.5%;
+    -webkit-transform: translateX(-100%);
+    -ms-transform: translateX(-100%);
+    transform: translateX(-100%);
+    background-color: #fff;
+    padding: 20px;
+    z-index: 2; }
+
 .third-block__dropbox {
   display: none;
   position: absolute;

+ 7 - 0
wwwroot/js/main.js

@@ -6,6 +6,13 @@ function BodyScroll(mode)
         $('body').css('overflow', 'auto');
 }
 
+function WidgetMenuClick(menu)
+{
+    //console.log('WidgetMenuClick:' + menu);
+    if (!$(menu).queue().length) {
+        $(menu).fadeToggle("fast", "linear");
+    }
+}
 
 // Загрузка файлов