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