| @page "/account" | @page "/account" | ||||
| @page "/fundvelo/account/{FromRoute}" | @page "/fundvelo/account/{FromRoute}" | ||||
| @using cwebplusApp.Shared.Models; | @using cwebplusApp.Shared.Models; | ||||
| @using cwebplusApp.Shared.Services; | @using cwebplusApp.Shared.Services; | ||||
| @inject NavigationManager NavigationManager | @inject NavigationManager NavigationManager | ||||
| @inject UserDataProvider UserDataProvider | @inject UserDataProvider UserDataProvider | ||||
| @inject IStringLocalizer<Resources> i18n | @inject IStringLocalizer<Resources> i18n |
| @page "/fundvelo/conclusion_found" | @page "/fundvelo/conclusion_found" | ||||
| @using cwebplusApp.Shared.Services; | @using cwebplusApp.Shared.Services; | ||||
| @inject NavigationManager NavigationManager | @inject NavigationManager NavigationManager | ||||
| @inject IStringLocalizer<Resources> i18n | @inject IStringLocalizer<Resources> i18n | ||||
| @inject PageHistoryManager PageHistoryManager | @inject PageHistoryManager PageHistoryManager |
| @using System.Globalization; | @using System.Globalization; | ||||
| @using Microsoft.AspNetCore.Components.Forms; | @using Microsoft.AspNetCore.Components.Forms; | ||||
| @using System.IO; | @using System.IO; | ||||
| @inject NavigationManager NavigationManager | @inject NavigationManager NavigationManager | ||||
| @inject IStringLocalizer<Resources> i18n | @inject IStringLocalizer<Resources> i18n | ||||
| @inject PageHistoryManager PageHistoryManager | @inject PageHistoryManager PageHistoryManager | ||||
| @inject Toaster Toaster | @inject Toaster Toaster | ||||
| @inject IJSRuntime JS | @inject IJSRuntime JS | ||||
| <div class="row px-3 h-100"> | <div class="row px-3 h-100"> | ||||
| <div class="row no-gutters align-items-center justify-content-center w-100" style="padding-top:1em"> | <div class="row no-gutters align-items-center justify-content-center w-100" style="padding-top:1em"> | ||||
| @if ("Found".Equals(FromRoute)) { | @if ("Found".Equals(FromRoute)) { | ||||
| </MatCard> | </MatCard> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1 justify-content-center" style="text-align: center"> | |||||
| <MatRipple class="inputfile-mat-ripple" Color="@MatRippleColor.Default" @onclick="InitializeMapPosition"> | |||||
| <label> | |||||
| <svg xmlns="http://www.w3.org/2000/svg" height="48px" width="48px" viewBox="0 0 24 24" fill="#000000"> | |||||
| <path d="M0 0h24v24H0V0z" fill="none" /> | |||||
| <path d="M13 3.06V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06c-.46-4.17-3.77-7.48-7.94-7.94zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z" /> | |||||
| <circle cx="12" cy="12" opacity=".3" r="2" /> | |||||
| <path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" /> | |||||
| </svg> | |||||
| </label> | |||||
| </MatRipple> | |||||
| </div> | |||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-3"> | |||||
| <div class="w-100 fv-osm-tile map-wrapper"> | |||||
| <Map @ref="mapRef" MapOptions="@mapOptions"></Map> | |||||
| @if ("Found".Equals(FromRoute)) {<!-- Gefundenes Velo--> | |||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1 justify-content-center" style="text-align: center"> | |||||
| <MatRipple class="inputfile-mat-ripple" Color="@MatRippleColor.Default" @onclick="InitializeMapPosition"> | |||||
| <label> | |||||
| <svg xmlns="http://www.w3.org/2000/svg" height="48px" width="48px" viewBox="0 0 24 24" fill="#000000"> | |||||
| <path d="M0 0h24v24H0V0z" fill="none" /> | |||||
| <path d="M13 3.06V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06c-.46-4.17-3.77-7.48-7.94-7.94zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z" /> | |||||
| <circle cx="12" cy="12" opacity=".3" r="2" /> | |||||
| <path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" /> | |||||
| </svg> | |||||
| </label> | |||||
| </MatRipple> | |||||
| </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"> | |||||
| <MatStringField Class="w-100 form-check-label" Label="@getAddressLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.Address"></MatStringField> | |||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-3"> | |||||
| <div class="w-100 fv-osm-tile map-wrapper"> | |||||
| <Map @ref="mapRef" MapOptions="@mapOptions"></Map> | |||||
| </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="@getPlaceLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.City"></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"> | |||||
| <MatTextField Class="w-100 form-check-label italic" Label="@i18n["Latitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Latitude"></MatTextField> | |||||
| </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 italic" Label="@i18n["Longitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Longitude"></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-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"> | |||||
| <MatStringField Class="w-100 form-check-label" Label="@getAddressLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.Address"></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="@getPlaceLbl()" Outlined="true" Required="true" type="text" @bind-Value="@bicycleGeoPosition.City"></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"> | |||||
| <MatTextField Class="w-100 form-check-label italic" Label="@i18n["Latitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Latitude"></MatTextField> | |||||
| </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 italic" Label="@i18n["Longitude"]" Outlined="true" ReadOnly="true" @bind-Value="@bicycleGeoPosition.Longitude"></MatTextField> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </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-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"> | |||||
| <MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)"> | |||||
| <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-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"> | |||||
| <MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)"> | |||||
| <ItemTemplate> | |||||
| <div> | |||||
| <span class="btn-sm" style="background-color:@context.Code; | |||||
| display:initial; | display:initial; | ||||
| border:1px solid black; | border:1px solid black; | ||||
| box-shadow:0.2em 0.2em 0.3em 0.025em #3f4244" /> | box-shadow:0.2em 0.2em 0.3em 0.025em #3f4244" /> | ||||
| <span class="btn">@context?.Bezeichnung</span> | |||||
| </div> | |||||
| </ItemTemplate> | |||||
| </MatSelectValue> | |||||
| <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-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||||
| <div class="outlined"> | |||||
| <MatAutocompleteList TItem="Brand" FullWidth="true" Label="@i18n["Brand"]" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)"> | |||||
| <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-4-tablet mat-layout-grid-cell-span-4-desktop"> | |||||
| <MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)"> | |||||
| <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-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-12-desktop"> | |||||
| <MatStringField Class="w-100 form-check-label" Label="@i18n["FrameNumber"]" Outlined="true" type="text"></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-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"></MatStringField> | |||||
| </div> | |||||
| </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-4-desktop"> | |||||
| <div class="outlined"> | |||||
| <MatAutocompleteList TItem="Brand" FullWidth="true" Label="@i18n["Brand"]" Items="@Brands" OnTextChanged="setBrandValue" @bind-Value="SelectedBrand" CustomStringSelector="@(i => i?.Bezeichnung)"> | |||||
| </div> | |||||
| } else { <!-- Vermisstes Velo--> | |||||
| <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-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 FullWidth="true" Outlined="true" Label="@i18n["Color"]" @bind-Value="selectedColor" Items="@Colors" ValueSelector="@(i=>i)"> | |||||
| <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)"> | |||||
| <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 FullWidth="true" Outlined="true" Label="@i18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)"> | |||||
| <ItemTemplate> | <ItemTemplate> | ||||
| <div> | <div> | ||||
| <span>@context?.Bezeichnung</span> | <span>@context?.Bezeichnung</span> | ||||
| </div> | </div> | ||||
| </ItemTemplate> | </ItemTemplate> | ||||
| </MatAutocompleteList> | |||||
| </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"></MatStringField> | |||||
| </div> | </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-4-desktop"> | |||||
| <MatSelectValue FullWidth="true" Outlined="true" Label="@i18n["Type"]" @bind-Value="selectedBcType" Items="@BicycleTypes" ValueSelector="@(i=>i)"> | |||||
| <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-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"> | |||||
| <MatStringField Class="w-100 form-check-label" Label="@i18n["Age"]" Outlined="true" type="text"></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["Price"]" Outlined="true" type="text"></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"></MatStringField> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | |||||
| } | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> |
| @page "/fundvelo/lost_found" | @page "/fundvelo/lost_found" | ||||
| @using cwebplusApp.Shared.Services; | @using cwebplusApp.Shared.Services; | ||||
| @using cwebplusApp.Shared.Models; | |||||
| @inject NavigationManager NavigationManager | @inject NavigationManager NavigationManager | ||||
| @inject PageHistoryManager PageHistoryManager | @inject PageHistoryManager PageHistoryManager | ||||
| @inject ReportDataProvider ReportDataProvider | |||||
| <div class="row px-3 h-100"> | <div class="row px-3 h-100"> | ||||
| <div class="row no-gutters align-items-center w-100"> | <div class="row no-gutters align-items-center w-100"> | ||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | ||||
| </div> | </div> | ||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | ||||
| <MatCard Class="demo-mat-card"> | |||||
| <MatCard Class="fv-mat-card"> | |||||
| <MatCardContent> | <MatCardContent> | ||||
| <MatCardMedia Square="true" ImageUrl="./images/batch_found.png" @onclick="Found"></MatCardMedia> | <MatCardMedia Square="true" ImageUrl="./images/batch_found.png" @onclick="Found"></MatCardMedia> | ||||
| </MatCardContent> | </MatCardContent> | ||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | <div class="mat-layout-grid-cell mat-layout-grid-cell-span-1"> | ||||
| </div> | </div> | ||||
| <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | <div class="mat-layout-grid-cell mat-layout-grid-cell-span-2"> | ||||
| <MatCard Class="demo-mat-card"> | |||||
| <MatCard Class="fv-mat-card"> | |||||
| <MatCardContent> | <MatCardContent> | ||||
| <MatCardMedia Square="true" ImageUrl="./images/batch_missing.png" @onclick="Missing"></MatCardMedia> | <MatCardMedia Square="true" ImageUrl="./images/batch_missing.png" @onclick="Missing"></MatCardMedia> | ||||
| </MatCardContent> | </MatCardContent> | ||||
| protected override void OnInitialized() { | protected override void OnInitialized() { | ||||
| PageHistoryManager.AddPageToHistory(NavigationManager.Uri); | PageHistoryManager.AddPageToHistory(NavigationManager.Uri); | ||||
| ReportDataProvider.Report = null; | |||||
| base.OnInitialized(); | base.OnInitialized(); | ||||
| } | } | ||||
| private void Found() { | private void Found() { | ||||
| NavigationManager.NavigateTo("fundvelo/keydata/Found"); | |||||
| ReportDataProvider.Report = new FoundReport(); | |||||
| NavigationManager.NavigateTo("fundvelo/keydata/Found/"); | |||||
| } | } | ||||
| private void Missing() { | private void Missing() { | ||||
| ReportDataProvider.Report = new MissingReport(); | |||||
| NavigationManager.NavigateTo("fundvelo/keydata/Missing"); | NavigationManager.NavigateTo("fundvelo/keydata/Missing"); | ||||
| } | } | ||||
| } | } |
| @page "/fundvelo/conclusion_missing" | @page "/fundvelo/conclusion_missing" | ||||
| @using cwebplusApp.Shared.Services; | @using cwebplusApp.Shared.Services; | ||||
| @inject NavigationManager NavigationManager | @inject NavigationManager NavigationManager | ||||
| @inject IStringLocalizer<Resources> i18n | @inject IStringLocalizer<Resources> i18n | ||||
| @inject PageHistoryManager PageHistoryManager | @inject PageHistoryManager PageHistoryManager |
| @page "/caritas_services" | @page "/caritas_services" | ||||
| @using cwebplusApp.Shared.Services; | @using cwebplusApp.Shared.Services; | ||||
| @inject NavigationManager NavigationManager | @inject NavigationManager NavigationManager | ||||
| @inject PageHistoryManager PageHistoryManager | @inject PageHistoryManager PageHistoryManager | ||||
| <div class="mat-layout-grid w-100"> | <div class="mat-layout-grid w-100"> | ||||
| <div class="mat-layout-grid-inner"> | <div class="mat-layout-grid-inner"> | ||||
| <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="demo-mat-card"> | |||||
| <MatCard class="fv-mat-card"> | |||||
| <MatCardContent> | <MatCardContent> | ||||
| <MatCardMedia Square="true" ImageUrl="./images/batch_fundvelo.png" @onclick="FundVelo_LostFound"></MatCardMedia> | <MatCardMedia Square="true" ImageUrl="./images/batch_fundvelo.png" @onclick="FundVelo_LostFound"></MatCardMedia> | ||||
| </MatCardContent> | </MatCardContent> | ||||
| </MatCard> | </MatCard> | ||||
| </div> | </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="demo-mat-card"> | |||||
| <MatCard class="fv-mat-card"> | |||||
| <MatCardContent> | <MatCardContent> | ||||
| <MatCardMedia Square="true" ImageUrl="./images/batch_kulturlegi.png"></MatCardMedia> | <MatCardMedia Square="true" ImageUrl="./images/batch_kulturlegi.png"></MatCardMedia> | ||||
| </MatCardContent> | </MatCardContent> | ||||
| </MatCard> | </MatCard> | ||||
| </div> | </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="demo-mat-card"> | |||||
| <MatCard class="fv-mat-card"> | |||||
| <MatCardContent> | <MatCardContent> | ||||
| <MatCardMedia Square="true" ImageUrl="./images/batch_markt.png"></MatCardMedia> | <MatCardMedia Square="true" ImageUrl="./images/batch_markt.png"></MatCardMedia> | ||||
| </MatCardContent> | </MatCardContent> |
| @page "/" | @page "/" | ||||
| @using cwebplusApp.Shared.Services; | @using cwebplusApp.Shared.Services; | ||||
| @using System.Threading; | @using System.Threading; | ||||
| @using Microsoft.Extensions.Configuration; | @using Microsoft.Extensions.Configuration; | ||||
| @inject MasterDataService MasterDataService; | @inject MasterDataService MasterDataService; | ||||
| @inject Toaster Toaster; | @inject Toaster Toaster; | ||||
| @inject IConfiguration Configuration; | @inject IConfiguration Configuration; | ||||
| @inject ILFBicycleRest iLFBicycleRest; | |||||
| @inject ILFBicycleRest ILFBicycleRest; | |||||
| <div class="row h-100 justify-content-center"> | <div class="row h-100 justify-content-center"> | ||||
| showProgressCircle = true; | showProgressCircle = true; | ||||
| StateHasChanged(); | StateHasChanged(); | ||||
| try { | try { | ||||
| iLFBicycleRest.Initialize(Configuration); | |||||
| ILFBicycleRest.Initialize(Configuration); | |||||
| await MasterDataService.SynchronizeMasterdata(); | await MasterDataService.SynchronizeMasterdata(); | ||||
| } catch (Exception) { | } catch (Exception) { | ||||
| Toaster.ShowWarning(i18n.GetString("Warning.Masterdata.Title"), i18n.GetString("Warning.Masterdata.Msg")); | Toaster.ShowWarning(i18n.GetString("Warning.Masterdata.Title"), i18n.GetString("Warning.Masterdata.Msg")); |
| @page "/info" | @page "/info" | ||||
| @using cwebplusApp.Shared.Services; | @using cwebplusApp.Shared.Services; | ||||
| @inject NavigationManager NavigationManager; | @inject NavigationManager NavigationManager; | ||||
| @inject IStringLocalizer<Resources> i18n | @inject IStringLocalizer<Resources> i18n | ||||
| @inject PageHistoryManager PageHistoryManager | @inject PageHistoryManager PageHistoryManager |
| builder.Services.AddSingleton<ILFBicycleRest, LFBicycleRest>(); | builder.Services.AddSingleton<ILFBicycleRest, LFBicycleRest>(); | ||||
| builder.Services.AddSingleton<AppState>(); | builder.Services.AddSingleton<AppState>(); | ||||
| builder.Services.AddSingleton<PageHistoryManager>(); | builder.Services.AddSingleton<PageHistoryManager>(); | ||||
| builder.Services.AddSingleton<ReportDataProvider>(); | |||||
| builder.Services.AddScoped<Toaster>(); | builder.Services.AddScoped<Toaster>(); | ||||
| builder.Services.AddScoped<UserDataProvider>(); | builder.Services.AddScoped<UserDataProvider>(); | ||||
| builder.Services.AddScoped<MasterDataService>(); | builder.Services.AddScoped<MasterDataService>(); |
| }, | }, | ||||
| "nativeDebugging": false, | "nativeDebugging": false, | ||||
| "applicationUrl": "https://localhost:5001;http://localhost:5000", | "applicationUrl": "https://localhost:5001;http://localhost:5000", | ||||
| "jsWebView2Debugging": true, | |||||
| "jsWebView2Debugging": false, | |||||
| "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}" | "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}" | ||||
| } | } | ||||
| } | } |
| namespace cwebplusApp.Shared.Models { | |||||
| public class FoundReport : Report { | |||||
| public string Anrede { get; set; } // required | |||||
| public string Vorname { get; set; } // required | |||||
| public string Nachname { get; set; } // required | |||||
| public bool AbholadresseIstKontakt { get; set; } // required | |||||
| public int TypId { get; set; } // required | |||||
| public int MarkeId { get; set; } // required | |||||
| public int FarbeId { get; set; } // required | |||||
| public string Bemerkung { get; set; } | |||||
| public string Mobil { get; set; } | |||||
| public string NeueMarke { get; set; } | |||||
| public string Rahmennummer { get; set; } | |||||
| public string Telefon { get; set; } | |||||
| public string Foto { get; set; } | |||||
| public GeographicInfo GeographicInfo { get; set; } // required | |||||
| public string AbholAnrede { get; set; } // required when AbholadresseIstKontakt = false | |||||
| public string AbholVorname { get; set; } // required when AbholadresseIstKontakt = false | |||||
| public string AbholNachname { get; set; } // required when AbholadresseIstKontakt = false | |||||
| public string AbholStrasse { get; set; } // required when AbholadresseIstKontakt = false | |||||
| public string AbholPLZ { get; set; } // required when AbholadresseIstKontakt = false | |||||
| public string AbholOrt { get; set; } // required when AbholadresseIstKontakt = false | |||||
| public string AbholMail { get; set; } | |||||
| public string AbholMobil { get; set; } | |||||
| public string AbholTelefon { get; set; } | |||||
| public FoundReport() : this("", "", "", true, -1, -1, -1, null) { | |||||
| } | |||||
| public FoundReport(string anrede, string vorname, string nachname, bool abholadresseIstKontakt, int typId, int markeId, int farbeId, GeographicInfo geographicInfo) { | |||||
| this.Anrede = anrede; | |||||
| this.Vorname = vorname; | |||||
| this.Nachname = nachname; | |||||
| this.AbholadresseIstKontakt = abholadresseIstKontakt; | |||||
| this.TypId = typId; | |||||
| this.MarkeId = markeId; | |||||
| this.FarbeId = farbeId; | |||||
| this.GeographicInfo = geographicInfo; | |||||
| } | |||||
| } | |||||
| public class GeographicInfo { | |||||
| public string Postcode { get; set; } | |||||
| public string Town { get; set; } | |||||
| public string Address { get; set; } | |||||
| public double Latitude { get; set; } | |||||
| public double Longitude { get; set; } | |||||
| public GeographicInfo() : this("", "", "", 0.0, 0.0) { | |||||
| } | |||||
| public GeographicInfo(string town, string postcode, string address, double latitude, double longitude) { | |||||
| this.Town = town; | |||||
| this.Postcode = postcode; | |||||
| this.Address = address; | |||||
| this.Latitude = latitude; | |||||
| this.Longitude = longitude; | |||||
| } | |||||
| } | |||||
| } |
| namespace cwebplusApp.Shared.Models { | |||||
| public class MissingReport : Report { | |||||
| public string Anrede { get; set; } // required | |||||
| public string Vorname { get; set; } // required | |||||
| public string Nachname { get; set; } // required | |||||
| public string Mail { get; set; } // required | |||||
| public string PersonPLZ { get; set; } // required | |||||
| public string PersonOrt { get; set; } // required | |||||
| public string PersonStrasse { get; set; } // required | |||||
| public int TypId { get; set; } // required | |||||
| public int MarkeId { get; set; } // required | |||||
| public int FarbeId { get; set; } // required | |||||
| public int Alter { get; set; } | |||||
| public double Preis { get; set; } | |||||
| public string Foto { get; set; } | |||||
| public string RahmenNummer { get; set; } | |||||
| public string NeueMarke { get; set; } | |||||
| public string Telefon { get; set; } | |||||
| public string Mobil { get; set; } | |||||
| public string Zusatz { get; set; } | |||||
| public string Postfach { get; set; } | |||||
| public string Bemerkung { get; set; } | |||||
| public int SuchDienstId { get; set; } | |||||
| public string SuchDienstNr { get; set; } | |||||
| public MissingReport() : this("", "", "", "", "", "", "", -1, -1, -1) { | |||||
| } | |||||
| public MissingReport(string anrede, string vorname, string nachname, string mail, string personPLZ, | |||||
| string personOrt, string personStrasse, int typId, int markeId, int farbeId) { | |||||
| this.Anrede = anrede; | |||||
| this.Vorname = vorname; | |||||
| this.Nachname = nachname; | |||||
| this.Mail = mail; | |||||
| this.PersonPLZ = personPLZ; | |||||
| this.PersonOrt = personOrt; | |||||
| this.PersonStrasse = personStrasse; | |||||
| this.TypId = typId; | |||||
| this.MarkeId = markeId; | |||||
| this.FarbeId = farbeId; | |||||
| } | |||||
| } | |||||
| } |
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Threading.Tasks; | |||||
| namespace cwebplusApp.Shared.Models { | |||||
| public abstract class Report { | |||||
| } | |||||
| } |
| <data name="Address" xml:space="preserve"> | <data name="Address" xml:space="preserve"> | ||||
| <value>Adresse</value> | <value>Adresse</value> | ||||
| </data> | </data> | ||||
| <data name="Age" xml:space="preserve"> | |||||
| <value>Alter</value> | |||||
| </data> | |||||
| <data name="Bike.Child_Bycicle" xml:space="preserve"> | <data name="Bike.Child_Bycicle" xml:space="preserve"> | ||||
| <value>Kindervelo</value> | <value>Kindervelo</value> | ||||
| </data> | </data> | ||||
| <data name="FoundBike" xml:space="preserve"> | <data name="FoundBike" xml:space="preserve"> | ||||
| <value>Gefundenes Velo</value> | <value>Gefundenes Velo</value> | ||||
| </data> | </data> | ||||
| <data name="FrameNumber" xml:space="preserve"> | |||||
| <value>Rahmennummer</value> | |||||
| </data> | |||||
| <data name="fundvelo/account/Found" xml:space="preserve"> | <data name="fundvelo/account/Found" xml:space="preserve"> | ||||
| <value>Fundvelo > Gefunden > Finderdaten</value> | <value>Fundvelo > Gefunden > Finderdaten</value> | ||||
| </data> | </data> | ||||
| <data name="PlaceOfLoss" xml:space="preserve"> | <data name="PlaceOfLoss" xml:space="preserve"> | ||||
| <value>Verlustort</value> | <value>Verlustort</value> | ||||
| </data> | </data> | ||||
| <data name="Price" xml:space="preserve"> | |||||
| <value>Preis</value> | |||||
| </data> | |||||
| <data name="Remark" xml:space="preserve"> | |||||
| <value>Bemerkung</value> | |||||
| </data> | |||||
| <data name="Salutation" xml:space="preserve"> | <data name="Salutation" xml:space="preserve"> | ||||
| <value>Anrede</value> | <value>Anrede</value> | ||||
| </data> | </data> | ||||
| <value>Die Stammdaten konnten nicht abgerufen werden. Es werden stattdessen die Standardwerte verwendet!</value> | <value>Die Stammdaten konnten nicht abgerufen werden. Es werden stattdessen die Standardwerte verwendet!</value> | ||||
| </data> | </data> | ||||
| <data name="Warning.Masterdata.Title" xml:space="preserve"> | <data name="Warning.Masterdata.Title" xml:space="preserve"> | ||||
| <value>Die Stammdaten konnten nicht abgerufen werden!</value> | |||||
| <value>Stammdaten nicht verfügbar!</value> | |||||
| </data> | </data> | ||||
| <data name="Warning.Nominatim.Msg" xml:space="preserve"> | <data name="Warning.Nominatim.Msg" xml:space="preserve"> | ||||
| <value>Die Adresse konnte beim Aufrufen des Nominatim-Dienstes nicht aufgelöst werden. Bitte geben Sie die Straße und Postleitzahl/Ort manuell ein.</value> | <value>Die Adresse konnte beim Aufrufen des Nominatim-Dienstes nicht aufgelöst werden. Bitte geben Sie die Straße und Postleitzahl/Ort manuell ein.</value> |
| <data name="Address" xml:space="preserve"> | <data name="Address" xml:space="preserve"> | ||||
| <value>Adresse</value> | <value>Adresse</value> | ||||
| </data> | </data> | ||||
| <data name="Age" xml:space="preserve"> | |||||
| <value>Âge</value> | |||||
| </data> | |||||
| <data name="Bike.Child_Bycicle" xml:space="preserve"> | <data name="Bike.Child_Bycicle" xml:space="preserve"> | ||||
| <value>Vélo pour enfants</value> | <value>Vélo pour enfants</value> | ||||
| </data> | </data> | ||||
| <data name="FoundBike" xml:space="preserve"> | <data name="FoundBike" xml:space="preserve"> | ||||
| <value>Velo trouvè</value> | <value>Velo trouvè</value> | ||||
| </data> | </data> | ||||
| <data name="FrameNumber" xml:space="preserve"> | |||||
| <value>Numéro de cadre</value> | |||||
| </data> | |||||
| <data name="fundvelo/account/Found" xml:space="preserve"> | <data name="fundvelo/account/Found" xml:space="preserve"> | ||||
| <value>Velo >Trouvé > Data trouver</value> | <value>Velo >Trouvé > Data trouver</value> | ||||
| </data> | </data> | ||||
| <data name="PlaceOfLoss" xml:space="preserve"> | <data name="PlaceOfLoss" xml:space="preserve"> | ||||
| <value>Lieu de la perte</value> | <value>Lieu de la perte</value> | ||||
| </data> | </data> | ||||
| <data name="Price" xml:space="preserve"> | |||||
| <value>Prix</value> | |||||
| </data> | |||||
| <data name="Remark" xml:space="preserve"> | |||||
| <value>Comment</value> | |||||
| </data> | |||||
| <data name="Salutation" xml:space="preserve"> | <data name="Salutation" xml:space="preserve"> | ||||
| <value>Salutation</value> | <value>Salutation</value> | ||||
| </data> | </data> | ||||
| <value>Les données de base n'ont pas pu être récupérées. Les valeurs par défaut sont utilisées à la place !</value> | <value>Les données de base n'ont pas pu être récupérées. Les valeurs par défaut sont utilisées à la place !</value> | ||||
| </data> | </data> | ||||
| <data name="Warning.Masterdata.Title" xml:space="preserve"> | <data name="Warning.Masterdata.Title" xml:space="preserve"> | ||||
| <value>Impossible de récupérer les données de base !</value> | |||||
| <value>Les données de base ne sont pas disponibles!</value> | |||||
| </data> | </data> | ||||
| <data name="Warning.Nominatim.Msg" xml:space="preserve"> | <data name="Warning.Nominatim.Msg" xml:space="preserve"> | ||||
| <value>L'adresse n'a pas pu être résolue en invoquant le service Nominatim. Veuillez saisir l'adresse en indiquant la rue et le code postal/ville.</value> | <value>L'adresse n'a pas pu être résolue en invoquant le service Nominatim. Veuillez saisir l'adresse en indiquant la rue et le code postal/ville.</value> |
| <data name="Address" xml:space="preserve"> | <data name="Address" xml:space="preserve"> | ||||
| <value>Indirizzo</value> | <value>Indirizzo</value> | ||||
| </data> | </data> | ||||
| <data name="Age" xml:space="preserve"> | |||||
| <value>Età</value> | |||||
| </data> | |||||
| <data name="Bike.Child_Bycicle" xml:space="preserve"> | <data name="Bike.Child_Bycicle" xml:space="preserve"> | ||||
| <value>Bicicletta per bambino</value> | <value>Bicicletta per bambino</value> | ||||
| </data> | </data> | ||||
| <data name="FoundBike" xml:space="preserve"> | <data name="FoundBike" xml:space="preserve"> | ||||
| <value>Bicicletta trovata</value> | <value>Bicicletta trovata</value> | ||||
| </data> | </data> | ||||
| <data name="FrameNumber" xml:space="preserve"> | |||||
| <value>Nummero telaio</value> | |||||
| </data> | |||||
| <data name="fundvelo/account/Found" xml:space="preserve"> | <data name="fundvelo/account/Found" xml:space="preserve"> | ||||
| <value>Bicicletta > Trovata > Dati trovatore</value> | <value>Bicicletta > Trovata > Dati trovatore</value> | ||||
| </data> | </data> | ||||
| <data name="PlaceOfLoss" xml:space="preserve"> | <data name="PlaceOfLoss" xml:space="preserve"> | ||||
| <value>Luogo della perdita</value> | <value>Luogo della perdita</value> | ||||
| </data> | </data> | ||||
| <data name="Price" xml:space="preserve"> | |||||
| <value>Prezzo</value> | |||||
| </data> | |||||
| <data name="Remark" xml:space="preserve"> | |||||
| <value>Commento</value> | |||||
| </data> | |||||
| <data name="Salutation" xml:space="preserve"> | <data name="Salutation" xml:space="preserve"> | ||||
| <value>Saluto</value> | <value>Saluto</value> | ||||
| </data> | </data> | ||||
| <value>Non è stato possibile recuperare i dati anagrafici. Vengono invece utilizzati i valori di default!</value> | <value>Non è stato possibile recuperare i dati anagrafici. Vengono invece utilizzati i valori di default!</value> | ||||
| </data> | </data> | ||||
| <data name="Warning.Masterdata.Title" xml:space="preserve"> | <data name="Warning.Masterdata.Title" xml:space="preserve"> | ||||
| <value>Impossibile recuperare i dati anagrafici!</value> | |||||
| <value>Dati anagrafici non disponibili!</value> | |||||
| </data> | </data> | ||||
| <data name="Warning.Nominatim.Msg" xml:space="preserve"> | <data name="Warning.Nominatim.Msg" xml:space="preserve"> | ||||
| <value>L'indirizzo non può essere risolto invocando il servizio Nominatim. Si prega di digitare la via e CAP/città.</value> | <value>L'indirizzo non può essere risolto invocando il servizio Nominatim. Si prega di digitare la via e CAP/città.</value> |
| <data name="Address" xml:space="preserve"> | <data name="Address" xml:space="preserve"> | ||||
| <value>Address</value> | <value>Address</value> | ||||
| </data> | </data> | ||||
| <data name="Age" xml:space="preserve"> | |||||
| <value>Age</value> | |||||
| </data> | |||||
| <data name="Bike.Child_Bycicle" xml:space="preserve"> | <data name="Bike.Child_Bycicle" xml:space="preserve"> | ||||
| <value>Children Bycicle</value> | <value>Children Bycicle</value> | ||||
| </data> | </data> | ||||
| <data name="FoundBike" xml:space="preserve"> | <data name="FoundBike" xml:space="preserve"> | ||||
| <value>Found Bike</value> | <value>Found Bike</value> | ||||
| </data> | </data> | ||||
| <data name="FrameNumber" xml:space="preserve"> | |||||
| <value>Frame Number</value> | |||||
| </data> | |||||
| <data name="fundvelo/account/Found" xml:space="preserve"> | <data name="fundvelo/account/Found" xml:space="preserve"> | ||||
| <value>Bicycle > Found > Founder data</value> | <value>Bicycle > Found > Founder data</value> | ||||
| </data> | </data> | ||||
| <data name="PlaceOfLoss" xml:space="preserve"> | <data name="PlaceOfLoss" xml:space="preserve"> | ||||
| <value>Place Of Loss</value> | <value>Place Of Loss</value> | ||||
| </data> | </data> | ||||
| <data name="Price" xml:space="preserve"> | |||||
| <value>Price</value> | |||||
| </data> | |||||
| <data name="Remark" xml:space="preserve"> | |||||
| <value>Remark</value> | |||||
| </data> | |||||
| <data name="Salutation" xml:space="preserve"> | <data name="Salutation" xml:space="preserve"> | ||||
| <value>Salutation</value> | <value>Salutation</value> | ||||
| </data> | </data> | ||||
| <value>The master data could not be retrieved. The default values are used instead!</value> | <value>The master data could not be retrieved. The default values are used instead!</value> | ||||
| </data> | </data> | ||||
| <data name="Warning.Masterdata.Title" xml:space="preserve"> | <data name="Warning.Masterdata.Title" xml:space="preserve"> | ||||
| <value>Could not retreive master data!</value> | |||||
| <value>Master data not available!</value> | |||||
| </data> | </data> | ||||
| <data name="Warning.Nominatim.Msg" xml:space="preserve"> | <data name="Warning.Nominatim.Msg" xml:space="preserve"> | ||||
| <value>The address could not be resolved invoking Nominatim service. Please type in the address street and zip/town.</value> | <value>The address could not be resolved invoking Nominatim service. Please type in the address street and zip/town.</value> |
| public void Initialize(IConfiguration configuration) { | public void Initialize(IConfiguration configuration) { | ||||
| this.Configuration = configuration; | this.Configuration = configuration; | ||||
| string hostBaseUrl = Configuration.GetValue<string>("host_base_url"); | string hostBaseUrl = Configuration.GetValue<string>("host_base_url"); | ||||
| Console.WriteLine("host_base_url: " + hostBaseUrl); | |||||
| if (!String.IsNullOrEmpty(hostBaseUrl)) { | if (!String.IsNullOrEmpty(hostBaseUrl)) { | ||||
| this.httpClient = new HttpClient { BaseAddress = new Uri(hostBaseUrl) }; | this.httpClient = new HttpClient { BaseAddress = new Uri(hostBaseUrl) }; | ||||
| } | } |
| using cwebplusApp.Shared.Models; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Linq; | |||||
| using System.Threading.Tasks; | |||||
| namespace cwebplusApp.Shared.Services { | |||||
| public class ReportDataProvider { | |||||
| public Report Report { get; set; } | |||||
| public FoundReport GetFoundReport() { | |||||
| if (Report is FoundReport) { | |||||
| return (FoundReport)Report; | |||||
| } | |||||
| return null; | |||||
| } | |||||
| public MissingReport GetLostReport() { | |||||
| if (Report is MissingReport) { | |||||
| return (MissingReport)Report; | |||||
| } | |||||
| return null; | |||||
| } | |||||
| } | |||||
| } |
| <PropertyGroup> | <PropertyGroup> | ||||
| <TargetFramework>net5.0</TargetFramework> | <TargetFramework>net5.0</TargetFramework> | ||||
| <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest> | <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest> | ||||
| <Version>0.1.0</Version> | |||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <ItemGroup> | <ItemGroup> |
| "host_base_url": "https://integrate.dynalias.net:9443/Fundvelo/", | "host_base_url": "https://integrate.dynalias.net:9443/Fundvelo/", | ||||
| "subresource_url_colors": "api/{0}/{1}/fundvelo/colors", | "subresource_url_colors": "api/{0}/{1}/fundvelo/colors", | ||||
| "subresource_url_brands": "api/{0}/{1}/fundvelo/brands", | "subresource_url_brands": "api/{0}/{1}/fundvelo/brands", | ||||
| "subresource_url_types=": "api/{0}/{1}/fundvelo/types" | |||||
| "subresource_url_types": "api/{0}/{1}/fundvelo/types" | |||||
| } | } |
| } | } | ||||
| .fv-mat-card { | .fv-mat-card { | ||||
| border-radius: 20px; | |||||
| border-radius: 10%; | |||||
| } | } | ||||
| .mat-icon-large { | .mat-icon-large { | ||||
| .fv-osm-tile { | .fv-osm-tile { | ||||
| border: 1px solid rgb(0 0 0 /.38); | border: 1px solid rgb(0 0 0 /.38); | ||||
| border-radius: 20px; | |||||
| border-radius: 10%; | |||||
| } | } | ||||
| #bicycleLocationMap { | #bicycleLocationMap { |