Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
b7f8e4f
feat: created basic structure based on WebExpress.Tutorial.WebApp
ReneSchwarzer Apr 19, 2025
03e250f
add: alert control
ReneSchwarzer Apr 19, 2025
46eeae0
add: button control
ReneSchwarzer Apr 20, 2025
350dc08
add: badge control
ReneSchwarzer Apr 21, 2025
06696ca
add: text control
ReneSchwarzer Apr 21, 2025
940b04b
add: link control
ReneSchwarzer Apr 21, 2025
73b2d35
add: buttonlink control
ReneSchwarzer Apr 21, 2025
fcf32f4
add: dropdown control
ReneSchwarzer Apr 21, 2025
68d7993
add: list control
ReneSchwarzer Apr 21, 2025
147cc37
add: icon control
ReneSchwarzer Apr 21, 2025
097df2d
add: search control
ReneSchwarzer Apr 24, 2025
2d84fdc
add: tree control
ReneSchwarzer Apr 26, 2025
cde5678
add: selection control
ReneSchwarzer Apr 27, 2025
ecdc44c
feat: improved the control navigation and add form control
ReneSchwarzer Apr 29, 2025
7555387
feat: improved the controls
ReneSchwarzer May 4, 2025
913df2e
feat: improved the controls
ReneSchwarzer May 4, 2025
5b75aac
add: move control
ReneSchwarzer May 10, 2025
a9fed45
add: textbox control
ReneSchwarzer May 11, 2025
6b9a7af
add: combobox control
ReneSchwarzer May 11, 2025
3fa218a
add: modal controls
ReneSchwarzer May 11, 2025
794c1fc
feat: improved the modal controls
ReneSchwarzer May 13, 2025
97e425f
add: table control
ReneSchwarzer May 17, 2025
dd3cfb1
add: rest table control
ReneSchwarzer Jun 7, 2025
885a3e9
feat: add delete functionality for table REST API
ReneSchwarzer Jun 8, 2025
9105a33
feat: general improvements
ReneSchwarzer Jun 15, 2025
c65549c
feat: general improvements
ReneSchwarzer Jun 22, 2025
c82a99f
feat: refactored asset management
ReneSchwarzer Jun 23, 2025
44517a0
add: date control
ReneSchwarzer Jun 24, 2025
b466f4b
add: split control
ReneSchwarzer Jun 29, 2025
94e21a6
add: calendar control
ReneSchwarzer Jun 30, 2025
ff8888c
add: check box control
ReneSchwarzer Jul 2, 2025
f2a8167
add: radio button control
ReneSchwarzer Jul 5, 2025
74ae574
add: callout control
ReneSchwarzer Jul 5, 2025
425b333
add: card control
ReneSchwarzer Jul 5, 2025
609754e
add: carousel control
ReneSchwarzer Jul 5, 2025
f44112e
add: image control
ReneSchwarzer Jul 5, 2025
5edfe83
fix: event header
ReneSchwarzer Jul 5, 2025
c6e8938
feat: support for DebugLocal configuration
ReneSchwarzer Jul 6, 2025
a418bc9
feat: refactoring
ReneSchwarzer Jul 6, 2025
fe4500f
feat: removed Markdig dependency and implemented custom markdown
ReneSchwarzer Jul 13, 2025
701e8e6
add: code control
ReneSchwarzer Jul 17, 2025
116c185
add: tag control
ReneSchwarzer Jul 19, 2025
136f5c1
feat: syntax highlighting improvements and minor bug fixes
ReneSchwarzer Jul 20, 2025
fc7919d
feat: progress control
ReneSchwarzer Jul 26, 2025
f948268
feat: add toolbar control, general improvements and minor bugs
ReneSchwarzer Jul 27, 2025
d30cf57
feat: general improvements and minor bugs
ReneSchwarzer Jul 28, 2025
ff61e92
add: smart editcontrol
ReneSchwarzer Jul 31, 2025
639834c
add: file list control
ReneSchwarzer Aug 2, 2025
7e7ba2d
add: upload control
ReneSchwarzer Aug 2, 2025
c069f25
feat: upload improvements and minor bugs
ReneSchwarzer Aug 3, 2025
525ff0a
feat: general improvements and minor bugs
ReneSchwarzer Aug 4, 2025
b3222f1
feat: improved input field value handling and minor bugs
ReneSchwarzer Aug 5, 2025
ab30313
feat: add calendar range and date range control, improved input field…
ReneSchwarzer Aug 6, 2025
5ac563a
feat: general improvements and minor bugs
ReneSchwarzer Aug 8, 2025
2b2dddb
feat: general improvements and minor bugs
ReneSchwarzer Aug 31, 2025
a04cf39
feat: general improvements and minor bugs
ReneSchwarzer Sep 1, 2025
ac84efd
Update src/WebUI/WebFragment/ControlPage/IScopeControl.cs
ReneSchwarzer Sep 1, 2025
86874ca
Update src/WebUI/WebFragment/HomePage/HomeLinkFragment.cs
ReneSchwarzer Sep 1, 2025
8e4f015
Update src/WebUI/WebFragment/ControlPage/ControlSidebarFragmentWebApp.cs
ReneSchwarzer Sep 1, 2025
2737a9d
Update src/WebUI/WebFragment/ControlPage/ControlSidebarFragmentWebApp.cs
ReneSchwarzer Sep 1, 2025
e935f23
Update src/WebUI/WebFragment/ControlPage/ControlSidebarFragmentWebUI.cs
ReneSchwarzer Sep 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,7 @@ CodeCoverage/
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
nunit-*.xml
/.vs
/src/.vs/WebExpress.Tutorial.WebUI
/src/.vs/ProjectEvaluation
2 changes: 2 additions & 0 deletions PrivacyPolicy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Privacy policy
The data entered during use is stored locally on your device. You retain data sovereignty at all times. The data will not be transmitted to third parties at any time. Personal information and location information is not collected.
57 changes: 55 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,55 @@
# WebExpress.Tutorial.WebUI
A tutorial demonstrating the UI elements of a WebExpress application.
![WebExpress](https://raw.githubusercontent.com/ReneSchwarzer/WebExpress/main/assets/banner.png)

# WebExpress
`WebExpress` is a lightweight web server optimized for use in low-performance environments (e.g. Rasperry PI). By providing a powerful plugin system and a comprehensive API, web applications can be easily and quickly integrated into a .net language (e.g. C#). Some advantages of `WebExpress` are:

- It is easy to use.
- It offers a variety of features and tools that can help you build and manage your website.
- It is fast and efficient and can help you save time and money.
- It is flexible and can be customized to meet your specific requirements.

The `WebExpress` family includes the following projects:

- [WebExpress](https://github.com/ReneSchwarzer/WebExpress#readme) - The web server for `WebExpress` applications and the documentation.
- [WebExpress.WebCore](https://github.com/ReneSchwarzer/WebExpress.WebCore#readme) - The core for `WebExpress` applications.
- [WebExpress.WebUI](https://github.com/ReneSchwarzer/WebExpress.WebUI#readme) - Common templates and controls for `WebExpress` applications.
- [WebExpress.WebIndex](https://github.com/ReneSchwarzer/WebExpress.WebIndex#readme) - Reverse index for `WebExpress` applications.
- [WebExpress.WebApp](https://github.com/ReneSchwarzer/WebExpress.WebApp#readme) - Business application template for `WebExpress` applications.

`WebExpress` is part of the `WebExpress` family. The project provides a web server for `WebExpress` applications.

To get started with `WebExpress`, use the following links.

- [installation guide](https://github.com/ReneSchwarzer/WebExpress/blob/main/doc/installation_guide.md)
- [development guide](https://github.com/ReneSchwarzer/WebExpress/blob/main/doc/development_guide.md)

# Tutorial
This tutorial guides you through demonstrating the UI elements of a `WebExpress` application. Learn how to effectively use the templates and controls provided by the `WebExpress.WebUI` project.

## Prerequisites
- Create a `WebExpress` application after the [WebApp](https://github.com/ReneSchwarzer/WebExpress.Tutorial.WebApp#readme) tutorial but name it `WebExpress.Tutorial.WebUI`.

## Compile and register in WebExpress
- Compile the solution as a release. To do this, open the command line or terminal in the solution directory and run the following command:
```bash
dotnet build --configuration Release
```
This command compiles the solution in release mode. You can find the compiled files in the `bin/Release` directory of your project.

- Run the solution by starting the `WebApp.App` project.
```bash
cd WebApp.App\bin\Release\net9.0
dotnet run --project ../../../WebApp.App.csproj
```

- After compiling, there should be a file with the `.wxp` extension in the `pkg/Release` directory. This file do you need in `WebExpress`.

## Try the application
- Check the result by calling up the following URL in the browser: http://localhost/webui

Good luck building stunning web applications with `WebExpress`!

# Tags
#WebExpress #WebServer #WebCore #WebUI #Tutorial #DotNet


14 changes: 14 additions & 0 deletions WebExpress.Tutorial.WebUI.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<package>
<id>WebExpress.Tutorial.WebUI</id>
<version>0.0.9-alpha</version>
<title>WebApp</title>
<authors>rene_schwarzer@hotmail.de</authors>
<license>MIT</license>
<icon>icon.png</icon>
<readme>README.md</readme>
<privacypolicy>PrivacyPolicy.md</privacypolicy>
<description>A tutorial demonstrating the UI elements of a WebExpress application.</description>
<tags>webexpress tutorial</tags>
<plugin>WebUI</plugin>
</package>
51 changes: 51 additions & 0 deletions src/WebExpress.Tutorial.WebUI.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebUI.App", "WebUI.App\WebExpress.Tutorial.WebUI.App.csproj", "{9EF6A7CC-2443-45FB-BF3A-83DAED128848}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebUI", "WebUI\WebExpress.Tutorial.WebUI.csproj", "{63546686-B3B3-4859-9186-8F9D0B07DE49}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Debug|x64.ActiveCfg = Debug|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Debug|x64.Build.0 = Debug|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Debug|x86.ActiveCfg = Debug|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Debug|x86.Build.0 = Debug|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Release|Any CPU.Build.0 = Release|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Release|x64.ActiveCfg = Release|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Release|x64.Build.0 = Release|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Release|x86.ActiveCfg = Release|Any CPU
{9EF6A7CC-2443-45FB-BF3A-83DAED128848}.Release|x86.Build.0 = Release|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Debug|x64.ActiveCfg = Debug|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Debug|x64.Build.0 = Debug|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Debug|x86.ActiveCfg = Debug|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Debug|x86.Build.0 = Debug|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Release|Any CPU.Build.0 = Release|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Release|x64.ActiveCfg = Release|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Release|x64.Build.0 = Release|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Release|x86.ActiveCfg = Release|Any CPU
{63546686-B3B3-4859-9186-8F9D0B07DE49}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F33E197F-836F-4941-9DD1-D022DDE03DDE}
EndGlobalSection
EndGlobal
17 changes: 17 additions & 0 deletions src/WebUI.App/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System.Reflection;

namespace WebUI.App
{
internal class Program
{
static void Main(string[] args)
{
var app = new WebExpress.WebCore.WebEx()
{
Name = Assembly.GetExecutingAssembly().GetName().Name
};

app.Execution(args);
}
}
}
32 changes: 32 additions & 0 deletions src/WebUI.App/WebExpress.Tutorial.WebUI.App.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<None Remove="config\webexpress.config.xml" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="WebExpress.WebApp" Version="0.0.9-alpha" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="../WebUI/WebExpress.Tutorial.WebUI.csproj" />
</ItemGroup>

<ItemGroup>
<Content Include="config\webexpress.config.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

<Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="'$(Configuration)' == 'Release'">
<Exec Command="$(SolutionDir)$(AssemblyName)/bin/$(Configuration)/$(TargetFramework)/$(AssemblyName).exe -s $(SolutionDir)/$(SolutionName).spec -c $(Configuration) -t $(TargetFramework) -o $(SolutionDir)/pkg/$(Configuration)" />
</Target>

</Project>
15 changes: 15 additions & 0 deletions src/WebUI.App/config/webexpress.config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<config version = "1">
<log modus="Off" debug="false" path="/var/log/" encoding="utf-8" filename="webexpress.log" timepattern="dd.MM.yyyy HH:mm:ss" />
<uri>http://localhost/</uri>
<endpoint uri="http://localhost/"/>
<limit>
<connectionlimit>300</connectionlimit>
<uploadlimit>3000000000</uploadlimit>
</limit>
<culture>en</culture>
<packages>./packages</packages>
<assets>./assets</assets>
<data>./data</data>
<contextpath></contextpath>
</config>
29 changes: 29 additions & 0 deletions src/WebUI/Application.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using WebExpress.WebCore.WebApplication;
using WebExpress.WebCore.WebAttribute;

namespace WebExpress.Tutorial.WebUI
{
/// <summary>
/// Represents the application of the tutorial.
/// </summary>
[Name("webexpress.Tutorial.webui:app.name")]
[Description("webexpress.Tutorial.webui:app.description")]
[Icon("/assets/img/webui.svg")]
[ContextPath("/webui")]
public sealed class Application : IApplication
{
/// <summary>
/// Initializes a new instance of the class.
/// </summary>
public Application()
{
}

/// <summary>
/// Called when the application starts working. The call is concurrent.
/// </summary>
public void Run()
{
}
}
}
Binary file added src/WebUI/Assets/img/carousel1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/carousel2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/carousel3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/carousel4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/carousel5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/carousel6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/image1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/image2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/image3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/WebUI/Assets/img/rocket.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 46 additions & 0 deletions src/WebUI/Assets/img/webui.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading