Change UI with js + add commented config for route "/Wf"

This commit is contained in:
2025-08-18 18:05:23 +03:30
parent e5eb10d604
commit abea7b6af5
6 changed files with 170 additions and 40 deletions
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 26 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -5,6 +5,11 @@
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<IsPackable>false</IsPackable>
</PropertyGroup>
<!--<PropertyGroup>
<BasePath>/Wf</BasePath>
<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
<CopyRefAssembliesToPublishDirectory>false</CopyRefAssembliesToPublishDirectory>
</PropertyGroup>-->
<ItemGroup>
<ProjectReference Include="..\..\modules\Elsa.Agents.Persistence.EntityFrameworkCore.MySql\Elsa.Agents.Persistence.EntityFrameworkCore.MySql.csproj" Condition=" '$(TargetFramework)' != 'net9.0' " />
<ProjectReference Include="..\..\modules\Elsa.Connections.Api\Elsa.Connections.Api.csproj" />
@@ -50,6 +55,7 @@
<ItemGroup>
<PackageReference Include="Elsa.Studio" />
<PackageReference Include="Elsa.Studio.Login.BlazorWasm" />
<PackageReference Include="Proto.Persistence.SqlServer" />
</ItemGroup>
</Project>
@@ -5,14 +5,83 @@
var baseUrl = Configuration["Hosting:BaseUrl"] ?? Configuration["Http:BaseUrl"]!; // HttpBaseUrl is for backward compatibility.
var apiUrl = $"{baseUrl.TrimEnd('/')}/{(Configuration["Hosting:ApiPrefix"] ?? "elsa/api").TrimStart('/')}";
}
<style>
.LoginTitle {
display: none !important;
}
.mud-typography.mud-typography-h6 {
display: none;
}
a[title="Source code"], a[title="Documentation"], a[href="ai/agents"], nav[aria-label="Agents"], p[class="mud-typography.mud-typography-body2.px-4.py-4.mud-text-secondary"], nav.mud-navmenu p.mud-typography-body2.px-4.py-4.mud-text-secondary:last-of-type {
display: none; /* !important */
}
header div[role="toolbar"] button:nth-last-child(1),
header div[role="toolbar"] button:nth-last-child(2) {
display: none;
}
a[href="https://v3.elsaworkflows.io/"] {
display: none !important;
}
p.mud-typography.mud-typography-subtitle2.mud-typography-align-center.mt-2 {
display: none !important;
}
body {
/* background-color: rgba(40, 42, 45, 1) !important */
}
:root {
--mud-palette-drawer-text: rgba(230, 230, 230, 1) !important;
--mud-palette-text-primary: rgba(230, 230, 230, 1) !important;
--mud-palette-action-default: rgba(230, 230, 230, 1) !important;
--mud-palette-drawer-background: rgba(28, 29, 31, 1) !important;
--mud-palette-appbar-background: rgba(28, 29, 31, 1) !important;
--mud-palette-background: rgba(28, 29, 31, 1) !important;
--mud-palette-surface: rgba(40, 42, 45, 1) !important;
--mud-palette-table-lines: rgba(255, 255, 255, 0.11764705882352941) !important;
--mud-palette-action-disabled: rgba(255, 255, 255, 0.25882352941176473) !important;
--mud-palette-text-secondary: rgba(255, 255, 255, 0.4980392156862745) !important;
/* --mud-palette-background: rgba(15,23,42,1) !important; */
}
.monaco-editor .margin, .monaco-editor .monaco-editor-background {
background-color: rgba(230, 230, 230, 1) !important;
}
.monaco-editor, .monaco-editor-background {
background-color: var(--vscode-editor-background);
}
.x6-graph-grid {
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxkZWZzPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuXzAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjEwLjE4NzUiIHk9IjYiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PHBhdGggZD0iTSAyMCAwIEgwIE0wIDAgVjAgMjAiIHN0cm9rZT0iIzI3MjcyZmZmIiBzdHJva2Utd2lkdGg9IjEiLz48L3BhdHRlcm4+PC9kZWZzPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjcGF0dGVybl8wKSIvPjwvc3ZnPg==') !important;
}
div[class=".mud-toolbar.mud-toolbar-gutters.mud-toolbar-appbar"] button:nth-last-child(1),
div[class=".mud-toolbar.mud-toolbar-gutters.mud-toolbar-appbar"] button:nth-last-child(2) {
display: none !important;
}
.gray.lighten-3 {
background-color: gray !important;
}
.visible {
display: block !important;
}
</style>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Elsa Studio 3.5</title>
<title>Workflow Management</title>
@* <base href="/Wf/" /> *@
<base href="/"/>
<link rel="apple-touch-icon" sizes="180x180" href="@baseUrl/_content/Elsa.Studio.Shell/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="@baseUrl/_content/Elsa.Studio.Shell/favicon-32x32.png">
@@ -29,7 +98,7 @@
<link href="@baseUrl/_content/Radzen.Blazor/css/material-base.css" rel="stylesheet">
<link href="@baseUrl/_content/Elsa.Studio.Shell/css/shell.css" rel="stylesheet">
<link href="@baseUrl/_content/Elsa.Studio.Workflows.Designer/designer.css" rel="stylesheet">
<link href="ElsaStudioWebAssembly.styles.css" rel="stylesheet">
@* <link href="ElsaStudioWebAssembly.styles.css" rel="stylesheet"> *@
</head>
<body>
@@ -56,6 +125,39 @@
} };
</script>
<script src="@baseUrl/_framework/blazor.webassembly.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
setTimeout(() => {
var element = document.querySelector(".mud-typography.mud-typography-h6");
if (element) {
element.innerHTML = "Parsian Bank";
element.style.display = "block";
} else {
// console.error("Element not found!");
}
var exitElement = document.querySelector("a[title=\"Documentation\"]");
var currentPage = window.location.pathname;
if (exitElement && currentPage != "/login") {
exitElement.innerHTML = `<span class="mud-icon-button-label" style=""><svg fill="#ffffff" height="60px" width="60px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500" enable-background="new 0 0 500 500" xml:space="preserve" stroke="#ffffff" stroke-width="0.005" transform="matrix(1, 0, 0, 1, 0, 0)rotate(0)" style="margin-top: 13px;"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier" style=""> <g> <path d="M250,224c-4.4,0-8,3.6-8,8v24c0,4.4-3.6,8-8,8h-40c-4.4,0-8-3.6-8-8V144c0-4.4,3.6-8,8-8h40c4.4,0,8,3.6,8,8v24 c0,4.4,3.6,8,8,8s8-3.6,8-8v-24c0-13.2-10.8-24-24-24h-40c-13.2,0-24,10.8-24,24v112c0,13.2,10.8,24,24,24h40c13.2,0,24-10.8,24-24 v-24C258,227.6,254.4,224,250,224z" style=""></path> <path d="M328.4,204.8c0.1-0.1,0.2-0.2,0.3-0.3c0,0,0,0,0-0.1c0.1-0.2,0.2-0.4,0.3-0.6c0.1-0.3,0.3-0.5,0.4-0.8 c0.1-0.3,0.2-0.5,0.3-0.8c0.1-0.2,0.2-0.4,0.2-0.7c0.2-1,0.2-2.1,0-3.1c0,0,0,0,0,0c0-0.2-0.1-0.4-0.2-0.7 c-0.1-0.3-0.1-0.5-0.2-0.8c0,0,0,0,0,0c-0.1-0.3-0.3-0.5-0.4-0.8c-0.1-0.2-0.2-0.4-0.3-0.6c-0.3-0.4-0.6-0.9-1-1.2l-32-32 c-3.1-3.1-8.2-3.1-11.3,0c-3.1,3.1-3.1,8.2,0,11.3l18.3,18.3H210c-4.4,0-8,3.6-8,8s3.6,8,8,8h92.7l-18.3,18.3 c-3.1,3.1-3.1,8.2,0,11.3c1.6,1.6,3.6,2.3,5.7,2.3s4.1-0.8,5.7-2.3l32-32c0,0,0,0,0,0C327.9,205.4,328.1,205.1,328.4,204.8z"></path> </g> </g></svg></span>`;
exitElement.href = "javascript:void(0)";
exitElement.target = "none";
exitElement.type = "";
exitElement.onclick = function(e) {
e.preventDefault();
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
location.reload();
};
exitElement.style.display = "block";
} else {
// console.error("Element not found!");
}
}, 5000);
});
</script>
</body>
</html>
+23 -5
View File
@@ -15,6 +15,8 @@ using WebhooksCore.Options;
using Elsa.Connections.Middleware;
using Elsa.IO.Http.Features;
using Proto.Persistence.Sqlite;
using Elsa.EntityFrameworkCore.Modules.Identity;
using Proto.Persistence.SqlServer;
const bool useMassTransit = true;
const bool useProtoActor = true;
@@ -51,6 +53,7 @@ services
.UseIdentity(identity =>
{
identity.TokenOptions = options => identityTokenSection.Bind(options);
identity.UseEntityFrameworkCore(ef => ef.UseSqlServer(sqlServerConnectionString));
identity.UseConfigurationBasedUserProvider(options => identitySection.Bind(options));
identity.UseConfigurationBasedApplicationProvider(options => identitySection.Bind(options));
identity.UseConfigurationBasedRoleProvider(options => identitySection.Bind(options));
@@ -148,9 +151,13 @@ services
if (useProtoActor)
{
//elsa.UseProtoActor(proto => proto.PersistenceProvider = _ =>
//{
// return new SqliteProvider(new SqliteConnectionStringBuilder(sqliteConnectionString));
//});
elsa.UseProtoActor(proto => proto.PersistenceProvider = _ =>
{
return new SqliteProvider(new SqliteConnectionStringBuilder(sqliteConnectionString));
return new SqlServerProvider(sqlServerConnectionString, true);
});
}
@@ -183,9 +190,9 @@ services
});
}
elsa.UseConnections(
configure=> configure.AddConnectionsFrom<Program>());
elsa.UseConnectionPersistence(ef=> ef.UseEntityFrameworkCore(f=>f.UseSqlite()));
elsa.UseConnections(configure=> configure.AddConnectionsFrom<Program>());
//elsa.UseConnectionPersistence(ef=> ef.UseEntityFrameworkCore(f=>f.UseSqlite()));
elsa.UseConnectionPersistence(ef => ef.UseEntityFrameworkCore(f => f.UseSqlServer(sqlServerConnectionString)));
elsa.UseConnectionsApi();
});
@@ -204,12 +211,13 @@ var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
//app.UsePathBase("/Wf");
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
//app.UseHttpsRedirection();
app.UseBlazorFrameworkFiles();
app.MapHealthChecks("/health");
app.UseRouting();
@@ -220,4 +228,14 @@ app.UseAuthorization();
app.UseWorkflowsApi();
app.UseWorkflows();
app.MapFallbackToPage("/_Host");
//var saltPlain = "Besmellah@rRahman@rrah1m";
//var passPlain = "Az123456";
//var saltBytes = Encoding.UTF8.GetBytes(saltPlain);
//var _secretHasher = app.Services.CreateScope().ServiceProvider.GetService<ISecretHasher>();
//var result = _secretHasher.HashSecret(passPlain, saltBytes);
//var hashedSalt = result.EncodeSalt();
//var hashedPass = result.EncodeSecret();
await app.RunAsync();
@@ -9,14 +9,16 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
"Sqlite": "Data Source=elsa.sqlite.db;Cache=Shared;",
"RabbitMq": "rabbitmq://guest:guest@localhost:5672",
"MySql": "Server=localhost;Database=elsa;Uid=user;Pwd=password;",
"SqlServer": "Server=.;Database=WorkflowDb;User Id=sa;Password=123456;TrustServerCertificate=True;",
"PostgreSql": "Server=localhost;Username=elsa;Database=elsa;Port=5432;Password=elsa;SSLMode=Prefer;MaxPoolSize=2000;Timeout=60"
"Sqlite": "", //"Data Source=elsa.sqlite.db;Cache=Shared;",
"RabbitMq": "", //"rabbitmq://guest:guest@localhost:5672",
"MySql": "", //"Server=localhost;Database=elsa;Uid=user;Pwd=password;",
"SqlServer": "Server=.;Database=WorkflowDb_3-5-0;User Id=sa;Password=123456;TrustServerCertificate=True;",
"PostgreSql": "" //"Server=localhost;Username=elsa;Database=elsa;Port=5432;Password=elsa;SSLMode=Prefer;MaxPoolSize=2000;Timeout=60"
},
"DatabaseProvider": "Sqlite",
"DatabaseProvider": "SqlServer", //"Sqlite",
"Hosting": {
//"BaseUrl": "https://sandbox.parsian-bank.ir/Wf",
//"BaseUrl": "http://192.168.251.160:8080",
"BaseUrl": "https://localhost:8080",
"ApiPrefix": "/elsa/api"
},
@@ -39,8 +41,10 @@
{
"Id": "a2323f46-42db-4e15-af8b-94238717d817",
"Name": "admin",
"HashedPassword": "TfKzh9RLix6FPcCNeHLkGrysFu3bYxqzGqduNdi8v1U=",
"HashedPasswordSalt": "JEy9kBlhHCNsencitRHlGxmErmSgY+FVyMJulCH27Ds=",
//"HashedPassword": "TfKzh9RLix6FPcCNeHLkGrysFu3bYxqzGqduNdi8v1U=",
//"HashedPasswordSalt": "JEy9kBlhHCNsencitRHlGxmErmSgY+FVyMJulCH27Ds=",
"HashedPassword": "p90gXKnVpt5Q2VZ4KkeOaM5GZN3bqjczoznWbnFMrvo=",
"HashedPasswordSalt": "QmVzbWVsbGFoQHJSYWhtYW5AcnJhaDFt",
"Roles": [
"admin"
]