From d691501d420d2e20ad7bd6718f18221ba68bf920 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 19 Aug 2025 15:40:16 +0100 Subject: [PATCH] Client viewa restored --- src/Yavsc/Views/Client/Create.cshtml | 75 +++++++++++++++++ src/Yavsc/Views/Client/Delete.cshtml | 64 +++++++++++++++ src/Yavsc/Views/Client/Details.cshtml | 66 +++++++++++++++ src/Yavsc/Views/Client/Edit.cshtml | 76 ++++++++++++++++++ src/Yavsc/Views/Client/Index.cshtml | 68 ++++++++++++++++ src/Yavsc/Views/FrontOffice/HairCut.cshtml | 2 +- src/Yavsc/Views/FrontOffice/Profiles.cshtml | 2 +- ...lability.cshtml => Availability.fr.cshtml} | 0 .../Shared/DisplayTemplates/BookQuery.cshtml | 12 +-- .../DisplayTemplates/IApplicationUser.cshtml | 14 +++- .../site.scssc | Bin 9265 -> 15424 bytes src/Yavsc/wwwroot/css/site.css | 2 +- src/Yavsc/wwwroot/css/site.scss | 2 +- 13 files changed, 372 insertions(+), 11 deletions(-) create mode 100644 src/Yavsc/Views/Client/Create.cshtml create mode 100644 src/Yavsc/Views/Client/Delete.cshtml create mode 100644 src/Yavsc/Views/Client/Details.cshtml create mode 100644 src/Yavsc/Views/Client/Edit.cshtml create mode 100644 src/Yavsc/Views/Client/Index.cshtml rename src/Yavsc/Views/Shared/DisplayTemplates/{Availability.cshtml => Availability.fr.cshtml} (100%) diff --git a/src/Yavsc/Views/Client/Create.cshtml b/src/Yavsc/Views/Client/Create.cshtml new file mode 100644 index 00000000..f3f1333a --- /dev/null +++ b/src/Yavsc/Views/Client/Create.cshtml @@ -0,0 +1,75 @@ +@model Client + +@{ + ViewData["Title"] = @SR["Create"]; +} + +

@SR["Create"]

+ +
+
+

Client

+
+
+
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ @Html.DropDownList("Type") + +
+
+
+
+ +
+
+
+
+ +
+ @SR["Back to List"] +
+ diff --git a/src/Yavsc/Views/Client/Delete.cshtml b/src/Yavsc/Views/Client/Delete.cshtml new file mode 100644 index 00000000..0ce7409f --- /dev/null +++ b/src/Yavsc/Views/Client/Delete.cshtml @@ -0,0 +1,64 @@ +@model Client + +@{ + ViewData["Title"] = @SR["Delete"]; +} + +

@SR["Delete"]

+ +

@SR["AreYourSureYouWantToDeleteThis"]

+
+

Client

+
+
+
+ @Html.DisplayNameFor(model => model.Active) +
+
+ @Html.DisplayFor(model => model.Active) +
+
+ @Html.DisplayNameFor(model => model.DisplayName) +
+
+ @Html.DisplayFor(model => model.DisplayName) +
+
+ @Html.DisplayNameFor(model => model.LogoutRedirectUri) +
+
+ @Html.DisplayFor(model => model.LogoutRedirectUri) +
+
+ @Html.DisplayNameFor(model => model.RedirectUri) +
+
+ @Html.DisplayFor(model => model.RedirectUri) +
+
+ @Html.DisplayNameFor(model => model.RefreshTokenLifeTime) +
+
+ @Html.DisplayFor(model => model.RefreshTokenLifeTime) +
+
+ @Html.DisplayNameFor(model => model.Secret) +
+
+ @Html.DisplayFor(model => model.Secret) +
+
+ @Html.DisplayNameFor(model => model.Type) +
+
+ @Html.DisplayFor(model => model.Type) +
+
+ +
+ +
+
diff --git a/src/Yavsc/Views/Client/Details.cshtml b/src/Yavsc/Views/Client/Details.cshtml new file mode 100644 index 00000000..160add64 --- /dev/null +++ b/src/Yavsc/Views/Client/Details.cshtml @@ -0,0 +1,66 @@ +@model Client + +@{ + ViewData["Title"] = @SR["Details"]; +} + +

@SR["Details"]

+ +
+

Client

+
+
+
+ @Html.DisplayNameFor(model => model.Id) +
+
+ @Html.DisplayFor(model => model.Id) +
+
+ @Html.DisplayNameFor(model => model.Active) +
+
+ @Html.DisplayFor(model => model.Active) +
+
+ @Html.DisplayNameFor(model => model.DisplayName) +
+
+ @Html.DisplayFor(model => model.DisplayName) +
+
+ @Html.DisplayNameFor(model => model.LogoutRedirectUri) +
+
+ @Html.DisplayFor(model => model.LogoutRedirectUri) +
+
+ @Html.DisplayNameFor(model => model.RedirectUri) +
+
+ @Html.DisplayFor(model => model.RedirectUri) +
+
+ @Html.DisplayNameFor(model => model.RefreshTokenLifeTime) +
+
+ @Html.DisplayFor(model => model.RefreshTokenLifeTime) +
+
+ @Html.DisplayNameFor(model => model.Secret) +
+
+ @Html.DisplayFor(model => model.Secret) +
+
+ @Html.DisplayNameFor(model => model.Type) +
+
+ @Html.DisplayFor(model => model.Type) +
+
+
+

+ @SR["Edit"] | + @SR["Back to List"] +

diff --git a/src/Yavsc/Views/Client/Edit.cshtml b/src/Yavsc/Views/Client/Edit.cshtml new file mode 100644 index 00000000..1ab9ae5a --- /dev/null +++ b/src/Yavsc/Views/Client/Edit.cshtml @@ -0,0 +1,76 @@ +@model Client + +@{ + ViewData["Title"] = "Edit"; +} + +

@SR["Edit"]

+ +
+
+

Client

+
+
+ +
+
+
+ + +
+
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ @Html.DropDownList("Type") + +
+
+
+
+ +
+
+
+
+ +
+ @SR["Back to List"] +
+ diff --git a/src/Yavsc/Views/Client/Index.cshtml b/src/Yavsc/Views/Client/Index.cshtml new file mode 100644 index 00000000..be0e53e2 --- /dev/null +++ b/src/Yavsc/Views/Client/Index.cshtml @@ -0,0 +1,68 @@ +@model IEnumerable + +@{ + ViewData["Title"] = @SR["Index"]; +} + +

@SR["Index"]

+ +

+ @SR["Create New"] +

+ + + + + + + + + + + + +@foreach (var item in Model) { + + + + + + + + + + +} +
+ @Html.DisplayNameFor(model => model.Active) + + @Html.DisplayNameFor(model => model.DisplayName) + + @Html.DisplayNameFor(model => model.LogoutRedirectUri) + + @Html.DisplayNameFor(model => model.RedirectUri) + + @Html.DisplayNameFor(model => model.RefreshTokenLifeTime) + + @Html.DisplayNameFor(model => model.Secret) + + @Html.DisplayNameFor(model => model.Type) +
+ @Html.DisplayFor(modelItem => item.Active) + + @Html.DisplayFor(modelItem => item.DisplayName) + + @Html.DisplayFor(modelItem => item.LogoutRedirectUri) + + @Html.DisplayFor(modelItem => item.RedirectUri) + + @Html.DisplayFor(modelItem => item.RefreshTokenLifeTime) + + @Html.DisplayFor(modelItem => item.Secret) + + @Html.DisplayFor(modelItem => item.Type) + + Edit | + Details | + Delete +
diff --git a/src/Yavsc/Views/FrontOffice/HairCut.cshtml b/src/Yavsc/Views/FrontOffice/HairCut.cshtml index 7086f6ad..efb4369e 100644 --- a/src/Yavsc/Views/FrontOffice/HairCut.cshtml +++ b/src/Yavsc/Views/FrontOffice/HairCut.cshtml @@ -13,7 +13,7 @@ asp-route-activityCode="@ViewBag.Activity.Code" asp-route-performerId="@profile.PerformerId" class="btn btn-success"> - Proposer un rendez-vous à"] @profile.UserName + Proposer un rendez-vous à @profile.UserName } diff --git a/src/Yavsc/Views/FrontOffice/Profiles.cshtml b/src/Yavsc/Views/FrontOffice/Profiles.cshtml index 36dbd87a..b1d6930e 100644 --- a/src/Yavsc/Views/FrontOffice/Profiles.cshtml +++ b/src/Yavsc/Views/FrontOffice/Profiles.cshtml @@ -11,7 +11,7 @@ @Html.DisplayFor(m=>profile) - Proposer un rendez-vous à"] @profile.UserName + Proposer un rendez-vous à @profile.UserName } diff --git a/src/Yavsc/Views/Shared/DisplayTemplates/Availability.cshtml b/src/Yavsc/Views/Shared/DisplayTemplates/Availability.fr.cshtml similarity index 100% rename from src/Yavsc/Views/Shared/DisplayTemplates/Availability.cshtml rename to src/Yavsc/Views/Shared/DisplayTemplates/Availability.fr.cshtml diff --git a/src/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml b/src/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml index efff15cd..51f84fb6 100644 --- a/src/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml +++ b/src/Yavsc/Views/Shared/DisplayTemplates/BookQuery.cshtml @@ -3,38 +3,38 @@
- EventDate"] + EventDate
@Html.DisplayFor(model => model.EventDate)
- Client"] + Client
@Html.DisplayFor(model => model.Client.UserName)
- Address"] + Address
@Html.DisplayFor(model => model.Location.Address)
- Provider"] + Provider
@Html.DisplayFor(model => model.PerformerProfile.Performer.UserName)
- ValidationDate"] + ValidationDate
- @((Model.ValidationDate==null)?"NonValidee":Html.DisplayFor(model => model.ValidationDate)) + @((Model.ValidationDate==null)?"Non Validated":Html.DisplayFor(model => model.ValidationDate))
diff --git a/src/Yavsc/Views/Shared/DisplayTemplates/IApplicationUser.cshtml b/src/Yavsc/Views/Shared/DisplayTemplates/IApplicationUser.cshtml index 976ca84c..493eb5cd 100644 --- a/src/Yavsc/Views/Shared/DisplayTemplates/IApplicationUser.cshtml +++ b/src/Yavsc/Views/Shared/DisplayTemplates/IApplicationUser.cshtml @@ -1,10 +1,22 @@ @using Yavsc.Abstract.Identity @model IApplicationUser @{ - var avuri = "/Avatars/" + Model.UserName + ".s.png"; + +if (Model ==null || Model.UserName==null) +{ + if (Model !=null) + { + [E No user name] + } } +else { + string avuri = "/Avatars/" + Model.UserName + ".s.png"; + +} +} + diff --git a/src/Yavsc/wwwroot/css/.sass-cache/f72b97d2a2f775ae72a70903abdc00c6553756a7/site.scssc b/src/Yavsc/wwwroot/css/.sass-cache/f72b97d2a2f775ae72a70903abdc00c6553756a7/site.scssc index e91dd8617e756cc2dadd54ee2409897610d9164f..01e337bb29740dc3b4367615f5968d19e16a7c37 100644 GIT binary patch literal 15424 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