Adds a solid start Foundation with a GlobalList.razor and OnStartUp.cs
@@ -23,12 +23,12 @@
|
||||
<input type="text" value="@username" id="username" class="form-control" placeholder="Choose your username." disabled />
|
||||
<label for="username" class="form-label">Username</label>
|
||||
</div>
|
||||
<div class="form-floating mb-3">
|
||||
<!--<div class="form-floating mb-3">
|
||||
<InputText @bind-Value="Input.PhoneNumber" id="Input.PhoneNumber" class="form-control" placeholder="Enter your phone number" />
|
||||
<label for="Input.PhoneNumber" class="form-label">Phone number</label>
|
||||
<ValidationMessage For="() => Input.PhoneNumber" class="text-danger" />
|
||||
</div>
|
||||
<button type="submit" class="w-100 btn btn-lg btn-primary">Save</button>
|
||||
<button type="submit" class="w-100 btn btn-lg btn-primary">Save</button>-->
|
||||
</EditForm>
|
||||
</div>
|
||||
</div>
|
||||
@@ -36,7 +36,7 @@
|
||||
@code {
|
||||
private ApplicationUser user = default!;
|
||||
private string? username;
|
||||
private string? phoneNumber;
|
||||
//private string? phoneNumber;
|
||||
|
||||
[CascadingParameter]
|
||||
private HttpContext HttpContext { get; set; } = default!;
|
||||
@@ -48,21 +48,21 @@
|
||||
{
|
||||
user = await UserAccessor.GetRequiredUserAsync(HttpContext);
|
||||
username = await UserManager.GetUserNameAsync(user);
|
||||
phoneNumber = await UserManager.GetPhoneNumberAsync(user);
|
||||
//phoneNumber = await UserManager.GetPhoneNumberAsync(user);
|
||||
|
||||
Input.PhoneNumber ??= phoneNumber;
|
||||
//Input.PhoneNumber ??= phoneNumber;
|
||||
}
|
||||
|
||||
private async Task OnValidSubmitAsync()
|
||||
{
|
||||
if (Input.PhoneNumber != phoneNumber)
|
||||
/*if (Input.PhoneNumber != phoneNumber)
|
||||
{
|
||||
var setPhoneResult = await UserManager.SetPhoneNumberAsync(user, Input.PhoneNumber);
|
||||
if (!setPhoneResult.Succeeded)
|
||||
{
|
||||
RedirectManager.RedirectToCurrentPageWithStatus("Error: Failed to set phone number.", HttpContext);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
await SignInManager.RefreshSignInAsync(user);
|
||||
RedirectManager.RedirectToCurrentPageWithStatus("Your profile has been updated", HttpContext);
|
||||
|
||||
@@ -7,9 +7,11 @@
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage" Match="NavLinkMatch.All">Profile</NavLink>
|
||||
</li>
|
||||
<!--
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/Email">Email</NavLink>
|
||||
</li>
|
||||
-->
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/ChangePassword">Password</NavLink>
|
||||
</li>
|
||||
@@ -19,9 +21,11 @@
|
||||
<NavLink class="nav-link" href="Account/Manage/ExternalLogins">External logins</NavLink>
|
||||
</li>
|
||||
}
|
||||
<!--
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/TwoFactorAuthentication">Two-factor authentication</NavLink>
|
||||
</li>
|
||||
-->
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/PersonalData">Personal data</NavLink>
|
||||
</li>
|
||||
|
||||
@@ -9,13 +9,15 @@
|
||||
<link rel="stylesheet" href="@Assets["app.css"]" />
|
||||
<link rel="stylesheet" href="@Assets["CouchLog.styles.css"]" />
|
||||
<ImportMap />
|
||||
<link rel="icon" type="image/png" href="favicon.png" />
|
||||
<HeadOutlet />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<Routes />
|
||||
<script src="_framework/blazor.web.js"></script>
|
||||
<script src="lib/bootstrap/dist/js/bootstrap.js"></script>
|
||||
<script src="lib/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<script src="lib/bootstrap/dist/js/site.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
@implements IDisposable
|
||||
@using CouchLog.Data
|
||||
@using Microsoft.AspNetCore.Identity
|
||||
@implements IDisposable
|
||||
|
||||
@inject NavigationManager NavigationManager
|
||||
@inject AuthenticationStateProvider AuthenticationStateProvider
|
||||
@inject UserManager<ApplicationUser> UserManager
|
||||
|
||||
<div class="top-row ps-3 navbar navbar-dark">
|
||||
<div class="container-fluid">
|
||||
@@ -17,24 +21,24 @@
|
||||
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
|
||||
</NavLink>
|
||||
</div>
|
||||
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="counter">
|
||||
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Counter
|
||||
<NavLink class="nav-link" href="GlobalList">
|
||||
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Global List
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="PrivateList">
|
||||
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Private List
|
||||
</NavLink>
|
||||
</div>
|
||||
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="weather">
|
||||
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather
|
||||
</NavLink>
|
||||
</div>
|
||||
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="auth">
|
||||
<span class="bi bi-lock-nav-menu" aria-hidden="true"></span> Auth Required
|
||||
</NavLink>
|
||||
</div>
|
||||
<AuthorizeView Roles="Admin">
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="AdminSettings">
|
||||
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Admin Settings
|
||||
</NavLink>
|
||||
</div>
|
||||
</AuthorizeView>
|
||||
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
|
||||
7
CouchLog/Components/Pages/AdminSettings.razor
Normal file
@@ -0,0 +1,7 @@
|
||||
@page "/AdminSettings"
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@attribute [Authorize]
|
||||
|
||||
<PageTitle>Admin Settings</PageTitle>
|
||||
@@ -1,13 +0,0 @@
|
||||
@page "/auth"
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@attribute [Authorize]
|
||||
|
||||
<PageTitle>Auth</PageTitle>
|
||||
|
||||
<h1>You are authenticated</h1>
|
||||
|
||||
<AuthorizeView>
|
||||
Hello @context.User.Identity?.Name!
|
||||
</AuthorizeView>
|
||||
@@ -1,23 +0,0 @@
|
||||
@page "/counter"
|
||||
@rendermode InteractiveServer
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@attribute [Authorize]
|
||||
|
||||
<PageTitle>Counter</PageTitle>
|
||||
|
||||
<h1>Counter</h1>
|
||||
|
||||
<p role="status">Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
|
||||
|
||||
@code {
|
||||
private int currentCount = 0;
|
||||
|
||||
private void IncrementCount()
|
||||
{
|
||||
currentCount++;
|
||||
}
|
||||
}
|
||||
147
CouchLog/Components/Pages/GlobalList.razor
Normal file
@@ -0,0 +1,147 @@
|
||||
@page "/GlobalList"
|
||||
@rendermode InteractiveServer
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@using CouchLog.Data
|
||||
@using Microsoft.AspNetCore.Identity
|
||||
@using Microsoft.EntityFrameworkCore
|
||||
|
||||
@inject ApplicationDbContext CouchLogDB
|
||||
@inject UserManager<ApplicationUser> UserManager
|
||||
@inject AuthenticationStateProvider AuthenticationStateProvider
|
||||
|
||||
@attribute [Authorize]
|
||||
|
||||
<PageTitle>GlobalList</PageTitle>
|
||||
|
||||
<div class="container-fluid mt-4">
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h2>Global List</h2>
|
||||
<button class="btn btn-primary" type="button" @onclick="ToogleCollapseNewGlobalEntity">@(isCollapseNewGlobalEntityOpen ? "X" : "Add Entity")</button>
|
||||
</div>
|
||||
<div class="collapse @(isCollapseNewGlobalEntityOpen ? "show" : "")" id="CollapseCreateNewGlobalEntity">
|
||||
<div class="mb-4 align-items-center CreateNewGlobalEntity-Container">
|
||||
<EditForm Model="@GlobalEntity" OnSubmit="CreateNewGlobalEntity" FormName="CreateNewGlobalEntityForm">
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="Title" class="form-label">Title</label>
|
||||
<InputText id="Title" class="form-control" @bind-Value="GlobalEntity.Title"></InputText>
|
||||
<ValidationMessage For="@(() => GlobalEntity.Title)"></ValidationMessage>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="Type" class="form-label">Type</label>
|
||||
<select>
|
||||
@foreach(MediaType Type in MediaTypes)
|
||||
{
|
||||
<option value="@Type.Id">@Type.Name</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<button type="submit">Create new Global Entity</button>
|
||||
</EditForm>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@foreach (var Entity in GlobalEntities)
|
||||
{
|
||||
<div name="Enity-Container" class="col-12 col-md-6 col-lg-3 mb-4 Entity-Container">
|
||||
<div name="Entity-Container-Card" class="Entity-Container-Card">
|
||||
<div name="Enity-Container-Image" class="">
|
||||
<a href="javascript:void(0)" class="Entity-Container-Image">
|
||||
<img src="@Entity.PicturePath" alt="" class="Entity-Container-Image" />
|
||||
</a>
|
||||
</div>
|
||||
<div name="Entity-Container-Data" class="">
|
||||
<h3 class="">@Entity.Title</h3>
|
||||
</div>
|
||||
<div name="Entity-Container-Button" class="d-flex Entity-Container-Button" style="gap: 10px;">
|
||||
<button class="btn btn-primary" type="button" @onclick="() => AddToPrivateList(Entity)">
|
||||
@(IsInPrivateList(Entity.Id) ? "Added" : "Add to Private List")
|
||||
</button>
|
||||
<button class="btn btn-primary" type="button">Add to Shared List</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code
|
||||
{
|
||||
private List<MediaType> MediaTypes = new List<MediaType>();
|
||||
public List<GlobalEntity> GlobalEntities = new List<GlobalEntity>();
|
||||
private HashSet<int> UserPrivateEntityIds = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
GlobalEntities = await CouchLogDB.GlobalEntities.OrderByDescending(Entity => Entity.Id).ToListAsync();
|
||||
MediaTypes = await CouchLogDB.MediaType.OrderByDescending(Type => Type.Id).ToListAsync();
|
||||
|
||||
var AuthState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
||||
var User = AuthState.User;
|
||||
|
||||
var AppUser = await UserManager.GetUserAsync(User);
|
||||
|
||||
if (AppUser == null)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
var TempUserPrivateEntityIds = await CouchLogDB.PrivateEntities
|
||||
.Where(p => p.UserId == AppUser.Id)
|
||||
.Select(p => p.GlobalEntityId)
|
||||
.ToListAsync();
|
||||
|
||||
UserPrivateEntityIds = TempUserPrivateEntityIds.ToHashSet();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private bool isCollapseNewGlobalEntityOpen = false;
|
||||
|
||||
private void ToogleCollapseNewGlobalEntity()
|
||||
{
|
||||
isCollapseNewGlobalEntityOpen = !isCollapseNewGlobalEntityOpen;
|
||||
}
|
||||
|
||||
private GlobalEntity GlobalEntity = new();
|
||||
|
||||
|
||||
private void CreateNewGlobalEntity()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private bool IsInPrivateList(int GolbalEntityId)
|
||||
{
|
||||
return UserPrivateEntityIds.Contains(GolbalEntityId);
|
||||
}
|
||||
|
||||
private async Task AddToPrivateList(GlobalEntity GlobalEntity)
|
||||
{
|
||||
var AuthState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
||||
var User = AuthState.User;
|
||||
|
||||
if(User.Identity?.IsAuthenticated == true)
|
||||
{
|
||||
//var AppUser = await UserManager.GetUserAsync(User);
|
||||
if(!IsInPrivateList(GlobalEntity.Id))
|
||||
{
|
||||
PrivateEntity PrivateEntity = new()
|
||||
{
|
||||
UserId = (await UserManager.GetUserAsync(User))!.Id,
|
||||
CreationTime = DateTime.Now,
|
||||
GlobalEntityId = GlobalEntity.Id,
|
||||
};
|
||||
|
||||
CouchLogDB.PrivateEntities.Add(PrivateEntity);
|
||||
await CouchLogDB.SaveChangesAsync();
|
||||
|
||||
UserPrivateEntityIds.Add(GlobalEntity.Id);
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
77
CouchLog/Components/Pages/GlobalList.razor.css
Normal file
@@ -0,0 +1,77 @@
|
||||
/*For Development*/
|
||||
/** {
|
||||
outline: 1px solid red !important;
|
||||
}*/
|
||||
|
||||
.Entity-Container {
|
||||
color:aliceblue
|
||||
}
|
||||
|
||||
.Entity-Container:hover {
|
||||
color: rgba(0,255,255,0.5);
|
||||
}
|
||||
|
||||
.Entity-Container-Card {
|
||||
position: relative;
|
||||
max-width: 275px;
|
||||
background: #111;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
border-radius: 15px;
|
||||
transition: all 0.5s ease;
|
||||
text-align: center;
|
||||
gap: 0.75rem;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
|
||||
.Entity-Container-Card h2 {
|
||||
color: #0ff;
|
||||
font-size: 2rem;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.Entity-Container-Card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
left: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background: linear-gradient( 0deg, transparent, transparent 30%, rgba(0,255,255,0.3) );
|
||||
transform: rotate(-45deg);
|
||||
transition: all 0.5s ease;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.Entity-Container-Card:hover {
|
||||
transform: scale(1.05);
|
||||
box-shadow: 0 0 20px rgba(0,255,255,0.5);
|
||||
}
|
||||
|
||||
.Entity-Container-Card:hover::before {
|
||||
opacity: 1;
|
||||
transform: rotate(-45deg) translateY(100%);
|
||||
}
|
||||
|
||||
.Entity-Container-Image {
|
||||
margin: 4px;
|
||||
margin-top: 6px;
|
||||
max-width: 256px;
|
||||
max-height: 256px;
|
||||
}
|
||||
|
||||
.Entity-Container-Button {
|
||||
display: flex;
|
||||
flex-direction: column
|
||||
}
|
||||
|
||||
.CreateNewGlobalEntity-Container {
|
||||
background: #111;
|
||||
border-radius: 15px;
|
||||
}
|
||||
99
CouchLog/Components/Pages/PrivateList.razor
Normal file
@@ -0,0 +1,99 @@
|
||||
@page "/PrivateList"
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@attribute [Authorize]
|
||||
|
||||
<PageTitle>PrivateList</PageTitle>
|
||||
|
||||
<!--
|
||||
<div class='col-12 col-md-6 col-lg-3 mb-4' name='ContainerFromList'>
|
||||
<!-- <div class='item item-horizontal'>
|
||||
<!-- <div class='item-image'>
|
||||
<!-- <a href='#' class='item-details-trigger'>
|
||||
<!-- $bild = !empty($row['PicturePath']) ? htmlspecialchars($row['PicturePath']) : './pictures/placeholder.jpg';
|
||||
<img src='". $bild. "' alt='".htmlspecialchars($row['Titel']). "'>
|
||||
<img src="@Enitiy.PicturePath" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
<div class='item-details'>
|
||||
<h3 class='item-title'>@Enitiy.Title</h3>
|
||||
<input type='hidden' name='Id' value='@Enitiy.Id'>
|
||||
<input type='hidden' name='Titel' value='@Enitiy.Title'>
|
||||
<input type='hidden' name='PicturePath' value='@Enitiy.PicturePath'>
|
||||
<input type='hidden' name='TypeId' value='@Enitiy.TypeId'>
|
||||
<div class='item-meta'>
|
||||
if ($row['Type'] == $_SESSION['validTypes'][1] || $row['Type'] == $_SESSION['validTypes'][2]) {
|
||||
<div class='meta-group'>
|
||||
<h6>Season:</h6>
|
||||
<form method='post' action='./handler/update_season.php' class='d-inline'>
|
||||
<input type='hidden' name='id' value='". $row['ID']. "'>
|
||||
<select name='Season' onchange='this.form.submit()'>
|
||||
if ($row['Season'] > 0) {
|
||||
<option value='". ($row['Season'] - 1). "'>Season ". ($row['Season'] - 1). "</option>
|
||||
}
|
||||
<option value='". $row['Season']. "' selected>Season ". $row['Season']."</option>
|
||||
<option value='". ($row['Season'] + 1). "'>Season ". ($row['Season'] + 1)."</option>
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
<div class='meta-group'>
|
||||
<h6>Episode:</h6>
|
||||
<form method='post' action='./handler/update_episode.php' class='d-inline'>
|
||||
<input type='hidden' name='id' value='". $row['ID']. "'>
|
||||
<select name='Episode' onchange='this.form.submit()'>
|
||||
if ($row['Episode'] > 0) {
|
||||
<option value='". ($row['Episode'] - 1). "'>". ($row['Episode'] - 1)."</option>
|
||||
}
|
||||
<option value='". $row['Episode']. "' selected>". $row['Episode']."</option>
|
||||
for ($i = 1; $i <= 5; $i++)
|
||||
{
|
||||
<option value='". ($row['Episode'] + $i). "'>". ($row['Episode'] + $i)."</option>
|
||||
}
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
}
|
||||
<div class='meta-group'>
|
||||
<h6>Tag:</h6>
|
||||
if (isset($_SESSION['validTags']) && !empty($_SESSION['validTags']))
|
||||
{
|
||||
<form method='post' action='./handler/update_tag.php' class='d-inline'>
|
||||
<input type='hidden' name='id' value='". $row['ID']. "'>
|
||||
<select name='Tag' onchange='this.form.submit()'>
|
||||
$noTagSelected = (empty($row['Tag']) || !isset($_SESSION['validTags'][$row['Tag']])) ? 'selected' : '';
|
||||
<option value='' ". $noTagSelected. ">-- Kein Tag --</option>
|
||||
foreach ($_SESSION['validTags'] as $tagId => $tagName) {
|
||||
$selected = (!empty($row['Tag']) && $row['Tag'] == $tagId) ? 'selected' : '';
|
||||
<option value='".htmlspecialchars($tagId). "' ". $selected. ">".htmlspecialchars($tagName). "</option>
|
||||
}
|
||||
</select>
|
||||
</form>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>Keine Tags verfügbar</span>
|
||||
}
|
||||
</div>"
|
||||
<div class='meta-group'>
|
||||
<h6>Status:</h6>
|
||||
<form method='post' action='./handler/update_status.php' class='d-inline'>
|
||||
<input type='hidden' name='id' value='". $row['ID']. "'>
|
||||
<select name='watchedStatus' onchange='this.form.submit()'>
|
||||
foreach ($_SESSION['validWatchedStatuses'] as $status) {
|
||||
$selected = ($row['WatchedStatus'] == $status) ? 'selected' : '';
|
||||
<option value='".htmlspecialchars($status). "' ". $selected. ">".htmlspecialchars($status). "</option>
|
||||
}
|
||||
</select>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href='./handler/change_favorite.php?id=". $row['ID']. "' class='button-favorite'>
|
||||
<img src='./pictures/icons/". ($row['Favorite'] ? "favorit-fill.png" : "favorit.png"). "' alt='Favorisieren'>
|
||||
</a>
|
||||
<a id=". $row['ID']. "' class='button-edit' data-bs-toggle='modal' data-bs-target='#editEntryModal'>
|
||||
<img src='./pictures/icons/edit.png' alt='Bearbeiten'>
|
||||
</a>
|
||||
</div>
|
||||
</div> -->
|
||||
@@ -1,68 +0,0 @@
|
||||
@page "/weather"
|
||||
@attribute [StreamRendering]
|
||||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@attribute [Authorize(Roles = "Admin")]
|
||||
|
||||
<PageTitle>Weather</PageTitle>
|
||||
|
||||
<h1>Weather</h1>
|
||||
|
||||
<p>This component demonstrates showing data.</p>
|
||||
|
||||
@if (forecasts == null)
|
||||
{
|
||||
<p><em>Loading...</em></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th aria-label="Temperature in Celsius">Temp. (C)</th>
|
||||
<th aria-label="Temperature in Farenheit">Temp. (F)</th>
|
||||
<th>Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var forecast in forecasts)
|
||||
{
|
||||
<tr>
|
||||
<td>@forecast.Date.ToShortDateString()</td>
|
||||
<td>@forecast.TemperatureC</td>
|
||||
<td>@forecast.TemperatureF</td>
|
||||
<td>@forecast.Summary</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
||||
@code {
|
||||
private WeatherForecast[]? forecasts;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
// Simulate asynchronous loading to demonstrate streaming rendering
|
||||
await Task.Delay(500);
|
||||
|
||||
var startDate = DateOnly.FromDateTime(DateTime.Now);
|
||||
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
|
||||
forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||
{
|
||||
Date = startDate.AddDays(index),
|
||||
TemperatureC = Random.Shared.Next(-20, 55),
|
||||
Summary = summaries[Random.Shared.Next(summaries.Length)]
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
private class WeatherForecast
|
||||
{
|
||||
public DateOnly Date { get; set; }
|
||||
public int TemperatureC { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||
}
|
||||
}
|
||||
@@ -7,17 +7,28 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.10" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.10" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="9.0.10" />
|
||||
<PackageReference Include="Microsoft.Build" Version="17.14.28" />
|
||||
<PackageReference Include="Microsoft.DotNet.Scaffolding.Shared" Version="9.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.10">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.10">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Data\DatabaseModels\Shared\" />
|
||||
<Folder Include="Data\DatabaseModels\Private\" />
|
||||
<Folder Include="wwwroot\Pictures\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace CouchLog.Data
|
||||
{
|
||||
public class GlobalEntity
|
||||
[method: SetsRequiredMembers]
|
||||
public class GlobalEntity()
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
102
CouchLog/OnStartUp.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
using CouchLog.Data;
|
||||
|
||||
namespace CouchLog
|
||||
{
|
||||
public class OnStartUp
|
||||
{
|
||||
private ApplicationDbContext CouchLogDB;
|
||||
|
||||
public OnStartUp(ApplicationDbContext CouchLogDB)
|
||||
{
|
||||
this.CouchLogDB = CouchLogDB;
|
||||
}
|
||||
|
||||
public void AddBasicDatabaseEntries()
|
||||
{
|
||||
//##################
|
||||
//### MediaTypes ###
|
||||
//##################
|
||||
List<MediaType> MediaTypes = new List<MediaType>
|
||||
{
|
||||
//Video based
|
||||
new() { Name="Movie" },
|
||||
new() { Name="Series" },
|
||||
new() { Name="Anime" },
|
||||
new() { Name="Series" },
|
||||
new() { Name="Documentary" },
|
||||
new() { Name="Short Film" },
|
||||
//new() { Name="Music Video" },
|
||||
//new() { Name="Live Performance" },
|
||||
|
||||
//Audio based
|
||||
new() { Name="Podcast" },
|
||||
new() { Name="Audiobook" },
|
||||
new() { Name="Music Album" },
|
||||
|
||||
//Interactive
|
||||
new() { Name="Video Game" },
|
||||
|
||||
//Text based
|
||||
new() { Name = "Book" },
|
||||
new() { Name = "Comic" },
|
||||
};
|
||||
|
||||
foreach (MediaType MediaType in MediaTypes)
|
||||
{
|
||||
CouchLogDB.Add(MediaType);
|
||||
}
|
||||
|
||||
//##############
|
||||
//### Genres ###
|
||||
//##############
|
||||
List<Genre> Genres = new List<Genre>
|
||||
{
|
||||
new() { Name = "Action", CreationTime = DateTime.Now },
|
||||
new() { Name = "Animation", CreationTime = DateTime.Now },
|
||||
new() { Name = "Comedy", CreationTime = DateTime.Now },
|
||||
new() { Name = "Crime", CreationTime = DateTime.Now },
|
||||
new() { Name = "Drama", CreationTime = DateTime.Now },
|
||||
new() { Name = "Fantasy", CreationTime = DateTime.Now },
|
||||
new() { Name = "History", CreationTime = DateTime.Now },
|
||||
new() { Name = "Horror", CreationTime = DateTime.Now },
|
||||
new() { Name = "Musical", CreationTime = DateTime.Now },
|
||||
new() { Name = "Miniseries", CreationTime = DateTime.Now },
|
||||
new() { Name = "Mystery", CreationTime = DateTime.Now },
|
||||
new() { Name = "Romance", CreationTime = DateTime.Now },
|
||||
new() { Name = "Science Fiction", CreationTime = DateTime.Now },
|
||||
new() { Name = "Thriller", CreationTime = DateTime.Now },
|
||||
new() { Name = "War", CreationTime = DateTime.Now },
|
||||
new() { Name = "Western", CreationTime = DateTime.Now },
|
||||
};
|
||||
|
||||
foreach(Genre Genre in Genres)
|
||||
{
|
||||
CouchLogDB.Add(Genre);
|
||||
}
|
||||
|
||||
|
||||
//##########################
|
||||
//### StreamingPlatforms ###
|
||||
//##########################
|
||||
List<StreamingPlatform> StreamingPlatforms = new List<StreamingPlatform>
|
||||
{
|
||||
new() { Name = "Netflix", PicturePath="StreamingPlatforms/Netflix.png", CreationTime = DateTime.Now },
|
||||
new() { Name = "Prime Video", PicturePath="StreamingPlatforms/Prime-Video.png", CreationTime = DateTime.Now},
|
||||
new() { Name = "Disney+", PicturePath="StreamingPlatforms/Disney+.png", CreationTime = DateTime.Now},
|
||||
new() { Name = "Apple TV", PicturePath="StreamingPlatforms/AppleTV.png", CreationTime = DateTime.Now},
|
||||
new() { Name = "WOW TV", PicturePath="StreamingPlatforms/WOWTV.png", CreationTime = DateTime.Now},
|
||||
new() { Name = "Paramount+", PicturePath="StreamingPlatforms/Paramount+.png", CreationTime = DateTime.Now},
|
||||
new() { Name = "Joyn", PicturePath="StreamingPlatforms/Joyn.png", CreationTime = DateTime.Now},
|
||||
};
|
||||
|
||||
foreach(StreamingPlatform StreamingPlatform in StreamingPlatforms)
|
||||
{
|
||||
CouchLogDB.Add(StreamingPlatform);
|
||||
}
|
||||
|
||||
|
||||
|
||||
CouchLogDB.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ using CouchLog.Data;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Add services to the container.
|
||||
builder.Services.AddRazorComponents()
|
||||
.AddInteractiveServerComponents();
|
||||
|
||||
@@ -29,7 +28,7 @@ builder.Services.AddDbContext<ApplicationDbContext>(options =>
|
||||
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
|
||||
|
||||
builder.Services.AddIdentityCore<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
|
||||
.AddRoles<IdentityRole>() // <-- Das ist der wichtige Zusatz
|
||||
.AddRoles<IdentityRole>()
|
||||
.AddEntityFrameworkStores<ApplicationDbContext>()
|
||||
.AddSignInManager()
|
||||
.AddDefaultTokenProviders();
|
||||
@@ -38,7 +37,6 @@ builder.Services.AddSingleton<IEmailSender<ApplicationUser>, IdentityNoOpEmailSe
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
if (app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseMigrationsEndPoint();
|
||||
@@ -46,7 +44,6 @@ if (app.Environment.IsDevelopment())
|
||||
else
|
||||
{
|
||||
app.UseExceptionHandler("/Error", createScopeForErrors: true);
|
||||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
app.UseHsts();
|
||||
}
|
||||
|
||||
@@ -59,13 +56,12 @@ app.MapStaticAssets();
|
||||
app.MapRazorComponents<App>()
|
||||
.AddInteractiveServerRenderMode();
|
||||
|
||||
// Add additional endpoints required by the Identity /Account Razor components.
|
||||
app.MapAdditionalIdentityEndpoints();
|
||||
|
||||
using (var scope = app.Services.CreateScope())
|
||||
{
|
||||
var roleManager = scope.ServiceProvider.GetRequiredService<RoleManager<IdentityRole>>();
|
||||
var userManager = scope.ServiceProvider.GetRequiredService<UserManager<ApplicationUser>>(); // UserManager hinzufügen
|
||||
var userManager = scope.ServiceProvider.GetRequiredService<UserManager<ApplicationUser>>();
|
||||
|
||||
string[] roleNames = { "Admin", "User" };
|
||||
IdentityResult roleResult;
|
||||
@@ -79,32 +75,22 @@ using (var scope = app.Services.CreateScope())
|
||||
}
|
||||
}
|
||||
|
||||
// --- HIER BEGINNT DER NEUE TEIL ---
|
||||
// Erstellt den Admin-Benutzer und weist ihm die Admin-Rolle zu.
|
||||
// WICHTIG: Ändere hier die E-Mail-Adresse und das Passwort!
|
||||
var adminUsername = "Admin";
|
||||
var normalUsername = "User";
|
||||
var adminEmail = "admin@deine-app.de";
|
||||
var adminPassword = "EinSehrSicheresPasswort123!"; // Nur für lokale Entwicklung, besser aus Konfiguration laden
|
||||
var normalUserEmail = "user@deine-app.de";
|
||||
var adminPassword = "EinSehrSicheresPasswort123!";
|
||||
|
||||
// Sucht nach dem Benutzer anhand der E-Mail.
|
||||
var adminUser = await userManager.FindByNameAsync(adminUsername);
|
||||
var normalUser = await userManager.FindByNameAsync(normalUsername);
|
||||
|
||||
// Wenn der Admin-Benutzer NICHT existiert, erstellen wir ihn.
|
||||
if (adminUser == null)
|
||||
{
|
||||
adminUser = new ApplicationUser
|
||||
{
|
||||
UserName = adminUsername,
|
||||
//Email = adminEmail,
|
||||
EmailConfirmed = true // Wichtig, damit er sich direkt einloggen kann
|
||||
EmailConfirmed = true
|
||||
};
|
||||
// Erstellt den Benutzer mit dem definierten Passwort.
|
||||
var createResult = await userManager.CreateAsync(adminUser, adminPassword);
|
||||
|
||||
// Wenn die Erstellung erfolgreich war, weisen wir die Admin-Rolle zu.
|
||||
if (createResult.Succeeded)
|
||||
{
|
||||
await userManager.AddToRoleAsync(adminUser, "Admin");
|
||||
@@ -115,7 +101,6 @@ using (var scope = app.Services.CreateScope())
|
||||
normalUser = new ApplicationUser
|
||||
{
|
||||
UserName = normalUsername,
|
||||
//Email = normalUserEmail,
|
||||
EmailConfirmed = true
|
||||
};
|
||||
var createResult = await userManager.CreateAsync(normalUser, adminPassword);
|
||||
@@ -129,11 +114,39 @@ using (var scope = app.Services.CreateScope())
|
||||
{
|
||||
await userManager.AddToRoleAsync(normalUser, "User");
|
||||
}
|
||||
// Optional: Wenn der Benutzer bereits existiert, aber kein Admin ist.
|
||||
else if (!await userManager.IsInRoleAsync(adminUser, "Admin"))
|
||||
{
|
||||
await userManager.AddToRoleAsync(adminUser, "Admin");
|
||||
}
|
||||
|
||||
var CouchLogDB = scope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
|
||||
|
||||
MediaType mediaType = new()
|
||||
{
|
||||
Name = "Movie"
|
||||
};
|
||||
|
||||
if (!CouchLogDB.MediaType.Any())
|
||||
CouchLogDB.MediaType.Add(mediaType);
|
||||
|
||||
await CouchLogDB.SaveChangesAsync();
|
||||
|
||||
GlobalEntity globalEntity = new()
|
||||
{
|
||||
Title = "Inception",
|
||||
CreationTime = DateTime.Now,
|
||||
CreatorId = (await userManager.FindByNameAsync("Admin"))!.Id,
|
||||
TypeId = 1,
|
||||
PicturePath = "Pictures/Inception.jpg"
|
||||
};
|
||||
|
||||
if (!CouchLogDB.GlobalEntities.Any())
|
||||
CouchLogDB.GlobalEntities.Add(globalEntity);
|
||||
|
||||
await CouchLogDB.SaveChangesAsync();
|
||||
|
||||
}
|
||||
|
||||
Console.WriteLine("ALL UP");
|
||||
|
||||
app.Run();
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"mssql1": {
|
||||
"type": "mssql",
|
||||
"connectionId": "ConnectionStrings:DefaultConnection"
|
||||
}
|
||||
}
|
||||
"dependencies": {}
|
||||
}
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"mssql1": {
|
||||
"type": "mssql.local",
|
||||
"connectionId": "ConnectionStrings:DefaultConnection"
|
||||
}
|
||||
}
|
||||
"dependencies": {}
|
||||
}
|
||||
@@ -1,9 +1,4 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"mssql1": {
|
||||
"restored": true,
|
||||
"restoreTime": "2025-09-23T16:40:52.2029789Z"
|
||||
}
|
||||
},
|
||||
"dependencies": {},
|
||||
"parameters": {}
|
||||
}
|
||||
5
CouchLog/libman.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "3.0",
|
||||
"defaultProvider": "cdnjs",
|
||||
"libraries": []
|
||||
}
|
||||
BIN
CouchLog/wwwroot/Pictures/Inception.jpg
Normal file
|
After Width: | Height: | Size: 410 KiB |
BIN
CouchLog/wwwroot/StreamingPlatforms/AppleTV.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
CouchLog/wwwroot/StreamingPlatforms/Disney+.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
CouchLog/wwwroot/StreamingPlatforms/Joyn.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
CouchLog/wwwroot/StreamingPlatforms/Netflix.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
CouchLog/wwwroot/StreamingPlatforms/Paramount+.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
CouchLog/wwwroot/StreamingPlatforms/Prime-Video.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
CouchLog/wwwroot/StreamingPlatforms/WOWTV.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
@@ -1,5 +1,7 @@
|
||||
html, body {
|
||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
background: #2d2d2d;
|
||||
color: white
|
||||
}
|
||||
|
||||
a, .btn-link {
|
||||
|
||||
8
CouchLog/wwwroot/lib/bootstrap/dist/js/site.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
window.initializeBootstrapCollapse = () => {
|
||||
var collapseElementList = [].slice.call(document.querySelectorAll('[data-bs-toggle="collapse"]'))
|
||||
var collapseList = collapseElementList.map(function (collapseEl) {
|
||||
return new bootstrap.Collapse(document.querySelector(collapseEl.dataset.bsTarget), {
|
||||
toggle: false
|
||||
})
|
||||
})
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.2.2 Chrome/134.0.6998.178 Electron/35.1.2 Safari/537.36" version="26.2.2">
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/27.0.9 Chrome/134.0.6998.205 Electron/35.4.0 Safari/537.36" version="27.0.9">
|
||||
<diagram name="Seite-1" id="Jz5ia2n6p9Zp3l0cp-au">
|
||||
<mxGraphModel dx="2069" dy="3069" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<mxGraphModel dx="2864" dy="3539" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
@@ -166,48 +166,6 @@
|
||||
<mxRectangle width="120" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-190" value="Admin" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="380" y="-960" width="180" height="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-191" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="Xi77fzrlG0XqSwbllNCe-190" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-192" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="Xi77fzrlG0XqSwbllNCe-191" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-193" value="ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" parent="Xi77fzrlG0XqSwbllNCe-191" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-194" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="Xi77fzrlG0XqSwbllNCe-190" vertex="1">
|
||||
<mxGeometry y="60" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-195" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="Xi77fzrlG0XqSwbllNCe-194" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-196" value="Name" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="Xi77fzrlG0XqSwbllNCe-194" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-197" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="Xi77fzrlG0XqSwbllNCe-190" vertex="1">
|
||||
<mxGeometry y="90" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-198" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="Xi77fzrlG0XqSwbllNCe-197" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-199" value="Password" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="Xi77fzrlG0XqSwbllNCe-197" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-263" value="Type" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="620" y="-305" width="180" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
@@ -240,8 +198,11 @@
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Xi77fzrlG0XqSwbllNCe-276" target="Xi77fzrlG0XqSwbllNCe-143" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Xi77fzrlG0XqSwbllNCe-276" target="lYp-_vgCHvUBdCsJ_lsw-27">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-276" value="User" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=5;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="380" y="-740" width="180" height="150" as="geometry" />
|
||||
<mxGeometry x="380" y="-740" width="180" height="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-277" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontStyle=4" parent="Xi77fzrlG0XqSwbllNCe-276" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
@@ -295,6 +256,19 @@
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-16" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontStyle=4" vertex="1" parent="Xi77fzrlG0XqSwbllNCe-276">
|
||||
<mxGeometry y="150" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-17" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontStyle=4" vertex="1" parent="GfTKKMNU9zFA8UzyJB_7-16">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-18" value="Rolle" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontStyle=4" vertex="1" parent="GfTKKMNU9zFA8UzyJB_7-16">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-355" value="PrivateEntity" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="680" y="-740" width="190" height="360" as="geometry" />
|
||||
</mxCell>
|
||||
@@ -1173,107 +1147,107 @@
|
||||
<mxCell id="08ox4chABUmTBZnMmG8h-89" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="Xi77fzrlG0XqSwbllNCe-144" target="ojYKOOwNX9-pwugBF0gt-34" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-27" value="StreamingPlatform" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-27" value="StreamingPlatform" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="380" y="-1210" width="180" height="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-28" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-27">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-28" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="lYp-_vgCHvUBdCsJ_lsw-27" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-29" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-28">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-29" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-28" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-30" value="ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-28">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-30" value="ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-28" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-31" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-27">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-31" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="lYp-_vgCHvUBdCsJ_lsw-27" vertex="1">
|
||||
<mxGeometry y="60" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-32" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-31">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-32" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-31" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-33" value="Name" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-31">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-33" value="Name" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-31" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-34" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-27">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-34" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="lYp-_vgCHvUBdCsJ_lsw-27" vertex="1">
|
||||
<mxGeometry y="90" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-35" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-34">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-35" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-34" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-36" value="PicturePath" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-34">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-36" value="PicturePath" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-34" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-37" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-27">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-37" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="lYp-_vgCHvUBdCsJ_lsw-27" vertex="1">
|
||||
<mxGeometry y="120" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-38" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-37">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-38" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-37" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-39" value="CreationTime" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-37">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-39" value="CreationTime" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-37" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-40" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-27">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-40" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="lYp-_vgCHvUBdCsJ_lsw-27" vertex="1">
|
||||
<mxGeometry y="150" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-41" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-40">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-41" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-40" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-42" value="LastChange" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-40">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-42" value="LastChange" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-40" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-45" value="LinkTablePrivateStreamingPlatform" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-45" value="LinkTablePrivateStreamingPlatform" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="930" y="-320" width="230" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-46" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-45">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-46" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-45" vertex="1">
|
||||
<mxGeometry y="30" width="230" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-47" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-46">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-47" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-46" vertex="1">
|
||||
<mxGeometry width="60" height="30" as="geometry">
|
||||
<mxRectangle width="60" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-48" value="PrivateEntityID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-46">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-48" value="PrivateEntityID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-46" vertex="1">
|
||||
<mxGeometry x="60" width="170" height="30" as="geometry">
|
||||
<mxRectangle width="170" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-49" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-45">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-49" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-45" vertex="1">
|
||||
<mxGeometry y="60" width="230" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-50" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-49">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-50" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-49" vertex="1">
|
||||
<mxGeometry width="60" height="30" as="geometry">
|
||||
<mxRectangle width="60" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-51" value="StreamingPlatformID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-49">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-51" value="StreamingPlatformID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-49" vertex="1">
|
||||
<mxGeometry x="60" width="170" height="30" as="geometry">
|
||||
<mxRectangle width="170" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="08ox4chABUmTBZnMmG8h-66" target="lYp-_vgCHvUBdCsJ_lsw-46">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="08ox4chABUmTBZnMmG8h-66" target="lYp-_vgCHvUBdCsJ_lsw-46" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lYp-_vgCHvUBdCsJ_lsw-28" target="lYp-_vgCHvUBdCsJ_lsw-49">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lYp-_vgCHvUBdCsJ_lsw-28" target="lYp-_vgCHvUBdCsJ_lsw-49" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1320" y="-1165" />
|
||||
@@ -1281,36 +1255,36 @@
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-60" value="LinkTableSharedStreamingPlatform" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-60" value="LinkTableSharedStreamingPlatform" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="-580" y="-605" width="220" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-61" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-60">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-61" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-60" vertex="1">
|
||||
<mxGeometry y="30" width="220" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-62" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-61">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-62" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-61" vertex="1">
|
||||
<mxGeometry width="60" height="30" as="geometry">
|
||||
<mxRectangle width="60" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-63" value="SharedListEntityID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-61">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-63" value="SharedListEntityID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-61" vertex="1">
|
||||
<mxGeometry x="60" width="160" height="30" as="geometry">
|
||||
<mxRectangle width="160" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-64" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;html=1;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-60">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-64" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-60" vertex="1">
|
||||
<mxGeometry y="60" width="220" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-65" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-64">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-65" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-64" vertex="1">
|
||||
<mxGeometry width="60" height="30" as="geometry">
|
||||
<mxRectangle width="60" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-66" value="StreamingPlatformID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" vertex="1" parent="lYp-_vgCHvUBdCsJ_lsw-64">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-66" value="StreamingPlatformID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;html=1;whiteSpace=wrap;" parent="lYp-_vgCHvUBdCsJ_lsw-64" vertex="1">
|
||||
<mxGeometry x="60" width="160" height="30" as="geometry">
|
||||
<mxRectangle width="160" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="kNGYDNntFvZigA322stw-133" target="lYp-_vgCHvUBdCsJ_lsw-61">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="kNGYDNntFvZigA322stw-133" target="lYp-_vgCHvUBdCsJ_lsw-61" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="-235" y="-725" as="sourcePoint" />
|
||||
<mxPoint x="-365" y="-560" as="targetPoint" />
|
||||
@@ -1320,10 +1294,7 @@
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="lYp-_vgCHvUBdCsJ_lsw-28" target="lYp-_vgCHvUBdCsJ_lsw-64">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="Xi77fzrlG0XqSwbllNCe-190" target="lYp-_vgCHvUBdCsJ_lsw-40">
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lYp-_vgCHvUBdCsJ_lsw-28" target="lYp-_vgCHvUBdCsJ_lsw-64" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/27.0.9 Chrome/134.0.6998.205 Electron/35.4.0 Safari/537.36" version="27.0.9">
|
||||
<diagram name="Seite-1" id="Jz5ia2n6p9Zp3l0cp-au">
|
||||
<mxGraphModel dx="2864" dy="3539" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<mxGraphModel dx="5018" dy="4522" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
@@ -198,7 +198,7 @@
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Xi77fzrlG0XqSwbllNCe-276" target="Xi77fzrlG0XqSwbllNCe-143" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Xi77fzrlG0XqSwbllNCe-276" target="lYp-_vgCHvUBdCsJ_lsw-27">
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="Xi77fzrlG0XqSwbllNCe-276" target="lYp-_vgCHvUBdCsJ_lsw-27" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Xi77fzrlG0XqSwbllNCe-276" value="User" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=5;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
@@ -256,15 +256,15 @@
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-16" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontStyle=4" vertex="1" parent="Xi77fzrlG0XqSwbllNCe-276">
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-16" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontStyle=4" parent="Xi77fzrlG0XqSwbllNCe-276" vertex="1">
|
||||
<mxGeometry y="150" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-17" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontStyle=4" vertex="1" parent="GfTKKMNU9zFA8UzyJB_7-16">
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-17" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontStyle=4" parent="GfTKKMNU9zFA8UzyJB_7-16" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-18" value="Rolle" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontStyle=4" vertex="1" parent="GfTKKMNU9zFA8UzyJB_7-16">
|
||||
<mxCell id="GfTKKMNU9zFA8UzyJB_7-18" value="Rolle" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontStyle=4" parent="GfTKKMNU9zFA8UzyJB_7-16" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
@@ -500,7 +500,7 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-23" value="SharedList" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="90" y="-945" width="180" height="150" as="geometry" />
|
||||
<mxGeometry x="-117" y="-945" width="180" height="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-24" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="kNGYDNntFvZigA322stw-23" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
@@ -555,7 +555,7 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-36" value="LinkTableShared<span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">User</span>" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="90" y="-770" width="180" height="90" as="geometry" />
|
||||
<mxGeometry x="-117" y="-770" width="180" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-37" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="kNGYDNntFvZigA322stw-36" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
@@ -584,7 +584,7 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-62" value="SharedListEntity" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="-230" y="-770" width="200" height="330" as="geometry" />
|
||||
<mxGeometry x="-437" y="-770" width="200" height="330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-133" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="kNGYDNntFvZigA322stw-62" vertex="1">
|
||||
<mxGeometry y="30" width="200" height="30" as="geometry" />
|
||||
@@ -811,7 +811,7 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-114" value="SharedWatchStatus" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="-440" y="-1120" width="180" height="240" as="geometry" />
|
||||
<mxGeometry x="-647" y="-1120" width="180" height="240" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="kNGYDNntFvZigA322stw-115" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="kNGYDNntFvZigA322stw-114" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
@@ -934,32 +934,32 @@
|
||||
</mxCell>
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-127" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="kNGYDNntFvZigA322stw-24" target="r4519YdQl4dHBxsDRu9r-161" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint y="-690" as="targetPoint" />
|
||||
<mxPoint x="-207" y="-690" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="20" y="-900" />
|
||||
<mxPoint x="20" y="-695" />
|
||||
<mxPoint x="-187" y="-900" />
|
||||
<mxPoint x="-187" y="-695" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-128" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="kNGYDNntFvZigA322stw-24" target="kNGYDNntFvZigA322stw-118" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="20" y="-900" />
|
||||
<mxPoint x="20" y="-1045" />
|
||||
<mxPoint x="-187" y="-900" />
|
||||
<mxPoint x="-187" y="-1045" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-129" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="kNGYDNntFvZigA322stw-115" target="08ox4chABUmTBZnMmG8h-50" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="-360" y="-670" as="targetPoint" />
|
||||
<mxPoint x="-567" y="-670" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-510" y="-1075" />
|
||||
<mxPoint x="-510" y="-665" />
|
||||
<mxPoint x="-717" y="-1075" />
|
||||
<mxPoint x="-717" y="-665" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-143" value="SharedListLabel" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="-220" y="-1020" width="180" height="180" as="geometry" />
|
||||
<mxGeometry x="-427" y="-1020" width="180" height="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-144" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="r4519YdQl4dHBxsDRu9r-143" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
@@ -1029,8 +1029,8 @@
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-156" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="kNGYDNntFvZigA322stw-24" target="r4519YdQl4dHBxsDRu9r-147" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="20" y="-900" />
|
||||
<mxPoint x="20" y="-945" />
|
||||
<mxPoint x="-187" y="-900" />
|
||||
<mxPoint x="-187" y="-945" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
@@ -1084,7 +1084,7 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-189" value="LinkTableSharedLabel" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="-480" y="-830" width="180" height="90" as="geometry" />
|
||||
<mxGeometry x="-687" y="-830" width="180" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EzK2GcYiyCcztsEA_2wo-4" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="r4519YdQl4dHBxsDRu9r-189" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
@@ -1115,11 +1115,11 @@
|
||||
<mxCell id="r4519YdQl4dHBxsDRu9r-205" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="r4519YdQl4dHBxsDRu9r-144" target="EzK2GcYiyCcztsEA_2wo-4" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="-240" y="-975" />
|
||||
<mxPoint x="-240" y="-785" />
|
||||
<mxPoint x="-447" y="-975" />
|
||||
<mxPoint x="-447" y="-785" />
|
||||
</Array>
|
||||
<mxPoint x="-200" y="-919.9966666666667" as="sourcePoint" />
|
||||
<mxPoint x="-290" y="-825.01" as="targetPoint" />
|
||||
<mxPoint x="-407" y="-919.9966666666667" as="sourcePoint" />
|
||||
<mxPoint x="-497" y="-825.01" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="WUPlMvjWih4pYmxRiqm8-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="Xi77fzrlG0XqSwbllNCe-277" target="Xi77fzrlG0XqSwbllNCe-120" edge="1">
|
||||
@@ -1256,7 +1256,7 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-60" value="LinkTableSharedStreamingPlatform" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||
<mxGeometry x="-580" y="-605" width="220" height="90" as="geometry" />
|
||||
<mxGeometry x="-787" y="-605" width="220" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-61" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;html=1;" parent="lYp-_vgCHvUBdCsJ_lsw-60" vertex="1">
|
||||
<mxGeometry y="30" width="220" height="30" as="geometry" />
|
||||
@@ -1286,17 +1286,23 @@
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="kNGYDNntFvZigA322stw-133" target="lYp-_vgCHvUBdCsJ_lsw-61" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="-235" y="-725" as="sourcePoint" />
|
||||
<mxPoint x="-365" y="-560" as="targetPoint" />
|
||||
<mxPoint x="-442" y="-725" as="sourcePoint" />
|
||||
<mxPoint x="-572" y="-560" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-265" y="-725" />
|
||||
<mxPoint x="-265" y="-560" />
|
||||
<mxPoint x="-472" y="-725" />
|
||||
<mxPoint x="-472" y="-560" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="lYp-_vgCHvUBdCsJ_lsw-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="lYp-_vgCHvUBdCsJ_lsw-28" target="lYp-_vgCHvUBdCsJ_lsw-64" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mi1rZ1OEnOkEVOoscsHV-4" value="Necessary for use" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="-1280" width="1250" height="1180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mi1rZ1OEnOkEVOoscsHV-5" value="Just some extra Features" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="-810" y="-1280" width="930" height="1180" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
|
||||