| @@ -61,29 +61,34 @@ | |||
| <div class="row no-gutters align-items-center w-100"> | |||
| <div class="col-12"> | |||
| <MatTextField Class="w-100" Label="@I18n["Phone"]" Outlined="true" type="text" @bind-Value="@Account.Phone" | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" maxlength="20" pattern="^([0-9]*)$"></MatTextField> | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" maxlength="20" pattern="^([0-9]*)$"></MatTextField> | |||
| </div> | |||
| </div> | |||
| <div class="row no-gutters align-items-center w-100"> | |||
| <div class="col-12"> | |||
| <MatTextField Class="w-100" Label="@I18n["Mobile"]" Outlined="true" type="text" @bind-Value="@Account.Mobile" | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" maxlength="20" pattern="^([0-9]*)$"></MatTextField> | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" maxlength="20" pattern="^([0-9]*)$"></MatTextField> | |||
| </div> | |||
| </div> | |||
| <div class="row no-gutters align-items-center w-100"> | |||
| <div class="col-12"> | |||
| <MatStringField Class="w-100" Label="@I18n["Mail"]" Outlined="true" type="email" @bind-Value="@Account.Email" Required="true" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="50"></MatStringField> | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="50"></MatStringField> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| @if (!string.IsNullOrEmpty(FromRoute)) { | |||
| <div class="row no-gutters justify-content-end w-100"> | |||
| <div class="row no-gutters align-items-end justify-content-center" style="padding-bottom:2em"> | |||
| <MatButton Class="w-100" Raised="true" @onclick="SaveUserData">@I18n["Save"]</MatButton> | |||
| <div class="row no-gutters align-items-center w-100"> | |||
| <div> | |||
| <MatCheckbox @bind-Value="@saveBevorSend" Label="@I18n["SaveBevorSend"]" se></MatCheckbox> | |||
| </div> | |||
| </div> | |||
| @*<div class="row no-gutters justify-content-end w-100"> | |||
| <div class="row no-gutters align-items-end justify-content-center" style="padding-bottom:2em"> | |||
| <MatButton Class="w-100" Raised="true" @onclick="SaveUserData">@I18n["Save"]</MatButton> | |||
| </div> | |||
| </div>*@ | |||
| <div class="row no-gutters align-items-end justify-content-center w-100" style="padding-bottom:2em"> | |||
| <div class="col" style="padding-right:0.5em"> | |||
| <MatButton Class="w-100" Outlined="true" @onclick="Cancel">@I18n["Cancel"]</MatButton> | |||
| @@ -107,6 +112,7 @@ | |||
| private UserData Account = new(); | |||
| private bool saveBevorSend = true; | |||
| private string zipCityStringValue; | |||
| private ZipCity selectedZipCity; | |||
| private ZipCity SelectedZipCity { | |||
| @@ -173,9 +179,12 @@ | |||
| return String.Format("{0} {1}", I18n.GetString("Zip"), I18n.GetString("City")); | |||
| } | |||
| private void Next() { | |||
| private async void Next() { | |||
| PageHistoryManager.AddPageToHistory(NavigationManager.Uri); | |||
| try { | |||
| if (!string.IsNullOrEmpty(FromRoute) && saveBevorSend) { | |||
| await SaveUserData(); | |||
| } | |||
| if ("Found".Equals(FromRoute)) { | |||
| UserDataProvider.MapReport(ReportDataProvider.Report, Account); | |||
| Validator.ValidateContact(ReportDataProvider.Report); | |||
| @@ -16,7 +16,7 @@ | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| @*<div class="mat-layout-grid-cell mat-layout-grid-cell-span-2-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <MatCard class="fv-mat-card"> | |||
| <MatCardContent> | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_kulturlegi.png"></MatCardMedia> | |||
| @@ -29,7 +29,7 @@ | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_markt.png"></MatCardMedia> | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| </div>*@ | |||
| </div> | |||
| </div> | |||
| </div> | |||
| @@ -145,7 +145,7 @@ | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-3-desktop"> | |||
| <MatSelectValue Class="required" FullWidth="true" Outlined="true" Label="@I18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| @@ -159,7 +159,7 @@ | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-3-desktop"> | |||
| <div class="outlined"> | |||
| <MatAutocompleteList TItem="Brand" FullWidth="true" Label="@I18n["Brand"]" Required="true" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)" | |||
| ShowClearButton="true" NumberOfElementsInPopup="6" @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| @@ -171,7 +171,7 @@ | |||
| </MatAutocompleteList> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-3-desktop"> | |||
| <MatSelectValue Class="required" FullWidth="true" Outlined="true" Label="@I18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| @@ -181,16 +181,16 @@ | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-3-tablet mat-layout-grid-cell-span-3-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["FrameNumber"]" Outlined="true" type="text" @bind-Value="frameNumber" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="20"></MatStringField> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-12-phone mat-layout-grid-cell-span-12-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["Remark"]" Outlined="true" type="text" @bind-Value="remark" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="1000"></MatStringField> | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="1000" rows="1" TextArea="true"></MatStringField> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| @@ -3,98 +3,120 @@ | |||
| @using cwebplusApp.Shared.Services; | |||
| @using cwebplusApp.Shared.Models; | |||
| @inject IStringLocalizer<Resources> I18n | |||
| @inject NavigationManager NavigationManager | |||
| @inject PageHistoryManager PageHistoryManager | |||
| @inject ReportDataProvider ReportDataProvider | |||
| @inject UserDataProvider UserDataProvider | |||
| @inject ReportRepositoryService ReportRepositoryService | |||
| <div class="row px-3 h-100"> | |||
| <div class="row no-gutters align-items-center w-100"> | |||
| <div class="mat-layout-grid w-100"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | |||
| <MatCard Class="fv-mat-card"> | |||
| <MatCardContent> | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_found.png" @onclick="Found"></MatCardMedia> | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="row px-3 h-100"> | |||
| <div class="row no-gutters align-items-center w-100"> | |||
| <table class="w-100"> | |||
| <tr> | |||
| <td class="text-center"> | |||
| <span class="text-left" style="max-width: 100%;display:inline-block;font-size:smaller"> | |||
| <p><a href="https://shop.caritas-luzern.ch/de/Velos-c75735006" target="_blank">Velos (caritas-luzern.ch)</a></p> | |||
| <p><a href="https://www.velostation.ch/de/velostationen/uebersichtskarte/luzern" target="_blank">Luzern – Forum Velostationen Schweiz</a></p> | |||
| <p><a href="https://www.nextbike.ch/de/" target="_blank">nextbike | Fahrradverleih in Luzern</a></p> | |||
| <p><a href="https://www.caritas-luzern.ch/was-wir-tun/caritas-betriebe/velomobilitaet-velodienste-velowerkstatt-veloverleih" target="_blank">Velomobilität Caritas Luzern: Velodienste, Velowerkstatt & Veloverleih (caritas-luzern.ch)</a></p> | |||
| </span> | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| </div> | |||
| <div class="row no-gutters align-items-center w-100"> | |||
| <div class="mat-layout-grid w-100"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | |||
| <MatCard Class="fv-mat-card"> | |||
| <MatCardContent> | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_found.png" @onclick="Found"></MatCardMedia> | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | |||
| <MatCard Class="fv-mat-card"> | |||
| <MatCardContent> | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_missing.png" @onclick="Missing"></MatCardMedia> | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | |||
| <MatCard Class="fv-mat-card"> | |||
| <MatCardContent> | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_missing.png" @onclick="Missing"></MatCardMedia> | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2" style="text-align:end"> | |||
| @if (NbrPendingReports > 0) { | |||
| <div> | |||
| <MatChip Label="@NbrPendingReports.ToString()" Class="pending_batch"></MatChip> | |||
| </div> | |||
| } | |||
| <MatCard Class="fv-mat-card"> | |||
| <MatCardContent> | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_pending.png" @onclick="Pending" Style="@getOpacity()"></MatCardMedia> | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2" style="text-align:end"> | |||
| @if (NbrPendingReports > 0) | |||
| { | |||
| <div> | |||
| <MatChip Label="@NbrPendingReports.ToString()" Class="pending_batch"></MatChip> | |||
| </div> | |||
| } | |||
| <MatCard Class="fv-mat-card"> | |||
| <MatCardContent> | |||
| <MatCardMedia Square="true" ImageUrl="./images/batch_pending.png" @onclick="Pending" Style="@getOpacity()"></MatCardMedia> | |||
| </MatCardContent> | |||
| </MatCard> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| @code { | |||
| @code { | |||
| private int NbrPendingReports = 0; | |||
| private int NbrPendingReports = 0; | |||
| protected async override void OnInitialized() { | |||
| base.OnInitialized(); | |||
| ReportDataProvider.Report = null; | |||
| ReportDataProvider.ReportRepositoryItem = null; | |||
| StateHasChanged(); | |||
| NbrPendingReports = await ReportRepositoryService.GetNbrOfPendingReports(); | |||
| StateHasChanged(); | |||
| } | |||
| protected async override void OnInitialized() | |||
| { | |||
| base.OnInitialized(); | |||
| ReportDataProvider.Report = null; | |||
| ReportDataProvider.ReportRepositoryItem = null; | |||
| StateHasChanged(); | |||
| NbrPendingReports = await ReportRepositoryService.GetNbrOfPendingReports(); | |||
| StateHasChanged(); | |||
| } | |||
| private async void Found() { | |||
| Report report = new FoundReport(); | |||
| UserDataProvider.MapReport(report, await UserDataProvider.Get()); | |||
| ReportDataProvider.Report = report; | |||
| PageHistoryManager.AddPageToHistory(NavigationManager.Uri); | |||
| NavigationManager.NavigateTo("fundvelo/keydata/Found"); | |||
| } | |||
| private async void Found() | |||
| { | |||
| Report report = new FoundReport(); | |||
| UserDataProvider.MapReport(report, await UserDataProvider.Get()); | |||
| ReportDataProvider.Report = report; | |||
| PageHistoryManager.AddPageToHistory(NavigationManager.Uri); | |||
| NavigationManager.NavigateTo("fundvelo/keydata/Found"); | |||
| } | |||
| private async void Missing() { | |||
| Report report = new MissingReport(); | |||
| UserDataProvider.MapReport(report, await UserDataProvider.Get()); | |||
| ReportDataProvider.Report = report; | |||
| PageHistoryManager.AddPageToHistory(NavigationManager.Uri); | |||
| NavigationManager.NavigateTo("fundvelo/keydata/Missing"); | |||
| } | |||
| private async void Missing() | |||
| { | |||
| Report report = new MissingReport(); | |||
| UserDataProvider.MapReport(report, await UserDataProvider.Get()); | |||
| ReportDataProvider.Report = report; | |||
| PageHistoryManager.AddPageToHistory(NavigationManager.Uri); | |||
| NavigationManager.NavigateTo("fundvelo/keydata/Missing"); | |||
| } | |||
| private void Pending() { | |||
| if(NbrPendingReports > 0) { | |||
| NavigationManager.NavigateTo("fundvelo/pending_overview"); | |||
| } | |||
| private void Pending() | |||
| { | |||
| if (NbrPendingReports > 0) | |||
| { | |||
| NavigationManager.NavigateTo("fundvelo/pending_overview"); | |||
| } | |||
| } | |||
| private string getOpacity() { | |||
| return NbrPendingReports > 0 ? "opacity:1.0" : "opacity:0.5"; | |||
| } | |||
| private string getOpacity() | |||
| { | |||
| return NbrPendingReports > 0 ? "opacity:1.0" : "opacity:0.5"; | |||
| } | |||
| } | |||
| @@ -68,77 +68,89 @@ | |||
| </MatCard> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-8-desktop"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatSelectValue Class="required" FullWidth="true" Outlined="true" Label="@I18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span class="btn-sm" style="background-color:@context.Code; | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-6-desktop"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatSelectValue Class="required" FullWidth="true" Outlined="true" Label="@I18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span class="btn-sm" style="background-color:@context.Code; | |||
| display:initial; | |||
| border:1px solid black; | |||
| box-shadow:0.2em 0.2em 0.3em 0.025em #3f4244" /> | |||
| <span class="btn">@context?.Bezeichnung</span> | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <div class="outlined"> | |||
| <MatAutocompleteList TItem="Brand" FullWidth="true" Label="@I18n["Brand"]" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)" Required="true" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span>@context?.Bezeichnung</span> | |||
| <span class="btn">@context?.Bezeichnung</span> | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <div class="outlined"> | |||
| <MatAutocompleteList TItem="Brand" FullWidth="true" Label="@I18n["Brand"]" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)" Required="true" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span>@context?.Bezeichnung</span> | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatAutocompleteList> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatSelectValue Class="required" FullWidth="true" Outlined="true" Label="@I18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span>@context?.Bezeichnung</span> | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["FrameNumber"]" Outlined="true" type="text" @bind-Value="frameNumber" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="20"></MatStringField> | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatAutocompleteList> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatSelectValue Class="required" FullWidth="true" Outlined="true" Label="@I18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span>@context?.Bezeichnung</span> | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["FrameNumber"]" Outlined="true" type="text" @bind-Value="frameNumber" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="20"></MatStringField> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-4-desktop"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatNumericUpDownField Class="w-100" Label="@I18n["Age"]" Outlined="true" @bind-Value="@age" | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" pattern="^([0-9]*)$"></MatNumericUpDownField> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatTextField Class="w-100 form-check-label" Label="@I18n["Price"]" Format="0.00" Outlined="true" @bind-Value="@price" | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" pattern="^([0-9]+,?[0-9]*|,[0-9]+)$"></MatTextField> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatSelectValue FullWidth="true" Outlined="true" Label="@I18n["SearchService"]" @bind-Value="selectedSearchService" Items="@SearchServices" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span>@context?.Bezeichnung</span> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-6-desktop"> | |||
| <div class="mat-layout-grid-inner"> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatNumericUpDownField Class="w-100" Label="@I18n["Age"]" Outlined="true" @bind-Value="@age" | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" pattern="^([0-9]*)$"></MatNumericUpDownField> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatTextField Class="w-100 form-check-label" Label="@I18n["Price"]" Format="0.00" Outlined="true" @bind-Value="@price" | |||
| OnKeyDown="@InputCursorHandler.OnConstrainedFieldKeyDownHandlerAsync" pattern="^([0-9]+,?[0-9]*|,[0-9]+)$"></MatTextField> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-8-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatSelectValue FullWidth="true" Outlined="true" Label="@I18n["SearchService"]" @bind-Value="selectedSearchService" Items="@SearchServices" ValueSelector="@(i=>i)" | |||
| @onkeydown="InputCursorHandler.OnKeyDownHandlerAsync"> | |||
| <ItemTemplate> | |||
| <div> | |||
| <span>@context?.Bezeichnung</span> | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["SearchServiceNbr"]" Outlined="true" type="text" @bind-Value="searchServiceNbr" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="20"></MatStringField> | |||
| </div> | |||
| @*<div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["Remark"]" Outlined="true" type="text" @bind-Value="remark" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="1000" rows="2" TextArea="true"></MatStringField> | |||
| </div>*@ | |||
| </div> | |||
| </ItemTemplate> | |||
| </MatSelectValue> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["SearchServiceNbr"]" Outlined="true" type="text" @bind-Value="searchServiceNbr" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="20"></MatStringField> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-4-phone mat-layout-grid-cell-span-4-tablet mat-layout-grid-cell-span-12-desktop"> | |||
| <MatStringField Class="w-100 form-check-label" Label="@I18n["Remark"]" Outlined="true" type="text" @bind-Value="remark" | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="1000"></MatStringField> | |||
| OnKeyDown="@InputCursorHandler.OnKeyDownHandlerAsync" maxlength="1000" rows="2" TextArea="true"></MatStringField> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| @@ -19,7 +19,7 @@ | |||
| <td class="text-center"> | |||
| <span class="text-left" style="max-width: 500px;display:inline-block;font-size:smaller"> | |||
| <pre style="white-space:pre-line;font-family:'Ubuntu';margin-bottom:0">@I18n["App.Info"]</pre> | |||
| <p><a href="https://www.kulturlegi.ch">https://www.kulturlegi.ch</a></p> | |||
| <p><a href="https://www.kulturlegi.ch" target="_blank">https://www.kulturlegi.ch</a></p> | |||
| </span> | |||
| </td> | |||
| </tr> | |||
| @@ -44,7 +44,7 @@ namespace CaritasPWA { | |||
| config.ShowCloseButton = true; | |||
| config.ShowProgressBar = true; | |||
| config.MaximumOpacity = 100; | |||
| config.VisibleStateDuration = 5000; | |||
| config.VisibleStateDuration = 10000; | |||
| config.ShowTransitionDuration = 300; | |||
| config.HideTransitionDuration = 150; | |||
| }); | |||
| @@ -474,6 +474,9 @@ Die KulturLegi wirkt dem entgegen indem sie Kultur-, Bildungs- und Sportangebote | |||
| <data name="Save" xml:space="preserve"> | |||
| <value>Speichern</value> | |||
| </data> | |||
| <data name="SaveBevorSend" xml:space="preserve"> | |||
| <value>Obige Angaben für weitere Meldungen speichern</value> | |||
| </data> | |||
| <data name="SearchService" xml:space="preserve"> | |||
| <value>Suchdienst</value> | |||
| </data> | |||
| @@ -474,6 +474,9 @@ La KulturLegi s'attaque à ce problème en rendant les activités culturelles, | |||
| <data name="Save" xml:space="preserve"> | |||
| <value>Sauver</value> | |||
| </data> | |||
| <data name="SaveBevorSend" xml:space="preserve"> | |||
| <value>Enregistrer les données ci-dessus pour d'autres messages</value> | |||
| </data> | |||
| <data name="SearchService" xml:space="preserve"> | |||
| <value>Service de recherche</value> | |||
| </data> | |||
| @@ -474,6 +474,9 @@ La KulturLegi si oppone a questo rendendo le attività culturali, educative e sp | |||
| <data name="Save" xml:space="preserve"> | |||
| <value>Salva</value> | |||
| </data> | |||
| <data name="SaveBevorSend" xml:space="preserve"> | |||
| <value>Salva le informazioni di qui sopra per ulteriori messaggi</value> | |||
| </data> | |||
| <data name="SearchService" xml:space="preserve"> | |||
| <value>Servizio ritrovamento</value> | |||
| </data> | |||
| @@ -474,6 +474,9 @@ The KulturLegi counteracts this by making cultural, educational and sporting act | |||
| <data name="Save" xml:space="preserve"> | |||
| <value>Save</value> | |||
| </data> | |||
| <data name="SaveBevorSend" xml:space="preserve"> | |||
| <value>Save the above information for further messages</value> | |||
| </data> | |||
| <data name="SearchService" xml:space="preserve"> | |||
| <value>Search Service</value> | |||
| </data> | |||