1 2 3 4 <!-- Google Analytics --> 5 6<!DOCTYPE html> 7<html lang="en-GB" data-root="/"> 8 9<head> 10 <meta charset="utf-8" /> 11<meta name="viewport" content="width=device-width, initial-scale=1.0"> 12 13 14 15 <title>Membership Categories</title> 16 17 <link rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAgAElEQVR4Xu3dB7hdRdUG4CH0IgqCBbBBLIA0sSFFhdAVREMSioChSQgdlaZ0USlKUToEBAWUDtICBJCSIKD0KggEpIPwowQI/7xzM9edk1P2aTf3RpbmifHss8/smW9W+daatWd6J0p4V/5nZ2CmdwHwP7v26cHfBUBh/SdMmBAeeuihMPPMM4cPf/jD4VOf+lT6e0aWGQIArNjkyZPDyy+/HCZNmtS7XoMGDQqzzjpr8Pd//vOfkK3dLLPMEuaff/600EX5/ve/H0499dTw/ve/PwwZMiR873vfC1/84hfDv/71r97LZp999vTdGUVmCAC88cYb4fnnnw977rln+Mtf/tK7Nhbq05/+dPjABz4QrrjiigQC8rGPfSwt9Ic+9KFpAHDrrbcGQFh55ZXDnHPOGW688cZw0EEH9ajLmWYKK620Ujj++ONnlPWfMUzAW2+9FV577bXwne98Jzz66KNp166wwgph3nnnTbt57rnnDg8//HA44YQTwu233x4++clPhquvvjp85CMfSQtJM/z73/8OO+ywQ3jmmWfCr3/966T63feRRx4J119/fbruoosuCvfff39Yf/31w0477RQWW2yxqYBAC/lDwwwUGRAa4Omnnw433XRT75x+8IMfTDsxSzYB66yzTnjsscfCt771rbDffvulHVyUESNGBHZ+3XXXDfvuu29YYIEF0sfMxr333hv233//QMWfddZZVddvjz32CD//+c+TWQEgWiLLn//852CcwLb88suH+eabL8w222z9Hgf9HgAW58ILLwzDhg3rnczVV189XHnlldNM7lprrZVU/XLLLZe+M88880x1zZZbbhne+973hiOPPDJ9xjcgr7zyStIOv/vd78InPvGJcPLJJ1ddOAD5zW9+kxb3ggsuSFomyxprrBGuuuqqsMQSS4SjjjoqjWEg+Ar9HgDU7pgxY8L5559fGgBzzTVXGDx48DROHu3A8VtxxRWTHadJiJ278cYbh9tuuy2p749//ONVAfDUU0+FRRddNIHA/YsAywD4/Oc/Hy699NK0+APBFPR7APz0pz9NNpmTxzm7++67k13ecMMN07+LdjhrALbdZ9R5pdxyyy1Jffv+1ltvHSzYk08+GXyXfV9qqaXCpptu2vu1e+65JwGQ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" type="image/x-icon" /> 18 19 20 21 22<style type="text/css"> 23 .data { 24 display: none; 25 } 26</style> 27 28 29<link rel="stylesheet" href="https://www.cambridgecanoeclub.org.uk/css/content.css?v=6.2.19.18" /> 30 31<link href="https://www.cambridgecanoeclub.org.uk/Content/fontawesome/css/all.min.css" rel="stylesheet" type="text/css" /> 32<link href="https://www.cambridgecanoeclub.org.uk/Content/fontawesome/css/v4-shims.min.css" rel="stylesheet" type="text/css" /> 33 34<link href="https://www.cambridgecanoeclub.org.uk/Content/less/All.less?v=6.2.19.18" rel="stylesheet" type="text/css" /> 35<link href="https://www.cambridgecanoeclub.org.uk/Content/less/NonLess.css?v=6.2.19.18" rel="stylesheet" type="text/css" /> 36 37<link rel="stylesheet" href="https://www.cambridgecanoeclub.org.uk/css/kendo.css?v=6.2.19.18" /> 38 39 <style type="text/css"> 40 .md { 41 text-align: justify; 42} 43 </style>
44<script src="https://www.cambridgecanoeclub.org.uk/Scripts/prefixfree.min.js" type="text/javascript"></script>
44 45 46 47 48 <meta property="og:title" content="Cambridge Canoe Club" /> 49<meta property="og:type" content="website" /> 50<meta property="og:url" content="http://www.cambridgecanoeclub.org.uk/Register/MembershipCategories" /> 51<meta property="og:description" content="" /> 52<meta property="og:image" content="" /> 53 54 55 56 57
57<script type="text/javascript"> 58 var myClubhouseData = {"ClubName":"Cambridge Canoe Club","Culture":{"Currency":{"ISOSymbol":"GBP","Symbol":"£","DecimalPlaces":2,"DecimalDelimiter":".","GroupDelimiter":",","GroupSizes":[3],"PositivePattern":0,"NegativePattern":1},"Number":{"DecimalDelimiter":".","GroupDelimiter":",","GroupSizes":[3],"NegativePattern":1},"DateTime":{"ShortDatePattern":"dd/MM/yyyy","LongDatePattern":"dddd, d MMMM yyyy","ShortTimePattern":"HH:mm","LongTimePattern":"HH:mm:ss","DateTimePattern":"dd/MM/yyyy HH:mm","FullDateTimePattern":"dddd, d MMMM yyyy HH:mm:ss"}},"TimezoneID":"Europe/London","Terminology":{"OrgName":"Cambridge Canoe Club","OrgType":"club","Branch":"Branch","Branches":"Branches","Section":"Section","Sections":"Sections","User":"member","Users":"members","Official":"officer","Officials":"officers","Usership":"Membership","LinkedSubscription":"Linked Subscription","SubscriptionAddOn":"Add-on","Token":"Token","TokenSystem":"Token","VAT":"VAT","AbilityLevel":"Paddling Experience","SecondAbilityLevel":"Ability Level","EventOrganiser":"Organiser","EventOrganiser2":"Second Organiser","EventOrganisingBranch":"Organising %Branch%","EventOrganisingSection":"Organising %Section%","HorseMember":"Member","HorseNonMember":"Non-Member","Certification":"Certification"},"HasBranches":false,"HasSections":false,"HasSeasons":true,"HasAbilityLevels":true,"HasSecondAbilityLevels":false,"CurrentSeasonStartDate":"01/04/2026","IsSmsEnabled":false,"IsVatRegistered":false,"TokensAreMoney":false,"EnabledModules":["BOOKING","CHAT_ROOMS","CMS","FAMILY_GROUPS","TODO"],"IsDemo":false,"IsDebugging":false,"ClubLocation":{"Location":"54W8+CJ Cambridge","Latitude":"52.1960625","Longitude":"0.11656250000000001"},"PrimaryColour":"rgb(210, 189, 0)","SecondaryColour":"rgb(0, 0, 0)","CurrentUser":{"ID":null,"Name":null,"CompanyName":null,"HasEmail":false},"CurrentUserCanModifyMenu":false,"HorsesHaveMembership":true}; 59 var myClubhouseUrlReferrer = ''; 60 </script>
60 61 62 <!-- Site Analytics Module - disable when debugging --> 63
63<script src="/Scripts/CookieConsent.js"></script>
63 64
64<script> 65 window.addEventListener("load", function () { 66 CookieConsent.init({"ClubName":"Cambridge Canoe Club","Analytics":false,"Marketing":false,"EmbeddedContent":false}); 67 }); 68 </script>
68 69</head> 70 71<body> 72 73 74 75<!-- Main Menu --> 76<!-- This is Views/Shared/_MenuBar.cshtml --> 77 78 79 80 81<div class="banner-messages"> 82 <!-- Bad Browser Warning --> 83 <div id="browser-warning" class="banner-message banner-message-danger" style="display: none"> 84 <span class="pull-right"> 85 <i class="fa fa-close"></i> 86 </span> 87 <h1><i class="fa fa-exclamation-triangle"></i> Outdated Browser</h1> 88 <p> 89 Some website features may not work properly and it will probably run very slowly. For a better experience (and better security!) keep your browser up to date. Check 90 <a href="http://outdatedbrowser.com">here</a> for latest versions. 91 </p> 92 </div> 93 94 <!-- Demo Mode Warning --> 95 <div id="sandbox-warning" class="banner-message banner-message-warning" style="display: none; text-align: center;"> 96 <h1><i class="fa fa-exclamation-triangle"></i> Sandbox Mode</h1> 97 <p> 98 Warning! Use fictitious data only; any personal data entered will become publicly available. 99 <a class="alert-link" href="https://clients.myclubhouse.co.uk/Home/ContactUs?Subject=Sandbox%20Login%20Request" target="_blank">Get free 'admin' access</a>. 100 </p> 101 </div> 102</div> 103 104<div class="navbar-wrapper " data-spy="affix" data-offset-top="1"> 105 106 <nav id="main-menu" class="navbar navbar-inverse navbar-clubhouse"> 107 <div class="container-fluid" data-bind="visible: true" style="display: none;"> 108 <div class="navbar-header"> 109 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-navbar-collapse"> 110 <span class="sr-only">Toggle navigation</span> 111 <span class="icon-bar"></span> 112 <span class="icon-bar"></span> 113 <span class="icon-bar"></span> 114 </button> 115 <!-- Show the home button if it hasn't been hidden --> 116 <a class="navbar-brand" href="/" title="Home"> 117 <img src="https://www.cambridgecanoeclub.org.uk/Client/Images/Site/logo_with_club_name_on_the_right.png" alt="Home" style="border: 0"/> 118 </a> 119 </div> 120 121 <div class="navbar-collapse collapse" id="main-navbar-collapse"> 122 <ul class="nav navbar-nav navbar-main"> 123 <!-- Groups --> 124 125<li class="dropdown"> 126 <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Club Info" role="button" aria-expanded="false"> 127 <i class="far fa-info-circle"></i> Club Info <span class="caret"></span> 128 </a> 129 130 <ul class="dropdown-menu" role="menu"> 131 132 <li> 133 <a href="/Cms/Spaces/CCC/About+Us" data-caption="About Us" > 134 <i class="fa-fw far fa-smile"></i> 135 About Us 136 </a> 137 </li> 138 139 140 <li> 141 <a href="/Register/MembershipCategories" data-caption="Membership options" > 142 <i class="fa-fw"></i> 143 Membership options 144 </a> 145 </li> 146 147 148 <li role="separator" class="divider"></li> 149 <li> 150 <a href="/Events/Calendar?displayMode=calendar" data-caption="Events Calendar" > 151 <i class="fa-fw fa fa-calendar"></i> 152 Events Calendar 153 </a> 154 </li> 155 156 157 <li> 158 <a href="/Cms/Spaces/CCC/Regular+Club+Sessions" data-caption="Regular Sessions" > 159 <i class="fa-fw"></i> 160 Regular Sessions 161 </a> 162 </li> 163 164 165 <li role="separator" class="divider"></li> 166 <li> 167 <a href="/Cms/Spaces/CCC/The+Committee" data-caption="The Committee" > 168 <i class="fa-fw fas fa-file-certificate"></i> 169 The Committee 170 </a> 171 </li> 172 173 174 <li class="dropdown dropdown-submenu"> 175 <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Documents" role="button" aria-expanded="false"> 176 <i class="fa-fw"></i> 177 Documents 178 </a> 179 180 <ul class="dropdown-menu" role="menu"> 181 182 <li> 183 <a href="/Documents/Download" data-caption="Club Documents" > 184 <i class="fa-fw fa fa-download"></i> 185 Club Documents 186 </a> 187 </li> 188 189 190 <li role="separator" class="divider"></li> 191 <li> 192 <a href="/PrivacyPolicy" data-caption="Privacy Policy" > 193 <i class="fa-fw fa fa-lock"></i> 194 Privacy Policy 195 </a> 196 </li> 197 198 199 <li> 200 <a href="/Home/TermsAndConditions" data-caption="Terms and Conditions" > 201 <i class="fa-fw fa fa-gavel"></i> 202 Terms and Conditions 203 </a> 204 </li> 205 206 </ul> 207 </li> 208 209 210 <li role="separator" class="divider"></li> 211 <li> 212 <a href="/Home/ContactUs" data-caption="Contact Us" > 213 <i class="fa-fw fas fa-phone-rotary"></i> 214 Contact Us 215 </a> 216 </li> 217 218 219 220 </ul> 221</li> 222 223 224 225 <li> 226 <a href="/Cms/Spaces/CCC/How+to+Join+the+Club" data-caption="How to Join" > 227 <i class="fa-fw far fa-user-plus"></i> 228 How to Join 229 </a> 230 </li> 231 232 233 <li> 234 <a href="/Cms/Spaces/CCC/Courses" data-caption="Courses" > 235 <i class="fa-fw fas fa-bullhorn"></i> 236 Courses 237 </a> 238 </li> 239 240 241 <li> 242 <a href="/Cms/Spaces/CCC/Juniors" data-caption="Juniors" > 243 <i class="fa-fw fas fa-child"></i> 244 Juniors 245 </a> 246 </li> 247 248 249 <li> 250 <a href="/Cms/Spaces/CCC/Information+for+Members" data-caption="Member Info" > 251 <i class="fa-fw fas fa-users"></i> 252 Member Info 253 </a> 254 </li> 255 256 257 <!-- Overflow --> 258 <li id="overflow-menu" class="dropdown hidden-xs" style="display: none"> 259 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 260 <i class="fa fa-ellipsis-v"></i> 261 </a> 262 263 <ul class="dropdown-menu dropdown-menu-right" role="menu"> 264 265 <li class="dropdown dropdown-submenu"> 266 <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Club Info" role="button" aria-expanded="false"> 267 <i class="fa-fw far fa-info-circle"></i> 268 Club Info 269 </a> 270 271 <ul class="dropdown-menu" role="menu"> 272 273 <li> 274 <a href="/Cms/Spaces/CCC/About+Us" data-caption="About Us" > 275 <i class="fa-fw far fa-smile"></i> 276 About Us 277 </a> 278 </li> 279 280 281 <li> 282 <a href="/Register/MembershipCategories" data-caption="Membership options" > 283 <i class="fa-fw"></i> 284 Membership options 285 </a> 286 </li> 287 288 289 <li role="separator" class="divider"></li> 290 <li> 291 <a href="/Events/Calendar?displayMode=calendar" data-caption="Events Calendar" > 292 <i class="fa-fw fa fa-calendar"></i> 293 Events Calendar 294 </a> 295 </li> 296 297 298 <li> 299 <a href="/Cms/Spaces/CCC/Regular+Club+Sessions" data-caption="Regular Sessions" > 300 <i class="fa-fw"></i> 301 Regular Sessions 302 </a> 303 </li> 304 305 306 <li role="separator" class="divider"></li> 307 <li> 308 <a href="/Cms/Spaces/CCC/The+Committee" data-caption="The Committee" > 309 <i class="fa-fw fas fa-file-certificate"></i> 310 The Committee 311 </a> 312 </li> 313 314 315 <li class="dropdown dropdown-submenu"> 316 <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Documents" role="button" aria-expanded="false"> 317 <i class="fa-fw"></i> 318 Documents 319 </a> 320 321 <ul class="dropdown-menu" role="menu"> 322 323 <li> 324 <a href="/Documents/Download" data-caption="Club Documents" > 325 <i class="fa-fw fa fa-download"></i> 326 Club Documents 327 </a> 328 </li> 329 330 331 <li role="separator" class="divider"></li> 332 <li> 333 <a href="/PrivacyPolicy" data-caption="Privacy Policy" > 334 <i class="fa-fw fa fa-lock"></i> 335 Privacy Policy 336 </a> 337 </li> 338 339 340 <li> 341 <a href="/Home/TermsAndConditions" data-caption="Terms and Conditions" > 342 <i class="fa-fw fa fa-gavel"></i> 343 Terms and Conditions 344 </a> 345 </li> 346 347 </ul> 348 </li> 349 350 351 <li role="separator" class="divider"></li> 352 <li> 353 <a href="/Home/ContactUs" data-caption="Contact Us" > 354 <i class="fa-fw fas fa-phone-rotary"></i> 355 Contact Us 356 </a> 357 </li> 358 359 360 361 </ul> 362 </li> 363 364 365 <li> 366 <a href="/Cms/Spaces/CCC/How+to+Join+the+Club" data-caption="How to Join" > 367 <i class="fa-fw far fa-user-plus"></i> 368 How to Join 369 </a> 370 </li> 371 372 373 <li> 374 <a href="/Cms/Spaces/CCC/Courses" data-caption="Courses" > 375 <i class="fa-fw fas fa-bullhorn"></i> 376 Courses 377 </a> 378 </li> 379 380 381 <li> 382 <a href="/Cms/Spaces/CCC/Juniors" data-caption="Juniors" > 383 <i class="fa-fw fas fa-child"></i> 384 Juniors 385 </a> 386 </li> 387 388 389 <li> 390 <a href="/Cms/Spaces/CCC/Information+for+Members" data-caption="Member Info" > 391 <i class="fa-fw fas fa-users"></i> 392 Member Info 393 </a> 394 </li> 395 396 </ul> 397 </li> 398 </ul> 399 400 <!-- ko if: IsUserSignedIn --> 401 <p class="navbar-text navbar-right"> 402 <a href="/SignOut" alt="Sign out" title="Sign out"> 403 <i class="far fa-sign-out"></i>
404 <span class="visible-xs-inline">Sign out</span> 405 </a> 406 </p> 407 408 <ul class="nav navbar-nav navbar-right"> 409 <li class="dropdown"> 410 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 411 <i class="fas" data-bind="css: IsImpersonating()? 'fa-user-secret': 'fa-user'"></i> 412 <span data-bind="text: SignedInUserName"></span> <span class="caret"></span> 413 </a> 414 415 <ul class="dropdown-menu dropdown-menu-right" role="menu"> 416 417 <!-- Profile Menu Items --> 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 <li> 434 <a href="/UserPage#UserBookings" data-caption="My Bookings" > 435 <i class="fa-fw fas fa-calendar-day"></i> 436 My Bookings 437 </a> 438 </li> 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 <!-- Sign Out --> 466 <li role="separator" class="divider"></li> 467 <li> 468 <a href="/SignOut" alt="Sign out" title="Sign out"><i class="far fa-sign-out"></i> Sign out</a> 469 </li> 470 471 <!-- Roles --> 472 <li role="separator" class="divider"></li> 473 <li class="dropdown-header">Roles</li> 474 475 <!-- ko foreach: Roles --> 476 <li><span class="role-item" data-bind="text: Name"></span></li> 477 <!-- /ko --> 478 479 <!-- Impersonation Option --> 480 481 <!-- ko if: CanImpersonate --> 482 <li role="separator" class="divider"></li> 483 <li> 484 <a href="#" data-bind="click: impersonate"> 485 <i class="far fa-user-secret"></i> Impersonate ... 486 </a> 487 </li> 488 <li data-bind="visible: IsImpersonating"> 489 <a href="#" data-bind="click: stopImpersonating"> 490 <i class="far fa-user-slash"></i> Stop Impersonating 491 </a> 492 </li> 493 <!-- /ko --> 494 </ul> 495 </li> 496 </ul> 497 498 <p class="navbar-text navbar-right navbar-token-balance" title="Token Balance" data-bind="requiresFeature: 'TOKENS'" style="display: none"> 499 <a id="token-balance" href="/Finance/Tokens/MyTransactions"> 500 <span data-bind="text: TokenBalance"></span> 501 <span class="visible-xs-inline"> 502 Tokens 503 </span> 504 </a> 505 </p> 506 <!-- /ko --> 507 <!-- ko if: !IsUserSignedIn() --> 508 <p class="nav navbar-nav navbar-right"> 509 <a class="btn btn-default" alt="Sign in" title="Sign in" data-bind="click: signIn" href="#"><i class="far fa-sign-in"></i> Sign in</a> 510 </p> 511 <!-- /ko --> 512 513 <!-- ko if: IsUserSignedIn --> 514 <p id="cart-indicator" class="navbar-text navbar-right navbar-highlightable" data-bind="css: { 'navbar-highlight': Cart.ItemCount() }, attr: { title: Cart.ItemCount()? 'You have items in basket':'' }"> 515 <a href="/Finance/Cart" data-bind="visible: true" style="display: none"> 516 <i class="fa fa-shopping-basket"></i> 517 <span class="visible-xs-inline"> 518 Shopping Basket 519 </span> 520 </a> 521 </p> 522 523 <ul class="nav navbar-nav navbar-right"> 524 <li class="dropdown"> 525 <a href="#" class="dropdown-toggle" data-bind="dropdown: 'sticky'" role="button" aria-expanded="false"> 526 <i class="fas fa-search"></i>
527 <span class="visible-xs-inline"> 528 Search 529 </span> 530 </a> 531 532 <div class="dropdown-menu search-dropdown"> 533 <div class="input-group"> 534 <input type="text" class="form-control" placeholder="what are you looking for ...?" data-bind="value: SearchText, enterkey: search"> 535 <span class="input-group-btn"> 536 <button class="btn btn-default" type="button" data-bind="click: search"> 537 <i class="fas fa-search"></i> 538 </button> 539 </span> 540 </div> 541 542 <div class="searching-indicator" data-bind="visible: IsSearching"> 543 <i class="fas fa-spin fa-spinner"></i> Searching ... 544 </div> 545 546 <div class="search-result-groups" data-bind="foreach: SearchResults"> 547 <div data-bind="visible: !$parent.SearchCategory() || $parent.SearchCategory() === Category()"> 548 <div class="search-result-group-category" data-bind="text: Category"></div> 549 <div class="search-results" data-bind="foreach: $parent.SearchCategory() === Category()? Results(): TopResults()"> 550 <a data-bind="html: MatchingSnippet, attr: { href: URL }"></a> 551 </div> 552 <div class="clearfix"> 553 <button type="button" class="btn btn-xs btn-default search-expand-btn pull-right" 554 data-bind="visible: !$parent.SearchCategory() && Results().length > TopResults().length, 555 click: function() { $parent.SearchCategory(Category()); }"> 556 more ... 557 </button> 558 <button type="button" class="btn btn-xs btn-default search-expand-btn pull-right" 559 data-bind="visible: $parent.SearchCategory() === Category(), 560 click: function() { $parent.SearchCategory(null); }"> 561 back 562 </button> 563 </div> 564 </div> 565 </div> 566 </div> 567 </li> 568 </ul> 569 <!-- /ko --> 570 571 <p class="navbar-text navbar-right"> 572 <a href="https://www.facebook.com/CambridgeCanoeClub" title="Find us on Facebook" target="_blank"> 573 <i class="fa fa-lg fa-facebook-square"></i> 574 <span class="visible-xs-inline"> 575 Find us on Facebook 576 </span> 577 </a> 578 <a href="https://x.com/CamCanoeClub" title="Follow us on Twitter" target="_blank"> 579 <i class="fa fa-lg fa-twitter"></i> 580 <span class="visible-xs-inline"> 581 Follow us on Twitter 582 </span> 583 </a> 584 <a href="https://www.instagram.com/cambridgecanoeclub/" title="Follow us on Instagram" target="_blank"> 585 <i class="fa fa-lg fa-instagram"></i>
586 <span class="visible-xs-inline"> 587 Follow us on Instagram 588 </span> 589 </a> 590 </p> 591 592 <p class="navbar-text navbar-right" data-bind="visible: IsUserSignedIn"> 593 594 <!-- Questions - should go to the club itself --> 595 <a href="/Home/ContactUs" data-bind="visible: !IsAdministratorSecurityLevel()" title="Questions for Cambridge Canoe Club?"> 596 <i class="fa fa-question"></i> 597 <span class="visible-xs-inline">Questions?</span> 598 </a> 599 600 <!-- myClubhouse Service Desk - currently for admins only --> 601 <a href="https://simmetrics.atlassian.net/servicedesk" data-bind="visible: IsAdministratorSecurityLevel" title="myClubhouse Help and Support - Service Desk" target="_blank"> 602 <i class="fas fa-briefcase-medical"></i> 603 <span class="visible-xs-inline">Help and Support</span> 604 </a> 605 </p> 606 </div> 607 </div> 608 </nav> 609</div> 610 611<div id="impersonation-modal" class="modal fade" tabindex="-1" role="dialog"> 612 <div class="modal-dialog"> 613 <div class="modal-content"> 614 <div class="modal-header"> 615 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 616 <h4 class="modal-title">Impersonate Another User</h4> 617 </div> 618 <div class="modal-body"> 619 <div class="form-horizontal"> 620 <div class="form-group" data-bind="validationElement: User.ID"> 621 <label class="control-label col-md-3">User</label> 622 <div class="col-md-8"> 623 <input type="text" class="form-control user-control" data-bind="clubhouseAutoCompleteMulti: { value: User.ID, text: User.Name, options: { dataSource: lookupMatchingUsers, singleValue: true } }"/> 624 <span class="help-block" data-bind="validationMessage: User.ID"></span> 625 </div> 626 </div> 627 </div> 628 </div> 629 <div class="modal-footer"> 630 <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button> 631 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 632 </div> 633 </div> 634 </div> 635</div> 636 637 638 639<div id="my-todo-list-modal" class="modal fade" tabindex="-1" role="dialog"> 640 <div class="modal-dialog modal-lg"> 641 <div class="modal-content"> 642 <div class="modal-header"> 643 <button type="button" class="close" data-dismiss="modal" aria-label="Close" data-bind="click: closeModal"><span aria-hidden="true">×</span></button> 644 <h4 class="modal-title">To-do List</h4> 645 </div> 646 <div class="modal-body"> 647 <table class="table table-striped table-hover"> 648 <tbody data-bind="foreach: Items"> 649 <tr class="todo-item" data-bind="css: { 'text-muted': !AreDependenciesResolved(), resolved: IsResolved, complete: IsComplete, skipped: IsSkipped, deleted: IsDeleted }"> 650 <td class="todo-ordinal"> 651 <span> 652 <span data-bind="text: $index() + 1, visible: !IsResolved()"></span> 653 <i class="fas" data-bind="visible: IsResolved, css: { 'fa-check-circle': IsComplete(), 'fa-angle-double-right': IsSkipped() }"></i> 654 </span> 655 </td> 656 <td class="todo-detail"> 657 <h4> 658 <span data-bind="style: { 'color': Type.Colour() || 'black' }, attr: { title: Type.Name }"> 659 <i class="fa-fw" data-bind="faIcon: Type.Icon() || 'fas fa-clipboard-check'"></i> 660 </span>
661 <span data-bind="text: Name"></span> 662 </h4> 663 <p data-bind="text: Description"></p> 664 665 <div data-bind="visible: !IsResolved()"> 666 <button type="button" class="btn btn-xs btn-success" 667 data-bind="visible: HasHelpSequence() && AreDependenciesResolved(), click: runHelpSequence"> 668 Show me how! 669 </button> 670 </div> 671 672 <div class="todo-resolution" data-bind="visible: IsResolved"> 673 <strong data-bind="text: Resolution"></strong> by <strong data-bind="text: ResolvedBy.Name"></strong> at <strong data-bind="text: ResolutionTime"></strong>. 674 </div> 675 </td> 676 <td> 677 <button type="button" class="btn btn-xs btn-success" data-bind="click: markComplete, visible: CanBeManuallyResolved" title="Mark completed"> 678 <i class="fas fa-check"></i> 679 </button> 680 681 <button type="button" class="btn btn-xs btn-default" data-bind="click: skip, visible: CanBeSkipped" title="Skip"> 682 <i class="fas fa-angle-double-right"></i> 683 Skip 684 </button> 685 </td> 686 <td> 687 <button type="button" class="btn btn-xs btn-default" data-bind="click: hide, visible: CanBeHidden" title="Hide"> 688 <i class="fas fa-times"></i> 689 </button> 690 </td> 691 </tr> 692 </tbody> 693 </table> 694 695 <div class="no-content" data-bind="visible: !Items().length"> 696 You have no items in your to-do list. 697 </div> 698 </div> 699 </div> 700 </div> 701</div> 702 703 704 705 706<div class="data" id="menu-user-data"> 707 {"UserID":null,"IsUserSignedIn":false,"IsImpersonating":false,"CanImpersonate":false,"SignedInUserName":null,"IsAdministratorSecurityLevel":false,"Cart":{"ItemCount":0,"TotalCost":null},"TokenBalance":null,"Roles":[],"ShowRoles":false,"HasToDoItems":false} 708</div> 709 710<!-- This is Views/Shared/_Banner.cshtml --> 711 712 713<div class="clubhouseBanner hidden-print clearfix"> 714 <div class="clubhouseBannerBackground"> 715 <div style="background: rgb(219, 202, 51);"></div> 716 </div> 717 718 <div class="clubhouseBannerArea"> 719 <div class="clubhouseBannerContent"> 720 721 722<!-- Left-aligned image and club name --> 723<div class="left-side-by-side"> 724 <div> 725 <span class="clubhouseBannerImageLeft"> 726 727 </span> 728 729 730 </div> 731</div> 732 733 734 </div> 735 736 <div class="clubhouseBannerImageRight"> 737 738 </div> 739 </div> 740</div> 741 742<div id="client-messages" class="clubhouseMessages"> 743 744 745</div> 746</partial> 747 748<div class="container body-content"> 749 750 751 752<style type="text/css"> 753 .nav { 754 margin-bottom: 10px; 755 } 756</style> 757 758 759<div id="membership-binding"> 760 761 <div data-bind="hideOnceImagesLoaded: true"> 762 763 <div class="loader-inner ball-grid-pulse"> 764 <div></div> 765 <div></div> 766 <div></div> 767 <div></div> 768 <div></div> 769 <div></div> 770 <div></div> 771 <div></div> 772 <div></div> 773 </div> 774 775</div> 776</partial> 777 778 <div data-bind="visible: true" style="display: none;"> 779 <nav data-bind="visible: AreDiscountsAvailable"> 780 <ul class="nav nav-pills"> 781 <li role="presentation" class="active"> 782 <a href="#Categories">Membership Categories</a> 783 </li> 784 <li role="presentation" class="active"> 785 <a href="#Discounts">Discounts</a> 786 </li> 787 </ul> 788 </nav> 789 790 <a name="Categories"></a> 791 <h2 class="form-header"> 792 Membership Categories 793 </h2> 794 <p class="help-block"> 795 This page shows the available Membership categories and rates. 796 </p> 797 798 <div data-bind="foreach: Groups"> 799 <h3 class="form-header" data-bind="text: Title"></h3> 800 801 <div class="table-stacked"> 802 <table class="table table-bordered table-striped table-condensed"> 803 <thead> 804 <tr> 805 <th class="col-md-8">Category</th> 806 <th class="money-column" data-bind="visible: $root.ShowJoiningFee"> 807 Joining Fee 808 </th> 809 <th class="money-column"> 810 Cost 811 </th> 812 <th class="money-column money-column-xl" data-bind="visible: $root.ShowEarlyPaymentCost"> 813 Early Payment Cost 814 </th> 815 <th class="money-column" data-bind="visible: $root.ShowTokenReward"> 816 Token Award 817 </th> 818 </tr> 819 </thead> 820 <tbody data-bind="foreach: Memberships"> 821 <tr> 822 <td data-title="Category">
823 <span class="category-name" data-bind="text: Category.Name"></span> 824 <p><small data-bind="text: Category.Description"></small></p> 825 <div class="text-warning" data-bind="visible: Category.Restrictions"> 826 <i class="fas fa-exclamation-triangle"></i> 827 <span data-bind="text: Category.Restrictions"></span> 828 </div> 829 </td> 830 <td data-title="Joining Fee" class="money-column" data-bind="visible: $root.ShowJoiningFee, text: JoiningFee.InclTax.Formatted"></td> 831 <td data-title="Cost" class="money-column"> 832 <div data-bind="text: Cost.InclTax.Formatted"></div> 833 <div class="text-muted" data-bind="text: DurationDescription"></div> 834 </td> 835 <td data-title="Early Payment" class="money-column" data-bind="visible: $root.ShowEarlyPaymentCost"> 836 <div data-bind="visible: HasEarlyPaymentOption"> 837 <div data-bind="text: EarlyPaymentCost.InclTax.Formatted"></div> 838 <div> 839 <span>deadline </span> <strong data-bind="text: EarlyPaymentDeadlineDaysAbs"></strong> days 840 <strong> 841 <span data-bind="text: EarlyPaymentDeadlineDays() >= 0? 'before': 'after'"></span> 842 </strong> 843 <span>start.</span> 844 </div> 845 <div data-bind="visible: EarlyPaymentOnRenewalsOnly"><strong>Renewals only.</strong></div> 846 </div> 847 </td> 848 <td data-title="Token Award" class="money-column" data-bind="visible: $root.ShowTokenReward, text: TokenReward"></td> 849 </tr> 850 </tbody> 851 </table> 852 </div> 853 854 <div data-bind="foreach: Sections"> 855 <h4 class="form-header" data-bind="text: Section.Name"></h4> 856 857 <div class="table-stacked"> 858 <table class="table table-bordered table-striped table-condensed"> 859 <thead> 860 <tr> 861 <!-- ko if: AnyWithCoreRequirements --> 862 <th class="col-md-4">Category</th> 863 <th class="col-md-4">Requires</th> 864 <!-- /ko --> 865 <!-- ko if: !AnyWithCoreRequirements() --> 866 <th class="col-md-8">Category</th> 867 <!-- /ko --> 868 <th class="money-column" data-bind="visible: $root.ShowJoiningFee"> 869 Joining Fee 870 </th> 871 <th class="money-column"> 872 Cost 873 </th> 874 <th class="money-column money-column-xl" data-bind="visible: $root.ShowEarlyPaymentCost"> 875 Early Payment Cost 876 </th> 877 <th class="money-column" data-bind="visible: $root.ShowTokenReward"> 878 Token Award 879 </th> 880 </tr> 881 </thead> 882 <tbody data-bind="foreach: Memberships"> 883 <tr> 884 <td data-title="Category"> 885 <span class="category-name" data-bind="text: Category.Name"></span> 886 <p><small data-bind="text: Category.Description"></small></p> 887 <div class="text-warning" data-bind="visible: Category.Restrictions"> 888 <i class="fas fa-exclamation-triangle"></i>
889 <span data-bind="text: Category.Restrictions"></span> 890 </div> 891 </td> 892 <td data-title="Requires" data-bind="visible: $parent.AnyWithCoreRequirements"> 893 <div data-bind="visible: Category.CoreCategories().length"> 894 <p>One of:</p> 895 <ul data-bind="foreach: Category.CoreCategories"> 896 <li data-bind="text: Name"></li> 897 </ul> 898 </div> 899 </td> 900 <td data-title="Joining Fee" class="money-column" data-bind="visible: $root.ShowJoiningFee, text: JoiningFee.InclTax.Formatted"></td> 901 <td data-title="Cost" class="money-column"> 902 <div data-bind="text: Cost.InclTax.Formatted"></div> 903 <div class="text-muted" data-bind="text: DurationDescription"></div> 904 </td> 905 <td data-title="Early Payment" class="money-column" data-bind="visible: $root.ShowEarlyPaymentCost"> 906 <div data-bind="visible: HasEarlyPaymentOption"> 907 <div data-bind="visible: EarlyPaymentCost.InclTax.Formatted"></div> 908 <div> 909 <span>deadline </span> <strong data-bind="text: EarlyPaymentDeadlineDaysAbs"></strong> days 910 <strong> 911 <span data-bind="text: EarlyPaymentDeadlineDays() >= 0? 'before': 'after'"></span> 912 </strong> 913 <span>start.</span> 914 </div> 915 <div data-bind="visible: EarlyPaymentOnRenewalsOnly"><strong>Renewals only.</strong></div> 916 </div> 917 </td> 918 <td data-title="Token Award" class="money-column" data-bind="visible: $root.ShowTokenReward, text: TokenReward"></td> 919 </tr> 920 </tbody> 921 </table> 922 </div> 923 </div> 924 925 </div> 926 927 <div data-bind="visible: AreDiscountsAvailable"> 928 <a name="Discounts"></a> 929 <h2 class="form-header">Discounts</h2> 930 <p> 931 The following discounts are currently available: 932 </p> 933 934 <div class="table-stacked"> 935 <table class="table table-bordered table-striped table-condensed"> 936 <thead> 937 <tr> 938 <th class="id-column">ID</th> 939 <th>Code</th> 940 <th>Description</th> 941 <th>Discount</th> 942 <th>Expiry Date</th> 943 <th>No. of Items</th> 944 <th>Criteria</th> 945 </tr> 946 </thead> 947 <tbody data-bind="foreach: Discounts"> 948 <tr> 949 <td data-title="ID" class="id-column" data-bind="text: ID"></td> 950 <td data-title="Code" data-bind="text: Code"></td> 951 <td data-title="Description" data-bind="text: Description"></td> 952 <td data-title="Discount" data-bind="text: DiscountDescription"></td> 953 <td data-title="Expiry Date" data-bind="text: ExpiryDate"></td> 954 <td data-title="No. of Items" data-bind="text: NumberOfItems"></td> 955 <td data-title="Criteria"> 956 <ul data-bind="foreach: DiscountCriteria"> 957 <li data-bind="text: Description"></li> 958 </ul> 959 </td> 960 </tr> 961 </tbody> 962 </table> 963 </div> 964 </div> 965 </div> 966</div> 967 968<div id="membership-data" class="data"> 969 {"Groups":[{"Title":"Current Membership Rates","ValidFrom":"2026-09-28T00:00:00","Memberships":[{"ID":1,"Name":"Adult Membership","Description":"Adult Membership - Annual","DescriptionWithValidity":"Adult Membership - Annual","Category":{"ID":1,"Name":"Adult Membership","Description":"Membership for a single adult","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"IsVATRegistered":false,"Formatted":"£85.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":9,"Name":"Boat Racking","Description":"Boat Racking","DescriptionWithValidity":"Boat Racking","Category":{"ID":7,"Name":"Boat Racking","Description":"Select this subscription to apply for a boat racking space.","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":null,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":true,"StartDate":"User selects: ","EndDate":"Linked duration","DurationUnits":null,"Duration":null,"DurationFormatted":"Linked","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[{"ID":1,"Name":"Adult Membership","Description":"Membership for a single adult","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people aged 18 or over."},{"ID":5,"Name":"Junior Membership","Description":"Membership for individuals under 18 years of age","RoleWhenActive":{"ID":7,"Name":"Member"},"MinimumAge":null,"MaximumAge":18,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people up to the age of 18."},{"ID":4,"Name":"Student/Concession Membership","Description":"Membership at a reduced rate, available to people in full-time education, on low wage or out-of-work benefits. ","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":26,"Restrictions":"Only available to people aged 18 or over."}],"CoreCategoryIDs":[1,5,4],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":11,"Restrictions":null},"IsLinked":true,"LinkedCategories":[{"ID":1,"Name":"Adult Membership"},{"ID":5,"Name":"Junior Membership"},{"ID":4,"Name":"Student/Concession Membership"}],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":80.0000,"Formatted":"£80.00","FormattedNoSymbol":"80.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":80.0000,"Formatted":"£80.00","FormattedNoSymbol":"80.00"},"IsVATRegistered":false,"Formatted":"£80.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"Dates aligned with core membership","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":13,"Name":"Clubhouse Keyholder","Description":"Clubhouse Keyholder","DescriptionWithValidity":"Clubhouse Keyholder","Category":{"ID":11,"Name":"Clubhouse Keyholder","Description":"Request this subscription to apply for a clubhouse key","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":true,"StartDate":"User selects: ","EndDate":"Linked duration","DurationUnits":null,"Duration":null,"DurationFormatted":"Linked","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[{"ID":1,"Name":"Adult Membership","Description":"Membership for a single adult","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people aged 18 or over."},{"ID":4,"Name":"Student/Concession Membership","Description":"Membership at a reduced rate, available to people in full-time education, on low wage or out-of-work benefits. ","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":26,"Restrictions":"Only available to people aged 18 or over."}],"CoreCategoryIDs":[1,4],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":13,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":true,"LinkedCategories":[{"ID":1,"Name":"Adult Membership"},{"ID":4,"Name":"Student/Concession Membership"}],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":true,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":20.0000,"Formatted":"£20.00","FormattedNoSymbol":"20.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":20.0000,"Formatted":"£20.00","FormattedNoSymbol":"20.00"},"IsVATRegistered":false,"Formatted":"£20.00"},"Cost":{"ExclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"IsVATRegistered":false,"Formatted":"£0.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"Dates aligned with core membership","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":11,"Name":"Day Membership for Guests","Description":"Day Membership for Guests - day","DescriptionWithValidity":"Day Membership for Guests - day","Category":{"ID":9,"Name":"Day Membership for Guests","Description":"If you want to bring guests to the club, you need to purchase day-membership for each guest.","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"Specific Date","EndDate":"day duration","DurationUnits":"D","Duration":1,"DurationFormatted":"day","IsTemporary":true,"RequiresApproval":false,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":12,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":true,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":6.0000,"Formatted":"£6.00","FormattedNoSymbol":"6.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":6.0000,"Formatted":"£6.00","FormattedNoSymbol":"6.00"},"IsVATRegistered":false,"Formatted":"£6.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"day","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":7,"Name":"Junior Membership","Description":"Junior Membership - Annual","DescriptionWithValidity":"Junior Membership - Annual","Category":{"ID":5,"Name":"Junior Membership","Description":"Membership for individuals under 18 years of age","RoleWhenActive":{"ID":7,"Name":"Member"}
969,"MinimumAge":null,"MaximumAge":18,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people up to the age of 18."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"IsVATRegistered":false,"Formatted":"£50.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":6,"Name":"Student/Concession Membership","Description":"Student/Concession Membership - Annual","DescriptionWithValidity":"Student/Concession Membership - Annual","Category":{"ID":4,"Name":"Student/Concession Membership","Description":"Membership at a reduced rate, available to people in full-time education, on low wage or out-of-work benefits. ","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":26,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"IsVATRegistered":false,"Formatted":"£50.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":10,"Name":"Supporter","Description":"Supporter - 3 years","DescriptionWithValidity":"Supporter - 3 years","Category":{"ID":8,"Name":"Supporter","Description":"Support Cambridge Canoe Club, especially the build of the clubhouse extension.\nThis subscription itself does not cost anything, but you can add \u0022add-ons\u0022 to donate.","RoleWhenActive":{"ID":9,"Name":"Registered"}
969,"MinimumAge":null,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"3 years duration","DurationUnits":"Y","Duration":3,"DurationFormatted":"3 years","IsTemporary":false,"RequiresApproval":false,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":null},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":true,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"IsVATRegistered":false,"Formatted":"£0.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"3 years","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":3,"Name":"Family Membership","Description":"Family Membership - Annual","DescriptionWithValidity":"Family Membership - Annual","Category":{"ID":3,"Name":"Family Membership","Description":"For families with both parents and one or more chidren all living at the same address","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":true,"GroupsCanHaveNames":true,"GroupsRequireNames":false,"GroupNameTerm":"Multiple parent family","FormID":null,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":170.0000,"Formatted":"£170.00","FormattedNoSymbol":"170.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":170.0000,"Formatted":"£170.00","FormattedNoSymbol":"170.00"},"IsVATRegistered":false,"Formatted":"£170.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":8,"Name":"Single-Parent Family Membership","Description":"Single-Parent Family Membership - Annual","DescriptionWithValidity":"Single-Parent Family Membership - Annual","Category":{"ID":6,"Name":"Single-Parent Family Membership","Description":"For families with a single parent and one or more chidren all living at the same address","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":true,"GroupsCanHaveNames":true,"GroupsRequireNames":false,"GroupNameTerm":"Multiple parent family","FormID":null,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"IsVATRegistered":false,"Formatted":"£85.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null}],"Sections":[],"HorseMemberships":[]}],"ShowEarlyPaymentCost":false,"ShowJoiningFee":true,"ShowVATLabel":false,"ShowTokenReward":false,"AreDiscountsAvailable":false,"Discounts":[]} 970</div> 971 972 973 <!-- Commonly used modals and Knockout templates --> 974<div id="areyousure-modal" class="modal fade"> 975 <div class="modal-dialog"> 976 <div class="modal-content"> 977 <div class="modal-header"> 978 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 979 <h4 class="modal-title">Are you sure?</h4> 980 </div> 981 <div class="modal-body"> 982 <p></p> 983 </div> 984 <div class="modal-footer"> 985 <button type="button" class="btn btn-danger no-button" data-dismiss="modal">No</button> 986 <button type="button" class="btn btn-success yes-button" data-dismiss="modal">Yes</button> 987 </div> 988 </div> 989 </div> 990</div> 991</partial> 992<div id="message-requiring-ok-modal" class="modal fade"> 993 <div class="modal-dialog"> 994 <div class="modal-content"> 995 <div class="modal-header"> 996 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 997 <h4 class="modal-title"></h4> 998 </div> 999 <div class="modal-body"> 1000 <p></p> 1001 </div> 1002 <div class="modal-footer"> 1003 <button type="button" class="btn btn-primary ok-button" data-dismiss="modal">OK</button> 1004 </div> 1005 </div> 1006 </div> 1007</div> 1008</partial> 1009<div id="alert-messages" class="clubhouseMessages modal fade"> 1010 1011 <div class="modal-dialog"> 1012 1013 <!-- Databound class --> 1014 <div class="modal-content" data-bind="css: CssClass"> 1015 1016 <div class="modal-header" data-bind="visible: ShowHeader"> 1017 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1018 1019 <div role="alert" data-bind="visible: Title"> 1020 <h4 class="modal-title"> 1021 <!-- Databound Title -->
1022 <span data-bind="text: Title"></span> 1023 </h4> 1024 </div> 1025 </div> 1026 1027 <div class="modal-body" data-bind="visible: Text"> 1028 <div role="alert"> 1029 <!-- Databound Text --> 1030 <span data-bind="html: Text"></span> 1031 </div> 1032 </div> 1033 1034 <div class="modal-footer" data-bind="visible: ShowFooter"> 1035 <button id="messageModalOKBtn" type="button" class="btn btn-primary ok-btn" data-dismiss="modal">OK</button> 1036 </div> 1037 1038 </div> 1039 </div> 1040</div></partial> 1041<div id="simple-question-modal" class="modal fade" tabindex="-1" role="dialog"> 1042 <div class="modal-dialog"> 1043 <div class="modal-content"> 1044 <div class="modal-header"> 1045 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1046 <h4 class="modal-title" data-bind="text: Title"></h4> 1047 </div> 1048 <div class="modal-body"> 1049 <div> 1050 <div class="form-group"> 1051 <span class="help-block" data-bind="text: Question"></span> 1052 </div> 1053 <div class="form-group" data-bind="validationElement: Answer"> 1054 <label class="control-label" data-bind="text: AnswerLabel"></label> 1055 <input type="text" class="form-control" data-bind="value: Answer" maxlength="400" /> 1056 <span class="help-block" data-bind="validationMessage: Answer"></span> 1057 </div> 1058 </div> 1059 </div> 1060 <div class="modal-footer"> 1061 <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button> 1062 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 1063 </div> 1064 </div> 1065 </div> 1066</div> 1067 1068 1069 1070</partial> 1071 1072 1073<div id="messageme-modal" class="modal fade"> 1074 <div class="modal-dialog modal-lg"> 1075 <div class="modal-content"> 1076 <div class="modal-header"> 1077 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1078 <h4 class="modal-title"><i class="fa fa-envelope"></i> Message Me</h4> 1079 </div> 1080 <div class="modal-body"> 1081 1082 <p> 1083 Use this form to send an email to another member. You may only send to one member at a time. 1084 Your registered email address will be passed on to this member but you may also include alternative contact details. 1085 </p> 1086 <p> 1087 Note: Emails sent via the website are not entirely private. A copy of every email is held on the database and this can be 1088 accessed by certain club administrators using the Sent Emails page. 1089 </p> 1090 1091 <div class="form form-horizontal form-condensed"> 1092 1093 <div class="form-group"> 1094 <label class="control-label col-md-3">To</label> 1095 <div class="col-md-8"> 1096 <p class="form-control-static" data-bind="text: To"></p> 1097 </div> 1098 </div> 1099 <div class="form-group"> 1100 <label class="control-label col-md-3">From</label> 1101 <div class="col-md-8"> 1102 <p class="form-control-static"></p> 1103 </div> 1104 </div> 1105 1106 <div class="form-group" data-bind="css: { 'has-error': AlternativeEmail.error() !== null }"> 1107 <label class="control-label col-md-3">Alternative contact email</label> 1108 <div class="col-md-8"> 1109 <input type="email" class="form-control" data-bind="value: AlternativeEmail, enterkey: send" maxlength="100" autofocus="true" />
1110 <span class="help-block">Another email address which the recipient can use to contact you.</span> 1111 </div> 1112 </div> 1113 1114 <div class="form-group" data-bind="css: { 'has-error': AlternativeContact.error() !== null }"> 1115 <label class="control-label col-md-3">Alternative contact details</label> 1116 <div class="col-md-8"> 1117 <input type="email" class="form-control" data-bind="value: AlternativeContact, enterkey: send" maxlength="200" /> 1118 <span class="help-block">Other contact details which the recipient can use to contact you e.g. phone number.</span> 1119 </div> 1120 </div> 1121 1122 <div class="form-group" data-bind="css: { 'has-error': Subject.error() !== null }"> 1123 <label class="control-label col-md-3">Subject</label> 1124 <div class="col-md-8"> 1125 <input type="text" class="form-control" data-bind="value: Subject, enterkey: send" maxlength="200"/> 1126 <span class="help-block"></span> 1127 </div> 1128 </div> 1129 1130 <!-- HTML Editor for Message Body --> 1131 <div class="form-group" data-bind="css: { 'has-error': MessageBody.error() !== null }"> 1132 <label class="control-label col-md-3">Message</label> 1133 1134 <div class="col-md-8"> 1135 <div> 1136 <div data-bind="component: { name: 'html-editor', 1137 params: { 1138 content: MessageBody, 1139 options: { 1140 minHeight: '300px', 1141 maxHeight: '300px', 1142 tabKey: false, 1143 plugins: ['alignment','fontcolor','fontsize','inlinestyle','source'], 1144 styles: true, 1145 stylesClass: 'redactor-styles mail-preview' 1146 } } }"></div> 1147 <span class="help-block" data-bind="validationMessage: MessageBody, visible: MessageBody.error() !== null "></span> 1148 </div> 1149 </div> 1150 </div> 1151 1152 <div class="form-group"> 1153 <div class="col-md-offset-3 col-md-8"> 1154 <div class="checkbox"> 1155 <label> 1156 <input type="checkbox" data-bind="checked: CopyToSender, enterkey: send" /> 1157 Copy this message to my email address 1158 </label> 1159 </div> 1160 </div> 1161 </div> 1162 </div> 1163 </div> 1164 1165 <div class="modal-footer"> 1166 <button type="button" class="btn btn-primary btn-success" data-bind="click: send">Send</button> 1167 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 1168 </div> 1169 </div> 1170 </div> 1171</div></partial> 1172<div data-bind="stopBindings: true"> 1173 <div id="viewconfig-edit-modal" class="modal fade" tabindex="-1" role="dialog"> 1174 <div class="modal-dialog"> 1175 <div class="modal-content"> 1176 <div class="modal-header"> 1177 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1178 <h4 class="modal-title">Save View Configuration</h4> 1179 </div> 1180 <div class="modal-body"> 1181 <div class="form-horizontal"> 1182 <div class="form-group" data-bind="validationElement: Name"> 1183 <label class="control-label col-md-3">Name</label> 1184 <div class="col-md-8"> 1185 <input type="text" class="form-control" data-bind="value: Name" />
1186 <span class="help-block" data-bind="validationMessage: Name"></span> 1187 </div> 1188 </div> 1189 <div class="form-group" data-bind="validationElement: Description"> 1190 <label class="control-label col-md-3">Description</label> 1191 <div class="col-md-8"> 1192 <textarea class="form-control" data-bind="value: Description" rows="3"></textarea> 1193 <span class="help-block" data-bind="validationMessage: Description"></span> 1194 </div> 1195 </div> 1196 <div class="form-group" data-bind="validationElement: Code"> 1197 <label class="control-label col-md-3">Code</label> 1198 <div class="col-md-8"> 1199 <input type="text" class="form-control" data-bind="value: Code" /> 1200 <span class="help-block" data-bind="validationMessage: Code"></span> 1201 <span class="help-block"> 1202 The code is used in the URL of the page to identify the view to be displayed. 1203 It should be a short text value. 1204 </span> 1205 </div> 1206 </div> 1207 <div class="form-group" data-bind="validationElement: Owner.ID"> 1208 <label class="col-md-3 control-label">Owner</label> 1209 <div class="col-md-8"> 1210 <input type="text" class="form-control user-control" data-bind="clubhouseAutoCompleteMulti: { value: Owner.ID, text: Owner.Name, options: { dataSource: lookupMatchingUsers, singleValue: true } }"/> 1211 <span class="help-block" data-bind="validationMessage: Owner.ID"></span> 1212 </div> 1213 </div> 1214 <div class="form-group"> 1215 <label class="col-md-3 control-label">Share with</label> 1216 <div class="col-md-8"> 1217 <input type="text" data-bind="clubhouseAutoCompleteMulti: { value: Shares, options: { dataSource: lookupMatchingShareOptions } }" /> 1218 <span class="help-block"> 1219 Select the members, roles, security levels or member lists with which you wish to share the view config. 1220 </span> 1221 </div> 1222 </div> 1223 <div class="form-group" data-bind="visible: CanSetDefaultForShares() && Shares().length"> 1224 <label class="control-label col-md-3">Set as Default</label> 1225 <div class="col-md-8"> 1226 <div data-bind="component: { name: 'radio-group', params: { Value: IsDefaultForShares, Options: [ true, false ] } }"></div> 1227 <p class="help-block"> 1228 If set, then this will be the default view for those people with whom it is shared, unless they 1229 have set their own personal default. 1230 </p> 1231 </div> 1232 </div> 1233 </div> 1234 </div> 1235 <div class="modal-footer"> 1236 <button type="button" class="btn btn-primary" data-bind="click: onOK">OK</button> 1237 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 1238 </div> 1239 </div> 1240 </div> 1241 </div> 1242</div> 1243 1244</partial> 1245<style type="text/css"> 1246 .selector-panel > div { 1247 overflow-y: scroll; 1248 height: 500px; 1249 } 1250 1251 .styles-panel { 1252 padding-bottom: 10px; 1253 margin-bottom: 10px; 1254 border-bottom: 1px solid #ddd; 1255 } 1256 1257 .search-control { 1258 margin-bottom: 20px; 1259 } 1260 1261 .icon-panel .row { 1262 margin-bottom: 10px; 1263 } 1264 1265 .icon-option { 1266 height: 80px; 1267 text-align: center; 1268 padding: 5px; 1269 cursor: pointer; 1270 } 1271 1272 .icon-option:hover { 1273 background-color: lightblue; 1274 } 1275 1276 .icon-label { 1277 margin-top: 5px; 1278 } 1279</style> 1280 1281<div id="icon-select-modal" class="modal fade"> 1282 <div class="modal-dialog modal-lg"> 1283 <div class="modal-content"> 1284 <div class="modal-header"> 1285 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1286 <h4 class="modal-title">Choose an Icon</h4> 1287 </div> 1288 <div class="modal-body"> 1289 <div class="clearfix"> 1290 <div class="col-md-3 selector-panel"> 1291 <div> 1292 <div class="styles-panel"> 1293 <div class="checkbox"> 1294 <label> 1295 <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'solid'" /> Solid 1296 </label> 1297 </div> 1298 <div class="checkbox"> 1299 <label> 1300 <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'regular'" /> Regular 1301 </label> 1302 </div> 1303 <div class="checkbox"> 1304 <label> 1305 <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'light'" /> Light 1306 </label> 1307 </div> 1308 <div class="checkbox"> 1309 <label> 1310 <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'duotone'" /> Duotone 1311 </label> 1312 </div> 1313 <div class="checkbox"> 1314 <label> 1315 <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'brands'" /> Brands 1316 </label> 1317 </div> 1318 </div> 1319 1320 <div data-bind="foreach: Categories"> 1321 <div class="checkbox"> 1322 <label> 1323 <input type="checkbox" data-bind="checked: $parent.SelectedCategories, checkedValue: id" />
1324 <span data-bind="text: label"></span> 1325 </label> 1326 </div> 1327 </div> 1328 </div> 1329 </div> 1330 1331 <div class="col-md-9 icon-panel"> 1332 <div> 1333 <div class="input-group search-control"> 1334 <input type="text" class="form-control" placeholder="Search for..." data-bind="textInput: SearchString"> 1335 <span class="input-group-btn"> 1336 <button class="btn btn-default" type="button"> 1337 <i class="far fa-search"></i> 1338 </button> 1339 </span> 1340 </div> 1341 </div> 1342 1343 <div data-bind="foreach: DisplayedIconRows"> 1344 <div class="row" data-bind="foreach: $data"> 1345 <div class="col-md-3 icon-option" data-bind="click: select"> 1346 <div> 1347 <i class="fa-3x" data-bind="css: CssClass"></i> 1348 </div> 1349 <div class="icon-label" data-bind="text: label"></div> 1350 </div> 1351 </div> 1352 </div> 1353 1354 <div class="no-content" data-bind="visible: !DisplayedIconRows().length"> 1355 No matching icons. 1356 </div> 1357 1358 <nav aria-label="Page navigation" data-bind="visible: DisplayedIconRows().length"> 1359 <ul class="pagination"> 1360 <li> 1361 <a href="#" aria-label="Previous" data-bind="click: previousPage"> 1362 <span aria-hidden="true">«</span> 1363 </a> 1364 </li> 1365 <!-- ko foreach: Pages --> 1366 <li data-bind="css: { active: $data === $parent.PageIndex() }"> 1367 <a href="#" data-bind="text: $data + 1, click: $parent.PageIndex"></a> 1368 </li> 1369 <!-- /ko --> 1370 <li> 1371 <a href="#" aria-label="Next" data-bind="click: nextPage"> 1372 <span aria-hidden="true">»</span> 1373 </a> 1374 </li> 1375 </ul> 1376 </nav> 1377 </div> 1378 </div> 1379 </div> 1380 <div class="modal-footer"> 1381 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 1382 </div> 1383 </div> 1384 </div> 1385</div> 1386 1387</partial> 1388 1389<div data-bind="stopBindings: true"> 1390 <div id="document-edit-modal" class="modal fade"> 1391 <div class="modal-dialog modal-lg"> 1392 <div class="modal-content"> 1393 <div class="modal-header"> 1394 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1395 <h4 class="modal-title"> 1396 Edit Document 1397 <span data-bind="visible: User.ID"> 1398 for <span data-bind="text: User.Name"></span> 1399 </span> 1400 </h4> 1401 </div> 1402 <div class="modal-body"> 1403 <div class="alert alert-warning" data-bind="visible: !DiskSpace.IsSpaceAvailable()" style="display: none"> 1404 <i class="fa fa-warning"></i> <strong>Out of disk space!</strong> 1405 Sorry, your directory is full. You are using <span data-bind="text: DiskSpace.UsedDiskSpace"></span>MB out of <span data-bind="text: DiskSpace.DiskSpaceLimit"></span>MB of allocated disk space. 1406 Please delete some documents or purchase extra disk space from your vendor. 1407 </div> 1408 1409 <div class="alert alert-info" data-bind="visible: DiskSpace.IsSpaceAvailable()" style="display: none"> 1410 <i class="fa fa-info-circle"></i> 1411 You are currently using <span data-bind="text: DiskSpace.UsedDiskSpace"></span>MB out of <span data-bind="text: DiskSpace.DiskSpaceLimit"></span>MB of allocated disk space. 1412 </div> 1413 1414 <form class="form-horizontal"> 1415 <div class="form-group" data-bind="visible: ID()>0"> 1416 <label class="col-md-3 control-label">ID</label> 1417 <div class="col-md-7"> 1418 <p class="form-control-static" data-bind="text: ID"></p> 1419 </div> 1420 </div> 1421 1422 <!-- validationElement: knockout validation, mostly set up in the js viewmodel --> 1423 <div class="form-group" data-bind="validationElement: Title"> 1424 <label class="col-md-3 control-label">Title</label> 1425 <div class="col-md-7"> 1426 <input name="Title" type="text" class="form-control" data-bind="value: Title, enterkey: onOk" maxlength="50" autofocus="true" />
1427 <span class="help-block" data-bind="validationMessage: Title"></span> 1428 </div> 1429 </div> 1430 1431 <div class="form-group" data-bind="validationElement: Description"> 1432 <label class="col-md-3 control-label">Description</label> 1433 <div class="col-md-7"> 1434 <textarea class="form-control" rows="3" data-bind="value: Description" maxlength="500"></textarea> 1435 <span class="help-block" data-bind="validationMessage: Description"></span> 1436 </div> 1437 </div> 1438 1439 <!-- ko if: UploadType() === "Document" --> 1440 <div data-bind="component: { name: 'entity-entitlements', params: Entitlements }"></div> 1441 1442 <div class="form-group" data-bind="validationElement: CategoryCount"> 1443 <label class="col-md-3 control-label">Categories</label> 1444 <div class="col-md-7"> 1445 <div class="form-inline"> 1446 <div class="inline-component" data-bind="component: { name: 'dropdown-checkbox-list', params: { Selection: CategoryIDs, OptionSet: 'DocumentCategories', OptionText: 'FullPath' } }"></div> 1447 <button type="button" class="btn btn-xs btn-success" data-bind="click: addCategory"> 1448 <i class="fa fa-plus"></i> 1449 </button> 1450 </div> 1451 <span class="help-block" data-bind="validationMessage: CategoryCount"></span> 1452 </div> 1453 </div> 1454 <!-- /ko --> 1455 1456 <div class="form-group" data-bind="validationElement: FileData().file"> 1457 <label class="col-md-3 control-label">File</label> 1458 <div class="col-md-7"> 1459 <div class="form-inline mb-10"> 1460 1461 <div data-bind="component: { 1462 name: 'radio-group', 1463 params: { 1464 Value: IsNewUpload, 1465 Options: [ 1466 { ID: false, Name: 'Keep Existing' , Icon: 'far fa-cloud' }, 1467 { ID: true, Name: 'New File', Icon: 'far fa-cloud-upload' } 1468 ], 1469 OptionsValue: 'ID', OptionsText: 'Name', OptionsIcon: 'Icon', 1470 Enable: CanUpload() && DiskSpace.IsSpaceAvailable() && LastUpload() != null 1471 } 1472 }"></div> 1473 1474 <div class="form-inline mb-10 mt-10" data-bind="visible: !IsNewUpload()"> 1475 <span data-bind="html: LastUpload"></span> 1476 <em data-bind="visible: !LastUpload()">(no previous upload)</em> 1477 </div> 1478 1479 <div class="form-inline mb-10 mt-10" data-bind="visible: IsNewUpload"> 1480 <div class="form-inline mb-10"> 1481 <div data-bind="attr: {title: !CanUpload() ? 'You do not have permission to upload documents' : !DiskSpace.IsSpaceAvailable() ? 'No disk space' : ''}"> 1482 <input type="file" data-bind="enable: CanUpload() && DiskSpace.IsSpaceAvailable(), fileInput: FileData, customFileInput: { buttonClass: CanUpload() && DiskSpace.IsSpaceAvailable() ? 'btn btn-primary' : 'btn btn-primary disabled', fileNameClass: 'form-control'}" /> 1483 </div>
1484 <span class="text-danger help-block" data-bind="validationMessage: FileData().file"></span> 1485 </div> 1486 <div class="progress" data-bind="visible: !IsScanning()"> 1487 <div class="progress-bar" role="progressbar" data-bind="style: { width: UploadProgress() + '%' }, attr: { 'aria-valuenow': UploadProgress }, text: UploadProgress() + '%'" 1488 aria-valuemin="0" aria-valuemax="100"> 1489 </div> 1490 </div> 1491 <div class="text-muted mt-5" data-bind="visible: IsScanning"> 1492 <i class="fa fa-spin fa-shield-virus"></i> Scanning file for viruses… 1493 </div> 1494 </div> 1495 1496 <span class="text-danger help-block" data-bind="visible: !CanUpload()">You do not have permission to upload documents.</span> 1497 <span class="text-danger help-block" data-bind="visible: CanUpload() && !DiskSpace.IsSpaceAvailable()">You cannot upload new documents because you are out of disk space.</span> 1498 1499 </div> 1500 </div> 1501 </div> 1502 1503 </form> 1504 </div> 1505 <div class="modal-footer"> 1506 <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button> 1507 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 1508 </div> 1509 </div> 1510 </div> 1511 </div> 1512</div> 1513 1514</partial> 1515<div data-bind="stopBindings: true"> 1516 <div id="document-category-edit-modal" class="modal fade"> 1517 <div class="modal-dialog"> 1518 <div class="modal-content"> 1519 <div class="modal-header"> 1520 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1521 <h4 class="modal-title">Edit Document Category</h4> 1522 </div> 1523 <div class="modal-body"> 1524 <div class="form-horizontal"> 1525 <div class="form-group" data-bind="visible: ID()>0"> 1526 <label class="col-md-3 control-label">ID</label> 1527 <div class="col-md-7"> 1528 <p class="form-control-static" data-bind="text: ID"></p> 1529 </div> 1530 </div> 1531 1532 <div class="form-group"> 1533 <label class="col-md-3 control-label">Parent Category</label> 1534 <div class="col-md-7"> 1535 <select class="form-control" data-bind="select2: true, value: ParentCategoryID, options: ParentCategoryOptions, optionsValue: 'ID', optionsText: 'FullPath', optionsCaption: '(top-level)'"></select> 1536 </div> 1537 </div> 1538 1539 <div class="form-group" data-bind="validationElement: Name"> 1540 <label class="col-md-3 control-label">Name</label> 1541 <div class="col-md-7"> 1542 <input type="text" class="form-control" data-bind="textInput: Name, enterkey: onOk" maxlength="200" autofocus="true"/> 1543 <span class="help-block" data-bind="validationMessage: Name"></span> 1544 </div> 1545 </div> 1546 1547 <div class="form-group" data-bind="validationElement: Description"> 1548 <label class="col-md-3 control-label">Description</label> 1549 <div class="col-md-7"> 1550 <textarea class="form-control" rows="3" data-bind="textInput: Description" maxlength="200"></textarea>
1551 <span class="help-block" data-bind="validationMessage: Description"></span> 1552 </div> 1553 </div> 1554 </div> 1555 </div> 1556 <div class="modal-footer"> 1557 <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button> 1558 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 1559 </div> 1560 </div> 1561 </div> 1562 </div> 1563</div> 1564 1565 1566</partial> 1567 1568<div id="registration-modal" class="modal fade" tabindex="-1" role="dialog"> 1569 <div class="modal-dialog modal-lg"> 1570 <div class="modal-content"> 1571 <div class="modal-header"> 1572 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1573 <h4 class="modal-title" data-bind="text: (RegistrationWizard() && RegistrationWizard().Title) || 'Register'"></h4> 1574 </div> 1575 <div class="modal-body" data-bind="if: RegistrationWizard()"> 1576 <div data-bind="component: { name: 'registration-wizard', params: { RegistrationWizard: RegistrationWizard(), IsPreviewing: IsPreviewing(), doneCallback: register } }"></div> 1577 </div> 1578 </div> 1579 </div> 1580</div> 1581 1582</partial> 1583 1584<style type="text/css"> 1585 .slot-linked-subscriptions { 1586 border-top: 1px solid #eee; 1587 margin-top: 5px; 1588 padding: 5px; 1589 } 1590 1591 .slot-linked-subscriptions div { 1592 margin: 2px 0; 1593 } 1594</style> 1595 1596<div id="registration-complete-modal" class="modal fade" tabindex="-1" role="dialog"> 1597 <div class="modal-dialog modal-lg"> 1598 <div class="modal-content"> 1599 <div class="modal-header"> 1600 <h4 class="modal-title">Registration Complete</h4> 1601 </div> 1602 <div class="modal-body"> 1603 <!-- Alerts --> 1604 <div class="alert alert-info" data-bind="visible: RegisteredUser.ID() === LoggedInUser.ID() && IsNewUser()"> 1605 <i class="fas fa-sign-in-alt"></i> 1606 You have been automatically logged in. 1607 </div> 1608 <div class="alert alert-info" data-bind="visible: FamilyGroup.ID() && IsNewUser()"> 1609 <i class="fas fa-users"></i> 1610 <strong data-bind="text: RegisteredUser.Name"></strong> has been added to family group: <strong data-bind="text: FamilyGroup.Name"></strong> 1611 </div> 1612 1613 <!-- Registration Complete Message --> 1614 <p> 1615 Registration successfully completed for <strong data-bind="text: RegisteredUser.Name"></strong>. 1616 </p> 1617 <div data-bind="html: CompletionMessage"></div> 1618 1619 <!-- Subscriptions Requested --> 1620 <div data-bind="visible: Subscriptions().length"> 1621 <h4 class="form-header"> 1622 Requested Membership Subscriptions 1623 </h4> 1624 1625 <div class="alert alert-warning" data-bind="visible: HasSubscriptionsPendingApproval"> 1626 <i class="fas fa-user-check"></i> 1627 One or more of the requested Membership applications require approval. 1628 1629 <!-- New user or related user --> 1630 <span data-bind="visible: IsRelatedUser()"> 1631 You will be emailed if your request has been approved and, at that point, you will be able to view and accept or reject 1632 the Membership offer and proceed with payment. 1633 </span> 1634 1635 <!-- Existing user has registered unrelated user --> 1636 <span data-bind="visible: !IsRelatedUser()"> 1637 <span data-bind="text: RegisteredUser.Name"></span> will be emailed once the request has been approved and, at that point, 1638 they will be able to view and accept or reject the Membership offer and proceed with payment. 1639 </span> 1640 </div> 1641 1642 <div class="alert alert-success" data-bind="visible: IsRelatedUser() && HasPaymentsInBasket()"> 1643 <div> 1644 <i class="fas fa-shopping-basket"></i> 1645 Subscriptions have been automatically approved and have been added to your basket. Please now proceed there to make payment. 1646 </div> 1647 <a class="btn btn-primary mt-10" href="/Finance/Cart"> 1648 <i class="fa fa-shopping-basket"></i> Pay for Subscriptions 1649 </a> 1650 </div> 1651 1652 <div class="table-stacked"> 1653 <table class="table"> 1654 <thead> 1655 <tr> 1656 <th>Reference</th> 1657 <th>
1657Name</th> 1658 <th>Category</th> 1659 <th>Costs</th> 1660 <th class="action-column" /> 1661 </tr> 1662 </thead> 1663 <tbody data-bind="foreach: Subscriptions"> 1664 <tr> 1665 <td data-title="Reference" data-bind="text: ReferenceNumber"></td> 1666 <td data-title="Name" data-bind="text: Name"></td> 1667 <td data-title="Category"> 1668 <span data-bind="text: MembershipCategoryName"></span> 1669 <div data-bind="html: Status.Formatted"></div> 1670 <div data-bind="html: Section.Label"></div> 1671 </td> 1672 <td> 1673 <div data-bind="visible: JoiningFee.InclTax.Value"> 1674 <strong>Joining Fee</strong> 1675 <span class="label-cost" data-bind="text: JoiningFee.InclTax.Formatted"></span> 1676 </div> 1677 <div data-bind="visible: Cost.InclTax.Value"> 1678 <strong>Cost</strong> 1679 <span class="label-cost"> 1680 <span data-bind="text: Cost.InclTax.Formatted"></span> 1681 </span> 1682 <span data-bind="visible: HasEarlyPaymentOption"> 1683 / 1684 <span class="label-cost" data-bind="attr: { title: 'Early payment discount. Deadline: ' + EarlyPaymentDeadline() + ' (inclusive)' }"> 1685 <i class="fa fa-hourglass-half"></i> 1686 <span data-bind="text: EarlyPaymentCost.InclTax.Formatted"></span> 1687 </span> 1688 </span> 1689 </div> 1690 <div data-bind="foreach: AddOns"> 1691 <div> 1692 <strong data-bind="text: Name"></strong> 1693 <span class="label-cost" data-bind="text: Cost.Cost.Formatted"></span> 1694 </div> 1695 </div> 1696 </td> 1697 <td> 1698 <a class="btn btn-xs btn-info" data-bind="attr: { href: '/Subscriptions/View?id=' + ID() }, visible: !IsGroup() && !IsLinked()"> 1699 <i class="fa fa-search"></i> View 1700 </a> 1701 1702 <a class="btn btn-xs btn-info" data-bind="attr: { href: '/Subscriptions/View?id=' + ID() }, visible: IsGroup"> 1703 <i class="fa fa-users"></i> Manage 1704 </a> 1705 </td> 1706 </tr> 1707 </tbody> 1708 </table> 1709 </div> 1710 </div> 1711 1712 <!-- Group Subscription Assignment --> 1713 <div data-bind="visible: GroupSubscriptions().length"> 1714 <h4 class="form-header"> 1715 Group Subscriptions 1716 </h4> 1717 1718 <div data-bind="foreach: GroupSubscriptions"> 1719 <h5 class="form-header" data-bind="visible: $parent.GroupSubscriptions().length > 1">
1720 <span data-bind="text: MembershipCategoryName"></span> - <span data-bind="text: User.Name"></span> 1721 <small data-bind="visible: GroupName"> 1722 <strong data-bind="text: GroupNameTerm"></strong>: <span data-bind="text: GroupName"></span> 1723 </small> 1724 </h5> 1725 <p> 1726 You have requested one or more group Membership subscriptions. You should now use the 1727 register buttons below to add additional members into the available slots. 1728 </p> 1729 1730 <div class="table-stacked"> 1731 <table class="table table-bordered"> 1732 <thead> 1733 <tr> 1734 <th class="id-column">No.</th> 1735 <th>Membership</th> 1736 <th></th> 1737 </tr> 1738 </thead> 1739 <tbody data-bind="foreach: Slots"> 1740 <tr> 1741 <td data-title="No." data-bind="text: Ordinal()+1"></td> 1742 <td data-title="Membership"> 1743 <div data-bind="visible: Assignee.ID"> 1744 <div class="assignee"> 1745 <span data-bind="text: Assignee.Name"></span> 1746 </div> 1747 <div class="assigned-category"> 1748 <span data-bind="text: AssignedMembershipCategoryName"></span> 1749 </div> 1750 1751 <div class="slot-linked-subscriptions" data-bind="foreach: LinkedSubscriptions, visible: LinkedSubscriptions().length"> 1752 <div> 1753 <span data-bind="html: Section.IconWithColour"></span> <span data-bind="text: MembershipCategoryName"></span> 1754 </div> 1755 </div> 1756 </div> 1757 <div data-bind="visible: !Assignee.ID()"> 1758 <div>One of:</div> 1759 <ul data-bind="foreach: CategoryOptions"> 1760 <li data-bind="text: Name"></li> 1761 </ul> 1762 </div> 1763 </td> 1764 <td> 1765 <div data-bind="visible: !Assignee.ID() && !$parent.IsApplicantAssigned()"> 1766 <div class="btn-group btn-group-sm" data-bind="visible: CategoryOptions().length > 1"> 1767 <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 1768 <i class="fa fa-user"></i> 1769 Assign to me 1770 <span class="caret"></span> 1771 </button> 1772 <ul class="dropdown-menu" data-bind="foreach: CategoryOptions"> 1773 <li> 1774 <a href="#" data-bind="text: Name, click: function() { $parents[1].assignToMe($parent, ID()); }"></a> 1775 </li> 1776 </ul> 1777 </div> 1778 <div data-bind="visible: CategoryOptions().length === 1"> 1779 <button type="button" class="btn btn-sm btn-primary" data-bind="click: function() { $parent.assignToMe($data, CategoryOptions()[0].ID()); }"> 1780 <i class="fa fa-user"></i> 1781 Assign to me 1782 </button> 1783 </div> 1784 1785 </div> 1786 1787 <button type="button" class="btn btn-sm btn-success" data-bind="click: $parent.assignSlot, visible: !Assignee.ID()"> 1788 <i class="fa fa-user-plus"></i> 1789 Register Another Member 1790 </button> 1791 1792 <div data-bind="visible: Assignee.ID"> 1793 <button type="button" class="btn btn-sm btn-success" data-bind="visible: CanAddLinkedSubscription, click: $parent.addLinkedSubscription"> 1794 <i class="fas fa-link"></i> Add Linked Subscription 1795 </button> 1796 </div> 1797 </td> 1798 </tr> 1799 </tbody> 1800 </table> 1801 </div> 1802 </div> 1803 </div> 1804 1805 <!-- Next Steps --> 1806 <div data-bind="visible: NextSteps().length"> 1807 <h4 class="form-header"> 1808 Next Steps 1809 </h4> 1810 1811 <div class="list-group" data-bind="foreach: NextSteps"> 1812 <a class="list-group-item" data-bind="attr: { href: FullLinkURL }"> 1813 <h4 class="list-group-item-heading"> 1814 <i data-bind="css: GlyphClass"></i>
1815 <span data-bind="text: Caption"></span> 1816 </h4> 1817 <p class="list-group-item-text" data-bind="text: Description"></p> 1818 </a> 1819 </div> 1820 </div> 1821 </div> 1822 </div> 1823 </div> 1824</div> 1825 1826 1827 1828<div id="add-linked-subscription-modal" class="modal fade" tabindex="-1" role="dialog"> 1829 <div class="modal-dialog modal-lg"> 1830 <div class="modal-content"> 1831 <div class="modal-header"> 1832 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1833 <h4 class="modal-title">Request Linked Membership</h4> 1834 </div> 1835 <div class="modal-body"> 1836 <div class="form-horizontal"> 1837 <div class="form-group" data-bind="validationElement: SelectedOption"> 1838 <label class="col-md-3 control-label">Membership Category</label> 1839 <div class="col-md-8"> 1840 <div data-bind="component: { 1841 name: 'linked-membership-category-dropdown', 1842 params: { 1843 SubscriptionID: SubscriptionID, 1844 HasOptions: HasOptions, 1845 SelectedOption: SelectedOption } }"></div> 1846 <span class="help-block" data-bind="validationMessage: SelectedOption"></span> 1847 1848 <div data-bind="if: Request()"> 1849 <!-- Cost Calculation --> 1850 <div data-bind="component: { 1851 name: 'membership-term-info', 1852 params: { 1853 TermOption: Request().TermOption } }"></div> 1854 </div> 1855 </div> 1856 </div> 1857 1858 <div data-bind="if: Request()"> 1859 <!-- Form --> 1860 <div class="mt-10" 1861 data-bind="component: { 1862 name: 'membership-request-form-entry', 1863 params: { 1864 MembershipCategoryOption: Request().MembershipCategoryOption, 1865 Form: Request().Form } }, 1866 visible: Request().Form"></div> 1867 1868 <!-- Add-ons --> 1869 <div class="mt-10 mb-10" 1870 data-bind="component: { 1871 name: 'membership-addons-selector', 1872 params: { 1873 Membership: Request
1873().Membership, 1874 IsRelatedUser: true, 1875 AddOnsOffered: Request().AddOnsOffered, 1876 SelectedAddOns: Request().AddOns } }, 1877 visible: Request().AddOnsOffered"></div> 1878 </div> 1879 </div> 1880 </div> 1881 <div class="modal-footer"> 1882 <div class="checkbox pull-left" data-bind="visible: IsAdmin"> 1883 <label> 1884 <input type="checkbox" data-bind="checked: SendEmails" /> 1885 Send Notification Emails 1886 </label> 1887 </div> 1888 1889 <button type="button" class="btn btn-primary" data-bind="click: execute">OK</button> 1890 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 1891 </div> 1892 </div> 1893 </div> 1894</div> 1895 1896</partial> 1897</partial> 1898 1899<div id="add-page-to-menu-modal" class="modal fade" tabindex="-1" role="dialog"> 1900 <div class="modal-dialog"> 1901 <div class="modal-content"> 1902 <div class="modal-header"> 1903 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 1904 <h4 class="modal-title">Add Page to Main Menu</h4> 1905 </div> 1906 <div class="modal-body"> 1907 <div class="form-horizontal"> 1908 <div class="form-group" data-bind="validationElement: URL"> 1909 <label class="control-label col-md-3">Page URL</label> 1910 <div class="col-md-8"> 1911 <input type="text" class="form-control" data-bind="value: URL" maxlength="1000" /> 1912 <span class="help-block" data-bind="validationMessage: URL"></span> 1913 </div> 1914 </div> 1915 1916 <div class="form-group" data-bind="validationElement: Caption"> 1917 <label class="control-label col-md-3">Caption</label> 1918 <div class="col-md-8"> 1919 <input type="text" class="form-control" data-bind="value: Caption" maxlength="200" /> 1920 <span class="help-block" data-bind="validationMessage: Caption"></span> 1921 </div> 1922 </div> 1923 <div class="form-group" data-bind="validationElement: Description"> 1924 <label class="control-label col-md-3">Description</label> 1925 <div class="col-md-8"> 1926 <textarea class="form-control" data-bind="value: Description" rows="3" maxlength="500"></textarea> 1927 <span class="help-block" data-bind="validationMessage: Description"></span> 1928 </div> 1929 </div> 1930 <div class="form-group" data-bind="validationElement: CustomTypeName, visible: !CmsPageID()"> 1931 <!-- Only enable Custom Type Name if this is going to be a new menu item --> 1932 <label class="control-label col-md-3">Custom Type Name</label> 1933 <div class="col-md-8"> 1934 <select data-bind="select2: {}, value: CustomTypeName, valueAllowUnset: true, disable: ItemID() || CmsPageID()"> 1935 <option value="">(none)</option> 1936 <option value="AnalyseForm">AnalyseForm</option> 1937 <option value="BookingCalendar">BookingCalendar</option> 1938 <option value="SCTCWebApplication.ViewModel.EditVATRatesIndexMenuItemVM">SCTCWebApplication.ViewModel.EditVATRatesIndexMenuItemVM</option> 1939 <option value="SCTCWebApplication.ViewModel.MySubscriptionHistoryIndexMenuItemVM">SCTCWebApplication.ViewModel.MySubscriptionHistoryIndexMenuItemVM</option> 1940 <option value="SCTCWebApplication.ViewModel.MySubscriptionsIndexMenuItemVM">SCTCWebApplication.ViewModel.MySubscriptionsIndexMenuItemVM</option> 1941 <option value="PrintBlankFormMenuItemVM">PrintBlankFormMenuItemVM</option> 1942 <option value="Register">Register</option> 1943 <option value="Registration">Registration</option> 1944 <option value="SMS">SMS</option> 1945 </select>
1946 <span class="help-block" data-bind="validationMessage: CustomTypeName"></span> 1947 </div> 1948 </div> 1949 <div class="form-group" data-bind="validationElement: Icon"> 1950 <label class="control-label col-md-3">Icon</label> 1951 <div class="col-md-8"> 1952 <div class="form-control-static"> 1953 <div data-bind="component: { name: 'icon-selector', params: { Value: Icon } }"></div> 1954 </div> 1955 </div> 1956 </div> 1957 1958 <div class="form-group" data-bind="validationElement: GroupID"> 1959 <label class="control-label col-md-3">Menu</label> 1960 <div class="col-md-8"> 1961 <select class="form-control" data-bind="select2: true, value: GroupID, options: GroupOptions, optionsValue: 'ID', optionsText: 'Name', valueAllowUnset: true, optionsCaption: 'Please select ...'"></select> 1962 <span class="help-block" data-bind="validationMessage: GroupID"></span> 1963 </div> 1964 </div> 1965 <div class="form-group" data-bind="validationElement: Position"> 1966 <label class="control-label col-md-3">Position</label> 1967 <div class="col-md-8"> 1968 <select class="form-control" data-bind="select2: true, value: Position, options: PositionOptions, optionsValue: 'ID', optionsText: 'Name', valueAllowUnset: true, optionsCaption: 'Please select ...'"></select> 1969 <span class="help-block" data-bind="validationMessage: Position"></span> 1970 <span class="help-block"> 1971 Select the item before which the new menu item should be inserted. 1972 </span> 1973 </div> 1974 </div> 1975 <div class="form-group"> 1976 <label class="control-label col-md-3">Start new group?</label> 1977 <div class="col-md-8"> 1978 <div data-bind="component: { name: 'radio-group', params: { Value: IsGroupStart, Options: [ true, false ] } }"></div> 1979 <span class="help-block"> 1980 If set, then the menu item will have a dividing line inserted above it. 1981 </span> 1982 </div> 1983 </div> 1984 </div> 1985 </div> 1986 <div class="modal-footer"> 1987 <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button> 1988 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 1989 </div> 1990 </div> 1991 </div> 1992</div> 1993 1994 1995</partial> 1996<div id="add-redirect-for-page-modal" class="modal fade" tabindex="-1" role="dialog"> 1997 <div class="modal-dialog"> 1998 <div class="modal-content"> 1999 <div class="modal-header"> 2000 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 2001 <h4 class="modal-title">Add a Redirect to This Page</h4> 2002 </div> 2003 <div class="modal-body"> 2004 <div class="form-horizontal"> 2005 <div class="form-group" data-bind="validationElement: FromURL"> 2006 <label class="control-label col-md-3">Redirect from</label> 2007 <div class="col-md-8"> 2008 <input type="text" class="form-control" data-bind="value: FromURL, event: { blur: checkFromUrl }" maxlength="200" placeholder="/join" /> 2009 <span class="help-block" data-bind="validationMessage: FromURL"></span> 2010 <span class="help-block text-danger" data-bind="text: fromUrlServerMessage, visible: fromUrlServerMessage"></span>
2011 <span class="help-block"> 2012 A short, memorable address, or an old address you're redirecting here, that should bring visitors 2013 to this page (e.g. /join). 2014 </span> 2015 </div> 2016 </div> 2017 <div class="form-group" data-bind="validationElement: ToURL"> 2018 <label class="control-label col-md-3">Redirect to</label> 2019 <div class="col-md-8"> 2020 <input type="text" class="form-control" data-bind="value: ToURL" maxlength="5000" placeholder="/Membership/Overview" /> 2021 <span class="help-block" data-bind="validationMessage: ToURL"></span> 2022 <span class="help-block"> 2023 Pre-filled with this page's address - edit it if you'd rather redirect to a different page, or need 2024 to include a query string (e.g. ?id=1). Any #anchor won't have any effect (see note above). 2025 </span> 2026 </div> 2027 </div> 2028 </div> 2029 </div> 2030 <div class="modal-footer"> 2031 <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button> 2032 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 2033 </div> 2034 </div> 2035 </div> 2036</div> 2037</partial> 2038 2039<div id="release-notes-modal" class="modal fade" tabindex="-1" role="dialog"> 2040 <div class="modal-dialog modal-lg"> 2041 <div class="modal-content"> 2042 <div class="modal-header"> 2043 <button type="button" class="close" aria-label="Close" data-bind="click: onOk"><span aria-hidden="true">×</span></button> 2044 <h4 class="modal-title">Release Notes</h4> 2045 </div> 2046 <div class="modal-body"> 2047 <div data-bind="foreach: Releases"> 2048 <div class="release"> 2049 <h2 class="form-header"> 2050 Version <span data-bind="text: Version"></span> 2051 <small data-bind="text: Date"></small> 2052 </h2> 2053 <div data-bind="html: Notes"></div> 2054 </div> 2055 </div> 2056 </div> 2057 <div class="modal-footer"> 2058 <button type="button" class="btn btn-default" data-bind="click: onOk">Close</button> 2059 </div> 2060 </div> 2061 </div> 2062</div> 2063 2064 2065 2066 2067<div id="token-balance-topup-modal" class="modal fade" tabindex="-1" role="dialog"> 2068 <div class="modal-dialog modal-lg"> 2069 <div class="modal-content"> 2070 <div class="modal-header"> 2071 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 2072 <h4 class="modal-title">Top Up Token Balance</h4> 2073 </div> 2074 <div class="modal-body"> 2075 <div class="form-horizontal"> 2076 <div class="form-group"> 2077 <label class="control-label col-md-3">Member</label> 2078 <div class="col-md-8"> 2079 <p class="form-control-static" data-bind="text: User.Name"></p> 2080 </div> 2081 </div> 2082 <div class="form-group"> 2083 <label class="control-label col-md-3">Current Balance</label> 2084 <div class="col-md-8"> 2085 <p class="form-control-static" data-bind="text: CurrentBalance.FormattedWithLabel"></p> 2086 </div> 2087 </div> 2088 2089 <!-- Phase 1: amount selection --> 2090 <div data-bind="visible: Phase() === 'amount'"> 2091 <div class="form-group" data-bind="validationElement: TokenCount"> 2092 <label class="control-label col-md-3">Amount to Credit</label> 2093 <div class="col-md-8"> 2094 <div data-bind="component: { name: 'token-amount-edit', params: { Value: TokenCount, TokensAreMoney: TokensAreMoney, Enabled: !PurchaseUnits().length } }"></div> 2095 <div class="mt-5" data-bind="visible: PurchaseUnits().length"> 2096 <button type="button" class="btn btn-xs btn-default" data-bind="click: reset">0</button> 2097 <!-- ko foreach: PurchaseUnits --> 2098 <button type="button" class="btn btn-xs btn-default" data-bind="text: '+' + TokenCount.Formatted(), click: $parent.addLot"></button> 2099 <!-- /ko --> 2100 </div> 2101 <div class="mt-5" data-bind="foreach: AvailableAmou
2101ntOptions, visible: TokensAreMoney() && !PurchaseUnits().length"> 2102 <button type="button" class="btn btn-xs btn-default" data-bind="text: Caption, click: function() { $parent.TokenCountMoney(Amount); }"></button> 2103 </div> 2104 <span class="help-block" data-bind="validationMessage: TokenCount"></span> 2105 <span class="help-block" data-bind="visible: LimitsMessage, html: LimitsMessage"></span> 2106 </div> 2107 </div> 2108 2109 <div class="form-group" data-bind="visible: !TokensAreMoney() || PurchaseUnits().length"> 2110 <label class="control-label col-md-3">Cost</label> 2111 <div class="col-md-8"> 2112 <p class="form-control-static" data-bind="text: Cost"></p> 2113 </div> 2114 </div> 2115 2116 <div class="form-group" data-bind="visible: !PaymentMethodOptions().length"> 2117 <div class="col-md-offset-3 col-md-8"> 2118 <span class="help-block text-warning"> 2119 <i class="fas fa-exclamation-triangle"></i> You do not have any payment methods stored on your account. Please go to your 2120 <a data-bind="clubhouseHref: '/UserPage#UserPaymentMethods'" target="_blank">Profile Page</a> to add a payment method. 2121 </span> 2122 </div> 2123 </div> 2124 </div> 2125 2126 <!-- Phase 2: payment element --> 2127 <div data-bind="visible: Phase() === 'payment'"> 2128 <div class="form-group"> 2129 <label class="control-label col-md-3">Amount to Credit</label> 2130 <div class="col-md-8"> 2131 <p class="form-control-static" data-bind="text: TokenCountWithLabel"></p> 2132 </div> 2133 </div> 2134 <div class="form-group"> 2135 <label class="control-label col-md-3">Cost</label> 2136 <div class="col-md-8"> 2137 <p class="form-control-static" data-bind="text: Cost"></p> 2138 </div> 2139 </div> 2140 <div class="form-group"> 2141 <div class="col-md-offset-3 col-md-8"> 2142 <div id="token-topup-payment-element"></div> 2143 </div> 2144 </div> 2145 </div> 2146 </div> 2147 </div> 2148 <div class="modal-footer"> 2149 <button type="button" class="btn btn-primary" data-bind="click: onContinue, visible: Phase() === 'amount', enable: !IsBusy() && !!PaymentMethodOptions().length">Continue</button> 2150 <button type="button" class="btn btn-default" data-bind="click: onBack, visible: Phase() === 'payment', enable: !IsBusy()">Back</button> 2151 <button type="button" class="btn btn-primary" data-bind="click: onPay, visible: Phase() === 'payment', enable: !IsBusy()">Pay</button> 2152 <button type="button" class="btn btn-default" data-dismiss="modal" data-bind="enable: !IsBusy()">Cancel</button> 2153 </div> 2154 </div> 2155 </div> 2156</div> 2157 2158 2159 2160<div id="eposnow-balance-top-up-modal" class="modal fade" tabindex="-1" role="dialog"> 2161 <div class="modal-dialog"> 2162 <div class="modal-content"> 2163 <div class="modal-header"> 2164 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 2165 <h4 class="modal-title">Top Up Credit Balance</h4> 2166 </div> 2167 <div class="modal-body"> 2168 <div class="form-horizontal"> 2169 <div class="form-group"> 2170 <label class="control-label col-md-3">Member</label> 2171 <div class="col-md-8"> 2172 <p class="form-control-static" data-bind="text: User.Name"></p> 2173 </div> 2174 </div> 2175 <div class="form-group"> 2176 <label class="control-label col-md-3">Current Balance</label> 2177 <div class="col-md-8"> 2178 <p class="form-control-static" data-bind="text: CreditBalance.Formatted"></p> 2179 </div> 2180 </div> 2181 2182 <!-- Phase 1: amount selection --> 2183 <div data-bind="visible: Phase() === 'amount'"> 2184 <div class="form-group" data-bind="validationElement: Amount"> 2185 <label class="control-label col-md-3">Amount to Credit</label> 2186 <div class="col-md-8"> 2187 <div class="form-inline"> 2188 <div class="input-group">
2189 <span class="input-group-addon">£</span> 2190 <input type="text" class="form-control money-control" data-bind="value: Amount"/> 2191 </div> 2192 <div class="mt-5" data-bind="foreach: AvailableAmountOptions"> 2193 <button type="button" class="btn btn-xs btn-default" data-bind="text: Caption, click: function() { $parent.Amount(Amount); }"></button> 2194 </div> 2195 </div> 2196 <span class="help-block" data-bind="validationMessage: Amount"></span> 2197 <span class="help-block" data-bind="visible: LimitsMessage, html: LimitsMessage"></span> 2198 </div> 2199 </div> 2200 2201 <div class="form-group" data-bind="visible: !PaymentMethodOptions().length"> 2202 <div class="col-md-offset-3 col-md-8"> 2203 <span class="help-block text-warning"> 2204 <i class="fas fa-exclamation-triangle"></i> You do not have any payment methods stored on your account. Please go to your 2205 <a data-bind="clubhouseHref: '/UserPage#UserPaymentMethods'" target="_blank">Profile Page</a> to add a payment method. 2206 </span> 2207 </div> 2208 </div> 2209 </div> 2210 2211 <!-- Phase 2: payment element --> 2212 <div data-bind="visible: Phase() === 'payment'"> 2213 <div class="form-group"> 2214 <label class="control-label col-md-3">Amount</label> 2215 <div class="col-md-8"> 2216 <p class="form-control-static" data-bind="text: Amount"></p> 2217 </div> 2218 </div> 2219 <div class="form-group"> 2220 <div class="col-md-offset-3 col-md-8"> 2221 <div id="eposnow-topup-payment-element"></div> 2222 </div> 2223 </div> 2224 </div> 2225 2226 </div> 2227 </div> 2228 <div class="modal-footer"> 2229 <button type="button" class="btn btn-primary" data-bind="click: onContinue, visible: Phase() === 'amount', enable: !IsBusy() && !!PaymentMethodOptions().length">Continue</button> 2230 <button type="button" class="btn btn-default" data-bind="click: onBack, visible: Phase() === 'payment', enable: !IsBusy()">Back</button> 2231 <button type="button" class="btn btn-primary" data-bind="click: onPay, visible: Phase() === 'payment', enable: !IsBusy()">Pay</button> 2232 <button type="button" class="btn btn-default" data-dismiss="modal" data-bind="enable: !IsBusy()">Cancel</button> 2233 </div> 2234 </div> 2235 </div> 2236</div> 2237 2238 2239 2240 2241 2242<div id="mark-as-paid-modal" class="modal fade" tabindex="-1" role="dialog"> 2243 <div class="modal-dialog modal-lg"> 2244 <div class="modal-content"> 2245 <div class="modal-header"> 2246 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 2247 <h4 class="modal-title">Mark as Paid</h4> 2248 </div> 2249 <div class="modal-body"> 2250 2251 <!-- ko foreach: ScheduledPaymentWarnings --> 2252 <div class="alert alert-warning"> 2253 <!-- ko if: Code === 'GOCARDLESS' --> 2254 <h4><i class="fas fa-exclamation-triangle"></i> GoCardless Direct Debit â <!-- ko text: IsRepeating ? 'Repeating Payment' : 'Scheduled Payment' --><!-- /ko --></h4> 2255 <p><span data-bind="text: IDSummary"></span> <span data-bind="text: Plural ? 'are' : 'is'"></span> scheduled to be collected automatically by GoCardless. <strong>There is no need to record manually unless the GoCardless notification has been missed.</strong></p> 2256 <p>If you do record it: entering the GoCardless payment reference (e.g. <code>PM...</code>) will allow the duplicate notification to be safely ignored. 2257 If you use an unknown or incorrect reference, myClubhouse may incorrectly mark the <strong><!-- ko text: IsRepeating ? 'next period\'s payment' : 'next scheduled payment' --><!-- /ko --></strong> as paid when it processes the collection.</p> 2258 <!-- /ko --> 2259 <!-- ko if: Code === 'STRIPE' --> 2260 <h4><i class="fas fa-exclamation-triangle"></i> Stripe â <!-- ko text: IsRepeating ? 'Repeating Payment' : 'Scheduled Payment' --><!-- /ko --></h4> 2261 <p><span data-bind="text: IDSummary"></span> <span data-bind="text: Plural ? 'are' : 'is'"></span> scheduled to be collected automatically by Stripe. <strong>There is no need to record manually unless the Stripe notification has been missed.</strong></p> 2262 <p>If you do record it: entering the Stripe charge reference (e.g. <code>ch_...</code>) will allow the duplicate notification to be safely ignored. 2263 If you use an unknown or incorrect reference, myClubhouse may incorrectly mark the <strong><!-- ko text: IsRepeating ? 'next period\'s payment' : 'next scheduled payment' --><!-- /ko --></strong> as paid when it processes the collection.</p> 2264 <!-- /ko --> 2265 <!-- ko if: Code !== 'GOCARDLESS' && Code !== 'STRIPE' --> 2266 <h4><i class="fas fa-exclamation-triangle"></i> Scheduled Electronic Payment</h4> 2267 <p><span data-bind="text: IDSummary"></span> <span data-bind="text: Plural ? 'are' : 'is'"></span> scheduled to be collected automatically by <span data-bind="text: MethodName"></span>. <strong>There is no need to record manually unless the provider's notification has been missed.</strong> 2268 If you mark it as paid and the automatic collection also succeeds, the payment may be recorded twice.</p> 2269 <!-- /ko --> 2270 </div> 2271 <!-- /ko --> 2272 2273 <!-- ko if: ElectronicPaymentMethodWarning() --> 2274 <div class="alert alert-info"> 2275 <strong> 2276 <!-- ko if: ElectronicPaymentMethodWarning().Icon --><i data-bind="css: ElectronicPaymentMethodWarning().Icon"></i><!-- /ko --> 2277 <!-- ko if: ElectronicPaymentMethodWarning().Code === 'GOCARDLESS' -->GoCardless Direct Debit<!-- /ko --> 2278 <!-- ko if: ElectronicPaymentMethodWarning().Code === 'STRIPE' -->Stripe<!-- /ko --> 2279 <!-- ko if: ElectronicPaymentMethodWarning().Code !== 'GOCARDLESS' && ElectronicPaymentMethodWarning().Code !== 'STRIPE' --><span data-bind="text: ElectronicPaymentMethodWarning().Name"></span><!-- /ko --> 2280 </strong> â 2281 <!-- ko if: ElectronicPaymentMethodWarning().Subject -->RE: <span data-bind="text: ElectronicPaymentMethodWarning().Subject"></span>: <!-- /ko --><!-- ko if: ElectronicPaymentMethodWarning().Code === 'GOCARDLESS' -->GoCardless Direct Debits<!-- /ko --><!-- ko if: ElectronicPaymentMethodWarning().Code === 'STRIPE' -->Stripe payments<!-- /ko --><!-- ko if: ElectronicPaymentMethodWarning().Code !== 'GOCARDLESS' && ElectronicPaymentMethodWarning().Code !== 'STRIPE' -->Payments via <span data-bind="text: ElectronicPaymentMethodWarning().Name"></span><!-- /ko --> 2282 are normally recorded automatically. 2283 There is no need to record manually unless <span data-bind="text: ElectronicPaymentMethodWarning().NotificationPhrase"></span> has been missed. Please enter the exact payment reference where possible. Payments with different references must be recorded separately. 2284 </div> 2285 <!-- /ko --> 2286 2287 <div class="alert alert-info" data-bind="visible: AnySelectedIsRepeating" style="display: none"> 2288 <i class="fas fa-info-circle"></i> 2289 Marking this payment as paid will automatically create the next repeating purchase and due payment. 2290 </div> 2291 2292 <div class="form-horizontal"> 2293 2294 <div class="form-group"> 2295 <label class="col-md-3 control-label">Payee</label> 2296 <div class="col-md-8"> 2297 <!-- ko if: PayeeOptions().length <= 3 --> 2298 <div data-bind="component: { 2299 name: 'radio-group', 2300 params: { 2301 Value: PayeeID, 2302 Options: PayeeOptions, 2303 OptionsValue: 'ID', OptionsText: 'Name' 2304 } 2305 }"></div> 2306 <!-- /ko --> 2307 <!-- ko if: PayeeOptions().length > 3 --> 2308 <select class="form-control" style="max-width: 300px" data-bind="select2: true, value: PayeeID, options: PayeeOptions, optionsValue: 'ID', optionsText: 'Name'"></select> 2309 <!-- /ko --> 2310 </div> 2311 </div> 2312 2313 <div class="form-group" data-bind="validationElement: PayingUser.ID"> 2314 <label class="col-md-3 control-label">Paying User</label> 2315 <div class="col-md-6"> 2316 <div class="form-inline"> 2317 <input type="text" class="form-control user-control" 2318 data-bind="clubhouseAutoCompleteMulti: { 2319 value: PayingUserIDEdit, 2320 text: PayingUser.Name, 2321 options: { dataSource: lookupMatchingUsers, singleValue: true } }"/> 2322 <i class="fas fa-gift" style="color: deeppink" data-bind="visible: UserIsEligibleForGiftAid" title="Payer has active Gift Aid declaration"></i> 2323 </div>
2324 <span class="help-block" data-bind="validationMessage: PayingUser.ID"></span> 2325 </div> 2326 </div> 2327 2328 <div class="form-group" data-bind="validationElement: PaymentDate"> 2329 <label class="control-label col-md-3">Payment Date</label> 2330 <div class="col-md-8"> 2331 <input type="text" class="form-control" data-bind="kendoDatePicker: PaymentDate" /> 2332 <span class="help-block" data-bind="validationMessage: PaymentDate"></span> 2333 </div> 2334 </div> 2335 2336 <div class="form-group" data-bind="validationElement: PaymentMethodID"> 2337 <label class="col-md-3 control-label">Payment Method</label> 2338 <div class="col-md-3"> 2339 <select class="form-control" data-bind="select2: true, value: PaymentMethodID, options: AvailablePaymentMethods, optionsValue: 'ID', optionsText: 'Name'"></select> 2340 <span class="help-block" data-bind="validationMessage: PaymentMethodID"></span> 2341 </div> 2342 </div> 2343 2344 <div class="form-group" data-bind="validationElement: Amount"> 2345 <label class="col-md-3 control-label">Amount</label> 2346 <div class="col-md-3"> 2347 <div class="form-inline-flex"> 2348 <span class="input-group"> 2349 <span class="input-group-addon">£</span> 2350 <input type="text" class="form-control" data-bind="textInput: Amount" /> 2351 </span> 2352 <button type="button" class="btn btn-xs btn-default" data-bind="visible: AmountIsEntered, click: function() { Amount(null); }"> 2353 <i class="fal fa-abacus"></i> 2354 </button> 2355 </div> 2356 <span class="help-block" data-bind="validationMessage: Amount"></span> 2357 <span class="help-block">Refunds may be recorded using negative amounts.</span> 2358 </div> 2359 </div> 2360 2361 <div class="form-group" data-bind="validationElement: PaymentReferenceText"> 2362 <label class="col-md-3 control-label">Payment Reference</label> 2363 <div class="col-md-8"> 2364 <div data-bind="component: { 2365 name: 'radio-group', 2366 params: { 2367 Value: PaymentReferenceIsKnown, 2368 Options: [{ Value: true, Label: 'Known', Icon: 'fas fa-hashtag' }, { Value: false, Label: 'Unknown', Icon: 'fas fa-question' }], 2369 OptionsValue: 'Value', OptionsText: 'Label', OptionsIcon: 'Icon' 2370 } 2371 }"></div> 2372 <div data-bind="visible: PaymentReferenceIsKnown" style="display: none; margin-top: 8px;"> 2373 <input type="text" class="form-control" data-bind="textInput: PaymentReferenceText" maxlength="100" placeholder="Enter payment reference" /> 2374 <span class="help-block" data-bind="validationMessage: PaymentReferenceText"></span> 2375 </div> 2376 </div> 2377 </div> 2378 2379 <div class="form-group" data-bind="validationElement: Notes"> 2380 <label class="control-label col-md-3">Notes</label> 2381 <div class="col-md-8"> 2382 <textarea class="form-control" rows="3" data-bind="value: Notes" maxlength="200"></textarea> 2383 <span class="help-block" data-bind="validationMessage: Notes"></span> 2384 </div> 2385 </div> 2386 2387 <!-- Allocation of Due Payments --> 2388 <h4 class="form-header"> 2389 Allocation to Due Payments 2390 </h4> 2391 <p> 2392 Select the due payments that are covered by this received payment. 2393 </p> 2394 2395 <!-- Unallocated Amount --> 2396 <div class="form-horizontal"> 2397 <div class="form-group" data-bind="validationElement: UnallocatedAmount"> 2398 <label class="col-md-3 control-label">Unallocated Amount</label> 2399 <div class="col-md-7"> 2400 <div class="form-inline"> 2401 <div class="input-group">
2402 <span class="input-group-addon">£</span> 2403 <input type="text" class="form-control" data-bind="value: UnallocatedAmount" readonly/> 2404 </div> 2405 </div> 2406 <span class="help-block" data-bind="validationMessage: UnallocatedAmount"></span> 2407 </div> 2408 </div> 2409 </div> 2410 2411 <div data-bind="validationElement: Allocations"> 2412 <div class="table-stacked"> 2413 <table class="table table-bordered table-striped table-stacked"> 2414 <thead> 2415 <tr> 2416 <th class="clickable" data-bind="click: function() { AllSelected(!AllSelected()); }"> 2417 <i data-bind="css: AllSelected()? 'fas fa-check-square text-success': 'fal fa-square'"></i> 2418 </th> 2419 <th class="id-column">ID</th> 2420 <th>Purchaser</th> 2421 <th>Purchase</th> 2422 <th>Amount</th> 2423 <th>Due Date</th> 2424 <th class="money-column money-column-lg">Allocated Amount</th> 2425 </tr> 2426 </thead> 2427 <tbody> 2428 <!-- ko foreach: DuePaymentGroups --> 2429 <!-- ko if: Name --> 2430 <tr> 2431 <td colspan="7" class="text-muted small" style="font-style: italic; background: #f5f5f5; padding: 4px 8px; border-top: 2px solid #ddd;"> 2432 <span data-bind="text: Name"></span> 2433 <!-- ko if: IsScheduled --> 2434 <span> â scheduled for automatic collection</span> 2435 <!-- /ko --> 2436 </td> 2437 </tr> 2438 <!-- /ko --> 2439 <!-- ko foreach: Payments --> 2440 <tr data-bind="css: { success: IsSelected }"> 2441 <td class="clickable" data-bind="attr: { rowspan: IsOverallocated()? 2: 1 }, click: toggleSelection"> 2442 <i data-bind="css: IsSelected()? 'fas fa-check-square text-success': 'fal fa-square'"></i> 2443 </td> 2444 <td data-title="ID" data-bind="text: ID"></td> 2445 <td data-title="Purchaser" data-bind="text: Purchaser.Name, attr: { rowspan: IsOverallocated()? 2: 1 }"></td> 2446 <td data-title="Purchase"> 2447 <p data-bind="text: Purchase"></p> 2448 <p> 2449 <small class="text-muted" data-bind="text: Description"></small> 2450 </p> 2451 <!-- ko if: PaymentMethodIcon --> 2452 <p class="mb-0"> 2453 <small class="text-muted"><i data-bind="css: PaymentMethodIcon"></i> <span data-bind="text: PaymentMethodName"></span></small> 2454 </p> 2455 <!-- /ko --> 2456 </td> 2457 <td data-title="Amount" class="money-column"> 2458 <i class="fas fa-tag text-success mr-5" data-bind="visible: IsDiscountApplied"></i>
2459 <span data-bind="text: Amount.Formatted"></span> 2460 </td> 2461 <td data-title="Due Date" data-bind="text: DueDate, attr: { rowspan: IsOverallocated()? 2: 1 }"></td> 2462 <td data-title="Allocated Amount" data-bind="validationElement: AllocatedAmount, attr: { rowspan: IsOverallocated()? 2: 1 }"> 2463 <div class="form-inline-flex"> 2464 <div class="input-group"> 2465 <span class="input-group-addon">£</span> 2466 <input type="text" class="form-control currency-control" data-bind="textInput: AllocatedAmount, enable: IsSelected"/> 2467 </div> 2468 2469 <button type="button" class="btn btn-xs btn-default" data-bind="visible: !$parents[1].AllAllocated(), click: autoAdjust" title="Auto-adjust"> 2470 <i class="fal fa-abacus"></i> 2471 </button> 2472 2473 <i class="ml-5" data-bind="visible: IsProductEligibleForGiftAid.Value, 2474 faIcon: $parents[1].UserIsEligibleForGiftAid()? 'fas fa-gift': 'far fa-gift', 2475 style: { color: $parents[1].UserIsEligibleForGiftAid()? 'deeppink': 'gray' }, 2476 attr: { title: $parents[1].UserIsEligibleForGiftAid()? 'Payment is eligible for Gift Aid': 'Payment is not eligible for Gift Aid - no active declaration for payer' }"></i> 2477 </div> 2478 <span class="help-block" data-bind="validationMessage: AllocatedAmount"></span> 2479 </td> 2480 </tr> 2481 <!-- ko if: IsOverallocated --> 2482 <tr data-bind="css: { success: IsSelected }"> 2483 <td /> 2484 <td data-bind="validationElement: OverallocationReason"> 2485 <input type="text" class="form-control" data-bind="value: OverallocationReason" placeholder="Overallocation reason" maxlength="100" /> 2486 <span class="help-block" data-bind="validationMessage: OverallocationReason"></span> 2487 </td> 2488 <td class="money-column" data-bind="text: OverallocationAmount"></td> 2489 </tr> 2490 <!-- /ko --> 2491 <!-- /ko --> 2492 <!-- /ko --> 2493 </tbody> 2494 </table> 2495 2496 <div class="no-content" data-bind="visible: !AvailableDuePayments().length"> 2497 No due payments. 2498 </div> 2499 </div> 2500 <span class="help-block" data-bind="validationMessage: Allocations"></span> 2501 </div> 2502 2503 <!-- ko if: AppliedDiscounts().length --> 2504 <div class="mt-10"> 2505 <strong><i class="fas fa-tag text-success"></i> Applied Discounts</strong> 2506 <ul class="list-unstyled mt-5 mb-0"> 2507 <!-- ko foreach: AppliedDiscounts --> 2508 <li> 2509 <span data-bind="text: Label"></span> 2510 <!-- ko if: AffectedDuePaymentIDs().length --> 2511 <span class="text-muted small ml-5" data-bind="text: '(due payment' + (AffectedDuePaymentIDs().length > 1 ? 's ' : ' ') + AffectedDuePaymentIDs().join(', ') + ')'"></span> 2512 <!-- /ko --> 2513 <button type="button" class="btn btn-xs btn-danger ml-5" data-bind="click: function() { $parent.removeDiscount(ID(), HasPaidPayments()) }" title="Remove this discount"> 2514 <i class="far fa-trash-alt"></i> Remove 2515 </button> 2516 <!-- ko if: HasPaidPayments -->
2517 <span class="text-warning ml-5" title="Some payments for this purchase have already been paid â see warning on remove"> 2518 <i class="fas fa-exclamation-triangle"></i> 2519 </span> 2520 <!-- /ko --> 2521 </li> 2522 <!-- /ko --> 2523 </ul> 2524 </div> 2525 <!-- /ko --> 2526 </div> 2527 </div> 2528 <div class="modal-footer"> 2529 2530 <div class="pull-left" data-bind="component: { name: 'checkbox', params: { Value: SendEmails, Text: 'Send Notification Emails', Icon: 'fas fa-envelope', Class: 'default' } }"></div> 2531 2532 <button type="button" class="btn btn-default" data-bind="click: applyDiscounts, enable: PayingUser.ID"> 2533 <i class="fas fa-tag"></i> 2534 Apply Discounts 2535 </button> 2536 2537 <button type="button" class="btn btn-primary" data-bind="click: execute"> 2538 <i class="fas fa-check"></i> 2539 Mark as Paid 2540 </button> 2541 2542 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 2543 </div> 2544 </div> 2545 </div> 2546</div> 2547 2548<div id="fill-missing-payments-modal" class="modal fade" tabindex="-1" role="dialog"> 2549 <div class="modal-dialog"> 2550 <div class="modal-content"> 2551 <div class="modal-header"> 2552 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 2553 <h4 class="modal-title"><i class="fas fa-sync-alt"></i> Fill Missing Payments</h4> 2554 </div> 2555 2556 <div class="modal-body"> 2557 2558 <!-- Loading --> 2559 <!-- ko if: phase() === 'loading' --> 2560 <p class="text-center text-muted"><i class="fas fa-spinner fa-spin"></i> Loading preview â¦</p> 2561 <!-- /ko --> 2562 2563 <!-- Error --> 2564 <!-- ko if: phase() === 'error' --> 2565 <div class="alert alert-danger"> 2566 <strong>Error:</strong> <span data-bind="text: errorMessage"></span> 2567 </div> 2568 <!-- /ko --> 2569 2570 <!-- Preview: ko with handles stats/list; messages use viewmodel-level computed observables --> 2571 <!-- ko if: phase() === 'preview' --> 2572 <!-- ko with: preview() --> 2573 <p> 2574 Subscription <strong data-bind="text: SubscriptionID"></strong> 2575 is <strong data-bind="text: SubscriptionStatus"></strong>. 2576 </p> 2577 <table class="table table-condensed"> 2578 <tbody> 2579 <tr> 2580 <td>Confirmed payments</td> 2581 <td><strong data-bind="text: TotalConfirmedPayments"></strong></td> 2582 </tr> 2583 <tr> 2584 <td>Already recorded</td> 2585 <td><strong data-bind="text: AlreadyRecorded"></strong></td> 2586 </tr> 2587 <tr> 2588 <td>To be recorded</td> 2589 <td><strong data-bind="text: ToBeRecorded"></strong></td> 2590 </tr> 2591 </tbody> 2592 </table> 2593 <!-- ko if: PaymentSubscriptions.length > 0 --> 2594 <p><strong>Payment subscription(s):</strong></p> 2595 <ul data-bind="foreach: PaymentSubscriptions"> 2596 <li> 2597 <span data-bind="text: Description"></span> 2598 â <span data-bind="text: $data.AmountFormatted || Amount.toFixed(2)"></span> 2599 <!-- ko if: !IsActive --> 2600 <span class="label label-warning">inactive</span> 2601 <!-- /ko --> 2602 </li> 2603 </ul> 2604 <!-- /ko --> 2605 <!-- /ko --> 2606 <!-- Messages are outside ko with so they use viewmodel-level computed observables --> 2607 <!-- ko if: needsDeactivation() --> 2608 <div class="alert alert-warning"> 2609 <strong>All payments are recorded</strong>, but the subscription is no longer active 2610 and at least one payment subscription is still marked active. 2611 Click Proceed to deactivate it and cancel any future due payments. 2612 </div> 2613 <!-- /ko --> 2614 <!-- ko if: !needsDeactivation() && preview() && preview().ToBeRecorded === 0 --> 2615 <div class="alert alert-info">All confirmed payments are already recorded.</div> 2616 <!-- /ko --> 2617 <!-- /ko --> 2618 2619 <!-- Distribution question: use ko with to unwrap --> 2620 <!-- ko if: phase() === 'question' --> 2621 <!-- ko with: question() --> 2622 <p> 2623 Payment <strong data-bind="text: PaymentID"></strong> 2624 on <strong data-bind="text: PaymentDate"></strong> 2625 is for <strong data-bind="text: AmountFormatted"></strong>. 2626 </p> 2627 <p>This amount doesn't match the sum of the payment subscriptions. Please enter how the amount should be distributed:</p> 2628 <table class="table table-condensed"> 2629 <thead> 2630 <tr> 2631 <th>Payment Subscription</th> 2632 <th class="money-column">Suggested</th> 2633 <th class="money-column">Actual Amount</th> 2634 </tr> 2635 </thead> 2636 <tbody data-bind="foreach: PaymentSubscriptions"> 2637 <tr> 2638 <td data-bind="text: Description"></td> 2639 <td class="money-column" data-bind="text: SuggestedAmount.toFixed(2)"></td> 2640 <td class="money-column"> 2641 <input type="number" step="0.01" min="0" class="form-control input-sm" 2642 data-bind="value: Amount, valueUpdate: 'afterkeydown'" 2643 placeholder="0.00" /> 2644 </td> 2645 </tr> 2646 </tbody> 2647 <tfoot> 2648 <tr> 2649 <td><strong>Total entered</strong></td> 2650 <td></td> 2651 <td class="money-column"> 2652 <strong data-bind="text: $root.distributionTotal().toFixed(2), css: { 'text-danger': !$root.distributionTotalValid() }"></strong> 2653 </td> 2654 </tr> 2655 </tfoot> 2656 </table> 2657 <p class="text-muted small">Enter 0 for any subscription whose payment has not been collected â it will be marked inactive.</p> 2658 <!-- /ko --> 2659 <!-- /ko --> 2660 2661 <!-- Complete / log --> 2662 <!-- ko if: phase() === 'complete' --> 2663 <!-- ko if: log().length > 0 --> 2664 <p><strong>Actions performed:</strong></p> 2665 <ul data-bind="foreach: log"> 2666 <li data-bind="text: $data"></li> 2667 </ul> 2668 <!-- /ko --> 2669 <!-- ko if: log().length === 0 --> 2670 <p class="text-muted">No payments required recording.</p> 2671 <!-- /ko --> 2672 <!-- /ko --> 2673 2674 </div> 2675 2676 <div class="modal-footer">
2677 <span class="pull-left text-info" data-bind="visible: processing"> 2678 <i class="fas fa-spinner fa-spin"></i> Processing ⦠2679 </span> 2680 2681 <!-- Preview footer --> 2682 <!-- ko if: phase() === 'preview' --> 2683 <!-- ko if: canProceed() --> 2684 <div class="checkbox pull-left" style="margin-top:6px"> 2685 <span data-bind="component: { name: 'checkbox', params: { Value: sendEmails, Text: 'Send Notification Emails', Icon: 'fas fa-envelope', Class: 'default' } }"></span> 2686 </div> 2687 <!-- /ko --> 2688 <button type="button" class="btn btn-primary" 2689 data-bind="click: onProceed, enable: canProceed() && !processing()"> 2690 <i class="fas fa-play"></i> Proceed 2691 </button> 2692 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 2693 <!-- /ko --> 2694 2695 <!-- Distribution question footer --> 2696 <!-- ko if: phase() === 'question' --> 2697 <button type="button" class="btn btn-primary" 2698 data-bind="click: onSubmitDistribution, enable: distributionTotalValid() && !processing()"> 2699 <i class="fas fa-check"></i> Apply Distribution 2700 </button> 2701 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel (Save Progress)</button> 2702 <!-- /ko --> 2703 2704 <!-- Complete footer --> 2705 <!-- ko if: phase() === 'complete' --> 2706 <button type="button" class="btn btn-primary" data-bind="click: onClose"> 2707 <i class="fas fa-check"></i> Done 2708 </button> 2709 <!-- /ko --> 2710 2711 <!-- Error footer --> 2712 <!-- ko if: phase() === 'error' --> 2713 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 2714 <!-- /ko --> 2715 </div> 2716 </div> 2717 </div> 2718</div> 2719 2720
2721<script id="loading-template" type="text/html"> 2722 2723 <div class="loader-inner ball-grid-pulse"> 2724 <div></div> 2725 <div></div> 2726 <div></div> 2727 <div></div> 2728 <div></div> 2729 <div></div> 2730 <div></div> 2731 <div></div> 2732 <div></div> 2733 </div> 2734 2735</script>
2735 2736 2737</partial> 2738
2739<script id="table-template" type="text/html"> 2740 2741 <div data-bind="template: { name: 'table-header-template' }"></div> 2742 2743 <!-- ko if: $data.CustomHeaderTemplate --> 2744 <div data-bind="template: { name: $data.CustomHeaderTemplate }"></div> 2745 <!-- /ko --> 2746 2747 <!-- The table itself --> 2748 <div class="table-stacked"> 2749 <table class="table table-bordered table-striped table-hover table-sticky"> 2750 <thead data-bind="component: { 2751 name: 'header-row', 2752 params: { 2753 HasActionColumn: $data.ActionCellTemplate, 2754 ActionColumnCaption: $data.ActionColumnCaption, 2755 ActionColumnTooltip: $data.ActionColumnTooltip, 2756 ColumnConfig: Table.ColumnConfig, 2757 sortChange: Table.sortChange, 2758 columnChange: Table.columnChange, 2759 selectAll: Table.selectAllRows, 2760 selectAllValue: Table.selectAllObservable } }"></thead> 2761 2762 <tbody data-bind="foreach: Items"> 2763 <tr> 2764 <!-- ko if: $parent.PrependCellTemplate --> 2765 <td data-bind="template: { name: $parent.PrependCellTemplate }"></td> 2766 <!-- /ko --> 2767 <!-- ko foreach: $parent.Table.ColumnConfig.Columns --> 2768 <td data-bind="visible: IsActive, attr: { 'data-title': Caption }"> 2769 <span data-bind="visible: !Template(), html: get($parent)"></span> 2770 <span data-bind="if: Template"> 2771 <span data-bind="template: { name: Template, data: { Row: $parent, Column: $data } }"></span> 2772 </span> 2773 </td> 2774 <!-- /ko --> 2775 <!-- ko if: $parent.ActionCellTemplate --> 2776 <td data-bind="template: { name: $parent.ActionCellTemplate }" class="hidden-print"></td> 2777 <!-- /ko --> 2778 </tr> 2779 </tbody> 2780 </table> 2781 </div> 2782 2783 <div data-bind="template: { name: 'table-footer-template' }"></div> 2784 2785</script>
2785 2786 2787 2788 2789
2790<script id="table-header-template" type="text/html"> 2791 2792 <!-- Filter Bar --> 2793 <div data-bind="component: { 2794 name: 'filterbar', 2795 params: { 2796 FilterBar: Table.FilterBar, 2797 refresh: Table.refresh } }"></div> 2798 2799 <!-- Column Sorter - only shown when table stacked --> 2800 <div data-bind="component: { 2801 name: 'column-sorter', 2802 params: { 2803 ColumnConfig: Table.ColumnConfig, 2804 AlwaysDisplay: $data.PermanentColumnSorter, 2805 sortChange: Table.sortChange } }"></div> 2806 2807 <div class="clearfix hidden-print"> 2808 <div class="result-count pull-left"> 2809 <strong data-bind="text: Table.Pagination.ItemCount"></strong> rows found. Click column headings to sort, hold down shift key when clicking to add additional sort. 2810 </div> 2811 2812 <div class="pull-right"> 2813 <!-- View Selector --> 2814 <!-- ko if: Table.ViewCode --> 2815 <div class="clearfix" style="margin-bottom: 4px"> 2816 <div class="pull-right"> 2817 <div data-bind="component: { 2818 name: 'view-config-selector', 2819 params: { 2820 ViewCode: Table.ViewCode, 2821 ViewConfigCode: Table.ViewConfigCode, 2822 ColumnConfig: Table.ColumnConfig.ColumnString, 2823 FilterConfig: Table.FilterBar.FilterString, 2824 Arguments: Table.CustomArgsForView, 2825 PageSize: Table.Pagination.PageSize, 2826 DefaultColumnConfig: Table.ColumnConfig.DefaultColumnConfig, 2827 DefaultFilterConfig: Table.FilterBar.DefaultFilterConfig, 2828 viewChange: Table.refresh } }"></div> 2829 </div> 2830 </div> 2831 <!-- /ko --> 2832 <div class="clearfix" style="margin-bottom: 4px"> 2833 <div class="pull-right"> 2834 <!-- ko if: $data.ExportBaseURL --> 2835 <!-- Export Buttons --> 2836 <div data-bind="component: { 2837 name: 'export-buttons', 2838 params: { 2839 BaseURL: ExportBaseURL, 2840 QueryString: Table.QueryString } }, visible: !$data.CanExport || $data.CanExport()"></div> 2841 <!-- /ko --> 2842 2843 <!-- Optional action button(s) supplied by the consuming page --> 2844 <!-- ko if: $data.ActionButtonTemplate --> 2845 <span data-bind="template: { name: $data.ActionButtonTemplate }" style="display: inline-block; margin-right: 4px; vertical-align: top"></span> 2846 <!-- /ko --> 2847 2848 <!-- Column Selector --> 2849 <div style="display: inline-block; vertical-align: top" data-bind="component: { 2850 name: 'column-selector', 2851 params: { 2852 ColumnConfig: Table.ColumnConfig, 2853 columnChange: Table.columnChange } }"></div> 2854 </div> 2855 </div> 2856 </div> 2857 </div> 2858 2859</script>
2859 2860 2861</partial>
2862<script id="table-footer-template" type="text/html"> 2863 2864 <!-- Pagination Controls --> 2865 <div data-bind="component: { 2866 name: 'pagination', 2867 params: { 2868 Pagination: Table.Pagination, 2869 refresh: Table.refresh } }"></div> 2870 2871 <!-- Totals --> 2872 <!-- ko if: Table.ColumnConfig.ColumnTotals().length --> 2873 <div data-bind="component: { 2874 name: 'column-totals', 2875 params: { 2876 Count: Table.Pagination.ItemCount, 2877 ColumnConfig: Table.ColumnConfig } }"></div> 2878 <!-- /ko --> 2879 2880</script>
2880 2881 2882</partial> 2883</partial> 2884 2885<div id="map-location-modal" class="modal fade" tabindex="-1" role="dialog"> 2886 <div class="modal-dialog modal-lg"> 2887 <div class="modal-content"> 2888 <div class="modal-header"> 2889 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 2890 <h4 class="modal-title">Map Location</h4> 2891 </div> 2892 <div class="modal-body"> 2893 <div data-bind="clubhouseMap: { centre: MapCentre, markers: [ { Lat: Latitude, Lng: Longitude } ], refresh: Refresh, map: MapObject }" style="height: 500px;"></div> 2894 2895 <p class="mt-10 mb-10"> 2896 Drag the map around to position the marker. 2897 </p> 2898 2899 <div class="form-horizontal"> 2900 <div class="form-group"> 2901 <label class="control-label col-md-3">Search for Location</label> 2902 <div class="col-md-8"> 2903 <div class="input-group"> 2904 <input type="text" class="form-control" data-bind="textInput: SearchText, enterkey: search" /> 2905 <span class="input-group-btn"> 2906 <button type="button" class="btn btn-default" data-bind="click: search"> 2907 <i class="fas fa-search"></i> 2908 </button> 2909 </span> 2910 </div> 2911 <span class="help-block" data-bind="visible: IsSearching"> 2912 <i class="fas fa-spinner fa-spin mr-5"></i> 2913 Searching ... 2914 </span> 2915 <ul class="mt-5" data-bind="foreach: SearchResults, visible: SearchResults().length"> 2916 <li> 2917 <a href="#" data-bind="click: $parent.selectSearchResult, text: Description"></a> 2918 </li> 2919 </ul> 2920 </div> 2921 </div> 2922 </div> 2923 2924 </div> 2925 <div class="modal-footer"> 2926 <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button> 2927 <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 2928 </div> 2929 </div> 2930 </div> 2931</div> 2932 2933 2934 2935 2936</partial> 2937</div> 2938 2939 <footer> 2940 2941 2942 2943<!-- This is _Footer.cshtml --> 2944<div class="hidden-print clearfix ml-10 mr-10"> 2945 2946 <span class="pull-left"> 2947 2948 <img src="https://www.cambridgecanoeclub.org.uk/Client/Images/Site/ccc_logo_nobg_sml.png" class="visible-sm-inline visible-md-inline visible-lg-inline no-border footer-image"/> 2949 2950 </span> 2951 2952 <span class="pull-right"> 2953 2954 <img src="https://www.cambridgecanoeclub.org.uk/Client/Images/Site/PE_affiliated_sm_2.jpg" class="visible-sm-inline visible-md-inline visible-lg-inline no-border footer-image"/> 2955 2956 </span> 2957 2958 <div> 2959 Copyright © 2026 <a href="http://www.simmetrics.co.uk" title="Simmetrics Ltd">Simmetrics Ltd</a>. All rights reserved. 2960 <a href="/Home/TermsAndConditions">Terms & Conditions</a>. 2961 <a href="/Home/OpenSource">Open Source Attribution</a>. 2962 <br /> 2963 NOTICE: We collect personal information on this site. 2964 To learn more about how we use your information, see our <a href="/PrivacyPolicy" title="Privacy Policy" target="_blank">Privacy Policy</a>. 2965 <a href="#" title="Cookie Preferences" onclick="if (window.CookieConsent) { CookieConsent.openPreferences(); } return false;">Cookie Preferences</a>. 2966 <br /> 2967 2968 Powered by <a href="http://www.MyClubhouse.co.uk">my<strong>Clubhouse</strong>® - Online Club Membership Administration Software for Club Management</a> 2969 Version 6.2.19.18 2970 <br /> 2971 2972 2973 2974 2975 2976 2977</partial> 2978 2979 2980</partial> 2981 </div> 2982 2983 2984 <div class="footer-app-links"> 2985 <a href="https://apps.apple.com/us/app/myclubhouse/id6450174931"> 2986 <img alt="Download on the App Store" src="/Content/images/AppleAppStoreBadge.png" /> 2987 </a> 2988 <a href="https://play.google.com/store/apps/details?id=uk.co.simmetrics.myclubhouse"> 2989 <img alt="Get it on Google Play" src="/Content/images/GooglePlayBadge.png" /> 2990 </a> 2991 </div> 2992 2993</div> 2994 2995<div class="visible-print-block"> 2996 Printed from my<strong>Clubhouse</strong>® - Online Club Membership Administration Software for Club Management.<br /> 2997 www.myclubhouse.co.uk<br /> 2998 <span style="font-size: 0.75em;">28/09/2026 16:08 181.215.65.76</span> 2999</div> 3000<!-- END _Footer.cshtml --></partial> 3001 </footer> 3002 3003 3004<!-- Stripe Payments - Elements -->
3005<script src="https://js.stripe.com/v3/"></script>
3005 3006 3007<!-- Page Scripts -->
3008<script src="https://www.cambridgecanoeclub.org.uk/dist/runtime.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3008
3008
3009<script src="https://www.cambridgecanoeclub.org.uk/dist/vendor.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3009
3009
3010<script src="https://www.cambridgecanoeclub.org.uk/dist/clubhouse.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3010
3010
3011<script src="https://www.cambridgecanoeclub.org.uk/dist/editor.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3011
3011
3012<script src="https://www.cambridgecanoeclub.org.uk/dist/map.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3012
3012
3013<script src="https://www.cambridgecanoeclub.org.uk/dist/Root/Scripts/Commons/ClubhouseCommons.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3013
3013
3014<script src="https://www.cambridgecanoeclub.org.uk/dist/Root/Scripts/Register/MembershipCategories.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
3014 3015 3016 <!-- Menu Bar --> 3017
3017<script src="https://www.cambridgecanoeclub.org.uk/dist/Root/Scripts/Commons/MenuBar.bundle.js.gz?v=6.2.19.18"></script>
3017 3018 3019<!-- Client Custom Scripts -->
3020<script src="https://www.cambridgecanoeclub.org.uk/Client/Scripts/ClientCustom.js"></script>
3020 3021 3022</partial> 3023 3024 3025 3026 3027 3028 <!-- Include an anti-forgery token on every page by default. --> 3029 <div id="ajax-antiforgery-token" class="data"> 3030 {"HeaderName":"RequestVerificationToken","RequestToken":"CfDJ8KvNJpJ4oRdPjvv9fYDf9GYLrpPn44B5wPbdOQVq1q3F9Mdk0qd9NGfAb0VjkZo_N-SYDbigG5u5RSIwGKVDKXQ6mcfCS6_uYiuRNIZei-X-V1pWiqquRqlYXDXpiF3iGJIVvW_4ZiihXew8izb5Rds"} 3031 </div> 3032</body> 3033 3034</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.