Apply
Error executing template "/Designs/Kwpn/Paragraph/HorseDatabase.cshtml"
System.IO.IOException: The process cannot access the file 'D:\inetpub\wwwroot\www.kwpn.nl\Files\Templates\Designs\Kwpn\Translations.xml' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at Dynamicweb.Rendering.Translation.Source.WriteDocument(XmlDocument document)
at Dynamicweb.Rendering.Translation.Source.Save()
at Dynamicweb.Rendering.Translation.Source.UpdateTranslationSource(Source source, IEnumerable`1 newKeys, String designName, IEnumerable`1 cultures)
at Dynamicweb.Rendering.Template.TranslateText(String text, String defaultValue, String cultureName)
at Dynamicweb.Rendering.TemplateBase`1.Translate(String text, String defaultValue)
at CompiledRazorTemplates.Dynamic.RazorEngine_59a9e34a126441cd8241eb86cac1ddbb.Execute() in D:\inetpub\wwwroot\www.kwpn.nl\Files\Templates\Designs\Kwpn\Paragraph\HorseDatabase.cshtml:line 3388
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @using System 2 @using System.Linq 3 @using System.Text 4 @using Kwpn.Models.Constants 5 @using Kwpn.Repository.Helpers 6 @using Kwpn.Models.ApiModels @*Kwpn.Models.ApiModels is referenced because it is used in included pages - do not remove*@ 7 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 8 @functions { 9 string CreateHorseInfoTableRow(string label, string value, bool? capitalizeValue = false) 10 { 11 var capitalize = false; 12 if (capitalizeValue.HasValue && capitalizeValue.Value) 13 { 14 capitalize = true; 15 value = value.ToLower(); 16 } 17 var result = new StringBuilder(); 18 result.AppendLine("<div class=\"row\">"); 19 result.AppendFormat("<div class=\"col-xs-5 col-md-4\"><span class=\"label\">{0}</span></div>", label); 20 result.AppendFormat("<div class=\"col-xs-7 col-md-8\"><span class=\"value{0}\">{1}</span></div>", capitalize ? " capitalize" : "", string.IsNullOrWhiteSpace(value) ? "-" : value); 21 result.AppendLine("</div>"); 22 return result.ToString(); 23 } 24 25 string CreateInfoTableRow( 26 int sortNr, 27 string leftColumnValue, 28 string rightColumnValue, 29 bool? isHeader = false, 30 bool? capitalizeLeftColumn = false, 31 bool? capitilizeRightColumn = false, 32 bool boldLeftColumn = false, 33 bool colspanOnRightEmpty = false) 34 { 35 var capitalizeLeft = false; 36 var capitalizeRight = false; 37 38 var mod = "0"; 39 if (sortNr % 2 == 0) { mod = "1"; } 40 41 if (isHeader.HasValue && isHeader.Value) 42 { 43 leftColumnValue = string.Format("<b>{0}</b>", leftColumnValue.ToUpper()); 44 rightColumnValue = string.Format("<b>{0}</b>", rightColumnValue.ToUpper()); 45 capitalizeLeft = false; 46 capitalizeRight = false; 47 } 48 else 49 { 50 if (capitalizeLeftColumn.HasValue && capitalizeLeftColumn.Value) 51 { 52 capitalizeLeft = true; 53 leftColumnValue = leftColumnValue.ToLower(); 54 } 55 else 56 { 57 capitalizeLeft = false; 58 } 59 if (capitilizeRightColumn.HasValue && capitilizeRightColumn.Value) 60 { 61 capitalizeRight = true; 62 rightColumnValue = rightColumnValue.ToLower(); 63 } 64 else 65 { 66 capitalizeRight = false; 67 } 68 } 69 if (boldLeftColumn) 70 { 71 leftColumnValue = string.Format("<b>{0}</b>", leftColumnValue); 72 } 73 var result = new StringBuilder(); 74 result.AppendFormat("<div class=\"row mod-{0}\">", mod); 75 if (string.IsNullOrWhiteSpace(rightColumnValue) && colspanOnRightEmpty) 76 { 77 result.AppendFormat("<div class=\"col-xs-12\"><span class=\"leftValue{0}\">{1}</span></div>", capitalizeLeft ? " capitalize" : "", string.IsNullOrWhiteSpace(leftColumnValue) ? "-" : leftColumnValue); 78 } 79 else 80 { 81 result.AppendFormat("<div class=\"col-xs-5 col-md-4\"><span class=\"leftValue{0}\">{1}</span></div>", capitalizeLeft ? " capitalize" : "", string.IsNullOrWhiteSpace(leftColumnValue) ? "-" : leftColumnValue); 82 result.AppendFormat("<div class=\"col-xs-7 col-md-8\"><span class=\"rightValue{0}\">{1}</span></div>", capitalizeRight ? " capitalize" : "", string.IsNullOrWhiteSpace(rightColumnValue) ? "-" : rightColumnValue); 83 } 84 85 result.AppendLine("</div>"); 86 return result.ToString(); 87 } 88 89 } 90 @{ 91 var culture = GetGlobalValue("Global:Area.LongLang"); 92 var language = GetGlobalValue("Global:Area.Lang"); 93 94 var currentDatabaseUser = Kwpn.Repository.Repositories.KwpnUsers.CurrentUser(); 95 96 var pageService = new Dynamicweb.Content.PageService(); 97 var showGeneral = true; 98 99 // SEO: seoPage is used as base url for virtual pageviews 100 var seoPage = GetGlobalValue("Global:Pageview.Url"); 101 if (seoPage.Contains("?")) 102 { 103 seoPage = seoPage.Split('?')[0]; 104 } 105 106 // get animal code from querystring or form post, sample value: p-000306 107 var animalCode = System.Web.HttpContext.Current.Request.QueryString.Get(Translate("Horse", "Horse")); 108 if (string.IsNullOrWhiteSpace(animalCode)) { animalCode = System.Web.HttpContext.Current.Request.Form.Get(Translate("Horse", "Horse")); } 109 110 // get action from querystring or form post, sample value: evenementaanmelding 111 var actionParameter = "action"; 112 if (culture.Equals("nl-nl", StringComparison.InvariantCultureIgnoreCase)) { actionParameter = "actie"; } 113 var action = System.Web.HttpContext.Current.Request.QueryString.Get(actionParameter); 114 if (string.IsNullOrWhiteSpace(action)) { action = System.Web.HttpContext.Current.Request.Form.Get(actionParameter); } 115 116 // get action item id from querystring or form post: 117 var actionIdParameter = "actionid"; 118 if (culture.Equals("nl-nl", StringComparison.InvariantCultureIgnoreCase)) { actionIdParameter = "actieid"; } 119 var actionId = System.Web.HttpContext.Current.Request.QueryString.Get(actionIdParameter); 120 if (string.IsNullOrWhiteSpace(actionId)) { actionId = System.Web.HttpContext.Current.Request.Form.Get(actionIdParameter); } 121 122 // check redirect (for some features the user must be logged in) 123 LoginHelper.AuthorizeForDatabasePageContent(culture, action, actionId, animalCode); 124 125 var memberhipPageId = AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId); 126 127 128 var isCupEvent = action != null && action.Equals(Translate("ActionLink_SignUp_CupEvent"), StringComparison.OrdinalIgnoreCase); // cup events can have registrations for non kwpn horses 129 var noHorseNeeded = isCupEvent; 130 131 // actions (these values determine if an action is shown) 132 var horseHasMemberContentOverride = HorseHelper.HorseHasMemberContentOverride(animalCode); 133 var actionShow = false; 134 var actionRequestBreedingAdvice = false; 135 var actionSignUpInspectionEvent = false; 136 var actionSignUpCupEvent = isCupEvent; 137 var actionReportDeceasedHorse = false; 138 var actionRequestContinuedPassport = false; 139 var actionRequestDuplicate = false; 140 var actionRegisterHorseToName = false; 141 var actionRegisterEmbryo = false; 142 var actionRegisterFoal = false; 143 var actionReportHorseSold = false; 144 var actionVeterinarianRequestResearch = false; 145 var actionRequestGenomicBreedingValueTest = false; 146 var actionSellViaMarketplace = false; 147 var actionInbreedingCalculation = false; 148 var actionRequestPredicates = false; 149 var actionGetStallionAdvice = false; 150 var actionDnaPage = false; 151 var isMyHorse = false; 152 var isMyHorseAndConfirmed = false; 153 var isMare = false; 154 var isAlive = false; 155 var isApprovedStud = false; 156 var isBredByMe = false; 157 var isAvailableForResearch = false; 158 var showGeneticProfileBasedOnRegister = false; 159 var showGeneticProfileBasedOnOwnerSettings = true; 160 var hasBreeders = false; 161 var horseName = ""; 162 List<Kwpn.Models.ApiModels.PersonModel> breeders = null; 163 164 if (LoginHelper.MyKwpnIsOffline()) 165 { 166 <div class="break-grid content-container"> 167 <div class="break-grid-background"> 168 <div class="in-grid"> 169 <div class="row"> 170 <div class="col-xs-12 col-md-7"> 171 @Translate("MyKwpnIsOffline", "The back office is offline.") 172 </div> 173 </div> 174 </div> 175 </div> 176 </div> 177 } 178 else if (string.IsNullOrWhiteSpace(animalCode) && !noHorseNeeded) 179 { 180 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 181 <div class="break-grid content-container page-content-aside horse-search"> 182 @{ 183 var searchMyHorsesOnly = false; // this value is set by Kwpn.Repository.Helpers.SearchIntroHelper.GetSearchIntro 184 var searchTitle = Translate("SearchDatabaseFor", "Search database for"); 185 186 // get search form intro based on action 187 var formTitle = ""; 188 var formIntro = ""; 189 if (!string.IsNullOrWhiteSpace(action)) 190 { 191 formIntro = Kwpn.Repository.Helpers.SearchIntroHelper.GetSearchIntro( 192 action, 193 actionId, 194 GetGlobalValue("Global:Area.LongLang"), 195 out formTitle, 196 out searchMyHorsesOnly); 197 198 if (searchMyHorsesOnly) 199 { 200 searchTitle = Translate("SearchMyHorsesFor", "Search my horses for"); 201 } 202 203 } 204 205 var horsePageUrl = GetGlobalValue("Global:Pageview.Url.Raw"); 206 if (horsePageUrl.Contains("?")) 207 { 208 horsePageUrl = string.Format("{0}&{1}=", horsePageUrl, Translate("Horse", "Horse")); 209 } 210 else 211 { 212 horsePageUrl = string.Format("{0}?{1}=", horsePageUrl, Translate("Horse", "Horse")); 213 } 214 215 // if action is only for alive horses, then set hideShowDeceasedOption to false 216 var hideShowDeceasedOption = !string.IsNullOrWhiteSpace(action) && (bool)action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase); 217 218 bool isResearchAdd = !string.IsNullOrWhiteSpace(action) && (bool)action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase); 219 220 bool userisveterinarian = Kwpn.Repository.Helpers.UserHelper.CheckIfVeterinarian(); 221 222 bool isRegisterHorse = !string.IsNullOrWhiteSpace(action) && (bool)action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase); 223 224 if (searchMyHorsesOnly) 225 { 226 <div class="break-grid content-container hidden" id="refreshcontainer"> 227 <div class="break-grid-background"> 228 <div class="in-grid"> 229 <div class="row"> 230 <div class="col-xs-12 col-md-7"> 231 <i class='fa fa-refresh fa-spin fa-3x fa-fw'></i><span class="reloading-text">@Translate("HorseListReloading", "One moment please. We are fetching your horses from our back-end system.")</span> 232 </div> 233 </div> 234 </div> 235 </div> 236 </div> 237 } 238 } 239 240 @*SEARCH*@ 241 <div class="break-grid-background" id="horse-search-search"> 242 <div class="in-grid"> 243 <div class="row"> 244 <div class="background-head-aside-xs"> 245 246 <div class="background-head-xs"> 247 <div class="page-header"> 248 <div class="col-xs-12"> 249 <div class="row"> 250 <div class="col-xs-12"> 251 <h1>@searchTitle:</h1> 252 @if (!string.IsNullOrWhiteSpace(formIntro)) 253 { 254 <p>@formIntro</p> 255 } 256 </div> 257 </div> 258 </div> 259 </div> 260 </div> 261 262 <div class="background-aside-xs"> 263 <aside class="col-xs-12 col-md-4 col-md-push-8"> 264 265 @*MEMBERSHIP CALL TO ACTION*@ 266 @*<div class="page-aside"> 267 @if (!Kwpn.Repository.Helpers.LoginHelper.CurrentUserIsLoggedIn()) 268 { 269 var becomeMemberPageId = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId); 270 if (!string.IsNullOrWhiteSpace(becomeMemberPageId)) 271 { 272 var becomeMemberPageUrl = string.Format("/Default.aspx?ID={0}", becomeMemberPageId); 273 <h2 id="become-member-list-header" data-childId="become-member-list" class="notactive"><span>@Translate("NoAccount?", "No KWPN Account?")</span></h2> 274 <ul id="become-member-list" class="aside-content notactive"> 275 <li><a href='@becomeMemberPageUrl'>@Translate("BecomeMemberNow", "Become a member now")</a></li> 276 </ul> 277 } 278 } 279 </div>*@ 280 281 <!-- /204473129/DatabaseZoekfunctie/Banner1 --> 282 <div id='div-gpt-ad-banner1-1' class="google-container google-container--size--b google-container--center google-container--margin-top"> 283 <script> 284 googletag.cmd.push(function () { googletag.display('div-gpt-ad-banner1-1'); }); 285 </script> 286 </div> 287 288 </aside> 289 </div> 290 291 </div> 292 293 <article class="col-xs-12 col-md-7 col-md-pull-4 page-content"> 294 @if (!searchMyHorsesOnly) 295 { 296 <div class="w-section inverse"> 297 <div class="w-box sign-in-wr bg-5"> 298 <div class="form-body"> 299 <div class="row"> 300 <div class="col-xs-12" id="DatabaseSearchForm"> 301 302 <div class="form-inline"> 303 304 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_LifeNumber" value="LifeNumber" @((userisveterinarian || isRegisterHorse) ? "checked=\"checked\"" : "") /> 305 <label for="SearchTypeSelector_LifeNumber" class="radio-label">@Translate("DatabaseSearchForm_ChipLifeNumber", "Chip- or Life number")</label> 306 307 <br /> 308 309 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_Pedigree" value="Pedigree" /> 310 <label for="SearchTypeSelector_Pedigree" class="radio-label">@Translate("DatabaseSearchForm_Pedigree", "Pedigree")</label> 311 312 <br /> 313 314 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_FreeSearch" value="FreeSearch" @(!(userisveterinarian || isRegisterHorse) ? "checked=\"checked\"" : "") /> 315 <label for="SearchTypeSelector_FreeSearch" class="radio-label">@Translate("DatabaseSearchForm_FreeSearch", "Free search / studs")</label> 316 317 <br /> 318 319 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_Database" value="Database" /> 320 <label for="SearchTypeSelector_Database" class="radio-label">@Translate("DatabaseSearchForm_Database", "Stud database")</label> 321 322 <br /> 323 324 <input type="radio" name="SearchTypeSelector" id="SearchTypeSelector_BreedingValues" value="BreedingValues" /> 325 <label for="SearchTypeSelector_BreedingValues" class="radio-label">@Translate("DatabaseSearchForm_BreedingValues", "Breeding values")</label> 326 327 </div> 328 329 330 </div> 331 </div> 332 </div> 333 334 @*CHIP/LIFENUMBER SEARCH*@ 335 <div id="DatabaseSearchForm_LifeNumber" class="form-body horse-search-form hidden"> 336 <form name="DatabaseSearchForm_LifeNumberForm" id="DatabaseSearchForm_LifeNumberForm"> 337 <div class="row"> 338 <div class="col-xs-12"> 339 340 @*CHIP/LIFENUMBER*@ 341 <div class="form-inline"> 342 <label class="control-label col-xs-12 col-md-4" 343 for="DatabaseSearchForm_LifeNumber_LifeNumber">@Translate("DatabaseSearchForm_ChipLifeNumber", "Chip- or Life number")</label> 344 <input type="text" 345 class="form-control hide-hints" 346 id="DatabaseSearchForm_LifeNumber_LifeNumber" 347 name="DatabaseSearchForm_LifeNumber_LifeNumber" 348 value="" 349 required /> 350 </div> 351 352 @*SUBMIT*@ 353 <button type="submit" 354 class="btn btn-search-submit" 355 id="DatabaseSearchForm_LifeNumber_Submit"> 356 @Translate("Search", "Search") 357 </button> 358 359 </div> 360 </div> 361 </form> 362 </div> 363 364 @*PEDIGREE SEARCH*@ 365 <div id="DatabaseSearchForm_Pedigree" class="form-body horse-search-form hidden"> 366 <form name="DatabaseSearchForm_PedigreeForm" id="DatabaseSearchForm_PedigreeForm"> 367 <div class="row"> 368 <div class="col-xs-12"> 369 370 @*FATHER*@ 371 <div class="form-inline"> 372 <label class="control-label col-xs-12 col-md-4" 373 for="DatabaseSearchForm_PedigreeForm_Father">@Translate("FathersName", "Father")</label> 374 <input type="text" 375 class="form-control hide-hints" 376 id="DatabaseSearchForm_PedigreeForm_Father" 377 name="DatabaseSearchForm_PedigreeForm_Father" 378 value="" 379 required /> 380 </div> 381 382 @*MOTHERSFATHER*@ 383 <div class="form-inline"> 384 <label class="control-label col-xs-12 col-md-4" 385 for="DatabaseSearchForm_PedigreeForm_MothersFather">@Translate("MothersFathersName", "Mothers father")</label> 386 <input type="text" 387 class="form-control hide-hints" 388 id="DatabaseSearchForm_PedigreeForm_MothersFather" 389 name="DatabaseSearchForm_PedigreeForm_MothersFather" 390 value="" 391 required /> 392 </div> 393 394 @*YEAROFBIRTH*@ 395 <div class="form-inline"> 396 <label class="control-label col-xs-12 col-md-4" 397 for="DatabaseSearchForm_PedigreeForm_YearOfBirth">@Translate("YearOfBirth", "Year of birth")</label> 398 <input type="text" 399 class="form-control" 400 id="DatabaseSearchForm_PedigreeForm_YearOfBirth" 401 name="DatabaseSearchForm_PedigreeForm_YearOfBirth" 402 value="" 403 pattern="^\d{4}$" /> 404 </div> 405 406 @*DECEASED HORSES*@ 407 @if (!hideShowDeceasedOption) 408 { 409 <div class="form-inline"> 410 <label class="control-label col-xs-12 col-md-4">@Translate("ShowDeceasedHorses", "Show deceased horses")</label> 411 <input type="checkbox" 412 id="DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses" 413 name="DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses" 414 value="true" /> 415 <label for="DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses" class="normal">@Translate("ShowDeceasedHorses_YesNo", "yes/no")</label> 416 </div> 417 } 418 419 @*SUBMIT*@ 420 <button type="submit" class="btn btn-search-submit" id="DatabaseSearchForm_Pedigree_Submit">@Translate("Search", "Search")</button> 421 </div> 422 </div> 423 </form> 424 </div> 425 426 @*FREE SEARCH*@ 427 <div id="DatabaseSearchForm_FreeSearch" class="form-body horse-search-form hidden"> 428 <form name="DatabaseSearchForm_FreeSearchForm" id="DatabaseSearchForm_FreeSearchForm"> 429 <div class="row"> 430 <div class="col-xs-12"> 431 432 @*SEARCH FOR*@ 433 <div class="form-inline"> 434 <label class="control-label col-xs-12 col-md-4" 435 for="DatabaseSearchForm_FreeSearchForm_Key">@Translate("SearchFor", "Search for")</label> 436 <input type="text" 437 class="form-control hide-hints" 438 id="DatabaseSearchForm_FreeSearchForm_Key" 439 name="DatabaseSearchForm_FreeSearchForm_Key" 440 value="" 441 placeholder="@Translate("SearchForPlaceholder", "(sports) name, father, mother, mothers father")" 442 required /> 443 </div> 444 445 @*BREEDING DIRECTION*@ 446 <div class="form-inline"> 447 <label class="control-label col-xs-12 col-md-4">@Translate("BreedingDirection", "Breeding direction")</label> 448 449 <div class="input-group"> 450 451 <input type="checkbox" 452 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection" 453 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" 454 value="@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" /> 455 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" class="normal">@Translate("Dressage", "Dressage")</label> 456 457 <br /> 458 459 <input type="checkbox" 460 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection" 461 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" 462 value="@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" /> 463 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" class="normal">@Translate("Geldinghorse", "Geldinghorse")</label> 464 465 <br /> 466 467 <input type="checkbox" 468 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection" 469 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen" 470 value="@Kwpn.Models.Enumerations.BreedingDirection.Springen" /> 471 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen" class="normal">@Translate("Jumping", "Jumping")</label> 472 473 <br /> 474 475 <input type="checkbox" 476 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection" 477 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" 478 value="@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" /> 479 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" class="normal">@Translate("HarnessHorse", "Harness horse")</label> 480 <br /> 481 <input type="checkbox" 482 name="DatabaseSearchForm_FreeSearchForm_BreedingDirection" 483 id="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" 484 value="@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" /> 485 <label for="DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" class="normal">@Translate("RidingHorse", "Riding horse")</label> 486 487 </div> 488 489 </div> 490 491 @*YEAROFBIRTH*@ 492 <div class="form-inline"> 493 <label class="control-label col-xs-12 col-md-4" 494 for="DatabaseSearchForm_FreeSearchForm_YearOfBirth">@Translate("YearOfBirth", "Year of birth")</label> 495 <input type="text" 496 class="form-control" 497 id="DatabaseSearchForm_FreeSearchForm_YearOfBirth" 498 name="DatabaseSearchForm_FreeSearchForm_YearOfBirth" 499 value="" 500 pattern="^\d{4}$" /> 501 </div> 502 503 504 @*DECEASED HORSES*@ 505 @if (!hideShowDeceasedOption) 506 { 507 <div class="form-inline"> 508 <label class="control-label col-xs-12 col-md-4">@Translate("ShowDeceasedHorses", "Show deceased horses")</label> 509 <input type="checkbox" 510 id="DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses" 511 name="DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses" 512 value="true" /> 513 <label for="DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses" class="normal">@Translate("ShowDeceasedHorses_YesNo", "yes/no")</label> 514 </div> 515 } 516 517 518 @*SUBMIT*@ 519 <button type="submit" class="btn btn-search-submit" id="DatabaseSearchForm_FreeSearch_Submit">@Translate("FreeSearch", "Search in all our horses")</button> 520 </div> 521 </div> 522 </form> 523 524 <div class="row"> 525 <div class="col-xs-12"> 526 <div class="google-container google-container--size--a google-container--center google-container--margin-top"> 527 <!--onderstaande afbeelding moet worden verwijderd en vervangen worden door google admanager data--> 528 </div> 529 </div> 530 </div> 531 </div> 532 533 @*DATABASE SEARCH*@ 534 <div id="DatabaseSearchForm_Database" class="form-body horse-search-form hidden"> 535 <form name="DatabaseSearchForm_DatabaseForm" id="DatabaseSearchForm_DatabaseForm"> 536 <div class="row"> 537 <div class="col-xs-12"> 538 539 @*SEARCH FOR*@ 540 <div class="form-inline"> 541 <label class="control-label col-xs-12 col-md-4" 542 for="DatabaseSearchForm_DatabaseForm_Key">@Translate("SearchFor", "Search for")<i class="fa fa-asterisk fixed" aria-hidden="true"></i></label> 543 <input type="text" 544 class="form-control hide-hints" 545 id="DatabaseSearchForm_DatabaseForm_Key" 546 name="DatabaseSearchForm_DatabaseForm_Key" 547 value="" 548 placeholder="@Translate("SearchForPlaceholder", "(sports) name, father, mother, mothers father")" 549 required /> 550 </div> 551 552 @*BREEDING DIRECTION*@ 553 <div class="form-inline"> 554 <label class="control-label col-xs-12 col-md-4">@Translate("BreedingDirection", "Breeding direction")<i class="fa fa-asterisk fixed" aria-hidden="true"></i></label> 555 556 <div class="input-group"> 557 <fieldset data-checkbox-list="DatabaseSearchForm_DatabaseForm_BreedingDirection" 558 data-checkbox-list-dependencies="DatabaseSearchForm_DatabaseForm_Key"> 559 560 <input type="checkbox" 561 name="DatabaseSearchForm_DatabaseForm_BreedingDirection" 562 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" 563 value="@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" 564 required /> 565 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur" class="normal">@Translate("Dressage", "Dressage")</label> 566 567 <br /> 568 569 <input type="checkbox" 570 name="DatabaseSearchForm_DatabaseForm_BreedingDirection" 571 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" 572 value="@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" 573 required /> 574 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard" class="normal">@Translate("Geldinghorse", "Geldinghorse")</label> 575 576 <br /> 577 578 <input type="checkbox" 579 name="DatabaseSearchForm_DatabaseForm_BreedingDirection" 580 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen" 581 value="@Kwpn.Models.Enumerations.BreedingDirection.Springen" 582 required /> 583 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen" class="normal">@Translate("Jumping", "Jumping")</label> 584 585 <br /> 586 587 <input type="checkbox" 588 name="DatabaseSearchForm_DatabaseForm_BreedingDirection" 589 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" 590 value="@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" 591 required /> 592 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard" class="normal">@Translate("HarnessHorse", "Harness horse")</label> 593 <br /> 594 <input type="checkbox" 595 name="DatabaseSearchForm_DatabaseForm_BreedingDirection" 596 id="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" 597 value="@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" 598 required /> 599 <label for="DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard" class="normal">@Translate("RidingHorse", "Riding horse")</label> 600 </fieldset> 601 </div> 602 603 </div> 604 605 @*YEAROFBIRTH*@ 606 <div class="form-inline"> 607 <label class="control-label col-xs-12 col-md-4" 608 for="DatabaseSearchForm_DatabaseForm_YearOfBirth">@Translate("YearOfBirth", "Year of birth")</label> 609 <input type="text" 610 class="form-control" 611 id="DatabaseSearchForm_DatabaseForm_YearOfBirth" 612 name="DatabaseSearchForm_DatabaseForm_YearOfBirth" 613 value="" 614 pattern="^\d{4}$" /> 615 </div> 616 617 @*DECEASED HORSES*@ 618 @if (!hideShowDeceasedOption) 619 { 620 <div class="form-inline"> 621 <label class="control-label col-xs-12 col-md-4">@Translate("ShowDeceasedHorses", "Show deceased horses")</label> 622 <input type="checkbox" 623 id="DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses" 624 name="DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses" 625 value="true" /> 626 <label for="DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses" class="normal">@Translate("ShowDeceasedHorses_YesNo", "yes/no")</label> 627 </div> 628 } 629 630 @*APPROVED STUDS*@ 631 <input type="hidden" id="DatabaseSearchForm_DatabaseForm_ApprovedStuds" name="DatabaseSearchForm_DatabaseForm_ApprovedStuds" value="true" /> 632 633 @*SUBMIT*@ 634 <button type="submit" class="btn btn-search-submit" id="DatabaseSearchForm_Database_Submit">@Translate("StudSearch", "Stud search")</button> 635 636 <div class="form-inline"> 637 <br /><small><i class="fa fa-asterisk fixed" aria-hidden="true"></i><i class="fa fa-asterisk fixed" aria-hidden="true"></i> @Translate("RequiredFieldOfTwoHorseSearch", "At least one is required")</small> 638 </div> 639 640 @*ALL STUDS*@ 641 <small>@Translate("ShowAllStudsIntro", "Get all approved stallions by using the link below:")</small> 642 <br /> 643 <a href="javascript:void(0);" id="btn-all-studs" class="orange_arrow_link">@Translate("ShowAllStuds", "Show all studs")</a> 644 </div> 645 </div> 646 </form> 647 </div> 648 649 650 651 @*BREEDING VALUES SEARCH*@ 652 <div id="DatabaseSearchForm_BreedingValues" class="form-body horse-search-form hidden"> 653 654 <p id="breedingValuesAdditionalText" class="hidden"> 655 @Translate("DatabaseSearchForm_BreedingValuesAdditionalText", "") 656 </p> 657 658 <form name="DatabaseSearchForm_BreedingValuesForm" id="DatabaseSearchForm_BreedingValuesForm"> 659 660 <div class="row hidden" id="DatabaseSearchForm_BreedingValuesForm_ReSearch"> 661 <div class="col-xs-12"> 662 <label class="control-label col-sm-4">&nbsp;</label> 663 <div class="breedingValueResearchButtonContainer"> 664 <button>@Translate("BreedingValuesReUse", "Re-use previous breeding value settings")</button> 665 <br /> 666 <br /> 667 <span>@Translate("BreedingValuesReUseOr", "Or")</span> 668 <br /> 669 <br /> 670 </div> 671 672 </div> 673 </div> 674 675 <div class="row"> 676 <div class="col-xs-12"> 677 678 <div class="form-group"> 679 <div class="form-inline not-in-form"> 680 <label class="control-label col-sm-4" for="DatabaseSearchForm_BreedingValues_BreedingDirection">@Translate("BreedingDirection", "Breeding direction")</label> 681 <select class="form-control hide-hints" id="DatabaseSearchForm_BreedingValues_BreedingDirection" name="DatabaseSearchForm_BreedingValues_BreedingDirection" required> 682 <option value="" selected>@Translate("Select")</option> 683 <option value="FOKR-000005">@Translate("Fokrichting_RPGP", "Riding horse / Gelderlander")</option> 684 <option value="FOKR-000007">@Translate("Fokrichting_TP", "Harness horse")</option> 685 </select> 686 </div> 687 </div> 688 689 <div class="form-group" id="list-breeding-values"></div> 690 691 692 @*SUBMIT*@ 693 <button type="submit" 694 class="btn btn-search-submit" 695 id="DatabaseSearchForm_BreedingValues_Submit"> 696 @Translate("Search", "Search") 697 </button> 698 699 </div> 700 </div> 701 </form> 702 </div> 703 704 </div> 705 </div> 706 707 } 708 </article> 709 710 </div> 711 </div> 712 </div> 713 714 @*RESULTS*@ 715 <div class="break-grid-background hidden" id="horse-search-results"> 716 <div class="in-grid"> 717 <div class="row"> 718 <div class="background-head-aside-xs"> 719 <div class="background-head-xs"> 720 <div class="page-header"> 721 <div class="col-xs-12"> 722 723 @if (searchMyHorsesOnly) 724 { 725 // show form intro based on action 726 <div class="row"> 727 <div class="col-xs-12"> 728 <span id="searched-for"></span> 729 <div id="search-result-count" data-default="@Translate("ZeroResults", "0 results")">@Translate("ZeroResults", "0 results")</div> 730 @{ 731 // show search form intro 732 if (!string.IsNullOrWhiteSpace(formTitle)) 733 { 734 <h1>@formTitle</h1> 735 if (!string.IsNullOrWhiteSpace(formTitle)) 736 { 737 <p>@formIntro</p> 738 } 739 } 740 else 741 { 742 <h1>@searchTitle:</h1> 743 } 744 } 745 </div> 746 </div> 747 } 748 else 749 { 750 // show search result header 751 <div class="row"> 752 <div class="col-xs-12 col-md-8"> 753 <div id="search-result-count" data-default="@Translate("ZeroResults", "0 results")">@Translate("ZeroResults", "0 results")</div> 754 <h1>@Translate("SearchResultsFor", "Search results for"): <span id="searched-for"></span></h1> 755 </div> 756 <div class="col-xs-12 col-md-4"> 757 <a href="javascript:void(0);" id="search-again" class="orange_arrow_link pull-right">@Translate("SearchAgain", "Search again")</a> 758 </div> 759 </div> 760 } 761 </div> 762 </div> 763 </div> 764 </div> 765 766 <article class="col-xs-12 page-content"> 767 <div class="row hidden" id="horseSearchResults"> 768 769 <div id="tooManyResults" class="col-xs-12 col-md-7 hidden"> 770 <p>@Translate("TooManySearchResults2", "Your search gave <span id='horseListCounter2'></span> results, of which we show the first 100.")</p> 771 </div> 772 773 <div id="noResults" class="col-xs-12 col-md-7 hidden">@Translate("ZeroResultsText", "Your search gave no results")</div> 774 775 <div id="refine" class="col-xs-12 col-md-7 hidden">@Translate("RefineSearch", "To many results found, please refine your search.")</div> 776 777 <div class="col-xs-12 form-body" id="result-filter"> 778 779 <div class="row resultStyling"> 780 781 @if (searchMyHorsesOnly) 782 { 783 // show filter for attributes, just like the "my horses" page 784 <div class="col-xs-12 col-md-6"> 785 <div class="form-inline"> 786 <label class="control-label">@Translate("Attributes", "Attributes")</label><br /> 787 <input type="text" class="form-control" id="horsesFilter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' /> 788 </div> 789 </div> 790 <div class="col-xs-12 col-md-6"> 791 <a href="#" id="refresh-list-link"><i class="fa fa-refresh"></i> <abbr title="@Translate("Action_RefreshMyHorsesDataAbbr", "When refreshing the horse list we will fetch your horses from our back-end system. This may take a while.")">@Translate("Action_RefreshMyHorsesData", "Refresh my horses list")</abbr></a> 792 </div> 793 } 794 else 795 { 796 // show extended search options 797 <div class="col-xs-12 col-md-4"> 798 799 <div class="form-inline"> 800 <label class="control-label">@Translate("Attributes", "Attributes")</label><br /> 801 <input type="text" class="form-control" id="horsesFilter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' /> 802 </div> 803 804 <div class="form-inline selectdiv" id="yearOfApproval"> 805 <label class="control-label" for="horseFilterByYearOfApproval">@Translate("YearOfApproval", "Year of approval")</label> 806 <select class="form-control" name="horseFilterByYearOfApproval" id="horseFilterByYearOfApproval"> 807 <option value="">@Translate("Select", "Select")</option> 808 @for (int i = DateTime.Today.Year - 25; i <= DateTime.Today.Year; i++) 809 { 810 <option value="@i">@i</option> 811 } 812 </select> 813 </div> 814 815 <div class="form-inline" id="approvedStud"> 816 <label class="control-label">@Translate("AcknowledgedStud", "Acknowledged stud")</label><br /> 817 <input type="checkbox" name="horseFilterByAcknowledged" id="horseFilterByAcknowledged" /> 818 <label for="horseFilterByAcknowledged" class="normal">@Translate("Apply", "Apply")</label> 819 </div> 820 821 </div> 822 823 <div class="col-xs-12 col-md-4"> 824 <div class="form-inline hidden" id="color-filter"> 825 <label class="control-label">@Translate("Color", "Color")</label><br /> 826 <div id="color-filter-items"></div> 827 </div> 828 </div> 829 830 <div class="col-xs-12 col-md-4"> 831 832 <div class="form-inline" id="gender-filter"> 833 <label class="control-label h2">@Translate("Gender", "Gender")</label><br /> 834 <div id="gender-filter-items"></div> 835 </div> 836 837 <div class="form-inline selectdiv" id="startingletter-filter"> 838 <label class="control-label h2">@Translate("StartingLetter", "Starting letter")</label><br /> 839 <select class="form-control" name="horseFilterByStartingLetter" id="horseFilterByStartingLetter"> 840 <option value="none" selected="selected">@Translate("Select", "Select")</option> 841 @for (char c = 'A'; c <= 'Z'; c++) 842 { 843 <option value="@c">@c</option> 844 } 845 </select> 846 </div> 847 848 </div> 849 850 } 851 852 </div> 853 854 </div> 855 856 <div class="col-xs-12" id="result-filter-reset"> 857 <a href="javascript:void(0);" id="resetFilterButton" class="orange_arrow_link pull-right">@Translate("ResetFilter", "Reset filter")</a> 858 <br /> 859 <br /> 860 </div> 861 862 <div class="col-xs-12"> 863 <div class="table-responsive"> 864 <table id="horsesTable"> 865 <caption>@Translate("SearchResultIntro", "Click on the name of the horse to continue:")</caption> 866 <thead> 867 <tr> 868 <th data-sortOn="Gender" data-sortBy="Asc"><span class="hidden-xs hidden-sm">@Translate("Gender", "Gender")<i class="fa"></i></span></th> 869 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 870 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 871 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 872 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 873 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 874 </tr> 875 </thead> 876 </table> 877 </div> 878 </div> 879 </div> 880 </article> 881 </div> 882 </div> 883 </div> 884 </div> 885 886 @SnippetStart("JavascriptsBottom") 887 <script> 888 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode()).ToLower()"); 889 </script> 890 <script id="listHorseTemplate" type="text/html"> 891 <tr class="${ClassName} clickable" onclick="document.location.href = '@horsePageUrl${HorseCode}';"> 892 <td class="nowrap"> 893 <i class="fa ${GenderClass}"></i><span class="hidden-xs hidden-sm"> ${GenderAbbr}</span> 894 {{if !IsAlive}} 895 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div> 896 {{/if}} 897 {{if IsApprovedStud}} 898 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div> 899 {{/if}} 900 </td> 901 <td>${AnimalName}</td> 902 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td> 903 <td>${Register}</td> 904 <td>${Color}</td> 905 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td> 906 </tr> 907 </script> 908 <script id="listSelectHorseTemplate" type="text/html"> 909 <tr class="${ClassName} horseRow clickable" data-horseCode="${HorseCode}"> 910 <td class="nowrap"> 911 <i class="fa ${GenderClass}"></i><span class="hidden-xs hidden-sm"> ${GenderAbbr}</span> 912 {{if !IsAlive}} 913 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div> 914 {{/if}} 915 {{if IsApprovedStud}} 916 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div> 917 {{/if}} 918 </td> 919 <td>${AnimalName}</td> 920 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td> 921 <td>${Register}</td> 922 <td>${Color}</td> 923 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td> 924 </tr> 925 </script> 926 <script id="valuesTemplate" type="text/html"> 927 <div class="form-group"> 928 <h3>${Type} <span class="toggler" data-identifyer="${TypeId}" data-typeclass="breeding-values-content"><i class="fa fa-plus"></i></span></h3> 929 <div class="breeding-values-content" id="${TypeId}"> 930 {{each(i,breedingValue) lstBreedingValues}} 931 <div class="form-inline "> 932 <label class="control-label col-sm-4" for="${breedingValue.BreedingValuecode}"> 933 ${breedingValue.Description}{{if breedingValue.Minimum != null && breedingValue.Maximum != null}}<br /><span class="minmax">${breedingValue.Minimum} - ${breedingValue.Maximum}</span>{{/if}} 934 </label> 935 <div class="selectdiv"> 936 <select class="form-control hide-hints input-sm" data-predicate="${breedingValue.BreedingValuecode}"> 937 <option value="gt">&gt;</option> 938 <option value="lt">&lt;</option> 939 <option value="et">=</option> 940 </select> 941 </div> 942 <input type="number" class="form-control hide-hints input-sm" min="0" id="${breedingValue.BreedingValuecode}" name="${breedingValue.BreedingValuecode}" value="" /> 943 </div> 944 {{/each}} 945 </div> 946 <br /> 947 </div> 948 </script> 949 <script> 950 951 var sortOn = "Weight"; 952 var sortBy = "Asc"; 953 var searchApi = ""; 954 var filterYear = 0; 955 var filterAcknowledgedStud = false; 956 var filterColor = "none"; 957 var filterGender = "none"; 958 var filterStartingLetter = "none"; 959 var clickedButtonId = ""; 960 var clickedButtonResetValue = ""; 961 962 $(function () { 963 var fieldsetSelector 964 $('fieldset[data-checkbox-list]') 965 .innovadisCheckboxList() 966 .on('changed', function (event, hasChecked) { 967 $('input[name=DatabaseSearchForm_DatabaseForm_Key]').prop('required', !hasChecked); 968 }); 969 }); 970 971 $(document).ready(function () { 972 973 @if (searchMyHorsesOnly) { 974 <text> 975 $("#refresh-list-link").off("click").on("click", function (e) { 976 e.preventDefault(); 977 $("#horse-search-search").addClass("hidden"); 978 $("#horse-search-results").addClass("hidden"); 979 $("#refreshcontainer").removeClass("hidden"); 980 var refreshHorse = "/kwpnwebapi/horses/refreshmyhorses/@culture"; 981 $.ajax(refreshHorse).always(function () { 982 window.location.href = "@System.Web.HttpContext.Current.Request.RawUrl"; 983 }); 984 return false; 985 }); 986 </text> 987 } 988 989 // show initial form 990 ShowHideForm(); 991 992 // change form 993 $("input[name=SearchTypeSelector]").change(function () { 994 ShowHideForm(); 995 }); 996 997 $("#search-again").click(function () { 998 $(".horse-search-form").addClass("hidden"); // hide all form fields 999 $("#horse-search-search").removeClass("hidden"); // show form type options 1000 $("#horse-search-results").addClass("hidden"); // hide results 1001 $("input[name=SearchTypeSelector]").prop('checked', false); 1002 ResetSearchFields() // clear previous search values 1003 ResetFilters(); // reset filter + sort options to default 1004 1005 // pre-select free search option 1006 $("#SearchTypeSelector_FreeSearch").prop("checked", true); 1007 $("#DatabaseSearchForm_FreeSearch").removeClass("hidden"); 1008 1009 return false; 1010 }); 1011 1012 $("#resetFilterButton") 1013 .click(function () { 1014 ResetFilters(); 1015 SearchHorses(); 1016 }); 1017 1018 // force orange borders 1019 $(".hide-hints").change(function () { 1020 $(this).removeClass("hide-hints"); 1021 }); 1022 1023 // form submits 1024 $("#DatabaseSearchForm_LifeNumber_Submit").click(function () { 1025 1026 $("#DatabaseSearchForm_LifeNumber .hide-hints").removeClass("hide-hints"); 1027 1028 if ($("#DatabaseSearchForm_LifeNumberForm")[0].checkValidity()) { 1029 1030 var lifeNumber = $("#DatabaseSearchForm_LifeNumber_LifeNumber").val(); 1031 1032 // show loading icon in buttom 1033 var lifeNumberSubmitButtonText = $("#DatabaseSearchForm_LifeNumber_Submit").html(); 1034 $("#DatabaseSearchForm_LifeNumber_Submit").html(lifeNumberSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>"); 1035 clickedButtonId = "DatabaseSearchForm_LifeNumber_Submit"; 1036 clickedButtonResetValue = lifeNumberSubmitButtonText; 1037 1038 // disable button 1039 $("#DatabaseSearchForm_LifeNumber_Submit").prop('disabled', true); 1040 1041 //set 'searched for' value 1042 $("#searched-for").html(lifeNumber); 1043 1044 //kwpnwebapi/horses/search/{culture}/{chipOrLifeNumber} 1045 searchApi = "/kwpnwebapi/horses/search/@GetGlobalValue("Global:Area.LongLang")/" + lifeNumber; 1046 1047 SearchHorses(); 1048 1049 // no filter 1050 $("#result-filter-reset").hide(); 1051 $("#yearOfApproval").hide(); 1052 $("#approvedStud").hide(); 1053 $("#gender-filter").show(); 1054 $("#startingletter-filter").hide(); 1055 1056 //seo 1057 SEO.trackPageView("@string.Format("{0}/{1}/{2}/", 1058 seoPage, 1059 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(), 1060 Translate("DatabaseSearchForm_ChipLifeNumber", "Chip- or Life number").Replace(" ", "-").UrlEncode().ToLower())" + lifeNumber.toLowerCase()); 1061 1062 return false; 1063 } 1064 }); 1065 1066 $("#DatabaseSearchForm_Pedigree_Submit").click(function () { 1067 1068 $("#DatabaseSearchForm_Pedigree .hide-hints").removeClass("hide-hints"); 1069 1070 if ($("#DatabaseSearchForm_PedigreeForm")[0].checkValidity()) { 1071 1072 // show loading icon in buttom 1073 var pedigreeSubmitButtonText = $("#DatabaseSearchForm_Pedigree_Submit").html(); 1074 $("#DatabaseSearchForm_Pedigree_Submit").html(pedigreeSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>"); 1075 clickedButtonId = "DatabaseSearchForm_Pedigree_Submit"; 1076 clickedButtonResetValue = pedigreeSubmitButtonText; 1077 1078 // disable button 1079 $("#DatabaseSearchForm_Pedigree_Submit").prop('disabled', true); 1080 1081 // get values 1082 var year = parseInt($("#DatabaseSearchForm_PedigreeForm_YearOfBirth").val()); 1083 var father = $("#DatabaseSearchForm_PedigreeForm_Father").val(); 1084 var mothersFather = $("#DatabaseSearchForm_PedigreeForm_MothersFather").val(); 1085 1086 // set 'searched for' value 1087 var pedigree = father + " x " + mothersFather; 1088 $("#searched-for").html(pedigree); 1089 1090 1091 // set search api url 1092 searchApi = "/kwpnwebapi/horses/search/@GetGlobalValue("Global:Area.LongLang")/" + father + "/" + mothersFather + "/" + year + "/" + $("#DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses").is(':checked'); 1093 1094 // search 1095 SearchHorses(); 1096 1097 $("#yearOfApproval").hide(); 1098 $("#approvedStud").hide(); 1099 $("#gender-filter").show(); 1100 $("#startingletter-filter").hide(); 1101 1102 //seo 1103 SEO.trackPageView("@string.Format("{0}/{1}/{2}/", 1104 seoPage, 1105 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(), 1106 Translate("DatabaseSearchForm_Pedigree", "Pedigree").Replace(" ", "-").UrlEncode().ToLower())" + father.toLowerCase() + "/" + mothersFather.toLowerCase() + "/" + year.toString().toLowerCase() + "/" + $("#DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses").is(':checked')); 1107 1108 1109 return false; 1110 } 1111 }); 1112 1113 $("#DatabaseSearchForm_FreeSearch_Submit").click(function () { 1114 1115 $("#DatabaseSearchForm_FreeSearch .hide-hints").removeClass("hide-hints"); 1116 1117 if ($("#DatabaseSearchForm_FreeSearchForm")[0].checkValidity()) { 1118 1119 // show loading icon in buttom 1120 var freeSearchSubmitButtonText = $("#DatabaseSearchForm_FreeSearch_Submit").html(); 1121 $("#DatabaseSearchForm_FreeSearch_Submit").html(freeSearchSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>"); 1122 clickedButtonId = "DatabaseSearchForm_FreeSearch_Submit"; 1123 clickedButtonResetValue = freeSearchSubmitButtonText; 1124 1125 // disable button 1126 $("#DatabaseSearchForm_FreeSearch_Submit").prop('disabled', true); 1127 1128 // get values 1129 var breedingDirection = []; 1130 breedingDirection.push("Dummy"); //prevent empty string 1131 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur").is(':checked')) { 1132 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000001.ToString("G")"); 1133 } 1134 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard").is(':checked')) { 1135 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000002.ToString("G")"); 1136 } 1137 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen").is(':checked')) { 1138 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000006.ToString("G")"); 1139 } 1140 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard").is(':checked')) { 1141 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000007.ToString("G")"); 1142 } 1143 if ($("#DatabaseSearchForm_FreeSearchForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard").is(':checked')) { 1144 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000005.ToString("G")"); 1145 } 1146 var year = parseInt($("#DatabaseSearchForm_FreeSearchForm_YearOfBirth").val()); 1147 1148 1149 $("#searched-for").html($("#DatabaseSearchForm_FreeSearchForm_Key").val()); 1150 1151 // set search api url 1152 searchApi = "/kwpnwebapi/horses/searchtext/@GetGlobalValue("Global:Area.LongLang")/false/" + $("#DatabaseSearchForm_FreeSearchForm_Key").val() + "/" + breedingDirection + "/" + year + "/" + $("#DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses").is(':checked') + "/false"; 1153 1154 // search 1155 SearchHorses(); 1156 $("#yearOfApproval").hide(); 1157 $("#approvedStud").hide(); 1158 $("#gender-filter").show(); 1159 $("#startingletter-filter").hide(); 1160 1161 //seo 1162 SEO.trackPageView("@string.Format("{0}/{1}/{2}/", 1163 seoPage, 1164 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(), 1165 Translate("DatabaseSearchForm_FreeSearch", "Free search / studs").Replace(" ", "-").UrlEncode().ToLower())" + $("#DatabaseSearchForm_FreeSearchForm_Key").val().toLowerCase() + "/" + breedingDirection + "/" + year.toString().toLowerCase() + "/" + $("#DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses").is(':checked')); 1166 1167 return false; 1168 } 1169 }); 1170 1171 $("#DatabaseSearchForm_Database_Submit").click(function () { 1172 1173 $("#DatabaseSearchForm_Database .hide-hints").removeClass("hide-hints"); 1174 1175 if ($("#DatabaseSearchForm_DatabaseForm")[0].checkValidity()) { 1176 1177 // show loading icon in buttom 1178 var databaseSubmitButtonText = $("#DatabaseSearchForm_Database_Submit").html(); 1179 $("#DatabaseSearchForm_Database_Submit").html(databaseSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>"); 1180 clickedButtonId = "DatabaseSearchForm_Database_Submit"; 1181 clickedButtonResetValue = databaseSubmitButtonText; 1182 1183 // disable button 1184 $("#DatabaseSearchForm_Database_Submit").prop('disabled', true); 1185 1186 //get 'searched for' value 1187 var key = $("#DatabaseSearchForm_DatabaseForm_Key").val(); 1188 1189 var searchedFor = key; 1190 if (key === "") { 1191 key = "Dummy"; //prevent empty string 1192 } 1193 var noKeyword = (searchedFor === "" || searchedFor.toLowerCase() === "dummy"); 1194 1195 // get values 1196 var breedingDirection = []; 1197 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Dressuur").is(':checked')) { 1198 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000001.ToString("G")"); 1199 if (noKeyword) { 1200 // no search term, show searched breeding direction as 'searched for' 1201 if (searchedFor !== "") { searchedFor += ", "; } 1202 searchedFor += "@Translate("Dressage", "Dressage")"; 1203 } 1204 } 1205 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Gelders_paard").is(':checked')) { 1206 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000002.ToString("G")"); 1207 if (noKeyword) { 1208 // no search term, show searched breeding direction as 'searched for' 1209 if (searchedFor !== "") { searchedFor += ", "; } 1210 searchedFor += "@Translate("Geldinghorse", "Geldinghorse")"; 1211 } 1212 } 1213 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Springen").is(':checked')) { 1214 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000006.ToString("G")"); 1215 if (noKeyword) { 1216 // no search term, show searched breeding direction as 'searched for' 1217 if (searchedFor !== "") { searchedFor += ", "; } 1218 searchedFor += "@Translate("Jumping", "Jumping")"; 1219 } 1220 } 1221 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Tuigpaard").is(':checked')) { 1222 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000007.ToString("G")"); 1223 if (noKeyword) { 1224 // no search term, show searched breeding direction as 'searched for' 1225 if (searchedFor !== "") { searchedFor += ", "; } 1226 searchedFor += "@Translate("HarnessHorse", "Harness horse")"; 1227 } 1228 } 1229 if ($("#DatabaseSearchForm_DatabaseForm_BreedingDirection_@Kwpn.Models.Enumerations.BreedingDirection.Rijpaard").is(':checked')) { 1230 breedingDirection.push("@Kwpn.Models.Enumerations.EquisBreedingDirection.FOKR_000005.ToString("G")"); 1231 if (noKeyword) { 1232 // no search term, show searched breeding direction as 'searched for' 1233 if (searchedFor !== "") { 1234 searchedFor += ", "; 1235 } 1236 searchedFor += "@Translate("RidingHorse", "Riding horse")"; 1237 } 1238 } 1239 if (breedingDirection.length <= 0) { 1240 breedingDirection.push("Dummy"); //prevent empty string 1241 } 1242 1243 var year = parseInt($("#DatabaseSearchForm_DatabaseForm_YearOfBirth").val()); 1244 1245 // set 'searched for' value 1246 $("#searched-for").html(searchedFor); 1247 1248 // set search api url 1249 searchApi = "/kwpnwebapi/horses/searchtext/@GetGlobalValue("Global:Area.LongLang")/true/" + key + "/" + breedingDirection + "/" + year + "/" + $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").is(':checked') + "/false"; 1250 1251 // search 1252 SearchHorses(); 1253 $("#yearOfApproval").show(); 1254 $("#approvedStud").show(); 1255 $("#gender-filter").hide(); 1256 $("#startingletter-filter").show(); 1257 1258 //seo 1259 SEO.trackPageView("@string.Format("{0}/{1}/{2}/", 1260 seoPage, 1261 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(), 1262 Translate("DatabaseSearchForm_Database", "Stud database").Replace(" ", "-").UrlEncode().ToLower())" + key.toLowerCase() + "/" + breedingDirection + "/" + year.toString().toLowerCase() + "/" + $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").is(':checked')); 1263 1264 return false; 1265 } 1266 }); 1267 1268 $("#btn-all-studs").click(function () { 1269 1270 // show loading icon in buttom 1271 var allStudsSubmitButtonText = $("#btn-all-studs").html(); 1272 $("#btn-all-studs").html(allStudsSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>"); 1273 clickedButtonId = "btn-all-studs"; 1274 clickedButtonResetValue = allStudsSubmitButtonText; 1275 1276 // set 'searched for' value 1277 $("#searched-for").html('@Translate("AllApprovedStuds", "All approved studs")'); 1278 1279 // set search api url 1280 searchApi = "/kwpnwebapi/horses/searchtext/@GetGlobalValue("Global:Area.LongLang")/true/Dummy/Dummy/0/" + $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").is(':checked') + "/true"; 1281 1282 // search 1283 SearchHorses(); 1284 $("#yearOfApproval").show(); 1285 $("#approvedStud").show(); 1286 $("#gender-filter").hide(); 1287 $("#startingletter-filter").show(); 1288 1289 //seo 1290 SEO.trackPageView("@string.Format("{0}/{1}/{2}/{3}", 1291 seoPage, 1292 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(), 1293 Translate("DatabaseSearchForm_Database", "Stud database").Replace(" ", "-").UrlEncode().ToLower(), 1294 Translate("AllApprovedStuds", "All approved studs").Replace(" ", "-").UrlEncode().ToLower())"); 1295 1296 1297 return false; 1298 }); 1299 1300 $("#DatabaseSearchForm_BreedingValues_Submit").click(function () { 1301 $("#DatabaseSearchForm_BreedingValues .hide-hints").removeClass("hide-hints"); 1302 if ($("#DatabaseSearchForm_BreedingValuesForm")[0].checkValidity()) { 1303 1304 // show loading icon in buttom 1305 var breedingValuesSubmitButtonText = $("#DatabaseSearchForm_BreedingValues_Submit").html(); 1306 $("#DatabaseSearchForm_BreedingValues_Submit").html(breedingValuesSubmitButtonText + " <i class='fa fa-spinner fa-spin'></i>"); 1307 clickedButtonId = "DatabaseSearchForm_BreedingValues_Submit"; 1308 clickedButtonResetValue = breedingValuesSubmitButtonText; 1309 1310 // disable button 1311 $("#DatabaseSearchForm_BreedingValues_Submit").prop('disabled', true); 1312 1313 var selectedBreedingDirection = $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val(); 1314 1315 //set 'searched for' value 1316 $("#searched-for").html('@Translate("DatabaseSearchForm_BreedingValues", "Breeding values")'); 1317 1318 // fill json object to store in local storage for re-search functionality 1319 var myBreedingValuesSearchObject = new Object(); 1320 myBreedingValuesSearchObject.breedingDirection = selectedBreedingDirection; 1321 myBreedingValuesSearchObject.breedingValues = []; 1322 1323 // put user values into semi-colon seperated string 1324 var stringPramaterArray = []; 1325 $(".form-inline", "#list-breeding-values").each(function () { 1326 var inputField = $(this).find("input[type=number]"); 1327 var code = inputField.attr("id"); 1328 var value = inputField.val(); 1329 var predicate = $(this).find("select").val(); 1330 stringPramaterArray = AddToStringPramater(stringPramaterArray, code, value, predicate); 1331 1332 // fill json object to store in local storage for re-search functionality 1333 if (!isNaN(parseInt(value))) { myBreedingValuesSearchObject.breedingValues.push(code + "," + predicate + "," + value); } 1334 }); 1335 1336 if (stringPramaterArray.length > 0) { 1337 1338 var stringParameter = stringPramaterArray.join(","); 1339 1340 //kwpnwebapi/horses/searchbreedingvalues/{culture}/{breedingDirection}/{params} 1341 searchApi = "/kwpnwebapi/horses/searchbreedingvalues/@GetGlobalValue("Global:Area.LongLang")/" + selectedBreedingDirection + "/" + stringParameter; 1342 1343 // fill local storage for refilling values on re-search 1344 var localStorageId = "lastSubmittedBreedingValues"; 1345 localStorage.removeItem(localStorageId); // remove previous search 1346 localStorage.setItem(localStorageId, JSON.stringify(myBreedingValuesSearchObject)); // add current search 1347 1348 // search 1349 SearchHorses(); 1350 } 1351 1352 // no filter 1353 $("#result-filter-reset").hide(); 1354 $("#yearOfApproval").show(); 1355 $("#approvedStud").show(); 1356 $("#gender-filter").hide(); 1357 $("#startingletter-filter").show(); 1358 1359 //seo 1360 SEO.trackPageView("@string.Format("{0}/{1}/{2}/", 1361 seoPage, 1362 Translate("SEO_TrackPageviewPage_Database_Horse_Search", "horse-search").UrlEncode().ToLower(), 1363 Translate("DatabaseSearchForm_BreedingValues", "Breeding values").Replace(" ", "-").UrlEncode().ToLower())" + selectedBreedingDirection + "/" + stringParameter.toLowerCase()); 1364 1365 return false; 1366 } 1367 }); 1368 1369 function AddToStringPramater(currentArray, code, value, predicate) { 1370 var result = currentArray; 1371 var val = parseInt(value); 1372 1373 if (!isNaN(val)) { 1374 var stringParameter = code; 1375 switch (predicate) { 1376 case "gt": stringParameter += "&gt;"; break; 1377 case "lt": stringParameter += "&lt;"; break; 1378 case "et": stringParameter += "="; break; 1379 } 1380 stringParameter += val; 1381 result.push(stringParameter); 1382 } 1383 1384 return result; 1385 } 1386 1387 1388 function SearchHorses() { 1389 1390 // horse action passed through 1391 var action = "@action"; 1392 if (action === "") { 1393 action = "none"; 1394 } 1395 1396 var apiUrl = searchApi + "/" + filterYear + "/" + filterAcknowledgedStud + "/" + filterColor + "/" + filterGender + "/" + filterStartingLetter + "/" + sortOn + "/" + sortBy + "/" + action + "/" + $("#horsesFilter").val(); 1397 1398 $.getJSON(apiUrl).done(function (result, status, metaData) { 1399 HandleSearchResult(result); 1400 }).fail(function (jqxhr, textStatus, error) { 1401 var err = textStatus + ", " + error; 1402 1403 console.error("Request SearchHorses Failed: " + err); 1404 }).always(function () { 1405 if (clickedButtonId != "") { 1406 $("#" + clickedButtonId).html(clickedButtonResetValue); // remove loading icon from button 1407 $("#" + clickedButtonId).prop('disabled', false); // enable button 1408 } 1409 $("#horse-search-search").addClass("hidden"); // hide form 1410 $("#horse-search-results").removeClass("hidden"); // show results 1411 }); 1412 } 1413 1414 function HandleSearchResult(result) { 1415 if (result.Count != 0 && result.Count != -1) { 1416 var resultCount = result.Count; 1417 if (resultCount < 0) { 1418 resultCount = -resultCount; // too many results, count is made negative, make positive for display 1419 $("#refine").removeClass("hidden"); // show refine your search text 1420 } 1421 else { 1422 $("#refine").addClass("hidden"); // hide refine your search text 1423 } 1424 var counterText = $("#search-result-count").attr("data-default").replace('0', resultCount); 1425 $("#noResults").addClass("hidden"); // hide no results text 1426 $("#search-result-count").html(counterText); // SET result count value 1427 if (result.Count > 100) { 1428 $("#tooManyResults").removeClass("hidden"); // SHOW too many results text 1429 $("#horseListCounter2").html(result.Count); // SET too many results text number values 1430 } else { 1431 $("#tooManyResults").addClass("hidden"); // hide too many results text 1432 } 1433 FillTable(result.Top100); // Fill horse output 1434 ShowFilter(result.Colors, result.Genders); // SHOW filter options 1435 ShowApprovedCheckBoxInFilter(result.Top100); // show/ hide approved filter option 1436 1437 $("#horsesTable").removeClass("hidden"); // SHOW horse output 1438 } else if (result.Count < 0) { // more than max returns a -1 value 1439 ShowRefineSearch(); 1440 } else { 1441 $("#search-result-count").html($("#search-result-count").attr("data-default")); 1442 ShowNoData(); 1443 } 1444 } 1445 1446 function ShowApprovedCheckBoxInFilter(values) { 1447 //var approvedStudFound = false; 1448 //for (i = 0; i < values.length; i++) { 1449 // if (values[i].IsApprovedStud === true) { 1450 // approvedStudFound = true; 1451 // } 1452 //} 1453 //if (approvedStudFound === false) { 1454 // $('#approvedStud').css('display', 'none'); 1455 //} 1456 } 1457 1458 function ShowFilter(colorList, genderList) { 1459 1460 // add color filter 1461 var colorFilter = $("#color-filter"); 1462 colorFilter.addClass("hidden"); 1463 var colorFilterItems = $("#color-filter-items", colorFilter); 1464 colorFilterItems.empty(); // clear existing color filter values 1465 if (colorList.length > 0) { 1466 for (i = 0; i < colorList.length; i++) { 1467 if (colorList.length > 0 && i == 5) { 1468 // add collapse container for more than 5 color items 1469 var collapseContainer = "<a href=\"javascript:void(0);\" id=\"color-filter-items-more-link\">@Translate("More", "more")</a><div id=\"color-filter-items-more\" class=\"hidden\"></div>"; 1470 colorFilterItems.append(collapseContainer); 1471 colorFilterItems = $("#color-filter-items-more", colorFilter); 1472 } 1473 var colorValue = colorList[i].Name; 1474 var colorId = colorValue.replace(/ /g, "-"); 1475 var colorSelected = ""; 1476 if (colorList[i].Selected) colorSelected = "checked"; 1477 var colorSelector = "<input type=\"checkbox\" name=\"horseFilterByColor\" id=\"horseFilterByColor_" + colorId + "\" value=\"" + colorValue + "\" " + colorSelected + " /> <label for=\"horseFilterByColor_" + colorId + "\" class=\"normal capitalize\">" + colorValue.toUpperCase() + "</label><br/>"; 1478 colorFilterItems.append(colorSelector); 1479 } 1480 colorFilter.removeClass("hidden"); 1481 } 1482 $("#color-filter-items-more-link").click(function () { 1483 $("#color-filter-items-more").removeClass("hidden"); 1484 $(this).remove(); 1485 }); 1486 1487 // add gender filter 1488 var genderFilter = $("#gender-filter"); 1489 genderFilter.addClass("hidden"); 1490 var genderFilterItems = $("#gender-filter-items", genderFilter); 1491 genderFilterItems.empty(); 1492 if (genderList.length > 0) { 1493 for (i = 0; i < genderList.length; i++) { 1494 var genderValue = genderList[i].Name; 1495 var genderId = genderValue.replace(/ /g, "-"); 1496 var genderSelected = ""; 1497 if (genderList[i].Selected) genderSelected = "checked"; 1498 1499 var genderLabel = genderValue; 1500 switch (genderLabel) { 1501 case "HENGST": genderLabel = '@Translate("HENGST").ToUpper()'; 1502 break; 1503 case "RUIN": genderLabel = '@Translate("RUIN").ToUpper()'; 1504 break; 1505 case "MERRIE": genderLabel = '@Translate("MERRIE").ToUpper()'; 1506 break; 1507 default: 1508 break; 1509 } 1510 1511 var genderSelector = "<input type=\"checkbox\" name=\"genderFilterByGender\" id=\"genderFilterByGender_" + genderId + "\" value=\"" + genderValue + "\" " + genderSelected + " /> <label for=\"genderFilterByGender_" + genderId + "\" class=\"normal capitalize\">" + genderLabel + "</label><br/>"; 1512 genderFilterItems.append(genderSelector); 1513 } 1514 genderFilter.removeClass("hidden"); 1515 } 1516 1517 $("input[name=horseFilterByColor]").change(function () { 1518 var selectedColors = ""; 1519 $.each($("input[name=horseFilterByColor]:checked"), function () { 1520 if (selectedColors !== "") selectedColors += ","; 1521 selectedColors += $(this).val(); 1522 }); 1523 if (selectedColors === "") selectedColors = "none"; 1524 filterColor = selectedColors; 1525 SearchHorses(); 1526 }); 1527 1528 1529 $("input[name=genderFilterByGender]").change(function () { 1530 var selectedGenders = ""; 1531 $.each($("input[name=genderFilterByGender]:checked"), function () { 1532 if (selectedGenders !== "") selectedGenders += ","; 1533 selectedGenders += $(this).val(); 1534 }); 1535 if (selectedGenders === "") selectedGenders = "none"; 1536 filterGender = selectedGenders; 1537 SearchHorses(); 1538 }); 1539 1540 $("#result-filter").removeClass("hidden"); // SHOW filter options 1541 1542 // filter reset 1543 $("#result-filter-reset").show(); 1544 } 1545 1546 function ShowNoData() { 1547 $("#tooManyResults").addClass("hidden"); // hide too many results text 1548 $("#result-filter").addClass("hidden"); // hide filter options 1549 $("#refine").addClass("hidden"); // hide refine your search text 1550 $("#horsesTable").addClass("hidden"); // hide horse output 1551 $("#noResults").removeClass("hidden"); // SHOW no results text 1552 $("#search-result-count").html($("#search-result-count").html()); // SET result count value 1553 $('#horsesTable tr:gt(0)').remove(); 1554 $("input[name='SearchTypeSelector']").prop('checked', false); // reset search type radio 1555 $("#horseSearchResults").removeClass("hidden"); 1556 } 1557 1558 function ShowRefineSearch() { 1559 $("#noResults").addClass("hidden"); // hide no results text 1560 $("#tooManyResults").addClass("hidden"); // hide too many results text 1561 $("#result-filter").addClass("hidden"); // hide filter options 1562 $("#horsesTable").addClass("hidden"); // hide horse output 1563 $("#refine").removeClass("hidden"); // SHOW refine your search text 1564 $("#search-result-count").html("---"); // SET result count value 1565 $("input[name='SearchTypeSelector']").prop('checked', false); // reset search type radio 1566 $("#horseSearchResults").removeClass("hidden"); 1567 } 1568 1569 function FillTable(data) { 1570 $('#horsesTable th.sorted').removeClass("sorted").find('i').removeClass("fa-chevron-circle-down fa-chevron-circle-up"); 1571 var directionClass = "fa-chevron-circle-down"; 1572 if (sortBy === "Desc") { 1573 directionClass = "fa-chevron-circle-up"; 1574 } 1575 $('#horsesTable th[data-sortOn="' + sortOn + '"]').addClass("sorted").find('i').addClass(directionClass); 1576 $('#horsesTable tr:gt(0)').remove(); 1577 @if (searchMyHorsesOnly) 1578 { 1579 <text> 1580 $("#listSelectHorseTemplate").tmpl(data).appendTo("#horsesTable"); 1581 1582 // add row click event 1583 $(".horseRow.clickable").click(function () { 1584 var horseCode = $(this).attr("data-horseCode"); 1585 @if (isResearchAdd) 1586 { 1587 // add to list, then go to page 1588 <text> 1589 var addHorseUrl = "/kwpnwebapi/forms/research/upserthorse/" + horseCode; 1590 $.getJSON(addHorseUrl).fail(function (jqxhr, textStatus, error) { 1591 var err = textStatus + ", " + error; 1592 console.error("Request AddHorse Failed: " + err); 1593 }).always(function () { 1594 document.location.href = '@horsePageUrl' + horseCode; 1595 }); 1596 </text> 1597 } 1598 else 1599 { 1600 // go to page 1601 <text>document.location.href = '@horsePageUrl' + horseCode;</text> 1602 } 1603 }); 1604 1605 </text> 1606 } 1607 else 1608 { 1609 <text> 1610 $("#listHorseTemplate").tmpl(data).appendTo("#horsesTable"); 1611 </text> 1612 } 1613 $(".horse-search-form").addClass("hidden"); 1614 $("#horseSearchResults").removeClass("hidden"); 1615 $("input[name='SearchTypeSelector']").prop('checked', false); 1616 1617 // tooltip initializer 1618 $("[data-toggle='tooltip']").tooltip(); 1619 1620 } 1621 1622 function ResetFilters() { 1623 sortOn = "Weight"; 1624 sortBy = "Asc"; 1625 filterYear = 0; 1626 filterAcknowledgedStud = false; 1627 filterColor = "none"; 1628 filterGender = "none"; 1629 filterStartingLetter = "none"; 1630 $("#horseFilterByYearOfApproval").val(""); 1631 $("#horseFilterByAcknowledged").prop('checked', false); 1632 $("#horsesFilter").val(""); 1633 $("#horseFilterByStartingLetter").val("none"); 1634 1635 @if (action != null && action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase)) { 1636 <text> 1637 filterGender = "@Kwpn.Models.Enumerations.Gender.MERRIE.ToString("g")"; 1638 </text> 1639 } 1640 1641 $('fieldset[data-checkbox-list]').trigger("reset"); 1642 } 1643 1644 // show form for seleted search type and hide others 1645 function ShowHideForm() { 1646 1647 $("#horseSearchResults").addClass("hidden"); 1648 1649 // hide 'fokwaarden' additional text; https://innovadis.atlassian.net/browse/KWPN-1824 1650 $("#breedingValuesAdditionalText").addClass("hidden"); 1651 1652 //hide forms and show selected 1653 var selectedSearchType = $("input[name=SearchTypeSelector]:checked").val(); 1654 $(".horse-search-form").each(function () { 1655 $(this).addClass("hidden"); 1656 }); 1657 1658 $("#DatabaseSearchForm_" + selectedSearchType).removeClass("hidden"); 1659 1660 // get breeding values 1661 ClearSearchBreedingValues(); 1662 1663 $("#DatabaseSearchForm_BreedingValues_Submit").prop('disabled', true); // gets enabled afted breeding direction selection and loading of values 1664 if (selectedSearchType == "BreedingValues") { 1665 1666 // add 'fokwaarden' additional text; https://innovadis.atlassian.net/browse/KWPN-1824 1667 $("#breedingValuesAdditionalText").removeClass("hidden"); 1668 1669 // add functionality to breeding direction selection 1670 $("#DatabaseSearchForm_BreedingValues_BreedingDirection").change(function () { 1671 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").addClass("hidden"); 1672 GetSearchBreedingValues(false); 1673 }); 1674 1675 // check if a previous breeding value search has been done to offer a change in those settings 1676 var localStorageId = "lastSubmittedBreedingValues"; 1677 var lastSubmittedBreedingValues = localStorage.getItem(localStorageId); 1678 if (lastSubmittedBreedingValues != null) { 1679 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").removeClass("hidden"); 1680 } 1681 } 1682 1683 //place asterisks after required labels 1684 $('input,textarea,select') 1685 .filter('[required]:visible') 1686 .closest(".form-inline") 1687 .children("label") 1688 .children("i:not(.fixed)") 1689 .remove() 1690 .end(); 1691 1692 $('#DatabaseSearchForm_' + selectedSearchType + ' input, #DatabaseSearchForm_' + selectedSearchType + ' textarea, #DatabaseSearchForm_' + selectedSearchType + ' select') 1693 .filter('[required]:visible') 1694 .closest(".form-inline") 1695 .children("label") 1696 .append("<i class=\"fa fa-asterisk\" aria-hidden=\"true\"></i>"); 1697 1698 1699 } 1700 1701 1702 1703 $("#horsesFilter").change(function () { 1704 SearchHorses(); 1705 }); 1706 1707 $("#horsesFilter").keypress(function (e) { 1708 var code = e.keyCode || e.which; 1709 if (code === 13) { 1710 // 13 = enter 1711 SearchHorses(); 1712 e.preventDefault(); 1713 return false; 1714 } 1715 return true; 1716 }); 1717 1718 $("#horseFilterByYearOfApproval") 1719 .change(function () { 1720 filterYear = parseInt($("#horseFilterByYearOfApproval").val()); 1721 if (filterYear === NaN) filterYear = 0; 1722 SearchHorses(); 1723 }); 1724 1725 $("#horseFilterByStartingLetter") 1726 .change(function () { 1727 filterStartingLetter = $("#horseFilterByStartingLetter").val(); 1728 SearchHorses(); 1729 }); 1730 1731 $("#horseFilterByAcknowledged") 1732 .change(function () { 1733 filterAcknowledgedStud = $("#horseFilterByAcknowledged").is(":checked"); 1734 SearchHorses(); 1735 }); 1736 1737 $("#horsesTable th").click(function () { 1738 if (sortOn === $(this).data("sorton")) { 1739 //reverse direction when same sortOn click again 1740 if ($(this).data("sortby") === "Asc") { 1741 $(this).data("sortby", "Desc") 1742 } else { 1743 $(this).data("sortby", "Asc") 1744 } 1745 } 1746 sortOn = $(this).data("sorton"); 1747 sortBy = $(this).data("sortby"); 1748 SearchHorses(); 1749 }); 1750 1751 1752 1753 @if (searchMyHorsesOnly) 1754 { 1755 bool showDeadHorses = false; 1756 if (isResearchAdd) 1757 { 1758 showDeadHorses = true; 1759 } 1760 1761 var genderFilter = action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) ? Kwpn.Models.Enumerations.Gender.MERRIE.ToString("g") : "none"; 1762 1763 <text> 1764 filterGender = "@genderFilter"; 1765 searchApi = "/kwpnwebapi/horses/getmyhorses/@GetGlobalValue("Global:Area.LongLang")/@showDeadHorses.ToString()"; 1766 SearchHorses(); 1767 </text> 1768 } 1769 1770 1771 function ResetSearchFields() { 1772 ResetLifeNumberSearchFields(); 1773 ResetPedigreeSearchFields(); 1774 ResetFreeSearchSearchFields(); 1775 ResetDatabaseSearchFields(); 1776 ResetBreedingValueseSearchFields(); 1777 } 1778 1779 function ResetLifeNumberSearchFields() { 1780 $("#DatabaseSearchForm_LifeNumber_LifeNumber").val(""); 1781 } 1782 1783 function ResetPedigreeSearchFields() { 1784 $("#DatabaseSearchForm_PedigreeForm_Father").val(""); 1785 $("#DatabaseSearchForm_PedigreeForm_MothersFather").val(""); 1786 $("#DatabaseSearchForm_PedigreeForm_YearOfBirth").val(""); 1787 $("#DatabaseSearchForm_PedigreeForm_ShowDeceasedHorses").prop('checked', false); 1788 } 1789 function ResetFreeSearchSearchFields() { 1790 $("#DatabaseSearchForm_FreeSearchForm_Key").val(""); 1791 $("input[name=DatabaseSearchForm_FreeSearchForm_BreedingDirection]").prop("checked", false); 1792 $("#DatabaseSearchForm_FreeSearchForm_ShowDeceasedHorses").prop("checked", false); 1793 $("#DatabaseSearchForm_FreeSearchForm_YearOfBirth").val(""); 1794 } 1795 1796 function ResetDatabaseSearchFields() { 1797 $("#DatabaseSearchForm_DatabaseForm_Key").val(""); 1798 $("input[name=DatabaseSearchForm_DatabaseForm_BreedingDirection]").prop("checked", false); 1799 $("#DatabaseSearchForm_DatabaseForm_YearOfBirth").val(""); 1800 $("#DatabaseSearchForm_DatabaseForm_ShowDeceasedHorses").prop("checked", false); 1801 } 1802 1803 function ResetBreedingValueseSearchFields() { 1804 $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val(""); 1805 $("#list-breeding-values").html(""); 1806 } 1807 1808 function ClearSearchBreedingValues() { 1809 var valuesContainer = $("#list-breeding-values")[0]; 1810 if (valuesContainer) { 1811 $("#list-breeding-values").html(""); 1812 } 1813 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").addClass("hidden"); 1814 } 1815 1816 function GetSearchBreedingValues(refillPreviousValues) { 1817 1818 var valuesContainer = $("#list-breeding-values"); 1819 var selectedBreedingDirectionCode = $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val(); 1820 1821 if (selectedBreedingDirectionCode == "") { 1822 valuesContainer.html(""); 1823 $("#DatabaseSearchForm_BreedingValues_Submit").prop("disabled", true); 1824 } else { 1825 valuesContainer.html("<i class=\"fa fa-spinner fa-spin\"></i>"); 1826 1827 var valuesAPiUrl = "/kwpnwebapi/horses/searchvaluesfordirection/@culture/" + selectedBreedingDirectionCode; 1828 1829 $.getJSON(valuesAPiUrl).done(function (data) { 1830 if (data != null && data.length > 0) { 1831 valuesContainer.html(""); // remove spinner 1832 $("#valuesTemplate").tmpl(data).appendTo("#list-breeding-values"); 1833 $("input", "#list-breeding-values").numeric(); // only number input 1834 $("#DatabaseSearchForm_BreedingValues_Submit").prop('disabled', false); // enable submit button 1835 1836 if (refillPreviousValues) { 1837 1838 var localStorageId = "lastSubmittedBreedingValues"; 1839 var lastSubmittedBreedingValues = localStorage.getItem(localStorageId); 1840 if (lastSubmittedBreedingValues != null) { 1841 1842 //parse to json 1843 lastSubmitted = JSON.parse(lastSubmittedBreedingValues); 1844 1845 var breedingValues = lastSubmitted.breedingValues; 1846 1847 if (breedingValues != null && breedingValues.length > 0) { 1848 $.each(breedingValues, function (i, item) { 1849 1850 var itemValues = item.split(","); 1851 if (itemValues.length == 3) { 1852 1853 var breedingValueCode = itemValues[0]; 1854 var predicate = itemValues[1]; 1855 var value = itemValues[2]; 1856 1857 // set predicate field 1858 $("select[data-predicate='" + breedingValueCode + "']", "#list-breeding-values").val(predicate); 1859 1860 // set values field 1861 $("#" + breedingValueCode, "#list-breeding-values").val(value); 1862 } 1863 }); 1864 } 1865 } 1866 } 1867 1868 // toggler initializer 1869 $(".toggler", "#list-breeding-values").click(function () { 1870 var contentId = $(this).attr("data-identifyer"); 1871 var typeClass = $(this).attr("data-typeclass"); 1872 $("." + typeClass).not("#" + contentId).hide(); 1873 $("." + typeClass).not("#" + contentId).prev().find("span.toggler i").removeClass("fa-minus").addClass("fa-plus"); 1874 $("#" + contentId).toggle(); 1875 var currentToggler = $("#" + contentId).prev().find("span.toggler i"); 1876 if (currentToggler.hasClass("fa-minus")) { 1877 currentToggler.removeClass("fa-minus").addClass("fa-plus"); 1878 } else { 1879 currentToggler.removeClass("fa-plus").addClass("fa-minus"); 1880 } 1881 }); 1882 1883 //default hide all toggler areas (except first) 1884 $(".breeding-values-content:not(:first)", "#list-breeding-values").hide(); 1885 $(".toggler:first i.fa", "#list-breeding-values").removeClass("fa-plus").addClass("fa-minus"); 1886 1887 } else { 1888 valuesContainer.html("Nothing found"); 1889 } 1890 }).fail(function (jqxhr, textStatus, error) { 1891 var err = textStatus + ", " + error; 1892 1893 console.error("Request GetSearchBreedingValues Failed: " + err); 1894 valuesContainer.html("An error occurred"); 1895 }).always(function () { 1896 //todo 1897 }); 1898 } 1899 } 1900 1901 $("#DatabaseSearchForm_BreedingValuesForm_ReSearch").click(function () { 1902 var localStorageId = "lastSubmittedBreedingValues"; 1903 var lastSubmittedBreedingValues = localStorage.getItem(localStorageId); 1904 if (lastSubmittedBreedingValues != null) { 1905 1906 //parse to json 1907 lastSubmitted = JSON.parse(lastSubmittedBreedingValues); 1908 1909 var breedingDirection = lastSubmitted.breedingDirection; 1910 1911 // set breeding direction 1912 $("#DatabaseSearchForm_BreedingValues_BreedingDirection").val(breedingDirection); 1913 1914 GetSearchBreedingValues(true); 1915 } 1916 return false; 1917 }); 1918 1919 function RestoreSearch() { 1920 var apiUrl = "/kwpnwebapi/horses/restoresearch/@action"; 1921 1922 $.getJSON(apiUrl).done(function (result, status, metaData) { 1923 if (result.LastSearchType >= 1 && result.LastSearchType <= 3) { 1924 $("#searched-for").html(result.SearchedFor.replace('Dummy', '')); 1925 searchApi = result.SearchApiUrl; 1926 if (result.LastSearchType === 1) { //chip or lifenumber 1927 $("#result-filter-reset").hide(); 1928 $("#yearOfApproval").hide(); 1929 $("#approvedStud").hide(); 1930 $("#gender-filter").show(); 1931 $("#startingletter-filter").hide(); 1932 } 1933 if (result.LastSearchType === 2) { //pedigree 1934 $("#yearOfApproval").hide(); 1935 $("#approvedStud").hide(); 1936 $("#gender-filter").show(); 1937 $("#startingletter-filter").hide(); 1938 } 1939 if (result.LastSearchType === 3) { //searchterm 1940 if (result.PreviousSearch.OnlyApprovedStallion) { 1941 $("#yearOfApproval").show(); 1942 $("#approvedStud").show(); 1943 $("#gender-filter").hide(); 1944 $("#startingletter-filter").show(); 1945 } 1946 else { 1947 $("#yearOfApproval").hide(); 1948 $("#approvedStud").hide(); 1949 $("#gender-filter").show(); 1950 $("#startingletter-filter").hide(); 1951 } 1952 1953 } 1954 if (result.PreviousSearch.FilterOn) $("#horsesFilter").val(result.PreviousSearch.FilterOn); 1955 HandleSearchResult(result.SearchResult); 1956 $("#horse-search-search").addClass("hidden"); // hide form 1957 $("#horse-search-results").removeClass("hidden"); // show results 1958 } 1959 }).fail(function (jqxhr, textStatus, error) { 1960 var err = textStatus + ", " + error; 1961 console.error("Request RestoreSearch Failed: " + err); 1962 }) 1963 }; 1964 1965 RestoreSearch(); 1966 }); 1967 1968 </script> 1969 1970 @SnippetEnd("JavascriptsBottom") 1971 } 1972 else 1973 { 1974 if (System.Web.HttpContext.Current.Request.QueryString.AllKeys.Contains("reset")) 1975 { //check if reset param = true and password param correct, if so reset cache for given horse 1976 Kwpn.Repository.Repositories.Horses.ResetHorseCache(animalCode); 1977 } 1978 var horse = HorseHelper.GetDatabasePageHorse(culture, animalCode, true); 1979 if (horse == null && !noHorseNeeded) 1980 { 1981 <div class="break-grid content-container"> 1982 <div class="break-grid-background"> 1983 <div class="in-grid"> 1984 <div class="row"> 1985 <div class="col-xs-12 col-md-7"> 1986 @Translate("HorseNotFound", "Horse not found") 1987 </div> 1988 </div> 1989 </div> 1990 </div> 1991 </div> 1992 1993 // seo 1994 seoPage = string.Format("{0}/{1}/{2}", seoPage, animalCode.UrlEncode(), Translate("SEO_TrackPageviewPage_Database_Horse_Not_Found", "horse-not-found").UrlEncode()).ToLower(); 1995 <Text> 1996 <script> 1997 SEO.trackPageView("@seoPage"); 1998 </script> 1999 </Text> 2000 } 2001 else if (horse == null && noHorseNeeded) 2002 { 2003 <div class="break-grid content-container page-content-aside horse-database"> 2004 <div class="break-grid-background"> 2005 <div class="in-grid"> 2006 2007 <div class="row"> 2008 <div class="col-xs-12"> 2009 <h1 class="pageTitle">&nbsp;</h1> 2010 </div> 2011 </div> 2012 2013 <div class="row"> 2014 <div class="col-xs-12"> 2015 <div class="notification"></div> 2016 </div> 2017 </div> 2018 2019 <div class="row"> 2020 <div class="col-xs-12 col-md-2 col-md-push-10 aside-page"> 2021 <div class="bg_aside closed"> 2022 <div class="aside_pullLabel">Menu<i class="fa fa-bars" aria-hidden="true"></i></div> 2023 <aside> 2024 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2025 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/isApprovedStud" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 2026 @*DEFAULT ASIDE*@ 2027 @if (string.IsNullOrWhiteSpace(action)) 2028 { 2029 #region TabLinks 2030 <h2 id="listheader-tabs" data-childId="view-list-tabs" class="notactive"><span>@Translate("Menu", "Menu")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2031 <div class="list-tabs"> 2032 <ul> 2033 <li data-tab="tab_general" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_general", "general-info").UrlEncode()" class="active"><a href="javascript:void(0);">@Translate("General", "General")</a></li> 2034 <li data-tab="tab_achievements" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements", "achievements").UrlEncode()"><a href="javascript:void(0);">@Translate("Achievements", "Achievements")</a></li> 2035 <li data-tab="tab_achievements_motherline" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements_motherline", "achievements-motherline").UrlEncode()"><a href="javascript:void(0);">@Translate("AchievementsMotherLine", "Achievements mother line")</a></li> 2036 @if (showGeneticProfileBasedOnRegister) 2037 { 2038 <li data-tab="tab_genetic_profile" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_genetic_profile", "genetic-profile").UrlEncode()"><a href="javascript:void(0);">@Translate("GeneticProfile", "Genetic profile")</a></li> 2039 } 2040 @if (isMare || isMyHorse) 2041 { 2042 <li data-tab="tab_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_offspring", "offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("Offspring", "Offspring")</a></li> 2043 } 2044 @if (isApprovedStud) 2045 { 2046 <li data-tab="tab_breeding_registration" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_breeding_registration", "breeding-registration").UrlEncode()"><a href="javascript:void(0);">@Translate("BreedingRegistration", "Breeding registration")</a></li> 2047 <li data-tab="tab_approved_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_approved_offspring", "approved-offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("ApprovedOffspring", "Approved offspring")</a></li> 2048 <li data-tab="tab_performance_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_report", "performance-report").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceReport", "Performance report")</a></li> 2049 <li data-tab="tab_performance_figures" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_figures", "performance-figures").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceFigures", "Performance figures")</a></li> 2050 <li data-tab="tab_availability" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_availability", "availability").UrlEncode()"><a href="javascript:void(0);">@Translate("Availability", "Availability")</a></li> 2051 <li data-tab="tab_descendant_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_descendant_report", "descendant-report").UrlEncode()"><a href="javascript:void(0);">@Translate("DescendantsReport", "Descendants report")</a></li> 2052 } 2053 @{ 2054 var asideBreeders = breeders?.Where(b => b.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(b.PersonCode)); 2055 if (asideBreeders != null && asideBreeders.Any()) 2056 { 2057 <li data-tab="tab_breeders_info"> 2058 <span class="list-item"> 2059 @(asideBreeders.Count() > 1 ? Translate("Breeders", "Breeders") : Translate("Breeder", "Breeder")):<br /> 2060 @foreach (var breeder in asideBreeders) 2061 { 2062 <span class="breeder-link" data-personcode="@breeder.PersonCode">@breeder.PersonName</span> 2063 } 2064 </span> 2065 </li> 2066 } 2067 } 2068 </ul> 2069 </div> 2070 2071 @SnippetStart("JavascriptsBottom") 2072 <script id="videoTemplate" type="text/html"> 2073 {{if EmbedURL}} 2074 <div class="row"> 2075 <div class="col-xs-12 col-md-7"> 2076 {{if Title}} 2077 <h3>${Title}</h3> 2078 {{/if}} 2079 <div class="embed-responsive embed-responsive-16by9"> 2080 <iframe data-src="${EmbedURL}" class="embed-responsive-item" allowfullscreen></iframe> 2081 <div onclick="(function (elem) {const iframe = $(elem).prev('iframe');iframe.attr('src', iframe.attr('data-src'));$(elem).remove();})(this);"> 2082 <img src="${Thumb}" class="embed-responsive-item" /> 2083 <i class="play-button"></i> 2084 </div> 2085 </div> 2086 <div class="videoProperties"> 2087 <small> 2088 {{if Description && Description.length > 10}} 2089 <i>${Description}</i><br /> 2090 {{/if}} 2091 {{if Author}} 2092 @Translate("Author"): ${Author}<br /> 2093 {{/if}} 2094 {{if Views.All >= 0}} 2095 @Translate("Views"): ${Views.All}x <br /> 2096 {{/if}} 2097 </small> 2098 </div> 2099 <br /> 2100 </div> 2101 </div> 2102 {{/if}} 2103 </script> 2104 <script> 2105 $(document).ready(function () { 2106 // check for videos 2107 var getVideoCountUrl = "/kwpnwebapi/videos/getvideosbyhorsecount/@culture/@horse.AnimalCode"; 2108 $.getJSON(getVideoCountUrl).done(function (resultcount) { 2109 if (resultcount > 0) { 2110 $(".list-tabs ul").append("<li data-tab=\"tab_videos\"><a href=\"javascript:void(0);\">@Translate("Videos", "Videos")</a></li>"); 2111 2112 $(".list-tabs li[data-tab=tab_videos] a").click(function () { 2113 var listItem = $(this).parent(); 2114 var tab = listItem.attr("data-tab"); 2115 2116 // remove existing active from tab list 2117 $(".list-tabs li").removeClass("active"); 2118 2119 // add active 2120 listItem.addClass("active"); 2121 2122 // hide all content items 2123 $(".horse-detail-item").addClass("hidden"); 2124 2125 LoadVideos(); 2126 2127 // show items corresponding to current active tab 2128 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden"); 2129 }); 2130 2131 } 2132 }).fail(function (jqxhr, textStatus, error) { 2133 var err = textStatus + ", " + error; 2134 console.error("Request AddHorse Failed: " + err); 2135 }); 2136 2137 function LoadVideos() { 2138 2139 var videoContent = $("#video-container", "#horse-detail-item-videos"); 2140 if (videoContent.html() === "") { // if not empty, the video's have already been loaded 2141 // add spinner 2142 videoContent.html("<i class=\"fa fa-spinner fa-spin\"></a>"); 2143 2144 // load videos 2145 var getVideoUrl = "/kwpnwebapi/videos/getvideosbyhorse/@culture/@horse.AnimalCode"; 2146 $.getJSON(getVideoUrl).done(function (videos) { 2147 videoContent.html(""); // remove spinner 2148 if (videos != null && videos.MediaList != null && videos.MediaList.Results.length > 0) { 2149 $.each(videos.MediaList.Results, function (i, video) { 2150 $("#videoTemplate").tmpl(video).appendTo("#video-container", "#horse-detail-item-videos"); 2151 }); 2152 } 2153 else { 2154 videoContent.html("<p>@Translate("VideoNotFound", "Videos not found")</p>"); 2155 } 2156 }).fail(function (jqxhr, textStatus, error) { 2157 var err = textStatus + ", " + error; 2158 console.error("Request AddHorse Failed: " + err); 2159 videoContent.html("<p>@Translate("AnErrorOccurred", "An error occurred")</p>"); 2160 }); 2161 } 2162 } 2163 2164 function ClearVideos() { 2165 var videoContent = $("#video-container", "#horse-detail-item-videos"); 2166 videoContent.html(""); 2167 } 2168 2169 $(".list-tabs a").click(function () { 2170 2171 var listItem = $(this).parent(); 2172 var tab = listItem.attr("data-tab"); 2173 var vp = listItem.attr("data-vp").toLowerCase(); 2174 2175 // remove existing active from tab list 2176 $(".list-tabs li").removeClass("active"); 2177 2178 // add active 2179 listItem.addClass("active"); 2180 2181 // hide all content items 2182 $(".horse-detail-item").addClass("hidden"); 2183 2184 // SEO VIRTUAL PAGE VIEW LOGGING 2185 SEO.trackPageView("@seoPage.ToLower()/" + vp); 2186 2187 // if item is "video", load videos 2188 if (tab == "tab_videos") { 2189 LoadVideos(); 2190 } 2191 else { 2192 ClearVideos(); 2193 } 2194 2195 // show items corresponding to current active tab 2196 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden"); 2197 2198 }); 2199 }); 2200 </script> 2201 @SnippetEnd("JavascriptsBottom") 2202 #endregion 2203 } 2204 2205 @if (string.IsNullOrWhiteSpace(action) && actionShow) 2206 { 2207 #region ActionLinks 2208 <h2 id="listheader-actions" data-childId="list-actions" class="notactive"> 2209 <span>@Translate("Actions", "Actions")</span><i class="fa fa-chevron-down" aria-hidden="true"></i> 2210 </h2> 2211 <div class="list-actions"> 2212 <ul> 2213 @if (actionRegisterHorseToName) 2214 { 2215 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Register_HorseToName", "RegisterHorse"))">@Translate("Action_Register_HorseToName", "Register horse")</a></li> 2216 } 2217 @if (actionSignUpInspectionEvent) 2218 { 2219 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseEventsPageUrl(culture, horse.AnimalCode)">@Translate("Action_SignUp_InspectionEvent", "Sign up for inspection / event")</a></li> 2220 } 2221 @if (actionRequestBreedingAdvice) 2222 { 2223 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"))">@Translate("Action_Request_BreedingAdvice", "Request a breeding advice")</a></li> 2224 } 2225 @*@if (actionGetStallionAdvice) 2226 { 2227 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"))">@Translate("Action_Request_StallionAdvice", "Stallion advice")</a></li> 2228 }*@ 2229 @if (actionRequestGenomicBreedingValueTest) 2230 { 2231 <li><a href="javascript:void(0);" onclick="javascript:AddHorseToGenomeBreedingValueTest();return false;">@Translate("Action_Request_GenomeBreedingValueTest", "Request DNA/OC research")</a></li> 2232 } 2233 @if (actionSellViaMarketplace) 2234 { 2235 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_SellViaMarketplace", "sell"))">@Translate("Action_SellViaMarketplace", "Sell via KWPN Marketplace")</a></li> 2236 } 2237 @if (actionReportHorseSold) 2238 { 2239 <li><a href="javascript:void(0);" class="horse-sold-button">@Translate("Action_Report_HorseSold", "Report horse as sold")</a></li> 2240 } 2241 @if (actionReportDeceasedHorse) 2242 { 2243 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Report_HorseDied", "HorseDied"))">@Translate("Action_Report_HorseDied", "Report horse died")</a></li> 2244 } 2245 @if (actionInbreedingCalculation) 2246 { 2247 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"))">@Translate("Action_InbreedingCalculation", "Inbreeding calculation")</a></li> 2248 } 2249 @if (actionRequestDuplicate) 2250 { 2251 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Duplicate", "Duplicate"))">@Translate("Action_Request_Duplicate", "Request duplicate")</a></li> 2252 } 2253 @if (actionRequestContinuedPassport) 2254 { 2255 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"))">@Translate("Action_Request_ContinuedPassport", "Requests for passport renewal")</a></li> 2256 } 2257 @if (actionRequestPredicates) 2258 { 2259 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Predicates", "RequestPredicates"))">@Translate("Action_Request_Predicates", "Request predicate(s)")</a></li> 2260 } 2261 @if (actionVeterinarianRequestResearch) 2262 { 2263 if (horse.HorseAtLeast2YearsOldOnAprilFirst()) 2264 { 2265 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&amp;type=PROK">@Translate("Action_Request_PROK_Exam", "Request PROK examination")</a></li> 2266 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&amp;type=SPST">@Translate("Action_Request_SPST_Exam", "Request SPST examination")</a></li> 2267 } 2268 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&amp;type=OC">@Translate("Action_Request_OC_Exam", "Request OC examination")</a></li> 2269 } 2270 @if (isMyHorse) 2271 { 2272 <li class="refresh"><a href="#" id="refresh-link"><abbr title="@Translate("Action_RefreshHorseDataAbbr", "When refreshing the horse data we fetch the information from our back-end system. This may take a while.")">@Translate("Action_RefreshHorseData", "Refresh horse data")</abbr></a></li> 2273 } 2274 </ul> 2275 </div> 2276 @SnippetStart("JavascriptsBottom") 2277 <script> 2278 2279 @if (actionRequestGenomicBreedingValueTest) 2280 { 2281 <text> 2282 function AddHorseToGenomeBreedingValueTest() { 2283 var redirectUrl = '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"))'; 2284 // add horse to KwpnUser.GenomeBreedingValueItems 2285 var addHorseUrl = "/kwpnwebapi/forms/research/upserthorse/@horse.AnimalCode"; 2286 $.getJSON(addHorseUrl).done(function () { 2287 window.location.href = redirectUrl; 2288 }).fail(function (jqxhr, textStatus, error) { 2289 var err = textStatus + ", " + error; 2290 console.error("Request AddHorse Failed: " + err); 2291 }); 2292 } 2293 </text> 2294 } 2295 2296 $(document).ready(function () { 2297 2298 @if (isMyHorse) 2299 { 2300 <text> 2301 $("#refresh-link").off("click").on("click", function (e) { 2302 e.preventDefault(); 2303 $(".horse-database").addClass("hidden"); 2304 $("#refreshcontainer").removeClass("hidden"); 2305 var refreshHorse = "/kwpnwebapi/horses/refreshmyhorse/@culture/@horse.AnimalCode/@true"; 2306 $.ajax(refreshHorse).always(function () { 2307 window.location.href = "@System.Web.HttpContext.Current.Request.RawUrl"; 2308 }); 2309 return false; 2310 }); 2311 </text> 2312 } 2313 2314 @* 2315 2316 NOTE: 2317 WHENEVER THE DNA PAGE GOES LIVE AND THIS GETS UNCOMMENTED, 2318 THE 'check if document download links should be added to the action list and if so, do' 2319 JAVASCRIPT BENEITH MUST BE REMOVED !! 2320 2321 // check if any document is available. if so show the DNA page when it is your horse and it isn't an apporved stud 2322 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData() && isMyHorse && !isApprovedStud) 2323 { 2324 <text> 2325 //var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode"; 2326 //$.getJSON(downloadsApiUrl).done(function (result) { 2327 // if (result != null && result.length > 0) { 2328 // var dnaPageListItem = '<li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode, Translate("ActionLink_DnaPage", "DNA-Page"))">@Translate("Action_Request_DnaPage", "DNA-Page")</a></li>'; 2329 // $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(dnaPageListItem); // place at the end, but before the last, which is the refresh button 2330 // } 2331 // }).fail(function (jqxhr, textStatus, error) { 2332 // var err = textStatus + ", " + error; 2333 // console.error("Request Getdownloaddocuments Failed: " + err); 2334 // }); 2335 </text> 2336 }*@ 2337 2338 2339 // check if document download links should be added to the action list and if so, do 2340 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData()) 2341 { 2342 <text> 2343 // download documents 2344 $(".downloaddocument").remove(); 2345 var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode"; 2346 $.getJSON(downloadsApiUrl).done(function (result) { 2347 if (result != null && result.length > 0) { 2348 $.each(result, function (i, downloadDocument) { 2349 var downloadDocumentUrl = downloadDocument.URL; 2350 if (downloadDocumentUrl != null) { 2351 downloadDocumentUrl = downloadDocumentUrl.replace(/\\/g, "/"); // fix slashes 2352 var downloadDocumentLabel = "@Translate("DownloadDocument", "Download document"): " + downloadDocument.TypeDocument; 2353 var downloadDocumentListItem = "<li class=\"downloaddocument\"><a href=\"" + downloadDocumentUrl + "\" download target=\"_blank\">" + downloadDocumentLabel + "</a></li>"; 2354 $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(downloadDocumentListItem); // place at the end, but before the last, which is the refresh button 2355 } 2356 }); 2357 } 2358 }).fail(function (jqxhr, textStatus, error) { 2359 var err = textStatus + ", " + error; 2360 console.error("Request Getdownloaddocuments Failed: " + err); 2361 }); 2362 </text> 2363 } 2364 2365 2366 }); 2367 </script> 2368 @SnippetEnd("JavascriptsBottom") 2369 #endregion 2370 } 2371 2372 @*ACTION ASIDES*@ 2373 @if (!string.IsNullOrWhiteSpace(action)) 2374 { 2375 var productService = new Dynamicweb.Ecommerce.Products.ProductService(); 2376 var ecomLanguageId = Dynamicweb.Frontend.PageView.Current().Area.EcomLanguageId; 2377 2378 // EVENT SIGN UP 2379 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) && 2380 actionSignUpInspectionEvent) 2381 { 2382 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId); 2383 if (eventSignUpProduct != null) 2384 { 2385 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2386 <div class="list-actions"> 2387 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive"> 2388 <colgroup> 2389 <col width="30" /> 2390 <col /> 2391 </colgroup> 2392 <tr class="head"> 2393 <th><i class="fa fa-info"></i></th> 2394 <th>@Translate("Product", "Product")</th> 2395 </tr> 2396 <tr> 2397 <td>&nbsp;</td> 2398 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td> 2399 </tr> 2400 <tr class="required-services hidden" data-subtotal=""> 2401 <td>&nbsp;</td> 2402 <td class="required-service"></td> 2403 </tr> 2404 <tr class="head"> 2405 <th><i class="fa fa-eur"></i></th> 2406 <th>@Translate("Price", "Price")</th> 2407 </tr> 2408 <tr> 2409 <td>&nbsp;</td> 2410 <td>&euro; <span id="eventSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td> 2411 </tr> 2412 </table> 2413 </div> 2414 } 2415 } 2416 2417 2418 // CUP EVENT SIGN UP 2419 if (actionSignUpCupEvent) 2420 { 2421 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId); 2422 if (eventSignUpProduct != null) 2423 { 2424 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2425 <div class="list-actions"> 2426 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive"> 2427 <colgroup> 2428 <col width="30" /> 2429 <col /> 2430 </colgroup> 2431 <tr class="head"> 2432 <th><i class="fa fa-info"></i></th> 2433 <th>@Translate("Product", "Product")</th> 2434 </tr> 2435 <tr> 2436 <td>&nbsp;</td> 2437 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td> 2438 </tr> 2439 <tr class="required-services hidden" data-subtotal=""> 2440 <td>&nbsp;</td> 2441 <td class="required-service"></td> 2442 </tr> 2443 <tr class="head"> 2444 <th><i class="fa fa-eur"></i></th> 2445 <th>@Translate("Price", "Price")</th> 2446 </tr> 2447 <tr> 2448 <td>&nbsp;</td> 2449 <td><span id="eventCupSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td> 2450 </tr> 2451 </table> 2452 </div> 2453 } 2454 } 2455 2456 // BREEDING ADVICE 2457 else if (action.Equals(Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"), StringComparison.InvariantCultureIgnoreCase) && 2458 actionRequestBreedingAdvice) 2459 { 2460 var breedingAdviceproduct = (Kwpn.Repository.Helpers.LoginHelper.CurrentUserIsLoggedIn() && Kwpn.Repository.Repositories.KwpnUsers.CurrentUser().IsMember) ? productService.GetProductByNumber( 2461 Kwpn.Models.Constants.StringConstants.ProductNumbers.BreedingAdviceForMembers, ecomLanguageId) : productService.GetProductByNumber( 2462 Kwpn.Models.Constants.StringConstants.ProductNumbers.BreedingAdviceForNonMembers, ecomLanguageId); 2463 2464 if (breedingAdviceproduct != null) 2465 { 2466 <h2 id="breeding-advice-aside-info-header" data-childId="breeding-advice-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2467 <div class="list-actions"> 2468 <table id="breeding-advice-aside-info" class="aside-content aside-content-info notactive"> 2469 <colgroup> 2470 <col width="30" /> 2471 <col /> 2472 </colgroup> 2473 <tr class="head"> 2474 <th><i class="fa fa-info"></i></th> 2475 <th>@Translate("Product", "Product")</th> 2476 </tr> 2477 <tr> 2478 <td>&nbsp;</td> 2479 <td>@breedingAdviceproduct.Name</td> 2480 </tr> 2481 <tr class="head"> 2482 <th><i class="fa fa-eur"></i></th> 2483 <th>@Translate("Price", "Price")</th> 2484 </tr> 2485 <tr> 2486 <td>&nbsp;</td> 2487 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(breedingAdviceproduct)) (@Translate("VatIncluded", "VAT included"))</td> 2488 </tr> 2489 </table> 2490 </div> 2491 } 2492 } 2493 2494 // STALLION ADVICE 2495 else if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) && 2496 actionGetStallionAdvice) 2497 { 2498 <h2 id="stallion-advice-aside-info-header" data-childId="stallion-advice-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2499 <div class="list-actions"> 2500 <table id="stallion-advice-aside-info" class="aside-content aside-content-info notactive"> 2501 <colgroup> 2502 <col width="30" /> 2503 <col /> 2504 </colgroup> 2505 <tr class="head"> 2506 <th><i class="fa fa-info"></i></th> 2507 <th>Hengsten advies</th> 2508 </tr> 2509 <tr> 2510 <td>&nbsp;</td> 2511 <td>@horseName<br /><span id="stallion-advice-aside-breedingdirection-mare">@horse.BreedingDirection</span></td> 2512 </tr> 2513 </table> 2514 <ul class="aside-content notactive" id="stallion-advice-aside-links"> 2515 <li class="step-0 hidden"><a href='#' onclick="StallionAdvice.ShowStep(0); return false;">@Translate("StallionAdvice_BackToStep0_LinkText", "Explanation")</a></li> 2516 <li class="step-1 hidden"><a href='#' onclick="StallionAdvice.ShowStep(1); return false;">@Translate("StallionAdvice_BackToStep1_LinkText", "Step 1")</a></li> 2517 <li class="step-2 hidden"><a href='#' onclick="StallionAdvice.ShowStep(2); return false;">@Translate("StallionAdvice_BackToStep2_LinkText", "Step 2")</a></li> 2518 </ul> 2519 </div> 2520 } 2521 2522 // CONTINUED PASSPORT 2523 else if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) && 2524 actionRequestContinuedPassport) 2525 { 2526 var passportRenewalProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.PassportRenewal, ecomLanguageId); 2527 if (passportRenewalProduct != null) 2528 { 2529 <h2 id="passport-renewal-aside-info-header" data-childId="passport-renewal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2530 <div class="list-actions"> 2531 <table id="passport-renewal-aside-info" class="aside-content aside-content-info notactive"> 2532 <colgroup> 2533 <col width="30" /> 2534 <col /> 2535 </colgroup> 2536 <tr class="head"> 2537 <th><i class="fa fa-info"></i></th> 2538 <th>@Translate("Product", "Product")</th> 2539 </tr> 2540 <tr> 2541 <td>&nbsp;</td> 2542 <td>@passportRenewalProduct.Name</td> 2543 </tr> 2544 <tr class="head"> 2545 <th><i class="fa fa-eur"></i></th> 2546 <th>@Translate("Price", "Price")</th> 2547 </tr> 2548 <tr> 2549 <td>&nbsp;</td> 2550 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(passportRenewalProduct)) (@Translate("VatIncluded", "VAT included"))</td> 2551 </tr> 2552 </table> 2553 </div> 2554 } 2555 } 2556 2557 // PASSPORT DUPLICATE 2558 else if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) && 2559 actionRequestDuplicate) 2560 { 2561 <h2 id="passport-duplicate-aside-info-header" data-childId="passport-duplicate-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2562 <div class="list-actions"> 2563 <table id="passport-duplicate-info" class="aside-content aside-content-info notactive"> 2564 <colgroup> 2565 <col width="30" /> 2566 <col /> 2567 </colgroup> 2568 <tr class="head"> 2569 <th><i class="fa fa-info"></i></th> 2570 <th>@Translate("Product", "Product")</th> 2571 </tr> 2572 <tr> 2573 <td>&nbsp;</td> 2574 <td id="passport-duplicate-product-name"><!--value is set by javascript based on form selection--></td> 2575 </tr> 2576 <tr class="head"> 2577 <th><i class="fa fa-eur"></i></th> 2578 <th>@Translate("Price", "Price")</th> 2579 </tr> 2580 <tr> 2581 <td>&nbsp;</td> 2582 <td> 2583 <span id="passport-duplicate-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 2584 </td> 2585 </tr> 2586 </table> 2587 </div> 2588 } 2589 2590 // REGISTER HORSE TO NAME 2591 else if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) && 2592 actionRegisterHorseToName) 2593 { 2594 var registerHorseProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.RegisterHorse, ecomLanguageId); 2595 if (registerHorseProduct != null) 2596 { 2597 <h2 id="register-horse-aside-info-header" data-childId="register-horse-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2598 <div class="list-actions"> 2599 <table id="register-horse-aside-info" class="aside-content aside-content-info notactive"> 2600 <colgroup> 2601 <col width="30" /> 2602 <col /> 2603 </colgroup> 2604 <tr class="head"> 2605 <th><i class="fa fa-info"></i></th> 2606 <th>@Translate("Product", "Product")</th> 2607 </tr> 2608 <tr> 2609 <td>&nbsp;</td> 2610 <td>@registerHorseProduct.Name</td> 2611 </tr> 2612 <tr class="head"> 2613 <th><i class="fa fa-eur"></i></th> 2614 <th>@Translate("Price", "Price")</th> 2615 </tr> 2616 <tr> 2617 <td>&nbsp;</td> 2618 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(registerHorseProduct)) (@Translate("VatIncluded", "VAT included"))</td> 2619 </tr> 2620 </table> 2621 </div> 2622 } 2623 } 2624 2625 // REGISTER EMBRYO 2626 else if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) && 2627 actionRegisterEmbryo) 2628 { 2629 <h2 id="register-embryo-aside-info-header" data-childId="register-embryo-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2630 <div class="list-actions"> 2631 <table id="register-embryo-aside-info" class="aside-content aside-content-info notactive"> 2632 <colgroup> 2633 <col width="30" /> 2634 <col /> 2635 </colgroup> 2636 <tr class="head"> 2637 <th><i class="fa fa-info"></i></th> 2638 <th>@Translate("Product", "Product")</th> 2639 </tr> 2640 <tr> 2641 <td>&nbsp;</td> 2642 <td id="register-embryo-product-name"><!--value is set by javascript based on form selection--></td> 2643 </tr> 2644 <tr class="head"> 2645 <th><i class="fa fa-eur"></i></th> 2646 <th>@Translate("Price", "Price")</th> 2647 </tr> 2648 <tr> 2649 <td>&nbsp;</td> 2650 <td> 2651 <span id="register-embryo-product-price"><!--value is set by javascript based on form selection--></span> 2652 </td> 2653 </tr> 2654 </table> 2655 </div> 2656 } 2657 2658 // REGISTER FOAL 2659 else if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) && 2660 actionRegisterFoal) 2661 { 2662 <h2 id="register-foal-aside-info-header" data-childId="register-foal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2663 <div class="list-actions"> 2664 <table id="register-foal-aside-info" class="aside-content aside-content-info notactive"> 2665 <colgroup> 2666 <col width="30" /> 2667 <col /> 2668 </colgroup> 2669 <tr class="head"> 2670 <th><i class="fa fa-info"></i></th> 2671 <th>@Translate("Product", "Product")</th> 2672 </tr> 2673 <tr> 2674 <td>&nbsp;</td> 2675 <td id="register-foal-product-name"><!--value is set by javascript based on form selection--></td> 2676 </tr> 2677 <tr class="head"> 2678 <th><i class="fa fa-eur"></i></th> 2679 <th>@Translate("Price", "Price")</th> 2680 </tr> 2681 <tr> 2682 <td>&nbsp;</td> 2683 <td> 2684 <span id="register-foal-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 2685 </td> 2686 </tr> 2687 </table> 2688 </div> 2689 } 2690 2691 // REQUEST WFFS / GENOME BREEDING VALUE TEST 2692 else if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) && 2693 actionRequestGenomicBreedingValueTest) 2694 { 2695 <h2 id="genome-breeding-aside-info-header" data-childId="genome-breeding-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2696 <div class="list-actions"> 2697 <table id="genome-breeding-aside-info" class="aside-content aside-content-info notactive"> 2698 <colgroup> 2699 <col width="30" /> 2700 <col /> 2701 </colgroup> 2702 <tr class="head"> 2703 <th><i class="fa fa-info"></i></th> 2704 <th>@Translate("Product", "Product")</th> 2705 </tr> 2706 <tr> 2707 <td>&nbsp;</td> 2708 <td id="genome-breeding-product-name"><!--value is set by javascript based on form selection--></td> 2709 </tr> 2710 <tr class="head"> 2711 <th><i class="fa fa-eur"></i></th> 2712 <th>@Translate("Price", "Price")</th> 2713 </tr> 2714 <tr> 2715 <td>&nbsp;</td> 2716 <td> 2717 <span id="genome-breeding-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 2718 </td> 2719 </tr> 2720 </table> 2721 </div> 2722 } 2723 2724 // SELL HORSE VIA MARKETPLACE 2725 else if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && 2726 actionSellViaMarketplace) 2727 { 2728 <h2 id="marketplace-aside-info-header" data-childId="marketplace-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2729 <div class="list-actions"> 2730 <table id="marketplace-aside-info" class="aside-content aside-content-info notactive"> 2731 <colgroup> 2732 <col width="30" /> 2733 <col /> 2734 </colgroup> 2735 <tr class="head"> 2736 <th><i class="fa fa-info"></i></th> 2737 <th>@Translate("Product", "Product")</th> 2738 </tr> 2739 <tr> 2740 <td>&nbsp;</td> 2741 <td class="product-name"><!--value is set by javascript based on form selection--></td> 2742 </tr> 2743 <tr class="head paymentInfo hidden"> 2744 <th><i class="fa fa-cc"></i></th> 2745 <th>@Translate("PaymentMethod", "Payment method")</th> 2746 </tr> 2747 <tr class="paymentInfo hidden"> 2748 <td>&nbsp;</td> 2749 <td>@Translate("PaymentMethod_Text_Online", "Pay directly online")</td> 2750 </tr> 2751 <tr class="head"> 2752 <th><i class="fa fa-eur"></i></th> 2753 <th>@Translate("Price", "Price")</th> 2754 </tr> 2755 <tr> 2756 <td>&nbsp;</td> 2757 <td> 2758 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 2759 </td> 2760 </tr> 2761 </table> 2762 </div> 2763 } 2764 2765 // REQUEST PREDICATES 2766 else if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) && 2767 actionRequestPredicates) 2768 { 2769 <h2 id="request-predicates-aside-info-header" data-childId="request-predicates-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2770 <div class="list-actions"> 2771 <table id="request-predicates-aside-info" class="aside-content aside-content-info notactive"> 2772 <colgroup> 2773 <col width="30" /> 2774 <col /> 2775 </colgroup> 2776 <tr class="head"> 2777 <th><i class="fa fa-info"></i></th> 2778 <th>@Translate("Product", "Product")</th> 2779 </tr> 2780 <tr> 2781 <td>&nbsp;</td> 2782 <td class="product-name"><!--value is set by javascript based on form selection--></td> 2783 </tr> 2784 <tr class="head"> 2785 <th><i class="fa fa-eur"></i></th> 2786 <th>@Translate("Price", "Price")</th> 2787 </tr> 2788 <tr> 2789 <td>&nbsp;</td> 2790 <td> 2791 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 2792 </td> 2793 </tr> 2794 </table> 2795 </div> 2796 } 2797 } 2798 2799 @*BACK TO DETAILS*@ 2800 @if (!string.IsNullOrWhiteSpace(action)) 2801 { 2802 <h2 id="back-to-info-header" data-childId="back-to-info-list" class="notactive"><span>@Translate("HorseInfo", "Horse info")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2803 <div class="list-actions"> 2804 <ul id="back-to-info-list" class="aside-content notactive"> 2805 <li><a href='@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode)'>@Translate("ShowHorseDetails", "Show horse details")</a></li> 2806 </ul> 2807 </div> 2808 } 2809 2810 @*MEMBERSHIP CALL TO ACTION*@ 2811 @*@if (!string.IsNullOrWhiteSpace(action) && (!Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData())) 2812 { 2813 var becomeMemberPageId = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId); 2814 if (!string.IsNullOrWhiteSpace(becomeMemberPageId)) 2815 { 2816 var becomeMemberPageUrl = string.Format("/Default.aspx?ID={0}", becomeMemberPageId); 2817 <h2 id="become-member-list-header" data-childId="become-member-list" class="notactive"><span>@Translate("NoAccount?", "No KWPN Account?")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 2818 <div class="list-actions"> 2819 <ul id="become-member-list" class="aside-content notactive"> 2820 <li><a href='@becomeMemberPageUrl'>@Translate("BecomeMemberNow", "Become a member now")</a></li> 2821 </ul> 2822 </div> 2823 } 2824 }*@ 2825 2826 </aside> 2827 </div> 2828 </div> 2829 <article class="col-xs-12 col-md-10 page-content"> 2830 <div>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2831 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/showGeneral" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 2832 @if (!string.IsNullOrWhiteSpace(action)) 2833 { 2834 2835 // BREEDING ADVICE 2836 if (action.Equals(Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"), StringComparison.InvariantCultureIgnoreCase) && 2837 actionRequestBreedingAdvice) 2838 { 2839 var pageIdFormBreedingAdvice = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.BreedingAdvice); 2840 if (!string.IsNullOrWhiteSpace(pageIdFormBreedingAdvice)) 2841 { 2842 showGeneral = false; 2843 2844 // SEO VIRTUAL PAGE VIEW LOGGING 2845 <Text> 2846 <script> 2847 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_breeding_advice", "breeding-advice").UrlEncode()).ToLower()"); 2848 </script> 2849 </Text> 2850 2851 @RenderPageContent(Convert.ToInt32(pageIdFormBreedingAdvice)) 2852 } 2853 } 2854 2855 // STALLION ADVICE 2856 @*if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) && 2857 actionGetStallionAdvice) 2858 { 2859 var pageIdGetStallionAdvice = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.StallionAdvice)?.ID ?? 0; 2860 if (pageIdGetStallionAdvice > 0) 2861 { 2862 showGeneral = false; 2863 2864 // SEO VIRTUAL PAGE VIEW LOGGING 2865 <Text> 2866 <script> 2867 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_stalliob_advice", "stallion-advice").UrlEncode()).ToLower()"); 2868 </script> 2869 </Text> 2870 2871 @RenderPageContent(pageIdGetStallionAdvice) 2872 } 2873 }*@ 2874 2875 // EVENT SIGN UP 2876 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) && 2877 actionSignUpInspectionEvent) 2878 { 2879 var pageIdFormEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.EventSignUp); 2880 if (!string.IsNullOrWhiteSpace(pageIdFormEventSignUp) && !string.IsNullOrWhiteSpace(actionId)) 2881 { 2882 showGeneral = false; 2883 2884 // SEO VIRTUAL PAGE VIEW LOGGING 2885 <Text> 2886 <script> 2887 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()"); 2888 </script> 2889 </Text> 2890 2891 @RenderPageContent(Convert.ToInt32(pageIdFormEventSignUp)) 2892 } 2893 } 2894 2895 // CUP EVENT SIGN UP 2896 if (actionSignUpCupEvent) 2897 { 2898 var pageIdFormCupEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.CupEventSignUp); 2899 if (!string.IsNullOrWhiteSpace(pageIdFormCupEventSignUp)) 2900 { 2901 showGeneral = false; 2902 2903 // SEO VIRTUAL PAGE VIEW LOGGING 2904 <Text> 2905 <script> 2906 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()"); 2907 </script> 2908 </Text> 2909 2910 @RenderPageContent(Convert.ToInt32(pageIdFormCupEventSignUp)) 2911 } 2912 } 2913 2914 // REPORT DECEASED HORSE 2915 if (action.Equals(Translate("ActionLink_Report_HorseDied", "HorseDied"), StringComparison.InvariantCultureIgnoreCase) && 2916 actionReportDeceasedHorse) 2917 { 2918 var pageIdReportDeceased = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.ReportDeceased); 2919 if (!string.IsNullOrWhiteSpace(pageIdReportDeceased)) 2920 { 2921 showGeneral = false; 2922 2923 // SEO VIRTUAL PAGE VIEW LOGGING 2924 <Text> 2925 <script> 2926 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_report_deceased_horse", "report-deceased-horse").UrlEncode()).ToLower()"); 2927 </script> 2928 </Text> 2929 2930 @RenderPageContent(Convert.ToInt32(pageIdReportDeceased)) 2931 } 2932 } 2933 2934 // CONINUED PASSPORT 2935 if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) && 2936 actionRequestContinuedPassport) 2937 { 2938 var pageIdPassportRenewal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportRenewal); 2939 if (!string.IsNullOrWhiteSpace(pageIdPassportRenewal)) 2940 { 2941 showGeneral = false; 2942 2943 // SEO VIRTUAL PAGE VIEW LOGGING 2944 <Text> 2945 <script> 2946 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_continued_passport", "continued-passport").UrlEncode()).ToLower()"); 2947 </script> 2948 </Text> 2949 2950 @RenderPageContent(Convert.ToInt32(pageIdPassportRenewal)) 2951 } 2952 } 2953 2954 // REQUEST DUPLICATE 2955 if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) && 2956 actionRequestDuplicate) 2957 { 2958 var pageIdPassportDuplicate = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportDuplicate); 2959 if (!string.IsNullOrWhiteSpace(pageIdPassportDuplicate)) 2960 { 2961 showGeneral = false; 2962 2963 // SEO VIRTUAL PAGE VIEW LOGGING 2964 <Text> 2965 <script> 2966 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_duplicate", "request-duplicate").UrlEncode()).ToLower()"); 2967 </script> 2968 </Text> 2969 2970 @RenderPageContent(Convert.ToInt32(pageIdPassportDuplicate)) 2971 } 2972 } 2973 2974 // REGISTER HORSE TO NAME 2975 if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) && 2976 actionRegisterHorseToName) 2977 { 2978 var pageIdFormRegisterHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterHorse); 2979 if (!string.IsNullOrWhiteSpace(pageIdFormRegisterHorse)) 2980 { 2981 showGeneral = false; 2982 2983 // SEO VIRTUAL PAGE VIEW LOGGING 2984 <Text> 2985 <script> 2986 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_horse", "register-horse").UrlEncode()).ToLower()"); 2987 </script> 2988 </Text> 2989 2990 @RenderPageContent(Convert.ToInt32(pageIdFormRegisterHorse)) 2991 } 2992 } 2993 2994 // REGISTER EMBRYO 2995 if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) && 2996 actionRegisterEmbryo) 2997 { 2998 2999 var pageRegisterEmbryo = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterEmbryo); 3000 var pageIdRegisterEmbryo = pageRegisterEmbryo?.ID ?? 0; 3001 if (pageIdRegisterEmbryo > 0) 3002 { 3003 showGeneral = false; 3004 3005 // SEO VIRTUAL PAGE VIEW LOGGING 3006 <Text> 3007 <script> 3008 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_embryo", "register-embryo").UrlEncode()).ToLower()"); 3009 </script> 3010 </Text> 3011 3012 @RenderPageContent(pageIdRegisterEmbryo) 3013 } 3014 } 3015 3016 // REGISTER FOAL 3017 if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) && 3018 actionRegisterFoal) 3019 { 3020 var pageIdRegisterFoal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterFoal); 3021 if (!string.IsNullOrWhiteSpace(pageIdRegisterFoal)) 3022 { 3023 showGeneral = false; 3024 3025 // SEO VIRTUAL PAGE VIEW LOGGING 3026 <Text> 3027 <script> 3028 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_foal", "register-foal").UrlEncode()).ToLower()"); 3029 </script> 3030 </Text> 3031 3032 @RenderPageContent(Convert.ToInt32(pageIdRegisterFoal)) 3033 } 3034 } 3035 3036 // REQUEST GENOME BREEDING VALUE OC (DNA-TEST) 3037 if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) && 3038 actionRequestGenomicBreedingValueTest) 3039 { 3040 var pageIdGenomicBreedingValueTest = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RequestGenomeBreedingValueTest); 3041 if (!string.IsNullOrWhiteSpace(pageIdGenomicBreedingValueTest)) 3042 { 3043 showGeneral = false; 3044 3045 // SEO VIRTUAL PAGE VIEW LOGGING 3046 <Text> 3047 <script> 3048 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_dna_test", "request-dna-test").UrlEncode()).ToLower()"); 3049 </script> 3050 </Text> 3051 3052 @RenderPageContent(Convert.ToInt32(pageIdGenomicBreedingValueTest)) 3053 } 3054 } 3055 3056 // SELL HORSE VIA MARKETPLACE 3057 if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && actionSellViaMarketplace) 3058 { 3059 var pageIdSellHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.SellHorse); 3060 if (!string.IsNullOrWhiteSpace(pageIdSellHorse)) 3061 { 3062 showGeneral = false; 3063 3064 // SEO VIRTUAL PAGE VIEW LOGGING 3065 <Text> 3066 <script> 3067 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_sell_horse", "sell-horse").UrlEncode()).ToLower()"); 3068 </script> 3069 </Text> 3070 3071 @RenderPageContent(Convert.ToInt32(pageIdSellHorse)) 3072 } 3073 } 3074 3075 // INBREED CALCULATION 3076 if (action.Equals(Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"), StringComparison.InvariantCultureIgnoreCase) && actionInbreedingCalculation) 3077 { 3078 var pageIdInbreedCalculation = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.InbreedCalculationPageId); 3079 if (!string.IsNullOrWhiteSpace(pageIdInbreedCalculation)) 3080 { 3081 showGeneral = false; 3082 3083 // SEO VIRTUAL PAGE VIEW LOGGING 3084 <Text> 3085 <script> 3086 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_inbreed_calculation", "inbreed-calculation").UrlEncode()).ToLower()"); 3087 </script> 3088 </Text> 3089 3090 @RenderPageContent(Convert.ToInt32(pageIdInbreedCalculation)) 3091 } 3092 } 3093 3094 // REQUEST PREDICATES 3095 if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) && actionRequestPredicates) 3096 { 3097 var pageIdRequestPredicates = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.PredicatesRequestPageId); 3098 if (!string.IsNullOrWhiteSpace(pageIdRequestPredicates)) 3099 { 3100 showGeneral = false; 3101 3102 // SEO VIRTUAL PAGE VIEW LOGGING 3103 <Text> 3104 <script> 3105 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_predicates", "request-predicates").UrlEncode()).ToLower()"); 3106 </script> 3107 </Text> 3108 3109 @RenderPageContent(Convert.ToInt32(pageIdRequestPredicates)) 3110 } 3111 } 3112 3113 3114 // DNA PAGE 3115 @*if (action.Equals(Translate("ActionLink_DnaPage", "DNA-Page"), StringComparison.InvariantCultureIgnoreCase) && actionDnaPage) 3116 { 3117 var dnaPageId = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.DnaPage)?.ID ?? 0; 3118 if (dnaPageId > 0) 3119 { 3120 showGeneral = false; 3121 3122 // SEO VIRTUAL PAGE VIEW LOGGING 3123 <Text> 3124 <script> 3125 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_dnapage", "dna-page").UrlEncode()).ToLower()"); 3126 </script> 3127 </Text> 3128 3129 @RenderPageContent(dnaPageId) 3130 } 3131 }*@ 3132 } 3133 <script> 3134 var pageTitle = $('.paragraphTitel h1, .paragraphText h1').text(); 3135 $('.paragraphTitel h1, .paragraphText h1').remove(); 3136 $('.pageTitle').text(pageTitle); 3137 </script></div> 3138 </article> 3139 </div> 3140 <div class="row"> 3141 <div class="col-xs-12 col-md-10 page-content print-disclaimer"> 3142 @Translate("Print-Disclaimer", "<strong>KWPN Database - &copy; 2017 - Content: KWPN</strong><br /><p>Niets uit de KWPN Database mag zonder uitdrukkelijke toestemming van het KWPN worden overgenomen, vermenigvuldigd en/of openbaar gemaakt, of gebruikt voor herberekening of onderzoek op welke wijze dan ook, met uitzondering van hetgeen in de Auteurswet bepaald is met betrekking tot het reprorecht.</p><p>Het KWPN aanvaardt geen aansprakelijkheid voor schade van welke aard dan ook, die het gevolg is van handelingen en/of beslissingen gebaseerd op informatie van deze site. De door het KWPN verstrekte informatie en berekende fokwaarden op deze website zijn eigendom van het KWPN. De informatie en de fokwaarden zijn bedoeld als voorlichtingsmateriaal en geadviseerd wordt om deze te gebruiken als één van de hulpmiddelen voor selectiedoeleinden. De onderliggende gegevens zijn verzameld in en/of ten behoeve van de KWPN-populatie en de fokwaarden die hieruit zijn voortgekomen zijn van toepassing op de KWPN-populatie. Het KWPN heeft uiterste zorgvuldigheid betracht bij de totstandkoming van de gepresenteerde informatie. De berekeningen hebben plaatsgevonden op basis van de beschikbare kennis van de populatiegenetica en de regels van uitvoering zijn vastgelegd in de reglementen en/of besluiten van bevoegde organen van het KWPN.</p>") 3143 </div> 3144 </div> 3145 </div> 3146 </div> 3147 </div> 3148 } 3149 else 3150 { 3151 isMyHorse = HorseHelper.CheckIfMyHorse(animalCode) && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked(); 3152 isMyHorseAndConfirmed = HorseHelper.CheckIfMyHorseAndConfirmed(animalCode) && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked(); //voorkom dat mensen gelijk na op naam zetten paard kunnen verkopen 3153 isMare = false; 3154 isAlive = !horse.DateOfDeath.HasValue; 3155 isApprovedStud = horse.ApprovedStallion; 3156 isBredByMe = HorseHelper.CheckifBredByMe(horse.Breeders) && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked(); 3157 isAvailableForResearch = HorseHelper.horseIsAvailableForResearch(animalCode); 3158 3159 // HEADER DATA 3160 var genderClass = "fa-question"; 3161 var genderAbbr = ""; 3162 var gender = Kwpn.Models.Enumerations.Gender.UNKNOWN; 3163 Enum.TryParse(horse.Gender.ToUpper(), out gender); 3164 switch (gender) 3165 { 3166 case Kwpn.Models.Enumerations.Gender.HENGST: 3167 genderClass = "fa-mars"; 3168 genderAbbr = Translate("Stallion", "Stallion"); 3169 break; 3170 case Kwpn.Models.Enumerations.Gender.MERRIE: 3171 genderClass = "fa-venus"; 3172 genderAbbr = Translate("Mare", "Mare"); 3173 isMare = true; 3174 break; 3175 case Kwpn.Models.Enumerations.Gender.RUIN: 3176 genderClass = "fa-mars"; //fa-mars-stroke-h 3177 genderAbbr = Translate("Gelding", "Gelding"); 3178 break; 3179 } 3180 horseName = HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, horse.DateOfBirth.Value); 3181 var fatherName = ""; 3182 var father = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.Father); 3183 if (father != null) { fatherName = father.AnimalName; } else { fatherName = Translate("Unknown", "Unknown"); } 3184 var fatherNameAbbr = Translate("FathersName", "Fathers name").JsEncode(); 3185 var mothersFatherName = ""; 3186 var mothersFather = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather); 3187 if (mothersFather != null) { mothersFatherName = mothersFather.AnimalName; } else { mothersFatherName = Translate("Unknown", "Unknown"); } 3188 var mothersFatherNameAbbr = Translate("MothersFathersName", "Mothers fathers name").JsEncode(); 3189 3190 // HORSE INFO TABLE DATA 3191 var placeOfBirth = horse.PlaceOfBirth; 3192 var chipNumber = horse.ChipNumber; 3193 var register = horse.Register; 3194 var breedingDirection = horse.BreedingDirection; 3195 var lifeNumber = horse.Lifenumber; 3196 if (!string.IsNullOrWhiteSpace(horse.LifenumberComplete)) { lifeNumber = horse.LifenumberComplete; } 3197 var dateOfBirth = ""; 3198 if (horse.DateOfBirth.HasValue && !dateOfBirth.Equals(DateTime.MinValue)) { dateOfBirth = horse.DateOfBirth.Value.ToShortDateString(); } 3199 var color = ""; 3200 var colorInfo = horse.GetMarkingByType(StringConstants.MarkingTypes.Color); 3201 if (colorInfo != null) { color = colorInfo.Description; } 3202 var wffs = horse.WFFSResearchInformation; 3203 var withers = ""; 3204 var heightInfo = horse.GetMarkingByType(StringConstants.MarkingTypes.Height); 3205 if (heightInfo != null) { withers = heightInfo.Description; } 3206 if (!string.IsNullOrWhiteSpace(withers)) { withers = HorseHelper.ConvertWithers(withers); } 3207 breeders = horse.Breeders; 3208 hasBreeders = breeders != null && breeders.Any(); 3209 3210 // descendent- and performance report 3211 var reports = horse.AnimalReports; 3212 3213 int currentAge = FormatHelpers.CalculateAgeAsInt(horse.DateOfBirth.Value); 3214 3215 showGeneticProfileBasedOnRegister = HorseHelper.IsAllowedRegister(horse.Register) || string.Equals(horse.Register, "ZE", StringComparison.OrdinalIgnoreCase); 3216 showGeneticProfileBasedOnOwnerSettings = !HorseHelper.GeneticProfileIsHidden(animalCode, currentAge); 3217 3218 // validate actions 3219 actionRequestBreedingAdvice = isAlive && isMare; 3220 actionSignUpInspectionEvent = isAlive && isMyHorse; 3221 actionReportDeceasedHorse = isAlive && isMyHorse; 3222 actionRequestContinuedPassport = (!isApprovedStud || isMyHorse) && isAlive; 3223 actionRequestDuplicate = (!isApprovedStud || isMyHorse) && isAlive; 3224 actionRequestPredicates = (!isApprovedStud || isMyHorse); 3225 actionRegisterHorseToName = LoginHelper.IsFullMember() && !isApprovedStud && isAlive && !isMyHorse && !Kwpn.Repository.Helpers.LoginHelper.IsBlocked(); 3226 actionRegisterFoal = isMyHorse && isAlive && isMare; 3227 actionRegisterEmbryo = isMyHorse && isAlive && isMare; 3228 actionReportHorseSold = isAlive && isMyHorse; 3229 actionVeterinarianRequestResearch = UserHelper.CheckIfVeterinarian(); 3230 actionRequestGenomicBreedingValueTest = isMyHorseAndConfirmed && isAvailableForResearch; 3231 actionSellViaMarketplace = isAlive && (UserHelper.CheckIfMarketplaceManager() || (isMyHorseAndConfirmed && HorseHelper.IsAllowedRegister(horse.Register))) && !MarketplaceHelper.AnimalHasActiveMarketplaceAdvert(horse.AnimalCode); 3232 actionInbreedingCalculation = !string.IsNullOrWhiteSpace(horse.BreedingDirection) && 3233 isMyHorse && 3234 isMare && 3235 isAlive && 3236 currentAge > 2 && 3237 currentAge < 26 && 3238 ( 3239 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_GelderHorse", "Gelder Horse")) || 3240 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_HarnessHorse", "Harness Horse")) || 3241 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_RidingHorse", "Riding Horse")) || 3242 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_DressageHorse", "Dressage Horse")) || 3243 horse.BreedingDirection.Equals(Translate("EquisBreedingDirection_JumperHorse", "Jumper Horse")) 3244 ); 3245 actionGetStallionAdvice = isAlive && isMyHorse && isMare && currentAge > 2 && currentAge < 26; 3246 actionDnaPage = isMyHorse && !isApprovedStud; 3247 actionShow = ( 3248 actionRequestBreedingAdvice || 3249 actionSignUpInspectionEvent || 3250 actionReportDeceasedHorse || 3251 actionRequestContinuedPassport || 3252 actionRequestDuplicate || 3253 actionRegisterHorseToName || 3254 actionRegisterEmbryo || 3255 actionRegisterFoal || 3256 actionReportHorseSold || 3257 actionVeterinarianRequestResearch || 3258 actionRequestGenomicBreedingValueTest || 3259 actionSellViaMarketplace || 3260 actionInbreedingCalculation || 3261 actionRequestPredicates || 3262 actionGetStallionAdvice || 3263 actionDnaPage); 3264 3265 // add horse info to seo page 3266 seoPage = string.Format("{0}/{1}/{2}", seoPage, animalCode.UrlEncode(), HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, null).Replace(" ", "-").UrlEncode()); 3267 3268 if (actionReportHorseSold) 3269 { 3270 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 3271 <div class="modal fade" id="confirm-sold" tabindex="-1" role="dialog" aria-labelledby="horse-sold-modal" aria-hidden="true"> 3272 <div class="modal-dialog"> 3273 <div class="modal-content"> 3274 <div class="modal-header">@Translate("HorseSoldModalHeader", "Report horse as sold")</div> 3275 <div class="modal-body" data-default="@Translate("HorseSoldModalText", "Are you sure you would like to report your horse <span class='horseInfo'>{horse}</span> as sold?")"></div> 3276 <div class="modal-footer"> 3277 <a class="orange_arrow_link" data-dismiss="modal" href="javascript:void(0);">@Translate("Cancel", "Cancel")</a> 3278 <a class="orange_balloon_link modal-ok" href="javascript:void(0);">@Translate("ReportAsSold", "Report as sold")</a> 3279 </div> 3280 </div> 3281 </div> 3282 </div> 3283 @SnippetStart("JavascriptsBottom") 3284 <script> 3285 $(document).ready(function () { 3286 3287 $(".horse-sold-button").click(function (e) { 3288 3289 // set modal text 3290 var horseInfo = "@horseName (@lifeNumber)"; 3291 var modalBody = $("#confirm-sold .modal-body").attr("data-default"); 3292 var newModalBody = modalBody.replace("{horse}", horseInfo); 3293 $("#confirm-sold .modal-body").html(newModalBody); 3294 3295 // seo tracking 3296 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_horse_sold", "horse-sold").UrlEncode()).ToLower()"); 3297 3298 // set modal ok button value 3299 var horseCode = "@animalCode"; 3300 var horseSoldApi = "/kwpnwebapi/horses/reportsold/@culture/" + horseCode; 3301 var okButton = $("#confirm-sold .modal-footer .modal-ok"); 3302 okButton.unbind("click"); 3303 okButton.click(function () { 3304 $.getJSON(horseSoldApi).done(function (result, status, metaData) { 3305 if (result) { 3306 location.reload(); // reload page to change isMyhorse options 3307 } 3308 if (!result) { 3309 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrong", "Something went wrong")", customClass: layout.notifyCopyrightMessageClass }); 3310 } 3311 }).fail(function (jqxhr, textStatus, error) { 3312 var err = textStatus + ", " + error; 3313 console.error("Request Reportsold Failed: " + err); 3314 }); 3315 $("#confirm-sold").modal("hide"); 3316 }); 3317 3318 // show modal 3319 $("#confirm-sold").modal("show"); 3320 3321 }); 3322 }); 3323 </script> 3324 @SnippetEnd("JavascriptsBottom") 3325 } 3326 <div class="break-grid content-container page-content-aside horse-database"> 3327 <div class="break-grid-background"> 3328 <div class="in-grid"> 3329 3330 <div class="row"> 3331 <div class="col-xs-12"> 3332 <h1 class="pageTitle">&nbsp;</h1> 3333 </div> 3334 </div> 3335 3336 <div class="row"> 3337 <div class="col-xs-12"> 3338 <div class="notification"></div> 3339 </div> 3340 </div> 3341 3342 @if (string.IsNullOrWhiteSpace(action)) 3343 { 3344 var horseNameTitle = horseName; 3345 if (isApprovedStud) 3346 { 3347 horseNameTitle = string.Format("{0} <img class='icon-weapon' src='/Files/Templates/Designs/Kwpn/Images/wapen.svg' /> ", horseNameTitle); 3348 } 3349 <div class="row"> 3350 <div class="col-xs-12 col-md-7"> 3351 <a class="go-back orange_arrow_link arrowleft pull-right hidden-md hidden-lg" href="#">@Translate("Back", "Back")</a> 3352 <h1>@horseNameTitle</h1> 3353 </div> 3354 <div class="hidden-xs hidden-sm col-md-4 col-lg-3"> 3355 <a class="go-back orange_arrow_link arrowleft pull-right" href="#">@Translate("Back", "Back")</a> 3356 </div> 3357 </div> 3358 <div class="row"> 3359 <div class="col-xs-12 col-md-2"> 3360 <span class="gender"><i class="fa @genderClass" title='@genderAbbr.JsEncode()'></i> @genderAbbr.ToUpper()</span>@if (!isAlive) 3361 {<span class="deceased" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"><img src="/Files/Templates/Designs/Kwpn/Images/deceased-icon.png" /></span>} 3362 </div> 3363 <div class="col-xs-12 col-md-10"> 3364 <span class="pedigree"><i class="fa fa-tag"></i> <abbr title='@fatherNameAbbr'>@fatherName</abbr> x <abbr title='@mothersFatherNameAbbr'>@mothersFatherName</abbr></span> 3365 </div> 3366 </div> 3367 } 3368 3369 <div class="row"> 3370 <div class="col-xs-12 col-md-2 col-md-push-10 aside-page"> 3371 <div class="bg_aside closed"> 3372 <div class="aside_pullLabel">Menu<i class="fa fa-bars" aria-hidden="true"></i></div> 3373 <aside> 3374 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 3375 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/isApprovedStud" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 3376 @*DEFAULT ASIDE*@ 3377 @if (string.IsNullOrWhiteSpace(action)) 3378 { 3379 #region TabLinks 3380 <h2 id="listheader-tabs" data-childId="view-list-tabs" class="notactive"><span>@Translate("Menu", "Menu")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3381 <div class="list-tabs"> 3382 <ul> 3383 <li data-tab="tab_general" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_general", "general-info").UrlEncode()" class="active"><a href="javascript:void(0);">@Translate("General", "General")</a></li> 3384 <li data-tab="tab_achievements" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements", "achievements").UrlEncode()"><a href="javascript:void(0);">@Translate("Achievements", "Achievements")</a></li> 3385 <li data-tab="tab_achievements_motherline" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_achievements_motherline", "achievements-motherline").UrlEncode()"><a href="javascript:void(0);">@Translate("AchievementsMotherLine", "Achievements mother line")</a></li> 3386 @if (showGeneticProfileBasedOnRegister) 3387 { 3388 <li data-tab="tab_genetic_profile" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_genetic_profile", "genetic-profile").UrlEncode()"><a href="javascript:void(0);">@Translate("GeneticProfile", "Genetic profile")</a></li> 3389 } 3390 @if (isMare || isMyHorse) 3391 { 3392 <li data-tab="tab_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_offspring", "offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("Offspring", "Offspring")</a></li> 3393 } 3394 @if (isApprovedStud) 3395 { 3396 <li data-tab="tab_breeding_registration" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_breeding_registration", "breeding-registration").UrlEncode()"><a href="javascript:void(0);">@Translate("BreedingRegistration", "Breeding registration")</a></li> 3397 <li data-tab="tab_approved_offspring" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_approved_offspring", "approved-offspring").UrlEncode()"><a href="javascript:void(0);">@Translate("ApprovedOffspring", "Approved offspring")</a></li> 3398 <li data-tab="tab_performance_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_report", "performance-report").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceReport", "Performance report")</a></li> 3399 <li data-tab="tab_performance_figures" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_performance_figures", "performance-figures").UrlEncode()"><a href="javascript:void(0);">@Translate("PerformanceFigures", "Performance figures")</a></li> 3400 <li data-tab="tab_availability" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_availability", "availability").UrlEncode()"><a href="javascript:void(0);">@Translate("Availability", "Availability")</a></li> 3401 <li data-tab="tab_descendant_report" data-vp="@Translate("SEO_TrackPageviewPage_Database_tab_descendant_report", "descendant-report").UrlEncode()"><a href="javascript:void(0);">@Translate("DescendantsReport", "Descendants report")</a></li> 3402 } 3403 @{ 3404 var asideBreeders = breeders?.Where(b => b.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(b.PersonCode)); 3405 if (asideBreeders != null && asideBreeders.Any()) 3406 { 3407 <li data-tab="tab_breeders_info"> 3408 <span class="list-item"> 3409 @(asideBreeders.Count() > 1 ? Translate("Breeders", "Breeders") : Translate("Breeder", "Breeder")):<br /> 3410 @foreach (var breeder in asideBreeders) 3411 { 3412 <span class="breeder-link" data-personcode="@breeder.PersonCode">@breeder.PersonName</span> 3413 } 3414 </span> 3415 </li> 3416 } 3417 } 3418 </ul> 3419 </div> 3420 3421 @SnippetStart("JavascriptsBottom") 3422 <script id="videoTemplate" type="text/html"> 3423 {{if EmbedURL}} 3424 <div class="row"> 3425 <div class="col-xs-12 col-md-7"> 3426 {{if Title}} 3427 <h3>${Title}</h3> 3428 {{/if}} 3429 <div class="embed-responsive embed-responsive-16by9"> 3430 <iframe data-src="${EmbedURL}" class="embed-responsive-item" allowfullscreen></iframe> 3431 <div onclick="(function (elem) {const iframe = $(elem).prev('iframe');iframe.attr('src', iframe.attr('data-src'));$(elem).remove();})(this);"> 3432 <img src="${Thumb}" class="embed-responsive-item" /> 3433 <i class="play-button"></i> 3434 </div> 3435 </div> 3436 <div class="videoProperties"> 3437 <small> 3438 {{if Description && Description.length > 10}} 3439 <i>${Description}</i><br /> 3440 {{/if}} 3441 {{if Author}} 3442 @Translate("Author"): ${Author}<br /> 3443 {{/if}} 3444 {{if Views.All >= 0}} 3445 @Translate("Views"): ${Views.All}x <br /> 3446 {{/if}} 3447 </small> 3448 </div> 3449 <br /> 3450 </div> 3451 </div> 3452 {{/if}} 3453 </script> 3454 <script> 3455 $(document).ready(function () { 3456 // check for videos 3457 var getVideoCountUrl = "/kwpnwebapi/videos/getvideosbyhorsecount/@culture/@horse.AnimalCode"; 3458 $.getJSON(getVideoCountUrl).done(function (resultcount) { 3459 if (resultcount > 0) { 3460 $(".list-tabs ul").append("<li data-tab=\"tab_videos\"><a href=\"javascript:void(0);\">@Translate("Videos", "Videos")</a></li>"); 3461 3462 $(".list-tabs li[data-tab=tab_videos] a").click(function () { 3463 var listItem = $(this).parent(); 3464 var tab = listItem.attr("data-tab"); 3465 3466 // remove existing active from tab list 3467 $(".list-tabs li").removeClass("active"); 3468 3469 // add active 3470 listItem.addClass("active"); 3471 3472 // hide all content items 3473 $(".horse-detail-item").addClass("hidden"); 3474 3475 LoadVideos(); 3476 3477 // show items corresponding to current active tab 3478 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden"); 3479 }); 3480 3481 } 3482 }).fail(function (jqxhr, textStatus, error) { 3483 var err = textStatus + ", " + error; 3484 console.error("Request AddHorse Failed: " + err); 3485 }); 3486 3487 function LoadVideos() { 3488 3489 var videoContent = $("#video-container", "#horse-detail-item-videos"); 3490 if (videoContent.html() === "") { // if not empty, the video's have already been loaded 3491 // add spinner 3492 videoContent.html("<i class=\"fa fa-spinner fa-spin\"></a>"); 3493 3494 // load videos 3495 var getVideoUrl = "/kwpnwebapi/videos/getvideosbyhorse/@culture/@horse.AnimalCode"; 3496 $.getJSON(getVideoUrl).done(function (videos) { 3497 videoContent.html(""); // remove spinner 3498 if (videos != null && videos.MediaList != null && videos.MediaList.Results.length > 0) { 3499 $.each(videos.MediaList.Results, function (i, video) { 3500 $("#videoTemplate").tmpl(video).appendTo("#video-container", "#horse-detail-item-videos"); 3501 }); 3502 } 3503 else { 3504 videoContent.html("<p>@Translate("VideoNotFound", "Videos not found")</p>"); 3505 } 3506 }).fail(function (jqxhr, textStatus, error) { 3507 var err = textStatus + ", " + error; 3508 console.error("Request AddHorse Failed: " + err); 3509 videoContent.html("<p>@Translate("AnErrorOccurred", "An error occurred")</p>"); 3510 }); 3511 } 3512 } 3513 3514 function ClearVideos() { 3515 var videoContent = $("#video-container", "#horse-detail-item-videos"); 3516 videoContent.html(""); 3517 } 3518 3519 $(".list-tabs a").click(function () { 3520 3521 var listItem = $(this).parent(); 3522 var tab = listItem.attr("data-tab"); 3523 var vp = listItem.attr("data-vp").toLowerCase(); 3524 3525 // remove existing active from tab list 3526 $(".list-tabs li").removeClass("active"); 3527 3528 // add active 3529 listItem.addClass("active"); 3530 3531 // hide all content items 3532 $(".horse-detail-item").addClass("hidden"); 3533 3534 // SEO VIRTUAL PAGE VIEW LOGGING 3535 SEO.trackPageView("@seoPage.ToLower()/" + vp); 3536 3537 // if item is "video", load videos 3538 if (tab == "tab_videos") { 3539 LoadVideos(); 3540 } 3541 else { 3542 ClearVideos(); 3543 } 3544 3545 // show items corresponding to current active tab 3546 $(".horse-detail-item[data-content=" + tab + "]").removeClass("hidden"); 3547 3548 }); 3549 }); 3550 </script> 3551 @SnippetEnd("JavascriptsBottom") 3552 #endregion 3553 } 3554 3555 @if (string.IsNullOrWhiteSpace(action) && actionShow) 3556 { 3557 #region ActionLinks 3558 <h2 id="listheader-actions" data-childId="list-actions" class="notactive"> 3559 <span>@Translate("Actions", "Actions")</span><i class="fa fa-chevron-down" aria-hidden="true"></i> 3560 </h2> 3561 <div class="list-actions"> 3562 <ul> 3563 @if (actionRegisterHorseToName) 3564 { 3565 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Register_HorseToName", "RegisterHorse"))">@Translate("Action_Register_HorseToName", "Register horse")</a></li> 3566 } 3567 @if (actionSignUpInspectionEvent) 3568 { 3569 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseEventsPageUrl(culture, horse.AnimalCode)">@Translate("Action_SignUp_InspectionEvent", "Sign up for inspection / event")</a></li> 3570 } 3571 @if (actionRequestBreedingAdvice) 3572 { 3573 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"))">@Translate("Action_Request_BreedingAdvice", "Request a breeding advice")</a></li> 3574 } 3575 @*@if (actionGetStallionAdvice) 3576 { 3577 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"))">@Translate("Action_Request_StallionAdvice", "Stallion advice")</a></li> 3578 }*@ 3579 @if (actionRequestGenomicBreedingValueTest) 3580 { 3581 <li><a href="javascript:void(0);" onclick="javascript:AddHorseToGenomeBreedingValueTest();return false;">@Translate("Action_Request_GenomeBreedingValueTest", "Request DNA/OC research")</a></li> 3582 } 3583 @if (actionSellViaMarketplace) 3584 { 3585 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_SellViaMarketplace", "sell"))">@Translate("Action_SellViaMarketplace", "Sell via KWPN Marketplace")</a></li> 3586 } 3587 @if (actionReportHorseSold) 3588 { 3589 <li><a href="javascript:void(0);" class="horse-sold-button">@Translate("Action_Report_HorseSold", "Report horse as sold")</a></li> 3590 } 3591 @if (actionReportDeceasedHorse) 3592 { 3593 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Report_HorseDied", "HorseDied"))">@Translate("Action_Report_HorseDied", "Report horse died")</a></li> 3594 } 3595 @if (actionInbreedingCalculation) 3596 { 3597 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"))">@Translate("Action_InbreedingCalculation", "Inbreeding calculation")</a></li> 3598 } 3599 @if (actionRequestDuplicate) 3600 { 3601 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Duplicate", "Duplicate"))">@Translate("Action_Request_Duplicate", "Request duplicate")</a></li> 3602 } 3603 @if (actionRequestContinuedPassport) 3604 { 3605 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"))">@Translate("Action_Request_ContinuedPassport", "Requests for passport renewal")</a></li> 3606 } 3607 @if (actionRequestPredicates) 3608 { 3609 <li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_Predicates", "RequestPredicates"))">@Translate("Action_Request_Predicates", "Request predicate(s)")</a></li> 3610 } 3611 @if (actionVeterinarianRequestResearch) 3612 { 3613 if (horse.HorseAtLeast2YearsOldOnAprilFirst()) 3614 { 3615 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&amp;type=PROK">@Translate("Action_Request_PROK_Exam", "Request PROK examination")</a></li> 3616 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&amp;type=SPST">@Translate("Action_Request_SPST_Exam", "Request SPST examination")</a></li> 3617 } 3618 <li><a href="/aanmelden-onderzoek?@Translate("Horse", "Horse")=@horse.AnimalCode&amp;type=OC">@Translate("Action_Request_OC_Exam", "Request OC examination")</a></li> 3619 } 3620 @if (isMyHorse) 3621 { 3622 <li class="refresh"><a href="#" id="refresh-link"><abbr title="@Translate("Action_RefreshHorseDataAbbr", "When refreshing the horse data we fetch the information from our back-end system. This may take a while.")">@Translate("Action_RefreshHorseData", "Refresh horse data")</abbr></a></li> 3623 } 3624 </ul> 3625 </div> 3626 @SnippetStart("JavascriptsBottom") 3627 <script> 3628 3629 @if (actionRequestGenomicBreedingValueTest) 3630 { 3631 <text> 3632 function AddHorseToGenomeBreedingValueTest() { 3633 var redirectUrl = '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode, Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"))'; 3634 // add horse to KwpnUser.GenomeBreedingValueItems 3635 var addHorseUrl = "/kwpnwebapi/forms/research/upserthorse/@horse.AnimalCode"; 3636 $.getJSON(addHorseUrl).done(function () { 3637 window.location.href = redirectUrl; 3638 }).fail(function (jqxhr, textStatus, error) { 3639 var err = textStatus + ", " + error; 3640 console.error("Request AddHorse Failed: " + err); 3641 }); 3642 } 3643 </text> 3644 } 3645 3646 $(document).ready(function () { 3647 3648 @if (isMyHorse) 3649 { 3650 <text> 3651 $("#refresh-link").off("click").on("click", function (e) { 3652 e.preventDefault(); 3653 $(".horse-database").addClass("hidden"); 3654 $("#refreshcontainer").removeClass("hidden"); 3655 var refreshHorse = "/kwpnwebapi/horses/refreshmyhorse/@culture/@horse.AnimalCode/@true"; 3656 $.ajax(refreshHorse).always(function () { 3657 window.location.href = "@System.Web.HttpContext.Current.Request.RawUrl"; 3658 }); 3659 return false; 3660 }); 3661 </text> 3662 } 3663 3664 @* 3665 3666 NOTE: 3667 WHENEVER THE DNA PAGE GOES LIVE AND THIS GETS UNCOMMENTED, 3668 THE 'check if document download links should be added to the action list and if so, do' 3669 JAVASCRIPT BENEITH MUST BE REMOVED !! 3670 3671 // check if any document is available. if so show the DNA page when it is your horse and it isn't an apporved stud 3672 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData() && isMyHorse && !isApprovedStud) 3673 { 3674 <text> 3675 //var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode"; 3676 //$.getJSON(downloadsApiUrl).done(function (result) { 3677 // if (result != null && result.length > 0) { 3678 // var dnaPageListItem = '<li><a href="@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode, Translate("ActionLink_DnaPage", "DNA-Page"))">@Translate("Action_Request_DnaPage", "DNA-Page")</a></li>'; 3679 // $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(dnaPageListItem); // place at the end, but before the last, which is the refresh button 3680 // } 3681 // }).fail(function (jqxhr, textStatus, error) { 3682 // var err = textStatus + ", " + error; 3683 // console.error("Request Getdownloaddocuments Failed: " + err); 3684 // }); 3685 </text> 3686 }*@ 3687 3688 3689 // check if document download links should be added to the action list and if so, do 3690 @if (Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData()) 3691 { 3692 <text> 3693 // download documents 3694 $(".downloaddocument").remove(); 3695 var downloadsApiUrl = "/kwpnwebapi/horses/getdownloaddocuments/@culture/@animalCode"; 3696 $.getJSON(downloadsApiUrl).done(function (result) { 3697 if (result != null && result.length > 0) { 3698 $.each(result, function (i, downloadDocument) { 3699 var downloadDocumentUrl = downloadDocument.URL; 3700 if (downloadDocumentUrl != null) { 3701 downloadDocumentUrl = downloadDocumentUrl.replace(/\\/g, "/"); // fix slashes 3702 var downloadDocumentLabel = "@Translate("DownloadDocument", "Download document"): " + downloadDocument.TypeDocument; 3703 var downloadDocumentListItem = "<li class=\"downloaddocument\"><a href=\"" + downloadDocumentUrl + "\" download target=\"_blank\">" + downloadDocumentLabel + "</a></li>"; 3704 $("aside .list-actions ul").find(' > li:nth-last-child(1)').before(downloadDocumentListItem); // place at the end, but before the last, which is the refresh button 3705 } 3706 }); 3707 } 3708 }).fail(function (jqxhr, textStatus, error) { 3709 var err = textStatus + ", " + error; 3710 console.error("Request Getdownloaddocuments Failed: " + err); 3711 }); 3712 </text> 3713 } 3714 3715 3716 }); 3717 </script> 3718 @SnippetEnd("JavascriptsBottom") 3719 #endregion 3720 } 3721 3722 @*ACTION ASIDES*@ 3723 @if (!string.IsNullOrWhiteSpace(action)) 3724 { 3725 var productService = new Dynamicweb.Ecommerce.Products.ProductService(); 3726 var ecomLanguageId = Dynamicweb.Frontend.PageView.Current().Area.EcomLanguageId; 3727 3728 // EVENT SIGN UP 3729 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) && 3730 actionSignUpInspectionEvent) 3731 { 3732 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId); 3733 if (eventSignUpProduct != null) 3734 { 3735 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3736 <div class="list-actions"> 3737 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive"> 3738 <colgroup> 3739 <col width="30" /> 3740 <col /> 3741 </colgroup> 3742 <tr class="head"> 3743 <th><i class="fa fa-info"></i></th> 3744 <th>@Translate("Product", "Product")</th> 3745 </tr> 3746 <tr> 3747 <td>&nbsp;</td> 3748 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td> 3749 </tr> 3750 <tr class="required-services hidden" data-subtotal=""> 3751 <td>&nbsp;</td> 3752 <td class="required-service"></td> 3753 </tr> 3754 <tr class="head"> 3755 <th><i class="fa fa-eur"></i></th> 3756 <th>@Translate("Price", "Price")</th> 3757 </tr> 3758 <tr> 3759 <td>&nbsp;</td> 3760 <td>&euro; <span id="eventSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td> 3761 </tr> 3762 </table> 3763 </div> 3764 } 3765 } 3766 3767 3768 // CUP EVENT SIGN UP 3769 if (actionSignUpCupEvent) 3770 { 3771 var eventSignUpProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.EventSignUp, ecomLanguageId); 3772 if (eventSignUpProduct != null) 3773 { 3774 <h2 id="event-signup-aside-info-header" data-childId="event-signup-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3775 <div class="list-actions"> 3776 <table id="event-signup-aside-aside-info" class="aside-content aside-content-info notactive"> 3777 <colgroup> 3778 <col width="30" /> 3779 <col /> 3780 </colgroup> 3781 <tr class="head"> 3782 <th><i class="fa fa-info"></i></th> 3783 <th>@Translate("Product", "Product")</th> 3784 </tr> 3785 <tr> 3786 <td>&nbsp;</td> 3787 <td>@eventSignUpProduct.Name <span class="inspection-price"></span></td> 3788 </tr> 3789 <tr class="required-services hidden" data-subtotal=""> 3790 <td>&nbsp;</td> 3791 <td class="required-service"></td> 3792 </tr> 3793 <tr class="head"> 3794 <th><i class="fa fa-eur"></i></th> 3795 <th>@Translate("Price", "Price")</th> 3796 </tr> 3797 <tr> 3798 <td>&nbsp;</td> 3799 <td><span id="eventCupSignUpPriceAside">@Translate("NotYetKnown", "n.y.k.")</span> (@Translate("VatIncluded", "VAT included"))</td> 3800 </tr> 3801 </table> 3802 </div> 3803 } 3804 } 3805 3806 // BREEDING ADVICE 3807 else if (action.Equals(Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"), StringComparison.InvariantCultureIgnoreCase) && 3808 actionRequestBreedingAdvice) 3809 { 3810 var breedingAdviceproduct = (Kwpn.Repository.Helpers.LoginHelper.CurrentUserIsLoggedIn() && Kwpn.Repository.Repositories.KwpnUsers.CurrentUser().IsMember) ? productService.GetProductByNumber( 3811 Kwpn.Models.Constants.StringConstants.ProductNumbers.BreedingAdviceForMembers, ecomLanguageId) : productService.GetProductByNumber( 3812 Kwpn.Models.Constants.StringConstants.ProductNumbers.BreedingAdviceForNonMembers, ecomLanguageId); 3813 3814 if (breedingAdviceproduct != null) 3815 { 3816 <h2 id="breeding-advice-aside-info-header" data-childId="breeding-advice-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3817 <div class="list-actions"> 3818 <table id="breeding-advice-aside-info" class="aside-content aside-content-info notactive"> 3819 <colgroup> 3820 <col width="30" /> 3821 <col /> 3822 </colgroup> 3823 <tr class="head"> 3824 <th><i class="fa fa-info"></i></th> 3825 <th>@Translate("Product", "Product")</th> 3826 </tr> 3827 <tr> 3828 <td>&nbsp;</td> 3829 <td>@breedingAdviceproduct.Name</td> 3830 </tr> 3831 <tr class="head"> 3832 <th><i class="fa fa-eur"></i></th> 3833 <th>@Translate("Price", "Price")</th> 3834 </tr> 3835 <tr> 3836 <td>&nbsp;</td> 3837 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(breedingAdviceproduct)) (@Translate("VatIncluded", "VAT included"))</td> 3838 </tr> 3839 </table> 3840 </div> 3841 } 3842 } 3843 3844 // STALLION ADVICE 3845 else if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) && 3846 actionGetStallionAdvice) 3847 { 3848 <h2 id="stallion-advice-aside-info-header" data-childId="stallion-advice-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3849 <div class="list-actions"> 3850 <table id="stallion-advice-aside-info" class="aside-content aside-content-info notactive"> 3851 <colgroup> 3852 <col width="30" /> 3853 <col /> 3854 </colgroup> 3855 <tr class="head"> 3856 <th><i class="fa fa-info"></i></th> 3857 <th>Hengsten advies</th> 3858 </tr> 3859 <tr> 3860 <td>&nbsp;</td> 3861 <td>@horseName<br /><span id="stallion-advice-aside-breedingdirection-mare">@horse.BreedingDirection</span></td> 3862 </tr> 3863 </table> 3864 <ul class="aside-content notactive" id="stallion-advice-aside-links"> 3865 <li class="step-0 hidden"><a href='#' onclick="StallionAdvice.ShowStep(0); return false;">@Translate("StallionAdvice_BackToStep0_LinkText", "Explanation")</a></li> 3866 <li class="step-1 hidden"><a href='#' onclick="StallionAdvice.ShowStep(1); return false;">@Translate("StallionAdvice_BackToStep1_LinkText", "Step 1")</a></li> 3867 <li class="step-2 hidden"><a href='#' onclick="StallionAdvice.ShowStep(2); return false;">@Translate("StallionAdvice_BackToStep2_LinkText", "Step 2")</a></li> 3868 </ul> 3869 </div> 3870 } 3871 3872 // CONTINUED PASSPORT 3873 else if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) && 3874 actionRequestContinuedPassport) 3875 { 3876 var passportRenewalProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.PassportRenewal, ecomLanguageId); 3877 if (passportRenewalProduct != null) 3878 { 3879 <h2 id="passport-renewal-aside-info-header" data-childId="passport-renewal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3880 <div class="list-actions"> 3881 <table id="passport-renewal-aside-info" class="aside-content aside-content-info notactive"> 3882 <colgroup> 3883 <col width="30" /> 3884 <col /> 3885 </colgroup> 3886 <tr class="head"> 3887 <th><i class="fa fa-info"></i></th> 3888 <th>@Translate("Product", "Product")</th> 3889 </tr> 3890 <tr> 3891 <td>&nbsp;</td> 3892 <td>@passportRenewalProduct.Name</td> 3893 </tr> 3894 <tr class="head"> 3895 <th><i class="fa fa-eur"></i></th> 3896 <th>@Translate("Price", "Price")</th> 3897 </tr> 3898 <tr> 3899 <td>&nbsp;</td> 3900 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(passportRenewalProduct)) (@Translate("VatIncluded", "VAT included"))</td> 3901 </tr> 3902 </table> 3903 </div> 3904 } 3905 } 3906 3907 // PASSPORT DUPLICATE 3908 else if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) && 3909 actionRequestDuplicate) 3910 { 3911 <h2 id="passport-duplicate-aside-info-header" data-childId="passport-duplicate-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3912 <div class="list-actions"> 3913 <table id="passport-duplicate-info" class="aside-content aside-content-info notactive"> 3914 <colgroup> 3915 <col width="30" /> 3916 <col /> 3917 </colgroup> 3918 <tr class="head"> 3919 <th><i class="fa fa-info"></i></th> 3920 <th>@Translate("Product", "Product")</th> 3921 </tr> 3922 <tr> 3923 <td>&nbsp;</td> 3924 <td id="passport-duplicate-product-name"><!--value is set by javascript based on form selection--></td> 3925 </tr> 3926 <tr class="head"> 3927 <th><i class="fa fa-eur"></i></th> 3928 <th>@Translate("Price", "Price")</th> 3929 </tr> 3930 <tr> 3931 <td>&nbsp;</td> 3932 <td> 3933 <span id="passport-duplicate-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 3934 </td> 3935 </tr> 3936 </table> 3937 </div> 3938 } 3939 3940 // REGISTER HORSE TO NAME 3941 else if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) && 3942 actionRegisterHorseToName) 3943 { 3944 var registerHorseProduct = productService.GetProductByNumber(Kwpn.Models.Constants.StringConstants.ProductNumbers.RegisterHorse, ecomLanguageId); 3945 if (registerHorseProduct != null) 3946 { 3947 <h2 id="register-horse-aside-info-header" data-childId="register-horse-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3948 <div class="list-actions"> 3949 <table id="register-horse-aside-info" class="aside-content aside-content-info notactive"> 3950 <colgroup> 3951 <col width="30" /> 3952 <col /> 3953 </colgroup> 3954 <tr class="head"> 3955 <th><i class="fa fa-info"></i></th> 3956 <th>@Translate("Product", "Product")</th> 3957 </tr> 3958 <tr> 3959 <td>&nbsp;</td> 3960 <td>@registerHorseProduct.Name</td> 3961 </tr> 3962 <tr class="head"> 3963 <th><i class="fa fa-eur"></i></th> 3964 <th>@Translate("Price", "Price")</th> 3965 </tr> 3966 <tr> 3967 <td>&nbsp;</td> 3968 <td>@Kwpn.Repository.Helpers.ProductHelper.FormatPrice(Kwpn.Repository.Helpers.ProductHelper.GetProductPrice(registerHorseProduct)) (@Translate("VatIncluded", "VAT included"))</td> 3969 </tr> 3970 </table> 3971 </div> 3972 } 3973 } 3974 3975 // REGISTER EMBRYO 3976 else if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) && 3977 actionRegisterEmbryo) 3978 { 3979 <h2 id="register-embryo-aside-info-header" data-childId="register-embryo-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 3980 <div class="list-actions"> 3981 <table id="register-embryo-aside-info" class="aside-content aside-content-info notactive"> 3982 <colgroup> 3983 <col width="30" /> 3984 <col /> 3985 </colgroup> 3986 <tr class="head"> 3987 <th><i class="fa fa-info"></i></th> 3988 <th>@Translate("Product", "Product")</th> 3989 </tr> 3990 <tr> 3991 <td>&nbsp;</td> 3992 <td id="register-embryo-product-name"><!--value is set by javascript based on form selection--></td> 3993 </tr> 3994 <tr class="head"> 3995 <th><i class="fa fa-eur"></i></th> 3996 <th>@Translate("Price", "Price")</th> 3997 </tr> 3998 <tr> 3999 <td>&nbsp;</td> 4000 <td> 4001 <span id="register-embryo-product-price"><!--value is set by javascript based on form selection--></span> 4002 </td> 4003 </tr> 4004 </table> 4005 </div> 4006 } 4007 4008 // REGISTER FOAL 4009 else if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) && 4010 actionRegisterFoal) 4011 { 4012 <h2 id="register-foal-aside-info-header" data-childId="register-foal-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 4013 <div class="list-actions"> 4014 <table id="register-foal-aside-info" class="aside-content aside-content-info notactive"> 4015 <colgroup> 4016 <col width="30" /> 4017 <col /> 4018 </colgroup> 4019 <tr class="head"> 4020 <th><i class="fa fa-info"></i></th> 4021 <th>@Translate("Product", "Product")</th> 4022 </tr> 4023 <tr> 4024 <td>&nbsp;</td> 4025 <td id="register-foal-product-name"><!--value is set by javascript based on form selection--></td> 4026 </tr> 4027 <tr class="head"> 4028 <th><i class="fa fa-eur"></i></th> 4029 <th>@Translate("Price", "Price")</th> 4030 </tr> 4031 <tr> 4032 <td>&nbsp;</td> 4033 <td> 4034 <span id="register-foal-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 4035 </td> 4036 </tr> 4037 </table> 4038 </div> 4039 } 4040 4041 // REQUEST WFFS / GENOME BREEDING VALUE TEST 4042 else if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) && 4043 actionRequestGenomicBreedingValueTest) 4044 { 4045 <h2 id="genome-breeding-aside-info-header" data-childId="genome-breeding-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 4046 <div class="list-actions"> 4047 <table id="genome-breeding-aside-info" class="aside-content aside-content-info notactive"> 4048 <colgroup> 4049 <col width="30" /> 4050 <col /> 4051 </colgroup> 4052 <tr class="head"> 4053 <th><i class="fa fa-info"></i></th> 4054 <th>@Translate("Product", "Product")</th> 4055 </tr> 4056 <tr> 4057 <td>&nbsp;</td> 4058 <td id="genome-breeding-product-name"><!--value is set by javascript based on form selection--></td> 4059 </tr> 4060 <tr class="head"> 4061 <th><i class="fa fa-eur"></i></th> 4062 <th>@Translate("Price", "Price")</th> 4063 </tr> 4064 <tr> 4065 <td>&nbsp;</td> 4066 <td> 4067 <span id="genome-breeding-product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 4068 </td> 4069 </tr> 4070 </table> 4071 </div> 4072 } 4073 4074 // SELL HORSE VIA MARKETPLACE 4075 else if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && 4076 actionSellViaMarketplace) 4077 { 4078 <h2 id="marketplace-aside-info-header" data-childId="marketplace-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 4079 <div class="list-actions"> 4080 <table id="marketplace-aside-info" class="aside-content aside-content-info notactive"> 4081 <colgroup> 4082 <col width="30" /> 4083 <col /> 4084 </colgroup> 4085 <tr class="head"> 4086 <th><i class="fa fa-info"></i></th> 4087 <th>@Translate("Product", "Product")</th> 4088 </tr> 4089 <tr> 4090 <td>&nbsp;</td> 4091 <td class="product-name"><!--value is set by javascript based on form selection--></td> 4092 </tr> 4093 <tr class="head paymentInfo hidden"> 4094 <th><i class="fa fa-cc"></i></th> 4095 <th>@Translate("PaymentMethod", "Payment method")</th> 4096 </tr> 4097 <tr class="paymentInfo hidden"> 4098 <td>&nbsp;</td> 4099 <td>@Translate("PaymentMethod_Text_Online", "Pay directly online")</td> 4100 </tr> 4101 <tr class="head"> 4102 <th><i class="fa fa-eur"></i></th> 4103 <th>@Translate("Price", "Price")</th> 4104 </tr> 4105 <tr> 4106 <td>&nbsp;</td> 4107 <td> 4108 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 4109 </td> 4110 </tr> 4111 </table> 4112 </div> 4113 } 4114 4115 // REQUEST PREDICATES 4116 else if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) && 4117 actionRequestPredicates) 4118 { 4119 <h2 id="request-predicates-aside-info-header" data-childId="request-predicates-aside-info" class="notactive"><span>@Translate("Information", "Information")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 4120 <div class="list-actions"> 4121 <table id="request-predicates-aside-info" class="aside-content aside-content-info notactive"> 4122 <colgroup> 4123 <col width="30" /> 4124 <col /> 4125 </colgroup> 4126 <tr class="head"> 4127 <th><i class="fa fa-info"></i></th> 4128 <th>@Translate("Product", "Product")</th> 4129 </tr> 4130 <tr> 4131 <td>&nbsp;</td> 4132 <td class="product-name"><!--value is set by javascript based on form selection--></td> 4133 </tr> 4134 <tr class="head"> 4135 <th><i class="fa fa-eur"></i></th> 4136 <th>@Translate("Price", "Price")</th> 4137 </tr> 4138 <tr> 4139 <td>&nbsp;</td> 4140 <td> 4141 <span class="product-price"><!--value is set by javascript based on form selection--></span> (@Translate("VatIncluded", "VAT included")) 4142 </td> 4143 </tr> 4144 </table> 4145 </div> 4146 } 4147 } 4148 4149 @*BACK TO DETAILS*@ 4150 @if (!string.IsNullOrWhiteSpace(action)) 4151 { 4152 <h2 id="back-to-info-header" data-childId="back-to-info-list" class="notactive"><span>@Translate("HorseInfo", "Horse info")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 4153 <div class="list-actions"> 4154 <ul id="back-to-info-list" class="aside-content notactive"> 4155 <li><a href='@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, animalCode)'>@Translate("ShowHorseDetails", "Show horse details")</a></li> 4156 </ul> 4157 </div> 4158 } 4159 4160 @*MEMBERSHIP CALL TO ACTION*@ 4161 @*@if (!string.IsNullOrWhiteSpace(action) && (!Kwpn.Repository.Helpers.LoginHelper.HasAccessToExtendedHorseData())) 4162 { 4163 var becomeMemberPageId = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.BecomeMemberPageId); 4164 if (!string.IsNullOrWhiteSpace(becomeMemberPageId)) 4165 { 4166 var becomeMemberPageUrl = string.Format("/Default.aspx?ID={0}", becomeMemberPageId); 4167 <h2 id="become-member-list-header" data-childId="become-member-list" class="notactive"><span>@Translate("NoAccount?", "No KWPN Account?")</span><i class="fa fa-chevron-down" aria-hidden="true"></i></h2> 4168 <div class="list-actions"> 4169 <ul id="become-member-list" class="aside-content notactive"> 4170 <li><a href='@becomeMemberPageUrl'>@Translate("BecomeMemberNow", "Become a member now")</a></li> 4171 </ul> 4172 </div> 4173 } 4174 }*@ 4175 4176 @if (action == null) 4177 { 4178 <!-- /204473129/DatabaseDetail/Banner1 --> 4179 <div id='div-gpt-ad-banner1-1' class="google-container google-container--size--b google-container--databasedetail"> 4180 <script> 4181 googletag.cmd.push(function () { googletag.display('div-gpt-ad-banner1-1'); }); 4182 </script> 4183 </div> 4184 } 4185 </aside> 4186 </div> 4187 </div> 4188 <article class="col-xs-12 col-md-10 page-content"> 4189 @if ( 4190 !isApprovedStud || 4191 isMyHorse || 4192 (action != null && action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && actionSellViaMarketplace)) 4193 { 4194 <div>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 4195 @*note: variables like "action/isAlive/isMyHorse/horse/culture/animalCode/showGeneral" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 4196 @if (!string.IsNullOrWhiteSpace(action)) 4197 { 4198 4199 // BREEDING ADVICE 4200 if (action.Equals(Translate("ActionLink_Request_BreedingAdvice", "BreedingAdvice"), StringComparison.InvariantCultureIgnoreCase) && 4201 actionRequestBreedingAdvice) 4202 { 4203 var pageIdFormBreedingAdvice = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.BreedingAdvice); 4204 if (!string.IsNullOrWhiteSpace(pageIdFormBreedingAdvice)) 4205 { 4206 showGeneral = false; 4207 4208 // SEO VIRTUAL PAGE VIEW LOGGING 4209 <Text> 4210 <script> 4211 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_breeding_advice", "breeding-advice").UrlEncode()).ToLower()"); 4212 </script> 4213 </Text> 4214 4215 @RenderPageContent(Convert.ToInt32(pageIdFormBreedingAdvice)) 4216 } 4217 } 4218 4219 // STALLION ADVICE 4220 @*if (action.Equals(Translate("ActionLink_Get_StallionAdvice", "StallionAdvice"), StringComparison.InvariantCultureIgnoreCase) && 4221 actionGetStallionAdvice) 4222 { 4223 var pageIdGetStallionAdvice = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.StallionAdvice)?.ID ?? 0; 4224 if (pageIdGetStallionAdvice > 0) 4225 { 4226 showGeneral = false; 4227 4228 // SEO VIRTUAL PAGE VIEW LOGGING 4229 <Text> 4230 <script> 4231 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_stalliob_advice", "stallion-advice").UrlEncode()).ToLower()"); 4232 </script> 4233 </Text> 4234 4235 @RenderPageContent(pageIdGetStallionAdvice) 4236 } 4237 }*@ 4238 4239 // EVENT SIGN UP 4240 if (action.Equals(Translate("ActionLink_SignUp_InspectionEvent", "EventSignUp"), StringComparison.InvariantCultureIgnoreCase) && 4241 actionSignUpInspectionEvent) 4242 { 4243 var pageIdFormEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.EventSignUp); 4244 if (!string.IsNullOrWhiteSpace(pageIdFormEventSignUp) && !string.IsNullOrWhiteSpace(actionId)) 4245 { 4246 showGeneral = false; 4247 4248 // SEO VIRTUAL PAGE VIEW LOGGING 4249 <Text> 4250 <script> 4251 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()"); 4252 </script> 4253 </Text> 4254 4255 @RenderPageContent(Convert.ToInt32(pageIdFormEventSignUp)) 4256 } 4257 } 4258 4259 // CUP EVENT SIGN UP 4260 if (actionSignUpCupEvent) 4261 { 4262 var pageIdFormCupEventSignUp = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.CupEventSignUp); 4263 if (!string.IsNullOrWhiteSpace(pageIdFormCupEventSignUp)) 4264 { 4265 showGeneral = false; 4266 4267 // SEO VIRTUAL PAGE VIEW LOGGING 4268 <Text> 4269 <script> 4270 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_event_signup", "event-signup").UrlEncode()).ToLower()"); 4271 </script> 4272 </Text> 4273 4274 @RenderPageContent(Convert.ToInt32(pageIdFormCupEventSignUp)) 4275 } 4276 } 4277 4278 // REPORT DECEASED HORSE 4279 if (action.Equals(Translate("ActionLink_Report_HorseDied", "HorseDied"), StringComparison.InvariantCultureIgnoreCase) && 4280 actionReportDeceasedHorse) 4281 { 4282 var pageIdReportDeceased = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.ReportDeceased); 4283 if (!string.IsNullOrWhiteSpace(pageIdReportDeceased)) 4284 { 4285 showGeneral = false; 4286 4287 // SEO VIRTUAL PAGE VIEW LOGGING 4288 <Text> 4289 <script> 4290 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_report_deceased_horse", "report-deceased-horse").UrlEncode()).ToLower()"); 4291 </script> 4292 </Text> 4293 4294 @RenderPageContent(Convert.ToInt32(pageIdReportDeceased)) 4295 } 4296 } 4297 4298 // CONINUED PASSPORT 4299 if (action.Equals(Translate("ActionLink_Request_ContinuedPassport", "PassportRenewal"), StringComparison.InvariantCultureIgnoreCase) && 4300 actionRequestContinuedPassport) 4301 { 4302 var pageIdPassportRenewal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportRenewal); 4303 if (!string.IsNullOrWhiteSpace(pageIdPassportRenewal)) 4304 { 4305 showGeneral = false; 4306 4307 // SEO VIRTUAL PAGE VIEW LOGGING 4308 <Text> 4309 <script> 4310 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_continued_passport", "continued-passport").UrlEncode()).ToLower()"); 4311 </script> 4312 </Text> 4313 4314 @RenderPageContent(Convert.ToInt32(pageIdPassportRenewal)) 4315 } 4316 } 4317 4318 // REQUEST DUPLICATE 4319 if (action.Equals(Translate("ActionLink_Request_Duplicate", "Duplicate"), StringComparison.InvariantCultureIgnoreCase) && 4320 actionRequestDuplicate) 4321 { 4322 var pageIdPassportDuplicate = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.PassportDuplicate); 4323 if (!string.IsNullOrWhiteSpace(pageIdPassportDuplicate)) 4324 { 4325 showGeneral = false; 4326 4327 // SEO VIRTUAL PAGE VIEW LOGGING 4328 <Text> 4329 <script> 4330 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_duplicate", "request-duplicate").UrlEncode()).ToLower()"); 4331 </script> 4332 </Text> 4333 4334 @RenderPageContent(Convert.ToInt32(pageIdPassportDuplicate)) 4335 } 4336 } 4337 4338 // REGISTER HORSE TO NAME 4339 if (action.Equals(Translate("ActionLink_Register_HorseToName", "RegisterHorse"), StringComparison.InvariantCultureIgnoreCase) && 4340 actionRegisterHorseToName) 4341 { 4342 var pageIdFormRegisterHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterHorse); 4343 if (!string.IsNullOrWhiteSpace(pageIdFormRegisterHorse)) 4344 { 4345 showGeneral = false; 4346 4347 // SEO VIRTUAL PAGE VIEW LOGGING 4348 <Text> 4349 <script> 4350 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_horse", "register-horse").UrlEncode()).ToLower()"); 4351 </script> 4352 </Text> 4353 4354 @RenderPageContent(Convert.ToInt32(pageIdFormRegisterHorse)) 4355 } 4356 } 4357 4358 // REGISTER EMBRYO 4359 if (action.Equals(Translate("ActionLink_Register_Embryo", "RegisterEmbryo"), StringComparison.InvariantCultureIgnoreCase) && 4360 actionRegisterEmbryo) 4361 { 4362 4363 var pageRegisterEmbryo = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterEmbryo); 4364 var pageIdRegisterEmbryo = pageRegisterEmbryo?.ID ?? 0; 4365 if (pageIdRegisterEmbryo > 0) 4366 { 4367 showGeneral = false; 4368 4369 // SEO VIRTUAL PAGE VIEW LOGGING 4370 <Text> 4371 <script> 4372 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_embryo", "register-embryo").UrlEncode()).ToLower()"); 4373 </script> 4374 </Text> 4375 4376 @RenderPageContent(pageIdRegisterEmbryo) 4377 } 4378 } 4379 4380 // REGISTER FOAL 4381 if (action.Equals(Translate("ActionLink_Register_Foal", "RegisterFoal"), StringComparison.InvariantCultureIgnoreCase) && 4382 actionRegisterFoal) 4383 { 4384 var pageIdRegisterFoal = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RegisterFoal); 4385 if (!string.IsNullOrWhiteSpace(pageIdRegisterFoal)) 4386 { 4387 showGeneral = false; 4388 4389 // SEO VIRTUAL PAGE VIEW LOGGING 4390 <Text> 4391 <script> 4392 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_register_foal", "register-foal").UrlEncode()).ToLower()"); 4393 </script> 4394 </Text> 4395 4396 @RenderPageContent(Convert.ToInt32(pageIdRegisterFoal)) 4397 } 4398 } 4399 4400 // REQUEST GENOME BREEDING VALUE OC (DNA-TEST) 4401 if (action.Equals(Translate("ActionLink_Request_GenomeBreedingValueTest", "GenomeBreedingValue"), StringComparison.InvariantCultureIgnoreCase) && 4402 actionRequestGenomicBreedingValueTest) 4403 { 4404 var pageIdGenomicBreedingValueTest = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.RequestGenomeBreedingValueTest); 4405 if (!string.IsNullOrWhiteSpace(pageIdGenomicBreedingValueTest)) 4406 { 4407 showGeneral = false; 4408 4409 // SEO VIRTUAL PAGE VIEW LOGGING 4410 <Text> 4411 <script> 4412 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_dna_test", "request-dna-test").UrlEncode()).ToLower()"); 4413 </script> 4414 </Text> 4415 4416 @RenderPageContent(Convert.ToInt32(pageIdGenomicBreedingValueTest)) 4417 } 4418 } 4419 4420 // SELL HORSE VIA MARKETPLACE 4421 if (action.Equals(Translate("ActionLink_SellViaMarketplace", "sell"), StringComparison.InvariantCultureIgnoreCase) && actionSellViaMarketplace) 4422 { 4423 var pageIdSellHorse = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.SellHorse); 4424 if (!string.IsNullOrWhiteSpace(pageIdSellHorse)) 4425 { 4426 showGeneral = false; 4427 4428 // SEO VIRTUAL PAGE VIEW LOGGING 4429 <Text> 4430 <script> 4431 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_sell_horse", "sell-horse").UrlEncode()).ToLower()"); 4432 </script> 4433 </Text> 4434 4435 @RenderPageContent(Convert.ToInt32(pageIdSellHorse)) 4436 } 4437 } 4438 4439 // INBREED CALCULATION 4440 if (action.Equals(Translate("ActionLink_InbreedingCalculation", "InbreedingCalculation"), StringComparison.InvariantCultureIgnoreCase) && actionInbreedingCalculation) 4441 { 4442 var pageIdInbreedCalculation = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.InbreedCalculationPageId); 4443 if (!string.IsNullOrWhiteSpace(pageIdInbreedCalculation)) 4444 { 4445 showGeneral = false; 4446 4447 // SEO VIRTUAL PAGE VIEW LOGGING 4448 <Text> 4449 <script> 4450 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_inbreed_calculation", "inbreed-calculation").UrlEncode()).ToLower()"); 4451 </script> 4452 </Text> 4453 4454 @RenderPageContent(Convert.ToInt32(pageIdInbreedCalculation)) 4455 } 4456 } 4457 4458 // REQUEST PREDICATES 4459 if (action.Equals(Translate("ActionLink_Request_Predicates", "RequestPredicates"), StringComparison.InvariantCultureIgnoreCase) && actionRequestPredicates) 4460 { 4461 var pageIdRequestPredicates = Kwpn.Repository.Helpers.AreaHelper.GetAreaItemStringValueBySystemName(Kwpn.Models.Constants.StringConstants.PageIdSystemNames.PredicatesRequestPageId); 4462 if (!string.IsNullOrWhiteSpace(pageIdRequestPredicates)) 4463 { 4464 showGeneral = false; 4465 4466 // SEO VIRTUAL PAGE VIEW LOGGING 4467 <Text> 4468 <script> 4469 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_request_predicates", "request-predicates").UrlEncode()).ToLower()"); 4470 </script> 4471 </Text> 4472 4473 @RenderPageContent(Convert.ToInt32(pageIdRequestPredicates)) 4474 } 4475 } 4476 4477 4478 // DNA PAGE 4479 @*if (action.Equals(Translate("ActionLink_DnaPage", "DNA-Page"), StringComparison.InvariantCultureIgnoreCase) && actionDnaPage) 4480 { 4481 var dnaPageId = pageService.GetPageByNavigationTag(Dynamicweb.Frontend.PageView.Current().AreaID, Kwpn.Models.Constants.StringConstants.FormPageIdSystemNames.DnaPage)?.ID ?? 0; 4482 if (dnaPageId > 0) 4483 { 4484 showGeneral = false; 4485 4486 // SEO VIRTUAL PAGE VIEW LOGGING 4487 <Text> 4488 <script> 4489 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_action_dnapage", "dna-page").UrlEncode()).ToLower()"); 4490 </script> 4491 </Text> 4492 4493 @RenderPageContent(dnaPageId) 4494 } 4495 }*@ 4496 } 4497 <script> 4498 var pageTitle = $('.paragraphTitel h1, .paragraphText h1').text(); 4499 $('.paragraphTitel h1, .paragraphText h1').remove(); 4500 $('.pageTitle').text(pageTitle); 4501 </script></div> 4502 } 4503 @if (showGeneral) 4504 { 4505 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 4506 <div class="horse-detail-item" id="horse-detail-item-stud-photo" data-content="tab_general"> 4507 @if (horse.HasImage) 4508 { 4509 var studPhoto = string.Format("images/horseimage.ashx?pc={0}", horse.AnimalCode); 4510 <div class="row"> 4511 <div class="col-xs-12"> 4512 <img src="@studPhoto" alt="@horseName" /> 4513 </div> 4514 </div> 4515 } 4516 </div> 4517 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 4518 <div class="horse-detail-item" id="horse-detail-item-general-info" data-content="tab_general"> 4519 @{ 4520 var publicSportsLevels = Kwpn.Repository.Helpers.FormatHelpers.CreateSportniveauList(horse.SportResults); 4521 var kinship = Kwpn.Repository.Helpers.HorseHelper.GetKinshipPercentage(horse, Dynamicweb.Frontend.PageView.Current().Area.Culture); 4522 } 4523 @CreateHorseInfoTableRow(Translate("LifeNumber", "Life number"), lifeNumber) 4524 @CreateHorseInfoTableRow(Translate("DateOfBirth", "Date of birth"), dateOfBirth) 4525 @CreateHorseInfoTableRow(Translate("BreedingDirection", "Breeding direction"), breedingDirection) 4526 @CreateHorseInfoTableRow(Translate("Register", "Register"), register) 4527 @if (!string.IsNullOrEmpty(kinship)) 4528 { 4529 var kinshipLabel = Translate("Kinship", "Kinship"); 4530 var kinshipValue = kinship; 4531 if (kinship.Contains(":")) { 4532 kinshipLabel = kinship.Split(':')[0].Trim(); 4533 kinshipValue = kinship.Split(':')[1].Trim(); 4534 } 4535 @CreateHorseInfoTableRow(kinshipLabel, kinshipValue) 4536 } 4537 @if (!string.IsNullOrWhiteSpace(publicSportsLevels)) 4538 { 4539 @CreateHorseInfoTableRow(Translate("SportStandings", "Sport standings"), publicSportsLevels) 4540 } 4541 @CreateHorseInfoTableRow(Translate("Withers", "Withers"), withers) 4542 @CreateHorseInfoTableRow(Translate("Color", "Color"), color) 4543 @if (!string.IsNullOrWhiteSpace(wffs)) 4544 { 4545 @CreateHorseInfoTableRow(Translate("WFFS", "WFFS"), wffs.ToLower()) 4546 } 4547 @if (isMyHorse || isBredByMe) 4548 { 4549 @CreateHorseInfoTableRow(Translate("ChipNumber", "Chip number"), chipNumber) 4550 } 4551 </div> 4552 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 4553 <div class="horse-detail-item" id="horse-detail-item-breeders" data-content="tab_general"> 4554 <div class="breedersinfo infotable"> 4555 4556 @if (hasBreeders) 4557 { 4558 var showBreederLinks = breeders.Any(breeder => breeder.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(breeder.PersonCode)); 4559 4560 <h2>@(breeders.Count() > 1 ? Translate("Breeders", "Breeders") : Translate("Breeder", "Breeder"))</h2> 4561 4562 if (showBreederLinks) 4563 { 4564 <p>@Translate("Breeders_ClickOnNameText", "Click the breeder name to get more info about this breeder.")</p> 4565 } 4566 4567 var breederCounter = 0; 4568 @CreateInfoTableRow(breederCounter, Translate("Name", "Name"), "", true) 4569 foreach (var breeder in breeders) 4570 { 4571 if (breeder.AllowedOwnerBreeder) 4572 { 4573 var linkData = Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(breeder.PersonCode) ? $" class=\"breeder-link\" data-personcode=\"{breeder.PersonCode}\"" : ""; // only link to breeders which are member 4574 @CreateInfoTableRow(breederCounter, $"<span{linkData}>{breeder.PersonName}</span>", "", false, false, false, false, true) 4575 } 4576 else 4577 { 4578 @CreateInfoTableRow(breederCounter, Translate("Breeders_Anonymous", "Anonymous"), "", false, false, false, false, true) 4579 } 4580 breederCounter++; 4581 } 4582 } 4583 4584 4585 @{ 4586 // if horse is approved stud or horse is mine or minimal 1 owner has given approval to be shown, then show owners 4587 List<Kwpn.Models.ApiModels.PersonModel> owners = horse.Owners; 4588 var hasOwners = owners != null && owners.Any(); 4589 4590 if (hasOwners) 4591 { 4592 var showOwnerLinks = owners.Any(owner => owner.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(owner.PersonCode)); 4593 4594 <h2>@(owners.Count > 1 ? Translate("Registered2", "Registered") : Translate("Registered", "Registered"))</h2> 4595 4596 if (showOwnerLinks) 4597 { 4598 <p>@Translate("Registered_ClickOnNameText", "Click the name to get more info about this registered owner.")</p> 4599 } 4600 4601 var registeredCounter = 0; 4602 @CreateInfoTableRow(registeredCounter, Translate("Name", "Name"), "", true) 4603 foreach (var owner in owners) 4604 { 4605 if (owner.AllowedOwnerBreeder && Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(owner.PersonCode)) 4606 { 4607 var linkData = Kwpn.Repository.Helpers.UserHelper.CheckIfIsMember(owner.PersonCode) ? $" class=\"registered-link\" data-personcode=\"{owner.PersonCode}\"" : ""; // only link to owners which are member 4608 @CreateInfoTableRow(registeredCounter, $"<span{linkData}>{owner.PersonName}</span>", "", false, false, false, false, true) 4609 } 4610 else 4611 { 4612 @CreateInfoTableRow(registeredCounter, Translate("Owner_Anonymous", "Anonymous"), "", false, false, false, false, true) 4613 } 4614 registeredCounter++; 4615 } 4616 } 4617 } 4618 </div> 4619 </div> 4620 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 4621 @*note: variables like "horse/culture" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 4622 <div class="horse-detail-item" id="horse-detail-item-pedigree" data-content="tab_general"> 4623 @{ 4624 var pedigree_Me = Kwpn.Repository.Helpers.HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, DateTime.MinValue); 4625 var pedigree_Father = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.Father); 4626 var pedigree_Mother = horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.Mother); 4627 } 4628 @if (pedigree_Father != null && pedigree_Mother != null) 4629 { 4630 <script type="text/javascript"> 4631 4632 $(document).ready(function () { 4633 4634 var jsGender = ''; 4635 if ('@genderClass' == 'fa-mars') { 4636 jsGender = 'male' 4637 } else { 4638 jsGender = 'female' 4639 } 4640 4641 var datasource = { 4642 'name': '@horse.Lifenumber.JsEncode()', 4643 'title': '@horse.AnimalName.JsEncode()', 4644 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.Register)) 4645 { 4646 <text>'subtext': '@horse.Register.JsEncode()',</text> 4647 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.AnimalCode)',</text> 4648 } 4649 else 4650 { 4651 <text>'subtext': '-',</text> 4652 <text>'link': '',</text> 4653 } 4654 'sex': jsGender, 4655 'children': [ 4656 { 4657 'name': '@pedigree_Father.Lifenumber.JsEncode()', 4658 'title': '@pedigree_Father.AnimalName.JsEncode()', 4659 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(pedigree_Father.Register)) 4660 { 4661 <text>'subtext': '@pedigree_Father.Register.JsEncode()',</text> 4662 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, pedigree_Father.AnimalCode)',</text> 4663 } 4664 else 4665 { 4666 <text>'subtext': '-',</text> 4667 <text>'link': '',</text> 4668 } 4669 'sex': 'male', 4670 'children': [ 4671 { 4672 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).Lifenumber.JsEncode()', 4673 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).AnimalName.JsEncode()', 4674 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).Register)) 4675 { 4676 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).Register.JsEncode()',</text> 4677 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFather).AnimalCode)',</text> 4678 } 4679 else 4680 { 4681 <text>'subtext': '-',</text> 4682 <text>'link': '',</text> 4683 } 4684 'sex': 'male', 4685 'children': [ 4686 { 4687 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).Lifenumber.JsEncode()', 4688 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).AnimalName.JsEncode()', 4689 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).Register)) 4690 { 4691 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).Register.JsEncode()',</text> 4692 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersFather).AnimalCode)',</text> 4693 } 4694 else 4695 { 4696 <text>'subtext': '-',</text> 4697 <text>'link': '',</text> 4698 } 4699 'sex': 'male' 4700 }, { 4701 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).Lifenumber.JsEncode()', 4702 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).AnimalName.JsEncode()', 4703 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).Register)) 4704 { 4705 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).Register.JsEncode()',</text> 4706 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersFathersMother).AnimalCode)',</text> 4707 } 4708 else 4709 { 4710 <text>'subtext': '-',</text> 4711 <text>'link': '',</text> 4712 } 4713 'sex': 'female' 4714 } 4715 ] 4716 }, { 4717 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).Lifenumber.JsEncode()', 4718 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).AnimalName.JsEncode()', 4719 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).Register)) 4720 { 4721 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).Register.JsEncode()',</text> 4722 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMother).AnimalCode)',</text> 4723 } 4724 else 4725 { 4726 <text>'subtext': '-',</text> 4727 <text>'link': '',</text> 4728 } 4729 'sex': 'female', 4730 'children': [ 4731 { 4732 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).Lifenumber.JsEncode()', 4733 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).AnimalName.JsEncode()', 4734 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).Register)) 4735 { 4736 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).Register.JsEncode()',</text> 4737 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersFather).AnimalCode)',</text> 4738 } 4739 else 4740 { 4741 <text>'subtext': '-',</text> 4742 <text>'link': '',</text> 4743 } 4744 'sex': 'male' 4745 }, { 4746 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).Lifenumber.JsEncode()', 4747 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).AnimalName.JsEncode()', 4748 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).Register)) 4749 { 4750 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).Register.JsEncode()',</text> 4751 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.FathersMothersMother).AnimalCode)',</text> 4752 } 4753 else 4754 { 4755 <text>'subtext': '-',</text> 4756 <text>'link': '',</text> 4757 } 4758 'sex': 'female' 4759 }] 4760 }] 4761 }, 4762 { 4763 'name': '@pedigree_Mother.Lifenumber.JsEncode()', 4764 'title': '@pedigree_Mother.AnimalName.JsEncode()', 4765 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(pedigree_Mother.Register)) 4766 { 4767 <text>'subtext': '@pedigree_Mother.Register.JsEncode()',</text> 4768 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, pedigree_Mother.AnimalCode)',</text> 4769 } 4770 else 4771 { 4772 <text>'subtext': '-',</text> 4773 <text>'link': '',</text> 4774 } 4775 'sex': 'female', 4776 'children': [ 4777 { 4778 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).Lifenumber.JsEncode()', 4779 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).AnimalName.JsEncode()', 4780 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).Register)) 4781 { 4782 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).Register.JsEncode()',</text> 4783 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFather).AnimalCode)',</text> 4784 } 4785 else 4786 { 4787 <text>'subtext': '-',</text> 4788 <text>'link': '',</text> 4789 } 4790 'sex': 'male', 4791 'children': [ 4792 { 4793 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).Lifenumber.JsEncode().JsEncode()', 4794 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).AnimalName.JsEncode().JsEncode()', 4795 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).Register)) 4796 { 4797 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).Register.JsEncode().JsEncode()',</text> 4798 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersFather).AnimalCode)',</text> 4799 } 4800 else 4801 { 4802 <text>'subtext': '-',</text> 4803 <text>'link': '',</text> 4804 } 4805 'sex': 'male' 4806 }, { 4807 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).Lifenumber.JsEncode()', 4808 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).AnimalName.JsEncode()', 4809 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).Register)) 4810 { 4811 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).Register.JsEncode()',</text> 4812 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersFathersMother).AnimalCode)',</text> 4813 } 4814 else 4815 { 4816 <text>'subtext': '-',</text> 4817 <text>'link': '',</text> 4818 } 4819 'sex': 'female' 4820 } 4821 ] 4822 }, { 4823 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).Lifenumber.JsEncode()', 4824 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).AnimalName.JsEncode()', 4825 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).Register)) 4826 { 4827 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).Register.JsEncode()',</text> 4828 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMother).AnimalCode)',</text> 4829 } 4830 else 4831 { 4832 <text>'subtext': '-',</text> 4833 <text>'link': '',</text> 4834 } 4835 'sex': 'female', 4836 'children': [ 4837 { 4838 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).Lifenumber.JsEncode()', 4839 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).AnimalName.JsEncode()', 4840 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).Register)) 4841 { 4842 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).Register.JsEncode()',</text> 4843 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersFather).AnimalCode)',</text> 4844 } 4845 else 4846 { 4847 <text>'subtext': '-',</text> 4848 <text>'link': '',</text> 4849 } 4850 'sex': 'male' 4851 }, { 4852 'name': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).Lifenumber.JsEncode()', 4853 'title': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).AnimalName.JsEncode()', 4854 @if (Kwpn.Repository.Helpers.HorseHelper.IsAllowedRegister(horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).Register)) 4855 { 4856 <text>'subtext': '@horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).Register.JsEncode()',</text> 4857 <text>'link': '@Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, horse.GetPredigreeByPrefix(Kwpn.Models.Constants.StringConstants.PedigreePrefixes.MothersMothersMother).AnimalCode)',</text> 4858 } 4859 else 4860 { 4861 <text>'subtext': '-',</text> 4862 <text>'link': '',</text> 4863 } 4864 'sex': 'female' 4865 } 4866 ] 4867 } 4868 ] 4869 }] 4870 }; 4871 4872 4873 $('#chart-container').orgchart({ 4874 data: datasource, 4875 direction: 'l2r', 4876 nodeContent: 'title', 4877 parentNodeSymbol: '', 4878 createNode: function ($node, data) { 4879 var icon = '<div class="imagecontainer"><i class="fa fa-' + (data.sex === 'male' ? 'mars' : 'venus') + '"></i></div>'; 4880 var subtext = '<div class="subtext">' + data.subtext + '</div></div>'; 4881 $node.find('i[class^="edge"], i[class^="fa"]').remove(); 4882 $node.prepend(icon); 4883 $node.append(subtext); 4884 $node.find('.imagecontainer').nextAll().wrapAll('<div class="contextcontainer"/>'); 4885 4886 if (data.link.length > 0) { 4887 $node.css('cursor', 'pointer'); 4888 $node.on('click', function (event) { 4889 location.href = data.link; 4890 }); 4891 } 4892 4893 $node.on('mouseenter', function () { 4894 $('#custom_tooltip').css('display', 'block'); 4895 $('#custom_tooltip').find('.title').text(data.title); 4896 $('#custom_tooltip').find('.subtext').text(data.subtext); 4897 }); 4898 4899 $node.on('mouseleave', function () { 4900 $('#custom_tooltip').css('display', 'none'); 4901 }); 4902 } 4903 }); 4904 4905 $('.tooltip').on('shown.bs.tooltip', function () { 4906 console.log('tooltip show'); 4907 }); 4908 4909 4910 }); 4911 4912 $(window).on('mousemove', function (e) { 4913 var mouseX = e.clientX + 10; 4914 var mouseY = e.clientY + 20; 4915 $('#custom_tooltip').css('left', mouseX); 4916 $('#custom_tooltip').css('top', mouseY); 4917 }); 4918 </script> 4919 <div class="pedigreetree"> 4920 <div id="custom_tooltip"> 4921 <div class="title"></div> 4922 <div class="subtext"></div> 4923 </div> 4924 <h2>@Translate("Pedigree", "Pedigree")</h2> 4925 <div id="chart-container"></div> 4926 </div> 4927 } 4928 </div> 4929 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 4930 <div class="horse-detail-item" id="horse-detail-item-markings" data-content="tab_general"> 4931 @if (isMyHorse || isBredByMe) 4932 { 4933 // MARKINGS DATA 4934 var showMarkings = false; 4935 var head = ""; 4936 var headInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.Head); 4937 if (headInfo != null) 4938 { 4939 head = headInfo.Description; 4940 showMarkings = true; 4941 } 4942 var frontLeft = ""; 4943 var frontLeftInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.FrontLeft); 4944 if (frontLeftInfo != null) 4945 { 4946 frontLeft = frontLeftInfo.Description; 4947 showMarkings = true; 4948 } 4949 var frontRight = ""; 4950 var frontRightInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.FrontRight); 4951 if (frontRightInfo != null) 4952 { 4953 frontRight = frontRightInfo.Description; 4954 showMarkings = true; 4955 } 4956 var rearLeft = ""; 4957 var rearLeftInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.RearLeft); 4958 if (rearLeftInfo != null) 4959 { 4960 rearLeft = rearLeftInfo.Description; 4961 showMarkings = true; 4962 } 4963 var rearRight = ""; 4964 var rearRightInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.RearRight); 4965 if (rearRightInfo != null) 4966 { 4967 rearRight = rearRightInfo.Description; 4968 showMarkings = true; 4969 } 4970 var misc = ""; 4971 var miscInfo = horse.GetMarkingByBodyPart(StringConstants.MarkingTypes.Misc); 4972 if (miscInfo != null) 4973 { 4974 misc = miscInfo.Description; 4975 showMarkings = true; 4976 } 4977 4978 if (showMarkings) 4979 { 4980 var markingsCounter = 0; 4981 <div class="breedersinfo infotable"> 4982 <h2>@Translate("Markings", "Markings")</h2> 4983 @CreateInfoTableRow(markingsCounter, Translate("MarkingLocation", "Location"), Translate("MarkingDescription", "Description"), true) 4984 @if (!string.IsNullOrWhiteSpace(head)) 4985 { 4986 @CreateInfoTableRow(markingsCounter, Translate("MarkingHead", "Head"), head, false, false, false) 4987 markingsCounter++; 4988 } 4989 @if (!string.IsNullOrWhiteSpace(frontLeft)) 4990 { 4991 @CreateInfoTableRow(markingsCounter, Translate("MarkingFrontLeft", "Front left"), frontLeft, false, false, false) 4992 markingsCounter++; 4993 } 4994 @if (!string.IsNullOrWhiteSpace(frontRight)) 4995 { 4996 @CreateInfoTableRow(markingsCounter, Translate("MarkingFrontRight", "Front right"), frontRight, false, false, false) 4997 markingsCounter++; 4998 } 4999 @if (!string.IsNullOrWhiteSpace(rearLeft)) 5000 { 5001 @CreateInfoTableRow(markingsCounter, Translate("MarkingRearLeft", "Rear left"), rearLeft, false, false, false) 5002 markingsCounter++; 5003 } 5004 @if (!string.IsNullOrWhiteSpace(rearRight)) 5005 { 5006 @CreateInfoTableRow(markingsCounter, Translate("MarkingRearRight", "Rear right"), rearRight, false, false, false) 5007 markingsCounter++; 5008 } 5009 @if (!string.IsNullOrWhiteSpace(misc)) 5010 { 5011 @CreateInfoTableRow(markingsCounter, Translate("MarkingMiscellaneous", "Miscellaneous"), misc, false, false, false) 5012 markingsCounter++; 5013 } 5014 </div> 5015 } 5016 } 5017 </div> 5018 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5019 <div class="horse-detail-item" id="horse-detail-item-register" data-content="tab_general"> 5020 @if (isMyHorse || isBredByMe) 5021 { 5022 var predicates = horse.Predicates; 5023 if (predicates != null && predicates.Any()) 5024 { 5025 predicates = predicates.OrderByDescending(p => p.Date).ToList(); 5026 5027 var predicateCounter = 0; 5028 <div class="breedersinfo infotable"> 5029 <h2>@Translate("RegisterHistory", "Register history")</h2> 5030 @CreateInfoTableRow(predicateCounter, Translate("Register", "Register"), Translate("FromDate", "From date"), true) 5031 @foreach (var predicate in predicates) 5032 { 5033 var date = ""; 5034 if (predicate.Date != null && !predicate.Date.Equals(DateTime.MinValue)) 5035 { 5036 date = predicate.Date.ToShortDateString(); 5037 } 5038 5039 @CreateInfoTableRow(predicateCounter, predicate.PredicateName, date, false, false, false) 5040 predicateCounter++; 5041 } 5042 </div> 5043 } 5044 } 5045 </div> 5046 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5047 <div class="horse-detail-item" id="horse-detail-item-breeding-direction" data-content="tab_general"> 5048 @*NIET BESCHIKBAAR*@ 5049 </div> 5050 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5051 <div class="horse-detail-item hidden" id="horse-detail-item-achievements" data-content="tab_achievements"> 5052 @{ 5053 var getInspectionLineairScores = false; 5054 var myPerformanceInfo = horse.SportPerformanceMotherline; 5055 var mySportsLevels = Kwpn.Repository.Helpers.FormatHelpers.CreateSportniveauList(horse.SportResults); 5056 List<Kwpn.Models.ApiModels.InspectionInformationModel> inspections = horse.Inspections; 5057 List<Kwpn.Models.ApiModels.InspectionInformationModel> abilityTests = horse.AbilityTests; 5058 } 5059 <h2>@Translate("Achievements", "Achievements")</h2> 5060 5061 @*SportsInfo*@ 5062 <div class="achievements infotable"> 5063 @CreateInfoTableRow(0, Translate("SportsName", "Sportsname"), horse.SportsName, false, false, false, false) 5064 @CreateInfoTableRow(1, Translate("SportsLevel", "Sports level"), mySportsLevels, false, false, false, false) 5065 </div> 5066 5067 @*Inspections*@ 5068 @if (!isApprovedStud && inspections != null && inspections.Any()) 5069 { 5070 getInspectionLineairScores = true; 5071 var inspectionCounter = 0; 5072 <h2>@Translate("Inspections", "Inspections")</h2> 5073 <div class="table-responsive"> 5074 <table id="inspectionstable"> 5075 <tr class="tableheader"> 5076 <th>@Translate("DateAndInspectionType", "Date and inspection type")</th> 5077 <th>@Translate("Location", "Location")</th> 5078 <th>@Translate("Scores", "Scores")</th> 5079 <th>@Translate("Result", "Result")</th> 5080 <td>&nbsp;</td> 5081 </tr> 5082 @foreach (Kwpn.Models.ApiModels.InspectionInformationModel inspection in inspections.OrderByDescending(i => i.DateFrom)) 5083 { 5084 var inspectionDateLocation = ""; 5085 if (inspection.DateFrom != null) 5086 { 5087 inspectionDateLocation = inspection.DateFrom.ToShortDateString(); 5088 } 5089 if (!string.IsNullOrWhiteSpace(inspection.InspectionDescription)) 5090 { 5091 if (!string.IsNullOrWhiteSpace(inspectionDateLocation)) 5092 { 5093 inspectionDateLocation = string.Format("{0},<br />", inspectionDateLocation); 5094 } 5095 inspectionDateLocation = string.Format("{0}{1}", inspectionDateLocation, inspection.InspectionDescription); 5096 } 5097 string premiumPlacing = ""; 5098 if (inspection.Participations != null && inspection.Participations.Count > 0) 5099 { 5100 premiumPlacing = string.Format("{0} {1}", inspection.Participations[0].Premium, inspection.Participations[0].Placing).Trim(); 5101 } 5102 5103 // modulo for row color display 5104 var mod = "0"; 5105 if (inspectionCounter % 2 == 0) 5106 { 5107 mod = "1"; 5108 } 5109 <tr class="mod-@mod"> 5110 <td>@inspectionDateLocation</td> 5111 <td>@inspection.Place</td> 5112 <td class="scores" data-inspectioncode="@inspection.InspectionCode"></td> 5113 <td>@premiumPlacing</td> 5114 <td class="center"> 5115 @if (inspection.Participations != null && inspection.Participations.Count > 0 && 5116 inspection.Participations[0].ResultAppreciatives != null && inspection.Participations[0].ResultAppreciatives.Count > 0) 5117 { 5118 <span class="toggler" data-identifyer='insp-@inspection.InspectionCode-@inspectionCounter' data-typeclass="inspection-details"><i class="fa fa-plus"></i></span> 5119 } 5120 </td> 5121 </tr> 5122 <tr id="insp-@inspection.InspectionCode-@inspectionCounter" class="inspection-details mod-@mod"> 5123 <td>&nbsp;</td> 5124 <td>&nbsp;</td> 5125 <td colspan="3"> 5126 @if (inspection.Rubrics != null && inspection.Rubrics.Count > 0) 5127 { 5128 @*<b>@inspection.Rubrics[0].Description</b><br />*@ 5129 } 5130 @if (inspection.Participations != null && inspection.Participations.Count > 0) 5131 { 5132 var participation = inspection.Participations[0]; 5133 if (participation.ResultAppreciatives != null && participation.ResultAppreciatives.Count > 0) 5134 { 5135 <div class="inspection-summary"> 5136 <table> 5137 <thead> 5138 <tr> 5139 <th>@Translate("Description", "Description")</th> 5140 <th>@Translate("Value", "Value")</th> 5141 </tr> 5142 </thead> 5143 <tbody> 5144 @foreach (var ResultAppreciative in participation.ResultAppreciatives) 5145 { 5146 <tr> 5147 <td>@ResultAppreciative.Description</td> 5148 <td>@ResultAppreciative.Value</td> 5149 </tr> 5150 } 5151 </tbody> 5152 </table> 5153 </div> 5154 } 5155 } 5156 </td> 5157 </tr> 5158 inspectionCounter++; 5159 } 5160 </table> 5161 </div> 5162 } 5163 5164 @*SportResults*@ 5165 @if (abilityTests != null && abilityTests.Count > 0) 5166 { 5167 var abilityCounter = 0; 5168 <h2>@Translate("AbilityTests", "Ability tests")</h2> 5169 <div class="table-responsive"> 5170 <table id="abilitytesttable"> 5171 <tr class="tableheader"> 5172 <th>@Translate("DateAndInspectionType", "Date and inspection type")</th> 5173 <th>@Translate("Location", "Location")</th> 5174 <th>&nbsp;</th> 5175 <td>&nbsp;</td> 5176 </tr> 5177 @foreach (Kwpn.Models.ApiModels.InspectionInformationModel inspection in abilityTests.OrderByDescending(i => i.DateFrom)) 5178 { 5179 var inspectionDateLocation = ""; 5180 if (inspection.DateFrom != null) 5181 { 5182 inspectionDateLocation = inspection.DateFrom.ToShortDateString(); 5183 } 5184 if (!string.IsNullOrWhiteSpace(inspection.InspectionDescription)) 5185 { 5186 if (!string.IsNullOrWhiteSpace(inspectionDateLocation)) 5187 { 5188 inspectionDateLocation = string.Format("{0},<br />", inspectionDateLocation); 5189 } 5190 inspectionDateLocation = string.Format("{0}{1}", inspectionDateLocation, inspection.InspectionDescription); 5191 } 5192 5193 // modulo for row color display 5194 var mod = "0"; 5195 if (abilityCounter % 2 == 0) 5196 { 5197 mod = "1"; 5198 } 5199 <tr class="mod-@mod"> 5200 <td>@inspectionDateLocation</td> 5201 <td>@inspection.Place</td> 5202 <td>&nbsp;</td> 5203 <td class="center"> 5204 @if (inspection.Participations != null && inspection.Participations.Count > 0 && 5205 inspection.Participations[0].ResultAppreciatives != null && inspection.Participations[0].ResultAppreciatives.Count > 0) 5206 { 5207 <span class="toggler" data-identifyer='at-@inspection.InspectionCode-@abilityCounter' data-typeclass="ability-details"><i class="fa fa-plus"></i></span> 5208 } 5209 </td> 5210 </tr> 5211 <tr id="at-@inspection.InspectionCode-@abilityCounter" class="ability-details mod-@mod"> 5212 <td>&nbsp;</td> 5213 <td colspan="3"> 5214 @if (inspection.Rubrics != null && inspection.Rubrics.Count > 0) 5215 { 5216 @*<b>@inspection.Rubrics[0].Description</b><br />*@ 5217 } 5218 @if (inspection.Participations != null && inspection.Participations.Count > 0) 5219 { 5220 var participation = inspection.Participations[0]; 5221 if (participation.ResultAppreciatives != null && participation.ResultAppreciatives.Count > 0) 5222 { 5223 <div class="ability-summary"> 5224 <table> 5225 <thead> 5226 <tr> 5227 <th>@Translate("Description", "Description")</th> 5228 <th>@Translate("Value", "Value")</th> 5229 </tr> 5230 </thead> 5231 <tbody> 5232 @foreach (var ResultAppreciative in participation.ResultAppreciatives) 5233 { 5234 <tr> 5235 <td>@ResultAppreciative.Description</td> 5236 <td>@ResultAppreciative.Value</td> 5237 </tr> 5238 } 5239 </tbody> 5240 </table> 5241 </div> 5242 } 5243 } 5244 </td> 5245 </tr> 5246 abilityCounter++; 5247 } 5248 </table> 5249 </div> 5250 } 5251 </div> 5252 @SnippetStart("JavascriptsBottom") 5253 5254 <script type="text/javascript"> 5255 $(document).ready(function () { 5256 5257 // toggler initializer 5258 $(".toggler", "#horse-detail-item-achievements").click(function () { 5259 var contentId = $(this).attr("data-identifyer"); 5260 var typeClass = $(this).attr("data-typeclass"); 5261 $("." + typeClass).not("#" + contentId).hide(); 5262 $("." + typeClass).not("#" + contentId).prev().find("span.toggler i").removeClass("fa-minus").addClass("fa-plus"); 5263 var currentToggler = $("#" + contentId).prev().find("span.toggler i"); 5264 if (currentToggler.hasClass("fa-minus")) { 5265 currentToggler.removeClass("fa-minus").addClass("fa-plus"); 5266 } else { 5267 currentToggler.removeClass("fa-plus").addClass("fa-minus"); 5268 } 5269 }); 5270 5271 // Get inspection lineair score documents and attach to inspection 5272 @if (getInspectionLineairScores) 5273 { 5274 <text> 5275 $(".inspectionlineairscore").remove(); 5276 var inspectionlineairscoreApiUrl = "/kwpnwebapi/horses/getinspectionlineairscore/@culture/@animalCode"; 5277 $.getJSON(inspectionlineairscoreApiUrl).done(function (result) { 5278 if (result != null && result.length > 0) { 5279 $.each(result, function (i, inspectionLineairScore) { 5280 var inspectionCode = inspectionLineairScore.Reference; 5281 var inspectionLineairScoreUrl = inspectionLineairScore.URL; 5282 if (inspectionCode != null && inspectionLineairScoreUrl != null) { 5283 var $achievement = $("td.scores[data-inspectioncode=" + inspectionCode + "]", "#inspectionstable"); 5284 if ($achievement.length) { 5285 inspectionLineairScoreUrl = inspectionLineairScoreUrl.replace(/\\/g, "/"); // fix slashes 5286 var inspectionLineairScoreListItem = "<a href=\"" + inspectionLineairScoreUrl + "\" download target=\"_blank\">@Translate("ScoreForm", "Score form")</a><br/>"; 5287 $achievement.append(inspectionLineairScoreListItem); 5288 } 5289 } 5290 }); 5291 } 5292 }).fail(function (jqxhr, textStatus, error) { 5293 var err = textStatus + ", " + error; 5294 console.error("Request GetInspectionLineairScore Failed: " + err); 5295 }); 5296 </text> 5297 } 5298 5299 }); 5300 </script> 5301 @SnippetEnd("JavascriptsBottom") 5302 5303 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5304 <div class="horse-detail-item hidden" id="horse-detail-item-achievements-motherline" data-content="tab_achievements_motherline"> 5305 @{ 5306 var performanceInfo = horse.SportPerformanceMotherline; 5307 var performanceItems = performanceInfo.lstItems; 5308 var achievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(performanceItems, culture); 5309 5310 var motherName = performanceInfo.MAnimalname; 5311 var motherItems = performanceInfo.lstItemsM; 5312 var motherAchievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(motherItems, culture); 5313 5314 var grandMotherName = performanceInfo.MMAnimalname; 5315 var grandMotherItems = performanceInfo.lstItemsMM; 5316 var grandMotherAchievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(grandMotherItems, culture); 5317 5318 var greatGrandMotherName = performanceInfo.MMMAnimalname; 5319 var greatGrandMotherItems = performanceInfo.lstItemsMMM; 5320 var greatGrandMotherAchievements = Kwpn.Repository.Helpers.FormatHelpers.CreateAchievementsList(greatGrandMotherItems, culture); 5321 } 5322 5323 <h2>@Translate("AchievementsMotherLine", "Achievements mother line")</h2> 5324 5325 @if (performanceItems != null && performanceItems.Any()) 5326 { 5327 var name = Kwpn.Repository.Helpers.HorseHelper.GetHorseName(horse.SportsName, horse.AnimalName, null); 5328 5329 <div class="motherline infotable"> 5330 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), name, false, false, false) 5331 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), achievements, false, false, false) 5332 </div> 5333 } 5334 <br /> 5335 <div class="motherline-mother infotable"> 5336 <h3>@Translate("Mother", "Mother")</h3> 5337 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), motherName, false, false, false) 5338 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), motherAchievements, false, false, false) 5339 </div> 5340 <br /> 5341 <div class="motherline-mother infotable"> 5342 <h3>@Translate("MothersMother", "Mothers mother")</h3> 5343 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), grandMotherName, false, false, false) 5344 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), grandMotherAchievements, false, false, false) 5345 </div> 5346 <br /> 5347 <div class="motherline-mother infotable"> 5348 <h3>@Translate("MothersMothersMother", "Mothers mothers mother")</h3> 5349 @CreateInfoTableRow(0, Translate("HorseName", "Horse name"), greatGrandMotherName, false, false, false) 5350 @CreateInfoTableRow(1, Translate("Achievements", "Achievements"), greatGrandMotherAchievements, false, false, false) 5351 </div> 5352 </div> 5353 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5354 <div class="horse-detail-item hidden" id="horse-detail-item-genetic-profile" data-content="tab_genetic_profile"> 5355 @if (Kwpn.Repository.Helpers.HorseHelper.CheckIfMyHorse(animalCode) && FormatHelpers.CalculateAgeAsInt(horse.DateOfBirth.Value) < 3) 5356 { 5357 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5358 <div class="modal fade" id="extra-settings" tabindex="-1" role="dialog" aria-labelledby="extra-settings-modal" aria-hidden="true"> 5359 <div class="modal-dialog"> 5360 <div class="modal-content"> 5361 <div class="modal-header">@Translate("ExtraSettingsModalHeader", "Extra settings")</div> 5362 <div class="modal-body"> 5363 <div> 5364 <h2 class="name"></h2> 5365 </div> 5366 <div id="modal-genetic-profile-loading"> 5367 <i class='fa fa-spinner fa-spin'></i> 5368 </div> 5369 <div id="modal-genetic-profile" class="hidden"> 5370 @Translate("ExtraSettingsModal_GeneticProfileText", "") 5371 <input type="checkbox" name="genetic-profile-hidden" id="genetic-profile-hidden" /> 5372 <label for="genetic-profile-hidden">@Translate("ExtraSettingsModal_GeneticProfileLabel", "The genetic profile is hidden")</label> 5373 <br /> 5374 <div id="genetic-profile-moderator" class="hidden small">@Translate("ExtraSettingsModal_GeneticProfileLastEditedBy", "Last change by ")<span class="small"></span></div> 5375 </div> 5376 </div> 5377 <div class="modal-footer"> 5378 <a class="orange_arrow_link" data-dismiss="modal" href="javascript:void(0);">@Translate("Close", "Close")</a> 5379 </div> 5380 </div> 5381 </div> 5382 </div> 5383 <p> 5384 <button type="button" 5385 class="btn btn-settings-gp" 5386 data-horsecode="@animalCode" 5387 data-horseinfo="@horseName (@lifeNumber)" 5388 data-toggle="tooltip" 5389 data-genetic-profile="true" 5390 title="@Translate("HorseSettings", "Extra settings").JsEncode().ToUpper()"> 5391 <i class="fa fa-gear"></i> 5392 </button> 5393 </p> 5394 @SnippetStart("JavascriptsBottom") 5395 <script> 5396 5397 var geneticProfileSettingChanged = false; 5398 5399 function MailGeneticProfileSetting(animalcode, value) { 5400 var geneticProfileSettingsApi = "/kwpnwebapi/horses/mailgeneticprofilesetting/@Dynamicweb.Frontend.PageView.Current().AreaID/" + animalcode + "/" + value; 5401 $.getJSON(geneticProfileSettingsApi).done(function (result, status, metaData) { 5402 if (!result) { 5403 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrongSendingEmail", "Something went wrong while sending email")", customClass: layout.notifyCopyrightMessageClass }); 5404 } 5405 }).fail(function (jqxhr, textStatus, error) { 5406 var err = textStatus + ", " + error; 5407 console.error("MailGeneticProfileSetting Failed: " + err); 5408 }); 5409 } 5410 5411 function SetGeneticProfileSetting(animalcode, value) { 5412 5413 var geneticProfileSettingsApi = "/kwpnwebapi/horses/setgeneticprofilesetting/" + animalcode + "/" + value; 5414 $.getJSON(geneticProfileSettingsApi).done(function (result, status, metaData) { 5415 if (result != null) { 5416 $("#genetic-profile-moderator span").text(result.HideGeneticProfileLastChangedBy); 5417 $("#genetic-profile-moderator").removeClass("hidden"); 5418 geneticProfileSettingChanged = true; 5419 MailGeneticProfileSetting(animalcode, value); 5420 } else { 5421 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrong", "Something went wrong")", customClass: layout.notifyCopyrightMessageClass }); 5422 } 5423 }).fail(function (jqxhr, textStatus, error) { 5424 var err = textStatus + ", " + error; 5425 console.error("SetGeneticProfileSetting Failed: " + err); 5426 }); 5427 } 5428 5429 function ActivateExtraSettingsButtons() { 5430 5431 $(".btn-settings-gp").click(function (e) { 5432 5433 // defaults 5434 $("#modal-genetic-profile-loading").removeClass("hidden"); 5435 $("#genetic-profile-hidden").prop("checked", false); 5436 $("#modal-genetic-profile").addClass("hidden"); 5437 $("#genetic-profile-moderator").addClass("hidden"); 5438 $("#genetic-profile-moderator span").empty(); 5439 5440 // set modal text 5441 var horseInfo = $(this).attr("data-horseinfo"); 5442 $("#extra-settings h2").text(horseInfo); 5443 5444 var showGeneticProfile = $(this).attr("data-genetic-profile"); 5445 if (showGeneticProfile === "true") { 5446 5447 // get current value 5448 var horseCode = $(this).attr("data-horsecode"); 5449 var geneticProfileSettingsApi = "/kwpnwebapi/horses/getgeneticprofilesetting/" + horseCode; 5450 $.getJSON(geneticProfileSettingsApi).done(function (result, status, metaData) { 5451 if (result) { 5452 5453 if (result.HideGeneticProfile) { 5454 $("#genetic-profile-hidden").prop("checked", true); 5455 } 5456 5457 if (result.HideGeneticProfileLastChangedBy.length > 0) { 5458 $("#genetic-profile-moderator span").text(result.HideGeneticProfileLastChangedBy); 5459 $("#genetic-profile-moderator").removeClass("hidden") 5460 } 5461 5462 $("#genetic-profile-hidden").off("click").on("click", function () { 5463 SetGeneticProfileSetting(horseCode, $('#genetic-profile-hidden').is(':checked')); 5464 }); 5465 5466 $("#modal-genetic-profile").removeClass("hidden"); 5467 } else { 5468 Swal.fire({ title: "@Translate("SomethingWentWrongTitle", "Something went wrong")" ,text: "@Translate("SomethingWentWrong", "Something went wrong")", customClass: layout.notifyCopyrightMessageClass }); 5469 } 5470 5471 $("#modal-genetic-profile-loading").addClass("hidden"); 5472 }).fail(function (jqxhr, textStatus, error) { 5473 var err = textStatus + ", " + error; 5474 console.error("GetGeneticProfileSettings Failed: " + err); 5475 }); 5476 } 5477 5478 // show modal 5479 $("#extra-settings").modal("show"); 5480 5481 // prevent row click 5482 e.stopPropagation(); 5483 5484 }); 5485 5486 $(document).on('hide.bs.modal', '#extra-settings', function () { 5487 if (geneticProfileSettingChanged) { 5488 if (!alert("@Translate("ReloadForChanges", "The page must be refreshed for the change to take effect.")")) location.reload(); 5489 } 5490 5491 }); 5492 } 5493 5494 $(document).ready(function () { 5495 ActivateExtraSettingsButtons(); 5496 }); 5497 5498 </script> 5499 @SnippetEnd("JavascriptsBottom") 5500 } 5501 @if (showGeneticProfileBasedOnRegister) 5502 { 5503 List<BreedingValuesModel> geneticProfile = horse.BreedingValues; 5504 if (geneticProfile != null && geneticProfile.Any()) 5505 { 5506 var geneticProfileIntro = Translate("GeneticProfileIntro", ""); 5507 var geneticProfileRowCounter = 0; 5508 5509 var legend = Kwpn.Repository.Helpers.HorseHelper.GetGeneticProfileLegend(culture); 5510 var sportIndex = geneticProfile.Where(profile => 5511 { 5512 var val = profile.BreedingValues.Where(breedingVal => breedingVal.Description.Contains("Sport index")).ToList(); 5513 return val.Count > 0; 5514 }).ToList(); 5515 5516 var dressageJumping = geneticProfile.Where(profile => 5517 { 5518 var val = profile.BreedingValues.Where(breedingVal => breedingVal.Description == "Dressuur (GFW)" || breedingVal.Description == "Springen (GFW)").ToList(); 5519 return val.Count > 0; 5520 }).ToList(); 5521 5522 var userIsLoggedIn = Dynamicweb.Frontend.LogOnHandler.IsUserLoggedIn; 5523 5524 if (sportIndex.Count > 0) 5525 { 5526 <h2>@Translate("Sportindex", "Sportindex")</h2> 5527 <p>@Translate("Sportindex_intro", "")</p> 5528 5529 foreach (var breedingValuesTable in sportIndex) 5530 { 5531 foreach (BreedingValueModel breedingValue in breedingValuesTable.BreedingValues.Where(breedingVal => breedingVal.Description.Contains("Sport index"))) 5532 { 5533 var breedingValueValue = 0; 5534 Int32.TryParse(breedingValue.Value, out breedingValueValue); 5535 5536 var description = breedingValue.Description + ": " + breedingValueValue; 5537 if(breedingValue.Reliability != null) 5538 { 5539 description += "(" + breedingValue.Reliability + ")"; 5540 } 5541 5542 <p>@description</p> 5543 } 5544 } 5545 } 5546 5547 <h2>@Translate("GeneticProfile", "Genetic profile")</h2> 5548 5549 if (horse.PublicationTypes != null && horse.PublicationTypes.Any()) 5550 { 5551 foreach (var publicationTypes in horse.PublicationTypes) 5552 { 5553 @Translate($"GeneticProfile_Intro_{publicationTypes}", "") 5554 } 5555 } 5556 5557 if (!string.IsNullOrWhiteSpace(geneticProfileIntro) && !geneticProfileIntro.Equals("GeneticProfileIntro")) 5558 { 5559 if (!geneticProfileIntro.StartsWith("<p>", StringComparison.InvariantCultureIgnoreCase)) 5560 { 5561 geneticProfileIntro = string.Format("<p>{0}</p>", geneticProfileIntro); 5562 } 5563 if (!string.IsNullOrWhiteSpace(geneticProfileIntro) && geneticProfileIntro.Contains("{legend}") && !string.IsNullOrEmpty(legend)) 5564 { 5565 geneticProfileIntro = geneticProfileIntro.Replace("{legend}", $"<a href='javascript:void(0);' class='legend-opener'>{Translate("GeneticProfileIntro_LegendLinkText", "legend")}</a>"); 5566 } 5567 @geneticProfileIntro 5568 } 5569 5570 <div class="table-responsive"> 5571 <table width="600" class="genetic-profile-table"> 5572 <colgroup> 5573 <col class="description" /> 5574 <col class="percentage" /> 5575 <col class="minimum" /> 5576 <col class="value" /> 5577 <col class="value" /> 5578 <col class="value" /> 5579 <col class="value" /> 5580 <col class="value" /> 5581 <col class="value" /> 5582 <col class="value" /> 5583 <col class="value" /> 5584 <col class="value" /> 5585 <col class="value" /> 5586 <col class="maximum" /> 5587 </colgroup> 5588 <tr class="index"> 5589 <td>&nbsp;</td> 5590 <th>@Translate("Btbh.", "Btbh.")</th> 5591 <td>&nbsp;</td> 5592 <th class="value stars">***</th> 5593 <th class="value stars">**</th> 5594 <th class="value stars">*</th> 5595 <th colspan="4" class="average">@Translate("Avarage", "Avarage")</th> 5596 <th class="value stars">*</th> 5597 <th class="value stars">**</th> 5598 <th class="value stars">***</th> 5599 <td>&nbsp;</td> 5600 </tr> 5601 <tr class="spacer"> 5602 <td>&nbsp;</td> 5603 <td>&nbsp;</td> 5604 <td>&nbsp;</td> 5605 <td>&nbsp;</td> 5606 <td>&nbsp;</td> 5607 <td>&nbsp;</td> 5608 <td>&nbsp;</td> 5609 <td>&nbsp;</td> 5610 <td>&nbsp;</td> 5611 <td>&nbsp;</td> 5612 <td>&nbsp;</td> 5613 <td>&nbsp;</td> 5614 <td>&nbsp;</td> 5615 <td>&nbsp;</td> 5616 </tr> 5617 5618 @if (userIsLoggedIn && isMyHorse && dressageJumping.Count > 0) 5619 { 5620 foreach (var breedingValuesTable in dressageJumping) 5621 { 5622 5623 foreach (BreedingValueModel breedingValue in breedingValuesTable.BreedingValues.Where(breedingVal => breedingVal.Description == "Dressuur (GFW)" || breedingVal.Description == "Springen (GFW)")) 5624 { 5625 // modulo for row color display 5626 var mod = "0"; 5627 if (geneticProfileRowCounter % 2 == 0) { mod = "1"; } 5628 5629 var breedingValueValue = 0; 5630 Int32.TryParse(breedingValue.Value, out breedingValueValue); 5631 5632 var description = breedingValue.Description; 5633 if (!string.IsNullOrWhiteSpace(breedingValue.TypeCalculation)) 5634 { 5635 description = $"{description} ({breedingValue.TypeCalculation})"; 5636 } 5637 5638 <tr class="table-row mod-@mod"> 5639 <td class="description nowrap">@description</td> 5640 <td class="percentage"> 5641 @if (breedingValuesTable == geneticProfile.First()) 5642 { 5643 @breedingValue.Reliability 5644 } 5645 </td> 5646 <td class="minimum">@breedingValue.Minimum</td> 5647 @HorseHelper.GetGeneticProfileValues(breedingValueValue, breedingValue.Differentiation, showGeneticProfileBasedOnOwnerSettings) 5648 <td class="maximum">@breedingValue.Maximum</td> 5649 </tr> 5650 5651 geneticProfileRowCounter++; 5652 } 5653 5654 } 5655 <tr class="spacer"> 5656 <td>&nbsp;</td> 5657 <td>&nbsp;</td> 5658 <td>&nbsp;</td> 5659 <td>&nbsp;</td> 5660 <td>&nbsp;</td> 5661 <td>&nbsp;</td> 5662 <td>&nbsp;</td> 5663 <td>&nbsp;</td> 5664 <td>&nbsp;</td> 5665 <td>&nbsp;</td> 5666 <td>&nbsp;</td> 5667 <td>&nbsp;</td> 5668 <td>&nbsp;</td> 5669 <td>&nbsp;</td> 5670 </tr> 5671 } 5672 @foreach (var breedingValuesTable in geneticProfile) 5673 { 5674 if (breedingValuesTable.BreedingValues != null && breedingValuesTable.BreedingValues.Count > 0) 5675 { 5676 geneticProfileRowCounter = 0; 5677 <tr class="table-caption"> 5678 <th colspan="14"> 5679 @breedingValuesTable.Type 5680 @if (breedingValuesTable != geneticProfile.First()) 5681 { 5682 var relia = breedingValuesTable.BreedingValues.FirstOrDefault(); 5683 if (relia != null) 5684 { 5685 @relia.Reliability 5686 } 5687 } 5688 </th> 5689 </tr> 5690 } 5691 foreach (BreedingValueModel breedingValue in breedingValuesTable.BreedingValues.Where(breedingVal => breedingVal.Description != "Dressuur (GFW)" && breedingVal.Description != "Springen (GFW)" && !breedingVal.Description.Contains("Sport index"))) 5692 { 5693 5694 // modulo for row color display 5695 var mod = "0"; 5696 if (geneticProfileRowCounter % 2 == 0) { mod = "1"; } 5697 5698 var breedingValueValue = 0; 5699 Int32.TryParse(breedingValue.Value, out breedingValueValue); 5700 5701 var description = breedingValue.Description; 5702 if (!string.IsNullOrWhiteSpace(breedingValue.TypeCalculation)) 5703 { 5704 description = $"{description} ({breedingValue.TypeCalculation})"; 5705 } 5706 5707 <tr class="table-row mod-@mod"> 5708 <td class="description nowrap">@description</td> 5709 <td class="percentage"> 5710 @if (breedingValuesTable == geneticProfile.First()) 5711 { 5712 @breedingValue.Reliability 5713 } 5714 </td> 5715 <td class="minimum">@breedingValue.Minimum</td> 5716 @HorseHelper.GetGeneticProfileValues(breedingValueValue, breedingValue.Differentiation, showGeneticProfileBasedOnOwnerSettings) 5717 <td class="maximum">@breedingValue.Maximum</td> 5718 </tr> 5719 5720 geneticProfileRowCounter++; 5721 } 5722 <tr class="spacer"> 5723 <td>&nbsp;</td> 5724 <td>&nbsp;</td> 5725 <td>&nbsp;</td> 5726 <td>&nbsp;</td> 5727 <td>&nbsp;</td> 5728 <td>&nbsp;</td> 5729 <td>&nbsp;</td> 5730 <td>&nbsp;</td> 5731 <td>&nbsp;</td> 5732 <td>&nbsp;</td> 5733 <td>&nbsp;</td> 5734 <td>&nbsp;</td> 5735 <td>&nbsp;</td> 5736 <td>&nbsp;</td> 5737 </tr> 5738 } 5739 </table> 5740 </div> 5741 5742 if (!string.IsNullOrWhiteSpace(legend)) 5743 { 5744 <div class="modal fade" id="legend" tabindex="-1" role="dialog" aria-labelledby="legend-modal" aria-hidden="true"> 5745 <div class="modal-dialog"> 5746 <div class="modal-content"> 5747 <div class="modal-header"> 5748 @Translate("GeneticProfileIntro_LegendHeader", "Legend") 5749 <a class="orange_arrow_link close-model" data-dismiss="modal" href="javascript:void(0);">@Translate("GeneticProfileIntro_LegendClose", "Close")</a> 5750 </div> 5751 <div class="modal-body legend-body"> 5752 @legend 5753 </div> 5754 <div class="modal-footer"> 5755 <a class="orange_arrow_link" data-dismiss="modal" href="javascript:void(0);">@Translate("GeneticProfileIntro_LegendClose", "Close")</a> 5756 </div> 5757 </div> 5758 </div> 5759 </div> 5760 @SnippetStart("JavascriptsBottom") 5761 <script> 5762 $(document).ready(function () { 5763 // legend modal opener 5764 $(".legend-opener").off("click").on("click", function () { 5765 $("#legend").modal("show"); 5766 }); 5767 }); 5768 </script> 5769 @SnippetEnd("JavascriptsBottom") 5770 } 5771 } 5772 } 5773 </div> 5774 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5775 @* 5776 Note: 5777 5778 Variables like "action/isAlive/isMyHorse/isMare/horse/culture/animalCode/showMemberContent/etc..." are set in the parent: Paragraph/HorseDatabase.cshtml 5779 5780 This content is ALWAYS available for mares. 5781 This content is available if the horse is mine 5782 5783 Always show: 5784 - gender 5785 - horse name 5786 - date of birth 5787 - register 5788 - sports level <-- NOT AVAILABLE IN SearchAnimalResultItemModel 5789 When the parent is a mare then show: 5790 - father name 5791 When the parent is NOT a mare then show: 5792 - mother name <-- NOT AVAILABLE IN SearchAnimalResultItemModel 5793 - mothers father name 5794 *@ 5795 <div class="horse-detail-item hidden" id="horse-detail-item-offspring" data-content="tab_offspring"> 5796 @if (isMare || isMyHorse) 5797 { 5798 var offspring = horse.Offspring; 5799 <h2>@Translate("Offspring", "Offspring")</h2> 5800 <div class="table-responsive"> 5801 @if (offspring != null && offspring.Any()) 5802 { 5803 <table id="offspringTable" class="horsesTable"> 5804 <thead> 5805 <tr> 5806 <th data-sortOn="Gender" data-sortBy="Asc"></th> 5807 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 5808 @if (isMare) 5809 { 5810 <th data-sortOn="Father" data-sortBy="Asc">@Translate("Father", "Father")<i class="fa"></i></th> 5811 } 5812 else 5813 { 5814 @*<th data-sortOn="Mother" data-sortBy="Asc">@Translate("Mother", "Mother")<i class="fa"></i></th>*@ 5815 <th data-sortOn="MothersFather" data-sortBy="Asc">@Translate("MothersFather", "Mothers father")<i class="fa"></i></th> 5816 } 5817 <th data-sortOn="DateOfBirth" data-sortBy="Asc">@Translate("YearOfBirth", "Year of birth")<i class="fa"></i></th> 5818 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 5819 <th data-sortOn="SportsLevel" data-sortBy="Asc">@Translate("SportsLevel", "Sports level")<i class="fa"></i></th> 5820 5821 </tr> 5822 </thead> 5823 5824 @foreach (var child in offspring.OrderByDescending(c => c.DateOfBirth)) 5825 { 5826 var childGenderClass = "fa-question"; 5827 var childGenderImage = ""; 5828 var childGenderAbbr = ""; 5829 var childGender = Kwpn.Models.Enumerations.Gender.UNKNOWN; 5830 var childIsAlive = child.DateOfDeath == null; 5831 Enum.TryParse(child.Gender.ToUpper(), out childGender); 5832 switch (childGender) 5833 { 5834 case Kwpn.Models.Enumerations.Gender.HENGST: 5835 childGenderClass = "fa-mars"; 5836 childGenderAbbr = Translate("Stallion", "Stallion"); 5837 break; 5838 case Kwpn.Models.Enumerations.Gender.MERRIE: 5839 childGenderClass = "fa-venus"; 5840 childGenderAbbr = Translate("Mare", "Mare"); 5841 break; 5842 case Kwpn.Models.Enumerations.Gender.RUIN: 5843 childGenderClass = "fa-mars"; 5844 childGenderAbbr = Translate("Gelding", "Gelding"); 5845 break; 5846 case Kwpn.Models.Enumerations.Gender.EMBRYO: 5847 childGenderClass = ""; 5848 childGenderAbbr = Translate("Embryo", "Embryo"); 5849 childGenderImage = "<img src=\"/Files/Templates/Designs/Kwpn/Images/StyleElements/Icon_Embryo_20x20.png\" />"; 5850 break; 5851 } 5852 5853 var childIsApprovedStud = child.ApprovedStallion; 5854 var childName = child.AnimalName; // KWPN-1825: DOn't use child.SportsName for offspring 5855 var childDoBirth = ""; 5856 var childYoBirth = ""; 5857 if (child.DateOfBirth.HasValue && !child.DateOfBirth.Value.Equals(DateTime.MinValue)) 5858 { 5859 childDoBirth = child.DateOfBirth.Value.ToShortDateString(); 5860 childYoBirth = child.DateOfBirth.Value.Year.ToString(); 5861 } 5862 5863 var childsFather = child.Father; 5864 var childsMothersFather = child.MothersFather; 5865 var childSportsLevel = child.SportResult; 5866 5867 <tr @(!childGender.Equals(Kwpn.Models.Enumerations.Gender.EMBRYO) ? $" class=\"clickable\" onclick=\"document.location.href='{Kwpn.Repository.Helpers.HorseHelper.GetHorseInfoPageUrl(culture, child.AnimalCode)}';\"" : "") data-horsecode="@child.AnimalCode"> 5868 <td class="nowrap"> 5869 <i class="fa @childGenderClass">@childGenderImage</i> 5870 @if (!childIsAlive) 5871 { 5872 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div> 5873 } 5874 @if (childIsApprovedStud) 5875 { 5876 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div> 5877 } 5878 </td> 5879 <td class="nowrap">@childName</td> 5880 @if (isMare) 5881 { 5882 <td>@childsFather</td> 5883 } 5884 else 5885 { 5886 @*<td>-</td> mother*@ 5887 <td>@childsMothersFather</td> 5888 } 5889 <td><div data-toggle="tooltip" @(!childGender.Equals(Kwpn.Models.Enumerations.Gender.EMBRYO) ? $" title='{childDoBirth}'" : "")>@childYoBirth</div></td> 5890 <td style="width:150px" class="ellipsis"><div data-toggle="tooltip" title="@child.Register.JsEncode()">@child.Register</div></td> 5891 <td>@childSportsLevel</td> 5892 5893 </tr> 5894 } 5895 </table> 5896 } 5897 else 5898 { 5899 <p>@Translate("NoRegisteredOffspring", "No registered offspring")</p> 5900 } 5901 </div> 5902 } 5903 </div> 5904 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5905 @*note: variables like "showMemberContent/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 5906 <div class="horse-detail-item hidden" id="horse-detail-item-approved-offspring" data-content="tab_approved_offspring"> 5907 @if (isApprovedStud) 5908 { 5909 var approvedOffspring = horse.ApprovedOffspring; 5910 var approvedOffspring2ndGen = horse.ApprovedOffspringGrandchild; 5911 5912 if ((approvedOffspring != null && approvedOffspring.Any()) || (approvedOffspring2ndGen != null && approvedOffspring2ndGen.Any())) 5913 { 5914 if (approvedOffspring != null && approvedOffspring.Any()) 5915 { 5916 <h2>@Translate("ApprovedOffspring1stGen", "Approved offspring 1st generation")</h2> 5917 <div class="table-responsive"> 5918 <table id="offspring1GenTable" class="horsesTable"> 5919 <thead> 5920 <tr> 5921 <th data-sortOn="Gender" data-sortBy="Asc"></th> 5922 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 5923 <th data-sortOn="DateOfBirth" data-sortBy="Asc">@Translate("YearOfBirth", "Year of birth")<i class="fa"></i></th> 5924 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 5925 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 5926 @*<th data-sortOn="Mother" data-sortBy="Asc">@Translate("MothersMotherFatherName", "Mothers mothers father")<i class="fa"></i></th>*@ 5927 </tr> 5928 </thead> 5929 @foreach (var offspring1Gen in approvedOffspring) 5930 { 5931 // SearchAnimalResultModel 5932 5933 var offspring1GenGenderClass = "fa-question"; 5934 var offspring1GenGenderAbbr = ""; 5935 var offspring1GenGender = Kwpn.Models.Enumerations.Gender.UNKNOWN; 5936 var offspring1GenIsAlive = offspring1Gen.DateOfDeath == null; 5937 Enum.TryParse(offspring1Gen.Gender.ToUpper(), out offspring1GenGender); 5938 switch (offspring1GenGender) 5939 { 5940 case Kwpn.Models.Enumerations.Gender.HENGST: 5941 offspring1GenGenderClass = "fa-mars"; 5942 offspring1GenGenderAbbr = Translate("Stallion", "Stallion"); 5943 break; 5944 case Kwpn.Models.Enumerations.Gender.MERRIE: 5945 offspring1GenGenderClass = "fa-venus"; 5946 offspring1GenGenderAbbr = Translate("Mare", "Mare"); 5947 break; 5948 case Kwpn.Models.Enumerations.Gender.RUIN: 5949 offspring1GenGenderClass = "fa-mars"; //fa-mars-stroke-h 5950 offspring1GenGenderAbbr = Translate("Gelding", "Gelding"); 5951 break; 5952 } 5953 5954 var offspring1GenName = offspring1Gen.AnimalName; 5955 if (!string.IsNullOrWhiteSpace(offspring1Gen.SportsName)) 5956 { 5957 offspring1GenName = offspring1Gen.SportsName; 5958 } 5959 5960 var offspring1GenDoBirth = ""; 5961 var offspring1GenYoBirth = ""; 5962 if (offspring1Gen.DateOfBirth.HasValue && !offspring1Gen.DateOfBirth.Value.Equals(DateTime.MinValue)) 5963 { 5964 offspring1GenDoBirth = offspring1Gen.DateOfBirth.Value.ToShortDateString(); 5965 offspring1GenYoBirth = offspring1Gen.DateOfBirth.Value.Year.ToString(); 5966 } 5967 5968 var offspring1GenFather = offspring1Gen.Father; 5969 var offspring1GenMothersFather = offspring1Gen.MothersFather; 5970 var offspring1GenIsApprovedStud = offspring1Gen.ApprovedStallion; 5971 5972 <tr class="clickable" onclick="document.location.href='@HorseHelper.GetHorseInfoPageUrl(culture, offspring1Gen.AnimalCode)';" data-horsecode="@offspring1Gen.AnimalCode"> 5973 <td class="nowrap"> 5974 <i class="fa @offspring1GenGenderClass"></i> 5975 @if (!offspring1GenIsAlive) 5976 { 5977 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div> 5978 } 5979 @if (offspring1GenIsApprovedStud) 5980 { 5981 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div> 5982 } 5983 </td> 5984 <td>@offspring1GenName</td> 5985 <td><div data-toggle="tooltip" title="@offspring1GenDoBirth">@offspring1GenYoBirth</div></td> 5986 <td>@offspring1Gen.Color</td> 5987 <td><span class="nowrap">@offspring1GenFather</span> x <span class="nowrap">@offspring1GenMothersFather</span></td> 5988 </tr> 5989 } 5990 </table> 5991 </div> 5992 } 5993 5994 if (approvedOffspring2ndGen != null && approvedOffspring2ndGen.Any()) 5995 { 5996 <h2>@Translate("ApprovedOffspring2ndGen", "Approved offspring 2nd generation")</h2> 5997 <div class="table-responsive"> 5998 <table id="offspring2GenTable" class="horsesTable"> 5999 <thead> 6000 <tr> 6001 <th data-sortOn="Gender" data-sortBy="Asc"></th> 6002 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6003 <th data-sortOn="DateOfBirth" data-sortBy="Asc">@Translate("YearOfBirth", "Year of birth")<i class="fa"></i></th> 6004 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6005 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6006 </tr> 6007 </thead> 6008 @foreach (var offspring2Gen in approvedOffspring2ndGen) 6009 { 6010 // SearchAnimalResultModel 6011 var offspring2GenGenderClass = "fa-question"; 6012 var offspring2GenGenderAbbr = ""; 6013 var offspring2GenGender = Kwpn.Models.Enumerations.Gender.UNKNOWN; 6014 var offspring2GenIsAlive = offspring2Gen.DateOfDeath == null; 6015 Enum.TryParse(offspring2Gen.Gender.ToUpper(), out offspring2GenGender); 6016 switch (offspring2GenGender) 6017 { 6018 case Kwpn.Models.Enumerations.Gender.HENGST: 6019 offspring2GenGenderClass = "fa-mars"; 6020 offspring2GenGenderAbbr = Translate("Stallion", "Stallion"); 6021 break; 6022 case Kwpn.Models.Enumerations.Gender.MERRIE: 6023 offspring2GenGenderClass = "fa-venus"; 6024 offspring2GenGenderAbbr = Translate("Mare", "Mare"); 6025 break; 6026 case Kwpn.Models.Enumerations.Gender.RUIN: 6027 offspring2GenGenderClass = "fa-mars"; 6028 offspring2GenGenderAbbr = Translate("Gelding", "Gelding"); 6029 break; 6030 } 6031 6032 var offspring2GenName = offspring2Gen.AnimalName; 6033 if (!string.IsNullOrWhiteSpace(offspring2Gen.SportsName)) 6034 { 6035 offspring2GenName = offspring2Gen.SportsName; 6036 } 6037 6038 var offspring2GenDoBirth = ""; 6039 var offspring2GenYoBirth = ""; 6040 if (offspring2Gen.DateOfBirth.HasValue && !offspring2Gen.DateOfBirth.Value.Equals(DateTime.MinValue)) 6041 { 6042 offspring2GenDoBirth = offspring2Gen.DateOfBirth.Value.ToShortDateString(); 6043 offspring2GenYoBirth = offspring2Gen.DateOfBirth.Value.Year.ToString(); 6044 } 6045 6046 var offspring2GenFather = offspring2Gen.Father; 6047 var offspring2GenMothersFather = offspring2Gen.MothersFather; 6048 var offspring2GenIsApprovedStud = offspring2Gen.ApprovedStallion; 6049 6050 <tr class="clickable" onclick="document.location.href='@HorseHelper.GetHorseInfoPageUrl(culture, offspring2Gen.AnimalCode)';" data-horsecode="@offspring2Gen.AnimalCode"> 6051 <td class="nowrap"> 6052 <i class="fa @offspring2GenGenderClass"></i> 6053 @if (!offspring2GenIsAlive) 6054 { 6055 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div> 6056 } 6057 @if (offspring2GenIsApprovedStud) 6058 { 6059 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div> 6060 } 6061 </td> 6062 <td class="nowrap">@offspring2GenName</td> 6063 <td><div data-toggle="tooltip" title="@offspring2GenDoBirth">@offspring2GenYoBirth</div></td> 6064 <td>@offspring2Gen.Color</td> 6065 <td><span class="nowrap">@offspring2GenFather</span> x <span class="nowrap">@offspring2GenMothersFather</span></td> 6066 </tr> 6067 } 6068 </table> 6069 </div> 6070 } 6071 } 6072 else 6073 { 6074 <h2>@Translate("ApprovedOffspring", "Approved offspring")</h2> 6075 <p>@Translate("NoApprovedOffspring", "No approved offspring")</p> 6076 } 6077 } 6078 </div> 6079 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6080 @*note: variables like "showMemberContent/horseHasMemberContentOverride/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 6081 <div class="horse-detail-item hidden" id="horse-detail-item-performance-report" data-content="tab_performance_report"> 6082 @if (isApprovedStud) 6083 { 6084 <h2>@Translate("PerformanceReport", "Performance report")</h2> 6085 var performanceReportText = ""; 6086 if (reports != null) 6087 { 6088 var performanceReport = reports.Where( 6089 r => r.Language.Equals(language, StringComparison.OrdinalIgnoreCase) && 6090 r.Type.Equals(Kwpn.Models.Enumerations.ReportType.Verrichtingsverslag.ToString(), StringComparison.OrdinalIgnoreCase) 6091 ).FirstOrDefault(); 6092 6093 if (performanceReport != null) 6094 { 6095 performanceReportText = Kwpn.Repository.Helpers.FormatHelpers.CleanEquisText(performanceReport.Report); 6096 } 6097 } 6098 if (!string.IsNullOrWhiteSpace(performanceReportText)) 6099 { 6100 @performanceReportText 6101 } 6102 else 6103 { 6104 <p>@Translate("NoPerformanceReport", "No registered performance report")</p> 6105 } 6106 } 6107 </div> 6108 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6109 @*note: variables like "showMemberContent/isApprovedStud" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 6110 <div class="horse-detail-item hidden" id="horse-detail-item-performance-figures" data-content="tab_performance_figures"> 6111 @if (isApprovedStud) 6112 { 6113 var performanceFigures = horse.PerformancetestScores; 6114 if (performanceFigures != null && performanceFigures.Any()) 6115 { 6116 var performanceFigureCounter = 0; 6117 <h2>@Translate("PerformanceFigures", "Performance test scores")</h2> 6118 <div class="performance-figures infotable"> 6119 @CreateInfoTableRow(performanceFigureCounter, Translate("Description", "Description"), Translate("Value", "Value"), true) 6120 @foreach (var figure in performanceFigures) 6121 { 6122 //PerformancetestScoreModel 6123 @CreateInfoTableRow(performanceFigureCounter, figure.Description, figure.Value, false, false, false) 6124 performanceFigureCounter++; 6125 } 6126 </div> 6127 } 6128 else 6129 { 6130 <p>@Translate("NoPerformanceFigures", "No registered test scores")</p> 6131 } 6132 } 6133 </div> 6134 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6135 <div class="horse-detail-item hidden" id="horse-detail-item-breeding-registration" data-content="tab_breeding_registration"> 6136 @if (isApprovedStud) 6137 { 6138 var breedingRegistrations = horse.BreedingRegistrations; 6139 if (breedingRegistrations != null && breedingRegistrations.Any()) 6140 { 6141 var breedingRegistrationCounter = 0; 6142 <div class="breedingRegistrations infotable"> 6143 <h2>@Translate("BreedingRegistration", "Breeding registration")</h2> 6144 @foreach (var breedingRegistration in breedingRegistrations) 6145 { 6146 @CreateInfoTableRow(breedingRegistrationCounter, breedingRegistration.Description, breedingRegistration.Value, false, false, false) 6147 breedingRegistrationCounter++; 6148 } 6149 </div> 6150 } 6151 } 6152 </div> 6153 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6154 @*note: variables like "showMemberContent/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 6155 <div class="horse-detail-item hidden" id="horse-detail-item-descendant-report" data-content="tab_descendant_report"> 6156 @if (isApprovedStud) 6157 { 6158 <h2>@Translate("DescendantsReport", "Descendants report")</h2> 6159 var descendantsReportText = ""; 6160 if (reports != null) 6161 { 6162 var descendantsReport = reports.Where( 6163 r => r.Language.Equals(language, StringComparison.OrdinalIgnoreCase) && 6164 r.Type.Equals(Kwpn.Models.Enumerations.ReportType.Afstammelingenrapport.ToString(), StringComparison.OrdinalIgnoreCase) 6165 ).FirstOrDefault(); 6166 6167 if (descendantsReport != null) 6168 { 6169 descendantsReportText = Kwpn.Repository.Helpers.FormatHelpers.CleanEquisText(descendantsReport.Report); 6170 } 6171 } 6172 6173 if (!string.IsNullOrWhiteSpace(descendantsReportText)) 6174 { 6175 @descendantsReportText 6176 } 6177 else 6178 { 6179 <p>@Translate("NoDescendantsReport", "No registered descendants report")</p> 6180 } 6181 } 6182 </div> 6183 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6184 @*note: variables like "showMemberContent/reports/language" are set in the parent: Paragraph/HorseDatabase.cshtml*@ 6185 <div class="horse-detail-item hidden" id="horse-detail-item-availability" data-content="tab_availability"> 6186 @if (isApprovedStud) 6187 { 6188 <h2>@Translate("Availability", "Availability")</h2> 6189 var spermAvailables = horse.SpermAvailables; 6190 if (spermAvailables != null && spermAvailables.Any()) 6191 { 6192 <div class="table-responsive"> 6193 <table id="availability-sperm"> 6194 <thead> 6195 <tr> 6196 <th>@Translate("Type", "Type")</th> 6197 <th>@Translate("StudStation", "Stud station")</th> 6198 <th>@Translate("TelephoneNumber", "Telephone number")</th> 6199 <th>@Translate("Website", "Website")</th> 6200 </tr> 6201 </thead> 6202 6203 @foreach (var spermAvailability in spermAvailables) 6204 { 6205 //SpermAvailableModel 6206 var telephone = spermAvailability.Telephone; 6207 if (!string.IsNullOrWhiteSpace(spermAvailability.Mobile)) 6208 { 6209 if (!string.IsNullOrWhiteSpace(telephone) && !telephone.Equals(spermAvailability.Mobile)) 6210 { 6211 telephone = string.Format("{0}, ", telephone); 6212 telephone = string.Format("{0}{1}", telephone, spermAvailability.Mobile); 6213 } 6214 else 6215 { 6216 telephone = spermAvailability.Mobile; 6217 } 6218 } 6219 if (string.IsNullOrWhiteSpace(telephone)) 6220 { 6221 telephone = "-"; 6222 } 6223 6224 var website = spermAvailability.Website; 6225 if (!string.IsNullOrWhiteSpace(website)) 6226 { 6227 var websiteText = ""; 6228 var websiteUrl = ""; 6229 website = website.ToLower(); 6230 if (website.Contains("://")) 6231 { 6232 websiteText = new Uri(website).PathAndQuery; 6233 websiteUrl = website; 6234 } 6235 else 6236 { 6237 websiteText = website; 6238 websiteUrl = string.Format("http://{0}", website); 6239 } 6240 website = string.Format("<a href=\"{0}\" target=\"blank\" title=\"{2}: {1}\">{2}</a>", websiteUrl, websiteText, Translate("GoToWebsite", "Go to website").JsEncode()); 6241 } 6242 else 6243 { 6244 website = "-"; 6245 } 6246 <tr> 6247 <td>@spermAvailability.Type</td> 6248 <td>@spermAvailability.StallionOwner</td> 6249 <td>@telephone</td> 6250 <td>@website</td> 6251 </tr> 6252 } 6253 </table> 6254 </div> 6255 } 6256 else 6257 { 6258 <p>@Translate("AvailabilityUnknown", "Availability unknown")</p> 6259 } 6260 } 6261 </div> 6262 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6263 <div class="horse-detail-item hidden" id="horse-detail-item-breederinfo" data-content="tab_breeders_info" data-culture="@Dynamicweb.Frontend.PageView.Current().Area.Culture"> 6264 <div class="breederinfo-panel hidden" id="breeder-data"> 6265 <div class="row"> 6266 <div class="col-xs-12"> 6267 <h2>@Translate("BreederInfo_Title", "About") <span class="breeder-name"></span></h2> 6268 <table> 6269 <tr id="breeder-website-row" class="hidden"> 6270 <td>@Translate("BreederInfo_Website", "Website"):</td> 6271 <td class="js-content" id="breeder-website"></td> 6272 </tr> 6273 </table> 6274 </div> 6275 </div> 6276 <div class="row"> 6277 @{ 6278 var currentUrl = System.Web.HttpContext.Current.Request.Url.PathAndQuery; 6279 } 6280 <div class="col-xs-12" id="quick-links"> 6281 <i class="fa fa-spinner fa-spin" id="quick-links-loader"></i> 6282 <a class="hidden" href="#breeder-products">@Translate("BreederInfo_QuickLink_BreedingProducts", "Breeding products")</a> 6283 <a class="hidden" href="#breeder-horses">@Translate("BreederInfo_QuickLink_Horses", "Owned horses")</a> 6284 <a class="hidden" href="#breeder-horsesforsale">@Translate("BreederInfo_QuickLink_HorsesForSale", "Horses for sale")</a> 6285 <a class="hidden" href="#breeder-horsenews">@Translate("BreederInfo_QuickLink_HorsesNews", "Horses to name and breeding products in the news")</a> 6286 <a class="hidden" href="#breeder-performance">@Translate("BreederInfo_QuickLink_Performance", "")</a> 6287 <a class="hidden" href="#breeder-contact">@Translate("BreederInfo_QuickLink_Contact", "Contact this breeder")</a> 6288 </div> 6289 </div> 6290 </div> 6291 <div class="breederinfo-panel hidden" id="breeder-products" data-culture="@Dynamicweb.Frontend.PageView.Current().Area.Culture"> 6292 <div class="background"> 6293 <div class="row"> 6294 <div class="col-xs-12"> 6295 <h2> 6296 <a href="javascript:void(0);" class="breeder-products-toggler"> 6297 @Translate("BreederInfo_BreedingProducts", "Breeding products") <span id="breeder-products-counter" class="js-content"></span> 6298 <i class="fa fa-chevron-down rotated"></i> 6299 </a> 6300 </h2> 6301 </div> 6302 </div> 6303 @{ 6304 var productsIntro = Translate("BreederInfo_BreedingProductsIntro", ""); 6305 if (!string.IsNullOrWhiteSpace(productsIntro)) 6306 { 6307 <div class="row breeder-products-data"> 6308 <div class="col-xs-12"> 6309 @productsIntro 6310 </div> 6311 </div> 6312 } 6313 } 6314 <div class="row filter-row breeder-products-data"> 6315 <div id="breeder-products-too-many-results" class="col-xs-12 hidden"> 6316 <p>@Translate("BreederInfo_Products_TooManySearchResults", "Your search gave <span id='breeder-products-too-many-results2'></span> results, of which we show the first 100. Please use filtering and sorting to find what you are looking for.")</p> 6317 </div> 6318 <div class="col-xs-12 col-md-4"> 6319 <div class="input-group"> 6320 <input type="text" class="form-control" id="breeder-products-filter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' /> 6321 <span class="input-group-addon" id="btn-breeder-products-filter"><i class="fa fa-search"></i></span> 6322 </div> 6323 </div> 6324 <div class="col-xs-12 col-md-4"> 6325 <div class="input-group"> 6326 <input type="checkbox" class="form-control" id="breeder-products-showdeadhorses" /> 6327 <label for="breeder-products-showdeadhorses">@Translate("ShowDeadHorses", "Show dead horses")</label> 6328 </div> 6329 </div> 6330 </div> 6331 <div class="row breeder-products-data"> 6332 <div class="col-xs-12"> 6333 <div class="table-responsive" style="zoom: 0.9;"> 6334 <table id="breeder-products-table"> 6335 <thead> 6336 <tr> 6337 <th data-sortOn="Gender" data-sortBy="Asc"><span class="hidden-xs hidden-sm">@Translate("Gender", "Gender")<i class="fa"></i></span></th> 6338 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6339 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6340 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6341 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6342 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6343 </tr> 6344 </thead> 6345 <tbody class="js-content"></tbody> 6346 </table> 6347 </div> 6348 </div> 6349 </div> 6350 </div> 6351 </div> 6352 <div class="breederinfo-panel hidden" id="breeder-horses" data-culture="@Dynamicweb.Frontend.PageView.Current().Area.Culture"> 6353 <div class="background"> 6354 <div class="row"> 6355 <div class="col-xs-12"> 6356 <h2> 6357 <a href="javascript:void(0);" class="breeder-horses-toggler"> 6358 @Translate("BreederInfo_Horses", "Owned horses") <span id="breeder-horses-counter" class="js-content"></span> 6359 <i class="fa fa-chevron-down rotated"></i> 6360 </a> 6361 </h2> 6362 </div> 6363 </div> 6364 @{ 6365 var horsesIntro = Translate("BreederInfo_HorsesIntro", ""); 6366 if (!string.IsNullOrWhiteSpace(horsesIntro)) 6367 { 6368 <div class="row breeder-horses-data"> 6369 <div class="col-xs-12"> 6370 @horsesIntro 6371 </div> 6372 </div> 6373 } 6374 } 6375 <div class="row filter-row breeder-horses-data"> 6376 <div id="breeder-horses-too-many-results" class="col-xs-12 hidden"> 6377 <p>@Translate("BreederInfo_Horses_TooManySearchResults", "Your search gave <span id='breeder-horses-too-many-results2'></span> results, of which we show the first 100. Please use filtering and sorting to find what you are looking for.")</p> 6378 </div> 6379 <div class="col-xs-12 col-md-4"> 6380 <div class="input-group"> 6381 <input type="text" class="form-control" id="breeder-horses-filter" placeholder='@Translate("FilterByAttributes", "Filter by attributes")' /> 6382 <span class="input-group-addon" id="btn-breeder-horses-filter"><i class="fa fa-search"></i></span> 6383 </div> 6384 </div> 6385 <div class="col-xs-12 col-md-4"> 6386 <div class="input-group"> 6387 <input type="checkbox" class="form-control" id="breeder-horses-showdeadhorses" /> 6388 <label for="breeder-horses-showdeadhorses">@Translate("ShowDeadHorses", "Show dead horses")</label> 6389 </div> 6390 </div> 6391 </div> 6392 <div class="row breeder-horses-data"> 6393 <div class="col-xs-12"> 6394 <div class="table-responsive" style="zoom: 0.9;"> 6395 <table id="breeder-horses-table"> 6396 <thead> 6397 <tr> 6398 <th data-sortOn="Gender" data-sortBy="Asc"><span class="hidden-xs hidden-sm">@Translate("Gender", "Gender")<i class="fa"></i></span></th> 6399 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6400 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6401 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6402 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6403 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6404 </tr> 6405 </thead> 6406 <tbody class="js-content"></tbody> 6407 </table> 6408 </div> 6409 </div> 6410 </div> 6411 </div> 6412 </div> 6413 <div class="breederinfo-panel marketplace-topx hidden" id="breeder-horsesforsale"> 6414 <div class="row"> 6415 <div class="col-xs-12"> 6416 <h2> 6417 <a href="javascript:void(0);" class="breeder-horsesforsale-toggler"> 6418 @Translate("BreederInfo_HorsesForSale", "Horses for sale") <span id="breeder-horsesforsale-counter" class="js-content"></span> 6419 <i class="fa fa-chevron-down rotated"></i> 6420 </a> 6421 </h2> 6422 </div> 6423 </div> 6424 @{ 6425 var forSaleIntro = Translate("BreederInfo_HorsesForSaleIntro", ""); 6426 if (!string.IsNullOrWhiteSpace(forSaleIntro)) 6427 { 6428 <div class="row breeder-horsesforsale-data"> 6429 <div class="col-xs-12"> 6430 @forSaleIntro 6431 </div> 6432 </div> 6433 } 6434 } 6435 <div class="row breeder-horsesforsale-data"> 6436 <div class="col-xs-12 result-container js-content" id="breeder-horsesforsale-adverts"> 6437 </div> 6438 </div> 6439 </div> 6440 <div class="breederinfo-panel hidden" id="breeder-horsenews"> 6441 <div class="row"> 6442 <div class="col-xs-12"> 6443 <h2> 6444 <a href="javascript:void(0);" class="breeder-horsenews-toggler"> 6445 @Translate("BreederInfo_HorsesNews", "Horses to name and breeding products in the news") <span id="breeder-horsenews-counter" class="js-content"></span> 6446 <i class="fa fa-chevron-down rotated"></i> 6447 </a> 6448 </h2> 6449 </div> 6450 </div> 6451 @{ 6452 var newsIntro = Translate("BreederInfo_NewsIntro", ""); 6453 if (!string.IsNullOrWhiteSpace(newsIntro)) 6454 { 6455 <div class="row breeder-horsenews-data"> 6456 <div class="col-xs-12"> 6457 @newsIntro 6458 </div> 6459 </div> 6460 } 6461 } 6462 <div class="row breeder-horsenews-data"> 6463 <div class="col-xs-12 js-content" id="breeder-horsenews-items"> 6464 6465 </div> 6466 </div> 6467 </div> 6468 <div class="breederinfo-panel hidden" id="breeder-performance"> 6469 <div class="row"> 6470 <div class="col-xs-12"> 6471 <h2> 6472 <a href="javascript:void(0);" class="breeder-performance-toggler"> 6473 @Translate("BreederInfo_Performance", "Performance") <i class="fa fa-chevron-down rotated"></i> 6474 </a> 6475 </h2> 6476 </div> 6477 </div> 6478 @{ 6479 var performanceIntro = Translate("BreederInfoPerformanceIntro", ""); 6480 if (!string.IsNullOrWhiteSpace(performanceIntro)) 6481 { 6482 <div class="row breeder-performance-data"> 6483 <div class="col-xs-12"> 6484 @performanceIntro 6485 </div> 6486 </div> 6487 } 6488 } 6489 <div class="row breeder-performance-data"> 6490 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g").ToLower()"> 6491 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g"))</h3> 6492 <div class="table-responsive" style="zoom: 0.9;"> 6493 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PerformanceMares.ToString("g").ToLower()-table"> 6494 <thead> 6495 <tr> 6496 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6497 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6498 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6499 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6500 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6501 </tr> 6502 </thead> 6503 <tbody class="js-content"></tbody> 6504 </table> 6505 </div> 6506 </div> 6507 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g").ToLower()"> 6508 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g"))</h3> 6509 <div class="table-responsive" style="zoom: 0.9;"> 6510 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.PreferredMares.ToString("g").ToLower()-table"> 6511 <thead> 6512 <tr> 6513 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6514 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6515 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6516 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6517 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6518 </tr> 6519 </thead> 6520 <tbody class="js-content"></tbody> 6521 </table> 6522 </div> 6523 </div> 6524 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g").ToLower()"> 6525 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g"))</h3> 6526 <div class="table-responsive" style="zoom: 0.9;"> 6527 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.EliteMares.ToString("g").ToLower()-table"> 6528 <thead> 6529 <tr> 6530 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6531 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6532 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6533 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6534 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6535 </tr> 6536 </thead> 6537 <tbody class="js-content"></tbody> 6538 </table> 6539 </div> 6540 </div> 6541 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g").ToLower()"> 6542 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g"))</h3> 6543 <div class="table-responsive" style="zoom: 0.9;"> 6544 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.SportMares.ToString("g").ToLower()-table"> 6545 <thead> 6546 <tr> 6547 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6548 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6549 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6550 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6551 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6552 </tr> 6553 </thead> 6554 <tbody class="js-content"></tbody> 6555 </table> 6556 </div> 6557 </div> 6558 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g").ToLower()"> 6559 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g"))</h3> 6560 <div class="table-responsive" style="zoom: 0.9;"> 6561 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g").ToLower()-table"> 6562 <thead> 6563 <tr> 6564 <td></td> 6565 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6566 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6567 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6568 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6569 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6570 </tr> 6571 </thead> 6572 <tbody class="js-content"></tbody> 6573 </table> 6574 </div> 6575 </div> 6576 <div class="col-xs-12 performance-item hidden" id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g").ToLower()"> 6577 <h3>@Translate($"BreederInfo_Performance_{Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g")}", Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g"))</h3> 6578 <div class="table-responsive" style="zoom: 0.9;"> 6579 <table id="breeder-performance-items-@Kwpn.Models.Enumerations.BreederPerformanceType.GoodPerformanceMares.ToString("g").ToLower()-table"> 6580 <thead> 6581 <tr> 6582 <th data-sortOn="Name" data-sortBy="Asc">@Translate("Name", "Name")<i class="fa"></i></th> 6583 <th data-sortOn="Lifenumber" data-sortBy="Asc">@Translate("LifeNumber_Short", "Life nr")<i class="fa"></i></th> 6584 <th data-sortOn="Register" data-sortBy="Asc">@Translate("Register", "Register")<i class="fa"></i></th> 6585 <th data-sortOn="Color" data-sortBy="Asc">@Translate("Color", "Color")<i class="fa"></i></th> 6586 <th data-sortOn="Father" data-sortBy="Asc">@Translate("FathersName", "Father") x @Translate("MothersFathersName", "Mothers father")<i class="fa"></i></th> 6587 </tr> 6588 </thead> 6589 <tbody class="js-content"></tbody> 6590 </table> 6591 </div> 6592 </div> 6593 </div> 6594 </div> 6595 <div class="breederinfo-panel hidden" id="breeder-contact"> 6596 <div class="row"> 6597 <div class="col-xs-12"> 6598 <h2> 6599 <a href="javascript:void(0);" class="breeder-contact-toggler"> 6600 @Translate("BreederInfo_Contact", "Contact") <span class="breeder-name"></span> 6601 <i class="fa fa-chevron-down rotated"></i> 6602 </a> 6603 </h2> 6604 </div> 6605 </div> 6606 @{ 6607 var contactIntro = Translate("BreederInfo_ContactIntro", ""); 6608 if (!string.IsNullOrWhiteSpace(contactIntro)) 6609 { 6610 <div class="row breeder-contact-data"> 6611 <div class="col-xs-12"> 6612 @contactIntro 6613 </div> 6614 </div> 6615 } 6616 } 6617 <div class="row breeder-contact-data form-body"> 6618 <div class="col-xs-12"> 6619 <div class="form-group"> 6620 6621 @*NAME*@ 6622 <div class="form-inline"> 6623 <label class="control-label col-sm-3" for="Breeder_Contact_Name">@Translate("BreederInfo_Contact_Name", "Name") *</label> 6624 <input type="text" class="form-control hide-hints" id="Breeder_Contact_Name" name="Breeder_Contact_Name" value="" required /> 6625 </div> 6626 6627 @*EMAIL*@ 6628 <div class="form-inline"> 6629 <label class="control-label col-sm-3" for="Breeder_Contact_EmailAddress">@Translate("BreederInfo_Contact_EmailAddress", "Email address") *</label> 6630 <input type="email" class="form-control hide-hints" id="Breeder_Contact_EmailAddress" name="Breeder_Contact_EmailAddress" value="" required /> 6631 </div> 6632 6633 @*PHONE*@ 6634 <div class="form-inline"> 6635 <label class="control-label col-sm-3" for="Breeder_Contact_Phone">@Translate("BreederInfo_Contact_Phone", "Phone number")</label> 6636 <input type="text" class="form-control hide-hints" id="Breeder_Contact_Phone" name="Breeder_Contact_Phone" value="" /> 6637 </div> 6638 6639 @*City*@ 6640 <div class="form-inline"> 6641 <label class="control-label col-sm-3" for="Breeder_Contact_City">@Translate("City", "City")</label> 6642 <input type="text" class="form-control hide-hints" id="Breeder_Contact_City" name="Breeder_Contact_City" value="" /> 6643 </div> 6644 6645 @*QUESTION*@ 6646 <div class="form-inline"> 6647 <label class="control-label col-sm-3" for="Breeder_Contact_Question">@Translate("BreederInfo_Contact_Question", "Question") *</label> 6648 <textarea class="form-control hide-hints" id="Breeder_Contact_Question" name="Breeder_Contact_Question" placeholder="@Translate("BreederInfo_Contact_Question_Placeholder", "What's on your mind?")" cols="36" rows="5" required></textarea> 6649 </div> 6650 6651 <div class="form-inline"> 6652 <div class="col-sm-offset-3 form-end"> 6653 6654 @{ 6655 var reCaptchaSiteKey = Kwpn.Models.Constants.StringConstants.ApplicationVariables.RecaptchaSiteKey; 6656 var useReCaptcha = !string.IsNullOrEmpty(reCaptchaSiteKey); 6657 6658 if (useReCaptcha) 6659 { 6660 <button class="submitBtn g-recaptcha" 6661 id="Breeder_Contact_Submit" 6662 name="Breeder_Contact_Submit" 6663 data-sitekey="@reCaptchaSiteKey" 6664 data-callback="breederContactCheckReCaptcha" 6665 data-action="submit" 6666 data-badge="inline" 6667 defaultText="@Translate("BreederInfo_Contact_Submit", "Submit").JsEncode()"> 6668 @Translate("BreederInfo_Contact_Submit", "Submit") 6669 </button> 6670 6671 @SnippetStart("JavascriptsBottom") 6672 <script> 6673 function breederContactCheckReCaptcha(token) { 6674 BreederInfoHelper.SubmitContactForm(token); 6675 } 6676 6677 $(document).ready(function () { 6678 6679 // handle recaptcha terms 6680 $("input[type=text], input[type=email]", ".breeder-contact-data").focusin(function () { 6681 $("body > div > .grecaptcha-badge").css("visibility", "visible"); 6682 }); 6683 $("input[type=text], input[type=email]", ".breeder-contact-data").focusout(function () { 6684 $("body > div > .grecaptcha-badge").css("visibility", "hidden"); 6685 }); 6686 }); 6687 </script> 6688 @SnippetEnd("JavascriptsBottom") 6689 } 6690 else 6691 { 6692 <button id="Breeder_Contact_Submit" 6693 class="g-recaptcha submitBtn" 6694 type="button" 6695 defaultText="@Translate("BreederInfo_Contact_Submit", "Submit").JsEncode()" 6696 onclick="BreederInfoHelper.SubmitContactForm();"> 6697 @Translate("BreederInfo_Contact_Submit", "Submit") 6698 </button> 6699 } 6700 6701 6702 } 6703 6704 6705 6706 </div> 6707 </div> 6708 6709 <div class="error"> 6710 <div class="col-sm-offset-3"> 6711 <span class="all-required hidden">@Translate("BreederInfo_Contact_AllFieldsRequired", "All fields are required")</span> 6712 <span class="email-invalid hidden">@Translate("BreederInfo_Contact_EmailInvalid", "The emailaddress is invalid")</span> 6713 <span class="send-error hidden">@Translate("BreederInfo_Contact_SendError", "Something went wrong")</span> 6714 </div> 6715 </div> 6716 </div> 6717 <div class="confirm-text hidden"> 6718 @Translate("BreederInfo_Contact_ConfirmationText", "Thanks. KWPN will send your question to this breeder.") 6719 </div> 6720 </div> 6721 </div> 6722 </div> 6723 <div class="breederinfo-panel hidden static" id="breeder-loadfailed"> 6724 <p>@Translate("BreederInfo_LoadFailed", "Something went wrong while loading the breeder data.")</p> 6725 </div> 6726 @SnippetStart("JavascriptsBottom") 6727 <script id="breeder-horses-item-template" type="text/html"> 6728 <tr class="${ClassName} clickable" onclick="document.location.href = '${DetailLink}';" data-horsecode="${HorseCode}"> 6729 <td class="nowrap"> 6730 <i class="fa ${GenderClass}"></i><span class="hidden-xs hidden-sm"> ${GenderAbbr}</span> 6731 {{if !IsAlive}} 6732 <div class="fa-death" data-toggle="tooltip" title="@Translate("Deceased", "Deceased").JsEncode().ToUpper()"></div> 6733 {{/if}} 6734 {{if IsApprovedStud}} 6735 <div class="fa-approved-stud" data-toggle="tooltip" title="@Translate("IsApprovedStud", "Is an approved stud").JsEncode().ToUpper()"></div> 6736 {{/if}} 6737 </td> 6738 <td>${AnimalName}{{if DateOfBirth != ""}}<br /><span class='small'>${GetDate(DateOfBirth)}</span>{{/if}}</td> 6739 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td> 6740 <td>${Register}</td> 6741 <td>${Color}</td> 6742 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td> 6743 </tr> 6744 </script> 6745 <script id="breeder-advert-template" type="text/html"> 6746 <div class="col-xs-12 col-sm-6 col-md-3"> 6747 <a href="${advertLink}" data-horsecode="${animalCode}"> 6748 <div class="advert {{if isTopAdvert}} topadvert {{/if}}"> 6749 <div class="photo" style="background-image: url('{{if photo1 > ""}}${photo1}{{else}}/Files/Templates/Designs/Kwpn/Images/Marketplace_NoImg.jpg{{/if}}');"> 6750 {{if isTopAdvert}}<div class="topadd">@Translate("Marketplace_TopAdvertIndicator", "Top add")</div>{{/if}} 6751 <div class="datesince">@Translate("Marketplace_Since", "Since") ${MarketplaceHelper.GetSinceDate(dateFrom, "@Dynamicweb.Frontend.PageView.Current().Area.Culture.ToLower()")} </div> 6752 </div> 6753 <div class="specs"> 6754 <div class="row"> 6755 <div class="col-xs-3 text-center"> 6756 <div class="gender"> 6757 {{if gender == '@Kwpn.Models.Enumerations.Gender.HENGST.ToString()'}} 6758 <i class="fa fa-mars" title="@Translate(Kwpn.Models.Enumerations.Gender.HENGST.ToString())"></i> 6759 {{/if}} 6760 {{if gender == '@Kwpn.Models.Enumerations.Gender.RUIN.ToString()'}} 6761 <i class="fa fa-mars" title="@Translate(Kwpn.Models.Enumerations.Gender.RUIN.ToString())"></i> 6762 {{/if}} 6763 {{if gender == '@Kwpn.Models.Enumerations.Gender.MERRIE.ToString()'}} 6764 <i class="fa fa-venus" title="@Translate(Kwpn.Models.Enumerations.Gender.MERRIE.ToString())"></i> 6765 {{/if}} 6766 </div> 6767 </div> 6768 <div class="col-xs-9 text-left" style="margin-left: -15px;"> 6769 <div class="name"> 6770 ${animalName}{{if age >= 0}}, ${age} @Translate("Marketplace_Years", "Years"){{/if}} 6771 </div> 6772 <div class="pedigree"> 6773 ${fatherName} x ${mothersFatherName} 6774 </div> 6775 <div class="price">${priceLabel}</div> 6776 </div> 6777 </div> 6778 </div> 6779 </div> 6780 </a> 6781 </div> 6782 </script> 6783 <script id="breeder-horsenews-template" type="text/html"> 6784 <div class="col-xs-12"> 6785 <span class="date">${MarketplaceHelper.GetSinceDate(NewsDate, "@Dynamicweb.Frontend.PageView.Current().Area.Culture.ToLower()")}</span> 6786 <span class="horses"> 6787 {{each(key, value) Horses}} 6788 <span class="horse"><a href="${key}">${value}</a></span> 6789 {{/each}} 6790 </span> 6791 <a href="${NewsLink}"> 6792 <span class="title">${NewsTitle}</span> 6793 </a> 6794 </div> 6795 </script> 6796 <script id="breeder-performance-item-template" type="text/html"> 6797 <tr class="${ClassName} clickable" onclick="document.location.href = '${DetailLink}';" data-horsecode="${HorseCode}"> 6798 <td>${AnimalName}{{if DateOfBirth != ""}}<br /><span class='small'>${GetDate(DateOfBirth)}</span>{{/if}}</td> 6799 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td> 6800 <td>${Register}</td> 6801 <td>${Color}</td> 6802 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td> 6803 </tr> 6804 </script> 6805 <script id="breeder-performance-item-@Kwpn.Models.Enumerations.BreederPerformanceType.ApprovedStallions.ToString("g").ToLower()-template" type="text/html"> 6806 <tr class="${ClassName} clickable" onclick="document.location.href = '${DetailLink}';" data-horsecode="${HorseCode}"> 6807 <td><img src="images/horseimage.ashx?pc=${HorseCode}" alt="${AnimalName}" /></td> 6808 <td>${AnimalName}{{if DateOfBirth != ""}}<br /><span class='small'>${GetDate(DateOfBirth)}</span>{{/if}}</td> 6809 <td>${Lifenumber}{{if LifenumberComplete != Lifenumber}}<br /><span class='small'>${LifenumberComplete}</span>{{/if}}</td> 6810 <td>${Register}</td> 6811 <td>${Color}</td> 6812 <td><span class="nowrap">${Father}</span> x <span class="nowrap">${MothersFather}</span></td> 6813 </tr> 6814 </script> 6815 @SnippetEnd("JavascriptsBottom") 6816 </div> 6817 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 6818 <div class="horse-detail-item hidden" id="horse-detail-item-videos" data-content="tab_videos"> 6819 <div id="video-container"></div> 6820 </div> 6821 6822 // SEO VIRTUAL PAGE VIEW LOGGING: GENERALINFO 6823 <Text> 6824 <script> 6825 SEO.trackPageView("@string.Format("{0}/{1}", seoPage, Translate("SEO_TrackPageviewPage_Database_tab_general", "general-info").UrlEncode()).ToLower()"); 6826 </script> 6827 </Text> 6828 6829 } 6830 </article> 6831 </div> 6832 <div class="row"> 6833 <div class="col-xs-12 col-md-10 page-content print-disclaimer"> 6834 @Translate("Print-Disclaimer", "<strong>KWPN Database - &copy; 2017 - Content: KWPN</strong><br /><p>Niets uit de KWPN Database mag zonder uitdrukkelijke toestemming van het KWPN worden overgenomen, vermenigvuldigd en/of openbaar gemaakt, of gebruikt voor herberekening of onderzoek op welke wijze dan ook, met uitzondering van hetgeen in de Auteurswet bepaald is met betrekking tot het reprorecht.</p><p>Het KWPN aanvaardt geen aansprakelijkheid voor schade van welke aard dan ook, die het gevolg is van handelingen en/of beslissingen gebaseerd op informatie van deze site. De door het KWPN verstrekte informatie en berekende fokwaarden op deze website zijn eigendom van het KWPN. De informatie en de fokwaarden zijn bedoeld als voorlichtingsmateriaal en geadviseerd wordt om deze te gebruiken als één van de hulpmiddelen voor selectiedoeleinden. De onderliggende gegevens zijn verzameld in en/of ten behoeve van de KWPN-populatie en de fokwaarden die hieruit zijn voortgekomen zijn van toepassing op de KWPN-populatie. Het KWPN heeft uiterste zorgvuldigheid betracht bij de totstandkoming van de gepresenteerde informatie. De berekeningen hebben plaatsgevonden op basis van de beschikbare kennis van de populatiegenetica en de regels van uitvoering zijn vastgelegd in de reglementen en/of besluiten van bevoegde organen van het KWPN.</p>") 6835 </div> 6836 </div> 6837 </div> 6838 </div> 6839 </div> 6840 6841 if (isMyHorse) 6842 { 6843 <div class="break-grid content-container hidden" id="refreshcontainer"> 6844 <div class="break-grid-background"> 6845 <div class="in-grid"> 6846 <div class="row"> 6847 <div class="col-xs-12 col-md-7"> 6848 <i class='fa fa-refresh fa-spin fa-3x fa-fw'></i><span class="reloading-text">@Translate("HorseDetailsReloading", "One moment please. We are fetching the horse data from our back-end system.")</span> 6849 </div> 6850 </div> 6851 </div> 6852 </div> 6853 </div> 6854 } 6855 6856 <script> 6857 6858 // We only want the menu interaction on Desktop, so we disable it on mobile screens 6859 // the breakpoint is 991 px. 6860 var pageId = '@Dynamicweb.Frontend.PageView.Current().Page.ID'; 6861 var _mx = 991; 6862 var screenWidth = window.innerWidth; 6863 checkWidth(); 6864 6865 $(window).on('resize', function () { 6866 screenWidth = window.innerWidth 6867 checkWidth(); 6868 openAsideOnFirstPagevisit(); 6869 }); 6870 6871 function enable_menu_slide() { 6872 $(".aside-page").on('click', function () { 6873 $(this).find('.bg_aside').toggleClass("closed") 6874 $(this).find('.bg_aside').toggleClass("open") 6875 }); 6876 } 6877 6878 function checkWidth() { 6879 if (screenWidth > _mx) { 6880 enable_menu_slide(); 6881 } else { 6882 $(".aside-page").unbind(); 6883 } 6884 } 6885 6886 function openAsideOnFirstPagevisit() { 6887 if (sessionStorage.getItem('popState' + pageId) != 'shown' && screenWidth > _mx && screenWidth <= '1346') { 6888 $(".bg_aside").delay(2000).toggleClass("closed open"); 6889 sessionStorage.setItem('popState' + pageId, 'shown'); 6890 } 6891 } 6892 6893 $(document).ready(function () { 6894 6895 // Open aside menu on first page visit 6896 openAsideOnFirstPagevisit(); 6897 6898 // Open and close tabs 6899 $('i.fa-chevron-down').on('click', function () { 6900 $(this).toggleClass('fa-rotate-180'); 6901 $(this).parent().next().toggleClass('open_tab'); 6902 }); 6903 6904 // Handle go back 6905 $(".go-back").click(function (event) { 6906 event.preventDefault(); 6907 history.back(1); 6908 }); 6909 6910 // Handle breeder click 6911 @if (hasBreeders) { 6912 <text> 6913 $(".breeder-link").off("click").on("click", function () { 6914 var breederPersonCode = $(this).data("personcode"); 6915 BreederInfoHelper.InitializeBreeder(breederPersonCode, false); 6916 // SEO VIRTUAL PAGE VIEW LOGGING 6917 SEO.trackPageView("@seoPage.ToLower()/@Translate("SEO_TrackPageviewPage_Database_tab_breeders_info", "breeders-info").UrlEncode()"); 6918 }); 6919 $(".registered-link").off("click").on("click", function () { 6920 var registeredPersonCode = $(this).data("personcode"); 6921 BreederInfoHelper.InitializeBreeder(registeredPersonCode, true); 6922 // SEO VIRTUAL PAGE VIEW LOGGING 6923 SEO.trackPageView("@seoPage.ToLower()/@Translate("SEO_TrackPageviewPage_Database_tab_registered_info", "registered-info").UrlEncode()"); 6924 }); 6925 </text> 6926 } 6927 }); 6928 </script> 6929 } 6930 } 6931 }
€ 124.75 per year

KWPN Membership

  • Subscription to the montlhy digital KWPN Magazine (in Dutch)
  • Free advertising at KWPN Horses for Sale
Become a member now

About the KWPN

The KWPN (Studbook of the Royal Dutch Sport Horse) is a Netherlands-based organization specializing in the breeding of jumpers, dressage horses, harness horses, and Gelder horses.

More info

Official Partners


Cookies on the KWPN website

We request your agreement to the use of cookies on our website. More information is available on our cookie policy page.

Cookie Policy