Browse Source

文章编辑优化

懒得勤快 4 years ago
parent
commit
8ccb4a4961

+ 1 - 1
src/Masuit.MyBlogs.Core/Configs/MappingProfile.cs

@@ -45,7 +45,7 @@ namespace Masuit.MyBlogs.Core.Configs
             CreateMap<PostCommand, Post>().ReverseMap();
             CreateMap<Post, PostModelBase>();
             CreateMap<Post, PostHistoryVersion>().ForMember(p => p.Id, e => e.Ignore()).ForMember(v => v.PostId, e => e.MapFrom(p => p.Id));
-            CreateMap<Post, PostDto>().ForMember(p => p.CategoryName, e => e.MapFrom(p => p.Category.Name)).ReverseMap();
+            CreateMap<Post, PostDto>().ForMember(p => p.CategoryName, e => e.MapFrom(p => p.Category.Name)).ForMember(p => p.LimitMode, e => e.MapFrom(p => p.LimitMode ?? RegionLimitMode.All)).ReverseMap();
             CreateMap<PostCommand, PostDto>().ReverseMap();
             CreateMap<PostHistoryVersion, PostDto>().ForMember(p => p.CategoryName, e => e.MapFrom(p => p.Category.Name)).ReverseMap();
             CreateMap<Post, PostViewModel>().ForMember(p => p.CategoryName, e => e.MapFrom(p => p.Category.Name)).ForMember(p => p.PostDate, e => e.MapFrom(p => p.PostDate.ToString("yyyy-MM-dd HH:mm:ss"))).ForMember(p => p.ModifyDate, e => e.MapFrom(p => p.ModifyDate.ToString("yyyy-MM-dd HH:mm:ss"))).ReverseMap();

+ 2 - 2
src/Masuit.MyBlogs.Core/Controllers/PostController.cs

@@ -377,7 +377,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [ResponseCache(Duration = 600, VaryByHeader = "Cookie")]
         public ActionResult GetTag()
         {
-            return ResultData(PostService.GetTags().Keys);
+            return ResultData(PostService.GetTags().Where(p => p.Value > 1).Select(x => x.Key).OrderBy(s => s));
         }
 
         /// <summary>
@@ -387,7 +387,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [Route("all"), ResponseCache(Duration = 600, VaryByHeader = "Cookie")]
         public async Task<ActionResult> All()
         {
-            ViewBag.tags = new Dictionary<string, int>(PostService.GetTags().Where(x => x.Value > 1));
+            ViewBag.tags = new Dictionary<string, int>(PostService.GetTags().Where(x => x.Value > 1).OrderBy(x => x.Key));
             ViewBag.cats = await CategoryService.GetAll(c => c.Post.Count, false).ToDictionaryAsync(c => c.Id, c => c.Name); //category
             ViewBag.seminars = await SeminarService.GetAll(c => c.Post.Count, false).ToDictionaryAsync(c => c.Id, c => c.Title); //seminars
             return View();

+ 3 - 2
src/Masuit.MyBlogs.Core/Masuit.MyBlogs.Core.csproj

@@ -2,7 +2,7 @@
 
     <PropertyGroup>
         <TargetFramework>net5.0</TargetFramework>
-        <ServerGarbageCollection>true</ServerGarbageCollection>
+        <ServerGarbageCollection>false</ServerGarbageCollection>
         <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
         <Authors>懒得勤快</Authors>
         <Product>懒得勤快的博客</Product>
@@ -32,6 +32,7 @@
         <PackageReference Include="CacheManager.Serialization.Json" Version="1.2.0" />
         <PackageReference Include="CacheManager.StackExchange.Redis" Version="1.2.0" />
         <PackageReference Include="CHTCHSConv" Version="1.0.0" />
+        <PackageReference Include="CLRStats" Version="1.0.0" />
         <PackageReference Include="CSRedisCore" Version="3.6.6" />
         <PackageReference Include="EFCoreSecondLevelCacheInterceptor" Version="3.1.2" />
         <PackageReference Include="Hangfire" Version="1.7.24" />
@@ -56,7 +57,7 @@
         <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.11" />
         <PackageReference Include="TimeZoneConverter" Version="3.5.0" />
         <PackageReference Include="WilderMinds.RssSyndication" Version="1.7.0" />
-        <PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="5.2.4" />
+        <PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="5.2.5" />
     </ItemGroup>
     <ItemGroup>
         <Content Update="appsettings.json">

+ 1 - 1
src/Masuit.MyBlogs.Core/Models/DTO/PostDto.cs

@@ -131,7 +131,7 @@ namespace Masuit.MyBlogs.Core.Models.DTO
         /// <summary>
         /// 限制模式
         /// </summary>
-        public RegionLimitMode? LimitMode { get; set; }
+        public RegionLimitMode LimitMode { get; set; }
 
         /// <summary>
         /// 限制地区,逗号分隔

+ 6 - 1
src/Masuit.MyBlogs.Core/Startup.cs

@@ -1,5 +1,6 @@
 using Autofac;
 using Autofac.Extensions.DependencyInjection;
+using CLRStats;
 using CSRedis;
 using EFCoreSecondLevelCacheInterceptor;
 using Hangfire;
@@ -164,7 +165,11 @@ namespace Masuit.MyBlogs.Core
             app.SetupHttpsRedirection(Configuration);
             app.UseDefaultFiles().UseStaticFiles();
             app.UseSession().UseCookiePolicy(); //注入Session
-            app.UseWhen(c => c.Session.Get<UserInfoDto>(SessionKey.UserInfo)?.IsAdmin == true, builder => builder.UseMiniProfiler());
+            app.UseWhen(c => c.Session.Get<UserInfoDto>(SessionKey.UserInfo)?.IsAdmin == true, builder =>
+            {
+                builder.UseMiniProfiler();
+                builder.UseCLRStatsDashboard();
+            });
             app.UseWhen(c => !c.Request.Path.StartsWithSegments("/_blazor"), builder => builder.UseMiddleware<RequestInterceptMiddleware>()); //启用网站请求拦截
             app.SetupHangfire();
             app.UseResponseCaching().UseResponseCompression(); //启动Response缓存

+ 1 - 2
src/Masuit.MyBlogs.Core/wwwroot/Scripts/global/counter.js

@@ -162,7 +162,6 @@ function showLine() {
                 }],
             tooltip: {
                 trigger: 'axis',
-
                 axisPointer: {
                     animation: false
                 }
@@ -185,7 +184,7 @@ function showLine() {
                         var dt=new Date(value);
                         return dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds()
                     }
-                  },
+                },
                 splitLine: {
                     show: false
                 }

+ 18 - 10
src/Masuit.MyBlogs.Core/wwwroot/ng-views/controllers/main.js

@@ -229,10 +229,14 @@
 			window.location.href = "/passport/login";
 		}
 	}
+
 	this.CheckLogin = $scope.CheckLogin;
-	this.getmsg = function() {
-		$scope.request("/dashboard/getmessages", null, function(res) {
-			$scope.Msgs = res.Data;
+
+	setInterval(function() {
+		fetch("/dashboard/getmessages").then(function(response) {
+            return response.json();
+        }).then(function(res) {
+            $scope.Msgs = res.Data;
 			if(res.Data.post.length > 0) {
 				iziToast.info({
 					title:'待审核文章',
@@ -257,10 +261,13 @@
 					transitionIn:'bounceInRight',
 				});
 			}
-		});
-
-		$http.post("/msg/GetUnreadMsgs").then(function(res) {
-			$scope.InternalMsgs = res.data.Data;
+        }).catch(function(e) {
+            console.log("Oops, error");
+        });
+		fetch("/msg/GetUnreadMsgs").then(function(response) {
+            return response.json();
+        }).then(function(res) {
+            $scope.InternalMsgs = res.data.Data;
 			if($scope.InternalMsgs.length > 0) {
 				iziToast.info({
 					title:'未读消息',
@@ -269,9 +276,10 @@
 					transitionIn:'bounceInRight',
 				});
 			}
-		});
-	}
-	this.getmsg();
+        }).catch(function(e) {
+            console.log("Oops, error");
+        });
+    },5000);
 	$scope.read = function(id) {
 		$http.post("/msg/read", {
 			id

+ 4 - 6
src/Masuit.MyBlogs.Core/wwwroot/ng-views/views/post/edit.html

@@ -3,7 +3,7 @@
     <input type="hidden" ng-model="post.Email">
     <div class="input-group">
         <span class="input-group-addon size18">
-            <label for="article">文章标题:</label>
+            文章标题:
         </span>
         <input type="text" class="form-control input-lg" ng-model="post.Title" required placeholder="请输入文章标题">
         <span class="input-group-btn">
@@ -42,7 +42,7 @@
         </div>
         <div class="col-md-3 col-sm-6">
             <div class="input-group">
-                <span class="input-group-addon"><label for="Label">标签:</label></span>
+                <span class="input-group-addon">标签:</span>
                 <div class="ui fluid multiple search selection dropdown tags">
                     <input name="Label" type="hidden" id="Label">
                     <i class="dropdown icon"></i>
@@ -55,10 +55,9 @@
         </div>
         <div class="col-md-4 col-sm-6">
             <div class="input-group">
-                <span class="input-group-addon"><label for="keyword">文章关键词:</label></span>
+                <span class="input-group-addon">文章关键词:</span>
                 <div class="ui fluid multiple search selection dropdown keyword">
                     <input name="keyword" type="hidden" id="keyword">
-                    <i class="dropdown icon"></i>
                     <div class="default text">文章关键词</div>
                     <div class="menu"></div>
                 </div>
@@ -67,7 +66,7 @@
         <div class="col-md-3 col-sm-6">
             <div class="input-group">
                 <span class="input-group-addon">
-                    <label>选择专题:</label>
+                    选择专题:
                 </span>
                 <div class="ui fluid multiple search selection dropdown seminar">
                     <input name="seminar" type="hidden" id="seminar">
@@ -122,7 +121,6 @@
             <div class="input-group">
                 <span class="input-group-addon" id="sizing-addon2">按地区投放:</span>
                 <select ng-model="post.LimitMode" class="form-control">
-                    <option ng-value="null" ng-if="post.LimitMode==null">--</option>
                     <option ng-value="0">不限</option>
                     <optgroup label="可见性">
                         <option ng-value="1">指定地区可见</option>

+ 4 - 5
src/Masuit.MyBlogs.Core/wwwroot/ng-views/views/post/writeblog.html

@@ -20,7 +20,7 @@
     <input type="hidden" ng-model="post.Author">
     <input type="hidden" ng-model="post.Email">
     <div class="input-group">
-        <span class="input-group-addon size18"><label for="article">文章标题:</label></span>
+        <span class="input-group-addon size18">文章标题:</span>
         <div class="fg-line">
             <input type="text" class="form-control input-lg" ng-model="post.Title" required placeholder="请输入文章标题">
         </div>
@@ -60,7 +60,7 @@
         </div>
         <div class="col-md-3 col-sm-6">
             <div class="input-group">
-                <span class="input-group-addon"><label for="Label">标签:</label></span>
+                <span class="input-group-addon">标签:</span>
                 <div class="ui fluid multiple search selection dropdown tags">
                     <input name="Label" type="hidden" id="Label">
                     <i class="dropdown icon"></i>
@@ -73,10 +73,9 @@
         </div>
         <div class="col-md-3 col-sm-6">
             <div class="input-group">
-                <span class="input-group-addon"><label for="keyword">文章关键词:</label></span>
+                <span class="input-group-addon">文章关键词:</span>
                 <div class="ui fluid multiple search selection dropdown keyword">
                     <input name="keyword" type="hidden" id="keyword">
-                    <i class="dropdown icon"></i>
                     <div class="default text">文章关键词</div>
                     <div class="menu"></div>
                 </div>
@@ -84,7 +83,7 @@
         </div>
         <div class="col-md-3 col-sm-6">
             <div class="input-group">
-                <span class="input-group-addon"><label for="seminar">专题:</label></span>
+                <span class="input-group-addon">专题:</span>
                 <div class="ui fluid multiple search selection dropdown seminar">
                     <input name="seminar" type="hidden" id="seminar">
                     <i class="dropdown icon"></i>