From 86837dc6c807c3cc8b079e5be5d51d51e2f9ead7 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Tue, 14 Jul 2026 13:22:49 +0330 Subject: [PATCH] refactoring --- GanjooRazor/Pages/Contribs.cshtml | 43 +- GanjooRazor/Pages/FAQ.cshtml | 42 +- GanjooRazor/Pages/Hashieha.cshtml | 43 +- GanjooRazor/Pages/Index.cshtml | 499 +++++++++++------------- GanjooRazor/Pages/Quotes.cshtml | 45 +-- GanjooRazor/Pages/Search.cshtml | 51 +-- GanjooRazor/Pages/Shared/_Layout.cshtml | 46 +++ GanjooRazor/Pages/Simi.cshtml | 36 +- 8 files changed, 323 insertions(+), 482 deletions(-) create mode 100644 GanjooRazor/Pages/Shared/_Layout.cshtml diff --git a/GanjooRazor/Pages/Contribs.cshtml b/GanjooRazor/Pages/Contribs.cshtml index 02ed4fe1..a09d4451 100644 --- a/GanjooRazor/Pages/Contribs.cshtml +++ b/GanjooRazor/Pages/Contribs.cshtml @@ -1,38 +1,18 @@ @page @model GanjooRazor.Pages.ContribsModel @{ - Layout = null; + Layout = "_Layout"; + ViewData["Title"] = "گنجور » مشارکت‌های کاربران"; } - - - - - - - گنجور » مشارکت‌های کاربران - - - - - +@section Head { - - - - - - @if (!string.IsNullOrEmpty(Model.LastError)) - { - @Html.Raw(Model.LastError) - } - else - { +} +@if (!string.IsNullOrEmpty(Model.LastError)) +{ + @Html.Raw(Model.LastError) +} +else +{

گنجور

@@ -150,7 +130,4 @@ loadContributions('poemcorrections'); - - - diff --git a/GanjooRazor/Pages/FAQ.cshtml b/GanjooRazor/Pages/FAQ.cshtml index f5684821..737f13e7 100644 --- a/GanjooRazor/Pages/FAQ.cshtml +++ b/GanjooRazor/Pages/FAQ.cshtml @@ -1,37 +1,14 @@ @page @model GanjooRazor.Pages.FAQModel @{ - Layout = null; + Layout = "_Layout"; } - - - - - - - @ViewData["Title"] - - - - - - - - - - - @if (!string.IsNullOrEmpty(Model.LastError)) - { - @Model.LastError - } - else - { +@if (!string.IsNullOrEmpty(Model.LastError)) +{ + @Model.LastError +} +else +{

گنجور

@@ -122,8 +99,3 @@ } } - - - - - diff --git a/GanjooRazor/Pages/Hashieha.cshtml b/GanjooRazor/Pages/Hashieha.cshtml index fbb6070b..db18b777 100644 --- a/GanjooRazor/Pages/Hashieha.cshtml +++ b/GanjooRazor/Pages/Hashieha.cshtml @@ -2,38 +2,14 @@ @using DNTPersianUtils.Core; @model GanjooRazor.Pages.HashiehaModel @{ - Layout = null; + Layout = "_Layout"; } - - - - - - - - @ViewData["Title"] - - - - - - - - - - - @if (!string.IsNullOrEmpty(Model.LastError)) - { - @Html.Raw(Model.LastError) - } - else - { +@if (!string.IsNullOrEmpty(Model.LastError)) +{ + @Html.Raw(Model.LastError) +} +else +{

گنجور

@@ -332,8 +308,3 @@ } } - - - - - diff --git a/GanjooRazor/Pages/Index.cshtml b/GanjooRazor/Pages/Index.cshtml index 443685d9..f33698ee 100644 --- a/GanjooRazor/Pages/Index.cshtml +++ b/GanjooRazor/Pages/Index.cshtml @@ -1,34 +1,15 @@ @page @model IndexModel @{ - Layout = null; + Layout = "_Layout"; } - - - - - - - @Html.Raw(ViewData["Title"]) - - - - - +@section Head { - @if ((Model.GanjoorPage != null && Model.GanjoorPage.NoIndex) || !string.IsNullOrEmpty(Model.PinterestUrl)) @@ -81,7 +62,7 @@ - @if(!Model.OfflineMode) + @if (!Model.OfflineMode) { } @@ -106,264 +87,252 @@ } } +} - - - @if(Model.OfflineMode) +@if (Model.OfflineMode) +{ +
+

+ از آنجا که شما با شبکهٔ داخلی اطلاعات ایران وصل شده‌اید در حال مشاهدهٔ یک نسخهٔ آفلاین از گنجور هستید. +

+

+ این یک نسخهٔ آفلاین با اطلاعات قدیمی از سایت گنجور است که برای ایرانیان داخل کشور که اینترنتشان قطع است در دسترس قرار گرفته است. +

+

+ بعضی امکاناتِ نیازمند اینترنت حذف شده و برخی قابلیتها نیز ممکن است به درستی کار نکند. +

+

+ امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید. +

+

+ نسخهٔ به‌روز گنجور روی اینترنت تا پایان قطعی اینترنت در ایران برای آی.پی‌های خارج از ایران در دسترس است. +

+
+} +else if (Model.ReadOnlyMode) +{ +
+

+ گنجور در حال حاضر در وضعیت فقط‌خواندنی است. +

+

+ امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید. +

+
+} + + +@if (Model.IsPoemPage) +{ + if (Model.GanjoorPage != null && Model.GanjoorPage.Poem.Recitations.Length > 0) { -
-

- از آنجا که شما با شبکهٔ داخلی اطلاعات ایران وصل شده‌اید در حال مشاهدهٔ یک نسخهٔ آفلاین از گنجور هستید. -

-

- این یک نسخهٔ آفلاین با اطلاعات قدیمی از سایت گنجور است که برای ایرانیان داخل کشور که اینترنتشان قطع است در دسترس قرار گرفته است. -

-

- بعضی امکاناتِ نیازمند اینترنت حذف شده و برخی قابلیتها نیز ممکن است به درستی کار نکند. -

-

- امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید. -

-

- نسخهٔ به‌روز گنجور روی اینترنت تا پایان قطعی اینترنت در ایران برای آی.پی‌های خارج از ایران در دسترس است. -

-
- } - else if(Model.ReadOnlyMode) - { -
-

- گنجور در حال حاضر در وضعیت فقط‌خواندنی است. -

-

- امکانات نام‌نویسی و درج حاشیه نیز در آن غیرفعال است. اگر می‌توانید جایی اطلاعاتی وارد کنید انتظار ذخیرهٔ آن را به طور دائم نداشته باشید. -

-
- } - - - @if (Model.IsPoemPage) - { - if (Model.GanjoorPage != null && Model.GanjoorPage.Poem.Recitations.Length > 0) - { - - - - } - - } + var currentAudio = null; + var verseStart = []; + var verseEnd = []; + var verseIndex = []; + var nLastHighlight = -1; + var vCount = 0; - @if (Model.IsHomePage) - { - @if (!string.IsNullOrEmpty(Model.LastError)) - { -
- @Model.LastError -
- } - else - { - - } - } - else - { - - } - - - - - - @{ - if (!string.IsNullOrEmpty(Model.PinterestUrl)) - { - - } - } - - @if (Model.IsPoemPage) - { - - - } - @if (ViewData["TrackingScript"] != null && !string.IsNullOrEmpty(ViewData["TrackingScript"].ToString())) - { - @Html.Raw(ViewData["TrackingScript"]) - } - - - - @if (Model.LoggedIn) - { - if (Model.IsPoemPage) - { - if (Model.KeepHistory) + - } - } - - - @if (Model.GanjoorPage != null && Model.GanjoorPage.Id == 39401) - { - - } - + } + } +} - - +@if (Model.IsHomePage) +{ + @if (!string.IsNullOrEmpty(Model.LastError)) + { +
+ @Model.LastError +
+ } + else + { + + } +} +else +{ + +} + +@{ + if (!string.IsNullOrEmpty(Model.PinterestUrl)) + { + + } +} + +@if (Model.IsPoemPage) +{ + + +} + +@if (ViewData["TrackingScript"] != null && !string.IsNullOrEmpty(ViewData["TrackingScript"].ToString())) +{ + @Html.Raw(ViewData["TrackingScript"]) +} + +@if (Model.LoggedIn) +{ + if (Model.IsPoemPage) + { + if (Model.KeepHistory) + { + + } + } + @if (Model.GanjoorPage != null && Model.GanjoorPage.Id == 39401) + { + + } + +} + + diff --git a/GanjooRazor/Pages/Quotes.cshtml b/GanjooRazor/Pages/Quotes.cshtml index 0b2eab53..97dfc92f 100644 --- a/GanjooRazor/Pages/Quotes.cshtml +++ b/GanjooRazor/Pages/Quotes.cshtml @@ -1,40 +1,14 @@ @page @model GanjooRazor.Pages.QuotesModel @{ - Layout = null; + Layout = "_Layout"; } - - - - - - - - @Html.Raw(ViewData["Title"]) - - - - - - - - - - - - - @if (!string.IsNullOrEmpty(Model.LastError)) - { - @Model.LastError - } - else - { +@if (!string.IsNullOrEmpty(Model.LastError)) +{ + @Model.LastError +} +else +{

گنجور

@@ -199,10 +173,5 @@ } } - - - - - diff --git a/GanjooRazor/Pages/Search.cshtml b/GanjooRazor/Pages/Search.cshtml index 809f1460..912742ba 100644 --- a/GanjooRazor/Pages/Search.cshtml +++ b/GanjooRazor/Pages/Search.cshtml @@ -2,45 +2,18 @@ @model GanjooRazor.Pages.SearchModel @using DNTPersianUtils.Core @{ - Layout = null; + Layout = "_Layout"; } - - - - - - - - +@section Head { - - @ViewData["Title"] - - - - - - - - - - - - - - @if (!string.IsNullOrEmpty(Model.LastError)) - { - @Model.LastError - } - else - { +} +@if (!string.IsNullOrEmpty(Model.LastError)) +{ + @Model.LastError +} +else +{

گنجور

@@ -290,9 +263,3 @@ } - - - - - - diff --git a/GanjooRazor/Pages/Shared/_Layout.cshtml b/GanjooRazor/Pages/Shared/_Layout.cshtml new file mode 100644 index 00000000..47b7046d --- /dev/null +++ b/GanjooRazor/Pages/Shared/_Layout.cshtml @@ -0,0 +1,46 @@ +@{ + // Shared layout for public-site pages (Pages/ folder). NOT used by Areas/Admin or Areas/User, + // which have their own separate _AdminLayout / _UserPanelLayout under their own Areas/*/Pages/Shared + // folders - see Areas/Admin/Pages/_ViewStart.cshtml and Areas/User/Pages/_ViewStart.cshtml. + // + // Individual pages opt in with `Layout = "_Layout";` (root Pages/_ViewStart.cshtml still defaults + // to Layout = null, so pages that don't opt in are completely unaffected). + // + // Extension points: + // @section Head { ... } extra // + + + @await RenderSectionAsync("Head", required: false) + + + @RenderBody() + + @await RenderSectionAsync("Scripts", required: false) + + diff --git a/GanjooRazor/Pages/Simi.cshtml b/GanjooRazor/Pages/Simi.cshtml index 2d97f53d..5fd7a450 100644 --- a/GanjooRazor/Pages/Simi.cshtml +++ b/GanjooRazor/Pages/Simi.cshtml @@ -2,31 +2,9 @@ @using DNTPersianUtils.Core @model GanjooRazor.Pages.SimiModel @{ - Layout = null; + Layout = "_Layout"; } - - - - - - - - @ViewData["Title"] - - - - - - - - - +@section Head { @if (Model.CanEdit) { } - - - - +} @if (!string.IsNullOrEmpty(Model.LastError)) { @@ -427,8 +402,3 @@ } - - - - -