diff --git a/Oqtane.Client/Themes/Controls/Theme/Register.razor b/Oqtane.Client/Themes/Controls/Theme/Register.razor new file mode 100644 index 00000000..964a946a --- /dev/null +++ b/Oqtane.Client/Themes/Controls/Theme/Register.razor @@ -0,0 +1,44 @@ +@namespace Oqtane.Themes.Controls +@using System.Net +@inherits ThemeControlBase +@inject IStringLocalizer Localizer +@inject ISettingService SettingService +@inject IStringLocalizer SharedLocalizer + +@SharedLocalizer["Register"] + +@code +{ + private string _returnurl; + private string _registerurl; + + [Parameter] + public string CssClass { get; set; } = "btn btn-secondary"; + + + protected override void OnParametersSet() + { + if (!PageState.QueryString.ContainsKey("returnurl")) + { + // remember current url + _returnurl = WebUtility.UrlEncode(PageState.Route.PathAndQuery); + } + else + { + // use existing value + _returnurl = PageState.QueryString["returnurl"]; + } + + if (!string.IsNullOrEmpty(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:RegisterUrl", ""))) + { + _registerurl = SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:RegisterUrl", ""); + _registerurl += (!_registerurl.Contains("?") ? "?" : "&") + "returnurl=" + (_registerurl.Contains("://") ? WebUtility.UrlEncode(PageState.Route.RootUrl) + _returnurl : _returnurl); + } + else + { + _registerurl = NavigateUrl("register", "returnurl=" + _returnurl); + } + + Console.WriteLine($"Register URL: {_registerurl}"); + } +} \ No newline at end of file