Skip to content

Commit

Permalink
通用Tab组件 #342
Browse files Browse the repository at this point in the history
  • Loading branch information
SeriaWei committed Nov 24, 2019
1 parent f66d4f5 commit d1f41b7
Show file tree
Hide file tree
Showing 18 changed files with 1,184 additions and 1,014 deletions.
1,002 changes: 509 additions & 493 deletions DataBase/MySql/Dump.sql

Large diffs are not rendered by default.

Binary file modified DataBase/SQLite/Database.sqlite
Binary file not shown.
1 change: 1 addition & 0 deletions DataBase/Update/3.2.1/script.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
INSERT [dbo].[Language] ([LanKey], [CultureName], [LanValue], [Module], [LanType]) VALUES (N'TabWidget@TabItems', N'zh-CN', N'标签项', N'TabWidget', N'EntityProperty')
1,028 changes: 522 additions & 506 deletions DataBase/script.sql

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions src/ZKEACMS.WebHost/Views/Widget.Tab.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@model ZKEACMS.Common.Models.TabWidget
@{
string idBase = "tab-" + Guid.NewGuid().ToString("N");
var items = Model.TabItems.Where(m => m.Status == (int)RecordStatus.Active).ToList();
}
<ul id="@idBase" class="nav nav-tabs" role="tablist">
@for (int i = 0; i < items.Count; i++)
{
var item = items[i];
<li role="presentation" class="@(i==0?"active":"")">
<a href="#@(idBase+i)" role="tab" data-toggle="tab" aria-expanded="true">@item.Title</a>
</li>
}

</ul>
<div id="myTabContent" class="tab-content">
@for (int i = 0; i < items.Count; i++)
{
var item = items[i];
<div role="tabpanel" class="tab-pane fade @(i==0?"in active":"")" id="@(idBase+i)" aria-labelledby="home-tab">
@Html.Raw(item.Description)
</div>
}
</div>
3 changes: 3 additions & 0 deletions src/ZKEACMS.WebHost/ZKEACMS.WebHost.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
<ItemGroup>
<MvcRazorFilesToCompile Include="Views\**\*.cshtml;EmailTemplates\**\*.cshtml" Exclude="wwwroot\themes\**\*.cshtml;" />
</ItemGroup>
<ItemGroup>
<MvcRazorFilesToCompile Remove="Views\Widget.Tab.cshtml" />
</ItemGroup>

<ItemGroup>
<Content Include="Templates.zip" CopyToPublishDirectory="Always" />
Expand Down
Binary file added src/ZKEACMS.WebHost/wwwroot/images/Widget.Tab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/ZKEACMS.WebHost/wwwroot/js/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -346,11 +346,10 @@ $(function () {
});
template.find(".ActionType").val($(this).data("value"));
$(this).siblings(".items").append(template);

$(".dy-editor:visible", template).trigger("init-editor");
var form = $(this).closest("form");
form.removeData("validator").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse(form[0]);

}).on("click", ".input-group-collection .delete", function () {
var form = $(this).closest("form");
var allValid = true;
Expand Down Expand Up @@ -380,4 +379,5 @@ $(function () {
if ($.fn.select2) {
$("select[multiple='multiple']").select2();
}
$(".dy-editor:visible").trigger("init-editor");
});
2 changes: 1 addition & 1 deletion src/ZKEACMS.WebHost/wwwroot/js/admin.min.js

Large diffs are not rendered by default.

29 changes: 21 additions & 8 deletions src/ZKEACMS.WebHost/wwwroot/js/tinymce/tinymce.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

$.post("/admin/Theme/GetCurrentTheme", function (theme) {
tinymce.init({
content_css: [theme],
function getTinymceConfig() {
return {
content_css: ['/themes/Default/css/Theme.min.css'],
selector: "textarea.html",
verify_html: false,
plugins: [
Expand All @@ -16,7 +15,7 @@ $.post("/admin/Theme/GetCurrentTheme", function (theme) {
relative_urls: false,
language: "zh_CN",
table_default_attributes: {
class:"table table-hover"
class: "table table-hover"
},
table_class_list: [
{ title: '无', value: 'table table-hover' },
Expand All @@ -36,7 +35,21 @@ $.post("/admin/Theme/GetCurrentTheme", function (theme) {
{ text: 'C#', value: 'csharp' },
{ text: 'C++', value: 'cpp' }
],
extended_valid_elements:"style,link[href|rel]",
custom_elements:"style,link,~link"
extended_valid_elements: "style,link[href|rel]",
custom_elements: "style,link,~link"
};
}
function initEditor(selector) {
$.post("/admin/Theme/GetCurrentTheme", function (theme) {
var config = getTinymceConfig();
config.content_css = [theme];
config.selector = selector;
tinymce.init(config);
});
});
}
initEditor("textarea.html");
$(document).on("init-editor", function (e) {
id = "editor-" + new Date().getTime();
$(e.target).attr("id", id);
initEditor("#" + id);
});

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions src/ZKEACMS/Builder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ public static void UseZKEACMS(this IServiceCollection services, IConfiguration c
services.ConfigureMetaData<SmtpSetting, SmtpSettingMetaData>();
services.ConfigureMetaData<Robots, RobotsMetaData>();
services.ConfigureMetaData<TemplateFile, TemplateFileMetaData>();
services.ConfigureMetaData<TabWidget, TabWidgetMetaData>();
services.ConfigureMetaData<TabItem, TabItemMetaData>();

services.AddScoped<IValidateService, DefaultValidateService>();

Expand Down
20 changes: 20 additions & 0 deletions src/ZKEACMS/Common/Models/TabItem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using Easy.MetaData;
using Easy.Models;
using System;
using System.Collections.Generic;
using System.Text;

namespace ZKEACMS.Common.Models
{
public class TabItem : EditorEntity
{
}
class TabItemMetaData : ViewMetaData<TabItem>
{
protected override void ViewConfigure()
{
ViewConfig(m => m.Description).AsTextArea().AddClass(StringKeys.DynamicHtmlEditorClass);
}
}

}
28 changes: 28 additions & 0 deletions src/ZKEACMS/Common/Models/TabWidget.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* http://www.zkea.net/ Copyright 2016 ZKEASOFT http://www.zkea.net/licenses */
using System;
using System.Collections.Generic;
using Easy.MetaData;
using ZKEACMS.MetaData;
using ZKEACMS.Widget;

namespace ZKEACMS.Common.Models
{
public class TabWidget : SimpleWidgetBase
{
public TabWidget()
{
TabItems = new List<TabItem>();
}
public List<TabItem> TabItems { get; set; }
}

class TabWidgetMetaData : WidgetMetaData<TabWidget>
{
protected override void ViewConfigure()
{
base.ViewConfigure();
ViewConfig(m => m.TabItems).AsListEditor();
}
}

}
38 changes: 38 additions & 0 deletions src/ZKEACMS/Common/Service/TabWidgetService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/* http://www.zkea.net/ Copyright 2016 ZKEASOFT http://www.zkea.net/licenses */
using System.Collections.Generic;
using System.Linq;
using Easy;
using Easy.Extend;
using ZKEACMS.Common.Models;
using ZKEACMS.Widget;
using ZKEACMS.Page;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Easy.RepositoryPattern;
using ZKEACMS.Extend;

namespace ZKEACMS.Common.Service
{
public class TabWidgetService : SimpleWidgetService<TabWidget>
{
public TabWidgetService(IWidgetBasePartService widgetBasePartService, IApplicationContext applicationContext, CMSDbContext dbContext) :
base(widgetBasePartService, applicationContext, dbContext)
{
}

public override WidgetViewModelPart Display(WidgetBase widget, ActionContext actionContext)
{
return widget.ToWidgetViewModelPart();
}
public override ServiceResult<TabWidget> Add(TabWidget item)
{
item.TabItems = item.TabItems.RemoveDeletedItems().ToList();
return base.Add(item);
}
public override ServiceResult<TabWidget> Update(TabWidget item)
{
item.TabItems = item.TabItems.RemoveDeletedItems().ToList();
return base.Update(item);
}
}
}
1 change: 1 addition & 0 deletions src/ZKEACMS/Constant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ public static class StringKeys
public const string SelectPageClass = "select select-page";
public const string StyleEditor = "select custom-style-target";
public const string HtmlEditorClass = "html";
public const string DynamicHtmlEditorClass = "dy-editor";
public const string UrlPart = "url-part";

public const string RouteValue_Path = "path";
Expand Down
8 changes: 8 additions & 0 deletions src/ZKEACMS/WidgetTemplate/WidgetTemplateService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,14 @@ public class WidgetTemplateService : IWidgetTemplateService
PartialView = "Widget.StyleSheet",
Thumbnail = "~/images/Widget.StyleSheet.png",
Order = 8
},
new WidgetTemplateEntity<TabWidgetService>
{
Title = "标签页",
GroupName = "1.通用",
PartialView = "Widget.Tab",
Thumbnail = "~/images/Widget.Tab.png",
Order = 9
}
};

Expand Down
6 changes: 3 additions & 3 deletions src/ZKEACMS/ZKEACMS.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
<TargetFramework>netcoreapp3.0</TargetFramework>
<AssemblyName>ZKEACMS</AssemblyName>
<PackageId>ZKEACMS</PackageId>
<Version>3.2.0</Version>
<Version>3.2.1</Version>
<Copyright>深圳市纸壳软件有限公司 纸壳CMS</Copyright>
<PackageLicenseUrl>http://www.zkea.net/licenses</PackageLicenseUrl>
<PackageProjectUrl>https://github.com/SeriaWei/ZKEACMS.Core</PackageProjectUrl>
<RepositoryUrl>https://github.com/SeriaWei/ZKEACMS.Core</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>CMS</PackageTags>
<Authors>深圳市纸壳软件有限公司 ZKEASOFT</Authors>
<AssemblyVersion>3.2.0.0</AssemblyVersion>
<FileVersion>3.2.0.0</FileVersion>
<AssemblyVersion>3.2.1.0</AssemblyVersion>
<FileVersion>3.2.1.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>DEBUG;TRACE</DefineConstants>
Expand Down

0 comments on commit d1f41b7

Please sign in to comment.