diff --git a/.github/instructions/dotnet.instructions.md b/.github/instructions/dotnet.instructions.md index 5f778896..75a1103b 100644 --- a/.github/instructions/dotnet.instructions.md +++ b/.github/instructions/dotnet.instructions.md @@ -100,7 +100,16 @@ Ek kurallar: - **Katman sınırı**: Domain.Shared → Domain → Application.Contracts → Application → HttpApi → HttpApi.Host. Ters yönde referans verilmez; `EntityFrameworkCore` yalnızca - Domain'e bakar. + Domain'e bakar. `DbMigrator` yalnızca `Application.Contracts` + `EntityFrameworkCore` + referansı taşır; **Application'a referans verilmez** — seeder'ın uygulama servislerine + ihtiyaç duyması, kodun yanlış katmanda olduğunun işaretidir. +- **Hem seeder'ın hem AppService'in ihtiyaç duyduğu dönüşüm**: ortak kod + `Application.Contracts`'a konur (DTO'nun kendi metodu olarak; yeni yardımcı sınıf + üretilmez). Dönüşümün entity'ye yazması gerekiyorsa entity'nin **yazılabilir kolon + sözleşmesi** Domain.Shared'de bir arayüz olarak tanımlanır (`IListFormArtifact`, + `IListFormFieldArtifact`), entity bu arayüzü uygular ve dönüşüm arayüz üzerinden yazar. + Böylece Contracts, Domain'i tanımadan entity doldurabilir ve aynı dönüşüm iki yerde + kopyalanmaz. - **AppService**: `PlatformAppService`'ten türer, arayüzü Application.Contracts'ta tanımlanır. Controller yazılmaz — ABP otomatik API üretir. Controller sadece ABP konvansiyonunun karşılamadığı durumda (dosya indirme, harici webhook) eklenir. diff --git a/.github/instructions/lowcode-reference.instructions.md b/.github/instructions/lowcode-reference.instructions.md index c1c88d5b..a123648d 100644 --- a/.github/instructions/lowcode-reference.instructions.md +++ b/.github/instructions/lowcode-reference.instructions.md @@ -16,8 +16,11 @@ sorusunda buraya bak. **Ortak kurallar** -- Bütün `*Json` kolonları veritabanında **tek satır JSON string** olarak durur; wizard seed - dosyasına yazarken kaçışlanır. +- Bütün `*Json` kolonları veritabanında **tek satır JSON string** olarak durur. Wizard seed + dosyasının `ListForm`/`Fields` bölümleri ekranın DTO sözleşmesini taşıdığı için orada bu + kolonlar kaçışlanmış metin değil, tipli karşılıkları (`SchedulerOptionJson` → + `SchedulerOptionDto`) olarak yer alır; kaçışlama yalnızca `EditorOptions`, `EditorScript`, + `LookupQuery` gibi gerçekten metin olan alanlar içindir. - Varsayılan değeri olan bir alanı tekrar yazmak zorunda değilsin; yalnızca farklı olanı yaz. - `Accepted Values` yazan yerlerde değer birebir eşleşmelidir (büyük/küçük harf dahil). - **Bilinmeyen anahtar sessizce düşer — tarayıcıya hiç ulaşmaz.** `GridOptionsDto` bu 47 diff --git a/.github/instructions/lowcode.instructions.md b/.github/instructions/lowcode.instructions.md index 8b283aad..be449a0d 100644 --- a/.github/instructions/lowcode.instructions.md +++ b/.github/instructions/lowcode.instructions.md @@ -53,7 +53,7 @@ configs/seeds/host/ ├── postgres/object|execute/… ← aynısının PostgreSQL diyalekti (hedef PG ise) ├── crud/{EntityName}.json ← tablonun REST uçları ├── custom/{ComponentName}.json ← Custom Component (Visual Designer dokümanı ya da kod) -└── wizard/{yyyyMMddHHmmss}_{WizardName}.json ← ekran + menü + yetki + dil anahtarları +└── wizard/{WizardName}.json ← ekran + menü + yetki + dil anahtarları ``` Tenant kapsamı isteniyorsa `host/` yerine `tenants/{tenantId}/`; iç düzen aynıdır. @@ -65,13 +65,14 @@ Tenant kapsamı isteniyorsa `host/` yerine `tenants/{tenantId}/`; iç düzen ayn | 1 | Tablo / view | `sql/object/…` | Ekranın bağlanacağı nesne önce var olmalı | | 2 | CRUD uçları (gerekiyorsa) | `crud/{Entity}.json` | Custom Component'in data source'ları buna bakar | | 3 | Custom Component (gerekiyorsa) | `custom/{Name}.json` | Wizard `Custom` yolunda bileşen adını arar | -| 4 | Wizard | `wizard/{ts}_{Ad}.json` | Menü, yetki, dil anahtarı ve ListForm'u üretir | -| 5 | Alt ekranlar (varsa) | ek `wizard/…` dosyaları | Ana wizard'dan **önceki** zaman damgasını alır | +| 4 | Wizard | `wizard/{Ad}.json` | Menü, yetki, dil anahtarı ve ListForm'u üretir | +| 5 | Alt ekranlar (varsa) | ek `wizard/…` dosyaları | Ana wizard'dan **önceki** `SeededAt` damgasını alır | -**Zaman damgası bir bağımlılık aracıdır.** `WizardDataSeeder` `wizard/` klasörünü **dosya adına -göre sıralı** işler. Bir wizard başka bir wizard'ın ürettiği menüye/ListForm'a dayanıyorsa, -bağımlı olanın zaman damgası **daha büyük** olmalıdır. Alt form olarak kullanılacak menüsüz -ekranı her zaman önce numaralandır. +**`Wizard.SeededAt` bir bağımlılık aracıdır.** Dosya adı tarih taşımaz (`{WizardName}.json`); +`WizardDataSeeder` `wizard/` klasörünü **`Wizard.SeededAt` damgasına göre sıralı** işler (eşitlikte +dosya adı). Bir wizard başka bir wizard'ın ürettiği menüye/ListForm'a dayanıyorsa, bağımlı olanın +damgası **daha büyük** olmalıdır. Alt form olarak kullanılacak menüsüz ekranı her zaman önce +damgala. ### 0.3 Yazmadan önce zorunlu keşif @@ -102,7 +103,7 @@ Uydurma. Şu üçünü mutlaka kontrol et: | JSON alan adları | **PascalCase** (`Wizard`, `ListFormCode`, `Groups`) — seeder `PropertyNameCaseInsensitive` okur ama dosyalar PascalCase üretilir | | Custom component dosyası | Kök alanlar PascalCase; `Props` **içindeki** designer dokümanı camelCase (`visualDesigner`, `nodes`, `sourceMode`) | | Enum'lar | Sayı olarak yazılır (§3) | -| `GeneratedAt` | ISO-8601 UTC (`2026-08-26T10:15:00Z`) — yalnızca bilgi amaçlı. **Yalnızca `custom/` ve `crud/` dosyalarında vardır**; wizard seed dosyasında böyle bir alan yoktur (zaman damgası dosya adındadır) | +| `GeneratedAt` | ISO-8601 UTC (`2026-08-26T10:15:00Z`) — yalnızca bilgi amaçlı. **Yalnızca `custom/` ve `crud/` dosyalarında vardır**; wizard seed dosyasında karşılığı `Wizard.SeededAt` alanıdır | | İç içe JSON | `EditorOptions`, `EditorScript`, `LookupQuery` → JSON **string** olarak kaçışlanır | | Satır sonu | LF | @@ -466,7 +467,7 @@ Tutarlılık zorunludur; menü, route, yetki ve dil anahtarı aynı kökten tür | Dil anahtarı (alan) | `App.Listform.ListformField.{Alan}` | `App.Listform.ListformField.OrderNo` | | Route (List) | `/admin/list/{ListFormCode}` — statik `:listFormCode` route'u karşılar, DB'ye kayıt yazılmaz | `/admin/list/App.Mrp.Orders` | | Route (Custom) | Bileşenin `RoutePath` değeri; route doğrudan bundan üretilir | `/admin/order-board` | -| Wizard seed dosyası | `{yyyyMMddHHmmss}_{WizardName}.json` | `20260826101500_Orders.json` | +| Wizard seed dosyası | `{WizardName}.json` | `Orders.json` | | Custom component seed | `{Name}.json` | `OrderBoard.json` | | CRUD endpoint seed | `{EntityName}.json` | `Mrp_T_Order.json` | @@ -561,14 +562,26 @@ Her editörün kendine özgü seçenekleri için §4.3.2. ## 4. Artefakt A — ListForm ekranı (Wizard seed dosyası) -Konum: `configs/seeds/{kapsam}/wizard/{yyyyMMddHHmmss}_{WizardName}.json` -Okuyan: `WizardDataSeeder` · Yazan: `ListFormWizardAppService` +Konum: `configs/seeds/{kapsam}/wizard/{WizardName}.json` (dosya adında tarih yoktur) +Okuyan: `WizardDataSeeder` · Yazan: `ListFormWizardAppService` ve `WizardSeedSynchronizer` ### 4.1 Dosya iskeleti ```jsonc { - "Wizard": { /* ListFormWizardDto — 4.2 */ }, + "Wizard": { // yalnızca ekrandan üretilemeyen bilgiler — 4.2 + "ComponentKind": 0, "WizardName": "Tags", "SeededAt": "2026-09-01T09:03:00", + "WizardCode": "App.Prj.Tags", "CustomComponentName": "", + "PermissionGroupName": "App.Prj", "PermissionGroupDisplayNameEn": "…", "PermissionGroupDisplayNameTr": "…", + "DataSourceConnectionString": "", "ModuleId": "Prj", + "Menu": { "MenuCode": "…", "MenuOrder": 2, "MenuUrl": "…", "MenuIcon": "…", + "MenuParentCode": "…", "MenuParentIcon": "…" }, // "CreateMenu": false ise eklenir + "Language": { "LanguageTextMenuEn": "…", /* Menu/Title/Desc/MenuParent · EN + TR */ }, + "Groups": [ { "Items": [ { "FieldName": "…", "CaptionName": "…", + "EnglishCaption": "…", "TurkishCaption": "…" } ] } ] + }, + "ListForm": { /* GridOptionsEditDto — ekranın kendisi, ListForm detayıyla aynı sözleşme */ }, + "Fields": [ /* ColumnFormatEditDto — alanlar, alan detayıyla aynı sözleşme */ ], "IsDeletedField": true, // tabloda IsDeleted var mı (soft delete) "IsCreatedField": true, // tabloda CreatorId var mı (audit) "InsertedRecords": { // bu çalıştırmanın GERÇEKTEN yarattığı kayıtlar @@ -578,19 +591,50 @@ Okuyan: `WizardDataSeeder` · Yazan: `ListFormWizardAppService` } ``` +`Wizard` bölümü yalnızca ekrandan üretilemeyen bilgileri taşır (menü, yetki, dil metinleri, +bileşen yolu, alan başlıklarının dil karşılıkları); `ListForm`/`Fields` içinde karşılığı olan +hiçbir alan orada tekrar edilmez (§4.2). + +**`ListForm` + `Fields` ekranın tek gerçeğidir.** Seeder ekranı bu iki bölümden kurar; `Wizard` +bölümünden yalnızca menü, yetki, dil anahtarları ve veri kaynağı üretilir. Ekran **ListForm +detayından** (liste ayarları, alan ayarları, JSON satır editörleri) düzenlendiğinde sunucu aynı +dosyanın `ListForm`/`Fields` bölümlerini ve `Wizard` bölümündeki karşılıklarını geri yazar +(`WizardSeedSynchronizer`); böylece wizard yeniden deploy edildiğinde tasarımcıdaki iş kaybolmaz. +Elle bu dosyayı yazarken `ListForm`/`Fields` bölümlerini uydurma — wizard'ı deploy et, dosyayı +sunucu üretsin. + `InsertedRecords` **silme sözleşmesidir**: wizard silindiğinde yalnızca burada listelenen kayıtlar silinir, paylaşılan kayıtlara (var olan izin grubu, var olan üst menü) dokunulmaz. Elle dosya yazarken buraya var olan bir kaydı koyma — silme onu da götürür. ### 4.2 `Wizard` bloğu — alan alan +`Wizard` bloğu **yalnızca ekranın sözleşmesinden üretilemeyen** bilgileri taşır: menü, yetki, +dil metinleri, bileşen yolu ve alan başlıklarının iki dilli karşılıkları. Ekrana ait olan her +şey (veri kaynağı, select komutu, anahtar alan, kırılım bayrakları, düzen/görünüm bayrakları, +düzenleme izinleri, görünüm option blokları, alt formlar, widget'lar, iş akışı, alan tanımları) +`ListForm`/`Fields` bölümlerindedir ve dosyaya **ikinci kez yazılmaz**. + +Dosyada wizard alanları üç başlık altında toplanır — `Menu` (menü kaydı), `Language` (dil +metinleri), `Groups` (alan başlıklarının dil karşılıkları); geri kalanı kök seviyededir. +Gruplama ile `ListFormCode → WizardCode` ve `MenuParentModuleId → ModuleId` adlandırmaları +yalnızca **dosya biçimidir**; C# +sözleşmesi (`ListFormWizardDto`) düzdür ve dosya okunurken düzleştirilir +(`WizardSeedFileDto.FromSeedJson` ↔ `ToSeedJson`). Aşağıdaki tablolar C# alan adlarını kullanır. + +Aşağıdaki tablolarda `[ListForm]` işaretli alanlar **istek girdisidir**: sihirbaz bunları POST +eder, sunucu ekranı bunlardan üretir, ama seed dosyasında `ListForm` bölümündeki karşılıkları +saklanır. Dosya okunurken bu alanlar `ListForm`/`Fields` üzerinden geri doldurulur +(`WizardSeedFileDto.FromSeedJson`), dolayısıyla wizard'ı okuyan kod tam nesneyi görür. + **Kimlik ve yol** | Alan | Anlam | | --- | --- | | `ComponentKind` | `0` List (varsayılan) · `1` Custom. Dosyadaki ilk alan olmalı. | -| `WizardName` | Dosya adının ve export zip adının kaynağı. | -| `ListFormCode` | Ekranın kodu; route ve metadata bu koda göre çözülür. | +| `WizardName` | Dosya adının (`{WizardName}.json`) ve export zip adının kaynağı. | +| `SeededAt` | İlk deploy anı; seeder dosyaları bu damgaya göre sıralar. Sunucu üretir, düzenlemede korunur. | +| `ListFormCode` | Ekranın kodu; route, yetki adları ve dil anahtarları bu koddan türer. Dosyada `WizardCode` adıyla, üçüncü sırada yazılır. | | `MenuCode` | Menü kaydının kodu; yetki adlarının kökü de budur. | | `MenuUrl` | List'te `/admin/list/{MenuCode}` hesaplanır; Custom'da bileşenin `RoutePath`'i yazılır. | | `CustomComponentName` | Yalnızca Custom yolunda; bağlanacak bileşenin adı. | @@ -600,7 +644,11 @@ Elle dosya yazarken buraya var olan bir kaydı koyma — silme onu da götürür | Alan | Anlam | | --- | --- | -| `CreateMenu` | `false` ise menü ve üst menü kaydı **hiç üretilmez**; ListForm, yetki ve dil anahtarları yine üretilir. SubGrid/parça olarak kullanılacak ekranlar için. Varsayılan `true`. | +> Dosyada bu bloğun tamamı `Menu` başlığı altındadır; `MenuParentModuleId` ise kök seviyede +> `ModuleId` adıyla yazılır. Menüsüz wizard'da da blok korunur: `MenuCode` yetkilerin kökü, +> Custom yolunda `MenuUrl` rotanın kaynağıdır. + +| `CreateMenu` | `false` ise menü ve üst menü kaydı **hiç üretilmez**; ListForm, yetki ve dil anahtarları yine üretilir. SubGrid/parça olarak kullanılacak ekranlar için. Varsayılan `true` olduğu için dosyaya **yalnızca `false` iken** yazılır. | | `MenuParentCode` / `MenuParentModuleId` / `MenuParentIcon` | Üst menü; yoksa oluşturulur. | | `MenuIcon` | React-icons adı (`FcBiohazard`, `FaBox`…). | | `MenuOrder` | Kardeşler arası sıra. | @@ -609,6 +657,9 @@ Elle dosya yazarken buraya var olan bir kaydı koyma — silme onu da götürür | Alan | Anlam | | --- | --- | +> `LanguageText*` alanlarının tamamı dosyada `Language` başlığı altındadır. `ListForm` yalnızca +> dil **anahtarını** taşır (`Title = "{ListFormCode}.Title"`), metinlerin tek kaynağı burasıdır. + | `PermissionGroupName` | Var olan grup ya da yeni grup adı. | | `PermissionGroupDisplayNameEn` / `Tr` | Grup adıyla aynı dil anahtarına yazılır. Var olan grup seçilip boş bırakılırsa sunucu veritabanındaki değeri geri yazar. | | `LanguageTextMenuEn` / `Tr` | Menü etiketi. | @@ -624,23 +675,23 @@ edilir. | Alan | Anlam | | --- | --- | -| `DataSourceCode` | Bağlantı kodu; varsayılan `"Default"`. | -| `DataSourceConnectionString` | Yeni bir bağlantı tanımlanıyorsa; aksi hâlde boş. **Asla gerçek kimlik bilgisi yazma.** | -| `SelectCommandType` | Bkz. §3. | -| `SelectCommand` | Tablo/view adı, fonksiyon çağrısı ya da sorgu metni. | -| `KeyFieldName` / `KeyFieldDbSourceType` | Birincil anahtar ve tipi. | +| `DataSourceCode` | `[ListForm]` Bağlantı kodu; varsayılan `"Default"`. | +| `DataSourceConnectionString` | Yalnızca **yeni** bir bağlantı tanımlanıyorsa doldurulur; boşsa dosyaya hiç yazılmaz. **Asla gerçek kimlik bilgisi yazma.** | +| `SelectCommandType` | `[ListForm]` Bkz. §3. | +| `SelectCommand` | `[ListForm]` Tablo/view adı, fonksiyon çağrısı ya da sorgu metni. | +| `KeyFieldName` / `KeyFieldDbSourceType` | `[ListForm]` Birincil anahtar ve tipi. | **Davranış** | Alan | Anlam | | --- | --- | -| `IsTenant` / `IsBranch` / `IsOrganizationUnit` | Otomatik kırılım filtresi. Tabloda `TenantId` varsa `IsTenant: true` **olmalı**. | -| `AllowAdding` / `AllowUpdating` / `AllowDeleting` / `ConfirmDelete` | Toolbar ve satır aksiyonları. | -| `AllowDetail` | Satırda **Detay** düğmesi çıkar; `/admin/form/{ListFormCode}/{anahtar}` adresini yeni sekmede açar — aynı ekranın tek kayıtlık form görünümüdür. `KeyFieldName` boşsa çalışmaz. | -| `DefaultLayout` | `"grid"`, `"card"`, `"pivot"`, `"chart"`, `"tree"`, `"gantt"`, `"scheduler"`, `"todo"`. | -| `Grid` `Card` `Pivot` `Chart` `Tree` `Gantt` `Scheduler` `Todo` | Hangi görünümlerin açık olduğu. Açtığın her görünümün option bloğunu da doldur. | +| `IsTenant` / `IsBranch` / `IsOrganizationUnit` | `[ListForm]` Otomatik kırılım filtresi. Tabloda `TenantId` varsa `IsTenant: true` **olmalı**. | +| `AllowAdding` / `AllowUpdating` / `AllowDeleting` / `ConfirmDelete` | `[ListForm]` Toolbar ve satır aksiyonları (`EditingOptionDto`). | +| `AllowDetail` | `[ListForm]` Satırda **Detay** düğmesi çıkar; `/admin/form/{ListFormCode}/{anahtar}` adresini yeni sekmede açar — aynı ekranın tek kayıtlık form görünümüdür. `KeyFieldName` boşsa çalışmaz. | +| `DefaultLayout` | `[ListForm]` `"grid"`, `"card"`, `"pivot"`, `"chart"`, `"tree"`, `"gantt"`, `"scheduler"`, `"todo"`. | +| `Grid` `Card` `Pivot` `Chart` `Tree` `Gantt` `Scheduler` `Todo` | `[ListForm]` Hangi görünümlerin açık olduğu (`LayoutDto`). Açtığın her görünümün option bloğunu da doldur. | -**Görünüm option blokları** — yalnızca ilgili bayrak `true` ise anlamlıdır: +**Görünüm option blokları** — `[ListForm]`; yalnızca ilgili bayrak `true` ise anlamlıdır: | Blok | Zorunlu alanlar | | --- | --- | @@ -666,6 +717,11 @@ kaynağı odur. Grup yapısı yalnızca düzenleme formunun yerleşimini belirle ] ``` +Seed dosyasında `Groups` **kırpılmış** hâlde durur: grup başlığı/kolon sayısı ve alanların +editör bilgileri `ListForm.EditingFormDto` ve `Fields` içinde olduğu için tekrarlanmaz; dosyada +her öğe yalnızca `FieldName`, `CaptionName` ve `TurkishCaption`/`EnglishCaption` taşır — çünkü +alan başlıklarının dil metinlerinin başka kaynağı yoktur. Okurken tümü geri doldurulur. + Her `Items` öğesi: | Alan | Anlam | @@ -673,16 +729,16 @@ Her `Items` öğesi: | `FieldName` | Veri kolonunun adı (SQL'deki adıyla birebir). | | `CaptionName` | Dil anahtarı ya da düz başlık. | | `TurkishCaption` / `EnglishCaption` | Dil metinleri; ikisi de doldurulur. | -| `EditorType` | Bkz. §3. | -| `EditorOptions` | DevExtreme editör JSON'u — §6. | -| `EditorScript` | Alan davranış script'i — §5. | -| `DbSourceType` | Bkz. §3. | -| `IsRequired` | Zorunluluk. | -| `IncludeInEditingForm` | `false` ise yalnızca grid sütunu olur, forma girmez. | -| `ColSpan` | Formda kaç kolon kaplar (grubun `ColCount` değeri içinde). | -| `LookupDataSourceType` | `1/2/3` — bkz. §3. `0` = lookup yok. | -| `LookupQuery` | `Query` tipinde SQL; `StaticData` tipinde JSON dizisi; `WebService` tipinde URL. | -| `ValueExpr` / `DisplayExpr` | Lookup'ın değer ve etiket kolonları. | +| `EditorType` | `[Fields]` Bkz. §3. | +| `EditorOptions` | `[Fields]` DevExtreme editör JSON'u — §6. | +| `EditorScript` | `[Fields]` Alan davranış script'i — §5. | +| `DbSourceType` | `[Fields]` Bkz. §3. | +| `IsRequired` | `[Fields]` Zorunluluk (`ValidationRuleDto`). | +| `IncludeInEditingForm` | `[Fields]` `false` ise yalnızca grid sütunu olur, forma girmez (`EditGroupOrderNo`). | +| `ColSpan` | `[Fields]` Formda kaç kolon kaplar (grubun `ColCount` değeri içinde). | +| `LookupDataSourceType` | `[Fields]` `1/2/3` — bkz. §3. `0` = lookup yok. | +| `LookupQuery` | `[Fields]` `Query` tipinde SQL; `StaticData` tipinde JSON dizisi; `WebService` tipinde URL. | +| `ValueExpr` / `DisplayExpr` | `[Fields]` Lookup'ın değer ve etiket kolonları. | ### 4.3.1 Sütunlar nasıl otomatik üretilir @@ -990,6 +1046,7 @@ varsayılan değeri olur ve **yeni kayıtta o alanı otomatik doldurur**. "Wizard": { "ComponentKind": 0, "WizardName": "Orders", + "SeededAt": "2026-08-26T10:15:00", "ListFormCode": "App.Mrp.Orders", "MenuCode": "App.Mrp.Orders", "MenuOrder": 1, @@ -1212,7 +1269,7 @@ widget, sorgunun döndürdüğü **her satır için bir kart** çizer: Ayrıntı: `lowcode-reference.instructions.md` §5.3. Alt form olarak kullanılacak ekranı **menüsüz wizard** (`CreateMenu: false`) ile üret; menüde -görünmesin ama kendi yetkileri ve alan tanımları olsun. Dosya adının zaman damgası ana +görünmesin ama kendi yetkileri ve alan tanımları olsun. `Wizard.SeededAt` damgası ana wizard'ınkinden **küçük** olmalıdır (§0.2). ### 4.7 İş akışı (onay süreci) @@ -2311,7 +2368,7 @@ Bu çift, custom component'in menüye nasıl bağlandığının çalışan örne ``` configs/seeds/host/custom/RoleComponent.json configs/seeds/host/crud/AbpRoles.json · AbpUsers.json · AbpUserRoles.json -configs/seeds/host/wizard/20260819131500_RoleList.json +configs/seeds/host/wizard/RoleList.json ``` Nasıl bağlanıyorlar: @@ -3419,8 +3476,8 @@ configs/seeds/host/ ├── sql/object/Hr_T_AdvanceRequest.sql ← tablo (+ PostgreSQL hedefse postgres/object/…) ├── crud/Hr_T_AdvanceRequest.json ← yalnızca Custom Component yolunda gerekir ├── custom/AdvanceRequestForm.json ← yalnızca serbest yerleşim isteniyorsa -├── wizard/20260826101000_AdvanceRequestApprovals.json ← (varsa) menüsüz alt ekran, önce -└── wizard/20260826101500_AdvanceRequests.json ← ana ekran + menü + yetki + dil + onay akışı +├── wizard/AdvanceRequestApprovals.json ← (varsa) menüsüz alt ekran, küçük SeededAt +└── wizard/AdvanceRequests.json ← ana ekran + menü + yetki + dil + onay akışı ``` **Karar:** Talep formu **standart bir kayıt listesi + düzenleme formu + onay akışı** ise @@ -3483,7 +3540,7 @@ tedarikçi lookup'ı + iki kademeli onay). Prompt ile üretim yaptıysan ek olarak: - [ ] Dosyalar doğru kapsam klasöründe (`host/` ya da `tenants/{tenantId}/`). -- [ ] Üretim sırası doğru (§0.2) ve bağımlı wizard'ın zaman damgası daha büyük. +- [ ] Üretim sırası doğru (§0.2) ve bağımlı wizard'ın `SeededAt` damgası daha büyük. - [ ] Tablo/kolon adları uydurulmadı; ya var olan nesneden okundu ya da `sql/object/` altında üretildi. - [ ] `KeyFieldDbSourceType`, tablodaki `Id` tipiyle uyumlu. diff --git a/README.md b/README.md index 172aa8b0..daf729e2 100644 --- a/README.md +++ b/README.md @@ -487,7 +487,7 @@ butonlar gösterilebilir. 5. **Permission** kayıtları (`.Default`, `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note`) 6. **Dil anahtarları** (menü, başlık, açıklama; EN + TR) 7. Gerekiyorsa **ayar/entegrasyon** bağımlılıkları -8. **Seed dosyası** — `configs/seeds/{host|tenants/{tenantId}}/wizard/{zaman damgası}_{Ad}.json` +8. **Seed dosyası** — `configs/seeds/{host|tenants/{tenantId}}/wizard/{Ad}.json` (wizard cevapları + üretilen `ListForm`/`Fields` sözleşmesi) 9. **Doğrulama ve geri alma** notları **Adım bileşenleri.** Adımlar numaralı dosya adları yerine işlevleriyle adlandırılır ve @@ -509,6 +509,16 @@ adım sayısından bağımsızdır. Menü ağacı yardımcıları (`menuTree.ts`) adım bileşenlerinden ayrı bir modüldedir; böylece Wizard ve `SqlTableDesignerDialog` bu fonksiyonları kullanırken adım bileşenlerini pakete çekmez. +**Seed dosyası ekranın kendisini taşır.** Dosya `Wizard` bölümünün yanında ekranın +`GridOptionsEditDto` sözleşmesini (`ListForm`) ve alanların `ColumnFormatEditDto` sözleşmesini +(`Fields`) tutar; `WizardDataSeeder` ekranı bu iki bölümden kurar. Böylece Wizard ile ListForm +detayı aynı veri yapısını konuşur ve tasarımcıdaki değişiklikler wizard'a geri yazılabilir. +`Wizard` bölümü yalnızca ekrandan üretilemeyen bilgileri (menü, yetki, dil metinleri, bileşen +yolu, alan başlıklarının dil karşılıkları) taşır; `ListForm`/`Fields` içinde karşılığı olan alanlar +dosyaya yazılmaz, okuma sırasında geri doldurulur. Kalanlar dosyada `Menu`, `Language` ve `Groups` +başlıkları altında toplanır (`WizardSeedFileDto.ToSeedJson` / `FromSeedJson`). Dosya adı `{Ad}.json`'dır (zaman damgası yok); +uygulama sırası `Wizard.SeededAt` damgasından gelir. + **İki yol: `ComponentKind`.** `ListFormWizardDto.ComponentKind` sihirbazın yol ayrımıdır ve seed dosyasında ilk alandır. Varsayılan `List` olduğu için bu alanı taşımayan eski seed dosyaları eskisi gibi çalışır. @@ -1165,7 +1175,7 @@ geri yüklenir. Kapsam klasörü CDN düzeniyle aynıdır ve `SeedPathResolver` ``` configs/seeds/ ├── host/ # host kapsamı -│ ├── wizard/ # {zaman damgası}_{Ad}.json → WizardDataSeeder +│ ├── wizard/ # {Ad}.json → WizardDataSeeder │ ├── custom/ # {ComponentName}.json → CustomComponentDataSeeder │ ├── crud/ # {EntityName}.json → CrudDataSeeder │ ├── sql/{object,execute}/ # .sql (SQL Server) @@ -1176,7 +1186,9 @@ configs/seeds/ > Bu dosyalar elle de düzenlenebilir; ilgili ekrandan tekrar kaydedildiğinde yeniden üretilirler. > Wizard dosyası `EditFileName` ile güncellenirse sunucu önce eski dosyayı ve ürettiği kayıtları -> siler, sonra yenisini üretir. +> siler, sonra yenisini üretir. Wizard'ın ürettiği ekran **ListForm detayından** düzenlendiğinde +> de aynı dosya güncellenir (`WizardSeedSynchronizer`): `ListForm`/`Fields` bölümleri ve +> `Wizard` bölümündeki karşılıkları veritabanındaki güncel haliyle değiştirilir. --- diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatEditDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatEditDto.cs index 571442bd..f112ff91 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatEditDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Dto/ColumnFormatEditDto.cs @@ -23,5 +23,51 @@ public class ColumnFormatEditDto : ColumnFormatDto } set { JoinTableJson = JsonSerializer.Serialize(value); } } + + /// ListFormField sozlesmesini kayit nesnesine yazar. + public void ApplyTo(IListFormFieldArtifact target) + { + target.ListFormCode = ListFormCode; + target.UserId = UserId; + target.RoleId = RoleId; + target.CultureName = CultureName; + target.FieldName = FieldName; + target.CaptionName = CaptionName; + target.PlaceHolder = PlaceHolder; + target.BandName = BandName; + target.Visible = Visible; + target.IsActive = IsActive; + target.Width = Width; + target.ListOrderNo = ListOrderNo; + target.SourceDbType = SourceDbType; + target.SortIndex = SortIndex; + target.SortDirection = SortDirection; + target.AllowSearch = AllowSearch; + target.AllowEditing = AllowEditing; + target.AllowAdding = AllowAdding; + target.Alignment = Alignment; + target.Format = Format; + target.EditOrderNo = EditOrderNo; + target.EditGroupOrderNo = EditGroupOrderNo; + target.EditorType2 = EditorType2; + target.ColSpan = ColSpan; + target.EditorOptions = EditorOptions; + target.EditorScript = EditorScript; + target.ColumnCssClass = ColumnCssClass; + target.ColumnCssValue = ColumnCssValue; + + target.ColumnFilterJson = ColumnFilterJson; + target.ColumnHeaderJson = ColumnHeaderJson; + target.GroupingJson = GroupingJson; + target.ColumnCustomizationJson = ColumnCustomizationJson; + target.TotalSummaryJson = TotalSummaryJson; + target.GroupSummaryJson = GroupSummaryJson; + target.JoinTableJson = JoinTableJson; + target.LookupJson = LookupJson; + target.ValidationRuleJson = ValidationRuleJson; + target.ColumnStylingJson = ColumnStylingJson; + target.PermissionJson = PermissionJson; + target.PivotSettingsJson = PivotSettingsJson; + } } diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridOptionsEditDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridOptionsEditDto.cs index c0c4e1c7..3a79599d 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridOptionsEditDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/GridOptionsDto/GridOptionsEditDto.cs @@ -123,5 +123,108 @@ public class GridOptionsEditDto : GridOptionsDto } set { ExtraFilterJson = JsonSerializer.Serialize(value); } } + + /// + /// ListForm sozlesmesini kayit nesnesine yazar. Seed dosyasindan okunan ekran ile tasarimcinin + /// urettigi ekranin ayni kolonlari doldurmasi bu tek noktadan garanti edilir. + /// + public void ApplyTo(IListFormArtifact target) + { + target.ListFormCode = ListFormCode; + target.CultureName = CultureName; + target.Name = Name; + target.Title = Title; + target.Description = Description; + target.ListFormType = ListFormType; + target.IsSubForm = IsSubForm; + target.SubFormsListFormType = SubFormsListFormType; + target.ShowNote = ShowNote; + target.SortMode = SortMode; + target.PageSize = PageSize; + target.Width = Width; + target.Height = Height; + target.FullHeight = FullHeight; + target.UserId = UserId; + target.RoleId = RoleId; + + target.DataSourceCode = DataSourceCode; + target.SelectCommandType = SelectCommandType; + target.SelectCommand = SelectCommand; + target.TableName = TableName; + target.KeyFieldName = KeyFieldName; + target.KeyFieldDbSourceType = KeyFieldDbSourceType; + target.IsTenant = IsTenant; + target.IsBranch = IsBranch; + target.IsOrganizationUnit = IsOrganizationUnit; + target.DefaultFilter = DefaultFilter; + + target.InsertServiceAddress = InsertServiceAddress; + target.InsertCommand = InsertCommand; + target.InsertBeforeCommand = InsertBeforeCommand; + target.InsertAfterCommand = InsertAfterCommand; + target.UpdateServiceAddress = UpdateServiceAddress; + target.UpdateCommand = UpdateCommand; + target.UpdateBeforeCommand = UpdateBeforeCommand; + target.UpdateAfterCommand = UpdateAfterCommand; + target.DeleteServiceAddress = DeleteServiceAddress; + target.DeleteCommand = DeleteCommand; + target.DeleteBeforeCommand = DeleteBeforeCommand; + target.DeleteAfterCommand = DeleteAfterCommand; + + target.SelectFieldsDefaultValueJson = SelectFieldsDefaultValueJson; + target.InsertFieldsDefaultValueJson = InsertFieldsDefaultValueJson; + target.UpdateFieldsDefaultValueJson = UpdateFieldsDefaultValueJson; + target.DeleteFieldsDefaultValueJson = DeleteFieldsDefaultValueJson; + target.FormFieldsDefaultValueJson = FormFieldsDefaultValueJson; + + target.LayoutJson = LayoutJson; + target.FilterRowJson = FilterRowJson; + target.RowJson = RowJson; + target.HeaderFilterJson = HeaderFilterJson; + target.FilterPanelJson = FilterPanelJson; + target.SearchPanelJson = SearchPanelJson; + target.GroupPanelJson = GroupPanelJson; + target.SelectionJson = SelectionJson; + target.ColumnOptionJson = ColumnOptionJson; + target.PivotOptionJson = PivotOptionJson; + target.TreeOptionJson = TreeOptionJson; + target.GanttOptionJson = GanttOptionJson; + target.SchedulerOptionJson = SchedulerOptionJson; + target.TodoOptionJson = TodoOptionJson; + target.PagerOptionJson = PagerOptionJson; + target.EditingOptionJson = EditingOptionJson; + target.EditingFormJson = EditingFormJson; + target.PermissionJson = PermissionJson; + target.CommandColumnJson = CommandColumnJson; + target.StateStoringJson = StateStoringJson; + target.CustomJsSourcesJson = CustomJsSourcesJson; + target.CustomStyleSourcesJson = CustomStyleSourcesJson; + target.SubFormsJson = SubFormsJson; + target.WidgetsJson = WidgetsJson; + target.WorkflowJson = WorkflowJson; + target.ExtraFilterJson = ExtraFilterJson; + + target.CommonJson = CommonJson; + target.AdaptiveLayoutJson = AdaptiveLayoutJson; + target.AnimationJson = AnimationJson; + target.AnnotationsJson = AnnotationsJson; + target.ArgumentAxisJson = ArgumentAxisJson; + target.CommonAnnotationsSettingsJson = CommonAnnotationsSettingsJson; + target.CommonAxisSettingsJson = CommonAxisSettingsJson; + target.CommonPaneSettingsJson = CommonPaneSettingsJson; + target.CommonSeriesSettingsJson = CommonSeriesSettingsJson; + target.CrosshairJson = CrosshairJson; + target.ExportJson = ExportJson; + target.LegendJson = LegendJson; + target.MarginJson = MarginJson; + target.PanesJson = PanesJson; + target.ScrollBarJson = ScrollBarJson; + target.SeriesJson = SeriesJson; + target.SizeJson = SizeJson; + target.TitleJson = TitleJson; + target.TooltipJson = TooltipJson; + target.ValueAxisJson = ValueAxisJson; + target.ZoomAndPanJson = ZoomAndPanJson; + } } diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs index a05dd219..6525ef31 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/ListFormWizardDto.cs @@ -1,10 +1,25 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Data; +using System.Linq; +using System.Text.Json; using System.Text.Json.Serialization; +using Sozsoft.Languages.Languages; using Sozsoft.Platform.Enums; namespace Sozsoft.Platform.ListForms; +/// +/// Wizard adimlarinin cevaplari ve bu cevaplardan ekran sozlesmesini ureten donusumler. +/// +/// Deploy (ListFormWizardAppService), seed (WizardDataSeeder) ve tasarimci +/// senkronizasyonu (WizardSeedSynchronizer) ayni donusumleri buradan kullanir; boylece +/// uc yolun ciktisi birbirinden ayrisamaz. Entity'ye yazma islemi +/// ve +/// uzerinden, Domain.Shared'deki kayit sozlesmeleriyle yapilir; boylece entity katmanini +/// tanimayan DbMigrator da ayni donusumu kullanabilir. +/// +/// public class ListFormWizardDto { /// @@ -23,6 +38,13 @@ public class ListFormWizardDto public string EditFileName { get; set; } public string WizardName { get; set; } + + /// + /// Wizard'in ilk deploy edildigi an. Dosya adi tarih tasimadigi icin seeder dosyalari bu + /// damgaya gore siralar; birbirine bagli wizard'lar (once Customers, sonra Tasks) uretildikleri + /// sirayla uygulanir. Duzenlemede ilk deger korunur. + /// + public DateTime SeededAt { get; set; } public string ListFormCode { get; set; } public string MenuCode { get; set; } public int MenuOrder { get; set; } @@ -107,4 +129,450 @@ public class ListFormWizardDto public List Groups { get; set; } = new(); public List SubForms { get; set; } = new(); public List Widgets { get; set; } = new(); + + /// Wizard'in menu/permission kodu; ad ve kod bos gelebildigi icin tek kuraldan cozulur. + public string ResolveMenuCode() + { + return string.IsNullOrWhiteSpace(MenuCode) + ? WizardConsts.WizardKey(WizardName?.Trim()) + : MenuCode.Trim(); + } + + /// Wizard'in ListForm kodu; bos gelirse menu kodu ile aynidir. + public string ResolveListFormCode() + { + return string.IsNullOrWhiteSpace(ListFormCode) + ? ResolveMenuCode() + : ListFormCode.Trim(); + } + + /// + /// Wizard girdisinden ListForm sozlesmesini uretir. ve + /// hedef tablonun soft delete / audit kolonlarini tasiyip + /// tasimadigini bildirir; silme komutu ve varsayilan alan degerleri buna gore kurulur. + /// + public GridOptionsEditDto BuildListForm(bool isDeletedField, bool isCreatedField) + { + var code = ResolveMenuCode(); + var listFormCode = ResolveListFormCode(); + var titleLangKey = $"{listFormCode}.Title"; + var descLangKey = $"{listFormCode}.Desc"; + + var workflow = NormalizeWorkflow(WorkflowDto, listFormCode); + WorkflowDto = workflow; + + var groups = Groups ?? []; + var subForms = SubForms ?? []; + var widgets = Widgets ?? []; + + var editingFormDtos = groups + .Select((g, gi) => new { Group = g, Order = gi + 1 }) + .Where(x => x.Group.Items.Any(i => i.IncludeInEditingForm && i.FieldName != KeyFieldName)) + .Select(x => new EditingFormDto + { + Order = x.Order, + Caption = x.Group.Caption, + ColCount = x.Group.ColCount, + ColSpan = x.Group.ColCount, + ItemType = "group" + }) + .ToList(); + + var (formWidth, formHeight) = CalculateEditFormSize(); + + var dto = new GridOptionsEditDto + { + ListFormCode = listFormCode, + CultureName = LanguageCodes.En, + ListFormType = ListFormTypeEnum.List, + Name = code, + Title = titleLangKey, + Description = descLangKey, + PageSize = 10, + IsSubForm = false, + ShowNote = subForms.Count > 0 || workflow.Criteria.Count > 0, + SortMode = PlatformConsts.GridOptions.SortModeSingle, + DataSourceCode = DataSourceCode, + IsTenant = IsTenant, + IsBranch = IsBranch, + IsOrganizationUnit = IsOrganizationUnit, + SelectCommandType = SelectCommandType, + SelectCommand = SelectCommand, + KeyFieldName = KeyFieldName, + KeyFieldDbSourceType = KeyFieldDbSourceType, + DefaultFilter = isDeletedField ? WizardConsts.DefaultFilterJson : null, + DeleteCommand = isDeletedField ? WizardConsts.DefaultDeleteCommand(SelectCommand) : null, + }; + + // Varsayilanlar WizardConsts uzerinden JSON olarak kurulur; DTO'nun nesne karsiliklari + // (FilterRowDto, EditingOptionDto ...) bu JSON'lardan turedigi icin seed dosyasi ayni + // degerleri nesne olarak tasir. + dto.ExportJson = WizardConsts.DefaultExportJson; + dto.LayoutJson = WizardConsts.DefaultLayoutJson( + DefaultLayout: DefaultLayout, + Grid: Grid, + Card: Card, + Pivot: Pivot, + Chart: Chart, + Tree: Tree, + Gantt: Gantt, + Scheduler: Scheduler, + Todo: Todo); + dto.FilterRowJson = WizardConsts.DefaultFilterRowJson(); + dto.HeaderFilterJson = WizardConsts.DefaultHeaderFilterJson(); + dto.SearchPanelJson = WizardConsts.DefaultSearchPanelJson(); + dto.GroupPanelJson = WizardConsts.DefaultGroupPanelJson(); + dto.SelectionJson = WizardConsts.DefaultSelectionSingleJson(workflow.Criteria.Count > 0 + ? PlatformConsts.GridOptions.SelectionModeSingle + : PlatformConsts.GridOptions.SelectionModeNone); + dto.ColumnOptionJson = WizardConsts.DefaultColumnOptionJson(); + dto.PermissionJson = WizardConsts.DefaultPermissionJson(code); + dto.PagerOptionJson = WizardConsts.DefaultPagerOptionJson; + dto.EditingOptionJson = WizardConsts.DefaultEditingOptionJson( + titleLangKey, formWidth, formHeight, + AllowDeleting, AllowAdding, AllowUpdating, + ConfirmDelete, false, AllowDetail); + dto.DeleteFieldsDefaultValueJson = isDeletedField + ? WizardConsts.DefaultDeleteFieldsDefaultValueJson(KeyFieldDbSourceType) + : WizardConsts.DefaultDeleteFieldsJsonOnlyId(KeyFieldDbSourceType); + dto.InsertFieldsDefaultValueJson = isCreatedField + ? WizardConsts.DefaultInsertFieldsDefaultValueJson(KeyFieldDbSourceType) + : WizardConsts.DefaultInsertFieldsJsonOnlyId(KeyFieldDbSourceType); + dto.EditingFormJson = editingFormDtos.Count > 0 ? JsonSerializer.Serialize(editingFormDtos) : null; + dto.SubFormsJson = subForms.Count > 0 ? JsonSerializer.Serialize(subForms) : null; + dto.WidgetsJson = widgets.Count > 0 ? JsonSerializer.Serialize(widgets) : null; + dto.WorkflowJson = HasWorkflow(workflow) ? JsonSerializer.Serialize(workflow) : null; + dto.TreeOptionJson = UsesLayout("tree", Tree) && + !string.IsNullOrEmpty(TreeOptionDto?.ParentIdExpr) + ? JsonSerializer.Serialize(TreeOptionDto) + : null; + dto.GanttOptionJson = UsesLayout("gantt", Gantt) && + !string.IsNullOrEmpty(GanttOptionDto?.ParentIdExpr) + ? JsonSerializer.Serialize(GanttOptionDto) + : null; + dto.SchedulerOptionJson = UsesLayout("scheduler", Scheduler) && + !string.IsNullOrEmpty(SchedulerOptionDto?.TextExpr) + ? JsonSerializer.Serialize(SchedulerOptionDto) + : null; + dto.TodoOptionJson = UsesLayout("todo", Todo) && + !string.IsNullOrEmpty(TodoOptionDto?.TitleExpr) && + !string.IsNullOrEmpty(TodoOptionDto?.StatusExpr) + ? JsonSerializer.Serialize(TodoOptionDto) + : null; + + return dto; + } + + /// + /// Wizard gruplarindaki her alani ListFormField sozlesmesine cevirir. Alan sirasi gruplarin + /// sirasini izler; anahtar alan listede gizlenir ve duzenleme formuna alinmaz. + /// + public List BuildFields() + { + var code = ResolveMenuCode(); + var listFormCode = ResolveListFormCode(); + var fields = new List(); + + var fieldOrder = 0; + var editGroupOrder = 0; + foreach (var group in Groups ?? []) + { + editGroupOrder++; + var editOrder = 0; + foreach (var item in group.Items ?? []) + { + fieldOrder++; + var inEditingForm = item.IncludeInEditingForm && item.FieldName != KeyFieldName; + if (inEditingForm) + editOrder++; + + var field = new ColumnFormatEditDto + { + ListFormCode = listFormCode, + FieldName = item.FieldName, + CaptionName = item.CaptionName, + Visible = item.FieldName != KeyFieldName, + IsActive = true, + AllowSearch = true, + Width = 0, // Fit columns icin tum alanlar sifir genislikle baslar. + ListOrderNo = fieldOrder, + EditGroupOrderNo = item.IncludeInEditingForm ? editGroupOrder : null, + EditOrderNo = inEditingForm ? editOrder : null, + EditorType2 = item.EditorType, + ColSpan = item.ColSpan, + EditorOptions = string.IsNullOrWhiteSpace(item.EditorOptions) ? null : item.EditorOptions, + EditorScript = string.IsNullOrWhiteSpace(item.EditorScript) ? null : item.EditorScript, + SourceDbType = item.DbSourceType, + CultureName = PlatformConsts.DefaultLanguage, + }; + + field.PermissionJson = WizardConsts.DefaultFieldPermissionJson(code); + field.ColumnCustomizationJson = WizardConsts.DefaultColumnCustomizationJson; + field.ColumnFilterJson = WizardConsts.DefaultColumnFilteringJson; + field.PivotSettingsJson = WizardConsts.DefaultPivotSettingsJson; + field.LookupJson = !string.IsNullOrWhiteSpace(item.LookupQuery) + ? WizardConsts.DefaultLookupJson(item.LookupDataSourceType, item.DisplayExpr, item.ValueExpr, item.LookupQuery) + : null; + field.ValidationRuleJson = inEditingForm && item.IsRequired + ? WizardConsts.DefaultValidationRuleRequiredJson + : null; + + fields.Add(field); + } + } + + return fields; + } + + /// + /// Tasarimci uzerinde degisen ekrani wizard bolumune geri yazar. Wizard adimlarinin sordugu + /// her sorunun ListForm sozlesmesinde bir karsiligi vardir; senkron kalmazsa wizard yeniden + /// deploy edildiginde tasarimcida yapilan degisiklikler geri alinirdi. + /// + public void RefreshFrom(GridOptionsEditDto listForm, IReadOnlyList fields) + { + ListFormCode = listForm.ListFormCode; + DataSourceCode = listForm.DataSourceCode; + SelectCommandType = listForm.SelectCommandType; + SelectCommand = listForm.SelectCommand; + KeyFieldName = listForm.KeyFieldName; + KeyFieldDbSourceType = listForm.KeyFieldDbSourceType; + IsTenant = listForm.IsTenant; + IsBranch = listForm.IsBranch; + IsOrganizationUnit = listForm.IsOrganizationUnit; + + var layout = listForm.LayoutDto; + DefaultLayout = layout.DefaultLayout; + Grid = layout.Grid; + Card = layout.Card; + Pivot = layout.Pivot; + Tree = layout.Tree; + Chart = layout.Chart; + Gantt = layout.Gantt; + Scheduler = layout.Scheduler; + Todo = layout.Todo; + + var editing = listForm.EditingOptionDto; + AllowAdding = editing.AllowAdding; + AllowUpdating = editing.AllowUpdating; + AllowDeleting = editing.AllowDeleting; + AllowDetail = editing.AllowDetail; + ConfirmDelete = editing.ConfirmDelete; + + TreeOptionDto = listForm.TreeOptionDto; + GanttOptionDto = listForm.GanttOptionDto; + SchedulerOptionDto = listForm.SchedulerOptionDto; + TodoOptionDto = listForm.TodoOptionDto; + WorkflowDto = listForm.WorkflowDto; + SubForms = [.. listForm.SubFormsDto]; + Widgets = [.. listForm.WidgetsDto]; + Groups = BuildGroups(listForm, fields); + } + + /// + /// Alanlari wizard'in grup/oge modeline geri cevirir. Grup basliklari ve kolon sayilari + /// duzenleme formu tanimindan, alan sirasi ise listedeki sirasindan gelir. Alan basliklarinin + /// iki dilli metinleri ListForm alan kaydinda tutulmadigi icin mevcut wizard cevaplarindan + /// tasinir; aksi halde ekran tasarimcidan kaydedildiginde dil metinleri kaybolurdu. + /// + private List BuildGroups(GridOptionsEditDto listForm, IReadOnlyList fields) + { + var editingForm = listForm.EditingFormDto ?? []; + var captions = (Groups ?? []) + .SelectMany(g => g.Items ?? []) + .Where(i => !string.IsNullOrWhiteSpace(i.FieldName)) + .GroupBy(i => i.FieldName, StringComparer.OrdinalIgnoreCase) + .ToDictionary(g => g.Key, g => g.First(), StringComparer.OrdinalIgnoreCase); + var groups = new List(); + var groupIndexByOrder = new Dictionary(); + + foreach (var field in fields.OrderBy(f => f.ListOrderNo)) + { + // Duzenleme formunda yer almayan alanlar da wizard'da gorunmelidir; grup bilgisi + // olmadigi icin ilk gruba, duzenleme disi olarak eklenirler. + var groupOrder = field.EditGroupOrderNo ?? 1; + if (!groupIndexByOrder.TryGetValue(groupOrder, out var index)) + { + var definition = editingForm.FirstOrDefault(x => x.Order == groupOrder); + groups.Add(new WizardColumnGroupInputDto + { + Caption = definition?.Caption ?? string.Empty, + ColCount = definition?.ColCount ?? 2, + }); + index = groups.Count - 1; + groupIndexByOrder[groupOrder] = index; + } + + var lookup = field.LookupDto; + captions.TryGetValue(field.FieldName ?? string.Empty, out var previous); + + groups[index].Items.Add(new WizardColumnItemInputDto + { + FieldName = field.FieldName, + CaptionName = field.CaptionName, + EditorType = field.EditorType2, + EditorOptions = field.EditorOptions, + EditorScript = field.EditorScript, + ColSpan = field.ColSpan ?? 1, + IsRequired = field.ValidationRuleDto.Exists(r => + string.Equals(r.Type, nameof(UiColumnValidationRuleTypeEnum.required), StringComparison.OrdinalIgnoreCase)), + IncludeInEditingForm = field.EditGroupOrderNo.HasValue, + DbSourceType = field.SourceDbType, + LookupDataSourceType = lookup.DataSourceType, + ValueExpr = lookup.ValueExpr, + DisplayExpr = lookup.DisplayExpr, + LookupQuery = lookup.LookupQuery, + EnglishCaption = previous?.EnglishCaption, + TurkishCaption = previous?.TurkishCaption, + }); + } + + return groups; + } + + /// + /// Duzenleme formunun genisligi ve yuksekligi gruplarin kolon sayisindan ve toplam satir + /// sayisindan hesaplanir; boylece popup icerigi kirpilmadan acilir. + /// + private (int Width, int Height) CalculateEditFormSize() + { + var groupLayouts = (Groups ?? []) + .Select(g => + { + var itemCount = (g.Items ?? []).Count(i => i.IncludeInEditingForm && i.FieldName != KeyFieldName); + var columnCount = Math.Clamp(g.ColCount, 1, WizardConsts.EditFormMaxColumnCount); + return new + { + ColumnCount = columnCount, + RowCount = (int)Math.Ceiling(itemCount / (double)columnCount) + }; + }) + .ToList(); + + var formColumnCount = groupLayouts.Count > 0 ? groupLayouts.Max(x => x.ColumnCount) : 1; + var totalRowCount = groupLayouts.Sum(x => x.RowCount); + + return ( + WizardConsts.EditFormMaxWidth / WizardConsts.EditFormMaxColumnCount * formColumnCount, + WizardConsts.EditFormHeightDefault + totalRowCount * WizardConsts.EditFormHeightByRow); + } + + private bool UsesLayout(string layout, bool enabled) + { + return enabled || string.Equals(DefaultLayout, layout, StringComparison.OrdinalIgnoreCase); + } + + private static bool HasWorkflow(WorkflowDto workflow) + { + return workflow != null && ( + !string.IsNullOrWhiteSpace(workflow.ApprovalUserFieldName) || + !string.IsNullOrWhiteSpace(workflow.ApprovalStatusFieldName) || + workflow.Criteria.Count > 0); + } + + /// + /// Workflow adimlarini kaydedilebilir hale getirir: basliklar tekillestirilir, adim + /// kimlikleri ListForm koduyla on eklenir. Seed dosyasina normalize edilmis hali yazilir. + /// + private static WorkflowDto NormalizeWorkflow(WorkflowDto workflow, string listFormCode) + { + workflow ??= new WorkflowDto(); + workflow.Criteria ??= []; + EnsureUniqueWorkflowCriteriaTitles(workflow.Criteria); + NormalizeWorkflowCriteriaIds(listFormCode, workflow.Criteria); + return workflow; + } + + private static void EnsureUniqueWorkflowCriteriaTitles(List criteria) + { + if (criteria.Count == 0) + return; + + var baseTitles = criteria + .Select(x => string.IsNullOrWhiteSpace(x.Title) ? NormalizeWorkflowTitleFallback(x.Kind) : x.Title.Trim()) + .ToList(); + var duplicateTitles = baseTitles + .GroupBy(x => x, StringComparer.OrdinalIgnoreCase) + .Where(x => x.Count() > 1) + .Select(x => x.Key) + .ToHashSet(StringComparer.OrdinalIgnoreCase); + var titleCounts = new Dictionary(StringComparer.OrdinalIgnoreCase); + var usedTitles = new HashSet(StringComparer.OrdinalIgnoreCase); + + foreach (var item in criteria) + { + var baseTitle = string.IsNullOrWhiteSpace(item.Title) ? NormalizeWorkflowTitleFallback(item.Kind) : item.Title.Trim(); + var title = baseTitle; + + if (duplicateTitles.Contains(baseTitle)) + { + titleCounts.TryGetValue(baseTitle, out var count); + count++; + titleCounts[baseTitle] = count; + title = $"{baseTitle}{count}"; + } + + if (usedTitles.Contains(title)) + { + var index = 1; + var candidate = $"{title}{index}"; + while (usedTitles.Contains(candidate)) + { + index++; + candidate = $"{title}{index}"; + } + + title = candidate; + } + + item.Title = title; + usedTitles.Add(title); + } + } + + private static string NormalizeWorkflowTitleFallback(string kind) + { + return string.IsNullOrWhiteSpace(kind) ? "Step" : kind.Trim(); + } + + private static void NormalizeWorkflowCriteriaIds(string listFormCode, List criteria) + { + if (string.IsNullOrWhiteSpace(listFormCode) || criteria.Count == 0) + return; + + foreach (var item in criteria) + { + item.Id = NormalizeWorkflowCriteriaId(listFormCode, item.Id); + item.ListFormCode = listFormCode; + item.NextOnStart = NormalizeWorkflowTargetId(listFormCode, item.NextOnStart); + item.NextOnTrue = NormalizeWorkflowTargetId(listFormCode, item.NextOnTrue); + item.NextOnFalse = NormalizeWorkflowTargetId(listFormCode, item.NextOnFalse); + item.NextOnApprove = NormalizeWorkflowTargetId(listFormCode, item.NextOnApprove); + item.NextOnReject = NormalizeWorkflowTargetId(listFormCode, item.NextOnReject); + + foreach (var outcome in item.CompareOutcomes ?? []) + { + outcome.TargetId = NormalizeWorkflowTargetId(listFormCode, outcome.TargetId); + } + } + } + + private static string NormalizeWorkflowTargetId(string listFormCode, string id) + { + return string.IsNullOrWhiteSpace(id) ? string.Empty : NormalizeWorkflowCriteriaId(listFormCode, id); + } + + private static string NormalizeWorkflowCriteriaId(string listFormCode, string id) + { + var trimmed = id?.Trim(); + if (string.IsNullOrWhiteSpace(trimmed)) + return string.Empty; + + if (trimmed.StartsWith($"{listFormCode}-", StringComparison.OrdinalIgnoreCase)) + return trimmed; + + return trimmed.StartsWith("N", StringComparison.OrdinalIgnoreCase) + ? $"{listFormCode}-{trimmed}" + : trimmed; + } } diff --git a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/WizardSeedFileDto.cs b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/WizardSeedFileDto.cs index 671c6c7c..7d50f564 100644 --- a/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/WizardSeedFileDto.cs +++ b/api/src/Sozsoft.Platform.Application.Contracts/ListForms/Wizard/WizardSeedFileDto.cs @@ -1,5 +1,10 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.Json; +using System.Text.Json.Nodes; using Sozsoft.Platform.Enums; +using Volo.Abp.Application.Dtos; namespace Sozsoft.Platform.ListForms; @@ -12,6 +17,15 @@ public class WizardSeedFileDto { public ListFormWizardDto Wizard { get; set; } + /// + /// Wizard'in urettigi ekranin ListForm sozlesmesi. Tasarimci (ListForm detayi) uzerinde + /// yapilan her degisiklik buraya geri yazilir; seeder ekrani bu bolumden kurar. + /// + public GridOptionsEditDto ListForm { get; set; } + + /// Ekranin alanlari; ListForm detayindaki alan tanimlariyla ayni sozlesme. + public List Fields { get; set; } = []; + /// Tabloda IsDeleted alanı olup olmadığını belirtir (soft delete desteği). public bool IsDeletedField { get; set; } @@ -23,6 +37,274 @@ public class WizardSeedFileDto /// Daha önce var olan kayıtlar buraya eklenmez, silme işleminde sadece bu liste kullanılır. /// public WizardInsertedRecordsDto InsertedRecords { get; set; } = new(); + + /// + /// Dosyaya yazmadan once ortama ozgu alanlari temizler. Kayit kimlikleri ve audit damgalari + /// veritabanina aittir; dosyada tasinirlarsa her ortamda anlamsiz fark uretirler. EditType ise + /// yalnizca tasarimcinin hangi sekmeyi kaydettigini bildiren istek alanidir. + /// + private void ClearRuntimeFields() + { + if (Wizard != null) + Wizard.EditFileName = null; + + if (ListForm != null) + ListForm.EditType = null; + + ClearAudit(ListForm); + + foreach (var field in Fields ?? []) + { + field.EditType = null; + ClearAudit(field); + } + } + + /// + /// Ekranin sozlesmesi ve bolumlerindedir; wizard + /// bolumunde ayni degerlerin ikinci bir kopyasi tutulmaz. Bu anahtarlar dosyaya yazilmadan + /// once wizard bolumunden cikarilir, okurken ile geri doldurulur. + /// + private static readonly string[] ListFormOwnedWizardKeys = + [ + nameof(ListFormWizardDto.IsTenant), nameof(ListFormWizardDto.IsBranch), nameof(ListFormWizardDto.IsOrganizationUnit), + nameof(ListFormWizardDto.AllowAdding), nameof(ListFormWizardDto.AllowUpdating), nameof(ListFormWizardDto.AllowDeleting), + nameof(ListFormWizardDto.AllowDetail), nameof(ListFormWizardDto.ConfirmDelete), + nameof(ListFormWizardDto.DefaultLayout), nameof(ListFormWizardDto.Grid), nameof(ListFormWizardDto.Card), + nameof(ListFormWizardDto.Pivot), nameof(ListFormWizardDto.Tree), nameof(ListFormWizardDto.Chart), + nameof(ListFormWizardDto.Gantt), nameof(ListFormWizardDto.Scheduler), nameof(ListFormWizardDto.Todo), + nameof(ListFormWizardDto.DataSourceCode), nameof(ListFormWizardDto.SelectCommandType), nameof(ListFormWizardDto.SelectCommand), + nameof(ListFormWizardDto.KeyFieldName), nameof(ListFormWizardDto.KeyFieldDbSourceType), + nameof(ListFormWizardDto.TreeOptionDto), nameof(ListFormWizardDto.GanttOptionDto), + nameof(ListFormWizardDto.SchedulerOptionDto), nameof(ListFormWizardDto.TodoOptionDto), + nameof(ListFormWizardDto.WorkflowDto), nameof(ListFormWizardDto.SubForms), nameof(ListFormWizardDto.Widgets), + ]; + + /// Grup ve alan tanimlarinin bolumunde karsiligi olan anahtarlari. + private static readonly string[] FieldsOwnedGroupKeys = + [ + nameof(WizardColumnGroupInputDto.Caption), nameof(WizardColumnGroupInputDto.ColCount), + ]; + + private static readonly string[] FieldsOwnedItemKeys = + [ + nameof(WizardColumnItemInputDto.EditorType), nameof(WizardColumnItemInputDto.EditorOptions), + nameof(WizardColumnItemInputDto.EditorScript), nameof(WizardColumnItemInputDto.ColSpan), + nameof(WizardColumnItemInputDto.IsRequired), nameof(WizardColumnItemInputDto.IncludeInEditingForm), + nameof(WizardColumnItemInputDto.DbSourceType), nameof(WizardColumnItemInputDto.LookupDataSourceType), + nameof(WizardColumnItemInputDto.ValueExpr), nameof(WizardColumnItemInputDto.DisplayExpr), + nameof(WizardColumnItemInputDto.LookupQuery), + ]; + + /// Dosyada `Menu` basligi altinda toplanan wizard alanlari. + private static readonly string[] MenuKeys = + [ + nameof(ListFormWizardDto.CreateMenu), nameof(ListFormWizardDto.MenuCode), nameof(ListFormWizardDto.MenuOrder), + nameof(ListFormWizardDto.MenuUrl), nameof(ListFormWizardDto.MenuIcon), nameof(ListFormWizardDto.MenuParentCode), + nameof(ListFormWizardDto.MenuParentIcon), + ]; + + /// + /// Dosyada daha okunakli adla yazilan alanlar. Modul, wizard'in ana bilgisidir; menu ve + /// yetkilerin hangi modul altinda filtrelenecegini belirler. + /// + private static readonly (string Property, string SeedKey)[] RenamedKeys = + [ + (nameof(ListFormWizardDto.MenuParentModuleId), "ModuleId"), + (nameof(ListFormWizardDto.ListFormCode), WizardCodeKey), + ]; + + /// + /// Ekranin kodu wizard'in kimligidir: menu kodu, yetki adlari ve dil anahtarlari bu koddan + /// turer. Dosyada bu nedenle ekran adiyla degil wizard adiyla anilir. + /// + private const string WizardCodeKey = "WizardCode"; + + /// Dosyadaki okuma sirasi: kimlik, kapsam, sonra menu/dil/alan bloklari. + private static readonly string[] WizardKeyOrder = + [ + nameof(ListFormWizardDto.ComponentKind), nameof(ListFormWizardDto.WizardName), WizardCodeKey, + nameof(ListFormWizardDto.SeededAt), nameof(ListFormWizardDto.CustomComponentName), + nameof(ListFormWizardDto.PermissionGroupName), nameof(ListFormWizardDto.PermissionGroupDisplayNameEn), + nameof(ListFormWizardDto.PermissionGroupDisplayNameTr), "ModuleId", + nameof(ListFormWizardDto.DataSourceConnectionString), + MenuSection, LanguageSection, nameof(ListFormWizardDto.Groups), + ]; + + /// + /// Dosyada `Language` basligi altinda toplanan dil metinleri. ListForm yalnizca dil + /// anahtarini tasir (`Title = "{ListFormCode}.Title"`); metinlerin tek kaynagi burasidir. + /// + private static readonly string[] LanguageKeys = + [ + nameof(ListFormWizardDto.LanguageTextMenuEn), nameof(ListFormWizardDto.LanguageTextMenuTr), + nameof(ListFormWizardDto.LanguageTextTitleEn), nameof(ListFormWizardDto.LanguageTextTitleTr), + nameof(ListFormWizardDto.LanguageTextDescEn), nameof(ListFormWizardDto.LanguageTextDescTr), + nameof(ListFormWizardDto.LanguageTextMenuParentEn), nameof(ListFormWizardDto.LanguageTextMenuParentTr), + ]; + + private const string MenuSection = "Menu"; + private const string LanguageSection = "Language"; + + private static readonly JsonSerializerOptions SeedWriteOptions = new() { WriteIndented = true }; + private static readonly JsonSerializerOptions SeedReadOptions = new() { PropertyNameCaseInsensitive = true }; + + /// + /// Dosyaya yazilacak JSON'u uretir: once ortama ozgu alanlar temizlenir, sonra wizard + /// bolumunden ekranin sozlesmesinde zaten bulunan alanlar cikarilir. Wizard bolumunde + /// yalnizca ekrandan uretilemeyen bilgiler kalir: menu, yetki, dil metinleri ve alan + /// basliklarinin iki dilli karsiliklari. + /// + public string ToSeedJson() + { + ClearRuntimeFields(); + + var node = JsonSerializer.SerializeToNode(this, SeedWriteOptions); + + // Custom yolunda ListForm bolumu yoktur; cikarilan alanlarin geri doldurulacagi bir + // kaynak olmadigi icin wizard bolumu oldugu gibi birakilir. + if (ListForm != null && node?[nameof(Wizard)] is JsonObject wizard) + { + foreach (var key in ListFormOwnedWizardKeys) + wizard.Remove(key); + + foreach (var group in wizard[nameof(ListFormWizardDto.Groups)] as JsonArray ?? []) + { + if (group is not JsonObject groupObject) + continue; + + foreach (var key in FieldsOwnedGroupKeys) + groupObject.Remove(key); + + foreach (var item in groupObject[nameof(WizardColumnGroupInputDto.Items)] as JsonArray ?? []) + { + if (item is JsonObject itemObject) + { + foreach (var key in FieldsOwnedItemKeys) + itemObject.Remove(key); + } + } + } + } + + if (node?[nameof(Wizard)] is JsonObject wizardNode) + { + // Baglanti cumlesi yalnizca yeni bir veri kaynagi tanimlanirken doludur; bos degeri + // dosyada tasimanin anlami yok. + if (string.IsNullOrWhiteSpace(Wizard?.DataSourceConnectionString)) + wizardNode.Remove(nameof(ListFormWizardDto.DataSourceConnectionString)); + + // Menu uretmek varsayilan davranistir; dosyada yalnizca istisna (menusuz wizard) + // isaretlenir. Menu alanlari menusuz wizardda da kullanildigi icin (yetki kokunu + // veren MenuCode, Custom yolunda rotayi veren MenuUrl) blok kaldirilmaz. + if (Wizard?.CreateMenu != false) + wizardNode.Remove(nameof(ListFormWizardDto.CreateMenu)); + + foreach (var (property, seedKey) in RenamedKeys) + Rename(wizardNode, property, seedKey); + + MoveIntoSection(wizardNode, MenuSection, MenuKeys); + MoveIntoSection(wizardNode, LanguageSection, LanguageKeys); + + node[nameof(Wizard)] = Reorder(wizardNode, WizardKeyOrder); + } + + return node?.ToJsonString(SeedWriteOptions) ?? string.Empty; + } + + /// + /// Seed dosyasini okur: once `Menu`/`Language` basliklari duzlestirilir (sozlesme duz + /// oldugu icin), sonra wizard bolumu ekranin sozlesmesinden tamamlanir. + /// + public static WizardSeedFileDto FromSeedJson(string json) + { + var node = JsonNode.Parse(json); + if (node?[nameof(Wizard)] is JsonObject wizardNode) + { + FlattenSection(wizardNode, MenuSection); + FlattenSection(wizardNode, LanguageSection); + + foreach (var (property, seedKey) in RenamedKeys) + Rename(wizardNode, seedKey, property); + } + + return node.Deserialize(SeedReadOptions)?.Rehydrate(); + } + + private static void Rename(JsonObject wizard, string from, string to) + { + if (wizard.Remove(from, out var value)) + wizard[to] = value; + } + + /// + /// Wizard bolumunu verilen anahtar sirasina gore yeniden kurar; listede olmayan anahtarlar + /// mevcut siralarini koruyarak sona eklenir. JSON nesnesi ekleme sirasini korudugu icin + /// siralamanin tek yolu nesneyi yeniden olusturmaktir. + /// + private static JsonObject Reorder(JsonObject wizard, string[] keyOrder) + { + var ordered = new JsonObject(); + foreach (var key in keyOrder.Concat(wizard.Select(x => x.Key).ToArray())) + { + if (!ordered.ContainsKey(key) && wizard.Remove(key, out var value)) + ordered[key] = value; + } + + return ordered; + } + + /// Verilen anahtarlari wizard bolumunden alip tek bir baslik altina tasir. + private static void MoveIntoSection(JsonObject wizard, string section, string[] keys) + { + var target = new JsonObject(); + foreach (var key in keys) + { + if (wizard.Remove(key, out var value)) + target[key] = value; + } + + if (target.Count > 0) + wizard[section] = target; + } + + /// Baslik altindaki alanlari wizard bolumune geri tasir. + private static void FlattenSection(JsonObject wizard, string section) + { + if (!wizard.Remove(section, out var value) || value is not JsonObject group) + return; + + foreach (var key in group.Select(x => x.Key).ToArray()) + { + if (group.Remove(key, out var item)) + wizard[key] = item; + } + } + + /// + /// Dosyadan okunan wizard bolumunu ekranin sozlesmesinden tamamlar. Dosyada tekrar edilmeyen + /// alanlar (veri kaynagi, duzen, duzenleme izinleri, alan tanimlari) ve + /// uzerinden doldurulur; wizard'i okuyan her kod tam nesneyi gorur. + /// + private WizardSeedFileDto Rehydrate() + { + if (Wizard != null && ListForm != null) + Wizard.RefreshFrom(ListForm, Fields ?? []); + + return this; + } + + private static void ClearAudit(AuditedEntityDto dto) + { + if (dto == null) + return; + + dto.Id = default; + dto.CreationTime = default; + dto.CreatorId = null; + dto.LastModificationTime = null; + dto.LastModifierId = null; + } } /// diff --git a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs index 9b8aed2a..c695da4f 100644 --- a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs +++ b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormFieldsAppService.cs @@ -21,12 +21,16 @@ public class ListFormFieldsAppService : CrudAppService< { public IRepository RepoListForm { get; } + private readonly IWizardSeedSynchronizer wizardSeedSynchronizer; + public ListFormFieldsAppService( IRepository _repository, - IRepository _repoListForm + IRepository _repoListForm, + IWizardSeedSynchronizer _wizardSeedSynchronizer ) : base(_repository) { RepoListForm = _repoListForm; + wizardSeedSynchronizer = _wizardSeedSynchronizer; CreatePolicyName = $"{AppCodes.Listforms.ListformField}.Create"; UpdatePolicyName = $"{AppCodes.Listforms.ListformField}.Update"; @@ -119,7 +123,12 @@ public class ListFormFieldsAppService : CrudAppService< }); } - return await base.CreateAsync(input); + var created = await base.CreateAsync(input); + + // Ekran wizard ile uretildiyse seed dosyasi da guncel alan listesini tasimalidir. + await wizardSeedSynchronizer.SyncAsync(input.ListFormCode); + + return created; } public override async Task UpdateAsync(Guid id, ColumnFormatEditDto input) @@ -214,9 +223,20 @@ public class ListFormFieldsAppService : CrudAppService< await Repository.UpdateAsync(item, autoSave: true); + await wizardSeedSynchronizer.SyncAsync(item.ListFormCode); + return await MapToGetOutputDtoAsync(item); } + public override async Task DeleteAsync(Guid id) + { + var listFormCode = (await GetEntityByIdAsync(id)).ListFormCode; + + await base.DeleteAsync(id); + + await wizardSeedSynchronizer.SyncAsync(listFormCode); + } + [Authorize(AppCodes.Listforms.ListformField + ".Create")] public async Task CopyField(CopyListFormFieldColumnDto input) { @@ -324,6 +344,8 @@ public class ListFormFieldsAppService : CrudAppService< await Repository.InsertAsync(field); + await wizardSeedSynchronizer.SyncAsync(field.ListFormCode); + return input; } } diff --git a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormJsonRowAppService.cs b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormJsonRowAppService.cs index 0d2e0313..d4d7ebb3 100644 --- a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormJsonRowAppService.cs +++ b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormJsonRowAppService.cs @@ -20,12 +20,15 @@ namespace Sozsoft.Platform.ListForms.Administration; public class ListFormJsonRowAppService : PlatformAppService { private readonly IRepository repository; + private readonly IWizardSeedSynchronizer wizardSeedSynchronizer; public ListFormJsonRowAppService( - IRepository _repository + IRepository _repository, + IWizardSeedSynchronizer _wizardSeedSynchronizer ) : base() { repository = _repository; + wizardSeedSynchronizer = _wizardSeedSynchronizer; } public async Task GetAllAsync(Guid id, string field) @@ -183,6 +186,9 @@ public class ListFormJsonRowAppService : PlatformAppService } await repository.UpdateAsync(listForm); + + // Ekran wizard ile uretildiyse seed dosyasi da guncel halini tasimalidir. + await wizardSeedSynchronizer.SyncAsync(listForm.ListFormCode); } public async Task UpdateAsync(Guid id, CrudFieldsDefaultValueJsonItemDto model) @@ -237,6 +243,9 @@ public class ListFormJsonRowAppService : PlatformAppService } await repository.UpdateAsync(listForm); + + // Ekran wizard ile uretildiyse seed dosyasi da guncel halini tasimalidir. + await wizardSeedSynchronizer.SyncAsync(listForm.ListFormCode); } public async Task DeleteAsync(Guid id, string field, int index) @@ -291,6 +300,9 @@ public class ListFormJsonRowAppService : PlatformAppService } await repository.UpdateAsync(listForm); + + // Ekran wizard ile uretildiyse seed dosyasi da guncel halini tasimalidir. + await wizardSeedSynchronizer.SyncAsync(listForm.ListFormCode); } private async Task GetAsync(Guid id) diff --git a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormsAppService.cs b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormsAppService.cs index d1a606a3..b3b7d189 100644 --- a/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormsAppService.cs +++ b/api/src/Sozsoft.Platform.Application/ListForms/Administration/ListFormsAppService.cs @@ -21,12 +21,15 @@ public class ListFormsAppService : CrudAppService< GridOptionsEditDto>, IListFormsAppService { private readonly IListFormAuthorizationManager authManager; + private readonly IWizardSeedSynchronizer wizardSeedSynchronizer; public ListFormsAppService( IRepository _repository, - IListFormAuthorizationManager _authManager) : base(_repository) + IListFormAuthorizationManager _authManager, + IWizardSeedSynchronizer _wizardSeedSynchronizer) : base(_repository) { authManager = _authManager; + wizardSeedSynchronizer = _wizardSeedSynchronizer; CreatePolicyName = $"{AppCodes.Listforms.Listform}.Create"; UpdatePolicyName = $"{AppCodes.Listforms.Listform}.Update"; @@ -239,6 +242,9 @@ public class ListFormsAppService : CrudAppService< await Repository.UpdateAsync(item, autoSave: true); + // Ekran wizard ile uretildiyse seed dosyasi da guncel halini tasimalidir. + await wizardSeedSynchronizer.SyncAsync(item.ListFormCode); + return await MapToGetOutputDtoAsync(item); } } diff --git a/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs b/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs index 4f281aab..dc6f63c3 100644 --- a/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs +++ b/api/src/Sozsoft.Platform.Application/ListForms/ListFormWizardAppService.cs @@ -74,7 +74,6 @@ public class ListFormWizardAppService( private readonly string cultureNameDefault = PlatformConsts.DefaultLanguage; private static readonly JsonSerializerOptions SeedJsonReadOptions = new() { PropertyNameCaseInsensitive = true }; - private static readonly JsonSerializerOptions SeedJsonWriteOptions = new() { WriteIndented = true }; [UnitOfWork] public async Task Create(ListFormWizardDto input) @@ -92,18 +91,18 @@ public class ListFormWizardAppService( : AppCodes.Listforms.Wizards.Create); if (isEdit) + { + // Ilk deploy zamani wizard'in kimligidir; duzenleme onu degistirmez. + input.SeededAt = await ReadSeededAtAsync(editFileName!); await DeleteFileInternalAsync(editFileName!); + } var wizardName = input.WizardName?.Trim(); if (string.IsNullOrWhiteSpace(wizardName)) throw new UserFriendlyException("Wizard adı zorunludur."); - var code = string.IsNullOrWhiteSpace(input.MenuCode) - ? WizardConsts.WizardKey(wizardName) - : input.MenuCode.Trim(); - var listFormCode = string.IsNullOrWhiteSpace(input.ListFormCode) - ? code - : input.ListFormCode.Trim(); + var code = input.ResolveMenuCode(); + var listFormCode = input.ResolveListFormCode(); // Aşağıdaki tüm kayıtlar normalize edilmiş kodlara göre üretilir. input.ListFormCode = listFormCode; input.MenuCode = code; @@ -295,7 +294,7 @@ public class ListFormWizardAppService( if (isCustomComponent) { await _languageTextAppService.ClearRedisCacheAsync(); - await SaveWizardSeedFileAsync(input, false, false, inserted); + await SaveWizardSeedFileAsync(input, null, [], false, false, inserted); return; } @@ -318,21 +317,7 @@ public class ListFormWizardAppService( inserted.DataSourceCodes.Add(input.DataSourceCode); } - // Build EditingFormJson from wizard groups (sadece editing form alanı olan gruplar) - var editingFormDtos = input.Groups - .Select((g, gi) => new { Group = g, Order = gi + 1 }) - .Where(x => x.Group.Items.Any(i => i.IncludeInEditingForm && i.FieldName != input.KeyFieldName)) - .Select(x => new EditingFormDto - { - Order = x.Order, - Caption = x.Group.Caption, - ColCount = x.Group.ColCount, - ColSpan = x.Group.ColCount, - ItemType = "group" - }) - .ToList(); - - //ListForm - varsa sil, yeniden ekle + //ListForm ve alanlari - varsa sil, yeniden uret var existingListForm = await repoListForm.FirstOrDefaultAsync(a => a.ListFormCode == input.ListFormCode); if (existingListForm != null) { @@ -354,115 +339,27 @@ public class ListFormWizardAppService( var tableColumns = await GetTableColumnNamesAsync(input.DataSourceCode, input.SelectCommandType, input.SelectCommand); var isDeleted = tableColumns.Contains("IsDeleted"); var isCreated = tableColumns.Contains("CreatorId"); - input.WorkflowDto ??= new WorkflowDto(); - input.WorkflowDto.Criteria ??= []; - EnsureUniqueWorkflowCriteriaTitles(input.WorkflowDto.Criteria); - NormalizeWorkflowCriteriaIds(listFormCode, input.WorkflowDto.Criteria); + + // Ekranin sozlesmesi tek fabrikadan uretilir; seed dosyasina yazilan da veritabanina + // yazilan da ayni nesnedir. + var listFormDto = input.BuildListForm(isDeleted, isCreated); + var fieldDtos = input.BuildFields(); var workflow = input.WorkflowDto; - await repoListForm.InsertAsync(new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = WizardConsts.DefaultExportJson, - IsSubForm = false, - ShowNote = input.SubForms.Count > 0 || workflow.Criteria.Count > 0, - LayoutJson = WizardConsts.DefaultLayoutJson(input.DefaultLayout, input.Grid, input.Card, input.Pivot, input.Tree, input.Chart, input.Gantt, input.Scheduler, input.Todo), - CultureName = LanguageCodes.En, - ListFormCode = input.ListFormCode, - Name = nameLangKey, - Title = titleLangKey, - Description = descLangKey, - DataSourceCode = input.DataSourceCode, - IsTenant = input.IsTenant, - IsBranch = input.IsBranch, - IsOrganizationUnit = input.IsOrganizationUnit, - SelectCommandType = input.SelectCommandType, - SelectCommand = input.SelectCommand, - KeyFieldName = input.KeyFieldName, - KeyFieldDbSourceType = input.KeyFieldDbSourceType, - DefaultFilter = isDeleted ? WizardConsts.DefaultFilterJson : null, - SortMode = PlatformConsts.GridOptions.SortModeSingle, - FilterRowJson = WizardConsts.DefaultFilterRowJson(), - HeaderFilterJson = WizardConsts.DefaultHeaderFilterJson(), - SearchPanelJson = WizardConsts.DefaultSearchPanelJson(), - GroupPanelJson = WizardConsts.DefaultGroupPanelJson(), - SelectionJson = WizardConsts.DefaultSelectionSingleJson(workflow.Criteria.Count > 0 ? PlatformConsts.GridOptions.SelectionModeSingle : PlatformConsts.GridOptions.SelectionModeNone), - ColumnOptionJson = WizardConsts.DefaultColumnOptionJson(), - PermissionJson = WizardConsts.DefaultPermissionJson(code), - DeleteCommand = isDeleted ? WizardConsts.DefaultDeleteCommand(input.SelectCommand) : null, - DeleteFieldsDefaultValueJson = isDeleted ? WizardConsts.DefaultDeleteFieldsDefaultValueJson(input.KeyFieldDbSourceType) : WizardConsts.DefaultDeleteFieldsJsonOnlyId(input.KeyFieldDbSourceType), - InsertFieldsDefaultValueJson = isCreated ? WizardConsts.DefaultInsertFieldsDefaultValueJson(input.KeyFieldDbSourceType) : WizardConsts.DefaultInsertFieldsJsonOnlyId(input.KeyFieldDbSourceType), - PagerOptionJson = WizardConsts.DefaultPagerOptionJson, - EditingOptionJson = WizardConsts.DefaultEditingOptionJson(titleLangKey, 600, 500, input.AllowDeleting, input.AllowAdding, input.AllowUpdating, input.ConfirmDelete, false, input.AllowDetail), - EditingFormJson = editingFormDtos.Count > 0 ? JsonSerializer.Serialize(editingFormDtos) : null, - SubFormsJson = input.SubForms.Count > 0 ? JsonSerializer.Serialize(input.SubForms) : null, - WidgetsJson = input.Widgets.Count > 0 ? JsonSerializer.Serialize(input.Widgets) : null, - WorkflowJson = HasWorkflow(workflow) ? JsonSerializer.Serialize(workflow) : null, - TreeOptionJson = (input.Tree || input.DefaultLayout == "tree") && - !string.IsNullOrEmpty(input.TreeOptionDto?.ParentIdExpr) - ? JsonSerializer.Serialize(input.TreeOptionDto) - : null, - GanttOptionJson = (input.Gantt || input.DefaultLayout == "gantt") && - !string.IsNullOrEmpty(input.GanttOptionDto?.ParentIdExpr) - ? JsonSerializer.Serialize(input.GanttOptionDto) - : null, - SchedulerOptionJson = (input.Scheduler || input.DefaultLayout == "scheduler") && - !string.IsNullOrEmpty(input.SchedulerOptionDto?.TextExpr) - ? JsonSerializer.Serialize(input.SchedulerOptionDto) - : null, - TodoOptionJson = (input.Todo || input.DefaultLayout == "todo") && - !string.IsNullOrEmpty(input.TodoOptionDto?.TitleExpr) && - !string.IsNullOrEmpty(input.TodoOptionDto?.StatusExpr) - ? JsonSerializer.Serialize(input.TodoOptionDto) - : null, - }, autoSave: true); + var listForm = new ListForm(); + listFormDto.ApplyTo(listForm); + await repoListForm.InsertAsync(listForm, autoSave: true); - // ListFormField - each item in each group becomes a visible field record - var fieldOrder = 0; - var editGroupOrder = 0; - foreach (var group in input.Groups) + foreach (var fieldDto in fieldDtos) { - editGroupOrder++; - var editOrder = 0; - foreach (var item in group.Items) - { - fieldOrder++; - if (item.IncludeInEditingForm && item.FieldName != input.KeyFieldName) - { - editOrder++; - } - await repoListFormField.InsertAsync(new ListFormField - { - ListFormCode = input.ListFormCode, - FieldName = item.FieldName, - CaptionName = item.CaptionName, - Visible = item.FieldName != input.KeyFieldName, - IsActive = true, - AllowSearch = true, - Width = 0, - ListOrderNo = fieldOrder, - EditGroupOrderNo = item.IncludeInEditingForm ? editGroupOrder : null, - EditOrderNo = item.IncludeInEditingForm && item.FieldName != input.KeyFieldName - ? editOrder - : null, - EditorType2 = item.EditorType, - ColSpan = item.ColSpan, - EditorOptions = string.IsNullOrWhiteSpace(item.EditorOptions) ? null : item.EditorOptions, - EditorScript = string.IsNullOrWhiteSpace(item.EditorScript) ? null : item.EditorScript, - SourceDbType = item.DbSourceType, - CultureName = PlatformConsts.DefaultLanguage, - PermissionJson = WizardConsts.DefaultFieldPermissionJson(code), - ColumnCustomizationJson = WizardConsts.DefaultColumnCustomizationJson, - ColumnFilterJson = WizardConsts.DefaultColumnFilteringJson, - PivotSettingsJson = WizardConsts.DefaultPivotSettingsJson, - LookupJson = !string.IsNullOrWhiteSpace(item.LookupQuery) - ? WizardConsts.DefaultLookupJson(item.LookupDataSourceType, item.DisplayExpr, item.ValueExpr, item.LookupQuery) - : null, - }, autoSave: true); + var field = new ListFormField(); + fieldDto.ApplyTo(field); + await repoListFormField.InsertAsync(field, autoSave: true); + } - await CreateLangKey(item.CaptionName, item.EnglishCaption, item.TurkishCaption, inserted); - } + foreach (var item in input.Groups.SelectMany(g => g.Items)) + { + await CreateLangKey(item.CaptionName, item.EnglishCaption, item.TurkishCaption, inserted); } foreach (var criteria in workflow.Criteria) @@ -496,153 +393,48 @@ public class ListFormWizardAppService( await _languageTextAppService.ClearRedisCacheAsync(); // Wizard konfigürasyonunu seed dosyasına kaydet - await SaveWizardSeedFileAsync(input, isDeleted, isCreated, inserted); - } - - private static bool HasWorkflow(WorkflowDto workflow) - { - return workflow != null && ( - !string.IsNullOrWhiteSpace(workflow.ApprovalUserFieldName) || - !string.IsNullOrWhiteSpace(workflow.ApprovalStatusFieldName) || - workflow.Criteria.Count > 0 - ); - } - - private static void EnsureUniqueWorkflowCriteriaTitles(List criteria) - { - if (criteria == null || criteria.Count == 0) - { - return; - } - - var baseTitles = criteria - .Select(x => string.IsNullOrWhiteSpace(x.Title) ? NormalizeWorkflowTitleFallback(x.Kind) : x.Title.Trim()) - .ToList(); - var duplicateTitles = baseTitles - .GroupBy(x => x, StringComparer.OrdinalIgnoreCase) - .Where(x => x.Count() > 1) - .Select(x => x.Key) - .ToHashSet(StringComparer.OrdinalIgnoreCase); - var titleCounts = new Dictionary(StringComparer.OrdinalIgnoreCase); - var usedTitles = new HashSet(StringComparer.OrdinalIgnoreCase); - - foreach (var item in criteria) - { - var baseTitle = string.IsNullOrWhiteSpace(item.Title) ? NormalizeWorkflowTitleFallback(item.Kind) : item.Title.Trim(); - var title = baseTitle; - - if (duplicateTitles.Contains(baseTitle)) - { - titleCounts.TryGetValue(baseTitle, out var count); - count++; - titleCounts[baseTitle] = count; - title = $"{baseTitle}{count}"; - } - - if (usedTitles.Contains(title)) - { - var index = 1; - var candidate = $"{title}{index}"; - while (usedTitles.Contains(candidate)) - { - index++; - candidate = $"{title}{index}"; - } - - title = candidate; - } - - item.Title = title; - usedTitles.Add(title); - } - } - - private static string NormalizeWorkflowTitleFallback(string kind) - { - return string.IsNullOrWhiteSpace(kind) ? "Step" : kind.Trim(); - } - - private static void NormalizeWorkflowCriteriaIds(string listFormCode, List criteria) - { - if (string.IsNullOrWhiteSpace(listFormCode) || criteria == null || criteria.Count == 0) - { - return; - } - - foreach (var item in criteria) - { - item.Id = NormalizeWorkflowCriteriaId(listFormCode, item.Id); - item.ListFormCode = listFormCode; - item.NextOnStart = NormalizeWorkflowTargetId(listFormCode, item.NextOnStart); - item.NextOnTrue = NormalizeWorkflowTargetId(listFormCode, item.NextOnTrue); - item.NextOnFalse = NormalizeWorkflowTargetId(listFormCode, item.NextOnFalse); - item.NextOnApprove = NormalizeWorkflowTargetId(listFormCode, item.NextOnApprove); - item.NextOnReject = NormalizeWorkflowTargetId(listFormCode, item.NextOnReject); - - foreach (var outcome in item.CompareOutcomes ?? []) - { - outcome.TargetId = NormalizeWorkflowTargetId(listFormCode, outcome.TargetId); - } - } - } - - private static string NormalizeWorkflowTargetId(string listFormCode, string id) - { - return string.IsNullOrWhiteSpace(id) - ? string.Empty - : NormalizeWorkflowCriteriaId(listFormCode, id); - } - - private static string NormalizeWorkflowCriteriaId(string listFormCode, string id) - { - var trimmed = id?.Trim(); - if (string.IsNullOrWhiteSpace(trimmed)) - { - return string.Empty; - } - - if (trimmed.StartsWith($"{listFormCode}-", StringComparison.OrdinalIgnoreCase)) - { - return trimmed; - } - - return trimmed.StartsWith("N", StringComparison.OrdinalIgnoreCase) - ? $"{listFormCode}-{trimmed}" - : trimmed; + await SaveWizardSeedFileAsync(input, listFormDto, fieldDtos, isDeleted, isCreated, inserted); } /// /// Wizard konfigürasyonunu JSON dosyası olarak kaydeder. /// Dosya, seeder'lar ve File Manager ile ortak olan seed klasörünün wizard dizinine yazılır. /// Veritabanı silinip yeniden oluşturulduğunda WizardDataSeeder bu dosyaları okuyarak konfigürasyonu geri yükler. + /// + /// Dosya yalnizca wizard'in cevaplarini degil, urettigi ekranin ListForm sozlesmesini de tasir; + /// tasarimci uzerinde yapilan degisiklikler ayni bolumlere geri yazildigi icin dosya her zaman + /// ekranin guncel halidir. + /// /// - private async Task SaveWizardSeedFileAsync(ListFormWizardDto input, bool isDeletedField, bool isCreatedField, WizardInsertedRecordsDto inserted) + private async Task SaveWizardSeedFileAsync( + ListFormWizardDto input, + GridOptionsEditDto listForm, + List fields, + bool isDeletedField, + bool isCreatedField, + WizardInsertedRecordsDto inserted) { try { var outputPath = ResolveWizardSeedOutputPath(); Directory.CreateDirectory(outputPath); - // Duzenleme bilgisi yalnizca istege aittir; seed dosyasinda yeri yoktur. - input.EditFileName = null; + // Duzenlemede ilk deploy zamani korunur; seeder dosyalari bu damgaya gore siralar. + if (input.SeededAt == default) + input.SeededAt = Clock.Now; var seedData = new WizardSeedFileDto { Wizard = input, + ListForm = listForm, + Fields = fields ?? [], IsDeletedField = isDeletedField, IsCreatedField = isCreatedField, InsertedRecords = inserted }; - var json = JsonSerializer.Serialize(seedData, SeedJsonWriteOptions); - // Dosya adı kullanıcı girdisinden türetildiği için geçersiz karakterler ayıklanır. - var safeWizardName = string.Concat(input.WizardName.Trim().Split(Path.GetInvalidFileNameChars())); - if (string.IsNullOrWhiteSpace(safeWizardName)) - safeWizardName = "Wizard"; - - var timestamp = Clock.Now.ToString("yyyyMMddHHmmss"); - var filePath = Path.Combine(outputPath, $"{timestamp}_{safeWizardName}.json"); - await File.WriteAllTextAsync(filePath, json); + var filePath = Path.Combine(outputPath, ResolveWizardSeedFileName(input.WizardName)); + await File.WriteAllTextAsync(filePath, seedData.ToSeedJson()); logger.LogInformation("Seed file saved: {FilePath}", filePath); } @@ -653,6 +445,38 @@ public class ListFormWizardAppService( } } + /// + /// Duzenlenen dosyanin ilk deploy zamanini okur; dosya okunamazsa varsayilan deger doner ve + /// kayit sirasinda yeni damga atilir. + /// + private async Task ReadSeededAtAsync(string fileName) + { + try + { + var json = await File.ReadAllTextAsync(ResolveWizardSeedFilePath(fileName)); + var seed = WizardSeedFileDto.FromSeedJson(json); + return seed?.Wizard?.SeededAt ?? default; + } + catch (Exception ex) + { + logger.LogWarning(ex, "Wizard seed file could not be read for SeededAt: {FileName}", fileName); + return default; + } + } + + /// + /// Seed dosyasinin adi wizard adiyla aynidir; dosya adi tarih tasimaz. Ad kullanici + /// girdisinden turedigi icin gecersiz karakterler ayiklanir. + /// + private static string ResolveWizardSeedFileName(string wizardName) + { + var safeWizardName = string.Concat((wizardName ?? string.Empty).Trim().Split(Path.GetInvalidFileNameChars())); + if (string.IsNullOrWhiteSpace(safeWizardName)) + safeWizardName = "Wizard"; + + return $"{safeWizardName}.json"; + } + /// /// Custom yolunda component adı ve rota zorunludur. Rota /// üzerinden taşınır ve CustomComponent sözleşmesiyle (CreateUpdateCustomComponentDto.RoutePath) @@ -724,7 +548,7 @@ public class ListFormWizardAppService( try { var json = await File.ReadAllTextAsync(file); - var seed = JsonSerializer.Deserialize(json, SeedJsonReadOptions); + var seed = WizardSeedFileDto.FromSeedJson(json); result.Add(new WizardFileInfoDto { FileName = fileName, @@ -735,7 +559,7 @@ public class ListFormWizardAppService( ComponentKind = seed?.Wizard?.ComponentKind ?? WizardComponentKindEnum.List, CustomComponentName = seed?.Wizard?.CustomComponentName ?? string.Empty, MenuUrl = seed?.Wizard?.MenuUrl ?? string.Empty, - CreatedAt = fileName.Length >= 12 ? fileName[..12] : fileName, + CreatedAt = seed?.Wizard?.SeededAt.ToString("s") ?? string.Empty, HasInsertedRecords = seed?.InsertedRecords != null && (seed.InsertedRecords.LanguageKeys.Count > 0 || seed.InsertedRecords.PermissionGroupNames.Count > 0 || @@ -759,7 +583,7 @@ public class ListFormWizardAppService( var filePath = ResolveWizardSeedFilePath(fileName); var json = await File.ReadAllTextAsync(filePath); - var seed = JsonSerializer.Deserialize(json, SeedJsonReadOptions); + var seed = WizardSeedFileDto.FromSeedJson(json); return seed ?? throw new UserFriendlyException("Dosya okunamadı."); } @@ -779,7 +603,7 @@ public class ListFormWizardAppService( var filePath = ResolveWizardSeedFilePath(fileName); var json = await File.ReadAllTextAsync(filePath); - var seed = JsonSerializer.Deserialize(json, SeedJsonReadOptions); + var seed = WizardSeedFileDto.FromSeedJson(json); if (seed != null) await DeleteWizardDataAsync(seed); @@ -992,7 +816,7 @@ public class ListFormWizardAppService( { var filePath = ResolveWizardSeedFilePath(fileName); var json = await File.ReadAllTextAsync(filePath); - var seed = JsonSerializer.Deserialize(json, SeedJsonReadOptions) + var seed = WizardSeedFileDto.FromSeedJson(json) ?? throw new UserFriendlyException("Dosya okunamadı."); var scopeRoot = Path.GetFullPath(SeedPathResolver.GetScopePath(_configuration, CurrentTenant.Id)); diff --git a/api/src/Sozsoft.Platform.Application/ListForms/WizardSeedSynchronizer.cs b/api/src/Sozsoft.Platform.Application/ListForms/WizardSeedSynchronizer.cs new file mode 100644 index 00000000..2d8a98c2 --- /dev/null +++ b/api/src/Sozsoft.Platform.Application/ListForms/WizardSeedSynchronizer.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.Json; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; +using Sozsoft.Platform.Data.Seeds; +using Sozsoft.Platform.Entities; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.MultiTenancy; +using Volo.Abp.ObjectMapping; + +namespace Sozsoft.Platform.ListForms; + +/// +/// ListForm tasarimcisinda yapilan degisiklikleri wizard seed dosyasina geri yazar. +/// +public interface IWizardSeedSynchronizer +{ + /// + /// Verilen ListForm koduna ait bir wizard seed dosyasi varsa dosyanin ekran ve alan + /// bolumlerini veritabanindaki guncel haliyle degistirir. Dosya yoksa hicbir sey yapmaz. + /// + Task SyncAsync(string listFormCode); +} + +/// +/// Wizard ile uretilen bir ekran, sonrasinda ListForm detayindan duzenlenebilir. Bu iki yol +/// ayrisirsa wizard yeniden deploy edildiginde tasarimcida yapilan is kaybolur; bu nedenle +/// ListForm ve alan kayitlarinin her degisiminde seed dosyasi da guncellenir. +/// +public class WizardSeedSynchronizer( + IRepository repoListForm, + IRepository repoListFormField, + IObjectMapper objectMapper, + IConfiguration configuration, + ICurrentTenant currentTenant, + ILogger logger) : IWizardSeedSynchronizer, ITransientDependency +{ + + public async Task SyncAsync(string listFormCode) + { + if (string.IsNullOrWhiteSpace(listFormCode)) + return; + + try + { + var (filePath, seed) = await FindSeedFileAsync(listFormCode); + if (seed == null) + return; + + var listForm = await repoListForm.FirstOrDefaultAsync(a => a.ListFormCode == listFormCode); + if (listForm == null) + return; + + var fields = await repoListFormField.GetListAsync(a => a.ListFormCode == listFormCode); + + seed.ListForm = objectMapper.Map(listForm); + seed.Fields = [.. fields + .OrderBy(f => f.ListOrderNo) + .Select(objectMapper.Map)]; + + // Wizard bolumu de guncellenir; aksi halde ayni wizard yeniden deploy edildiginde + // tasarimcidaki degisiklikler eski cevaplarla ezilirdi. + seed.Wizard.RefreshFrom(seed.ListForm, seed.Fields); + + await File.WriteAllTextAsync(filePath, seed.ToSeedJson()); + logger.LogInformation("Wizard seed file synchronized: {FilePath}", filePath); + } + catch (Exception ex) + { + // Senkronizasyon hatasi tasarimcidaki kaydetme islemini engellemez. + logger.LogError(ex, "Wizard seed file could not be synchronized for '{ListFormCode}': {Message}", listFormCode, ex.Message); + } + } + + /// + /// Kapsam klasorundeki wizard dosyalari icinde bu ListForm koduna ait olani bulur. Dosya adi + /// wizard adiyla ayni oldugu icin once dogrudan ad denenir; eski ya da elle adlandirilmis + /// dosyalar icin klasor taranir. + /// + private async Task<(string FilePath, WizardSeedFileDto Seed)> FindSeedFileAsync(string listFormCode) + { + var wizardPath = SeedPathResolver.GetScopePath(configuration, currentTenant.Id, SeedPathResolver.WizardFolder); + if (!Directory.Exists(wizardPath)) + return (null, null); + + var candidates = new List(); + var directPath = Path.Combine(wizardPath, $"{listFormCode}.json"); + if (File.Exists(directPath)) + candidates.Add(directPath); + + candidates.AddRange(Directory + .GetFiles(wizardPath, "*.json") + .Where(f => !string.Equals(f, directPath, StringComparison.OrdinalIgnoreCase))); + + foreach (var candidate in candidates) + { + var seed = await ReadSeedAsync(candidate); + if (seed?.Wizard != null && + string.Equals(seed.Wizard.ListFormCode, listFormCode, StringComparison.OrdinalIgnoreCase)) + { + return (candidate, seed); + } + } + + return (null, null); + } + + private async Task ReadSeedAsync(string filePath) + { + try + { + return WizardSeedFileDto.FromSeedJson(await File.ReadAllTextAsync(filePath)); + } + catch (JsonException ex) + { + logger.LogWarning(ex, "Wizard seed file could not be parsed: {FilePath}", filePath); + return null; + } + } +} diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json b/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json index 0dd632ba..d7257479 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/LanguagesData.json @@ -17190,6 +17190,18 @@ "en": "Select at least one operation or turn generation off", "tr": "En az bir operasyon seçin ya da üretimi kapatın" }, + { + "resourceName": "Platform", + "key": "App.SqlQueryManager.ExistingCrudEndpoints", + "en": "Existing CRUD endpoints", + "tr": "Kayıtlı CRUD endpoint'leri" + }, + { + "resourceName": "Platform", + "key": "App.SqlQueryManager.ExistingCrudEndpointsHint", + "en": "This table already has generated endpoints; deploying again regenerates them with the operations selected below.", + "tr": "Bu tablo için endpoint'ler daha önce üretilmiş; tekrar deploy edildiğinde aşağıda seçilen operasyonlarla yeniden üretilir." + }, { "resourceName": "Platform", "key": "App.SqlQueryManager.CrudEndpointsInactiveNote", diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/WizardDataSeeder.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/WizardDataSeeder.cs index da9b5dd3..8cd6a93f 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/WizardDataSeeder.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/WizardDataSeeder.cs @@ -84,30 +84,44 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency return; } - var jsonFiles = Directory.GetFiles(wizardDataPath, "*.json").OrderBy(f => Path.GetFileName(f)).ToArray(); + var jsonFiles = Directory.GetFiles(wizardDataPath, "*.json"); if (jsonFiles.Length == 0) { _logger.LogInformation("No JSON files found in Seeds/{Scope}/wizard directory, skipping.", scopeFolderName); return; } - _logger.LogInformation("WizardDataSeeder started. {Count} files to be processed.", jsonFiles.Length); - - var options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }; - + // Dosya adi tarih tasimadigi icin uygulama sirasi dosyanin kendi damgasindan gelir; + // birbirine bagli wizard'lar (once Customers, sonra Tasks) uretildikleri sirayla uygulanir. + var seedFiles = new List<(string FilePath, WizardSeedFileDto Seed)>(); foreach (var filePath in jsonFiles) { try { - var json = await File.ReadAllTextAsync(filePath); - var seedFile = JsonSerializer.Deserialize(json, options); - - if (seedFile?.Wizard == null) + var seed = WizardSeedFileDto.FromSeedJson(await File.ReadAllTextAsync(filePath)); + if (seed?.Wizard == null) { _logger.LogWarning("Invalid file skipped: {FilePath}", filePath); continue; } + seedFiles.Add((filePath, seed)); + } + catch (Exception ex) + { + _logger.LogError(ex, $"Error - {filePath}: {ex.Message}"); + } + } + + _logger.LogInformation("WizardDataSeeder started. {Count} files to be processed.", seedFiles.Count); + + foreach (var (filePath, seedFile) in seedFiles + .OrderBy(x => x.Seed.Wizard.SeededAt) + .ThenBy(x => Path.GetFileName(x.FilePath), StringComparer.OrdinalIgnoreCase)) + { + var fileName = Path.GetFileName(filePath); + try + { var wizardName = seedFile.Wizard.WizardName?.Trim(); if (string.IsNullOrWhiteSpace(wizardName)) { @@ -115,7 +129,12 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency continue; } - var fileName = Path.GetFileName(filePath); + var isCustomComponent = seedFile.Wizard.ComponentKind == WizardComponentKindEnum.Custom; + if (!isCustomComponent && seedFile.ListForm == null) + { + _logger.LogWarning("[{File}] ListForm section is missing, skipped.", fileName); + continue; + } await BackfillMenuParentModuleIdAsync(seedFile.Wizard); @@ -123,10 +142,10 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency // idempotency menü kaydı üzerinden değerlendirilir. // Menusuz Custom wizard'da ne ListForm ne de menu kaydi olustugu icin // idempotency okuma permission'i uzerinden degerlendirilir. - var alreadySeeded = seedFile.Wizard.ComponentKind == WizardComponentKindEnum.Custom + var alreadySeeded = isCustomComponent ? seedFile.Wizard.CreateMenu - ? await _repoMenu.AnyAsync(a => a.Code == ResolveMenuCode(seedFile.Wizard)) - : await _repoPerm.AnyAsync(a => a.Name == ResolveMenuCode(seedFile.Wizard)) + ? await _repoMenu.AnyAsync(a => a.Code == seedFile.Wizard.ResolveMenuCode()) + : await _repoPerm.AnyAsync(a => a.Name == seedFile.Wizard.ResolveMenuCode()) : await _repoListForm.AnyAsync(a => a.ListFormCode == seedFile.Wizard.ListFormCode); if (alreadySeeded) @@ -149,23 +168,10 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency private async Task ApplyWizardSeedAsync(WizardSeedFileDto seedFile) { var input = seedFile.Wizard; - var isDeleted = seedFile.IsDeletedField; - var isCreated = seedFile.IsCreatedField; - input.SubForms ??= new List(); - input.Widgets ??= new List(); - input.WorkflowDto ??= new WorkflowDto(); - input.WorkflowDto.Criteria ??= []; - EnsureUniqueWorkflowCriteriaTitles(input.WorkflowDto.Criteria); - var workflow = input.WorkflowDto; + input.Groups ??= []; - var wizardName = input.WizardName.Trim(); - var code = string.IsNullOrWhiteSpace(input.MenuCode) - ? WizardConsts.WizardKey(wizardName) - : input.MenuCode.Trim(); - var listFormCode = string.IsNullOrWhiteSpace(input.ListFormCode) - ? code - : input.ListFormCode.Trim(); - NormalizeWorkflowCriteriaIds(listFormCode, workflow.Criteria); + var code = input.ResolveMenuCode(); + var listFormCode = input.ResolveListFormCode(); var titleLangKey = $"{listFormCode}.Title"; var nameLangKey = code; var descLangKey = $"{listFormCode}.Desc"; @@ -344,20 +350,7 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency }, autoSave: true); } - // EditingFormJson - var editingFormDtos = input.Groups - .Select((g, gi) => new EditingFormDto - { - Order = gi + 1, - Caption = g.Caption, - ColCount = g.ColCount, - ColSpan = g.ColCount, - ItemType = "group" - }) - .Where((_, index) => input.Groups[index].Items.Any(i => i.IncludeInEditingForm && i.FieldName != input.KeyFieldName)) - .ToList(); - - // ListForm - varsa sil, yeniden ekle + // ListForm ve alanlari - varsa sil, seed dosyasindaki sozlesmeden yeniden kur var existingListForm = await _repoListForm.FirstOrDefaultAsync(a => a.ListFormCode == input.ListFormCode); if (existingListForm != null) { @@ -376,170 +369,26 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency await _repoListFormWorkflow.DeleteManyAsync(existingWorkflowCriteria, autoSave: true); } - // EditingForm'da required olan alanları tespit et, ValidationRuleJson eklemek için - var editingFormFieldNames = input.Groups - .SelectMany(g => g.Items) - .Where(i => i.IncludeInEditingForm && i.FieldName != input.KeyFieldName) - .Select(i => new { FieldName = i.FieldName, Isrequired = i.IsRequired }) - .ToList(); + // Ekran, seed dosyasinin tasidigi ListForm sozlesmesinden kurulur; boylece wizard + // sonrasinda tasarimci uzerinde yapilan degisiklikler de geri gelir. + var listForm = new ListForm(); + seedFile.ListForm.ApplyTo(listForm); + await _repoListForm.InsertAsync(listForm, autoSave: true); - // Heigth ve Width hesaplama - var groupLayouts = input.Groups - .Select(g => - { - var items = g.Items - .Where(i => i.IncludeInEditingForm && i.FieldName != input.KeyFieldName) - .ToList(); - - var columnCount = g.ColCount; - - if (columnCount <= 0) - columnCount = 1; - - // 3 kolonu geçmesin - columnCount = Math.Min(columnCount, WizardConsts.EditFormMaxColumnCount); - - // Örneğin 4 item / 3 kolon = 2 satır - var rowCount = (int)Math.Ceiling(items.Count / (double)columnCount); - - return new - { - Group = g, - Items = items, - ColumnCount = columnCount, - RowCount = rowCount - }; - }) - .ToList(); - - // Form genelinde kullanılacak kolon sayısı - var formColumnCount = groupLayouts.Any() - ? groupLayouts.Max(x => x.ColumnCount) - : 1; - - // Width hesabı - var formWidth = (WizardConsts.EditFormMaxWidth / WizardConsts.EditFormMaxColumnCount) * formColumnCount; - - // Toplam satır sayısı - var totalRowCount = groupLayouts.Sum(x => x.RowCount); - - // Height hesabı - var formHeight = WizardConsts.EditFormHeightDefault + (totalRowCount * WizardConsts.EditFormHeightByRow); - - // ListForm - await _repoListForm.InsertAsync(new ListForm + foreach (var fieldDto in seedFile.Fields) { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = WizardConsts.DefaultExportJson, - IsSubForm = false, - ShowNote = input.SubForms.Count > 0 || workflow.Criteria.Count > 0, - LayoutJson = WizardConsts.DefaultLayoutJson(input.DefaultLayout, input.Grid, input.Card, input.Pivot, input.Tree, input.Chart, input.Gantt, input.Scheduler, input.Todo), - CultureName = LanguageCodes.En, - ListFormCode = input.ListFormCode, - Name = nameLangKey, - Title = titleLangKey, - Description = descLangKey, - DataSourceCode = input.DataSourceCode, - IsTenant = input.IsTenant, - IsBranch = input.IsBranch, - IsOrganizationUnit = input.IsOrganizationUnit, - SelectCommandType = input.SelectCommandType, - SelectCommand = input.SelectCommand, - KeyFieldName = input.KeyFieldName, - KeyFieldDbSourceType = input.KeyFieldDbSourceType, - DefaultFilter = isDeleted ? WizardConsts.DefaultFilterJson : null, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = WizardConsts.DefaultFilterRowJson(), - HeaderFilterJson = WizardConsts.DefaultHeaderFilterJson(), - SearchPanelJson = WizardConsts.DefaultSearchPanelJson(), - GroupPanelJson = WizardConsts.DefaultGroupPanelJson(), - SelectionJson = WizardConsts.DefaultSelectionSingleJson(workflow.Criteria.Count > 0 ? GridOptions.SelectionModeSingle : GridOptions.SelectionModeNone), - ColumnOptionJson = WizardConsts.DefaultColumnOptionJson(), - PermissionJson = WizardConsts.DefaultPermissionJson(code), - DeleteCommand = isDeleted ? WizardConsts.DefaultDeleteCommand(input.SelectCommand) : null, - DeleteFieldsDefaultValueJson = isDeleted - ? WizardConsts.DefaultDeleteFieldsDefaultValueJson(input.KeyFieldDbSourceType) - : WizardConsts.DefaultDeleteFieldsJsonOnlyId(input.KeyFieldDbSourceType), - InsertFieldsDefaultValueJson = isCreated - ? WizardConsts.DefaultInsertFieldsDefaultValueJson(input.KeyFieldDbSourceType) - : WizardConsts.DefaultInsertFieldsJsonOnlyId(input.KeyFieldDbSourceType), - PagerOptionJson = WizardConsts.DefaultPagerOptionJson, - EditingOptionJson = WizardConsts.DefaultEditingOptionJson(titleLangKey, formWidth, formHeight, input.AllowDeleting, input.AllowAdding, input.AllowUpdating, input.ConfirmDelete, false, input.AllowDetail), - EditingFormJson = editingFormDtos.Count > 0 ? JsonSerializer.Serialize(editingFormDtos) : null, - SubFormsJson = input.SubForms.Count > 0 ? JsonSerializer.Serialize(input.SubForms) : null, - WidgetsJson = input.Widgets.Count > 0 ? JsonSerializer.Serialize(input.Widgets) : null, - WorkflowJson = HasWorkflow(workflow) ? JsonSerializer.Serialize(workflow) : null, - TreeOptionJson = (input.Tree || input.DefaultLayout == "tree") && - !string.IsNullOrEmpty(input.TreeOptionDto?.ParentIdExpr) - ? JsonSerializer.Serialize(input.TreeOptionDto) - : null, - GanttOptionJson = (input.Gantt || input.DefaultLayout == "gantt") && - !string.IsNullOrEmpty(input.GanttOptionDto?.ParentIdExpr) - ? JsonSerializer.Serialize(input.GanttOptionDto) - : null, - SchedulerOptionJson = (input.Scheduler || input.DefaultLayout == "scheduler") && - !string.IsNullOrEmpty(input.SchedulerOptionDto?.TextExpr) - ? JsonSerializer.Serialize(input.SchedulerOptionDto) - : null, - TodoOptionJson = (input.Todo || input.DefaultLayout == "todo") && - !string.IsNullOrEmpty(input.TodoOptionDto?.TitleExpr) && - !string.IsNullOrEmpty(input.TodoOptionDto?.StatusExpr) - ? JsonSerializer.Serialize(input.TodoOptionDto) - : null, - }, autoSave: true); - - // ListFormFields - var fieldOrder = 0; - var editGroupOrder = 0; - foreach (var group in input.Groups) - { - editGroupOrder++; - var editOrder = 0; - foreach (var item in group.Items) - { - fieldOrder++; - if (item.IncludeInEditingForm && item.FieldName != input.KeyFieldName) - { - editOrder++; - } - await _repoListFormField.InsertAsync(new ListFormField - { - ListFormCode = input.ListFormCode, - FieldName = item.FieldName, - CaptionName = item.CaptionName, - Visible = item.FieldName != input.KeyFieldName, - IsActive = true, - Width = 0, //Fit columns için hepsine sıfır veriyorum. - AllowSearch = true, - ListOrderNo = fieldOrder, - EditGroupOrderNo = item.IncludeInEditingForm ? editGroupOrder : null, - EditOrderNo = item.IncludeInEditingForm && item.FieldName != input.KeyFieldName - ? editOrder - : null, - EditorType2 = item.EditorType, - ColSpan = item.ColSpan, - EditorOptions = string.IsNullOrWhiteSpace(item.EditorOptions) ? null : item.EditorOptions, - EditorScript = string.IsNullOrWhiteSpace(item.EditorScript) ? null : item.EditorScript, - SourceDbType = item.DbSourceType, - CultureName = PlatformConsts.DefaultLanguage, - PermissionJson = WizardConsts.DefaultFieldPermissionJson(code), - ColumnCustomizationJson = WizardConsts.DefaultColumnCustomizationJson, - ColumnFilterJson = WizardConsts.DefaultColumnFilteringJson, - PivotSettingsJson = WizardConsts.DefaultPivotSettingsJson, - LookupJson = !string.IsNullOrWhiteSpace(item.LookupQuery) - ? WizardConsts.DefaultLookupJson(item.LookupDataSourceType, item.DisplayExpr, item.ValueExpr, item.LookupQuery) - : null, - ValidationRuleJson = editingFormFieldNames.Any(f => f.FieldName == item.FieldName && f.Isrequired) - ? WizardConsts.DefaultValidationRuleRequiredJson - : null - }, autoSave: true); - - await CreateLangKeyAsync(item.CaptionName, item.EnglishCaption, item.TurkishCaption); - } + var field = new ListFormField(); + fieldDto.ApplyTo(field); + await _repoListFormField.InsertAsync(field, autoSave: true); } - foreach (var criteria in workflow.Criteria) + // Alan basliklarinin iki dilli metinleri yalnizca wizard bolumunde tasinir. + foreach (var item in input.Groups.SelectMany(g => g.Items)) + { + await CreateLangKeyAsync(item.CaptionName, item.EnglishCaption, item.TurkishCaption); + } + + foreach (var criteria in seedFile.ListForm.WorkflowDto.Criteria) { if (string.IsNullOrWhiteSpace(criteria.Id)) { @@ -568,17 +417,6 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency } } - /// - /// Wizard'in menu kodunu, ApplyWizardSeedAsync ile ayni kurala gore cozer. - /// Custom yolunda idempotency kontrolu ListForm yerine bu kod uzerinden yapilir. - /// - private static string ResolveMenuCode(ListFormWizardDto input) - { - return string.IsNullOrWhiteSpace(input.MenuCode) - ? WizardConsts.WizardKey(input.WizardName.Trim()) - : input.MenuCode.Trim(); - } - /// /// Custom yolunda menunun acacagi rotayi normalize eder. Rota MenuUrl uzerinden /// tasinir; bos ise menu hicbir yere gitmeyecegi icin seed dosyasi hatali kabul edilir. @@ -647,119 +485,6 @@ public class WizardDataSeeder : IDataSeedContributor, ITransientDependency menuParent.ModuleId); } - private static bool HasWorkflow(WorkflowDto workflow) - { - return workflow != null && ( - !string.IsNullOrWhiteSpace(workflow.ApprovalUserFieldName) || - !string.IsNullOrWhiteSpace(workflow.ApprovalDateFieldName) || - !string.IsNullOrWhiteSpace(workflow.ApprovalStatusFieldName) || - !string.IsNullOrWhiteSpace(workflow.ApprovalDescriptionFieldName) || - workflow.Criteria.Count > 0 - ); - } - - private static void EnsureUniqueWorkflowCriteriaTitles(List criteria) - { - if (criteria == null || criteria.Count == 0) - { - return; - } - - var baseTitles = criteria - .Select(x => string.IsNullOrWhiteSpace(x.Title) ? NormalizeWorkflowTitleFallback(x.Kind) : x.Title.Trim()) - .ToList(); - var duplicateTitles = baseTitles - .GroupBy(x => x, StringComparer.OrdinalIgnoreCase) - .Where(x => x.Count() > 1) - .Select(x => x.Key) - .ToHashSet(StringComparer.OrdinalIgnoreCase); - var titleCounts = new Dictionary(StringComparer.OrdinalIgnoreCase); - var usedTitles = new HashSet(StringComparer.OrdinalIgnoreCase); - - foreach (var item in criteria) - { - var baseTitle = string.IsNullOrWhiteSpace(item.Title) ? NormalizeWorkflowTitleFallback(item.Kind) : item.Title.Trim(); - var title = baseTitle; - - if (duplicateTitles.Contains(baseTitle)) - { - titleCounts.TryGetValue(baseTitle, out var count); - count++; - titleCounts[baseTitle] = count; - title = $"{baseTitle}{count}"; - } - - if (usedTitles.Contains(title)) - { - var index = 1; - var candidate = $"{title}{index}"; - while (usedTitles.Contains(candidate)) - { - index++; - candidate = $"{title}{index}"; - } - - title = candidate; - } - - item.Title = title; - usedTitles.Add(title); - } - } - - private static string NormalizeWorkflowTitleFallback(string kind) - { - return string.IsNullOrWhiteSpace(kind) ? "Step" : kind.Trim(); - } - - private static void NormalizeWorkflowCriteriaIds(string listFormCode, List criteria) - { - if (string.IsNullOrWhiteSpace(listFormCode) || criteria == null || criteria.Count == 0) - { - return; - } - - foreach (var item in criteria) - { - item.Id = NormalizeWorkflowCriteriaId(listFormCode, item.Id); - item.ListFormCode = listFormCode; - item.NextOnStart = NormalizeWorkflowTargetId(listFormCode, item.NextOnStart); - item.NextOnTrue = NormalizeWorkflowTargetId(listFormCode, item.NextOnTrue); - item.NextOnFalse = NormalizeWorkflowTargetId(listFormCode, item.NextOnFalse); - item.NextOnApprove = NormalizeWorkflowTargetId(listFormCode, item.NextOnApprove); - item.NextOnReject = NormalizeWorkflowTargetId(listFormCode, item.NextOnReject); - - foreach (var outcome in item.CompareOutcomes ?? []) - { - outcome.TargetId = NormalizeWorkflowTargetId(listFormCode, outcome.TargetId); - } - } - } - - private static string NormalizeWorkflowTargetId(string listFormCode, string id) - { - return string.IsNullOrWhiteSpace(id) - ? string.Empty - : NormalizeWorkflowCriteriaId(listFormCode, id); - } - - private static string NormalizeWorkflowCriteriaId(string listFormCode, string id) - { - var trimmed = id?.Trim(); - if (string.IsNullOrWhiteSpace(trimmed)) - { - return string.Empty; - } - - if (trimmed.StartsWith($"{listFormCode}-", StringComparison.OrdinalIgnoreCase)) - { - return trimmed; - } - - return trimmed.StartsWith("N", StringComparison.OrdinalIgnoreCase) - ? $"{listFormCode}-{trimmed}" - : trimmed; - } private async Task CreateLangKeyAsync(string key, string textEn, string textTr) { diff --git a/api/src/Sozsoft.Platform.Domain.Shared/ListForms/IListFormArtifact.cs b/api/src/Sozsoft.Platform.Domain.Shared/ListForms/IListFormArtifact.cs new file mode 100644 index 00000000..f640690c --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain.Shared/ListForms/IListFormArtifact.cs @@ -0,0 +1,157 @@ +using System.Data; +using Sozsoft.Platform.Enums; + +namespace Sozsoft.Platform.ListForms; + +/// +/// Bir ekranin (ListForm) yazilabilir kolon sozlesmesi. ListForm entity'si bu sozlesmeyi +/// uygular; boylece ekrani DTO'dan kuran cevirici, entity'yi tanimayan katmanlarda da (wizard +/// seed dosyasini isleyen DbMigrator gibi) tek bir yerde tutulabilir. +/// +public interface IListFormArtifact +{ + string ListFormCode { get; set; } + string CultureName { get; set; } + string Name { get; set; } + string Title { get; set; } + string Description { get; set; } + string ListFormType { get; set; } + bool IsSubForm { get; set; } + string SubFormsListFormType { get; set; } + bool ShowNote { get; set; } + string SortMode { get; set; } + int PageSize { get; set; } + int? Width { get; set; } + int? Height { get; set; } + bool FullHeight { get; set; } + string UserId { get; set; } + string RoleId { get; set; } + + string DataSourceCode { get; set; } + SelectCommandTypeEnum SelectCommandType { get; set; } + string SelectCommand { get; set; } + string TableName { get; set; } + string KeyFieldName { get; set; } + DbType KeyFieldDbSourceType { get; set; } + bool IsTenant { get; set; } + bool IsBranch { get; set; } + bool IsOrganizationUnit { get; set; } + string DefaultFilter { get; set; } + + string InsertServiceAddress { get; set; } + string InsertCommand { get; set; } + string InsertBeforeCommand { get; set; } + string InsertAfterCommand { get; set; } + string UpdateServiceAddress { get; set; } + string UpdateCommand { get; set; } + string UpdateBeforeCommand { get; set; } + string UpdateAfterCommand { get; set; } + string DeleteServiceAddress { get; set; } + string DeleteCommand { get; set; } + string DeleteBeforeCommand { get; set; } + string DeleteAfterCommand { get; set; } + + string SelectFieldsDefaultValueJson { get; set; } + string InsertFieldsDefaultValueJson { get; set; } + string UpdateFieldsDefaultValueJson { get; set; } + string DeleteFieldsDefaultValueJson { get; set; } + string FormFieldsDefaultValueJson { get; set; } + + string LayoutJson { get; set; } + string FilterRowJson { get; set; } + string RowJson { get; set; } + string HeaderFilterJson { get; set; } + string FilterPanelJson { get; set; } + string SearchPanelJson { get; set; } + string GroupPanelJson { get; set; } + string SelectionJson { get; set; } + string ColumnOptionJson { get; set; } + string PivotOptionJson { get; set; } + string TreeOptionJson { get; set; } + string GanttOptionJson { get; set; } + string SchedulerOptionJson { get; set; } + string TodoOptionJson { get; set; } + string PagerOptionJson { get; set; } + string EditingOptionJson { get; set; } + string EditingFormJson { get; set; } + string PermissionJson { get; set; } + string CommandColumnJson { get; set; } + string StateStoringJson { get; set; } + string CustomJsSourcesJson { get; set; } + string CustomStyleSourcesJson { get; set; } + string SubFormsJson { get; set; } + string WidgetsJson { get; set; } + string WorkflowJson { get; set; } + string ExtraFilterJson { get; set; } + + string CommonJson { get; set; } + string AdaptiveLayoutJson { get; set; } + string AnimationJson { get; set; } + string AnnotationsJson { get; set; } + string ArgumentAxisJson { get; set; } + string CommonAnnotationsSettingsJson { get; set; } + string CommonAxisSettingsJson { get; set; } + string CommonPaneSettingsJson { get; set; } + string CommonSeriesSettingsJson { get; set; } + string CrosshairJson { get; set; } + string ExportJson { get; set; } + string LegendJson { get; set; } + string MarginJson { get; set; } + string PanesJson { get; set; } + string ScrollBarJson { get; set; } + string SeriesJson { get; set; } + string SizeJson { get; set; } + string TitleJson { get; set; } + string TooltipJson { get; set; } + string ValueAxisJson { get; set; } + string ZoomAndPanJson { get; set; } +} + +/// +/// Bir ekran alaninin (ListFormField) yazilabilir kolon sozlesmesi; +/// ile ayni amaca hizmet eder. +/// +public interface IListFormFieldArtifact +{ + string ListFormCode { get; set; } + string UserId { get; set; } + string RoleId { get; set; } + string CultureName { get; set; } + string FieldName { get; set; } + string CaptionName { get; set; } + string PlaceHolder { get; set; } + string BandName { get; set; } + bool? Visible { get; set; } + bool? IsActive { get; set; } + int? Width { get; set; } + int? ListOrderNo { get; set; } + DbType SourceDbType { get; set; } + int? SortIndex { get; set; } + string SortDirection { get; set; } + bool? AllowSearch { get; set; } + bool? AllowEditing { get; set; } + bool? AllowAdding { get; set; } + string Alignment { get; set; } + string Format { get; set; } + int? EditOrderNo { get; set; } + int? EditGroupOrderNo { get; set; } + string EditorType2 { get; set; } + int? ColSpan { get; set; } + string EditorOptions { get; set; } + string EditorScript { get; set; } + string ColumnCssClass { get; set; } + string ColumnCssValue { get; set; } + + string ColumnFilterJson { get; set; } + string ColumnHeaderJson { get; set; } + string GroupingJson { get; set; } + string ColumnCustomizationJson { get; set; } + string TotalSummaryJson { get; set; } + string GroupSummaryJson { get; set; } + string JoinTableJson { get; set; } + string LookupJson { get; set; } + string ValidationRuleJson { get; set; } + string ColumnStylingJson { get; set; } + string PermissionJson { get; set; } + string PivotSettingsJson { get; set; } +} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListForm.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListForm.cs index af8011c8..6c05065e 100644 --- a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListForm.cs +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListForm.cs @@ -1,11 +1,12 @@ using System; using System.Data; using Sozsoft.Platform.Enums; +using Sozsoft.Platform.ListForms; using Volo.Abp.Domain.Entities; namespace Sozsoft.Platform.Entities; -public class ListForm : Entity +public class ListForm : Entity, IListFormArtifact { public string ListFormCode { get; set; } // Guid olan ID'den ayri olarak, bir listform'un kullanici, rol ve dil bazindaki ozellestirmelerinin ana kayit ile baglantisini kurmak icin public string CultureName { get; set; } // Bu tanim hangi dil icin "en", "tr" diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs index b56fd526..efce05f0 100644 --- a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/ListForm/ListFormField.cs @@ -1,11 +1,12 @@ using System; using System.ComponentModel.DataAnnotations.Schema; using System.Data; +using Sozsoft.Platform.ListForms; using Volo.Abp.Domain.Entities; namespace Sozsoft.Platform.Entities; -public class ListFormField : Entity +public class ListFormField : Entity, IListFormFieldArtifact { public string ListFormCode { get; set; }// Sozsoft.LF.SATIS-323 public string UserId { get; set; } // External kullanici id (orn: ali.akman. ihtiyaca gore guid veya int de olabilir) diff --git a/claude.md b/claude.md index d8fc7f11..c90c5170 100644 --- a/claude.md +++ b/claude.md @@ -156,6 +156,30 @@ Bir çelişki varsa sıra: `ai.instructions.md` → `dotnet.instructions.md` → - **`scriptRecipes.ts` (TS) ↔ `Domain.Shared/Editors/*.cs`** — biri değişirse diğeri de değişir. İkisinin çıktısı **birebir aynı** olmak zorundadır; aksi hâlde seeder ile basılan script dialogda "elle düzenlenmiş" sayılır ve kural editörü kapanır. +- **Wizard seed dosyasında tekrar yok** → `Wizard` bölümü yalnızca ekrandan üretilemeyen bilgileri + taşır. `ListForm`/`Fields` içinde karşılığı olan her alan (veri kaynağı, select, anahtar alan, + kırılım/düzen/düzenleme bayrakları, görünüm option blokları, alt form, widget, iş akışı, alan + tanımları) dosyaya yazılmadan çıkarılır (`WizardSeedFileDto.ToSeedJson`) ve okurken geri + doldurulur (`FromSeedJson`). Wizard'a yeni bir alan eklerken karşılığı ListForm'da varsa listeye ekle. + Dosyada kalan wizard alanları üç başlık altında toplanır — `Menu`, `Language`, `Groups` — ve + `ListFormCode` → `WizardCode`, `MenuParentModuleId` → `ModuleId` adıyla yazılır; varsayılanı olan + alanlar (`CreateMenu: true`, boş `DataSourceConnectionString`) hiç yazılmaz. Bu yalnızca dosya biçimidir; C# + sözleşmesi düzdür, dönüşüm `WizardSeedFileDto.ToSeedJson` / `FromSeedJson` içindedir. **Wizard + seed dosyası her zaman bu iki metotla okunup yazılır**; düz `JsonSerializer` çağrısı bloklu + bölümleri sessizce düşürür. +- **Wizard ile üretilen ekran** → seed dosyası (`configs/seeds/{kapsam}/wizard/{WizardName}.json`) + wizard cevaplarının yanında ekranın `GridOptionsEditDto` (`ListForm`) ve alanların + `ColumnFormatEditDto` (`Fields`) sözleşmesini taşır. ListForm detayından yapılan her kayıt + (`ListFormsAppService`, `ListFormFieldsAppService`, `ListFormJsonRowAppService`) bu bölümleri + ve `Wizard` bölümündeki karşılıklarını geri yazar (`WizardSeedSynchronizer`). Bu üçlüden birine + yeni bir kayıt yolu eklenirse senkronizasyon çağrısı da eklenir; yoksa dosya bayatlar. +- **Wizard girdisinden ekran üretimi** → tek kaynak `ListFormWizardDto.BuildListForm/BuildFields`, + entity'ye yazma `GridOptionsEditDto.ApplyTo` / `ColumnFormatEditDto.ApplyTo`. Deploy, seeder ve + senkronizasyon aynı metotları çağırır; ikinci bir üretim kopyası yazma. +- **Katman sınırı (DDD)** → `DbMigrator` Application'a referans vermez. Seeder ile AppService'in + paylaştığı dönüşüm `Application.Contracts`'ta DTO metodudur; entity'ye yazma Domain.Shared'deki + `IListFormArtifact` / `IListFormFieldArtifact` sözleşmeleri üzerinden yapılır. + Ayrıntı: `dotnet.instructions.md` §5. - **Yeni bir yetki** → `PlatformConsts.AppCodes` + `PermissionsData.json` + (UI'da kullanılacaksa) `permission.constant.ts` + `LanguagesData.json`. - **Yeni bir dil anahtarı** → `LanguagesData.json`; eklemeden önce anahtarın zaten var olup diff --git a/configs/seeds/host/crud/Sal_D_Appoval.json b/configs/seeds/host/crud/Sal_D_Appoval.json new file mode 100644 index 00000000..686d09b0 --- /dev/null +++ b/configs/seeds/host/crud/Sal_D_Appoval.json @@ -0,0 +1,36 @@ +{ + "EntityName": "Sal_D_Appoval", + "GeneratedAt": "2026-09-02T08:17:19.9301653Z", + "Endpoints": [ + { + "Method": "POST", + "Path": "/api/app/crudendpoint/Sal_D_Appoval", + "OperationType": "Create", + "IsActive": true + }, + { + "Method": "DELETE", + "Path": "/api/app/crudendpoint/Sal_D_Appoval/{id}", + "OperationType": "Delete", + "IsActive": true + }, + { + "Method": "GET", + "Path": "/api/app/crudendpoint/Sal_D_Appoval/{id}", + "OperationType": "GetById", + "IsActive": true + }, + { + "Method": "GET", + "Path": "/api/app/crudendpoint/Sal_D_Appoval", + "OperationType": "GetList", + "IsActive": true + }, + { + "Method": "PUT", + "Path": "/api/app/crudendpoint/Sal_D_Appoval/{id}", + "OperationType": "Update", + "IsActive": true + } + ] +} \ No newline at end of file diff --git a/configs/seeds/host/sql/object/Sal_D_Appoval.sql b/configs/seeds/host/sql/object/Sal_D_Appoval.sql new file mode 100644 index 00000000..da0914fb --- /dev/null +++ b/configs/seeds/host/sql/object/Sal_D_Appoval.sql @@ -0,0 +1,17 @@ +IF OBJECT_ID(N'[dbo].[Sal_D_Appoval]', 'U') IS NULL +BEGIN + CREATE TABLE [dbo].[Sal_D_Appoval] + ( + [Id] uniqueidentifier NOT NULL, + [UserName] nvarchar(512) NULL, + [Status] nvarchar(100) NULL, + [Date] datetime NULL, + [Description] nvarchar(400) NULL, + [Text] nvarchar(100) NULL, + CONSTRAINT [PK_Sal_D_Appoval] PRIMARY KEY NONCLUSTERED + ( + [Id] ASC + )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] + ) ON [PRIMARY] +END +GO \ No newline at end of file diff --git a/configs/seeds/host/wizard/20260901090000_TaskTimesheets.json b/configs/seeds/host/wizard/20260901090000_TaskTimesheets.json deleted file mode 100644 index f50b5b66..00000000 --- a/configs/seeds/host/wizard/20260901090000_TaskTimesheets.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "Wizard": { - "ComponentKind": 0, - "WizardName": "TaskTimesheets", - "ListFormCode": "App.Prj.TaskTimesheets", - "MenuCode": "App.Prj.TaskTimesheets", - "MenuOrder": 1, - "CreateMenu": false, - "MenuUrl": "/admin/list/App.Prj.TaskTimesheets", - "CustomComponentName": "", - "IsTenant": true, - "IsBranch": false, - "IsOrganizationUnit": false, - "AllowAdding": true, - "AllowUpdating": true, - "AllowDeleting": true, - "AllowDetail": false, - "ConfirmDelete": true, - "DefaultLayout": "grid", - "Grid": true, - "Card": false, - "Pivot": false, - "Chart": false, - "Tree": false, - "Gantt": false, - "Scheduler": false, - "Todo": false, - "LanguageTextMenuEn": "Timesheets", - "LanguageTextMenuTr": "Çalışma Çizelgeleri", - "LanguageTextTitleEn": "Timesheets", - "LanguageTextTitleTr": "Çalışma Çizelgeleri", - "LanguageTextDescEn": "Task timesheets", - "LanguageTextDescTr": "Görev çalışma çizelgeleri", - "LanguageTextMenuParentEn": "Project", - "LanguageTextMenuParentTr": "Proje", - "PermissionGroupName": "App.Prj", - "PermissionGroupDisplayNameEn": "Project", - "PermissionGroupDisplayNameTr": "Proje", - "MenuParentCode": "App.Prj", - "MenuParentModuleId": "Prj", - "MenuParentIcon": "FcTimeline", - "MenuIcon": "FcTodoList", - "DataSourceCode": "Default", - "DataSourceConnectionString": "", - "SelectCommandType": 1, - "SelectCommand": "Prj_T_Timesheet", - "KeyFieldName": "Id", - "KeyFieldDbSourceType": 9, - "TreeOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": null, - "StartExpr": null, - "EndExpr": null, - "ProgressExpr": null - }, - "GanttOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": "", - "ScaleType": "weeks", - "StartExpr": "", - "EndExpr": "", - "ProgressExpr": "", - "AllowEditing": false, - "AllowTaskAdding": false, - "AllowTaskUpdating": false, - "AllowTaskResourceUpdating": false, - "AllowTaskDeleting": false, - "AllowDependencyAdding": false, - "AllowDependencyDeleting": false, - "AllowResourceAdding": false, - "AllowResourceUpdating": false, - "AllowResourceDeleting": false - }, - "SchedulerOptionDto": { - "TextExpr": "", - "UserNameExpr": null, - "DescriptionExpr": null, - "StartDateExpr": "", - "EndDateExpr": "", - "AllDayExpr": "", - "RecurrenceRuleExpr": "", - "RecurrenceExceptionExpr": "", - "StartDayHour": 8, - "EndDayHour": 20, - "DefaultView": "week", - "ShowAllDayPanel": true, - "CellDuration": 30, - "FirstDayOfWeek": 1, - "CrossScrollingEnabled": false, - "AllowResizing": false, - "AllowDragging": false, - "AllowDeleting": false, - "AllowEditing": false, - "AllowAdding": false - }, - "TodoOptionDto": { - "TitleExpr": "", - "StatusExpr": "", - "DescriptionExpr": "", - "DueDateExpr": "", - "TagExpr": "", - "AssigneeExpr": "", - "PriorityExpr": "", - "CompletedExpr": "", - "OrderExpr": "", - "StatusOrder": "", - "AllowDragging": true - }, - "WorkflowDto": { - "ApprovalUserFieldName": "", - "ApprovalDateFieldName": "", - "ApprovalStatusFieldName": "", - "ApprovalDescriptionFieldName": "", - "ApprovalIsFilterUserName": false, - "ApprovalIsResetWorkflow": false, - "Criteria": [] - }, - "Groups": [ - { - "Caption": "Genel", - "ColCount": 2, - "Items": [ - { - "FieldName": "Id", - "CaptionName": "App.Listform.ListformField.Id", - "TurkishCaption": "Kimlik", - "EnglishCaption": "Id", - "EditorType": "dxTextBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": false, - "ColSpan": 1 - }, - { - "FieldName": "TaskId", - "CaptionName": "App.Listform.ListformField.TaskId", - "TurkishCaption": "Görev", - "EnglishCaption": "Task", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "WorkDate", - "CaptionName": "App.Listform.ListformField.WorkDate", - "TurkishCaption": "Tarih", - "EnglishCaption": "Date", - "EditorType": "dxDateBox", - "DbSourceType": 6, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"type\": \"date\", \"displayFormat\": \"dd.MM.yyyy\", \"useMaskBehavior\": true}" - }, - { - "FieldName": "UserId", - "CaptionName": "App.Listform.ListformField.UserId", - "TurkishCaption": "Kullanıcı", - "EnglishCaption": "User", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], UserName AS [Name] FROM dbo.AbpUsers WHERE IsDeleted = 0 ORDER BY UserName", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "Hours", - "CaptionName": "App.Listform.ListformField.Hours", - "TurkishCaption": "Süre (saat)", - "EnglishCaption": "Hours", - "EditorType": "dxNumberBox", - "DbSourceType": 7, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"format\": {\"type\": \"fixedPoint\", \"precision\": 2}}" - }, - { - "FieldName": "Description", - "CaptionName": "App.Listform.ListformField.Description", - "TurkishCaption": "Açıklama", - "EnglishCaption": "Description", - "EditorType": "dxTextArea", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 2, - "EditorOptions": "{\"autoResizeEnabled\": true, \"maxLength\": 500}" - } - ] - } - ], - "SubForms": [], - "Widgets": [] - }, - "IsDeletedField": true, - "IsCreatedField": true, - "InsertedRecords": { - "LanguageKeys": [ - "App.Prj.TaskTimesheets", - "App.Prj" - ], - "PermissionGroupNames": [ - "App.Prj" - ], - "PermissionNames": [ - "App.Prj.TaskTimesheets", - "App.Prj.TaskTimesheets.Create", - "App.Prj.TaskTimesheets.Update", - "App.Prj.TaskTimesheets.Delete", - "App.Prj.TaskTimesheets.Export", - "App.Prj.TaskTimesheets.Import", - "App.Prj.TaskTimesheets.Note" - ], - "MenuCodes": [], - "DataSourceCodes": [] - } -} diff --git a/configs/seeds/host/wizard/20260901090100_TaskSubTasks.json b/configs/seeds/host/wizard/20260901090100_TaskSubTasks.json deleted file mode 100644 index e2d7444b..00000000 --- a/configs/seeds/host/wizard/20260901090100_TaskSubTasks.json +++ /dev/null @@ -1,265 +0,0 @@ -{ - "Wizard": { - "ComponentKind": 0, - "WizardName": "TaskSubTasks", - "ListFormCode": "App.Prj.TaskSubTasks", - "MenuCode": "App.Prj.TaskSubTasks", - "MenuOrder": 1, - "CreateMenu": false, - "MenuUrl": "/admin/list/App.Prj.TaskSubTasks", - "CustomComponentName": "", - "IsTenant": true, - "IsBranch": false, - "IsOrganizationUnit": false, - "AllowAdding": true, - "AllowUpdating": true, - "AllowDeleting": true, - "AllowDetail": false, - "ConfirmDelete": true, - "DefaultLayout": "grid", - "Grid": true, - "Card": false, - "Pivot": false, - "Chart": false, - "Tree": false, - "Gantt": false, - "Scheduler": false, - "Todo": false, - "LanguageTextMenuEn": "Sub Tasks", - "LanguageTextMenuTr": "Alt Görevler", - "LanguageTextTitleEn": "Sub Tasks", - "LanguageTextTitleTr": "Alt Görevler", - "LanguageTextDescEn": "Sub task list", - "LanguageTextDescTr": "Alt görev listesi", - "LanguageTextMenuParentEn": "Project", - "LanguageTextMenuParentTr": "Proje", - "PermissionGroupName": "App.Prj", - "PermissionGroupDisplayNameEn": "Project", - "PermissionGroupDisplayNameTr": "Proje", - "MenuParentCode": "App.Prj", - "MenuParentModuleId": "Prj", - "MenuParentIcon": "FcTimeline", - "MenuIcon": "FcTodoList", - "DataSourceCode": "Default", - "DataSourceConnectionString": "", - "SelectCommandType": 1, - "SelectCommand": "Prj_T_Task", - "KeyFieldName": "Id", - "KeyFieldDbSourceType": 9, - "TreeOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": null, - "StartExpr": null, - "EndExpr": null, - "ProgressExpr": null - }, - "GanttOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": "", - "ScaleType": "weeks", - "StartExpr": "", - "EndExpr": "", - "ProgressExpr": "", - "AllowEditing": false, - "AllowTaskAdding": false, - "AllowTaskUpdating": false, - "AllowTaskResourceUpdating": false, - "AllowTaskDeleting": false, - "AllowDependencyAdding": false, - "AllowDependencyDeleting": false, - "AllowResourceAdding": false, - "AllowResourceUpdating": false, - "AllowResourceDeleting": false - }, - "SchedulerOptionDto": { - "TextExpr": "", - "UserNameExpr": null, - "DescriptionExpr": null, - "StartDateExpr": "", - "EndDateExpr": "", - "AllDayExpr": "", - "RecurrenceRuleExpr": "", - "RecurrenceExceptionExpr": "", - "StartDayHour": 8, - "EndDayHour": 20, - "DefaultView": "week", - "ShowAllDayPanel": true, - "CellDuration": 30, - "FirstDayOfWeek": 1, - "CrossScrollingEnabled": false, - "AllowResizing": false, - "AllowDragging": false, - "AllowDeleting": false, - "AllowEditing": false, - "AllowAdding": false - }, - "TodoOptionDto": { - "TitleExpr": "", - "StatusExpr": "", - "DescriptionExpr": "", - "DueDateExpr": "", - "TagExpr": "", - "AssigneeExpr": "", - "PriorityExpr": "", - "CompletedExpr": "", - "OrderExpr": "", - "StatusOrder": "", - "AllowDragging": true - }, - "WorkflowDto": { - "ApprovalUserFieldName": "", - "ApprovalDateFieldName": "", - "ApprovalStatusFieldName": "", - "ApprovalDescriptionFieldName": "", - "ApprovalIsFilterUserName": false, - "ApprovalIsResetWorkflow": false, - "Criteria": [] - }, - "Groups": [ - { - "Caption": "Genel", - "ColCount": 2, - "Items": [ - { - "FieldName": "Id", - "CaptionName": "App.Listform.ListformField.Id", - "TurkishCaption": "Kimlik", - "EnglishCaption": "Id", - "EditorType": "dxTextBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": false, - "ColSpan": 1 - }, - { - "FieldName": "Name", - "CaptionName": "App.Listform.ListformField.Name", - "TurkishCaption": "Görev Adı", - "EnglishCaption": "Task Name", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 2, - "EditorOptions": "{\"maxLength\": 300, \"showClearButton\": true}" - }, - { - "FieldName": "ParentTaskId", - "CaptionName": "App.Listform.ListformField.ParentTaskId", - "TurkishCaption": "Üst Görev", - "EnglishCaption": "Parent Task", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "Status", - "CaptionName": "App.Listform.ListformField.Status", - "TurkishCaption": "Durum", - "EnglishCaption": "Status", - "EditorType": "dxSelectBox", - "DbSourceType": 16, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "LookupDataSourceType": 1, - "LookupQuery": "[{\"key\": \"Taslak\", \"name\": \"Taslak\"}, {\"key\": \"Devam Ediyor\", \"name\": \"Devam Ediyor\"}, {\"key\": \"Tamamlandı\", \"name\": \"Tamamlandı\"}, {\"key\": \"İptal\", \"name\": \"İptal\"}]", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "AssigneeIds", - "CaptionName": "App.Listform.ListformField.AssigneeIds", - "TurkishCaption": "Atananlar", - "EnglishCaption": "Assignees", - "EditorType": "dxTagBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"showSelectionControls\": true, \"maxDisplayedTags\": 3, \"searchEnabled\": true, \"multiline\": true}", - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], UserName AS [Name] FROM dbo.AbpUsers WHERE IsDeleted = 0 ORDER BY UserName", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "ProgressPercent", - "CaptionName": "App.Listform.ListformField.ProgressPercent", - "TurkishCaption": "İlerleme (%)", - "EnglishCaption": "Progress (%)", - "EditorType": "dxNumberBox", - "DbSourceType": 7, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"format\": {\"type\": \"fixedPoint\", \"precision\": 2}, \"min\": 0, \"max\": 100}" - }, - { - "FieldName": "PlannedStartDate", - "CaptionName": "App.Listform.ListformField.PlannedStartDate", - "TurkishCaption": "Planlanan Başlangıç", - "EnglishCaption": "Planned Start", - "EditorType": "dxDateBox", - "DbSourceType": 6, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"type\": \"datetime\", \"displayFormat\": \"dd.MM.yyyy HH:mm\", \"useMaskBehavior\": true}" - }, - { - "FieldName": "PlannedEndDate", - "CaptionName": "App.Listform.ListformField.PlannedEndDate", - "TurkishCaption": "Planlanan Bitiş", - "EnglishCaption": "Planned End", - "EditorType": "dxDateBox", - "DbSourceType": 6, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"type\": \"datetime\", \"displayFormat\": \"dd.MM.yyyy HH:mm\", \"useMaskBehavior\": true}" - } - ] - } - ], - "SubForms": [], - "Widgets": [] - }, - "IsDeletedField": true, - "IsCreatedField": true, - "InsertedRecords": { - "LanguageKeys": [ - "App.Prj.TaskSubTasks" - ], - "PermissionGroupNames": [], - "PermissionNames": [ - "App.Prj.TaskSubTasks", - "App.Prj.TaskSubTasks.Create", - "App.Prj.TaskSubTasks.Update", - "App.Prj.TaskSubTasks.Delete", - "App.Prj.TaskSubTasks.Export", - "App.Prj.TaskSubTasks.Import", - "App.Prj.TaskSubTasks.Note" - ], - "MenuCodes": [], - "DataSourceCodes": [] - } -} diff --git a/configs/seeds/host/wizard/20260901090200_TaskDependencies.json b/configs/seeds/host/wizard/20260901090200_TaskDependencies.json deleted file mode 100644 index 2bf4987d..00000000 --- a/configs/seeds/host/wizard/20260901090200_TaskDependencies.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "Wizard": { - "ComponentKind": 0, - "WizardName": "TaskDependencies", - "ListFormCode": "App.Prj.TaskDependencies", - "MenuCode": "App.Prj.TaskDependencies", - "MenuOrder": 1, - "CreateMenu": false, - "MenuUrl": "/admin/list/App.Prj.TaskDependencies", - "CustomComponentName": "", - "IsTenant": true, - "IsBranch": false, - "IsOrganizationUnit": false, - "AllowAdding": true, - "AllowUpdating": true, - "AllowDeleting": true, - "AllowDetail": false, - "ConfirmDelete": true, - "DefaultLayout": "grid", - "Grid": true, - "Card": false, - "Pivot": false, - "Chart": false, - "Tree": false, - "Gantt": false, - "Scheduler": false, - "Todo": false, - "LanguageTextMenuEn": "Blocking Tasks", - "LanguageTextMenuTr": "Beklenen Görevler", - "LanguageTextTitleEn": "Blocking Tasks", - "LanguageTextTitleTr": "Beklenen Görevler", - "LanguageTextDescEn": "Tasks this task waits for", - "LanguageTextDescTr": "Görevin beklediği görevler", - "LanguageTextMenuParentEn": "Project", - "LanguageTextMenuParentTr": "Proje", - "PermissionGroupName": "App.Prj", - "PermissionGroupDisplayNameEn": "Project", - "PermissionGroupDisplayNameTr": "Proje", - "MenuParentCode": "App.Prj", - "MenuParentModuleId": "Prj", - "MenuParentIcon": "FcTimeline", - "MenuIcon": "FcTodoList", - "DataSourceCode": "Default", - "DataSourceConnectionString": "", - "SelectCommandType": 1, - "SelectCommand": "Prj_T_TaskDependency", - "KeyFieldName": "Id", - "KeyFieldDbSourceType": 9, - "TreeOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": null, - "StartExpr": null, - "EndExpr": null, - "ProgressExpr": null - }, - "GanttOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": "", - "ScaleType": "weeks", - "StartExpr": "", - "EndExpr": "", - "ProgressExpr": "", - "AllowEditing": false, - "AllowTaskAdding": false, - "AllowTaskUpdating": false, - "AllowTaskResourceUpdating": false, - "AllowTaskDeleting": false, - "AllowDependencyAdding": false, - "AllowDependencyDeleting": false, - "AllowResourceAdding": false, - "AllowResourceUpdating": false, - "AllowResourceDeleting": false - }, - "SchedulerOptionDto": { - "TextExpr": "", - "UserNameExpr": null, - "DescriptionExpr": null, - "StartDateExpr": "", - "EndDateExpr": "", - "AllDayExpr": "", - "RecurrenceRuleExpr": "", - "RecurrenceExceptionExpr": "", - "StartDayHour": 8, - "EndDayHour": 20, - "DefaultView": "week", - "ShowAllDayPanel": true, - "CellDuration": 30, - "FirstDayOfWeek": 1, - "CrossScrollingEnabled": false, - "AllowResizing": false, - "AllowDragging": false, - "AllowDeleting": false, - "AllowEditing": false, - "AllowAdding": false - }, - "TodoOptionDto": { - "TitleExpr": "", - "StatusExpr": "", - "DescriptionExpr": "", - "DueDateExpr": "", - "TagExpr": "", - "AssigneeExpr": "", - "PriorityExpr": "", - "CompletedExpr": "", - "OrderExpr": "", - "StatusOrder": "", - "AllowDragging": true - }, - "WorkflowDto": { - "ApprovalUserFieldName": "", - "ApprovalDateFieldName": "", - "ApprovalStatusFieldName": "", - "ApprovalDescriptionFieldName": "", - "ApprovalIsFilterUserName": false, - "ApprovalIsResetWorkflow": false, - "Criteria": [] - }, - "Groups": [ - { - "Caption": "Genel", - "ColCount": 2, - "Items": [ - { - "FieldName": "Id", - "CaptionName": "App.Listform.ListformField.Id", - "TurkishCaption": "Kimlik", - "EnglishCaption": "Id", - "EditorType": "dxTextBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": false, - "ColSpan": 1 - }, - { - "FieldName": "TaskId", - "CaptionName": "App.Listform.ListformField.TaskId", - "TurkishCaption": "Görev", - "EnglishCaption": "Task", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "DependsOnTaskId", - "CaptionName": "App.Listform.ListformField.DependsOnTaskId", - "TurkishCaption": "Beklenen Görev", - "EnglishCaption": "Blocking Task", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "Note", - "CaptionName": "App.Listform.ListformField.Note", - "TurkishCaption": "Not", - "EnglishCaption": "Note", - "EditorType": "dxTextArea", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 2, - "EditorOptions": "{\"autoResizeEnabled\": true, \"maxLength\": 300}" - } - ] - } - ], - "SubForms": [], - "Widgets": [] - }, - "IsDeletedField": true, - "IsCreatedField": true, - "InsertedRecords": { - "LanguageKeys": [ - "App.Prj.TaskDependencies" - ], - "PermissionGroupNames": [], - "PermissionNames": [ - "App.Prj.TaskDependencies", - "App.Prj.TaskDependencies.Create", - "App.Prj.TaskDependencies.Update", - "App.Prj.TaskDependencies.Delete", - "App.Prj.TaskDependencies.Export", - "App.Prj.TaskDependencies.Import", - "App.Prj.TaskDependencies.Note" - ], - "MenuCodes": [], - "DataSourceCodes": [] - } -} diff --git a/configs/seeds/host/wizard/20260901090300_Tags.json b/configs/seeds/host/wizard/20260901090300_Tags.json deleted file mode 100644 index 9b7a3f58..00000000 --- a/configs/seeds/host/wizard/20260901090300_Tags.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "Wizard": { - "ComponentKind": 0, - "WizardName": "Tags", - "ListFormCode": "App.Prj.Tags", - "MenuCode": "App.Prj.Tags", - "MenuOrder": 2, - "CreateMenu": true, - "MenuUrl": "/admin/list/App.Prj.Tags", - "CustomComponentName": "", - "IsTenant": true, - "IsBranch": false, - "IsOrganizationUnit": false, - "AllowAdding": true, - "AllowUpdating": true, - "AllowDeleting": true, - "AllowDetail": false, - "ConfirmDelete": true, - "DefaultLayout": "grid", - "Grid": true, - "Card": false, - "Pivot": false, - "Chart": false, - "Tree": false, - "Gantt": false, - "Scheduler": false, - "Todo": false, - "LanguageTextMenuEn": "Tags", - "LanguageTextMenuTr": "Etiketler", - "LanguageTextTitleEn": "Tags", - "LanguageTextTitleTr": "Etiketler", - "LanguageTextDescEn": "Task tags", - "LanguageTextDescTr": "Görev etiketleri", - "LanguageTextMenuParentEn": "Project", - "LanguageTextMenuParentTr": "Proje", - "PermissionGroupName": "App.Prj", - "PermissionGroupDisplayNameEn": "Project", - "PermissionGroupDisplayNameTr": "Proje", - "MenuParentCode": "App.Prj", - "MenuParentModuleId": "Prj", - "MenuParentIcon": "FcTimeline", - "MenuIcon": "FcRules", - "DataSourceCode": "Default", - "DataSourceConnectionString": "", - "SelectCommandType": 1, - "SelectCommand": "Prj_T_Tag", - "KeyFieldName": "Id", - "KeyFieldDbSourceType": 9, - "TreeOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": null, - "StartExpr": null, - "EndExpr": null, - "ProgressExpr": null - }, - "GanttOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": "", - "ScaleType": "weeks", - "StartExpr": "", - "EndExpr": "", - "ProgressExpr": "", - "AllowEditing": false, - "AllowTaskAdding": false, - "AllowTaskUpdating": false, - "AllowTaskResourceUpdating": false, - "AllowTaskDeleting": false, - "AllowDependencyAdding": false, - "AllowDependencyDeleting": false, - "AllowResourceAdding": false, - "AllowResourceUpdating": false, - "AllowResourceDeleting": false - }, - "SchedulerOptionDto": { - "TextExpr": "", - "UserNameExpr": null, - "DescriptionExpr": null, - "StartDateExpr": "", - "EndDateExpr": "", - "AllDayExpr": "", - "RecurrenceRuleExpr": "", - "RecurrenceExceptionExpr": "", - "StartDayHour": 8, - "EndDayHour": 20, - "DefaultView": "week", - "ShowAllDayPanel": true, - "CellDuration": 30, - "FirstDayOfWeek": 1, - "CrossScrollingEnabled": false, - "AllowResizing": false, - "AllowDragging": false, - "AllowDeleting": false, - "AllowEditing": false, - "AllowAdding": false - }, - "TodoOptionDto": { - "TitleExpr": "", - "StatusExpr": "", - "DescriptionExpr": "", - "DueDateExpr": "", - "TagExpr": "", - "AssigneeExpr": "", - "PriorityExpr": "", - "CompletedExpr": "", - "OrderExpr": "", - "StatusOrder": "", - "AllowDragging": true - }, - "WorkflowDto": { - "ApprovalUserFieldName": "", - "ApprovalDateFieldName": "", - "ApprovalStatusFieldName": "", - "ApprovalDescriptionFieldName": "", - "ApprovalIsFilterUserName": false, - "ApprovalIsResetWorkflow": false, - "Criteria": [] - }, - "Groups": [ - { - "Caption": "Genel", - "ColCount": 2, - "Items": [ - { - "FieldName": "Id", - "CaptionName": "App.Listform.ListformField.Id", - "TurkishCaption": "Kimlik", - "EnglishCaption": "Id", - "EditorType": "dxTextBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": false, - "ColSpan": 1 - }, - { - "FieldName": "Name", - "CaptionName": "App.Listform.ListformField.Name", - "TurkishCaption": "Etiket Adı", - "EnglishCaption": "Tag Name", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"maxLength\": 200, \"showClearButton\": true}" - }, - { - "FieldName": "ColorCode", - "CaptionName": "App.Listform.ListformField.ColorCode", - "TurkishCaption": "Renk", - "EnglishCaption": "Color", - "EditorType": "dxColorBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1 - } - ] - } - ], - "SubForms": [], - "Widgets": [] - }, - "IsDeletedField": true, - "IsCreatedField": true, - "InsertedRecords": { - "LanguageKeys": [ - "App.Prj.Tags" - ], - "PermissionGroupNames": [], - "PermissionNames": [ - "App.Prj.Tags", - "App.Prj.Tags.Create", - "App.Prj.Tags.Update", - "App.Prj.Tags.Delete", - "App.Prj.Tags.Export", - "App.Prj.Tags.Import", - "App.Prj.Tags.Note" - ], - "MenuCodes": [ - "App.Prj", - "App.Prj.Tags" - ], - "DataSourceCodes": [] - } -} diff --git a/configs/seeds/host/wizard/20260901090400_Milestones.json b/configs/seeds/host/wizard/20260901090400_Milestones.json deleted file mode 100644 index 17820cd5..00000000 --- a/configs/seeds/host/wizard/20260901090400_Milestones.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "Wizard": { - "ComponentKind": 0, - "WizardName": "Milestones", - "ListFormCode": "App.Prj.Milestones", - "MenuCode": "App.Prj.Milestones", - "MenuOrder": 3, - "CreateMenu": true, - "MenuUrl": "/admin/list/App.Prj.Milestones", - "CustomComponentName": "", - "IsTenant": true, - "IsBranch": false, - "IsOrganizationUnit": false, - "AllowAdding": true, - "AllowUpdating": true, - "AllowDeleting": true, - "AllowDetail": false, - "ConfirmDelete": true, - "DefaultLayout": "grid", - "Grid": true, - "Card": false, - "Pivot": false, - "Chart": false, - "Tree": false, - "Gantt": false, - "Scheduler": false, - "Todo": false, - "LanguageTextMenuEn": "Milestones", - "LanguageTextMenuTr": "Dönüm Noktaları", - "LanguageTextTitleEn": "Milestones", - "LanguageTextTitleTr": "Dönüm Noktaları", - "LanguageTextDescEn": "Project milestones", - "LanguageTextDescTr": "Proje dönüm noktaları", - "LanguageTextMenuParentEn": "Project", - "LanguageTextMenuParentTr": "Proje", - "PermissionGroupName": "App.Prj", - "PermissionGroupDisplayNameEn": "Project", - "PermissionGroupDisplayNameTr": "Proje", - "MenuParentCode": "App.Prj", - "MenuParentModuleId": "Prj", - "MenuParentIcon": "FcTimeline", - "MenuIcon": "FcCalendar", - "DataSourceCode": "Default", - "DataSourceConnectionString": "", - "SelectCommandType": 1, - "SelectCommand": "Prj_T_Milestone", - "KeyFieldName": "Id", - "KeyFieldDbSourceType": 9, - "TreeOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": null, - "StartExpr": null, - "EndExpr": null, - "ProgressExpr": null - }, - "GanttOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": "", - "ScaleType": "weeks", - "StartExpr": "", - "EndExpr": "", - "ProgressExpr": "", - "AllowEditing": false, - "AllowTaskAdding": false, - "AllowTaskUpdating": false, - "AllowTaskResourceUpdating": false, - "AllowTaskDeleting": false, - "AllowDependencyAdding": false, - "AllowDependencyDeleting": false, - "AllowResourceAdding": false, - "AllowResourceUpdating": false, - "AllowResourceDeleting": false - }, - "SchedulerOptionDto": { - "TextExpr": "", - "UserNameExpr": null, - "DescriptionExpr": null, - "StartDateExpr": "", - "EndDateExpr": "", - "AllDayExpr": "", - "RecurrenceRuleExpr": "", - "RecurrenceExceptionExpr": "", - "StartDayHour": 8, - "EndDayHour": 20, - "DefaultView": "week", - "ShowAllDayPanel": true, - "CellDuration": 30, - "FirstDayOfWeek": 1, - "CrossScrollingEnabled": false, - "AllowResizing": false, - "AllowDragging": false, - "AllowDeleting": false, - "AllowEditing": false, - "AllowAdding": false - }, - "TodoOptionDto": { - "TitleExpr": "", - "StatusExpr": "", - "DescriptionExpr": "", - "DueDateExpr": "", - "TagExpr": "", - "AssigneeExpr": "", - "PriorityExpr": "", - "CompletedExpr": "", - "OrderExpr": "", - "StatusOrder": "", - "AllowDragging": true - }, - "WorkflowDto": { - "ApprovalUserFieldName": "", - "ApprovalDateFieldName": "", - "ApprovalStatusFieldName": "", - "ApprovalDescriptionFieldName": "", - "ApprovalIsFilterUserName": false, - "ApprovalIsResetWorkflow": false, - "Criteria": [] - }, - "Groups": [ - { - "Caption": "Genel", - "ColCount": 2, - "Items": [ - { - "FieldName": "Id", - "CaptionName": "App.Listform.ListformField.Id", - "TurkishCaption": "Kimlik", - "EnglishCaption": "Id", - "EditorType": "dxTextBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": false, - "ColSpan": 1 - }, - { - "FieldName": "Name", - "CaptionName": "App.Listform.ListformField.Name", - "TurkishCaption": "Dönüm Noktası", - "EnglishCaption": "Milestone", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 2, - "EditorOptions": "{\"maxLength\": 300, \"showClearButton\": true}" - }, - { - "FieldName": "TargetDate", - "CaptionName": "App.Listform.ListformField.TargetDate", - "TurkishCaption": "Hedef Tarih", - "EnglishCaption": "Target Date", - "EditorType": "dxDateBox", - "DbSourceType": 6, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"type\": \"date\", \"displayFormat\": \"dd.MM.yyyy\", \"useMaskBehavior\": true}" - }, - { - "FieldName": "IsCompleted", - "CaptionName": "App.Listform.ListformField.IsCompleted", - "TurkishCaption": "Tamamlandı", - "EnglishCaption": "Completed", - "EditorType": "dxCheckBox", - "DbSourceType": 3, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1 - } - ] - } - ], - "SubForms": [], - "Widgets": [] - }, - "IsDeletedField": true, - "IsCreatedField": true, - "InsertedRecords": { - "LanguageKeys": [ - "App.Prj.Milestones" - ], - "PermissionGroupNames": [], - "PermissionNames": [ - "App.Prj.Milestones", - "App.Prj.Milestones.Create", - "App.Prj.Milestones.Update", - "App.Prj.Milestones.Delete", - "App.Prj.Milestones.Export", - "App.Prj.Milestones.Import", - "App.Prj.Milestones.Note" - ], - "MenuCodes": [ - "App.Prj.Milestones" - ], - "DataSourceCodes": [] - } -} diff --git a/configs/seeds/host/wizard/20260901090500_Customers.json b/configs/seeds/host/wizard/20260901090500_Customers.json deleted file mode 100644 index 8422845c..00000000 --- a/configs/seeds/host/wizard/20260901090500_Customers.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "Wizard": { - "ComponentKind": 0, - "WizardName": "Customers", - "ListFormCode": "App.Prj.Customers", - "MenuCode": "App.Prj.Customers", - "MenuOrder": 4, - "CreateMenu": true, - "MenuUrl": "/admin/list/App.Prj.Customers", - "CustomComponentName": "", - "IsTenant": true, - "IsBranch": false, - "IsOrganizationUnit": false, - "AllowAdding": true, - "AllowUpdating": true, - "AllowDeleting": true, - "AllowDetail": false, - "ConfirmDelete": true, - "DefaultLayout": "grid", - "Grid": true, - "Card": false, - "Pivot": false, - "Chart": false, - "Tree": false, - "Gantt": false, - "Scheduler": false, - "Todo": false, - "LanguageTextMenuEn": "Customers", - "LanguageTextMenuTr": "Müşteriler", - "LanguageTextTitleEn": "Customers", - "LanguageTextTitleTr": "Müşteriler", - "LanguageTextDescEn": "Customers linked to tasks", - "LanguageTextDescTr": "Görevlerin bağlı olduğu müşteriler", - "LanguageTextMenuParentEn": "Project", - "LanguageTextMenuParentTr": "Proje", - "PermissionGroupName": "App.Prj", - "PermissionGroupDisplayNameEn": "Project", - "PermissionGroupDisplayNameTr": "Proje", - "MenuParentCode": "App.Prj", - "MenuParentModuleId": "Prj", - "MenuParentIcon": "FcTimeline", - "MenuIcon": "FcBusinessContact", - "DataSourceCode": "Default", - "DataSourceConnectionString": "", - "SelectCommandType": 1, - "SelectCommand": "Prj_T_Customer", - "KeyFieldName": "Id", - "KeyFieldDbSourceType": 9, - "TreeOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": null, - "StartExpr": null, - "EndExpr": null, - "ProgressExpr": null - }, - "GanttOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": "", - "ScaleType": "weeks", - "StartExpr": "", - "EndExpr": "", - "ProgressExpr": "", - "AllowEditing": false, - "AllowTaskAdding": false, - "AllowTaskUpdating": false, - "AllowTaskResourceUpdating": false, - "AllowTaskDeleting": false, - "AllowDependencyAdding": false, - "AllowDependencyDeleting": false, - "AllowResourceAdding": false, - "AllowResourceUpdating": false, - "AllowResourceDeleting": false - }, - "SchedulerOptionDto": { - "TextExpr": "", - "UserNameExpr": null, - "DescriptionExpr": null, - "StartDateExpr": "", - "EndDateExpr": "", - "AllDayExpr": "", - "RecurrenceRuleExpr": "", - "RecurrenceExceptionExpr": "", - "StartDayHour": 8, - "EndDayHour": 20, - "DefaultView": "week", - "ShowAllDayPanel": true, - "CellDuration": 30, - "FirstDayOfWeek": 1, - "CrossScrollingEnabled": false, - "AllowResizing": false, - "AllowDragging": false, - "AllowDeleting": false, - "AllowEditing": false, - "AllowAdding": false - }, - "TodoOptionDto": { - "TitleExpr": "", - "StatusExpr": "", - "DescriptionExpr": "", - "DueDateExpr": "", - "TagExpr": "", - "AssigneeExpr": "", - "PriorityExpr": "", - "CompletedExpr": "", - "OrderExpr": "", - "StatusOrder": "", - "AllowDragging": true - }, - "WorkflowDto": { - "ApprovalUserFieldName": "", - "ApprovalDateFieldName": "", - "ApprovalStatusFieldName": "", - "ApprovalDescriptionFieldName": "", - "ApprovalIsFilterUserName": false, - "ApprovalIsResetWorkflow": false, - "Criteria": [] - }, - "Groups": [ - { - "Caption": "Genel", - "ColCount": 2, - "Items": [ - { - "FieldName": "Id", - "CaptionName": "App.Listform.ListformField.Id", - "TurkishCaption": "Kimlik", - "EnglishCaption": "Id", - "EditorType": "dxTextBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": false, - "ColSpan": 1 - }, - { - "FieldName": "Name", - "CaptionName": "App.Listform.ListformField.Name", - "TurkishCaption": "Müşteri", - "EnglishCaption": "Customer", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 2, - "EditorOptions": "{\"maxLength\": 300, \"showClearButton\": true}" - }, - { - "FieldName": "ContactName", - "CaptionName": "App.Listform.ListformField.ContactName", - "TurkishCaption": "İlgili Kişi", - "EnglishCaption": "Contact", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"maxLength\": 200}" - }, - { - "FieldName": "Email", - "CaptionName": "App.Listform.ListformField.Email", - "TurkishCaption": "E-posta", - "EnglishCaption": "Email", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"maxLength\": 200, \"mode\": \"email\"}" - }, - { - "FieldName": "Phone", - "CaptionName": "App.Listform.ListformField.Phone", - "TurkishCaption": "Telefon", - "EnglishCaption": "Phone", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"maxLength\": 50}" - } - ] - } - ], - "SubForms": [], - "Widgets": [] - }, - "IsDeletedField": true, - "IsCreatedField": true, - "InsertedRecords": { - "LanguageKeys": [ - "App.Prj.Customers" - ], - "PermissionGroupNames": [], - "PermissionNames": [ - "App.Prj.Customers", - "App.Prj.Customers.Create", - "App.Prj.Customers.Update", - "App.Prj.Customers.Delete", - "App.Prj.Customers.Export", - "App.Prj.Customers.Import", - "App.Prj.Customers.Note" - ], - "MenuCodes": [ - "App.Prj.Customers" - ], - "DataSourceCodes": [] - } -} diff --git a/configs/seeds/host/wizard/20260901090600_Tasks.json b/configs/seeds/host/wizard/20260901090600_Tasks.json deleted file mode 100644 index c1ae59a8..00000000 --- a/configs/seeds/host/wizard/20260901090600_Tasks.json +++ /dev/null @@ -1,421 +0,0 @@ -{ - "Wizard": { - "ComponentKind": 0, - "WizardName": "Tasks", - "ListFormCode": "App.Prj.Tasks", - "MenuCode": "App.Prj.Tasks", - "MenuOrder": 1, - "CreateMenu": true, - "MenuUrl": "/admin/list/App.Prj.Tasks", - "CustomComponentName": "", - "IsTenant": true, - "IsBranch": false, - "IsOrganizationUnit": false, - "AllowAdding": true, - "AllowUpdating": true, - "AllowDeleting": true, - "AllowDetail": true, - "ConfirmDelete": true, - "DefaultLayout": "grid", - "Grid": true, - "Card": true, - "Pivot": false, - "Chart": false, - "Tree": false, - "Gantt": true, - "Scheduler": false, - "Todo": true, - "LanguageTextMenuEn": "Tasks", - "LanguageTextMenuTr": "Görevler", - "LanguageTextTitleEn": "Tasks", - "LanguageTextTitleTr": "Görevler", - "LanguageTextDescEn": "Task card and tracking", - "LanguageTextDescTr": "Görev kartı ve takibi", - "LanguageTextMenuParentEn": "Project", - "LanguageTextMenuParentTr": "Proje", - "PermissionGroupName": "App.Prj", - "PermissionGroupDisplayNameEn": "Project", - "PermissionGroupDisplayNameTr": "Proje", - "MenuParentCode": "App.Prj", - "MenuParentModuleId": "Prj", - "MenuParentIcon": "FcTimeline", - "MenuIcon": "FcTodoList", - "DataSourceCode": "Default", - "DataSourceConnectionString": "", - "SelectCommandType": 1, - "SelectCommand": "Prj_T_Task", - "KeyFieldName": "Id", - "KeyFieldDbSourceType": 9, - "TreeOptionDto": { - "KeyExpr": "", - "ParentIdExpr": "", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": null, - "StartExpr": null, - "EndExpr": null, - "ProgressExpr": null - }, - "GanttOptionDto": { - "KeyExpr": "Id", - "ParentIdExpr": "ParentTaskId", - "HasItemsExpr": "", - "RootValue": "", - "ExpandedRowKeys": [], - "AutoExpandAll": false, - "RecursiveSelection": false, - "TitleExpr": "Name", - "ScaleType": "weeks", - "StartExpr": "PlannedStartDate", - "EndExpr": "PlannedEndDate", - "ProgressExpr": "ProgressPercent", - "AllowEditing": false, - "AllowTaskAdding": false, - "AllowTaskUpdating": false, - "AllowTaskResourceUpdating": false, - "AllowTaskDeleting": false, - "AllowDependencyAdding": false, - "AllowDependencyDeleting": false, - "AllowResourceAdding": false, - "AllowResourceUpdating": false, - "AllowResourceDeleting": false - }, - "SchedulerOptionDto": { - "TextExpr": "", - "UserNameExpr": null, - "DescriptionExpr": null, - "StartDateExpr": "", - "EndDateExpr": "", - "AllDayExpr": "", - "RecurrenceRuleExpr": "", - "RecurrenceExceptionExpr": "", - "StartDayHour": 8, - "EndDayHour": 20, - "DefaultView": "week", - "ShowAllDayPanel": true, - "CellDuration": 30, - "FirstDayOfWeek": 1, - "CrossScrollingEnabled": false, - "AllowResizing": false, - "AllowDragging": false, - "AllowDeleting": false, - "AllowEditing": false, - "AllowAdding": false - }, - "TodoOptionDto": { - "TitleExpr": "Name", - "StatusExpr": "Status", - "DescriptionExpr": "Description", - "DueDateExpr": "PlannedEndDate", - "TagExpr": "TagIds", - "AssigneeExpr": "AssigneeIds", - "PriorityExpr": "", - "CompletedExpr": "", - "OrderExpr": "", - "StatusOrder": "Taslak, Devam Ediyor, Tamamlandı, İptal", - "AllowDragging": true - }, - "WorkflowDto": { - "ApprovalUserFieldName": "", - "ApprovalDateFieldName": "", - "ApprovalStatusFieldName": "", - "ApprovalDescriptionFieldName": "", - "ApprovalIsFilterUserName": false, - "ApprovalIsResetWorkflow": false, - "Criteria": [] - }, - "Groups": [ - { - "Caption": "Genel", - "ColCount": 2, - "Items": [ - { - "FieldName": "Id", - "CaptionName": "App.Listform.ListformField.Id", - "TurkishCaption": "Kimlik", - "EnglishCaption": "Id", - "EditorType": "dxTextBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": false, - "ColSpan": 1 - }, - { - "FieldName": "Name", - "CaptionName": "App.Listform.ListformField.Name", - "TurkishCaption": "Görev Adı", - "EnglishCaption": "Task Name", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 2, - "EditorOptions": "{\"maxLength\": 300, \"showClearButton\": true}" - }, - { - "FieldName": "MilestoneId", - "CaptionName": "App.Listform.ListformField.MilestoneId", - "TurkishCaption": "Dönüm Noktası", - "EnglishCaption": "Milestone", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"searchEnabled\": true, \"showClearButton\": true}", - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Milestone WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "Status", - "CaptionName": "App.Listform.ListformField.Status", - "TurkishCaption": "Durum", - "EnglishCaption": "Status", - "EditorType": "dxSelectBox", - "DbSourceType": 16, - "IsRequired": true, - "IncludeInEditingForm": true, - "ColSpan": 1, - "LookupDataSourceType": 1, - "LookupQuery": "[{\"key\": \"Taslak\", \"name\": \"Taslak\"}, {\"key\": \"Devam Ediyor\", \"name\": \"Devam Ediyor\"}, {\"key\": \"Tamamlandı\", \"name\": \"Tamamlandı\"}, {\"key\": \"İptal\", \"name\": \"İptal\"}]", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "AssigneeIds", - "CaptionName": "App.Listform.ListformField.AssigneeIds", - "TurkishCaption": "Atananlar", - "EnglishCaption": "Assignees", - "EditorType": "dxTagBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"showSelectionControls\": true, \"maxDisplayedTags\": 3, \"searchEnabled\": true, \"multiline\": true}", - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], UserName AS [Name] FROM dbo.AbpUsers WHERE IsDeleted = 0 ORDER BY UserName", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "TagIds", - "CaptionName": "App.Listform.ListformField.TagIds", - "TurkishCaption": "Etiketler", - "EnglishCaption": "Tags", - "EditorType": "dxTagBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"showSelectionControls\": true, \"maxDisplayedTags\": 3, \"searchEnabled\": true, \"multiline\": true}", - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Tag WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "CustomerId", - "CaptionName": "App.Listform.ListformField.CustomerId", - "TurkishCaption": "Müşteri", - "EnglishCaption": "Customer", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"searchEnabled\": true, \"showClearButton\": true}", - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Customer WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "CustomerContact", - "CaptionName": "App.Listform.ListformField.CustomerContact", - "TurkishCaption": "İlgili Kişi", - "EnglishCaption": "Contact", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"maxLength\": 200}" - }, - { - "FieldName": "PlannedHours", - "CaptionName": "App.Listform.ListformField.PlannedHours", - "TurkishCaption": "İlk Planlanan Saatler", - "EnglishCaption": "Planned Hours", - "EditorType": "dxNumberBox", - "DbSourceType": 7, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"format\": {\"type\": \"fixedPoint\", \"precision\": 2}}" - }, - { - "FieldName": "ProgressPercent", - "CaptionName": "App.Listform.ListformField.ProgressPercent", - "TurkishCaption": "İlerleme (%)", - "EnglishCaption": "Progress (%)", - "EditorType": "dxNumberBox", - "DbSourceType": 7, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"format\": {\"type\": \"fixedPoint\", \"precision\": 2}, \"min\": 0, \"max\": 100}" - }, - { - "FieldName": "SalesOrderLine", - "CaptionName": "App.Listform.ListformField.SalesOrderLine", - "TurkishCaption": "Satış Sipariş Satırı", - "EnglishCaption": "Sales Order Line", - "EditorType": "dxTextBox", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 2, - "EditorOptions": "{\"maxLength\": 300}" - }, - { - "FieldName": "PlannedStartDate", - "CaptionName": "App.Listform.ListformField.PlannedStartDate", - "TurkishCaption": "Planlanan Tarih", - "EnglishCaption": "Planned Date", - "EditorType": "dxDateBox", - "DbSourceType": 6, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"type\": \"datetime\", \"displayFormat\": \"dd.MM.yyyy HH:mm\", \"useMaskBehavior\": true}" - }, - { - "FieldName": "PlannedEndDate", - "CaptionName": "App.Listform.ListformField.PlannedEndDate", - "TurkishCaption": "Planlanan Bitiş", - "EnglishCaption": "Planned End", - "EditorType": "dxDateBox", - "DbSourceType": 6, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"type\": \"datetime\", \"displayFormat\": \"dd.MM.yyyy HH:mm\", \"useMaskBehavior\": true}" - }, - { - "FieldName": "ParentTaskId", - "CaptionName": "App.Listform.ListformField.ParentTaskId", - "TurkishCaption": "Üst Görev", - "EnglishCaption": "Parent Task", - "EditorType": "dxSelectBox", - "DbSourceType": 9, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"searchEnabled\": true, \"showClearButton\": true}", - "LookupDataSourceType": 2, - "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name", - "ValueExpr": "Key", - "DisplayExpr": "Name" - }, - { - "FieldName": "IsFavorite", - "CaptionName": "App.Listform.ListformField.IsFavorite", - "TurkishCaption": "Favori", - "EnglishCaption": "Favorite", - "EditorType": "dxCheckBox", - "DbSourceType": 3, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1 - } - ] - }, - { - "Caption": "Açıklama", - "ColCount": 1, - "Items": [ - { - "FieldName": "Description", - "CaptionName": "App.Listform.ListformField.Description", - "TurkishCaption": "Açıklama", - "EnglishCaption": "Description", - "EditorType": "dxHtmlEditor", - "DbSourceType": 16, - "IsRequired": false, - "IncludeInEditingForm": true, - "ColSpan": 1, - "EditorOptions": "{\"valueType\": \"html\", \"height\": 320, \"toolbar\": {\"multiline\": false, \"items\": [\"undo\", \"redo\", \"separator\", \"bold\", \"italic\", \"strike\", \"underline\", \"separator\", \"alignLeft\", \"alignCenter\", \"alignRight\", \"alignJustify\", \"separator\", \"orderedList\", \"bulletList\", \"separator\", \"header\", \"separator\", \"color\", \"background\", \"separator\", \"link\", \"image\", \"separator\", \"clear\", \"codeBlock\", \"blockquote\"]}}" - } - ] - } - ], - "SubForms": [ - { - "TabType": "List", - "TabTitle": "App.Prj.TaskTimesheets", - "Code": "App.Prj.TaskTimesheets", - "IsRefresh": true, - "Relation": [ - { - "ParentFieldName": "Id", - "ChildFieldName": "TaskId", - "DbType": 9 - } - ] - }, - { - "TabType": "List", - "TabTitle": "App.Prj.TaskSubTasks", - "Code": "App.Prj.TaskSubTasks", - "IsRefresh": true, - "Relation": [ - { - "ParentFieldName": "Id", - "ChildFieldName": "ParentTaskId", - "DbType": 9 - } - ] - }, - { - "TabType": "List", - "TabTitle": "App.Prj.TaskDependencies", - "Code": "App.Prj.TaskDependencies", - "IsRefresh": true, - "Relation": [ - { - "ParentFieldName": "Id", - "ChildFieldName": "TaskId", - "DbType": 9 - } - ] - } - ], - "Widgets": [] - }, - "IsDeletedField": true, - "IsCreatedField": true, - "InsertedRecords": { - "LanguageKeys": [ - "App.Prj.Tasks" - ], - "PermissionGroupNames": [], - "PermissionNames": [ - "App.Prj.Tasks", - "App.Prj.Tasks.Create", - "App.Prj.Tasks.Update", - "App.Prj.Tasks.Delete", - "App.Prj.Tasks.Export", - "App.Prj.Tasks.Import", - "App.Prj.Tasks.Note" - ], - "MenuCodes": [ - "App.Prj.Tasks" - ], - "DataSourceCodes": [] - } -} diff --git a/configs/seeds/host/wizard/Approval.json b/configs/seeds/host/wizard/Approval.json new file mode 100644 index 00000000..8dd608af --- /dev/null +++ b/configs/seeds/host/wizard/Approval.json @@ -0,0 +1,1497 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "Approval", + "WizardCode": "App.Wizard.Approval", + "SeededAt": "2026-09-02T11:24:22.3331299\u002B03:00", + "CustomComponentName": null, + "PermissionGroupName": "App.Wizard.Sales", + "PermissionGroupDisplayNameEn": "Sales", + "PermissionGroupDisplayNameTr": "Sat\u0131\u015F", + "ModuleId": "Sal", + "Menu": { + "MenuCode": "App.Wizard.Approval", + "MenuOrder": 1, + "MenuUrl": "/admin/list/App.Wizard.Approval", + "MenuIcon": "FcBadDecision", + "MenuParentCode": "App.Wizard.Sales", + "MenuParentIcon": "FcAssistant" + }, + "Language": { + "LanguageTextMenuEn": "Approval", + "LanguageTextMenuTr": "Approval", + "LanguageTextTitleEn": "Approval", + "LanguageTextTitleTr": "Approval", + "LanguageTextDescEn": "Approval", + "LanguageTextDescTr": "Approval", + "LanguageTextMenuParentEn": "Sales", + "LanguageTextMenuParentTr": "Sat\u0131\u015F" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Id", + "EnglishCaption": "Id" + }, + { + "FieldName": "UserName", + "CaptionName": "App.Listform.ListformField.UserName", + "TurkishCaption": "User Name", + "EnglishCaption": "User Name" + }, + { + "FieldName": "Status", + "CaptionName": "App.Listform.ListformField.Status", + "TurkishCaption": "Status", + "EnglishCaption": "Status" + }, + { + "FieldName": "Date", + "CaptionName": "App.Listform.ListformField.Date", + "TurkishCaption": "Date", + "EnglishCaption": "Date" + }, + { + "FieldName": "Description", + "CaptionName": "App.Listform.ListformField.Description", + "TurkishCaption": "Description", + "EnglishCaption": "Description" + }, + { + "FieldName": "Text", + "CaptionName": "App.Listform.ListformField.Text", + "TurkishCaption": "Text", + "EnglishCaption": "Text" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": null, + "SelectCommand": "Sal_D_Appoval", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": null, + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Wizard.Approval", + "CultureName": "en", + "Name": "App.Wizard.Approval", + "KeyFieldName": "Id", + "Title": "App.Wizard.Approval.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Wizard.Approval.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "single", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "ScaleType": "weeks", + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null, + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": null, + "StatusExpr": null, + "DescriptionExpr": null, + "DueDateExpr": null, + "TagExpr": null, + "AssigneeExpr": null, + "PriorityExpr": null, + "CompletedExpr": null, + "OrderExpr": null, + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": null, + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": false, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Wizard.Approval.Title", + "ShowTitle": true, + "Width": 400, + "Height": 200, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "", + "ColCount": 1, + "ColSpan": 1 + } + ], + "PermissionDto": { + "C": "App.Wizard.Approval.Create", + "R": "App.Wizard.Approval", + "U": "App.Wizard.Approval.Update", + "D": "App.Wizard.Approval.Delete", + "E": "App.Wizard.Approval.Export", + "I": "App.Wizard.Approval.Import", + "N": "App.Wizard.Approval.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Wizard.Approval", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": false, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": true, + "SubFormsListFormType": "Form", + "SubFormsDto": [], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": true, + "Pivot": true, + "Chart": true, + "Tree": false, + "Gantt": false, + "Scheduler": false, + "Todo": false, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": "UserName", + "ApprovalDateFieldName": "Date", + "ApprovalStatusFieldName": "Status", + "ApprovalDescriptionFieldName": "Description", + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [ + { + "ListFormCode": "App.Wizard.Approval", + "Kind": "Start", + "Title": "App.WorkflowKind.Start1", + "CompareColumn": "Price", + "CompareOperator": "\u003E", + "CompareValue": 5000, + "Approver": "", + "NextOnStart": "App.Wizard.Approval-N002", + "NextOnTrue": "", + "NextOnFalse": "", + "NextOnApprove": "", + "NextOnReject": "", + "PositionX": 48, + "PositionY": 63, + "CompareOutcomes": [], + "Id": "App.Wizard.Approval-N001" + }, + { + "ListFormCode": "App.Wizard.Approval", + "Kind": "Approval", + "Title": "App.WorkflowKind.Approval1", + "CompareColumn": "Price", + "CompareOperator": "\u003E", + "CompareValue": 5000, + "Approver": "system@sozsoft.com", + "NextOnStart": "", + "NextOnTrue": "", + "NextOnFalse": "", + "NextOnApprove": "App.Wizard.Approval-N003", + "NextOnReject": "App.Wizard.Approval-N004", + "PositionX": 394, + "PositionY": 50, + "CompareOutcomes": [], + "Id": "App.Wizard.Approval-N002" + }, + { + "ListFormCode": "App.Wizard.Approval", + "Kind": "Inform", + "Title": "App.WorkflowKind.Inform1", + "CompareColumn": "Price", + "CompareOperator": "\u003E", + "CompareValue": 5000, + "Approver": "system@sozsoft.com", + "NextOnStart": "App.Wizard.Approval-N005", + "NextOnTrue": "", + "NextOnFalse": "", + "NextOnApprove": "", + "NextOnReject": "", + "PositionX": 422, + "PositionY": 238, + "CompareOutcomes": [], + "Id": "App.Wizard.Approval-N003" + }, + { + "ListFormCode": "App.Wizard.Approval", + "Kind": "End", + "Title": "Red", + "CompareColumn": "Price", + "CompareOperator": "\u003E", + "CompareValue": 5000, + "Approver": "", + "NextOnStart": "", + "NextOnTrue": "", + "NextOnFalse": "", + "NextOnApprove": "", + "NextOnReject": "", + "PositionX": 878, + "PositionY": 52, + "CompareOutcomes": [], + "Id": "App.Wizard.Approval-N004" + }, + { + "ListFormCode": "App.Wizard.Approval", + "Kind": "End", + "Title": "Onay", + "CompareColumn": "Price", + "CompareOperator": "\u003E", + "CompareValue": 5000, + "Approver": "", + "NextOnStart": "", + "NextOnTrue": "", + "NextOnFalse": "", + "NextOnApprove": "", + "NextOnReject": "", + "PositionX": 877, + "PositionY": 269, + "CompareOutcomes": [], + "Id": "App.Wizard.Approval-N005" + } + ] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Wizard.Approval", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Wizard.Approval.Create", + "R": "App.Wizard.Approval", + "U": "App.Wizard.Approval.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": "left", + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Wizard.Approval", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "UserName", + "CaptionName": "App.Listform.ListformField.UserName", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Wizard.Approval.Create", + "R": "App.Wizard.Approval", + "U": "App.Wizard.Approval.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": "left", + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Wizard.Approval", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Status", + "CaptionName": "App.Listform.ListformField.Status", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Wizard.Approval.Create", + "R": "App.Wizard.Approval", + "U": "App.Wizard.Approval.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": "left", + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Wizard.Approval", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Date", + "CaptionName": "App.Listform.ListformField.Date", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 4, + "SourceDbType": 6, + "CultureName": "en", + "DataType": "datetime", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Wizard.Approval.Create", + "R": "App.Wizard.Approval", + "U": "App.Wizard.Approval.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": "left", + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxDateBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Wizard.Approval", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Description", + "CaptionName": "App.Listform.ListformField.Description", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 5, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Wizard.Approval.Create", + "R": "App.Wizard.Approval", + "U": "App.Wizard.Approval.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": "left", + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Wizard.Approval", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Text", + "CaptionName": "App.Listform.ListformField.Text", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 6, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Wizard.Approval.Create", + "R": "App.Wizard.Approval", + "U": "App.Wizard.Approval.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": "left", + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": false, + "IsCreatedField": false, + "InsertedRecords": { + "LanguageKeys": [ + "App.Wizard.Approval", + "App.Wizard.Approval.Title", + "App.Wizard.Approval.Desc", + "App.Listform.ListformField.UserName" + ], + "PermissionGroupNames": [], + "PermissionNames": [ + "App.Wizard.Approval", + "App.Wizard.Approval.Create", + "App.Wizard.Approval.Update", + "App.Wizard.Approval.Delete", + "App.Wizard.Approval.Export", + "App.Wizard.Approval.Import", + "App.Wizard.Approval.Note" + ], + "MenuCodes": [ + "App.Wizard.Approval" + ], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/configs/seeds/host/wizard/Customers.json b/configs/seeds/host/wizard/Customers.json new file mode 100644 index 00000000..0057dda7 --- /dev/null +++ b/configs/seeds/host/wizard/Customers.json @@ -0,0 +1,1311 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "Customers", + "WizardCode": "App.Prj.Customers", + "SeededAt": "2026-09-01T09:05:00", + "CustomComponentName": "", + "PermissionGroupName": "App.Prj", + "PermissionGroupDisplayNameEn": "Project", + "PermissionGroupDisplayNameTr": "Proje", + "ModuleId": "Prj", + "Menu": { + "MenuCode": "App.Prj.Customers", + "MenuOrder": 4, + "MenuUrl": "/admin/list/App.Prj.Customers", + "MenuIcon": "FcBusinessContact", + "MenuParentCode": "App.Prj", + "MenuParentIcon": "FcTimeline" + }, + "Language": { + "LanguageTextMenuEn": "Customers", + "LanguageTextMenuTr": "M\u00FC\u015Fteriler", + "LanguageTextTitleEn": "Customers", + "LanguageTextTitleTr": "M\u00FC\u015Fteriler", + "LanguageTextDescEn": "Customers linked to tasks", + "LanguageTextDescTr": "G\u00F6revlerin ba\u011Fl\u0131 oldu\u011Fu m\u00FC\u015Fteriler", + "LanguageTextMenuParentEn": "Project", + "LanguageTextMenuParentTr": "Proje" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Kimlik", + "EnglishCaption": "Id" + }, + { + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "TurkishCaption": "M\u00FC\u015Fteri", + "EnglishCaption": "Customer" + }, + { + "FieldName": "ContactName", + "CaptionName": "App.Listform.ListformField.ContactName", + "TurkishCaption": "\u0130lgili Ki\u015Fi", + "EnglishCaption": "Contact" + }, + { + "FieldName": "Email", + "CaptionName": "App.Listform.ListformField.Email", + "TurkishCaption": "E-posta", + "EnglishCaption": "Email" + }, + { + "FieldName": "Phone", + "CaptionName": "App.Listform.ListformField.Phone", + "TurkishCaption": "Telefon", + "EnglishCaption": "Phone" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": "\u0022IsDeleted\u0022 = \u0027false\u0027", + "SelectCommand": "Prj_T_Customer", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": "UPDATE \u0022Prj_T_Customer\u0022 SET \u0022DeleterId\u0022=@DeleterId, \u0022DeletionTime\u0022=CURRENT_TIMESTAMP, \u0022IsDeleted\u0022=\u0027true\u0027 WHERE \u0022Id\u0022 IN @Id", + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "DeleterId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "CreationTime", + "FieldDbType": 6, + "Value": "@NOW", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "CreatorId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "IsDeleted", + "FieldDbType": 3, + "Value": "false", + "CustomValueType": 1, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Prj.Customers", + "CultureName": "en", + "Name": "App.Prj.Customers", + "KeyFieldName": "Id", + "Title": "App.Prj.Customers.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Prj.Customers.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "none", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "ScaleType": "weeks", + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null, + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": null, + "StatusExpr": null, + "DescriptionExpr": null, + "DueDateExpr": null, + "TagExpr": null, + "AssigneeExpr": null, + "PriorityExpr": null, + "CompletedExpr": null, + "OrderExpr": null, + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": null, + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": false, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Prj.Customers.Title", + "ShowTitle": true, + "Width": 800, + "Height": 275, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "Genel", + "ColCount": 2, + "ColSpan": 2 + } + ], + "PermissionDto": { + "C": "App.Prj.Customers.Create", + "R": "App.Prj.Customers", + "U": "App.Prj.Customers.Update", + "D": "App.Prj.Customers.Delete", + "E": "App.Prj.Customers.Export", + "I": "App.Prj.Customers.Import", + "N": "App.Prj.Customers.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Prj.Customers", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": true, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": false, + "SubFormsListFormType": "Form", + "SubFormsDto": [], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": false, + "Pivot": false, + "Chart": false, + "Tree": false, + "Gantt": false, + "Scheduler": false, + "Todo": false, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": null, + "ApprovalDateFieldName": null, + "ApprovalStatusFieldName": null, + "ApprovalDescriptionFieldName": null, + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Prj.Customers", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": false, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Customers.Create", + "R": "App.Prj.Customers", + "U": "App.Prj.Customers.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Customers", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Customers.Create", + "R": "App.Prj.Customers", + "U": "App.Prj.Customers.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 2, + "EditorOptions": "{\u0022maxLength\u0022: 300, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Customers", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "ContactName", + "CaptionName": "App.Listform.ListformField.ContactName", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Customers.Create", + "R": "App.Prj.Customers", + "U": "App.Prj.Customers.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 2, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": "{\u0022maxLength\u0022: 200}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Customers", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Email", + "CaptionName": "App.Listform.ListformField.Email", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 4, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Customers.Create", + "R": "App.Prj.Customers", + "U": "App.Prj.Customers.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 3, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": "{\u0022maxLength\u0022: 200, \u0022mode\u0022: \u0022email\u0022}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Customers", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Phone", + "CaptionName": "App.Listform.ListformField.Phone", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 5, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Customers.Create", + "R": "App.Prj.Customers", + "U": "App.Prj.Customers.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 4, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": "{\u0022maxLength\u0022: 50}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": true, + "IsCreatedField": true, + "InsertedRecords": { + "LanguageKeys": [ + "App.Prj.Customers" + ], + "PermissionGroupNames": [], + "PermissionNames": [ + "App.Prj.Customers", + "App.Prj.Customers.Create", + "App.Prj.Customers.Update", + "App.Prj.Customers.Delete", + "App.Prj.Customers.Export", + "App.Prj.Customers.Import", + "App.Prj.Customers.Note" + ], + "MenuCodes": [ + "App.Prj.Customers" + ], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/configs/seeds/host/wizard/Milestones.json b/configs/seeds/host/wizard/Milestones.json new file mode 100644 index 00000000..a0c9889c --- /dev/null +++ b/configs/seeds/host/wizard/Milestones.json @@ -0,0 +1,1179 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "Milestones", + "WizardCode": "App.Prj.Milestones", + "SeededAt": "2026-09-01T09:04:00", + "CustomComponentName": "", + "PermissionGroupName": "App.Prj", + "PermissionGroupDisplayNameEn": "Project", + "PermissionGroupDisplayNameTr": "Proje", + "ModuleId": "Prj", + "Menu": { + "MenuCode": "App.Prj.Milestones", + "MenuOrder": 3, + "MenuUrl": "/admin/list/App.Prj.Milestones", + "MenuIcon": "FcCalendar", + "MenuParentCode": "App.Prj", + "MenuParentIcon": "FcTimeline" + }, + "Language": { + "LanguageTextMenuEn": "Milestones", + "LanguageTextMenuTr": "D\u00F6n\u00FCm Noktalar\u0131", + "LanguageTextTitleEn": "Milestones", + "LanguageTextTitleTr": "D\u00F6n\u00FCm Noktalar\u0131", + "LanguageTextDescEn": "Project milestones", + "LanguageTextDescTr": "Proje d\u00F6n\u00FCm noktalar\u0131", + "LanguageTextMenuParentEn": "Project", + "LanguageTextMenuParentTr": "Proje" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Kimlik", + "EnglishCaption": "Id" + }, + { + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "TurkishCaption": "D\u00F6n\u00FCm Noktas\u0131", + "EnglishCaption": "Milestone" + }, + { + "FieldName": "TargetDate", + "CaptionName": "App.Listform.ListformField.TargetDate", + "TurkishCaption": "Hedef Tarih", + "EnglishCaption": "Target Date" + }, + { + "FieldName": "IsCompleted", + "CaptionName": "App.Listform.ListformField.IsCompleted", + "TurkishCaption": "Tamamland\u0131", + "EnglishCaption": "Completed" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": "\u0022IsDeleted\u0022 = \u0027false\u0027", + "SelectCommand": "Prj_T_Milestone", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": "UPDATE \u0022Prj_T_Milestone\u0022 SET \u0022DeleterId\u0022=@DeleterId, \u0022DeletionTime\u0022=CURRENT_TIMESTAMP, \u0022IsDeleted\u0022=\u0027true\u0027 WHERE \u0022Id\u0022 IN @Id", + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "DeleterId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "CreationTime", + "FieldDbType": 6, + "Value": "@NOW", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "CreatorId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "IsDeleted", + "FieldDbType": 3, + "Value": "false", + "CustomValueType": 1, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Prj.Milestones", + "CultureName": "en", + "Name": "App.Prj.Milestones", + "KeyFieldName": "Id", + "Title": "App.Prj.Milestones.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Prj.Milestones.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "none", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "ScaleType": "weeks", + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null, + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": null, + "StatusExpr": null, + "DescriptionExpr": null, + "DueDateExpr": null, + "TagExpr": null, + "AssigneeExpr": null, + "PriorityExpr": null, + "CompletedExpr": null, + "OrderExpr": null, + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": null, + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": false, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Prj.Milestones.Title", + "ShowTitle": true, + "Width": 800, + "Height": 275, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "Genel", + "ColCount": 2, + "ColSpan": 2 + } + ], + "PermissionDto": { + "C": "App.Prj.Milestones.Create", + "R": "App.Prj.Milestones", + "U": "App.Prj.Milestones.Update", + "D": "App.Prj.Milestones.Delete", + "E": "App.Prj.Milestones.Export", + "I": "App.Prj.Milestones.Import", + "N": "App.Prj.Milestones.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Prj.Milestones", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": true, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": false, + "SubFormsListFormType": "Form", + "SubFormsDto": [], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": false, + "Pivot": false, + "Chart": false, + "Tree": false, + "Gantt": false, + "Scheduler": false, + "Todo": false, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": null, + "ApprovalDateFieldName": null, + "ApprovalStatusFieldName": null, + "ApprovalDescriptionFieldName": null, + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Prj.Milestones", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": false, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Milestones.Create", + "R": "App.Prj.Milestones", + "U": "App.Prj.Milestones.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Milestones", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Milestones.Create", + "R": "App.Prj.Milestones", + "U": "App.Prj.Milestones.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 2, + "EditorOptions": "{\u0022maxLength\u0022: 300, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Milestones", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "TargetDate", + "CaptionName": "App.Listform.ListformField.TargetDate", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 6, + "CultureName": "en", + "DataType": "datetime", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Milestones.Create", + "R": "App.Prj.Milestones", + "U": "App.Prj.Milestones.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 2, + "EditGroupOrderNo": 1, + "EditorType2": "dxDateBox", + "ColSpan": 1, + "EditorOptions": "{\u0022type\u0022: \u0022date\u0022, \u0022displayFormat\u0022: \u0022dd.MM.yyyy\u0022, \u0022useMaskBehavior\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Milestones", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "IsCompleted", + "CaptionName": "App.Listform.ListformField.IsCompleted", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 4, + "SourceDbType": 3, + "CultureName": "en", + "DataType": "boolean", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Milestones.Create", + "R": "App.Prj.Milestones", + "U": "App.Prj.Milestones.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 3, + "EditGroupOrderNo": 1, + "EditorType2": "dxCheckBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": true, + "IsCreatedField": true, + "InsertedRecords": { + "LanguageKeys": [ + "App.Prj.Milestones" + ], + "PermissionGroupNames": [], + "PermissionNames": [ + "App.Prj.Milestones", + "App.Prj.Milestones.Create", + "App.Prj.Milestones.Update", + "App.Prj.Milestones.Delete", + "App.Prj.Milestones.Export", + "App.Prj.Milestones.Import", + "App.Prj.Milestones.Note" + ], + "MenuCodes": [ + "App.Prj.Milestones" + ], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/configs/seeds/host/wizard/Tags.json b/configs/seeds/host/wizard/Tags.json new file mode 100644 index 00000000..aa85b8c3 --- /dev/null +++ b/configs/seeds/host/wizard/Tags.json @@ -0,0 +1,1048 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "Tags", + "WizardCode": "App.Prj.Tags", + "SeededAt": "2026-09-01T09:03:00", + "CustomComponentName": "", + "PermissionGroupName": "App.Prj", + "PermissionGroupDisplayNameEn": "Project", + "PermissionGroupDisplayNameTr": "Proje", + "ModuleId": "Prj", + "Menu": { + "MenuCode": "App.Prj.Tags", + "MenuOrder": 2, + "MenuUrl": "/admin/list/App.Prj.Tags", + "MenuIcon": "FcRules", + "MenuParentCode": "App.Prj", + "MenuParentIcon": "FcTimeline" + }, + "Language": { + "LanguageTextMenuEn": "Tags", + "LanguageTextMenuTr": "Etiketler", + "LanguageTextTitleEn": "Tags", + "LanguageTextTitleTr": "Etiketler", + "LanguageTextDescEn": "Task tags", + "LanguageTextDescTr": "G\u00F6rev etiketleri", + "LanguageTextMenuParentEn": "Project", + "LanguageTextMenuParentTr": "Proje" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Kimlik", + "EnglishCaption": "Id" + }, + { + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "TurkishCaption": "Etiket Ad\u0131", + "EnglishCaption": "Tag Name" + }, + { + "FieldName": "ColorCode", + "CaptionName": "App.Listform.ListformField.ColorCode", + "TurkishCaption": "Renk", + "EnglishCaption": "Color" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": "\u0022IsDeleted\u0022 = \u0027false\u0027", + "SelectCommand": "Prj_T_Tag", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": "UPDATE \u0022Prj_T_Tag\u0022 SET \u0022DeleterId\u0022=@DeleterId, \u0022DeletionTime\u0022=CURRENT_TIMESTAMP, \u0022IsDeleted\u0022=\u0027true\u0027 WHERE \u0022Id\u0022 IN @Id", + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "DeleterId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "CreationTime", + "FieldDbType": 6, + "Value": "@NOW", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "CreatorId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "IsDeleted", + "FieldDbType": 3, + "Value": "false", + "CustomValueType": 1, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Prj.Tags", + "CultureName": "en", + "Name": "App.Prj.Tags", + "KeyFieldName": "Id", + "Title": "App.Prj.Tags.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Prj.Tags.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "none", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "ScaleType": "weeks", + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null, + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": null, + "StatusExpr": null, + "DescriptionExpr": null, + "DueDateExpr": null, + "TagExpr": null, + "AssigneeExpr": null, + "PriorityExpr": null, + "CompletedExpr": null, + "OrderExpr": null, + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": null, + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": false, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Prj.Tags.Title", + "ShowTitle": true, + "Width": 800, + "Height": 200, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "Genel", + "ColCount": 2, + "ColSpan": 2 + } + ], + "PermissionDto": { + "C": "App.Prj.Tags.Create", + "R": "App.Prj.Tags", + "U": "App.Prj.Tags.Update", + "D": "App.Prj.Tags.Delete", + "E": "App.Prj.Tags.Export", + "I": "App.Prj.Tags.Import", + "N": "App.Prj.Tags.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Prj.Tags", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": true, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": false, + "SubFormsListFormType": "Form", + "SubFormsDto": [], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": false, + "Pivot": false, + "Chart": false, + "Tree": false, + "Gantt": false, + "Scheduler": false, + "Todo": false, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": null, + "ApprovalDateFieldName": null, + "ApprovalStatusFieldName": null, + "ApprovalDescriptionFieldName": null, + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Prj.Tags", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": false, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tags.Create", + "R": "App.Prj.Tags", + "U": "App.Prj.Tags.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tags", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tags.Create", + "R": "App.Prj.Tags", + "U": "App.Prj.Tags.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": "{\u0022maxLength\u0022: 200, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tags", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "ColorCode", + "CaptionName": "App.Listform.ListformField.ColorCode", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tags.Create", + "R": "App.Prj.Tags", + "U": "App.Prj.Tags.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 2, + "EditGroupOrderNo": 1, + "EditorType2": "dxColorBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": true, + "IsCreatedField": true, + "InsertedRecords": { + "LanguageKeys": [ + "App.Prj.Tags" + ], + "PermissionGroupNames": [], + "PermissionNames": [ + "App.Prj.Tags", + "App.Prj.Tags.Create", + "App.Prj.Tags.Update", + "App.Prj.Tags.Delete", + "App.Prj.Tags.Export", + "App.Prj.Tags.Import", + "App.Prj.Tags.Note" + ], + "MenuCodes": [ + "App.Prj", + "App.Prj.Tags" + ], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/configs/seeds/host/wizard/TaskDependencies.json b/configs/seeds/host/wizard/TaskDependencies.json new file mode 100644 index 00000000..c6ead42e --- /dev/null +++ b/configs/seeds/host/wizard/TaskDependencies.json @@ -0,0 +1,1190 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "TaskDependencies", + "WizardCode": "App.Prj.TaskDependencies", + "SeededAt": "2026-09-01T09:02:00", + "CustomComponentName": "", + "PermissionGroupName": "App.Prj", + "PermissionGroupDisplayNameEn": "Project", + "PermissionGroupDisplayNameTr": "Proje", + "ModuleId": "Prj", + "Menu": { + "CreateMenu": false, + "MenuCode": "App.Prj.TaskDependencies", + "MenuOrder": 1, + "MenuUrl": "/admin/list/App.Prj.TaskDependencies", + "MenuIcon": "FcTodoList", + "MenuParentCode": "App.Prj", + "MenuParentIcon": "FcTimeline" + }, + "Language": { + "LanguageTextMenuEn": "Blocking Tasks", + "LanguageTextMenuTr": "Beklenen G\u00F6revler", + "LanguageTextTitleEn": "Blocking Tasks", + "LanguageTextTitleTr": "Beklenen G\u00F6revler", + "LanguageTextDescEn": "Tasks this task waits for", + "LanguageTextDescTr": "G\u00F6revin bekledi\u011Fi g\u00F6revler", + "LanguageTextMenuParentEn": "Project", + "LanguageTextMenuParentTr": "Proje" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Kimlik", + "EnglishCaption": "Id" + }, + { + "FieldName": "TaskId", + "CaptionName": "App.Listform.ListformField.TaskId", + "TurkishCaption": "G\u00F6rev", + "EnglishCaption": "Task" + }, + { + "FieldName": "DependsOnTaskId", + "CaptionName": "App.Listform.ListformField.DependsOnTaskId", + "TurkishCaption": "Beklenen G\u00F6rev", + "EnglishCaption": "Blocking Task" + }, + { + "FieldName": "Note", + "CaptionName": "App.Listform.ListformField.Note", + "TurkishCaption": "Not", + "EnglishCaption": "Note" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": "\u0022IsDeleted\u0022 = \u0027false\u0027", + "SelectCommand": "Prj_T_TaskDependency", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": "UPDATE \u0022Prj_T_TaskDependency\u0022 SET \u0022DeleterId\u0022=@DeleterId, \u0022DeletionTime\u0022=CURRENT_TIMESTAMP, \u0022IsDeleted\u0022=\u0027true\u0027 WHERE \u0022Id\u0022 IN @Id", + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "DeleterId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "CreationTime", + "FieldDbType": 6, + "Value": "@NOW", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "CreatorId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "IsDeleted", + "FieldDbType": 3, + "Value": "false", + "CustomValueType": 1, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Prj.TaskDependencies", + "CultureName": "en", + "Name": "App.Prj.TaskDependencies", + "KeyFieldName": "Id", + "Title": "App.Prj.TaskDependencies.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Prj.TaskDependencies.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "none", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "ScaleType": "weeks", + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null, + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": null, + "StatusExpr": null, + "DescriptionExpr": null, + "DueDateExpr": null, + "TagExpr": null, + "AssigneeExpr": null, + "PriorityExpr": null, + "CompletedExpr": null, + "OrderExpr": null, + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": null, + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": false, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Prj.TaskDependencies.Title", + "ShowTitle": true, + "Width": 800, + "Height": 275, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "Genel", + "ColCount": 2, + "ColSpan": 2 + } + ], + "PermissionDto": { + "C": "App.Prj.TaskDependencies.Create", + "R": "App.Prj.TaskDependencies", + "U": "App.Prj.TaskDependencies.Update", + "D": "App.Prj.TaskDependencies.Delete", + "E": "App.Prj.TaskDependencies.Export", + "I": "App.Prj.TaskDependencies.Import", + "N": "App.Prj.TaskDependencies.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Prj.TaskDependencies", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": true, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": false, + "SubFormsListFormType": "Form", + "SubFormsDto": [], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": false, + "Pivot": false, + "Chart": false, + "Tree": false, + "Gantt": false, + "Scheduler": false, + "Todo": false, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": null, + "ApprovalDateFieldName": null, + "ApprovalStatusFieldName": null, + "ApprovalDescriptionFieldName": null, + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Prj.TaskDependencies", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": false, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskDependencies.Create", + "R": "App.Prj.TaskDependencies", + "U": "App.Prj.TaskDependencies.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskDependencies", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "TaskId", + "CaptionName": "App.Listform.ListformField.TaskId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskDependencies.Create", + "R": "App.Prj.TaskDependencies", + "U": "App.Prj.TaskDependencies.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskDependencies", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "DependsOnTaskId", + "CaptionName": "App.Listform.ListformField.DependsOnTaskId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskDependencies.Create", + "R": "App.Prj.TaskDependencies", + "U": "App.Prj.TaskDependencies.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 2, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskDependencies", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Note", + "CaptionName": "App.Listform.ListformField.Note", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 4, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskDependencies.Create", + "R": "App.Prj.TaskDependencies", + "U": "App.Prj.TaskDependencies.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 3, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextArea", + "ColSpan": 2, + "EditorOptions": "{\u0022autoResizeEnabled\u0022: true, \u0022maxLength\u0022: 300}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": true, + "IsCreatedField": true, + "InsertedRecords": { + "LanguageKeys": [ + "App.Prj.TaskDependencies" + ], + "PermissionGroupNames": [], + "PermissionNames": [ + "App.Prj.TaskDependencies", + "App.Prj.TaskDependencies.Create", + "App.Prj.TaskDependencies.Update", + "App.Prj.TaskDependencies.Delete", + "App.Prj.TaskDependencies.Export", + "App.Prj.TaskDependencies.Import", + "App.Prj.TaskDependencies.Note" + ], + "MenuCodes": [], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/configs/seeds/host/wizard/TaskSubTasks.json b/configs/seeds/host/wizard/TaskSubTasks.json new file mode 100644 index 00000000..7eef0b26 --- /dev/null +++ b/configs/seeds/host/wizard/TaskSubTasks.json @@ -0,0 +1,1726 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "TaskSubTasks", + "WizardCode": "App.Prj.TaskSubTasks", + "SeededAt": "2026-09-01T09:01:00", + "CustomComponentName": "", + "PermissionGroupName": "App.Prj", + "PermissionGroupDisplayNameEn": "Project", + "PermissionGroupDisplayNameTr": "Proje", + "ModuleId": "Prj", + "Menu": { + "CreateMenu": false, + "MenuCode": "App.Prj.TaskSubTasks", + "MenuOrder": 1, + "MenuUrl": "/admin/list/App.Prj.TaskSubTasks", + "MenuIcon": "FcTodoList", + "MenuParentCode": "App.Prj", + "MenuParentIcon": "FcTimeline" + }, + "Language": { + "LanguageTextMenuEn": "Sub Tasks", + "LanguageTextMenuTr": "Alt G\u00F6revler", + "LanguageTextTitleEn": "Sub Tasks", + "LanguageTextTitleTr": "Alt G\u00F6revler", + "LanguageTextDescEn": "Sub task list", + "LanguageTextDescTr": "Alt g\u00F6rev listesi", + "LanguageTextMenuParentEn": "Project", + "LanguageTextMenuParentTr": "Proje" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Kimlik", + "EnglishCaption": "Id" + }, + { + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "TurkishCaption": "G\u00F6rev Ad\u0131", + "EnglishCaption": "Task Name" + }, + { + "FieldName": "ParentTaskId", + "CaptionName": "App.Listform.ListformField.ParentTaskId", + "TurkishCaption": "\u00DCst G\u00F6rev", + "EnglishCaption": "Parent Task" + }, + { + "FieldName": "Status", + "CaptionName": "App.Listform.ListformField.Status", + "TurkishCaption": "Durum", + "EnglishCaption": "Status" + }, + { + "FieldName": "AssigneeIds", + "CaptionName": "App.Listform.ListformField.AssigneeIds", + "TurkishCaption": "Atananlar", + "EnglishCaption": "Assignees" + }, + { + "FieldName": "ProgressPercent", + "CaptionName": "App.Listform.ListformField.ProgressPercent", + "TurkishCaption": "\u0130lerleme (%)", + "EnglishCaption": "Progress (%)" + }, + { + "FieldName": "PlannedStartDate", + "CaptionName": "App.Listform.ListformField.PlannedStartDate", + "TurkishCaption": "Planlanan Ba\u015Flang\u0131\u00E7", + "EnglishCaption": "Planned Start" + }, + { + "FieldName": "PlannedEndDate", + "CaptionName": "App.Listform.ListformField.PlannedEndDate", + "TurkishCaption": "Planlanan Biti\u015F", + "EnglishCaption": "Planned End" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": "\u0022IsDeleted\u0022 = \u0027false\u0027", + "SelectCommand": "Prj_T_Task", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": "UPDATE \u0022Prj_T_Task\u0022 SET \u0022DeleterId\u0022=@DeleterId, \u0022DeletionTime\u0022=CURRENT_TIMESTAMP, \u0022IsDeleted\u0022=\u0027true\u0027 WHERE \u0022Id\u0022 IN @Id", + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "DeleterId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "CreationTime", + "FieldDbType": 6, + "Value": "@NOW", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "CreatorId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "IsDeleted", + "FieldDbType": 3, + "Value": "false", + "CustomValueType": 1, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Prj.TaskSubTasks", + "CultureName": "en", + "Name": "App.Prj.TaskSubTasks", + "KeyFieldName": "Id", + "Title": "App.Prj.TaskSubTasks.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Prj.TaskSubTasks.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "none", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "ScaleType": "weeks", + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null, + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": null, + "StatusExpr": null, + "DescriptionExpr": null, + "DueDateExpr": null, + "TagExpr": null, + "AssigneeExpr": null, + "PriorityExpr": null, + "CompletedExpr": null, + "OrderExpr": null, + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": null, + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": false, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Prj.TaskSubTasks.Title", + "ShowTitle": true, + "Width": 800, + "Height": 425, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "Genel", + "ColCount": 2, + "ColSpan": 2 + } + ], + "PermissionDto": { + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "D": "App.Prj.TaskSubTasks.Delete", + "E": "App.Prj.TaskSubTasks.Export", + "I": "App.Prj.TaskSubTasks.Import", + "N": "App.Prj.TaskSubTasks.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Prj.TaskSubTasks", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": true, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": false, + "SubFormsListFormType": "Form", + "SubFormsDto": [], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": false, + "Pivot": false, + "Chart": false, + "Tree": false, + "Gantt": false, + "Scheduler": false, + "Todo": false, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": null, + "ApprovalDateFieldName": null, + "ApprovalStatusFieldName": null, + "ApprovalDescriptionFieldName": null, + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": false, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 2, + "EditorOptions": "{\u0022maxLength\u0022: 300, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "ParentTaskId", + "CaptionName": "App.Listform.ListformField.ParentTaskId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 2, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Status", + "CaptionName": "App.Listform.ListformField.Status", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 4, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 1, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "[{\u0022key\u0022: \u0022Taslak\u0022, \u0022name\u0022: \u0022Taslak\u0022}, {\u0022key\u0022: \u0022Devam Ediyor\u0022, \u0022name\u0022: \u0022Devam Ediyor\u0022}, {\u0022key\u0022: \u0022Tamamland\u0131\u0022, \u0022name\u0022: \u0022Tamamland\u0131\u0022}, {\u0022key\u0022: \u0022\u0130ptal\u0022, \u0022name\u0022: \u0022\u0130ptal\u0022}]" + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 3, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "AssigneeIds", + "CaptionName": "App.Listform.ListformField.AssigneeIds", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 5, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], UserName AS [Name] FROM dbo.AbpUsers WHERE IsDeleted = 0 ORDER BY UserName" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 4, + "EditGroupOrderNo": 1, + "EditorType2": "dxTagBox", + "ColSpan": 1, + "EditorOptions": "{\u0022showSelectionControls\u0022: true, \u0022maxDisplayedTags\u0022: 3, \u0022searchEnabled\u0022: true, \u0022multiline\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": { + "ShowClearButton": true, + "ShowSelectionControls": true, + "MaxDisplayedTags": 3, + "ShowMultiTagOnly": false, + "ApplyValueMode": "useButtons", + "SearchEnabled": true, + "AcceptCustomValue": false + }, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "ProgressPercent", + "CaptionName": "App.Listform.ListformField.ProgressPercent", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 6, + "SourceDbType": 7, + "CultureName": "en", + "DataType": "number", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 5, + "EditGroupOrderNo": 1, + "EditorType2": "dxNumberBox", + "ColSpan": 1, + "EditorOptions": "{\u0022format\u0022: {\u0022type\u0022: \u0022fixedPoint\u0022, \u0022precision\u0022: 2}, \u0022min\u0022: 0, \u0022max\u0022: 100}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "PlannedStartDate", + "CaptionName": "App.Listform.ListformField.PlannedStartDate", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 7, + "SourceDbType": 6, + "CultureName": "en", + "DataType": "datetime", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 6, + "EditGroupOrderNo": 1, + "EditorType2": "dxDateBox", + "ColSpan": 1, + "EditorOptions": "{\u0022type\u0022: \u0022datetime\u0022, \u0022displayFormat\u0022: \u0022dd.MM.yyyy HH:mm\u0022, \u0022useMaskBehavior\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskSubTasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "PlannedEndDate", + "CaptionName": "App.Listform.ListformField.PlannedEndDate", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 8, + "SourceDbType": 6, + "CultureName": "en", + "DataType": "datetime", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskSubTasks.Create", + "R": "App.Prj.TaskSubTasks", + "U": "App.Prj.TaskSubTasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 7, + "EditGroupOrderNo": 1, + "EditorType2": "dxDateBox", + "ColSpan": 1, + "EditorOptions": "{\u0022type\u0022: \u0022datetime\u0022, \u0022displayFormat\u0022: \u0022dd.MM.yyyy HH:mm\u0022, \u0022useMaskBehavior\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": true, + "IsCreatedField": true, + "InsertedRecords": { + "LanguageKeys": [ + "App.Prj.TaskSubTasks" + ], + "PermissionGroupNames": [], + "PermissionNames": [ + "App.Prj.TaskSubTasks", + "App.Prj.TaskSubTasks.Create", + "App.Prj.TaskSubTasks.Update", + "App.Prj.TaskSubTasks.Delete", + "App.Prj.TaskSubTasks.Export", + "App.Prj.TaskSubTasks.Import", + "App.Prj.TaskSubTasks.Note" + ], + "MenuCodes": [], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/configs/seeds/host/wizard/TaskTimesheets.json b/configs/seeds/host/wizard/TaskTimesheets.json new file mode 100644 index 00000000..72a7e7cc --- /dev/null +++ b/configs/seeds/host/wizard/TaskTimesheets.json @@ -0,0 +1,1469 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "TaskTimesheets", + "WizardCode": "App.Prj.TaskTimesheets", + "SeededAt": "2026-09-01T09:00:00", + "CustomComponentName": "", + "PermissionGroupName": "App.Prj", + "PermissionGroupDisplayNameEn": "Project", + "PermissionGroupDisplayNameTr": "Proje", + "ModuleId": "Prj", + "Menu": { + "CreateMenu": false, + "MenuCode": "App.Prj.TaskTimesheets", + "MenuOrder": 1, + "MenuUrl": "/admin/list/App.Prj.TaskTimesheets", + "MenuIcon": "FcTodoList", + "MenuParentCode": "App.Prj", + "MenuParentIcon": "FcTimeline" + }, + "Language": { + "LanguageTextMenuEn": "Timesheets", + "LanguageTextMenuTr": "\u00C7al\u0131\u015Fma \u00C7izelgeleri", + "LanguageTextTitleEn": "Timesheets", + "LanguageTextTitleTr": "\u00C7al\u0131\u015Fma \u00C7izelgeleri", + "LanguageTextDescEn": "Task timesheets", + "LanguageTextDescTr": "G\u00F6rev \u00E7al\u0131\u015Fma \u00E7izelgeleri", + "LanguageTextMenuParentEn": "Project", + "LanguageTextMenuParentTr": "Proje" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Kimlik", + "EnglishCaption": "Id" + }, + { + "FieldName": "TaskId", + "CaptionName": "App.Listform.ListformField.TaskId", + "TurkishCaption": "G\u00F6rev", + "EnglishCaption": "Task" + }, + { + "FieldName": "WorkDate", + "CaptionName": "App.Listform.ListformField.WorkDate", + "TurkishCaption": "Tarih", + "EnglishCaption": "Date" + }, + { + "FieldName": "UserId", + "CaptionName": "App.Listform.ListformField.UserId", + "TurkishCaption": "Kullan\u0131c\u0131", + "EnglishCaption": "User" + }, + { + "FieldName": "Hours", + "CaptionName": "App.Listform.ListformField.Hours", + "TurkishCaption": "S\u00FCre (saat)", + "EnglishCaption": "Hours" + }, + { + "FieldName": "Description", + "CaptionName": "App.Listform.ListformField.Description", + "TurkishCaption": "A\u00E7\u0131klama", + "EnglishCaption": "Description" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": "\u0022IsDeleted\u0022 = \u0027false\u0027", + "SelectCommand": "Prj_T_Timesheet", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": "UPDATE \u0022Prj_T_Timesheet\u0022 SET \u0022DeleterId\u0022=@DeleterId, \u0022DeletionTime\u0022=CURRENT_TIMESTAMP, \u0022IsDeleted\u0022=\u0027true\u0027 WHERE \u0022Id\u0022 IN @Id", + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "DeleterId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "CreationTime", + "FieldDbType": 6, + "Value": "@NOW", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "CreatorId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "IsDeleted", + "FieldDbType": 3, + "Value": "false", + "CustomValueType": 1, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Prj.TaskTimesheets", + "CultureName": "en", + "Name": "App.Prj.TaskTimesheets", + "KeyFieldName": "Id", + "Title": "App.Prj.TaskTimesheets.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Prj.TaskTimesheets.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "none", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "ScaleType": "weeks", + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null, + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": null, + "StatusExpr": null, + "DescriptionExpr": null, + "DueDateExpr": null, + "TagExpr": null, + "AssigneeExpr": null, + "PriorityExpr": null, + "CompletedExpr": null, + "OrderExpr": null, + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": null, + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": false, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Prj.TaskTimesheets.Title", + "ShowTitle": true, + "Width": 800, + "Height": 350, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "Genel", + "ColCount": 2, + "ColSpan": 2 + } + ], + "PermissionDto": { + "C": "App.Prj.TaskTimesheets.Create", + "R": "App.Prj.TaskTimesheets", + "U": "App.Prj.TaskTimesheets.Update", + "D": "App.Prj.TaskTimesheets.Delete", + "E": "App.Prj.TaskTimesheets.Export", + "I": "App.Prj.TaskTimesheets.Import", + "N": "App.Prj.TaskTimesheets.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Prj.TaskTimesheets", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": true, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": false, + "SubFormsListFormType": "Form", + "SubFormsDto": [], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": false, + "Pivot": false, + "Chart": false, + "Tree": false, + "Gantt": false, + "Scheduler": false, + "Todo": false, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": null, + "ApprovalDateFieldName": null, + "ApprovalStatusFieldName": null, + "ApprovalDescriptionFieldName": null, + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Prj.TaskTimesheets", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": false, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskTimesheets.Create", + "R": "App.Prj.TaskTimesheets", + "U": "App.Prj.TaskTimesheets.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskTimesheets", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "TaskId", + "CaptionName": "App.Listform.ListformField.TaskId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskTimesheets.Create", + "R": "App.Prj.TaskTimesheets", + "U": "App.Prj.TaskTimesheets.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskTimesheets", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "WorkDate", + "CaptionName": "App.Listform.ListformField.WorkDate", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 6, + "CultureName": "en", + "DataType": "datetime", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskTimesheets.Create", + "R": "App.Prj.TaskTimesheets", + "U": "App.Prj.TaskTimesheets.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 2, + "EditGroupOrderNo": 1, + "EditorType2": "dxDateBox", + "ColSpan": 1, + "EditorOptions": "{\u0022type\u0022: \u0022date\u0022, \u0022displayFormat\u0022: \u0022dd.MM.yyyy\u0022, \u0022useMaskBehavior\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskTimesheets", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "UserId", + "CaptionName": "App.Listform.ListformField.UserId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 4, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], UserName AS [Name] FROM dbo.AbpUsers WHERE IsDeleted = 0 ORDER BY UserName" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskTimesheets.Create", + "R": "App.Prj.TaskTimesheets", + "U": "App.Prj.TaskTimesheets.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 3, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskTimesheets", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Hours", + "CaptionName": "App.Listform.ListformField.Hours", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 5, + "SourceDbType": 7, + "CultureName": "en", + "DataType": "number", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskTimesheets.Create", + "R": "App.Prj.TaskTimesheets", + "U": "App.Prj.TaskTimesheets.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 4, + "EditGroupOrderNo": 1, + "EditorType2": "dxNumberBox", + "ColSpan": 1, + "EditorOptions": "{\u0022format\u0022: {\u0022type\u0022: \u0022fixedPoint\u0022, \u0022precision\u0022: 2}}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.TaskTimesheets", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Description", + "CaptionName": "App.Listform.ListformField.Description", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 6, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.TaskTimesheets.Create", + "R": "App.Prj.TaskTimesheets", + "U": "App.Prj.TaskTimesheets.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 5, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextArea", + "ColSpan": 2, + "EditorOptions": "{\u0022autoResizeEnabled\u0022: true, \u0022maxLength\u0022: 500}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": true, + "IsCreatedField": true, + "InsertedRecords": { + "LanguageKeys": [ + "App.Prj.TaskTimesheets", + "App.Prj" + ], + "PermissionGroupNames": [ + "App.Prj" + ], + "PermissionNames": [ + "App.Prj.TaskTimesheets", + "App.Prj.TaskTimesheets.Create", + "App.Prj.TaskTimesheets.Update", + "App.Prj.TaskTimesheets.Delete", + "App.Prj.TaskTimesheets.Export", + "App.Prj.TaskTimesheets.Import", + "App.Prj.TaskTimesheets.Note" + ], + "MenuCodes": [], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/configs/seeds/host/wizard/Tasks.json b/configs/seeds/host/wizard/Tasks.json new file mode 100644 index 00000000..fd7cca23 --- /dev/null +++ b/configs/seeds/host/wizard/Tasks.json @@ -0,0 +1,2842 @@ +{ + "Wizard": { + "ComponentKind": 0, + "WizardName": "Tasks", + "WizardCode": "App.Prj.Tasks", + "SeededAt": "2026-09-01T09:06:00", + "CustomComponentName": "", + "PermissionGroupName": "App.Prj", + "PermissionGroupDisplayNameEn": "Project", + "PermissionGroupDisplayNameTr": "Proje", + "ModuleId": "Prj", + "Menu": { + "MenuCode": "App.Prj.Tasks", + "MenuOrder": 1, + "MenuUrl": "/admin/list/App.Prj.Tasks", + "MenuIcon": "FcTodoList", + "MenuParentCode": "App.Prj", + "MenuParentIcon": "FcTimeline" + }, + "Language": { + "LanguageTextMenuEn": "Tasks", + "LanguageTextMenuTr": "G\u00F6revler", + "LanguageTextTitleEn": "Tasks", + "LanguageTextTitleTr": "G\u00F6revler", + "LanguageTextDescEn": "Task card and tracking", + "LanguageTextDescTr": "G\u00F6rev kart\u0131 ve takibi", + "LanguageTextMenuParentEn": "Project", + "LanguageTextMenuParentTr": "Proje" + }, + "Groups": [ + { + "Items": [ + { + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "TurkishCaption": "Kimlik", + "EnglishCaption": "Id" + }, + { + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "TurkishCaption": "G\u00F6rev Ad\u0131", + "EnglishCaption": "Task Name" + }, + { + "FieldName": "MilestoneId", + "CaptionName": "App.Listform.ListformField.MilestoneId", + "TurkishCaption": "D\u00F6n\u00FCm Noktas\u0131", + "EnglishCaption": "Milestone" + }, + { + "FieldName": "Status", + "CaptionName": "App.Listform.ListformField.Status", + "TurkishCaption": "Durum", + "EnglishCaption": "Status" + }, + { + "FieldName": "AssigneeIds", + "CaptionName": "App.Listform.ListformField.AssigneeIds", + "TurkishCaption": "Atananlar", + "EnglishCaption": "Assignees" + }, + { + "FieldName": "TagIds", + "CaptionName": "App.Listform.ListformField.TagIds", + "TurkishCaption": "Etiketler", + "EnglishCaption": "Tags" + }, + { + "FieldName": "CustomerId", + "CaptionName": "App.Listform.ListformField.CustomerId", + "TurkishCaption": "M\u00FC\u015Fteri", + "EnglishCaption": "Customer" + }, + { + "FieldName": "CustomerContact", + "CaptionName": "App.Listform.ListformField.CustomerContact", + "TurkishCaption": "\u0130lgili Ki\u015Fi", + "EnglishCaption": "Contact" + }, + { + "FieldName": "PlannedHours", + "CaptionName": "App.Listform.ListformField.PlannedHours", + "TurkishCaption": "\u0130lk Planlanan Saatler", + "EnglishCaption": "Planned Hours" + }, + { + "FieldName": "ProgressPercent", + "CaptionName": "App.Listform.ListformField.ProgressPercent", + "TurkishCaption": "\u0130lerleme (%)", + "EnglishCaption": "Progress (%)" + }, + { + "FieldName": "SalesOrderLine", + "CaptionName": "App.Listform.ListformField.SalesOrderLine", + "TurkishCaption": "Sat\u0131\u015F Sipari\u015F Sat\u0131r\u0131", + "EnglishCaption": "Sales Order Line" + }, + { + "FieldName": "PlannedStartDate", + "CaptionName": "App.Listform.ListformField.PlannedStartDate", + "TurkishCaption": "Planlanan Tarih", + "EnglishCaption": "Planned Date" + }, + { + "FieldName": "PlannedEndDate", + "CaptionName": "App.Listform.ListformField.PlannedEndDate", + "TurkishCaption": "Planlanan Biti\u015F", + "EnglishCaption": "Planned End" + }, + { + "FieldName": "ParentTaskId", + "CaptionName": "App.Listform.ListformField.ParentTaskId", + "TurkishCaption": "\u00DCst G\u00F6rev", + "EnglishCaption": "Parent Task" + }, + { + "FieldName": "IsFavorite", + "CaptionName": "App.Listform.ListformField.IsFavorite", + "TurkishCaption": "Favori", + "EnglishCaption": "Favorite" + } + ] + }, + { + "Items": [ + { + "FieldName": "Description", + "CaptionName": "App.Listform.ListformField.Description", + "TurkishCaption": "A\u00E7\u0131klama", + "EnglishCaption": "Description" + } + ] + } + ] + }, + "ListForm": { + "EditType": null, + "DataSourceCode": "Default", + "KeyFieldDbSourceType": 9, + "TableName": null, + "DefaultFilter": "\u0022IsDeleted\u0022 = \u0027false\u0027", + "SelectCommand": "Prj_T_Task", + "SelectCommandType": 1, + "SelectFieldsDefaultValueDto": [], + "DeleteCommand": "UPDATE \u0022Prj_T_Task\u0022 SET \u0022DeleterId\u0022=@DeleterId, \u0022DeletionTime\u0022=CURRENT_TIMESTAMP, \u0022IsDeleted\u0022=\u0027true\u0027 WHERE \u0022Id\u0022 IN @Id", + "DeleteBeforeCommand": null, + "DeleteAfterCommand": null, + "DeleteFieldsDefaultValueDto": [ + { + "FieldName": "DeleterId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@ID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "InsertCommand": null, + "InsertBeforeCommand": null, + "InsertAfterCommand": null, + "InsertFieldsDefaultValueDto": [ + { + "FieldName": "CreationTime", + "FieldDbType": 6, + "Value": "@NOW", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "CreatorId", + "FieldDbType": 9, + "Value": "@USERID", + "CustomValueType": 2, + "SqlQuery": null + }, + { + "FieldName": "IsDeleted", + "FieldDbType": 3, + "Value": "false", + "CustomValueType": 1, + "SqlQuery": null + }, + { + "FieldName": "Id", + "FieldDbType": 9, + "Value": "@NEWID", + "CustomValueType": 2, + "SqlQuery": null + } + ], + "UpdateCommand": null, + "UpdateBeforeCommand": null, + "UpdateAfterCommand": null, + "UpdateFieldsDefaultValueDto": [], + "FormFieldsDefaultValueDto": [], + "WidgetsDto": [], + "ExtraFilterEditDto": [], + "ListFormCode": "App.Prj.Tasks", + "CultureName": "en", + "Name": "App.Prj.Tasks", + "KeyFieldName": "Id", + "Title": "App.Prj.Tasks.Title", + "SortMode": "single", + "PageSize": 10, + "Width": 0, + "Height": 0, + "FullHeight": false, + "Description": "App.Prj.Tasks.Desc", + "FilterRowDto": { + "Visible": true, + "ApplyFilter": "auto", + "AllowUserUiFilterSave": true + }, + "RowDto": { + "RowHeight": "auto", + "WhiteSpace": "normal", + "OverflowWrap": "break-word" + }, + "HeaderFilterDto": { + "Visible": true, + "AllowSearch": false, + "Height": 325, + "SearchTimeout": 500, + "Width": 252 + }, + "FilterPanelDto": { + "Visible": false, + "Texts": null, + "FilterEnabled": false, + "CustomizeText": null + }, + "SearchPanelDto": { + "Visible": true, + "Width": 160 + }, + "GroupPanelDto": { + "Visible": true, + "AutoExpandAll": false + }, + "SelectionDto": { + "Mode": "none", + "AllowSelectAll": false, + "SelectAllMode": "allPages", + "ShowCheckBoxesMode": "always" + }, + "ColumnOptionDto": { + "ShowBorders": true, + "ShowRowLines": true, + "ShowColumnLines": false, + "RowAlternationEnabled": true, + "AllowColumnReordering": true, + "AllowColumnResizing": true, + "ColumnResizingMode": "widget", + "ColumnAutoWidth": true, + "RtlEnabled": false, + "ColumnFixingEnabled": true, + "ColumnChooserEnabled": true, + "ColumnChooserMode": "dragAndDrop", + "HoverStateEnabled": false, + "ColumnHidingEnabled": true, + "FocusedRowEnabled": true, + "ShowColumnHeaders": true + }, + "PivotOptionDto": { + "ColumnChooserEnabled": false, + "AllowFieldDragging": true, + "ShowFieldPanel": true, + "ShowDataFields": true, + "ShowColumnFields": true, + "ShowRowFields": true, + "ShowFilterFields": true, + "ShowChart": false, + "ChartHeight": 320, + "ChartCommonSeriesType": "bar" + }, + "TreeOptionDto": { + "KeyExpr": null, + "ParentIdExpr": null, + "HasItemsExpr": null, + "RootValue": null, + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": null, + "StartExpr": null, + "EndExpr": null, + "ProgressExpr": null + }, + "GanttOptionDto": { + "KeyExpr": "Id", + "ParentIdExpr": "ParentTaskId", + "HasItemsExpr": "", + "RootValue": "", + "ExpandedRowKeys": [], + "AutoExpandAll": false, + "RecursiveSelection": false, + "TitleExpr": "Name", + "ScaleType": "weeks", + "StartExpr": "PlannedStartDate", + "EndExpr": "PlannedEndDate", + "ProgressExpr": "ProgressPercent", + "AllowEditing": false, + "AllowTaskAdding": false, + "AllowTaskUpdating": false, + "AllowTaskResourceUpdating": false, + "AllowTaskDeleting": false, + "AllowDependencyAdding": false, + "AllowDependencyDeleting": false, + "AllowResourceAdding": false, + "AllowResourceUpdating": false, + "AllowResourceDeleting": false + }, + "SchedulerOptionDto": { + "TextExpr": null, + "UserNameExpr": null, + "DescriptionExpr": null, + "StartDateExpr": null, + "EndDateExpr": null, + "AllDayExpr": null, + "RecurrenceRuleExpr": null, + "RecurrenceExceptionExpr": null, + "StartDayHour": 8, + "EndDayHour": 20, + "DefaultView": "week", + "ShowAllDayPanel": true, + "CellDuration": 30, + "FirstDayOfWeek": 1, + "CrossScrollingEnabled": false, + "AllowResizing": false, + "AllowDragging": false, + "AllowDeleting": false, + "AllowEditing": false, + "AllowAdding": false + }, + "TodoOptionDto": { + "TitleExpr": "Name", + "StatusExpr": "Status", + "DescriptionExpr": "Description", + "DueDateExpr": "PlannedEndDate", + "TagExpr": "TagIds", + "AssigneeExpr": "AssigneeIds", + "PriorityExpr": "", + "CompletedExpr": "", + "OrderExpr": "", + "TimesheetExpr": null, + "SubTaskExpr": null, + "StatusOrder": "Taslak, Devam Ediyor, Tamamland\u0131, \u0130ptal", + "AllowDragging": true + }, + "PagerOptionDto": { + "Visible": true, + "ShowPageSizeSelector": true, + "ShowInfo": false, + "ShowNavigationButtons": true, + "AllowedPageSizes": "10,20,50,100", + "InfoText": "Page {0} of {1} ({2} items)", + "DisplayMode": "adaptive", + "ScrollingMode": "standard", + "LoadPanelEnabled": "auto", + "LoadPanelText": "Loading..." + }, + "EditingOptionDto": { + "Mode": "popup", + "RefreshMode": "full", + "AllowUpdating": true, + "AllowDetail": true, + "AllowDeleting": true, + "AllowAllDeleting": false, + "AllowAdding": true, + "AllowDuplicate": false, + "UseIcons": false, + "ConfirmDelete": true, + "NewRowPosition": "viewportTop", + "SelectTextOnEditStart": false, + "StartEditAction": "click", + "EditColumnName": null, + "Popup": { + "Title": "App.Prj.Tasks.Title", + "ShowTitle": true, + "Width": 800, + "Height": 725, + "FullScreen": false, + "HideOnOutsideClick": true, + "ResizeEnabled": true, + "DragEnabled": true, + "RestorePosition": true, + "Position": "center" + }, + "SendOnlyChangedFormValuesUpdate": false, + "AddPageUrl": null + }, + "EditingFormDto": [ + { + "Order": 1, + "ItemType": "group", + "Caption": "Genel", + "ColCount": 2, + "ColSpan": 2 + }, + { + "Order": 2, + "ItemType": "group", + "Caption": "A\u00E7\u0131klama", + "ColCount": 1, + "ColSpan": 1 + } + ], + "PermissionDto": { + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "D": "App.Prj.Tasks.Delete", + "E": "App.Prj.Tasks.Export", + "I": "App.Prj.Tasks.Import", + "N": "App.Prj.Tasks.Note" + }, + "CommandColumnDto": [], + "StateStoringDto": { + "Enabled": true, + "Type": "custom", + "StorageKey": "listFormGridStorage-App.Prj.Tasks", + "SavingTimeout": 5000 + }, + "CustomJsSources": [], + "CustomStyleSources": [], + "UpdateServiceAddress": "list-form-data/update", + "InsertServiceAddress": "list-form-data/insert", + "DeleteServiceAddress": "list-form-data/delete", + "IsTenant": true, + "IsBranch": false, + "IsOrganizationUnit": false, + "ListFormType": "List", + "IsSubForm": false, + "ShowNote": true, + "SubFormsListFormType": "Form", + "SubFormsDto": [ + { + "TabType": "List", + "TabTitle": "App.Prj.TaskTimesheets", + "Code": "App.Prj.TaskTimesheets", + "IsRefresh": true, + "Relation": [ + { + "ParentFieldName": "Id", + "DbType": 9, + "ChildFieldName": "TaskId" + } + ] + }, + { + "TabType": "List", + "TabTitle": "App.Prj.TaskSubTasks", + "Code": "App.Prj.TaskSubTasks", + "IsRefresh": true, + "Relation": [ + { + "ParentFieldName": "Id", + "DbType": 9, + "ChildFieldName": "ParentTaskId" + } + ] + }, + { + "TabType": "List", + "TabTitle": "App.Prj.TaskDependencies", + "Code": "App.Prj.TaskDependencies", + "IsRefresh": true, + "Relation": [ + { + "ParentFieldName": "Id", + "DbType": 9, + "ChildFieldName": "TaskId" + } + ] + } + ], + "ExtraFilterDto": [], + "LayoutDto": { + "Grid": true, + "Card": true, + "Pivot": false, + "Chart": false, + "Tree": false, + "Gantt": true, + "Scheduler": false, + "Todo": true, + "DefaultLayout": "grid" + }, + "WorkflowDto": { + "ApprovalUserFieldName": null, + "ApprovalDateFieldName": null, + "ApprovalStatusFieldName": null, + "ApprovalDescriptionFieldName": null, + "ApprovalIsFilterUserName": false, + "ApprovalIsResetWorkflow": false, + "Criteria": [] + }, + "UserId": null, + "RoleId": null, + "CommonDto": { + "AdjustOnZoom": true, + "ContainerBackgroundColor": "#FFFFFF", + "Palette": "Material", + "PaletteExtensionMode": "blend", + "DefaultPane": null, + "Disabled": false, + "Theme": "generic.light" + }, + "AdaptivelayoutDto": { + "Height": 80, + "Width": 80, + "KeepLabels": true + }, + "AnimationDto": { + "Duration": 1000, + "Easing": "easeOutCubic", + "Enabled": true, + "MaxPointCountSupported": 300 + }, + "AnnotationsDto": [], + "ArgumentAxisDto": { + "ArgumentType": null, + "AggregationInterval": null, + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "HoverMode": "none", + "Label": { + "DisplayMode": "standard", + "RotationAngle": 90, + "OverlappingBehavior": "hide" + }, + "Position": "bottom", + "Title": null, + "Visible": true, + "Width": 1, + "WorkdaysOnly": false + }, + "CommonAnnotationSettingsDto": { + "Argument": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Description": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Height": -1, + "Image": null, + "OffsetX": -1, + "OffsetY": -1, + "PaddingLeftRight": 10, + "PaddingTopBottom": 10, + "Series": null, + "Text": null, + "TooltipEnabled": true, + "Type": null, + "Value": null, + "Width": 0, + "WordWrap": "normal", + "X": 0, + "Y": 0 + }, + "CommonAxisSettingsDto": { + "Grid": { + "Color": "#d3d3d3", + "Visible": false, + "Width": 1 + }, + "Title": null, + "Visible": true, + "Width": 1 + }, + "CommonPaneSettingsDto": { + "BackgroundColor": null + }, + "CommonSeriesSettingsDto": { + "ArgumentField": "arg", + "Axis": null, + "BarOverlapGroup": null, + "BarPadding": 0, + "BarWidth": 0, + "Color": null, + "CornerRadius": 0, + "DashStyle": "solid", + "IgnoreEmptyPoints": false, + "Pane": null, + "RangeValue1Field": "val1", + "RangeValue2Field": "val2", + "SelectionMode": "none", + "ShowInLegend": true, + "Type": null, + "ValueField": null, + "Visible": true, + "Width": 2, + "Label": null + }, + "CrosshairDto": { + "Color": "#f05b41", + "DashStyle": "dot", + "Enabled": false, + "Width": 1, + "HorizontalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + }, + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "VerticalLine": { + "Color": "#f05b41", + "DashStyle": "dot", + "Label": { + "BackgroundColor": "#f05b41", + "CustomizeText": null, + "Font": { + "Color": "#FFFFFF", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Visible": false, + "Format": null + }, + "Visible": true, + "Width": 1 + } + }, + "ExportDto": { + "BackgroundColor": "#FFFFFF", + "Enabled": true, + "AllowExportSelectedData": false, + "Margin": 10, + "PrintingEnabled": true + }, + "LegendDto": { + "BackgroundColor": null, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "ColumnCount": 0, + "Orientation": "vertical", + "Position": "outside", + "RowCount": 0, + "Title": null, + "Visible": true + }, + "MarginDto": { + "Bottom": 0, + "Left": 0, + "Right": 0, + "Top": 0 + }, + "PanesDto": [], + "ScrollBarDto": { + "Color": "gray", + "Offset": 5, + "Position": "top", + "Visible": false, + "Width": 10 + }, + "SeriesDto": [], + "SizeDto": { + "UseSize": false, + "Width": 400, + "Height": 200 + }, + "TitleDto": { + "Text": null, + "VerticalAlignment": "top", + "HorizontalAlignment": "center", + "Subtitle": null, + "TextOverflow": "ellipsis", + "WordWrap": null + }, + "TooltipDto": { + "ArgumentFormat": null, + "ArrowLength": 10, + "Border": { + "Color": "#d3d3d3", + "CornerRadius": 0, + "DashStyle": "solid", + "Visible": false, + "Width": 1 + }, + "Color": "#ffffff", + "Enabled": false, + "Font": { + "Color": "#000000", + "Family": "\u0022Segoe UI\u0022, \u0022Helvetica Neue\u0022, \u0022Trebuchet MS\u0022, Verdana, sans-serif", + "Size": 12, + "Weight": 400 + }, + "Format": null, + "Location": "center", + "PaddingLeftRight": 18, + "PaddingTopBottom": 15, + "Shared": false + }, + "ValueAxisDto": [], + "ZoomAndPanDto": { + "AllowMouseWheel": true, + "AllowTouchGestures": true, + "ArgumentAxis": "none", + "DragToZoom": false, + "PanKey": "shift", + "ValueAxis": "none", + "DragBoxStyle": { + "Color": null, + "Opacity": 0 + } + }, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + "Fields": [ + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Id", + "CaptionName": "App.Listform.ListformField.Id", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": false, + "IsActive": true, + "Width": 0, + "ListOrderNo": 1, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": null, + "EditGroupOrderNo": null, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Name", + "CaptionName": "App.Listform.ListformField.Name", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 2, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 2, + "EditorOptions": "{\u0022maxLength\u0022: 300, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "MilestoneId", + "CaptionName": "App.Listform.ListformField.MilestoneId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 3, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Milestone WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 2, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": "{\u0022searchEnabled\u0022: true, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Status", + "CaptionName": "App.Listform.ListformField.Status", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 4, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 1, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "[{\u0022key\u0022: \u0022Taslak\u0022, \u0022name\u0022: \u0022Taslak\u0022}, {\u0022key\u0022: \u0022Devam Ediyor\u0022, \u0022name\u0022: \u0022Devam Ediyor\u0022}, {\u0022key\u0022: \u0022Tamamland\u0131\u0022, \u0022name\u0022: \u0022Tamamland\u0131\u0022}, {\u0022key\u0022: \u0022\u0130ptal\u0022, \u0022name\u0022: \u0022\u0130ptal\u0022}]" + }, + "ValidationRuleDto": [ + { + "Type": "required", + "Message": null, + "IgnoreEmptyValue": false, + "Reevaluate": true, + "ComparisonType": "", + "Pattern": "", + "Max": null, + "Min": null, + "Trim": true + } + ], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 3, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "AssigneeIds", + "CaptionName": "App.Listform.ListformField.AssigneeIds", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 5, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], UserName AS [Name] FROM dbo.AbpUsers WHERE IsDeleted = 0 ORDER BY UserName" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 4, + "EditGroupOrderNo": 1, + "EditorType2": "dxTagBox", + "ColSpan": 1, + "EditorOptions": "{\u0022showSelectionControls\u0022: true, \u0022maxDisplayedTags\u0022: 3, \u0022searchEnabled\u0022: true, \u0022multiline\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": { + "ShowClearButton": true, + "ShowSelectionControls": true, + "MaxDisplayedTags": 3, + "ShowMultiTagOnly": false, + "ApplyValueMode": "useButtons", + "SearchEnabled": true, + "AcceptCustomValue": false + }, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "TagIds", + "CaptionName": "App.Listform.ListformField.TagIds", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 6, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Tag WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 5, + "EditGroupOrderNo": 1, + "EditorType2": "dxTagBox", + "ColSpan": 1, + "EditorOptions": "{\u0022showSelectionControls\u0022: true, \u0022maxDisplayedTags\u0022: 3, \u0022searchEnabled\u0022: true, \u0022multiline\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": { + "ShowClearButton": true, + "ShowSelectionControls": true, + "MaxDisplayedTags": 3, + "ShowMultiTagOnly": false, + "ApplyValueMode": "useButtons", + "SearchEnabled": true, + "AcceptCustomValue": false + }, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "CustomerId", + "CaptionName": "App.Listform.ListformField.CustomerId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 7, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Customer WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 6, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": "{\u0022searchEnabled\u0022: true, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "CustomerContact", + "CaptionName": "App.Listform.ListformField.CustomerContact", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 8, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 7, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 1, + "EditorOptions": "{\u0022maxLength\u0022: 200}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "PlannedHours", + "CaptionName": "App.Listform.ListformField.PlannedHours", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 9, + "SourceDbType": 7, + "CultureName": "en", + "DataType": "number", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 8, + "EditGroupOrderNo": 1, + "EditorType2": "dxNumberBox", + "ColSpan": 1, + "EditorOptions": "{\u0022format\u0022: {\u0022type\u0022: \u0022fixedPoint\u0022, \u0022precision\u0022: 2}}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "ProgressPercent", + "CaptionName": "App.Listform.ListformField.ProgressPercent", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 10, + "SourceDbType": 7, + "CultureName": "en", + "DataType": "number", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 9, + "EditGroupOrderNo": 1, + "EditorType2": "dxNumberBox", + "ColSpan": 1, + "EditorOptions": "{\u0022format\u0022: {\u0022type\u0022: \u0022fixedPoint\u0022, \u0022precision\u0022: 2}, \u0022min\u0022: 0, \u0022max\u0022: 100}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "SalesOrderLine", + "CaptionName": "App.Listform.ListformField.SalesOrderLine", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 11, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 10, + "EditGroupOrderNo": 1, + "EditorType2": "dxTextBox", + "ColSpan": 2, + "EditorOptions": "{\u0022maxLength\u0022: 300}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "PlannedStartDate", + "CaptionName": "App.Listform.ListformField.PlannedStartDate", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 12, + "SourceDbType": 6, + "CultureName": "en", + "DataType": "datetime", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 11, + "EditGroupOrderNo": 1, + "EditorType2": "dxDateBox", + "ColSpan": 1, + "EditorOptions": "{\u0022type\u0022: \u0022datetime\u0022, \u0022displayFormat\u0022: \u0022dd.MM.yyyy HH:mm\u0022, \u0022useMaskBehavior\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "PlannedEndDate", + "CaptionName": "App.Listform.ListformField.PlannedEndDate", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 13, + "SourceDbType": 6, + "CultureName": "en", + "DataType": "datetime", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 12, + "EditGroupOrderNo": 1, + "EditorType2": "dxDateBox", + "ColSpan": 1, + "EditorOptions": "{\u0022type\u0022: \u0022datetime\u0022, \u0022displayFormat\u0022: \u0022dd.MM.yyyy HH:mm\u0022, \u0022useMaskBehavior\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "ParentTaskId", + "CaptionName": "App.Listform.ListformField.ParentTaskId", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 14, + "SourceDbType": 9, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 2, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM dbo.Prj_T_Task WHERE IsDeleted = 0 ORDER BY Name" + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 13, + "EditGroupOrderNo": 1, + "EditorType2": "dxSelectBox", + "ColSpan": 1, + "EditorOptions": "{\u0022searchEnabled\u0022: true, \u0022showClearButton\u0022: true}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "IsFavorite", + "CaptionName": "App.Listform.ListformField.IsFavorite", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 15, + "SourceDbType": 3, + "CultureName": "en", + "DataType": "boolean", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 14, + "EditGroupOrderNo": 1, + "EditorType2": "dxCheckBox", + "ColSpan": 1, + "EditorOptions": null, + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + }, + { + "EditType": null, + "ListFormCode": "App.Prj.Tasks", + "RoleId": null, + "UserId": null, + "ColumnJoinTableDto": { + "JoinType": null, + "TableName": null, + "JoinFieldName": null, + "BaseTableJoinFieldName": null, + "SelectFieldName": null, + "FieldNameAlias": null, + "JoinCondition2": "AND", + "JoinFieldName2": null, + "BaseTableJoinFieldName2_OrValue": null + }, + "FieldName": "Description", + "CaptionName": "App.Listform.ListformField.Description", + "PlaceHolder": null, + "ReadOnly": false, + "Visible": true, + "IsActive": true, + "Width": 0, + "ListOrderNo": 16, + "SourceDbType": 16, + "CultureName": "en", + "DataType": "string", + "SortIndex": 0, + "SortDirection": null, + "AllowSearch": true, + "AllowEditing": true, + "AllowAdding": true, + "ColumnCssClass": null, + "ColumnCssValue": null, + "BandName": null, + "ColumnFilterDto": { + "AllowFiltering": true, + "FilterOperations": null, + "SelectedFilterOperation": null, + "FilterValue": null + }, + "ColumnHeaderDto": { + "AllowHeaderFiltering": true, + "AllowSearch": false, + "DataSource": null, + "DataSourceString": "" + }, + "ColumnGroupingDto": { + "AllowGrouping": true, + "GroupIndex": null, + "AutoExpandGroup": false + }, + "ColumnCustomizationDto": { + "Fixed": false, + "FixedPosition": "left", + "AllowReordering": true + }, + "ColumnTotalSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "ColumnGroupSummaryDto": { + "SummaryType": null, + "ValueFormat": null, + "ShowInGroupFooter": false, + "AlignByColumn": false, + "DisplayFormat": null, + "ShowInColumn": null + }, + "LookupDto": { + "DataSourceType": 0, + "ValueExpr": "Key", + "DisplayExpr": "Name", + "CascadeRelationField": null, + "CascadeFilterOperator": "=", + "CascadeParentFields": null, + "CascadeEmptyFields": null, + "LookupQuery": null + }, + "ValidationRuleDto": [], + "ColumnStylingDto": [], + "PermissionDto": { + "Deny": false, + "C": "App.Prj.Tasks.Create", + "R": "App.Prj.Tasks", + "U": "App.Prj.Tasks.Update", + "E": true, + "I": true + }, + "CanRead": false, + "CanCreate": false, + "CanUpdate": false, + "CanExport": false, + "DefaultValue": null, + "DefaultValueType": 0, + "PivotSettingsDto": { + "IsPivot": true, + "Expanded": false, + "SortOrder": "asc", + "Area": "filter", + "Format": null, + "SummaryType": null, + "GroupInterval": "", + "WordWrapEnabled": false + }, + "Alignment": null, + "Format": null, + "EditOrderNo": 1, + "EditGroupOrderNo": 2, + "EditorType2": "dxHtmlEditor", + "ColSpan": 1, + "EditorOptions": "{\u0022valueType\u0022: \u0022html\u0022, \u0022height\u0022: 320, \u0022toolbar\u0022: {\u0022multiline\u0022: false, \u0022items\u0022: [\u0022undo\u0022, \u0022redo\u0022, \u0022separator\u0022, \u0022bold\u0022, \u0022italic\u0022, \u0022strike\u0022, \u0022underline\u0022, \u0022separator\u0022, \u0022alignLeft\u0022, \u0022alignCenter\u0022, \u0022alignRight\u0022, \u0022alignJustify\u0022, \u0022separator\u0022, \u0022orderedList\u0022, \u0022bulletList\u0022, \u0022separator\u0022, \u0022header\u0022, \u0022separator\u0022, \u0022color\u0022, \u0022background\u0022, \u0022separator\u0022, \u0022link\u0022, \u0022image\u0022, \u0022separator\u0022, \u0022clear\u0022, \u0022codeBlock\u0022, \u0022blockquote\u0022]}}", + "GridBoxOptions": null, + "TagBoxOptions": null, + "ImageUploadOptions": null, + "EditorScript": null, + "LastModificationTime": null, + "LastModifierId": null, + "CreationTime": "0001-01-01T00:00:00", + "CreatorId": null, + "Id": "00000000-0000-0000-0000-000000000000" + } + ], + "IsDeletedField": true, + "IsCreatedField": true, + "InsertedRecords": { + "LanguageKeys": [ + "App.Prj.Tasks" + ], + "PermissionGroupNames": [], + "PermissionNames": [ + "App.Prj.Tasks", + "App.Prj.Tasks.Create", + "App.Prj.Tasks.Update", + "App.Prj.Tasks.Delete", + "App.Prj.Tasks.Export", + "App.Prj.Tasks.Import", + "App.Prj.Tasks.Note" + ], + "MenuCodes": [ + "App.Prj.Tasks" + ], + "DataSourceCodes": [] + } +} \ No newline at end of file diff --git a/ui/src/proxy/admin/wizard/models.ts b/ui/src/proxy/admin/wizard/models.ts index 20c75a7a..3ba7e668 100644 --- a/ui/src/proxy/admin/wizard/models.ts +++ b/ui/src/proxy/admin/wizard/models.ts @@ -1,5 +1,7 @@ +import { ColumnFormatEditDto } from '@/proxy/admin/list-form-field/models' import { GanttOptionDto, + GridOptionsEditDto, SchedulerOptionDto, SubFormDto, TodoOptionDto, @@ -43,6 +45,11 @@ export interface ListFormWizardDto { editFileName?: string wizardName: string + /** + * Wizard'ın ilk deploy edildiği an. Dosya adı tarih taşımadığı için seeder dosyaları bu + * damgaya göre sıralar; sunucu üretir, istemci göndermez. + */ + seededAt?: string listFormCode: string menuCode: string menuOrder: number @@ -168,6 +175,10 @@ export interface WizardSeedFileWizardDto extends Omit void onDelete: (node: MenuTreeNode & { id?: string }) => void + /** Aynı seviyedeki menüler; sıra değişimi bu liste üzerinden hesaplanır. */ + siblings: (MenuTreeNode & { id?: string })[] + index: number + onMove: ( + siblings: (MenuTreeNode & { id?: string })[], + index: number, + direction: -1 | 1, + ) => void } function TreeNode({ @@ -59,6 +69,9 @@ function TreeNode({ saving, onStartEdit, onDelete, + siblings, + index, + onMove, }: TreeNodeProps) { const hasChildren = node.children.length > 0 const isExpanded = expanded.has(node.code) @@ -114,6 +127,34 @@ function TreeNode({ +