1<!DOCTYPE html> 2<html lang="en" xmlns:fb="http://ogp.me/ns/fb#" class="vs1 responsive"> 3 <head> 4 <!-- Responsive and mobile friendly stuff --> 5 <meta name="HandheldFriendly" content="True"> 6 <meta name="MobileOptimized" content="320"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 9 <meta http-equiv="X-UA-Compatible" content="IE=Edge"> 10<meta charset="utf-8">
11<script type="text/javascript" src="https://8061a931ad08.edge.captcha-sdk.awswaf.com/8061a931ad08/jsapi.js" defer="defer"></script>
11 12<meta name="viewport" content="width=device-width, initial-scale=1"> 13<meta name="robots" content="follow,index"> 14<meta name="keywords" content="free online sign up sheets, sign up templates, volunteer management, free online sign up, free volunteer registration, sign up forms, free volunteer sign up forms, online sign up templates, sign up online, online sign up, online sign up sheets, volunteer management software, free volunteer management software, free volunteer software, volunteer scheduler, event sign up, online signup, free online signup, volunteer resources, volunteer calendar, online signup calendar, volunteer registration."> 15<meta name="description" content="Save time with online sign up sheet, volunteer scheduling software, and volunteer management software at schools, churches, sports leagues, and nonprofits."> 16<!--<meta name="appleid-signin-client-id" content="com.signup.desktop">--> 17<!--<meta name="appleid-signin-scope" content="name email">--> 18<!--<meta name="appleid-signin-redirect-uri" content="https://toredola-stripe.ultrahook.com/api/users/verify_apple_login">--> 19<!--<meta name="appleid-signin-state" content="198273645">--> 20 21<title>Free online sign up sheet, volunteer scheduling software , and volunteer management software. | SignUp.com</title> 22 23
23<script type="application/ld+json"> 24[ 25 { 26 "@context": "https://schema.org", 27 "@id": "https://signup.com/Pricing/#service", 28 "@type": "Service", 29 "areaServed": { 30 "@type": "Country", 31 "name": "United States" 32 }, 33 "audience": { 34 "@type": "Audience", 35 "audienceType": "School parents, teachers, PTA/PTO leaders, team moms, nonprofits, religious groups, and event planners" 36 }, 37 "description": "Online sign-up sheet, volunteer scheduling software, and volunteer management software for schools, churches, sports leagues, and nonprofits. SignUp offers free and premium tiers to fit the needs of any organization.", 38 "name": "SignUp Online Sign-Up Sheet and Volunteer Scheduling Software", 39 "offers": { 40 "@type": "AggregateOffer", 41 "lowPrice": "0", 42 "offerCount": "1", 43 "offers": [ 44 { 45 "@type": "Offer", 46 "availability": "https://schema.org/InStock", 47 "name": "Free Online Sign-Up Sheets", 48 "price": "0", 49 "priceCurrency": "USD" 50 } 51 ], 52 "priceCurrency": "USD" 53 }, 54 "provider": { 55 "@id": "https://signup.com/#organization" 56 }, 57 "url": "https://signup.com/Pricing" 58 }, 59 { 60 "@context": "https://schema.org", 61 "@id": "https://signup.com/Pricing/#webpage", 62 "@type": "WebPage", 63 "about": { 64 "@id": "https://signup.com/Pricing/#service" 65 }, 66 "description": "Save time with online sign up sheet, volunteer scheduling software, and volunteer management software at schools, churches, sports leagues, and nonprofits.", 67 "isPartOf": { 68 "@id": "https://signup.com/#website" 69 }, 70 "name": "Free online sign up sheet, volunteer scheduling software, and volunteer management software. | SignUp.com", 71 "url": "https://signup.com/Pricing" 72 }, 73 { 74 "@context": "https://schema.org", 75 "@type": "BreadcrumbList", 76 "itemListElement": [ 77 { 78 "@type": "ListItem", 79 "item": "https://signup.com", 80 "name": "Home", 81 "position": 1 82 }, 83 { 84 "@type": "ListItem", 85 "item": "https://signup.com/Pricing", 86 "name": "Pricing", 87 "position": 2 88 } 89 ] 90 } 91] 92</script>
92 93 94<link rel="canonical" href="https://signup.com/Pricing"> 95<!--Reducing the 7 -precomposed icons down to 1, per modern suggestions --> 96<link rel="apple-touch-icon" href="/apple-touch-icon.png"> 97 98<meta property="og:title" content="SignUp.com | The Easiest Way to Bring People Together"> 99<meta property="og:type" content="activity"> 100<meta property="og:url" content="https://signup.com/Pricing"> 101 <meta property="og:image" content="https://vspot.s3.amazonaws.com/sign-up/Facebook-Images/SignUp-Facebook-Default-Image.jpg"> 102<meta property="og:description" content="SignUp.com makes it easy to coordinate school events &#38; classroom activities, fundraisers, snack schedules, potlucks &#38; more!"> 103<meta property="og:locale" content="en_US"> 104<meta property="og:site_name" content="SignUp.com"> 105<meta property="fb:admins" content="1233106341"><!-- CC --> 106<meta property="fb:admins" content="559307563"><!-- PD --> 107<meta property="fb:app_id" content="1731142263830615"> 108
109<script type="text/javascript"> 110 // Move to before iubenda loading script TEMPORARY fix for url_passthrough issue 111 // Have left iubenda so removing this 112 window.dataLayer = window.dataLayer || []; 113 function gtag(){ 114 // try{ 115 // if (arguments.length > 1 && arguments[1] === "url_passthrough") 116 // return; 117 // }catch(e){} 118 dataLayer.push(arguments); 119 } 120</script>
120 121 122<!-- Always load the HTTPS version... users can cache it either way. --> 123<link href='//fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic|Open+Sans:400,700|Open+Sans+Condensed:300,700|Oswald:400,300,700|Arvo:400,400italic,700,700italic|Lato:400,100,100italic,300,300italic,700,700italic,900,900italic,400italic|Roboto:400,300,700|Gordita:400,300,700' rel='stylesheet' type='text/css'>
124<script src="https://use.fontawesome.com/d4932144a5.js"></script>
124 125 <link rel="stylesheet" media="all" href="https://assets.signup.com/assets/style-cc1c5ba86f258aa034e73255bc719fef0e47663cd9c50775ac389ab2b366e8ff.css" /> 126<link rel="stylesheet" media="all" href="https://assets.signup.com/assets/croppie.min-6114cb8ed49cc061c853fd16b3526a9a6d846ad84ba466e2ca05bf82662d32ab.css" /> 127 <link type="text/css" rel="stylesheet" media="print" href="https://assets.signup.com/assets/print-6d28acd904a36c5e2c3678738242cd7bf720eb3887fda02c9370020f86be46ac.css"> 128 <link type="text/css" rel="stylesheet" media="all" href="https://assets.signup.com/assets/css/vspot-homepage-9e7824eb141782ad851b76d140a20751b3d9a50eaeef4b7a326f0fecfe46f73c.css"> 129 <link type="text/css" rel="stylesheet" media="all" href="https://assets.signup.com/assets/css/article-55620fa8dab6213d968a3355a2a6f54689ad62f679cc565016e50c95e2a69ac3.css"> 130 131<!--
131<script type="text/javascript" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>
131--> 132
133<script> 134 // Make sure _gaq exists before pushing to it. This is the variable that GA 135 // uses to handle events. We need to make sure it's defined in the top scope. 136 var _gaq = _gaq || []; 137</script>
137 138 139<!-- This is just IE 9 and below: --> 140<!--[if IE]>
141<script> 142// Avoid `console` errors in browsers that lack a console. Taken from HTML5 Boilerplate. 143(function() { 144 var method; 145 var noop = function () {}; 146 var methods = [ 147 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 148 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 149 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 150 'timeStamp', 'trace', 'warn' 151 ]; 152 var length = methods.length; 153 var console = (window.console = window.console || {}); 154 155 while (length) { 156 length = length - 1; 157 method = methods[length]; 158 159 // Only stub undefined methods. 160 if (!console[method]) { 161 console[method] = noop; 162 } 163 } 164}()); 165</script>
165 166<![endif]--> 167
168<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
vendor: 1 bytes, line 168
168
169<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular.min.js"></script>
vendor: 1 bytes, line 169
169
170<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
vendor: 1 bytes, line 170
170
171<script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.43/moment-timezone-with-data-1970-2030.min.js"></script>
vendor: 1 bytes, line 171
171
172<script src="https://js.stripe.com/v3/"></script>
172 173
174<script> 175 // Check for scrollTo (looks like some pop-up blockers remove this) 176 window.scrollTo = window.scrollTo || function() {}; 177 178 // Our global object 179 var Vspot = { 180 load_wait_time: 500, // Milliseconds to wait 181 data: { 182 user: { 183 logged_in: false 184 }, 185 reg: {} 186 }, 187 oldBrowser: true, 188 headerMessage: false, 189 assetCss: { 190 jobs: 'https://assets.signup.com/assets/css/jobs-b6b1db23d15eb68f845d342841fbf8488437e98f6c85c3cef0297deb89e8a116.css', 191 comments: 'https://assets.signup.com/assets/css/comments-3142843abb2c466e1d85ad68aa82f73fb3974aaf3ba185bf37e61b0d59aeba55.css', 192 gridReport: 'https://assets.signup.com/assets/vspot-angular/components/grid/css/grid-report-6c6117295763a4a3ae93dd4207ee3dd99d06ee9caf535587be46d8cf9b1a6ac9.css', 193 vsGridReports: 'https://assets.signup.com/assets/vspot-angular/components/grid/css/vs-grid-reports-13d5b5902e2c7f5605ff9edfeda461b31aedc0073b7c9130b8a899841f13809e.css', 194 gridPrint: 'https://assets.signup.com/assets/vspot-angular/components/grid/css/print-2637f59d989542651b67585bd82d86da74aee0e7c158bac21535273c05a719e0.css', 195 dataTables: 'https://assets.signup.com/assets/angular-datatables/jquery-dt/DataTables-1.10.12/css/jquery.dataTables.min-bce1995b0f577ced1e5612a5d78edea0e7a21fae6550bc870c5a4f6c553aa358.css', 196 angularDataTables: 'https://assets.signup.com/assets/angular-datatables/dist/css/angular-datatables-9bbaa4068a41a86287991fb85793e24c509803a967b839d108e01147e4616610.css', 197 buttonsDataTables: 'https://assets.signup.com/assets/angular-datatables/jquery-dt/Buttons-1.2.2/css/buttons.dataTables-4a0c1279db854dbdeb2b2054b7a245c239299ef60cad28084ea20e71b5fe4ce9.css', 198 style: 'https://assets.signup.com/assets/style-cc1c5ba86f258aa034e73255bc719fef0e47663cd9c50775ac389ab2b366e8ff.css', 199 bootstrap: 'https://assets.signup.com/assets/bootstrap-713479863c6524fdb0ae557d4ac0c1ca6bb1a8f0cba3c93e0ad3d6bb61e1a0a0.css', 200 bootstrapTheme: 'https://assets.signup.com/assets/bootstrap-theme-cdf1c1e56b07185513013de2d9d67044e9174e7102de3fde715a38eed902cdcf.css' 201 } 202 }; 203 // PWD: ironic that testing for an old browser generates an error. catch that. 204 try { 205 Vspot.oldBrowser = !Object.keys; 206 } catch (err) { 207 // If the browser chokies on Object.keys, then it's old. 208 Vspot.oldBrowser = true; 209 } 210 211 Vspot.data.user.loggedIn = false; 212 213 // DEAD CODE (RequireJS retired, Option B): this requireConfig object is no 214 // longer consumed (require.config / require(['loader']) were removed below). 215 // Left in place to keep this surgical; remove in a follow-up cleanup. 216 var requireConfig = { 217 waitSeconds: 15, 218 baseUrl: '/script', 219 enforceDefine: true, 220 shim: { // Only for stuff that doesn't support define 221 'jquery-ui': { 222 deps: ['jquery'], 223 exports: 'jQuery.ui' 224 }, 225 bootstrap: { 226 deps: ['jquery-ui'], // Weird JS error if jQuery UI loads after bootstrap 227 exports: 'jQuery.fn.popover' // Tricky! bootstrap doesn't export anything, so we give it a jquery function to check. 228 }, 229 angular: { 230 deps: ['jquery'], // Because we want Angular to use full jQuery, not it's built-in lite version 231 exports: 'angular' 232 }, 233 'bootstrap-colorpicker-module': { // Used in the themes admin tool 234 deps: ['angular'], 235 exports: 'angular' 236 }, 237 'angular-animate': { 238 deps: ['angular'], 239 exports: 'angular' 240 }, 241 'angular-aria': { 242 deps: ['angular'], 243 exports: 'angular' 244 }, 245 'angular-cookies': { 246 deps: ['angular'], 247 exports: 'angular' 248 }, 249 'angular-loader': { 250 deps: ['angular'], 251 exports: 'angular' 252 }, 253 'angular-messages': { 254 deps: ['angular'], 255 exports: 'angular' 256 }, 257 'angular-resource': { 258 deps: ['angular'], 259 exports: 'angular' 260 }, 261 'angular-route': { 262 deps: ['angular'], 263 exports: 'angular' 264 }, 265 'angular-sanitize': { 266 deps: ['angular'], 267 exports: 'angular' 268 }, 269 'angular-touch': { 270 deps: ['angular'], 271 exports: 'angular' 272 }, 273 'angular-ui-bootstrap': { 274 deps: ['angular', 'bootstrap'], 275 exports: 'angular' 276 }, 277 'angular-ui-utils': { 278 deps: ['angular'], 279 exports: 'angular' 280 }, 281 'angular-ui-router': { 282 deps: ['angular'], 283 exports: 'angular' 284 }, 285 'angular-ui-calendar': { 286 deps: ['full-calendar'], 287 exports: 'angular' 288 }, 289 'angular-strap': { 290 deps: ['angular', 'angular-animate'], 291 exports: 'angular' 292 }, 293 'angular-strap-tpl': { 294 deps: ['angular-strap'], 295 exports: 'angular' 296 }, 297 // 'angular-strap-tpl': { 298 // deps: ['angular', 'angular-strap-timepicker', 'angular-strap-datepicker'], 299 // exports: 'angular' 300 // }, 301 // 'angular-strap-timepicker' : { 302 // deps: ['angular'], 303 // exports: 'angular' 304 // }, 305 // 'angular-strap-datepicker' : { 306 // deps: ['angular'], 307 // exports: 'angular' 308 // }, 309 'pdfMake': { 310 exports: 'pdfMake' 311 }, 312 'vfs_fonts': { 313 deps: ['pdfMake'], 314 exports: 'pdfMake' 315 }, 316 'angular-moment': { 317 deps: ['angular', 'moment','moment-timezone'], 318 exports: 'moment' 319 }, 320 'ng-md5': { 321 deps: ['angular'], 322 exports: 'angular' 323 }, 324 'ng-file-upload': { 325 deps: ['angular'], 326 exports: 'angular' 327 }, 328 global_helper: { 329 deps: ['jquery'], 330 exports: 'global_helper' 331 }, 332 /* These DO NOT NEED SHIMS PWD: well maybe they do */ 333 'datatables-colResize':{ 334 deps: ['datatables'], 335 exports: 'ColResize' 336 }, 337 'datatables-scroller':{ 338 deps: ['datatables'], 339 exports: 'jquery' 340 }, 341 342 'datatables':{ 343 deps: ['jquery'], 344 exports: 'jquery' 345 }, 346 347 'datatables-buttons-colVis':{ 348 deps: ['datatables'], 349 exports: 'jquery' 350 }, 351 352 'datatables-buttons-html5':{ 353 deps: ['datatables'], 354 exports: 'jquery' 355 }, 356 357 'datatables-buttons-print':{ 358 deps: ['datatables'], 359 exports: 'jquery' 360 }, 361 362 'datatables.net': { 363 deps: ['jquery'], 364 exports: 'jquery' 365 }, 366 // PWD: see comment in grid.modules.js. Any combination of two of these hangs require js for a timeout cycle (15s) 367 'datatables-buttons':{ 368 deps: ['datatables','datatables-buttons-print','datatables-buttons-colVis','datatables-buttons-html5'], 369 // exports: 'jquery' 370 }, 371 372 /* old commenting out shims */ 373 'angular-datatables': { 374 deps: ['datatables', 'datatables-colResize', 'angular' ], 375 exports: 'angular' 376 }, 377 378 'angular-datatables-scroller': { 379 deps: ['angular-datatables'], 380 exports: 'angular' 381 }, 382 'angular-datatables-buttons': { 383 deps: [ 384 'angular-datatables', 385 'datatables-buttons' // PWD: see comment in grid.modules.js and above in 'datatables-buttons'. This hangs require js for a timeout cycle (15s) 386 ], 387 exports: 'angular' 388 }, 389 'froala-sanitize': { 390 deps: ['angular'], 391 exports: 'angular' 392 }, 393 'angular-froala': { // Only load plug-ins used everywhere 394 deps: ['jquery', 'angular', 'froala-sanitize', 'froala', 'froala-align', 'froala-paragraph-format', 'froala-lists', 'froala-colors', 'froala-link', 'froala-html', 'froala-beautifier', 'froala-vs-html-counter', 'froala-image', 'froala-url'], 395 exports: 'angular' 396 }, 397 398 'froala-align': ['froala'], 399 'froala-beautifier': ['froala'], 400 'froala-colors': ['froala'], 401 'froala-font-family': ['froala'], // For admin 402 'froala-font-size': ['froala'], // For admin 403 'froala-fullscreen': ['froala'], // For admin 404 'froala-html': ['froala'], 405 'froala-image': ['froala'], 406 'froala-link': ['froala'], 407 'froala-lists': ['froala'], 408 'froala-paragraph-format': ['froala'], 409 'froala-url': ['froala'], 410 'froala-video': ['froala'], // For admin 411 'froala-vs-html-counter': ['froala'], 412 // 'jquery.fixedheadertable': { -- part of the Yahoo importer 413 // deps: ['jquery'], 414 // exports: 'jQuery.fn.fixedHeaderTable' 415 // }, 416 xdate: { 417 exports: 'XDate' 418 }, 419 facebook: { 420 exports: 'FB' 421 }, 422 google: { 423 exports: 'gapi' 424 }, 425 googleReCaptcha: { 426 exports: 'grecaptcha' 427 }, 428 twitter: { 429 exports: '__twttrlr' 430 }, 431 pinterest: { 432 exports: 'window' 433 }, 434 comscore: { 435 exports: 'COMSCORE' 436 }, 437 datronics: { 438 exports: 'a' 439 }, 440 quantcast: { 441 exports: '__qc' 442 }, 443 'full-calendar': { 444 exports: 'jQuery.fullCalendar' 445 }, 446 'stripe': { // The embedded version 447 exports: 'Stripe' 448 }, 449 'stripe-checkout': { // The pop-up version 450 exports: 'StripeCheckout' 451 }, 452 'paypal-sdk': { 453 exports: 'paypal' 454 }, 455 'paypal-lightbox': { 456 deps: ['paypal-sdk'], 457 exports: 'setSignupParams' 458 }, 459 'input-date-polyfill': { 460 exports: 'window' 461 }, 462 'compare': { 463 deps: ['jquery'], 464 exports: 'initAnchors' 465 }, 466 'pubfig': { 467 exports: 'freestar.scriptsManager' 468 }, 469 'vfs_cmp': { 470 exports: '__gpp_msghandler' 471 }, 472 'wrapperMessagingWithoutDetection': { 473 exports: 'window' 474 } 475 }, 476 // Configure paths for anything not in the /script folder (base setting above) 477 /* Paths:
478 * This object contains a fallback array. We give the browes 3 options, and 479 * this allows it three attempts to get the file. Some of the files list a CDN 480 * as the first and second value, and then a local copy as a back up. Most 481 * just repeat the same file name 3 times. 482 */ 483 paths: { 484 jquery: ['https://code.jquery.com/jquery-2.2.4.min', 'https://code.jquery.com/jquery-2.2.4.min', '/script/jquery-2.1.3.min'], // Fallback to local 485 'jquery-ui': ['https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min', '/script/jquery-ui.min'], // Fallback to local 486 angular: ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular.min', '/script/angular'], // Fallback to local 487 'angular-animate': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-animate.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-animate.min', '/script/angular-animate'], // Fallback to local 488 'angular-aria': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-aria.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-aria.min', '/script/angular-aria'], // Fallback to local 489 'angular-cookies': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-cookies.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-cookies.min', '/script/angular-cookies'], // Fallback to local 490 'angular-loader': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-loader.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-loader.min', '/script/angular-loader'], // Fallback to local 491 'angular-messages': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-messages.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-messages.min', '/script/angular-messages'], // Fallback to local 492 'angular-resource': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-resource.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-resource.min', '/script/angular-resource'], // Fallback to local 493 'angular-route': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-route.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-route.min', '/script/angular-route'], // Fallback to local 494 'angular-sanitize': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-sanitize.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-sanitize.min', '/script/angular-sanitize'], // Fallback to local 495 'angular-touch': ['https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-touch.min', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.11/angular-touch.min', '/script/angular-touch'], // Fallback to local 496 'thirdparty-global': ['thirdparty-global', 'thirdparty-global', 'thirdparty-global'], // Included in page 497 page: ['page', 'page', 'page'], // Included in loader 498 vspot: ['vspot', 'vspot', 'vspot'], // Included in loader 499 xdate: ['xdate', 'xdate', 'xdate'], // Included in page 500 'vspot-services': ['vspot-angular/services/services', 'vspot-angular/services/services', 'vspot-angular/services/services'], // Included in loader 501 'vspot-resources': ['vspot-angular/resources/resources', 'vspot-angular/resources/resources', 'vspot-angular/resources/resources'], // Included in loader 502 'vspot-super-user-nav': ['vspot-angular/directives/super-user-nav/super-user-nav', 'vspot-angular/directives/super-user-nav/super-user-nav', 'vspot-angular/directives/super-user-nav/super-user-nav'], 503 'vspot-arrow-steps': ['vspot-angular/directives/arrow-steps/arrow-steps', 'vspot-angular/directives/arrow-steps/arrow-steps', 'vspot-angular/directives/arrow-steps/arrow-steps'], 504 localize: ['vspot-angular/modules/localize', 'vspot-angular/modules/localize', 'vspot-angular/modules/localize'], // Included in loader 505 'activity-details': ['vspot-angular/modules/activity-details', 'vspot-angular/modules/activity-details', 'vspot-angular/modules/activity-details'], // Included in activity 506 'activity-jobs': ['vspot-angular/modules/activity-jobs', 'vspot-angular/modules/activity-jobs', 'vspot-angular/modules/activity-jobs'], // Included in activity 507 'activity-invites': ['vspot-angular/modules/activity-invites', 'vspot-angular/modules/activity-invites', 'vspot-angular/modules/activity-invites'], // Included in activity 508 'activity-participants': ['vspot-angular/modules/activity-participants', 'vspot-angular/modules/activity-participants', 'vspot-angular/modules/activity-participants'], // Included in activity 509 'activity-finish': ['vspot-angular/modules/activity-finish', 'vspot-angular/modules/activity-finish', 'vspot-angular/modules/activity-finish'], // Included in activity 510 'activity-messaging': ['vspot-angular/modules/activity-messaging', 'vspot-angular/modules/activity-messaging', 'vspot-angular/modules/activity-messaging'], // Included in activity 511 'activity-reports': ['vspot-angular/modules/activity-reports', 'vspot-angular/modules/activity-reports', 'vspot-angular/modules/activity-reports'], // Included in activity 512 'activity-contributions': ['vspot-angular/modules/activity-contributions', 'vspot-angular/modules/activity-contributions', 'vspot-angular/modules/activity-contributions'], // Included in activity 513 'activity-waiver': ['vspot-angular/modules/activity-waiver', 'vspot-angular/modules/activity-waiver', 'vspot-angular/modules/activity-waiver'], // Included in activity 514 'activity-notifications': ['vspot-angular/modules/activity-notifications', 'vspot-angular/modules/activity-notifications', 'vspot-angular/modules/activity-notifications'], // Included in activity 515 'activity-publishing': ['vspot-angular/modules/activity-publishing', 'vspot-angular/modules/activity-publishing', 'vspot-angular/modules/activity-publishing'], // Included in activity 516 'activity-locking': ['vspot-angular/modules/activity-locking', 'vspot-angular/modules/activity-locking', 'vspot-angular/modules/activity-locking'], // Included in activity 517 'activity-themes': ['vspot-angular/modules/activity-themes', 'vspot-angular/modules/activity-themes', 'vspot-angular/modules/activity-themes'], // Included in activity 518 'activity-jobs-assign': ['vspot-angular/modules/activity-jobs-assign', 'vspot-angular/modules/activity-jobs-assign', 'vspot-angular/modules/activity-jobs-assign'], // Included in activity-jobs, edit participants 519 'activity-jobs-delete-day': ['vspot-angular/modules/activity-jobs-delete-day', 'vspot-angular/modules/activity-jobs-delete-day', 'vspot-angular/modules/activity-jobs-delete-day'], // Included in activity-jobs 520 'activity-jobs-duplicate-day': ['vspot-angular/modules/activity-jobs-duplicate-day', 'vspot-angular/modules/activity-jobs-duplicate-day', 'vspot-angular/modules/activity-jobs-duplicate-day'], // Included in activity-jobs 521 'activity-jobs-delete-job': ['vspot-angular/modules/activity-jobs-delete-job', 'vspot-angular/modules/activity-jobs-delete-job', 'vspot-angular/modules/activity-jobs-delete-job'], // Included in activity-jobs 522 'activity-jobs-delete-events': ['vspot-angular/modules/activity-jobs-delete-events', 'vspot-angular/modules/activity-jobs-delete-events', 'vspot-angular/modules/activity-jobs-delete-events'], // Included in activity-jobs 523 'error-handler': ['vspot-angular/modules/error-handler', 'vspot-angular/modules/error-handler' , 'vspot-angular/modules/error-handler'], // Included in loader 524 'generic-confirm': ['vspot-angular/modules/generic-confirm', 'vspot-angular/modules/generic-confirm', 'vspot-angular/modules/generic-confirm'], // Included in activity 525 // 'premiumcancel': ['vspot-angular/modules/premiumcancel', 'vspot-angular/modules/premiumcancel', 'vspot-angular/modules/premiumcancel'], 526 'vspot-user': ['vspot-user', 'vspot-user', 'vspot-user'], // a file delivered by rails; see users controller for details 527 froala: ['froala_editor2/js/froala_editor.min', 'froala_editor2/js/froala_editor.min', 'froala_editor2/js/froala_editor.min'], 528 'froala-align': ['froala_editor2/js/plugins/align.min', 'froala_editor2/js/plugins/align.min', 'froala_editor2/js/plugins/align.min'], 529 'froala-beautifier': ['froala_editor2/js/plugins/code_beautifier.min', 'froala_editor2/js/plugins/code_beautifier.min', 'froala_editor2/js/plugins/code_beautifier.min'], 530 'froala-colors': ['froala_editor2/js/plugins/colors.min', 'froala_editor2/js/plugins/colors.min', 'froala_editor2/js/plugins/colors.min'], 531 'froala-font-family': ['froala_editor2/js/plugins/font_family.min', 'froala_editor2/js/plugins/font_family.min', 'froala_editor2/js/plugins/font_family.min'], 532 'froala-font-size': ['froala_editor2/js/plugins/font_size.min', 'froala_editor2/js/plugins/font_size.min', 'froala_editor2/js/plugins/font_size.min'], 533 'froala-fullscreen': ['froala_editor2/js/plugins/fullscreen.min', 'froala_editor2/js/plugins/fullscreen.min', 'froala_editor2/js/plugins/fullscreen.min'], 534 'froala-html': ['froala_editor2/js/plugins/code_view.min', 'froala_editor2/js/plugins/code_view.min', 'froala_editor2/js/plugins/code_view.min'], 535 'froala-image': ['froala_editor2/js/plugins/image.min', 'froala_editor2/js/plugins/image.min', 'froala_editor2/js/plugins/image.min'], 536 'froala-link': ['froala_editor2/js/plugins/link.min', 'froala_editor2/js/plugins/link.min', 'froala_editor2/js/plugins/link.min'], 537 'froala-lists': ['froala_editor2/js/plugins/lists.min', 'froala_editor2/js/plugins/lists.min', 'froala_editor2/js/plugins/lists.min'], 538 'froala-paragraph-format': ['froala_editor2/js/plugins/paragraph_format.min', 'froala_editor2/js/plugins/paragraph_format.min', 'froala_editor2/js/plugins/paragraph_format.min'], 539 'froala-url': ['froala_editor2/js/plugins/url.min', 'froala_editor2/js/plugins/url.min', 'froala_editor2/js/plugins/url.min'], 540 'froala-video': ['froala_editor2/js/plugins/video.min', 'froala_editor2/js/plugins/video.min', 'froala_editor2/js/plugins/video.min'], 541 'froala-vs-html-counter': ['froala_editor2/js/plugins/vs_html_counter', 'froala_editor2/js/plugins/vs_html_counter', 'froala_editor2/js/plugins/vs_html_counter'], 542 'angular-froala': ['angular-froala', 'angular-froala', 'angular-froala'], 543 'froala-sanitize': ['froala-sanitize', 'froala-sanitize', 'froala-sanitize'], 544 'angular-ui-calendar': ['angular-ui/ui-calendar/calendar', 'angular-ui/ui-calendar/calendar', 'angular-ui/ui-calendar/calendar'], 545 'datatables.net': ['datatables/datatables.net', '//cdn.datatables.net/1.10.12/js/jquery.dataTables.min', '//cdn.datatables.net/1.10.12/js/jquery.dataTables.min'], 546 547 'datatables': ["datatables/dataTables.bootstrap.min", "//cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min", "//cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min"], 548 'datatables.net-buttons': ['datatables/dataTables.buttons.min','datatables/dataTables.buttons.min', 'datatables/dataTables.buttons.min'], 549 // there is a conflict between datatables library (self-references as datatables.net) and angular. Have to have tw
549o targets 550 // that point to the same thing but with different paths. 551 'datatables-buttons': ['datatables/dataTables.buttons.min.2','datatables/dataTables.buttons.min.2', 'datatables/dataTables.buttons.min.2'], 552 'datatables-buttons-colVis': ['datatables/buttons.colVis.min', '//cdn.datatables.net/buttons/1.2.2/js/buttons.colVis.min', '//cdn.datatables.net/buttons/1.2.2/js/buttons.colVis.min'], 553 'datatables-buttons-html5': ['datatables/buttons.html5.min', '//cdn.datatables.net/buttons/1.2.2/js/buttons.html5.min', '//cdn.datatables.net/buttons/1.2.2/js/buttons.html5.min'], 554 'datatables-buttons-print': ['datatables/buttons.print.min', '//cdn.datatables.net/buttons/1.2.2/js/buttons.print.min', '//cdn.datatables.net/buttons/1.2.2/js/buttons.print.min'], 555 'datatables-colResize': ['angular-datatables/dist/dataTables.colResize', 'angular-datatables/dist/dataTables.colResize', 'angular-datatables/dist/dataTables.colResize'], 556 'angular-datatables-buttons': ['angular-datatables/dist/plugins/buttons/angular-datatables.buttons', 'angular-datatables/dist/plugins/buttons/angular-datatables.buttons', 'angular-datatables/dist/plugins/scroller/angular-datatables.buttons'], 557 'datatables-scroller': ['datatables/dataTables.scroller.min', '//cdn.datatables.net/scroller/1.4.2/js/dataTables.scroller.min', '//cdn.datatables.net/scroller/1.4.2/js/dataTables.scroller.min'], 558 'angular-datatables-scroller': ['angular-datatables/dist/plugins/scroller/angular-datatables.scroller', 'angular-datatables/dist/plugins/scroller/angular-datatables.scroller', 'angular-datatables/dist/plugins/scroller/angular-datatables.scroller'], 559 'angular-datatables': ['angular-datatables/dist/angular-datatables', 'angular-datatables/dist/angular-datatables', 'angular-datatables/dist/angular-datatables'], 560 moment: ['//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min', '//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min', 'moment.min'], 561 'moment-timezone': ['//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.43/moment-timezone-with-data-1970-2030.min','//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.43/moment-timezone-with-data-1970-2030.min','moment-timezone-with-data-1970-2030.min'], 562 'angular-moment': ['angular-moment.min', 'angular-moment.min', 'angular-moment.min'], 563 facebook: ['//connect.facebook.net/en_US/sdk','//connect.facebook.net/en_US/sdk','/tools/sdk'], // debug one if needed '//connect.facebook.net/en_US/sdk/debug', 564 google: ['https://apis.google.com/js/platform', 'https://apis.google.com/js/platform', 565 'https://apis.google.com/js/platform'], 566 googleReCaptcha: ['https://www.google.com/recaptcha/enterprise','https://www.google.com/recaptcha/enterprise','https://www.google.com/recaptcha/enterprise'], //https://www.google.com/recaptcha/api', 'https://www.google.com/recaptcha/api', 'https://www.google.com/recaptcha/api'], 567 twitter: ['/tools/widgets', 'https://platform.twitter.com/widgets', 'https://platform.twitter.com/widgets'], 568 pinterest: ['/tools/pinit', '//assets.pinterest.com/js/pinit', '//assets.pinterest.com/js/pinit'], 569 comscore: ['https://sb.scorecardresearch.com/beacon', 'https://sb.scorecardresearch.com/beacon','/tools/beacon' ], 570 datronics: ['//ads.pro-market.net/ads/scripts/site-132961', '//ads.pro-market.net/ads/scripts/site-132961', '//ads.pro-market.net/ads/scripts/site-132961'], 571 quantcast: ['https://secure.quantserve.com/quant', 'https://secure.quantserve.com/quant', 'https://secure.quantserve.com/quant'], 572 'super-user-reports': ['vspot-angular/modules/super-user-reports', 'vspot-angular/modules/super-user-reports', 'vspot-angular/modules/super-user-reports'], // Included in super-user 573 'super-user-messaging': ['vspot-angular/modules/super-user-messaging', 'vspot-angular/modules/super-user-messaging', 'vspot-angular/modules/super-user-messaging'], // Included in super-user 574 'super-user-contact-lists': ['vspot-angular/modules/super-user-contact-lists', 'vspot-angular/modules/super-user-contact-lists', 'vspot-angular/modules/super-user-contact-lists'], // Included in super-user 575 'quick-search': ['vspot-angular/modules/quick-search', 'vspot-angular/modules/quick-search', 'vspot-angular/modules/quick-search'], 576 'vspot-filters': ['vspot-angular/filters/filters', 'vspot-angular/filters/filters', 'vspot-angular/filters/filters'], // Included in super-user 577 'email-list-error': ['vspot-angular/modules/email-list-error', 'vspot-angular/modules/email-list-error', 'vspot-angular/modules/email-list-error'],
578 'activity-cal-subscriptions': ['vspot-angular/modules/activity-cal-subscriptions', 'vspot-angular/modules/activity-cal-subscriptions', 'vspot-angular/modules/activity-cal-subscriptions'], 579 'homepage': ['vspot-angular/modules/homepage', 'vspot-angular/modules/homepage', 'vspot-angular/modules/homepage'], 580 'timezones': ['vspot-angular/modules/timezones', 'vspot-angular/modules/timezones', 'vspot-angular/modules/timezones'], 581 'checkin-landing': ['vspot-angular/modules/checkin-landing', 'vspot-angular/modules/checkin-landing', 'vspot-angular/modules/checkin-landing'], 582 'activity-premium': ['vspot-angular/modules/activity-premium', 'vspot-angular/modules/activity-premium', 'vspot-angular/modules/activity-premium'], 583 'stripe': ['https://js.stripe.com/v3/?noext', 'https://js.stripe.com/v3/?noext', 'https://js.stripe.com/v3/?noext'], // The embedded version - the ?noext does nothing on the stripe side, but gets Require not to add the .js it usually automatically does 584 'stripe-checkout': ['https://checkout.stripe.com/checkout', 'https://checkout.stripe.com/checkout', 'https://checkout.stripe.com/checkout'], // The pop-up version 585 'job-shifts': ['vspot-angular/modules/job-shifts', 'vspot-angular/modules/job-shifts', 'vspot-angular/modules/job-shifts'], 586 'extra-fields': ['vspot-angular/modules/extra-fields', 'vspot-angular/modules/extra-fields', 'vspot-angular/modules/extra-fields'], 587 'add-edit-xtrafield': ['vspot-angular/modules/add-edit-xtrafield', 'vspot-angular/modules/add-edit-xtrafield', 'vspot-angular/modules/add-edit-xtrafield'], 588 'activity-jobs-compose-v2': ['vspot-angular/modules/activity-jobs-compose-v2', 'vspot-angular/modules/activity-jobs-compose-v2', 'vspot-angular/modules/activity-jobs-compose-v2'], 589 'angular-ui-grid': ['angular-ui/ui-grid', 'angular-ui/ui-grid', 'angular-ui/ui-grid'], 590 //'angular-ui-grid': ['angular-ui/ui-grid-branch', 'angular-ui/ui-grid-branch', 'angular-ui/ui-grid-branch'], 591 592 'vfs_fonts': ['/script/pdfMake/vfs_fonts', '/script/pdfMake/vfs_fonts', '/script/pdfMake/vfs_fonts'], 593 'pdfMake': ['/script/pdfMake/pdfmake', '/script/pdfMake/pdfmake', '/script/pdfMake/pdfmake'], 594 'angular-strap': ['/script/angular-strap/angular-strap', '/script/angular-strap/angular-strap', '/script/angular-strap/angular-strap'], 595 'angular-strap-tpl': ['/script/angular-strap/angular-strap.tpl', '/script/angular-strap/angular-strap.tpl', '/script/angular-strap/angular-strap.tpl'], 596 // 'angular-strap-timepicker': ['/script/angular-strap/modules/timepicker', '/script/angular-strap/modules/timepicker', '/script/angular-strap/modules/timepicker'], 597 // 'angular-strap-datepicker': ['/script/angular-strap/modules/datepicker', '/script/angular-strap/modules/datepicker', '/script/angular-strap/modules/datepicker'] 598 'paypal-sdk': ['https://www.paypal.com/sdk/js?client-id=Ac9t8xbrC4gLSqoKFGAvoifsh2r_XwtijujxH2WDJwcrzLB_YltM6wYi_Hrq1lekzTybh6KNreQeSFDN','https://www.paypal.com/sdk/js?client-id=Ac9t8xbrC4gLSqoKFGAvoifsh2r_XwtijujxH2WDJwcrzLB_YltM6wYi_Hrq1lekzTybh6KNreQeSFDN','https://www.paypal.com/sdk/js?client-id=Ac9t8xbrC4gLSqoKFGAvoifsh2r_XwtijujxH2WDJwcrzLB_YltM6wYi_Hrq1lekzTybh6KNreQeSFDN'], 599 // PWD: could not get this to load 'paypal-lightbox': ['https://www.paypal.com/webapps/merchantboarding/js/lib/lightbox/partner.js','https://www.paypal.com/webapps/merchantboarding/js/lib/lightbox/partner.js','https://www.paypal.com/webapps/merchantboarding/js/lib/lightbox/partner.js'] 600 'input-date-polyfill': ['/script/configurable-date-input-polyfill.dist','/script/configurable-date-input-polyfill.dist','/script/configurable-date-input-polyfill.dist'], 601 'slick': ['https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min','https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min','https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min'], 602 'smoothscroll': ['https://cdnjs.cloudflare.com/ajax/libs/jquery-smooth-scroll/2.2.0/jquery.smooth-scroll.min'], 603 'compare': ['/compare/js/app'], 604 'pubfig': ['https://a.pub.network/signup-com/pubfig.min'], 605 'vfs_cmp': ['/script/vfs_cmp'], 606 'wrapperMessagingWithoutDetection': ['https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection'] 607 }, 608 /* ... paths, shims, etc. */ 609 // PWD debug logging for require 610 onNodeCreated: function(node, config, moduleName, url) { 611 // console.log('module ' + moduleName + ' is about to be loaded'); 612 613 node.addEventListener('load', function() { 614 // console.log('module ' + moduleName + ' has been loaded'); 615 }); 616 617 node.addEventListener('error', function() { 618 // console.log('module ' + moduleName + ' could not be loaded'); 619 }); 620 }, 621 622 }; 623 624 requireConfig.paths['client-done'] = ['/client/client-done.CACHE_REPLACEME', '/client/client-done.CACHE_REPLACEME', '/client/client-done.CACHE_REPLACEME']; 625 requireConfig.paths['client-confirm'] = ['/client/client-confirm.CACHE_REPLACEME', '/client/client-confirm.CACHE_REPLACEME', '/client/client-confirm.CACHE_REPLACEME']; 626 requireConfig.paths['full-calendar'] = ['/script/angular-ui/ui-calendar/fullc
626alendar-2.0.2/fullcalendar.min', '/script/angular-ui/ui-calendar/fullcalendar-2.0.2/fullcalendar.min', '/script/angular-ui/ui-calendar/fullcalendar-2.0.2/fullcalendar.min']; 627 requireConfig.paths['angular-ui-bootstrap'] = ['/script/angular-ui/ui-bootstrap.min', '/script/angular-ui/ui-bootstrap.min', '/script/angular-ui/ui-bootstrap.min']; 628 requireConfig.paths['angular-ui-utils'] = ['/script/angular-ui/ui-utils.min', '/script/angular-ui/ui-utils.min', '/script/angular-ui/ui-utils.min']; 629 requireConfig.paths['angular-ui-router'] = ['/script/angular-ui/ui-router.min', '/script/angular-ui/ui-router.min', '/script/angular-ui/ui-router.min']; 630 requireConfig.paths['angular-strap'] = ['/script/angular-strap/angular-strap.min', '/script/angular-strap/angular-strap.min', '/script/angular-strap/angular-strap.min']; 631 requireConfig.paths['angular-strap-tpl'] = ['/script/angular-strap/angular-strap.tpl.min', '/script/angular-strap/angular-strap.tpl.min', '/script/angular-strap/angular-strap.tpl.min']; 632 requireConfig.paths['autofill-event'] = ['/script/autofill-event.CACHE_REPLACEME', '/script/autofill-event.CACHE_REPLACEME', '/script/autofill-event.CACHE_REPLACEME']; 633 requireConfig.paths['bootstrap'] = ['/script/bootstrap.CACHE_REPLACEME', '/script/bootstrap.CACHE_REPLACEME', '/script/bootstrap.CACHE_REPLACEME']; 634 requireConfig.paths['bootstrap-colorpicker-module'] = ['/script/colorpicker/bootstrap-colorpicker-module.CACHE_REPLACEME', '/script/colorpicker/bootstrap-colorpicker-module.CACHE_REPLACEME', '/script/colorpicker/bootstrap-colorpicker-module.CACHE_REPLACEME']; 635 requireConfig.paths['loader'] = ['/script/loader.CACHE_REPLACEME', '/script/loader.CACHE_REPLACEME', '/script/loader.CACHE_REPLACEME']; 636 requireConfig.paths['ng-md5'] = ['/script/angular-md5', '/script/angular-md5', '/script/angular-md5']; 637 requireConfig.paths['ng-file-upload'] = ['/script/ng-file-upload', '/script/ng-file-upload', '/script/ng-file-upload']; 638 requireConfig.paths['swap'] = ['/swap/swap.CACHE_REPLACEME', '/swap/swap.CACHE_REPLACEME', '/swap/swap.CACHE_REPLACEME']; 639 requireConfig.paths['tinyColor'] = ['/script/tinycolor.CACHE_REPLACEME', '/script/tinycolor.CACHE_REPLACEME', '/script/tinycolor.CACHE_REPLACEME']; 640 requireConfig.paths['input-date-polyfill'] = ['/script/configurable-date-input-polyfill.dist.CACHE_REPLACEME', '/script/configurable-date-input-polyfill.dist.CACHE_REPLACEME', '/script/configurable-date-input-polyfill.dist.CACHE_REPLACEME']; 641 requireConfig.paths['activity-invites-button'] = ['/script/vspot-angular/components/activity-invites/button/button.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/button/button.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/button/button.CACHE_REPLACEME']; 642 requireConfig.paths['activity-invites-email'] = ['/script/vspot-angular/components/activity-invites/email/email.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/email/email.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/email/email.CACHE_REPLACEME']; 643 requireConfig.paths['activity-invites-link'] = ['/script/vspot-angular/components/activity-invites/shareable-link/shareable-link.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/shareable-link/shareable-link.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/shareable-link/shareable-link.CACHE_REPLACEME']; 644 requireConfig.paths['activity-invites-remind'] = ['/script/vspot-angular/components/activity-invites/remind/remind.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/remind/remind.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/remind/remind.CACHE_REPLACEME']; 645 requireConfig.paths['activity-invites-social'] = ['/script/vspot-angular/components/activity-invites/social/social.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/social/social.CACHE_REPLACEME', '/script/vspot-angular/components/activity-invites/social/social.CACHE_REPLACEME']; 646 requireConfig.paths['activity-rows'] = ['/script/vspot-angular/components/participant-signup/activity-rows/activity-rows.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/activity-rows/activity-rows.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/activity-rows/activity-rows.CACHE_REPLACEME']; 647 requireConfig.paths['assignments-header'] = ['/script/vspot-angular/components/participant-signup/assignments-header/assignments-header.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/assignments-header/assignments-header.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/assignments-header/assignments-header.CACHE_REPLACEME']; 648 requireConfig.paths['assignment-widget'] = ['/script/vspot-angular/components/participant-signup/assignment-widget/assignment-widget.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/assignment-widget/assignment-widget.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/assignment-widget/assignment-widget.CACHE_REPLACEME']; 649 requireConfig.paths['confirm-email'] = ['/script/vspot-angular/components/participant-signup/confirm-email/confirm-email.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/confirm-email/confirm-email.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/confirm-email/confirm-email.CACHE_REPLACEME']; 650 requireConfig.paths['confirm-page'] = ['/script/vspot-angular/components/participant-signup/confirm-page/confirm-page.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/confirm-page/confirm-page.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/confirm-page/confirm-page.CACHE_REPLACEME']; 651 requireConfig.paths['dashboard-container'] = ['/script/vspot-angular/components/dashboard/dashboard-container/dashboard-container.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/dashboard-container/dashboard-container.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/dashboard-container/dashboard-container.CACHE_REPLACEME']; 652 requireConfig.paths['dashboard-copy-signup'] = ['/script/vspot-angular/components/dashboard/copy-signup/copy-signup.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/copy-signup/copy-signup.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/copy-signup/copy-signup.CACHE_REPLACEME']; 653 requireConfig.paths['dashboard-signup-archive'] = ['/script/vspot-angular/components/dashboard/signup-archive/signup-archive.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-archive/signup-archive.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-archive/signup-archive.CACHE_REPLACEME']; 654 requireConfig.paths['dashboard-signup-baton'] = ['/script/vspot-angular/components/dashboard/signup-baton/signup-baton.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-baton/signup-baton.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-baton/signup-baton.CACHE_REPLACEME']; 655 requireConfig.paths['dashboard-signup-delete'] = ['/script/vspot-angular/components/dashboard/signup-delete/signup-delete.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-delete/signup-delete.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-delete/signup-delete.CACHE_REPLACEME']; 656 requireConfig.paths['dashboard-signup-publish'] = ['/script/vspot-angular/components/dashboard/signup-publish/signup-publish.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-publish/signup-publish.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-publish/signup-publish.CACHE_REPLACEME']; 657 requireConfig.paths['dashboard-groups'] = ['/script/vspot-angular/components/dashboard/groups/groups.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups/groups.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups/groups.CACHE_REPLACEME']; 658 requireConfig.paths['dashboard-groups-delete'] = ['/script/vspot-angular/components/dashboard/groups-delete/groups-delete.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups-delete/groups-delete.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups-delete/groups-delete.CACHE_REPLACEME']; 659 requireConfig.paths['dashboard-groups-list'] = ['/script/vspot-angular/components/dashboard/groups-list/groups-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups-list/groups-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups-list/groups-list.CACHE_REPLACEME']; 660 requireConfig.paths['dashboard-invitation-archive'] = ['/script/vspot-angular/components/dashboard/invitation-archive/invitation-archive.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/invitation-archive/invitation-archive.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/invitation-archive/invitation-archive.CACHE_REPLACEME']; 661 requireConfig.paths['dashboard-invitations'] = ['/script/vspot-angular/components/dashboard/invitations/invitations.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/invitations/invitations.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/invitations/invitations.CACHE_REPLACEME']; 662 requireConfig.paths['dashboard-invitations-list'] = ['/script/vspot-angular/components/dashboard/invitations-list/invitations-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/invitations-list/invitations-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/invitations-list/invitations-list.CACHE_REPLACEME']; 663 requireConfig.paths['dashboard-loading'] = ['/script/vspot-angular/components/dashboard/loading/loading.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/loading/loading.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/loading/loading.CACHE_REPLACEME']; 664 requireConfig.paths['dashboard-no-grp-activities'] = ['/script/vspot-angular/components/dashboard/groups-no-activities/groups-no-activities.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups-no-activities/groups-no-activities.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/groups-no-activities/groups-no-activities.CACHE_REPLACEME']; 665 requireConfig.paths['dashboard-organizations'] = ['/script/vspot-angular/components/dashboard/organizations/organizations.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/organizations/organizations.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/organizations/organizations.CACHE_REPLACEME']; 666 requireConfig.paths['dashboard-orgs-list-signups'] = ['/script/vspot-angular/components/dashboard/organizations-list-signups/organizations-list-signups.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/organizations-list-signups/organizations-list-signups.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/organizations-list-signups/organizations-list-signups.CACHE_REPLACEME']; 667 requireConfig.paths['dashboard-orgs-list-users'] = ['/script/vspot-angular/components/dashboard/organizations-list-users/organizations-list-users.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/organizations-list-users/organizations-list-users.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/organizations-list-users/organizations-list-users.CACHE_REPLACEME']; 668 requireConfig.paths['dashboard-reports'] = ['/script/vspot-angular/components/dashboard/reports/reports.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/reports/reports.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/reports/reports.CACHE_REPLACEME']; 669 requireConfig.paths['dashboard-reports-list'] = ['/script/vspot-angular/components/dashboard/reports-list/reports-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/reports-list/reports-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/reports-list/reports-list.CACHE_REPLACEME']; 670 requireConfig.paths['dashboard-signup-occupied'] = ['/script/vspot-angular/components/dashboard/signup-occupied/signup-occupied.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-occupied/signup-occupied.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signup-occupied/signup-occupied.CACHE_REPLACEME']; 671 requireConfig.paths['dashboard-signups'] = ['/script/vspot-angular/components/dashboard/signups/signups.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signups/signups.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signups/signups.CACHE_REPLACEME']; 672 requireConfig.paths['dashboard-signups-list'] = ['/script/vspot-angular/components/dashboard/signups-list/signups-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signups-list/signups-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signups-list/signups-list.CACHE_REPLACEME'];
673 requireConfig.paths['dashboard-signups-lock'] = ['/script/vspot-angular/components/dashboard/signups-lock/signups-lock.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signups-lock/signups-lock.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/signups-lock/signups-lock.CACHE_REPLACEME']; 674 requireConfig.paths['dashboard-spots'] = ['/script/vspot-angular/components/dashboard/spots/spots.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/spots/spots.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/spots/spots.CACHE_REPLACEME']; 675 requireConfig.paths['dashboard-spots-list'] = ['/script/vspot-angular/components/dashboard/spots-list/spots-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/spots-list/spots-list.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/spots-list/spots-list.CACHE_REPLACEME']; 676 requireConfig.paths['dashboard-top'] = ['/script/vspot-angular/components/dashboard/dashboard-top/dashboard-top.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/dashboard-top/dashboard-top.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/dashboard-top/dashboard-top.CACHE_REPLACEME']; 677 requireConfig.paths['dashboard-welcome'] = ['/script/vspot-angular/components/dashboard/welcome/welcome.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/welcome/welcome.CACHE_REPLACEME', '/script/vspot-angular/components/dashboard/welcome/welcome.CACHE_REPLACEME']; 678 requireConfig.paths['date-range'] = ['/script/vspot-angular/components/participant-signup/date-range/date-range.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/date-range/date-range.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/date-range/date-range.CACHE_REPLACEME']; 679 requireConfig.paths['date-range-picker'] = ['/script/vspot-angular/components/date-range-picker/date-range-picker.CACHE_REPLACEME', '/script/vspot-angular/components/date-range-picker/date-range-picker.CACHE_REPLACEME', '/script/vspot-angular/components/date-range-picker/date-range-picker.CACHE_REPLACEME']; 680 requireConfig.paths['email-preferences'] = ['/script/vspot-angular/components/email-preferences/email-preferences.CACHE_REPLACEME', '/script/vspot-angular/components/email-preferences/email-preferences.CACHE_REPLACEME', '/script/vspot-angular/components/email-preferences/email-preferences.CACHE_REPLACEME']; 681 requireConfig.paths['existing-assignments'] = ['/script/vspot-angular/components/participant-signup/existing-assignments/existing-assignments.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/existing-assignments/existing-assignments.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/existing-assignments/existing-assignments.CACHE_REPLACEME']; 682 requireConfig.paths['forgot-password'] = ['/script/vspot-angular/components/forgot-password/forgot-password.CACHE_REPLACEME', '/script/vspot-angular/components/forgot-password/forgot-password.CACHE_REPLACEME', '/script/vspot-angular/components/forgot-password/forgot-password.CACHE_REPLACEME']; 683 requireConfig.paths['invitation'] = ['/script/vspot-angular/components/participant-signup/invitation/invitation.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/invitation/invitation.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/invitation/invitation.CACHE_REPLACEME']; 684 requireConfig.paths['job-comments'] = ['/script/vspot-angular/components/participant-signup/job-comments/job-comments.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/job-comments/job-comments.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/job-comments/job-comments.CACHE_REPLACEME']; 685 requireConfig.paths['left-rail'] = ['/script/vspot-angular/components/participant-signup/left-rail/left-rail.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/left-rail/left-rail.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/left-rail/left-rail.CACHE_REPLACEME']; 686 requireConfig.paths['log-in'] = ['/script/vspot-angular/components/log-in/log-in.CACHE_REPLACEME', '/script/vspot-angular/components/log-in/log-in.CACHE_REPLACEME', '/script/vspot-angular/components/log-in/log-in.CACHE_REPLACEME']; 687 requireConfig.paths['main-nav'] = ['/script/vspot-angular/components/menu/main-nav/main-nav.CACHE_REPLACEME', '/script/vspot-angular/components/menu/main-nav/main-nav.CACHE_REPLACEME', '/script/vspot-angular/components/menu/main-nav/main-nav.CACHE_REPLACEME']; 688 requireConfig.paths['menu-invitations'] = ['/script/vspot-angular/components/menu/menu-invitations/menu-invitations.CACHE_REPLACEME', '/script/vspot-angular/components/menu/menu-invitations/menu-invitations.CACHE_REPLACEME', '/script/vspot-angular/components/menu/menu-invitations/menu-invitations.CACHE_REPLACEME']; 689 requireConfig.paths['menu-organizations'] = ['/script/vspot-angular/components/menu/menu-organizations/menu-organizations.CACHE_REPLACEME', '/script/vspot-angular/components/menu/menu-organizations/menu-organizations.CACHE_REPLACEME', '/script/vspot-angular/components/menu/menu-organizations/menu-organizations.CACHE_REPLACEME']; 690 requireConfig.paths['modal-manager'] = ['/script/vspot-angular/components/participant-signup/modal-manager/modal-manager.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/modal-manager/modal-manager.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/modal-manager/modal-manager.CACHE_REPLACEME']; 691 requireConfig.paths['my-info'] = ['/script/vspot-angular/components/participant-signup/my-info/my-info.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/my-info/my-info.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/my-info/my-info.CACHE_REPLACEME']; 692 requireConfig.paths['number-picker'] = ['/script/vspot-angular/components/participant-signup/number-picker/number-picker.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/number-picker/number-picker.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/number-picker/number-picker.CACHE_REPLACEME']; 693 requireConfig.paths['participants'] = ['/script/vspot-angular/components/participant-signup/participants/participants.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participants/participants.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participants/participants.CACHE_REPLACEME']; 694 requireConfig.paths['participant-dot'] = ['/script/vspot-angular/components/participant-signup/participant-dot/participant-dot.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-dot/participant-dot.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-dot/participant-dot.CACHE_REPLACEME']; 695 requireConfig.paths['participant-identify'] = ['/script/vspot-angular/components/participant-signup/participant-identify/participant-identify.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-identify/participant-identify.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-identify/participant-identify.CACHE_REPLACEME']; 696 requireConfig.paths['participant-list'] = ['/script/vspot-angular/components/participant-signup/participant-list/participant-list.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-list/participant-list.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-list/participant-list.CACHE_REPLACEME']; 697 requireConfig.paths['participant-waiver'] = ['/script/vspot-angular/components/participant-signup/participant-waiver/participant-waiver.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-waiver/participant-waiver.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/participant-waiver/participant-waiver.CACHE_REPLACEME']; 698 requireConfig.paths['premium-account'] = ['/script/vspot-angular/components/premium/premium-account/premium-account.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-account/premium-account.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-account/premium-account.CACHE_REPLACEME']; 699 requireConfig.paths['premium-button'] = ['/script/vspot-angular/components/premium/premium-button/premium-button.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-button/premium-button.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-button/premium-button.CACHE_REPLACEME']; 700 requireConfig.paths['premium-campus-plan'] = ['/script/vspot-angular/components/premium/premium-campus-plan/premium-campus-plan.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-campus-plan/premium-campus-plan.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-campus-plan/premium-campus-plan.CACHE_REPLACEME']; 701 requireConfig.paths['premium-subscription'] = ['/script/vspot-angular/components/premium/premium-subscription/premium-subscription.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-subscription/premium-subscription.CACHE_REPLACEME', '/script/vspot-angular/components/premium/premium-subscription/premium-subscription.CACHE_REPLACEME']; 702 requireConfig.paths['register'] = ['/script/vspot-angular/components/register/register.CACHE_REPLACEME', '/script/vspot-angular/components/register/register.CACHE_REPLACEME', '/script/vspot-angular/components/register/register.CACHE_REPLACEME'];
703 requireConfig.paths['signup-share'] = ['/script/vspot-angular/components/participant-signup/signup-share/signup-share.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/signup-share/signup-share.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/signup-share/signup-share.CACHE_REPLACEME']; 704 requireConfig.paths['stripe-form'] = ['/script/vspot-angular/components/premium/stripe-form/stripe-form.CACHE_REPLACEME', '/script/vspot-angular/components/premium/stripe-form/stripe-form.CACHE_REPLACEME', '/script/vspot-angular/components/premium/stripe-form/stripe-form.CACHE_REPLACEME']; 705 requireConfig.paths['swap-page'] = ['/script/vspot-angular/components/participant-signup/swap-page/swap-page.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/swap-page/swap-page.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/swap-page/swap-page.CACHE_REPLACEME']; 706 requireConfig.paths['time-range'] = ['/script/vspot-angular/components/participant-signup/time-range/time-range.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/time-range/time-range.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/time-range/time-range.CACHE_REPLACEME']; 707 requireConfig.paths['upgrade-prompt'] = ['/script/vspot-angular/components/premium/upgrade-prompt/upgrade-prompt.CACHE_REPLACEME', '/script/vspot-angular/components/premium/upgrade-prompt/upgrade-prompt.CACHE_REPLACEME', '/script/vspot-angular/components/premium/upgrade-prompt/upgrade-prompt.CACHE_REPLACEME']; 708 requireConfig.paths['upgrade-prompt-link'] = ['/script/vspot-angular/components/premium/upgrade-prompt-link/upgrade-prompt-link.CACHE_REPLACEME', '/script/vspot-angular/components/premium/upgrade-prompt-link/upgrade-prompt-link.CACHE_REPLACEME', '/script/vspot-angular/components/premium/upgrade-prompt-link/upgrade-prompt-link.CACHE_REPLACEME']; 709 requireConfig.paths['user-checkbox'] = ['/script/vspot-angular/components/user/checkbox/checkbox.CACHE_REPLACEME', '/script/vspot-angular/components/user/checkbox/checkbox.CACHE_REPLACEME', '/script/vspot-angular/components/user/checkbox/checkbox.CACHE_REPLACEME']; 710 requireConfig.paths['user-feedback'] = ['/script/vspot-angular/components/user/feedback/feedback.CACHE_REPLACEME', '/script/vspot-angular/components/user/feedback/feedback.CACHE_REPLACEME', '/script/vspot-angular/components/user/feedback/feedback.CACHE_REPLACEME']; 711 requireConfig.paths['user-info'] = ['/script/vspot-angular/components/user/info/info.CACHE_REPLACEME', '/script/vspot-angular/components/user/info/info.CACHE_REPLACEME', '/script/vspot-angular/components/user/info/info.CACHE_REPLACEME']; 712 requireConfig.paths['notify-me'] = ['/script/vspot-angular/components/participant-signup/notify-me/notify-me.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/notify-me/notify-me.CACHE_REPLACEME', '/script/vspot-angular/components/participant-signup/notify-me/notify-me.CACHE_REPLACEME']; 713 requireConfig.paths['user-waiver'] = ['/script/vspot-angular/components/user/waiver/waiver.CACHE_REPLACEME', '/script/vspot-angular/components/user/waiver/waiver.CACHE_REPLACEME', '/script/vspot-angular/components/user/waiver/waiver.CACHE_REPLACEME']; 714 requireConfig.paths['whoscoming-component'] = ['/script/vspot-angular/components/grid/whoscoming/grid.whoscoming.CACHE_REPLACEME', '/script/vspot-angular/components/grid/whoscoming/grid.whoscoming.CACHE_REPLACEME', '/script/vspot-angular/components/grid/whoscoming/grid.whoscoming.CACHE_REPLACEME']; 715 requireConfig.paths['vspot-activity-nav'] = ['/script/vspot-angular/directives/activity-nav/activity-nav.CACHE_REPLACEME', '/script/vspot-angular/directives/activity-nav/activity-nav.CACHE_REPLACEME', '/script/vspot-angular/directives/activity-nav/activity-nav.CACHE_REPLACEME']; 716 requireConfig.paths['check-user'] = ['/script/vspot-angular/directives/check-user/check-user.CACHE_REPLACEME', '/script/vspot-angular/directives/check-user/check-user.CACHE_REPLACEME', '/script/vspot-angular/directives/check-user/check-user.CACHE_REPLACEME']; 717 requireConfig.paths['vspot-comments'] = ['/script/vspot-angular/directives/comments/comments.CACHE_REPLACEME', '/script/vspot-angular/directives/comments/comments.CACHE_REPLACEME', '/script/vspot-angular/directives/comments/comments.CACHE_REPLACEME']; 718 requireConfig.paths['vspot-multi-datepicker'] = ['/script/vspot-angular/directives/datepicker/multi-datepicker.CACHE_REPLACEME', '/script/vspot-angular/directives/datepicker/multi-datepicker.CACHE_REPLACEME', '/script/vspot-angular/directives/datepicker/multi-datepicker.CACHE_REPLACEME']; 719 requireConfig.paths['vspot-job-counts'] = ['/script/vspot-angular/directives/job-counts/job-counts.CACHE_REPLACEME', '/script/vspot-angular/directives/job-counts/job-counts.CACHE_REPLACEME', '/script/vspot-angular/directives/job-counts/job-counts.CACHE_REPLACEME']; 720 requireConfig.paths['vspot-overflow'] = ['/script/vspot-angular/directives/overflow/overflow.CACHE_REPLACEME', '/script/vspot-angular/directives/overflow/overflow.CACHE_REPLACEME', '/script/vspot-angular/directives/overflow/overflow.CACHE_REPLACEME']; 721 requireConfig.paths['school-search'] = ['/script/vspot-angular/directives/school-search/school-search.CACHE_REPLACEME', '/script/vspot-angular/directives/school-search/school-search.CACHE_REPLACEME', '/script/vspot-angular/directives/school-search/school-search.CACHE_REPLACEME']; 722 requireConfig.paths['vspot-steps'] = ['/script/vspot-angular/directives/steps/steps.CACHE_REPLACEME', '/script/vspot-angular/directives/steps/steps.CACHE_REPLACEME', '/script/vspot-angular/directives/steps/steps.CACHE_REPLACEME']; 723 requireConfig.paths['vspot-validation'] = ['/script/vspot-angular/directives/validation/validation.CACHE_REPLACEME', '/script/vspot-angular/directives/validation/validation.CACHE_REPLACEME', '/script/vspot-angular/directives/validation/validation.CACHE_REPLACEME']; 724 requireConfig.paths['activity'] = ['/script/vspot-angular/modules/activity.CACHE_REPLACEME', '/script/vspot-angular/modules/activity.CACHE_REPLACEME', '/script/vspot-angular/modules/activity.CACHE_REPLACEME']; 725 requireConfig.paths['contributions'] = ['/script/vspot-angular/modules/contributions.CACHE_REPLACEME', '/script/vspot-angular/modules/contributions.CACHE_REPLACEME', '/script/vspot-angular/modules/contributions.CACHE_REPLACEME']; 726 requireConfig.paths['dashboard'] = ['/script/vspot-angular/modules/dashboard.CACHE_REPLACEME', '/script/vspot-angular/modules/dashboard.CACHE_REPLACEME', '/script/vspot-angular/modules/dashboard.CACHE_REPLACEME']; 727 requireConfig.paths['dashboard-nav'] = ['/script/vspot-angular/modules/dashboard-nav.CACHE_REPLACEME', '/script/vspot-angular/modules/dashboard-nav.CACHE_REPLACEME', '/script/vspot-angular/modules/dashboard-nav.CACHE_REPLACEME']; 728 requireConfig.paths['entry'] = ['/script/vspot-angular/modules/entry.CACHE_REPLACEME', '/script/vspot-angular/modules/entry.CACHE_REPLACEME', '/script/vspot-angular/modules/entry.CACHE_REPLACEME']; 729 requireConfig.paths['feedback-link'] = ['/script/vspot-angular/modules/feedback-link.CACHE_REPLACEME', '/script/vspot-angular/modules/feedback-link.CACHE_REPLACEME', '/script/vspot-angular/modules/feedback-link.CACHE_REPLACEME']; 730 requireConfig.paths['group-compose'] = ['/script/vspot-angular/modules/group-compose.CACHE_REPLACEME', '/script/vspot-angular/modules/group-compose.CACHE_REPLACEME', '/script/vspot-angular/modules/group-compose.CACHE_REPLACEME']; 731 requireConfig.paths['group-page'] = ['/script/vspot-angular/modules/group-page.CACHE_REPLACEME', '/script/vspot-angular/modules/group-page.CACHE_REPLACEME', '/script/vspot-angular/modules/group-page.CACHE_REPLACEME']; 732 requireConfig.paths['participant-signup'] = ['/script/vspot-angular/modules/participant-signup.CACHE_REPLACEME', '/script/vspot-angular/modules/participant-signup.CACHE_REPLACEME', '/script/vspot-angular/modules/participant-signup.CACHE_REPLACEME']; 733 requireConfig.paths['premiumcancel'] = ['/script/vspot-angular/modules/premiumcancel.CACHE_REPLACEME', '/script/vspot-angular/modules/premiumcancel.CACHE_REPLACEME', '/script/vspot-angular/modules/premiumcancel.CACHE_REPLACEME']; 734 requireConfig.paths['pricing'] = ['/script/vspot-angular/modules/pricing.CACHE_REPLACEME', '/script/vspot-angular/modules/pricing.CACHE_REPLACEME', '/script/vspot-angular/modules/pricing.CACHE_REPLACEME']; 735 requireConfig.paths['profile'] = ['/script/vspot-angular/modules/profile.CACHE_REPLACEME', '/script/vspot-angular/modules/profile.CACHE_REPLACEME', '/script/vspot-angular/modules/profile.CACHE_REPLACEME']; 736 requireConfig.paths['signin'] = ['/script/vspot-angular/modules/signin.CACHE_REPLACEME', '/script/vspot-angular/modules/signin.CACHE_REPLACEME', '/script/vspot-angular/modules/signin.CACHE_REPLACEME']; 737 requireConfig.paths['super-user'] = ['/script/vspot-angular/modules/super-user.CACHE_REPLACEME', '/script/vspot-angular/modules/super-user.CACHE_REPLACEME', '/script/vspot-angular/modules/super-user.CACHE_REPLACEME']; 738 requireConfig.paths['testimonials'] = ['/script/vspot-angular/modules/testimonials.CACHE_REPLACEME', '/script/vspot-angular/modules/testimonials.CACHE_REPLACEME', '/script/vspot-angular/modules/testimonials.CACHE_REPLACEME']; 739 requireConfig.paths['user-menu'] = ['/script/vspot-angular/modules/user-menu.CACHE_REPLACEME', '/script/vspot-angular/modules/user-menu.CACHE_REPLACEME', '/script/vspot-angular/modules/user-menu.CACHE_REPLACEME']; 740 requireConfig.paths['grid-module'] = ['/script/vspot-angular/components/grid/common/grid.module.CACHE_REPLACEME', '/script/vspot-angular/components/grid/common/grid.module.CACHE_REPLACEME', '/script/vspot-angular/components/grid/common/grid.module.CACHE_REPLACEME']; 741</script>
741 742 743<!-- This is just IE 10 and below: -->
744<script> 745 /*@cc_on 746 Vspot.oldBrowser = true; 747 @*/ 748</script>
748 749
750<script src="https://assets.signup.com/assets/runtime-8a731362fdc4b292da70a796043a051347ad9d1d01ac25f51f593da798b3761f.js"></script>
vendor: 1 bytes, line 750
750
751<script src="https://assets.signup.com/assets/common-522442627ef05ab0bbd856308e96e014b7125d6b80fc65147cd15f2942f7226b.js"></script>
vendor: 1 bytes, line 751
751
752<script src="https://assets.signup.com/assets/common-router-6dddaa78d4033d710eed1973ed1b6312fb8d478563d61c05e07c01d2c16ccc2f.js"></script>
752 753
754<script src="https://assets.signup.com/assets/pricing-a93ecfc9a297e499731310a054a8c3dffdc5a2866a24f53801d125e5ef8151a5.js"></script>
754 755
756<script> 757 758</script>
758 759 760 <!--
760<script type="text/javascript">--> 761 <!-- var _iub = _iub || [];--> 762 <!-- _iub.csConfiguration = {"askConsentAtCookiePolicyUpdate":true,"countryDetection":true,"enableLgpd":true,"enableTcf":true,"enableUspr":false,--> 763 <!-- "gdprAppliesGlobally":false,"googleAdditionalConsentMode":true,"lang":"en","lgpdAppliesGlobally":false,"logLevel":"info","perPurposeConsent":true,"siteId":2321210,"whitelabel":false,"cookiePolicyId":67866811, "banner":{ "acceptButtonCaptionColor":"white","acceptButtonColor":"#0073CE","acceptButtonDisplay":true,"backgroundColor":"white","closeButtonRejects":true,"customizeButtonCaptionColor":"#4D4D4D","customizeButtonColor":"#DADADA","customizeButtonDisplay":true,"explicitWithdrawal":true,"listPurposes":true,"position":"bottom","rejectButtonCaptionColor":"white","rejectButtonColor":"#0073CE","rejectButtonDisplay":true,"showPurposesToggles":true,"textColor":"black" }};--> 764 <!-- </script>
764--> 765 <!--
765<script type="text/javascript" src="//cs.iubenda.com/sync/2321210.js"></script>
765--> 766 <!--
766<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stub-v2.js"></script>
766--> 767 <!--
767<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/safe-tcf-v2.js"></script>
767--> 768 <!-- DO NOT ENABLE THIS ONE - crashes/hangs
768<script type="text/javascript" src="//cdn.iubenda.com/cs/gpp/stub.js"></script>
768--> 769 <!--
769<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
769--> 770
770<script> 771 // Option B: vfs_cmp + the privacy wrapper are now loaded as plain
771<script> 772 // tags below (after this _sp_ config), instead of require(['loader'], ...). 773 window._sp_queue = []; 774 window._sp_ = { 775 config: { 776 accountId: 1638, 777 baseEndpoint: "https://cdn.privacy-mgmt.com", 778 usnat: { 779 includeUspApi: true, 780 }, 781 782 gdpr: {}, 783 events: { 784 /* Function required for resurfacing links */ 785 onConsentReady: function (message_type, uuid, string, info) { 786 if (message_type == "usnat" && info.applies) { 787 if (false) { 788 console.log("Skipping usnat GPP footer link styling"); 789 } else { 790 setTimeout(function() { 791 /* code to insert the GPP footer link */ 792 document.getElementById("pmLink").style.visibility = "visible"; 793 document.getElementById("pmLink").innerHTML = 794 "Privacy Preferences"; // Do Not Sell or Share My Personal Information"; 795 document.getElementById("pmLink").onclick = function () { 796 /* Set GPP ID */ 797 window._sp_.usnat.loadPrivacyManagerModal("1035372"); 798 }; 799 },1000); 800 } 801 } 802 if (message_type == "gdpr" && info.applies) { 803 if (false) { 804 console.log("Skipping usnat GPP footer link styling"); 805 } else { 806 setTimeout(function () { 807 /* code to insert the GDPR footer link */ 808 document.getElementById("pmLink").style.visibility = "visible"; 809 document.getElementById("pmLink").innerHTML = 810 "Privacy Preferences"; 811 document.getElementById("pmLink").onclick = function () { 812 /* Set GDPR ID */ 813 window._sp_.gdpr.loadPrivacyManagerModal("899033"); 814 }; 815 }, 1000); 816 } 817 } 818 }, 819 onError: function () { 820 console.log("[event] onError", arguments); 821 }, 822 }, 823 }, 824 }; 825 826 </script>
826 827 828
828<script src="https://assets.signup.com/assets/vfs_cmp-aaf5adf63984b21e74fd76079181fa580e36c2e7497bc22ad29a13195cbf1ddb.js"></script>
828 829
829<script src="https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection.js" async></script>
829 830 <style> 831 #pmLink { 832 visibility: hidden; 833 text-decoration: none; 834 cursor: pointer; 835 background: transparent; 836 border: none; 837 } 838 839 #pmLink:hover { 840 visibility: visible; 841 color: grey; 842 } 843 </style> 844 845 846 </head> 847 848 <body id="page_top" class="vs1 responsive"> 849 <div id="fb-root"></div> 850 851 852
853<script src="https://assets.signup.com/assets/ads-d3f20288d9622f2cabed0c29690e5f44d7997dc4dc4286bfbd10f2f5ae4aecf6.js"></script>
853 854 855<!-- Global site tag (gtag.js) - Google Analytics --> 856<!-- PWD: included below
vendor: 64 bytes, line 856
856 <script async src="https://www.googletagmanager.com/gtag/js?id=
856G-C0MMZ3FTJS
vendor: 12 bytes, line 856
856"></script>
856--> 857<!-- moved to _head to happen before CMP loading --> 858<!--
858<script>--> 859<!-- window.dataLayer = window.dataLayer || [];--> 860<!-- function gtag(){dataLayer.push(arguments);}--> 861<!-- gtag('js', new Date());--> 862<!--</script>
862--> 863
864<script> 865function get_tracking_url(){ 866 var url = window.location.pathname; 867 var query = window.location.search; 868 if (query.length > 0) url = url + query; 869 870 var client_offset = url.indexOf("/client/"); 871 var dashboard_offset = url.indexOf("/Dashboard"); 872 var group_offset = url.indexOf("/group/"); 873 var loginentry_offset= url.indexOf("/login/entry/"); 874 var mobileweb_offset = url.indexOf("/mobileweb/vspot.html"); 875 var unsub_offset = url.indexOf("/Safe-Unsubscribe"); 876 var index_offset = url.indexOf("/index.html"); 877 878 if (client_offset > -1) { 879 if (url.indexOf("/client/invitation2") > -1) 880 return '/client2/landing'; 881 else if (url.indexOf("/client/invitation") > -1) 882 return url.substring(0,client_offset+"/client/invitation".length); 883 else if (url.indexOf("/client/demo_done") > -1) 884 return url.substring(0,client_offset+"/client/demo_done".length); 885 else if (url.indexOf("/client/confirm") > -1) 886 return url.substring(0,client_offset+"/client/confirm".length); 887 else if (url.indexOf("/client/done") > -1) 888 return url.substring(0,client_offset+"/client/done".length); 889 else if (url.indexOf("/client/information") > -1) 890 return url.substring(0,client_offset+"/client/information".length); 891 else 892 return url.substring(0,client_offset+"/client".length); 893 } 894 else if (dashboard_offset > -1) { 895 return url.substring(0,dashboard_offset+"/Dashboard".length); 896 } 897 else if (group_offset > -1) { 898 return url.substring(0,group_offset+"/group/".length); 899 } 900 else if (loginentry_offset > -1) { 901 return url.substring(0,loginentry_offset+"/login/entry/".length); 902 } 903 else if (mobileweb_offset > -1) { 904 return url.substring(0,mobileweb_offset+"/mobileweb/vspot.html".length); 905 } 906 else if (unsub_offset > -1) { 907 return url.substring(0,unsub_offset+"/Safe-Unsubscribe".length); 908 } 909 else if (index_offset > -1) { 910 return url.substring(0,index_offset+"/index.html".length); 911 } 912 else 913 return url; 914} 915 916// leave ga (universal analytics) in place while we transition to ga4 917// done, removing 918//(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 919//(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 920//m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 921//})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 922 923//ga('create', 'UA-3705553-1', 'auto'); 924// create blank function as lots of code still references it 925function ga() {}; 926 927ga('create', 'UA-3705553-1', 'auto'); 928 929ga('set', 'dimension5', 'visitor'); 930gtag('config', 'G-C0MMZ3FTJS', {'custom_map': {'dimension5': 'visitor'},'send_page_view': false, 'allow_google_signals': false}); 931 932if( window.canRunAds === undefined ){ 933 ga('set', 'dimension8', 'active'); 934 // GA4 - go ahead and tag user id if we know it 935 gtag('config', 'G-C0MMZ3FTJS', {'custom_map': {'dimension8': 'active'},'send_page_view': false, 'allow_google_signals': false}); 936} 937else { 938 ga('set', 'dimension8', 'inactive'); 939 // GA4 - go ahead and tag user id if we know it 940 gtag('config', 'G-C0MMZ3FTJS', {'custom_map': {'dimension8': 'inactive'},'send_page_view': false, 'allow_google_signals': false}); 941} 942 943ga('send', 'pageview', get_tracking_url()); 944gtag('event', 'page_view', { 945 page_path: get_tracking_url(), 946}); 947 948</script>
948 949 950<!-- Google Tag Manager (Also loads Google Analytics 4 now -->
951<script>
vendor: 321 bytes, lines 951-955
951(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 952new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 953j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 954'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 955})(window,document,'script','dataLayer','
955GTM-8D4Z
vendor: 3 bytes, line 955
955');
955</script>
955 956<!-- End Google Tag Manager --> 957 958<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-8D4Z" 959 title="Google Tag Manager" aria-hidden="true" 960 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 961 962<div id="bad-browser" role="region" aria-live="polite" aria-label="Site notice" hidden> 963 <div id="bad-browser-inner"> 964 <span id="bad-browser-message"></span> 965 <button id="bad-browser-close" type="button" aria-label="Dismiss notice">Ã</button> 966 </div> 967 </div> 968 <div id="content_container" class="container-fluid"> 969 970 <!-- Hidden nav for accessibility and bots... just links --> 971<nav class="sr-only"> 972 <ul> 973 <li role="menuitem"> 974 <a href="/Why-Use-Us">What We Do</a> 975 </li> 976 <li role="menuitem"> 977 <a href="/Organizer/Register">Create a SignUp</a> 978 </li> 979 <li role="menuitem"> 980 <a href="/Find-My-SignUp">Find My SignUp</a> 981 </li> 982 <li role="menuitem"> 983 <span>Idea Center</span> 984 <ul> 985 <li role="menuitem" > 986 <a href="/Sign-Up-Sheet">Free Sign Up Sheets: Better Than Paper, Excel, or Word</a> 987 </li> 988 <li role="menuitem" > 989 <a href="/back-to-school">Back to School Planning Center: Tips & Ideas for a Successful Back-to-School Season</a> 990 </li> 991 <li role="menuitem" > 992 <a href="/Classparty">Class Party Planning Center: Ideas, Tips and Reminders</a> 993 </li> 994 <li role="menuitem" > 995 <a href="/community-action-and-activism">Community Action and Activism Planning Center</a> 996 </li> 997 <li role="menuitem" > 998 <a href="/fall-activities-and-events">Fall Activities & Events Planning Center</a> 999 </li> 1000 <li role="menuitem" > 1001 <a href="/Fundraising-Ideas">Fundraising Planning Center: Time-Saving Tips and Creative Ideas</a> 1002 </li> 1003 <li role="menuitem" > 1004 <a href="/Holiday">Holiday Season Activities & Events</a> 1005 </li> 1006 <li role="menuitem" > 1007 <a href="/School-Activities/End-of-School-Year-Planning">End-of-School Planning Center</a> 1008 </li> 1009 <li role="menuitem" > 1010 <a href="/Parent-Teacher-Conference">Parent-Teacher Conference Planning Center: What to Expect, Ask & Prepare</a> 1011 </li> 1012 <li role="menuitem" > 1013 <a href="/room-parent">Room Parent Ideas and Classroom Coordination</a> 1014 </li> 1015 <li role="menuitem" > 1016 <a href="/School-Activities">School Activities Planning Center: Ideas, Tips and Reminders for Well-Organized School Events</a> 1017 </li> 1018 <li role="menuitem" > 1019 <a href="/spring-activities-and-events">Spring Activities & Events Planning Center</a> 1020 </li> 1021 <li role="menuitem" > 1022 <a href="/summer-activities-and-events">Summertime Planning Center</a> 1023 </li> 1024 <li role="menuitem" > 1025 <a href="/Teacher-Appreciation">Teacher Appreciation Planning Center: Tips, Tricks & Ideas for Celebrating Teacher Appreciation Week</a> 1026 </li> 1027 <li role="menuitem" > 1028 <a href="/volunteer-appreciation">Volunteer Appreciation Planning Center</a> 1029 </li> 1030 <li role="menuitem" > 1031 <a href="/youth-sports-planning-center">Youth Sports Planning Center</a> 1032 </li> 1033 <li role="menuitem" > 1034 <a href="/special-events-planning-center">Special Events Planning Center</a> 1035 </li> 1036 <li role="menuitem" > 1037 <a href="/church-events-planning-center">Church Events Planning Center</a> 1038 </li> 1039 <li role="menuitem" > 1040 <a href="/business-events-planning-center">Business Events Planning Center</a> 1041 </li> 1042 <li role="menuitem" > 1043 <a href="/blog-and-news">News & More</a> 1044 </li> 1045 <li role="menuitem" > 1046 <a href="/Idea-Center">Idea Center: Resources, Planning Tips & Ideas to save you time organizing volunteers and events</a> 1047 </li> 1048 </ul> 1049 </li> 1050 <li role="menuitem"> 1051 <a href="/Help">Help</a> 1052 </li> 1053 </ul> 1054</nav> 1055 1056 1057<!-- Visible nav for sighted users... loads with JS: --> 1058<nav class="row" id="responsive_nav" ng-controller="ResponsiveMenuController"> 1059 <!-- Nav for mobile --> 1060 <div class="visible-xs visible-sm"> 1061 <div class="nav-row"> 1062 <div class="mobile-menu-icon-wrapper"> 1063 <div class="menu menu-icon">
1064 <span class="fa-stack fa-lg" ng-click="toggleMenu($event)"> 1065 <span class="sr-only">Open navigation</span> 1066 <i class="fa fa-circle-thin fa-stack-2x" aria-hidden="true"></i> 1067 <i class="fa fa-bars fa-stack-1x" aria-hidden="true"></i> 1068 </span> 1069 </div> 1070 </div> 1071 <div class="logo"> 1072 <a href="/"><img src="/imgs/signup/logo.png" alt="Signup Logo"></a> 1073 </div> 1074 <div class="mobile-menu-icon-wrapper"> 1075 <div 1076 class="ng-hide no-animate menu-icon" 1077 ng-click="toggleSearch($event)" 1078 ng-show="searchableArticles.length > 0 && !showSearch" 1079 > 1080 <span class="fa-stack fa-lg"> 1081 <span class="sr-only">Open search</span> 1082 <i class="fa fa-search fa-stack-2x" aria-hidden="true"></i> 1083 </span> 1084 1085 </div> 1086 <div 1087 class="ng-hide no-animate menu menu-icon" 1088 ng-click="toggleSearch($event)" 1089 ng-show="searchableArticles.length > 0 && showSearch" 1090 > 1091 <span class="fa-stack fa-lg"> 1092 <span class="sr-only">Close search</span> 1093 <i class="fa fa-times fa-stack-2x" aria-hidden="true"></i> 1094 </span> 1095 </div> 1096 </div> 1097 </div> 1098 <div class="nav-menu ng-hide" ng-show="showMenu"> 1099 <div class="mobile-space"> 1100 <div class="menu-close menu-icon"> 1101 <span class="fa-stack fa-lg" ng-click="toggleMenu($event)"> 1102 <span class="sr-only">Close navigation</span> 1103 <i class="fa fa-times fa-stack-2x" aria-hidden="true"></i> 1104 </span> 1105 </div> 1106 <div class="menu-text">MENU</div> 1107 </div> 1108 <div class="nav-items ng-hide" ng-show="showNav"> 1109 <ul role="menu"> 1110 <li role="menuitem" ng-repeat="n in navFull" class="mobile-line {{ n.nav_classes }}"> 1111 <!-- No Children? Just print link or span. --> 1112 <a 1113 ng-if="!n.children.length && n.url !== '/-'" 1114 ng-href="{{ n.url }}" 1115 ng-attr-id="{{ 'resource_' + n.id }}" 1116 class="{{ n.nav_classes }}" 1117 ng-class="{ 'current': n.url === currentUrl, 'pop-up': n.popup }" 1118 > 1119 <span ng-bind-html="n.nav_title"></span> 1120 </a> 1121 <span ng-if="!n.children.length && n.url === '/-'" class="{{ n.nav_classes }}" ng-class="{'current': n.url === currentUrl}" ng-bind-html="n.nav_title"></span> 1122 1123 <!-- Children? Wrap in div. --> 1124 <div ng-if="n.children.length" class="no-animate"> 1125 <a 1126 ng-if="n.url !== '/-'" 1127 ng-href="{{ n.url }}" 1128 ng-attr-id="{{ 'resource_' + n.id }}" 1129 class="{{ n.nav_classes }}" 1130 ng-class="{ 'current': n.url === currentUrl, 'pop-up': n.popup }" 1131 ng-click="toggleMobileDropDown($event, n)" 1132 > 1133 <span ng-bind-html="n.nav_title"></span> 1134 <i class="fa fa-caret-right" aria-hidden="true" ng-show="!n.showMenu"></i> 1135 <i class="fa fa-caret-down ng-hide" aria-hidden="true" ng-show="n.showMenu"></i> 1136 </a> 1137 <a ng-if="n.url === '/-'" class="{{ n.nav_classes }}" ng-class="{'current': n.url === currentUrl}" ng-click="toggleMobileDropDown($event, n)">
1138 <span ng-bind-html="n.nav_title"></span> 1139 <i class="fa fa-caret-right" aria-hidden="true" ng-show="!n.showMenu"></i> 1140 <i class="fa fa-caret-down ng-hide" aria-hidden="true" ng-show="n.showMenu"></i> 1141 </a> 1142 <ul role="menu" class="ng-hide" ng-show="n.showMenu"> 1143 <li role="menuitem" ng-repeat="c in n.children" class="{{ c.li_classes }}"> 1144 <a 1145 ng-if="c.url !== '/-'" 1146 ng-href="{{ c.url }}" 1147 ng-attr-id="{{ 'resource_' + c.id }}" 1148 class="{{ c.li_classes }}" 1149 ng-class="{ 'pop-up': c.popup }" ng-bind-html="c.nav_title" 1150 ></a> 1151 <span ng-if="c.url === '/-'" class="wrap-title {{ c.li_classes }}" ng-bind-html="c.nav_title"></span> 1152 </li> 1153 </ul> 1154 </div> 1155 </li> 1156 <li class="mobile-line"> 1157 <a href="/login/signin/">Sign In</a> 1158 </li> 1159 <li class="mobile-line"> 1160 <a href="/Organizer/Register/">Register</a> 1161 </li> 1162 </ul> 1163 </div> 1164 </div> 1165 </div> 1166 1167 <!-- Nav for bigger devices --> 1168 <div class="hidden-xs hidden-sm"> 1169 <div class="nav-row"> 1170 <div class="nav-cell logo"> 1171 <a href="/"><img src="/imgs/signup/logo.png" alt="Signup Logo"></a> 1172 </div> 1173 <div class="nav-cell menu-container"> 1174 <ul class="clearfix nav ng-hide" role="menu" ng-show="showNav"> 1175 <li role="menuitem" ng-repeat="n in navFull" class="{{ n.nav_classes }}"> 1176 <!-- No Children? Just print link or span. --> 1177 <a 1178 ng-if="!n.children.length && n.url !== '/-'" 1179 ng-href="{{ n.url }}" 1180 ng-attr-id="{{ 'resource_' + n.id }}" 1181 class="{{ n.nav_classes }}" 1182 ng-class="{ 'current': n.url === currentUrl, 'pop-up': n.popup }" 1183 > 1184 <span ng-bind-html="n.nav_title"></span> 1185 </a> 1186 <span ng-if="!n.children.length && n.url === '/-'" class="{{ n.nav_classes }}" ng-class="{'current': n.url === currentUrl}" ng-bind-html="n.nav_title"></span> 1187 1188 <!-- Children? Wrap in div. --> 1189 <div ng-if="n.children.length" class="btn-group" uib-dropdown is-open="n.menu.open" ng-mouseenter="n.menu.open=true" ng-mouseleave="n.menu.open=false"> 1190 <a class="dropdown-toggle dropdown-link" uib-dropdown-toggle> 1191 <span class="{{ n.nav_classes }}" ng-class="{'current': n.url === currentUrl}"> 1192 <span ng-bind-html="n.nav_title"></span> 1193 <span class="caret"></span> 1194 </span> 1195 </a> 1196 <ul uib-dropdown-menu role="menu" class="dropdown-menu"> 1197 <li role="menuitem" ng-repeat="c in n.children" class="{{ c.li_classes }}"> 1198 <a 1199 ng-if="c.url !== '/-'" 1200 ng-href="{{ c.url }}" 1201 ng-attr-id="{{ 'resource_' + c.id }}" 1202 class="{{ c.li_classes }}" 1203 ng-class="{ 'pop-up': c.popup }" 1204 ng-bind-html="c.nav_title" 1205 aria-label="{ c.nav_title }" 1206 ></a>
1207 <span aria-label="Menu Separator" ng-if="c.url === '/-' && !c.menu_invitations && !c.menu_organizations" class="wrap-title {{ c.li_classes }}" ng-bind-html="c.nav_title"></span> 1208 <span aria-label="Menu Separator" ng-if="c.url === '/-' && c.menu_invitations" class="wrap-title"> 1209 <menu-invitations menu-open="n.menu.open"></menu-invitations> 1210 </span> 1211 <span aria-label="Menu Separator" ng-if="c.url === '/-' && c.menu_organizations" class="wrap-title"> 1212 <menu-organizations menu-open="n.menu.open"></menu-organizations> 1213 </span> 1214 </li> 1215 </ul> 1216 </div> 1217 </li> 1218 <li ng-if="user && !user.premium" role="menuitem" class="secondary"> 1219 <a href="/Pricing?nav" class="secondary"> 1220 <span class="secondary">Go Premium!</span> 1221 </a> 1222 </li> 1223 <li class="tertiary"> 1224 <a href="/login/signin/" class="tertiary">Sign In</a> 1225 </li> 1226 <li class="tertiary"> 1227 <span>|</span> 1228 <a href="/Organizer/Register/" class="tertiary">Register</a> 1229 </li> 1230 </ul> 1231 </div> 1232 <div class="nav-cell"> 1233 <div 1234 class="ng-hide no-animate menu-icon" 1235 ng-click="toggleSearch($event)" 1236 ng-show="searchableArticles.length > 0 && !showSearch" 1237 > 1238 <span class="fa-stack fa-lg"> 1239 <span class="sr-only">Open search</span> 1240 <i class="fa fa-search fa-stack-2x" aria-hidden="true"></i> 1241 </span> 1242 </div> 1243 <div 1244 class="ng-hide no-animate menu-icon" 1245 ng-click="toggleSearch($event)" 1246 ng-show="searchableArticles.length > 0 && showSearch" 1247 > 1248 <span class="fa-stack fa-lg"> 1249 <span class="sr-only">Close search</span> 1250 <i class="fa fa-times fa-stack-2x" aria-hidden="true"></i> 1251 </span> 1252 </div> 1253 </div> 1254 </div> 1255 </div> 1256 <div class="search-bar ng-hide" ng-show="showSearch" ng-click="clickedSearchBar($event)"> 1257 <div class="input-group"> 1258 <div class="input-group-addon"> 1259 <i class="fa fa-search" aria-hidden="true"></i> 1260 </div> 1261 <input 1262 type="text" 1263 name="search" 1264 class="form-control" 1265 autocomplete="off" 1266 data-i18n-attr="_Search_|placeholder" 1267 ng-model="search" 1268 uib-typeahead="s as s.title for s in searchableArticles | filter:$viewValue" 1269 typeahead-min-length="0" 1270 typeahead-on-select="selectedArticle($item, $model, $label, $event)" 1271 typeahead-popup-template-url="search-results.html" 1272 > 1273 1274 </div> 1275 </div> 1276
1276<script type="text/ng-template" id="search-results.html"> 1277 <div 1278 class="search-results-wrapper" 1279 ng-style="{top: position().top+'px', left: position().left+'px'}" 1280 style="position: absolute;" 1281 ng-show="query && !moveInProgress" 1282 aria-hidden="{{!isOpen()}}" 1283 > 1284 <div class="no-results" ng-show="matches.length === 0">No Results Found</div> 1285 <ul class="dropdown-menu" role="listbox" ng-show="matches.length > 0"> 1286 <li 1287 class="uib-typeahead-match" 1288 ng-repeat="match in matches track by $index" 1289 ng-class="{active: isActive($index) }" 1290 ng-mouseenter="selectActive($index)" 1291 ng-click="selectMatch($index)" 1292 role="option" 1293 id="{{::match.id}}" 1294 > 1295 <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div> 1296 </li> 1297 </ul> 1298 </div> 1299 </script>
1299 1300</nav> 1301 1302
1303<script> 1304 (function ($, ng) { 1305 'use strict'; 1306 1307 /* 1308 * Responsive Menu 1309 */ 1310 var responsiveMenu = ng.module('responsiveMenu', ['ui.bootstrap', 'ngSanitize', 'ngAnimate', 'vspot.services', 'localization', 'signup.menuInvitations', 'signup.menuOrganizations']); 1311 1312 responsiveMenu.controller('ResponsiveMenuController', ['$scope', '$document', '$timeout', 'services.User', function ($scope, $document, $timeout, User) { 1313 $scope.user = User.get(true); 1314 $scope.showMenu = false; 1315 $scope.showSearch = false; 1316 $scope.search = ''; 1317 $scope.navFull = [{"id":595,"nav_title":"What We Do","url":"/Why-Use-Us","redirect_to":null,"page_type":"article","popup":false,"pop_up":null,"right_id":198,"nav_classes":"","children":[]},{"id":596,"nav_title":"Create a SignUp","url":"/Organizer/Register","redirect_to":null,"page_type":"2colpage","popup":false,"pop_up":null,"right_id":200,"nav_classes":"hidden-xs hidden-sm","children":[]},{"id":758,"nav_title":"Find My SignUp","url":"/Find-My-SignUp","redirect_to":null,"page_type":"1colpage","popup":false,"pop_up":null,"right_id":202,"nav_classes":"","children":[]},{"id":598,"nav_title":"Idea Center","url":"/-","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":246,"nav_classes":null,"children":[{"id":737,"nav_title":"Free Sign Up Sheets: Better Than Paper, Excel, or Word","url":"/Sign-Up-Sheet","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":205,"nav_classes":null,"children":[]},{"id":533,"nav_title":"Back to School Planning Center: Tips \u0026 Ideas for a Successful Back-to-School Season","url":"/back-to-school","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":207,"nav_classes":"","children":[]},{"id":902,"nav_title":"Class Party Planning Center: Ideas, Tips and Reminders","url":"/Classparty","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":209,"nav_classes":null,"children":[]},{"id":1040,"nav_title":"Community Action and Activism Planning Center","url":"/community-action-and-activism","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":211,"nav_classes":null,"children":[]},{"id":927,"nav_title":"Fall Activities \u0026 Events Planning Center","url":"/fall-activities-and-events","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":213,"nav_classes":null,"children":[]},{"id":870,"nav_title":"Fundraising Planning Center: Time-Saving Tips and Creative Ideas","url":"/Fundraising-Ideas","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":215,"nav_classes":null,"children":[]},{"id":942,"nav_title":"Holiday Season Activities \u0026 Events","url":"/Holiday","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":217,"nav_classes":null,"children":[]},{"id":1289,"nav_title":"End-of-School Planning Center","url":"/School-Activities/End-of-School-Year-Planning","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":219,"nav_classes":null,"children":[]},{"id":730,"nav_title":"Parent-Teacher Conference Planning Center: What to Expect, Ask \u0026 Prepare","url":"/Parent-Teacher-Conference","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":221,"nav_classes":null,"children":[]},{"id":879,"nav_title":"Room Parent Ideas and Classroom Coordination","url":"/room-parent","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":223,"nav_classes":"","children":[]},{"id":729,"nav_title":"School Activities Planning Center: Ideas, Tips and Reminders for Well-Organized School Events","url":"/School-Activities","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":225,"nav_classes":null,"children":[]},{"id":1035,"nav_title":"Spring Activities \u0026 Events Planning Center","url":"/spring-activities-and-events","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":227,"nav_classes":null,"children":[]},{"id":1041,"nav_title":"Summertime Planning Center","url":"/summer-activities-and-events","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":229,"
1317nav_classes":null,"children":[]},{"id":735,"nav_title":"Teacher Appreciation Planning Center: Tips, Tricks \u0026 Ideas for Celebrating Teacher Appreciation Week","url":"/Teacher-Appreciation","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":231,"nav_classes":null,"children":[]},{"id":864,"nav_title":"Volunteer Appreciation Planning Center","url":"/volunteer-appreciation","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":233,"nav_classes":null,"children":[]},{"id":1359,"nav_title":"Youth Sports Planning Center","url":"/youth-sports-planning-center","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":235,"nav_classes":"","children":[]},{"id":1402,"nav_title":"Special Events Planning Center","url":"/special-events-planning-center","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":237,"nav_classes":null,"children":[]},{"id":1394,"nav_title":"Church Events Planning Center","url":"/church-events-planning-center","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":239,"nav_classes":null,"children":[]},{"id":1382,"nav_title":"Business Events Planning Center","url":"/business-events-planning-center","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":241,"nav_classes":"","children":[]},{"id":801,"nav_title":"News \u0026 More","url":"/blog-and-news","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":243,"nav_classes":null,"children":[]},{"id":795,"nav_title":"Idea Center: Resources, Planning Tips \u0026 Ideas to save you time organizing volunteers and events","url":"/Idea-Center","redirect_to":null,"page_type":"articleparent","popup":false,"pop_up":null,"right_id":245,"nav_classes":null,"children":[]}]},{"id":594,"nav_title":"Help","url":"/Help","redirect_to":null,"page_type":"article","popup":false,"pop_up":null,"right_id":248,"nav_classes":"","children":[]}]; 1318 $scope.searchableArticles = [{"id":916,"title":"Writing Code Together","url":"FamilyCodeNight/Writing-Code-Together","created_at":"2016/09/07 02:49:59 +0000"},{"id":835,"title":"Our-New-Name-Announcement","url":"Blog-And-News/Our-New-Name-Announcement","created_at":"2016/06/29 19:47:42 +0000"},{"id":925,"title":"SignUp.com Reports","url":"reports","created_at":"2016/09/14 20:00:50 +0000"},{"id":938,"title":"AdSamplerMobile","url":"AdSamplerMobile","created_at":"2016/10/06 17:49:45 +0000"},{"id":928,"title":"Safe Unsubscribe","url":"Safe-Unsubscribe","created_at":"2016/09/19 20:46:23 +0000"},{"id":1012,"title":"Free online sign up sheet, volunteer scheduling software , and volunteer management software.","url":"premium-offer-pricing-plan","created_at":"2017/01/13 15:56:16 +0000"},{"id":912,"title":"White House Announcement","url":"CSForAll/White-House-Announcement","created_at":"2016/09/07 02:45:22 +0000"},{"id":1030,"title":"100 Days of School -- Seven Great Ways to Celebrate!","url":"school-activities/100-days-of-school-seven-great-ways-to-celebrate","created_at":"2017/02/07 17:22:38 +0000"},{"id":1031,"title":"Healthy After-School Snacks \u0026 Treats","url":"after-school-activities/healthy-after-school-snack-treats","created_at":"2017/02/07 18:20:19 +0000"},{"id":1086,"title":"SignUp.com Joins White House Initiative Empowering Parents to Drive a Movement for Computer Science Education","url":"about/company-press-releases/signupdotcom-joins-white-house-initiative-empowering-parents-computer-science-education","created_at":"2017/05/11 16:15:49 +0000"},{"id":1087,"title":"Austin-Based Consumer App Re-Brands from VolunteerSpot to SignUp.com","url":"about/company-press-releases/austin-based-consumer-app-rebrands-from-volunteerspot-to-signupdotcom","created_at":"2017/05/11 16:33:45 +0000"},{"id":1097,"title":"Free Webinar: 5 Tips to Engage Millennial Moms","url":"Blog-And-News/Free-Webinar-5-Tips-to-Engage-Millennial-Moms","created_at":"2017/06/13 21:02:21 +0000"},{"id":858,"title":"TXPTA LAUNCH 2017 Presentations","url":"TXPTA/Launch-Presentations","created_at":"2016/07/25 03:23:25 +0000"},{"id":933,"title":"AdSampler","url":"AdSampler","created_at":"2016/09/28 19:04:44 +0000"},{"id":1123,"title":"Giving: A Resolution for the Entire Year","url":"fundraising-ideas/Giving-A-Resolution-for-the-Entire-Year","created_at":"2017/12/21 18:33:48 +0000"},{"id":1125,"title":"Spring Fundraiser: A New Beginning","url":"fundraising-ideas/Spring-Fundraiser-A-New-Beginning","created_at":"2017/12/21 19:35:36 +0000"},{"id":1130,"title":"What Does Your Community Need?","url":"volunteer/what-does-your-community-need","created_at":"2018/03/13 14:45:03 +0000"},{"id":1133,"title":"Have a passion for helping your community? Listen!","url":"volunteer/Have-a-passion-for-helping-your-community","created_at":"2018/03/23 15:44:53 +0000"},{"id":1135,"title":"How To Start A Community Feeding Program","url":"volunteer/How-To-Start-A-Community-Feeding-Program","created_at":"2018/04/10 15:51:59 +0000"},{"id":1136,"title":"Privacy Policy","url":"Privacy2016","created_at":"2018/04/18 12:46:06 +0000"},{"id":1138,"title":"5 Entrepreneurial Tips To Start A Successful Community Program","url":"volunteer/Five-Entrepreneurial-Tips-To-Start-A-Successful-Community-Program","created_at":"2018/05/03 14:59:24 +0000"},{"id":1072,"title":"Graduation Party Potluck Printables and Meal Cards","url":"Potluck/Graduation-Party-Potluck-Printables-and-Meal-Cards","created_at":"2017/04/28 19:45:53 +0000"},{"id":1085,"title":"Company News - SignUp.com Acquires Early Dotcom MySignUp","url":"about/company-press-releases/signupdotcom-acquires-early-dotcom-m
1318ysignup","created_at":"2017/05/11 15:42:29 +0000"},{"id":1113,"title":"School Product Fundraisers: Think Consumables","url":"fundraising-ideas/Product-Fundraisers-for-the-2017-2018-School-Year-Think-Consumables","created_at":"2017/08/17 15:49:57 +0000"},{"id":1111,"title":"Hostess Gifts They'll Love - For Every Holiday Event on Your Calendar!","url":"fundraising-ideas/Hostess-Gifts-That-Rock","created_at":"2017/08/16 18:58:21 +0000"},{"id":1112,"title":"Product Fundraisers: How to Choose The Best for Your School","url":"fundraising-ideas/Product-Fundraisers-How-to-Choose-The-Best-for-Your-School","created_at":"2017/08/16 19:18:23 +0000"},{"id":1006,"title":"5 MLK Day of Service Activities for Families","url":"volunteer/5-MLK-day-of-service-activities-for-families","created_at":"2017/01/07 17:04:05 +0000"},{"id":950,"title":"SignUp Premium Organization Pricing Plan","url":"organization-pricing-plan","created_at":"2016/10/28 16:52:34 +0000"},{"id":1174,"title":"3 Easy Ways to Increase Fundraising Profits and Success","url":"fundraising-ideas/3-Easy-Ways-to-Increase-Fundraising-Profits-and-Success","created_at":"2019/07/26 20:33:07 +0000"},{"id":1188,"title":"Top Tips to Stop Stressing About Screens","url":"TipsToStopStressingAboutScreens","created_at":"2019/09/05 22:20:31 +0000"},{"id":1114,"title":"Whoâs on Your Holiday âThank Youâ List?","url":"fundraising-ideas/Who-is-on-Your-Holiday-Thank-you-List","created_at":"2017/08/17 16:16:30 +0000"},{"id":903,"title":"Family Volunteer Ideas for September","url":"Volunteer-Appreciation/Family-Volunteer-Ideas-September","created_at":"2016/09/01 19:04:08 +0000"},{"id":1225,"title":"WePay Fees Canadian","url":"WePayFeesCA","created_at":"2020/03/16 22:41:47 +0000"},{"id":1231,"title":"SignUp.com Steps Up as Service for Relief Efforts","url":"about/company-press-releases/signupdotcom-steps-up-as-service-for-relief-efforts","created_at":"2020/03/26 17:17:18 +0000"},{"id":1254,"title":"BTS 2020: A Marketerâs Challenges","url":"back-to-school-2020","created_at":"2020/07/21 21:23:00 +0000"},{"id":1227,"title":"44 Fun Ways to Prevent Cabin Fever","url":"prevent-cabin-fever","created_at":"2020/03/17 00:07:24 +0000"},{"id":1269,"title":"New Feature Announcement: A Cooler Mobile Experience for Organizers","url":"Blog-And-News/New-Feature-Mobile-Experience-for-Organizers","created_at":"2020/12/08 16:51:40 +0000"},{"id":1131,"title":"New Feature: Sign Up Others","url":"Blog-And-News/New-Feature-Sign-Up-Others","created_at":"2018/03/15 16:03:27 +0000"},{"id":926,"title":"Digital Parenting Book Feature Screenwise","url":"Blog-And-News/Screenwise-Book-Devorah-Heitner","created_at":"2016/09/16 14:40:58 +0000"},{"id":1228,"title":"6 Ways to Use SignUp During the Coronavirus Emergency","url":"signups-for-coronavirus-emergency-response","created_at":"2020/03/17 20:56:45 +0000"},{"id":1223,"title":"Coronavirus: Tips for Event Planners During a Community Health Threat","url":"coronavirus-tips-for-event-planners","created_at":"2020/03/09 23:14:20 +0000"},{"id":1250,"title":"Fun Summer Gatherings while Social Distancing","url":"summer-activities/gatherings-while-social-distancing","created_at":"2020/06/08 22:09:45 +0000"},{"id":1253,"title":"How SignUp Supports Contact Tracing and Social Distancing","url":"contact-tracing","created_at":"2020/07/16 23:36:55 +0000"},{"id":1259,"title":"12 Micro Celebrations \u0026 Pandemic Pick-Me-Ups","url":"micro-celebrations-pandemic-pick-me-ups","created_at":"2020/08/10 17:51:49 +0000"},{"id":1068,"title":"Ways to Express Volunteer Appreciation from Start to Finish","url":"Volunteer-Appreciation/Ways-to-Express-Volunteer-Appreciation-from-Start-to-Finish","created_at":"2017/04/19 21:14:58 +0000"},{"id":1261,"title":"10 Creative Ways People are Moving Activities Outdoors","url":"moving-activities-outdoors-during-covid19","created_at":"2020/08/17 15:16:36 +0000"},{"id":1260,"title":"Nurture in Nature: Tips \u0026 Ideas for Getting Outdoors During COVID-19","url":"getting-outdoors-during-covid19","created_at":"2020/08/11 17:53:14 +0000"},{"id":1180,"title":"40+ Years Turning Fun into Funds⢠and Giving Back","url":"Fundraising-Ideas/Turning-Fun-Into-Funds-and-Giving-Back","created_at":"2019/08/08 17:16:24 +0000"},{"id":1144,"title":"Printable Family Reunion Photo Booth Props for the Most Memorable Family Reunion Ever!","url":"summer-activities/printable-family-reunion-photo-booth-props","created_at":"2018/07/25 16:39:11 +0000"},{"id":1245,"title":"7 Ways SignUp Supports Safe Reopening: Occupancy Management, Social Distancing \u0026 Contact Tracing Simplified","url":"ways-signup-supports-social-distancing","created_at":"2020/05/11 20:04:34 +0000"},{"id":1153,"title":"Even Easier: SignUp.com + Remind","url":"Blog-And-News/Even-Easier-SignUp.com-Remind","created_at":"2018/11/20 17:31:49 +0000"},{"id":1224,"title":"Coronavirus: Tips for Families \u0026 Neighbors","url":"coronavirus-tips-for-families","created_at":"2020/03/10 20:16:34 +0000"},{"id":1335,"title":"psd2html","url":"psd2html","created_at":"2022/03/29 18:14:55 +0000"}
1318,{"id":1296,"title":"Social Media Graphics for Back to School - Download Them Now!","url":"back-to-school/social-media-graphics","created_at":"2021/06/30 21:28:57 +0000"},{"id":1235,"title":"Printable Intro Letters for Mutual Aid Network Coordinators","url":"printable-intro-letter-for-mutual-aid","created_at":"2020/04/03 22:50:42 +0000"},{"id":1344,"title":"Student Certificates of Appreciation: Free and Customizable Designs","url":"back-to-school/student-certificates-of-appreciation","created_at":"2022/06/22 21:06:46 +0000"},{"id":1334,"title":"New Feature: Custom Participant Form Fields for Collecting Better Info","url":"Blog-And-News/new-participant-form-fields","created_at":"2022/03/15 14:09:18 +0000"},{"id":1339,"title":"SignUp Recognized By Gartner Digital Markets as a Top Product in 2021","url":"Blog-And-News/SignUp-Recognized-by-Gartner-as-a-Top-Product-2021","created_at":"2022/06/08 15:27:24 +0000"},{"id":1189,"title":"Feature Announcement: Text (SMS) Reminders with SignUp!","url":"Blog-And-News/New-Feature-SMS-Reminders","created_at":"2019/09/12 00:00:00 +0000"},{"id":1171,"title":"Family Reunion Game: Get To Know You Discussion Cards","url":"summer-activities/family-reunion-game-get-to-know-you-discussion-cards","created_at":"2019/06/19 16:54:07 +0000"},{"id":1229,"title":"Coronavirus Info Center","url":"coronavirus-info-center","created_at":"2020/03/23 19:10:23 +0000"},{"id":1025,"title":"Travel Ideas \u0026 Planning Center","url":"Travel-Ideas","created_at":"2017/01/29 00:08:02 +0000"},{"id":1150,"title":"Printable Photobooth Props: Halloween Party Craft Activity","url":"class-party/printable-photobooth-props-halloween-party-craft-activity","created_at":"2018/10/19 15:58:35 +0000"},{"id":1197,"title":"Free Printable: Friendsgiving Bingo Cards","url":"printable-friendsgiving-bingo","created_at":"2019/11/14 00:27:54 +0000"},{"id":1032,"title":"Free Webinar: Boost Turnout and Profits for Your Spring Fundraisers","url":"Blog-And-News/Boost-Turnout-Profits-for-Your-Spring-Fundraisers","created_at":"2017/02/08 20:11:22 +0000"},{"id":1237,"title":"Mood-Boosting Ideas for the Entire Neighborhood","url":"mood-boosting-ideas-for-the-neighborhood","created_at":"2020/04/08 23:12:59 +0000"},{"id":1417,"title":"SignUp's B2S Sweepstake 2023 Winners","url":"B2S-Sweepstake-2023-Winners","created_at":"2023/08/24 15:25:14 +0000"},{"id":1433,"title":"Thankful for You Sweepstake 2023 Winners","url":"Thankful-Sweepstake-2023-Winners","created_at":"2024/01/05 20:27:44 +0000"},{"id":1375,"title":"SignUp Recognized By Gartner Digital Markets as a Top Product in 2022","url":"Blog-And-News/SignUp-Recognized-by-Gartner-as-a-Top-Product-2022","created_at":"2023/02/07 14:46:35 +0000"},{"id":1435,"title":"SignUp Recognized By Gartner Digital Markets as a Top Product in 2023","url":"Blog-And-News/SignUp-Recognized-by-Gartner-as-a-Top-Product-2023","created_at":"2024/01/18 16:01:01 +0000"},{"id":1169,"title":"Family Reunion Game: Printable Trivia Questions for Families","url":"summer-activities/family-reunion-printable-game-trivia-questions-for-families","created_at":"2019/06/19 15:20:57 +0000"},{"id":1170,"title":"Family Reunion Game: Would You Rather Questions for Families","url":"summer-activities/family-reunion-icebreaker-game-would-you-rather-for-families","created_at":"2019/06/19 16:10:11 +0000"},{"id":1208,"title":"Free Printable Galentine's Day Cards","url":"galentines-day-cards","created_at":"2020/01/21 19:17:53 +0000"},{"id":1105,"title":"Dine on Success with Panda Express","url":"fundraising-ideas/Dine-on-Success-with-Panda-Express","created_at":"2017/07/19 19:41:23 +0000"},{"id":1306,"title":"Yum-Raising: The Easiest Virtual Fundraiser","url":"fundraising-ideas/yumraising-virtual-fundraiser","created_at":"2021/08/31 16:10:22 +0000"},{"id":1104,"title":"Tips for Hosting Profitable Restaurant Fundraisers for your School or Nonprofit","url":"fundraising-ideas/Appetite-for-Fundraising-Hosting-Profitable-Restaurant-Fundraisers","created_at":"2017/07/19 19:16:20 +0000"},{"id":1121,"title":"Sweet and Stress-Free Valentineâs Day Fundraiser","url":"fundraising-ideas/Sweet-and-Stress-Free-Valentines-Day-Fundraiser","created_at":"2017/12/15 22:49:01 +0000"},{"id":1096,"title":"How To Host A Successful Fundraiser To Benefit Refugees","url":"community-action-and-activism/how-to-host-a-successful-fundraiser-to-benefit-refugees","created_at":"2017/06/09 17:54:57 +0000"},{"id":1106,"title":"How to Boost Restaurant Fundraiser Turnout \u0026 Profits with Social Media","url":"fundraising-ideas/How-to-Boost-Restaurant-Fundraiser-Turnout-Profits-with-Social-Media","created_at":"2017/07/19 20:03:04 +0000"},{"id":1367,"title":"SignUp Features for Power Planners","url":"Blog-And-News/features-for-power-planners","created_at":"2022/12/09 20:44:19 +0000"},{"id":1421,"title":"SignUp Brand Partnerships: A Sneak Peek","url":"Blog-And-News/Sneak-Peek","created_at":"2023/09/14 19:11:36 +0000"},{"id":1027,"title":"Time Saving Travel Prep Tips for Working Parents","url":"travel/time-saving-travel-prep-tips-for-working-parents","created_at":"2017/01/31 20:40:43 +0000"},{"id":1028,"title":"Finding Giant Pandas in the United States","url":"travel/finding-giant-pandas-in-the-united-states","created_at":"2017/01/31 20:59:08 +0000"},{"id":838,"title":"SignUp.com K-12 Campus Plan Resource Center","url":"Campus-Plan","created_at":"2016/06/29 21:08:2
13180 +0000"},{"id":1152,"title":"Printable Thanksgiving Meal Tags for Holiday Potlucks","url":"Potlucks/Printable-Thanksgiving-Meal-Tags-Holiday-Potlucks","created_at":"2018/11/12 20:28:28 +0000"},{"id":1479,"title":"SignUp's B2S Sweepstake 2024 Winners","url":"B2S-Sweepstake-2024-Winners","created_at":"2024/09/16 21:42:15 +0000"},{"id":1330,"title":"Setting Up Community Food Services for Success: SignUp + PantrySOFTâ¢","url":"Blog-And-News/Setting-Up-Community-Food-Services-for-Success","created_at":"2022/02/21 17:00:44 +0000"},{"id":1500,"title":"Thankful for You Sweepstake 2024 Winners","url":"Thankful-Sweepstake-2024-Winners","created_at":"2024/12/06 16:38:13 +0000"},{"id":1506,"title":"Upgrading your Digital Playbook: Marketing Essentials for 2025","url":"afrds2025","created_at":"2025/01/14 14:52:29 +0000"},{"id":1509,"title":"Krispy Kreme: The Easiest Spring Fundraiser That Everyone Will Love","url":"krispy-kreme-fundraising","created_at":"2025/02/25 16:10:38 +0000"},{"id":1246,"title":"New Feature Announcement: Flexible SignUps with Add-a-Spot","url":"Blog-And-News/New-Feature-Add-a-Spot","created_at":"2020/05/13 23:04:11 +0000"},{"id":952,"title":"5 Ways to Thank the Caregivers in Your Life","url":"Volunteer-Appreciation/5-Ways-to-Thanks-Caregivers","created_at":"2016/10/31 20:59:27 +0000"},{"id":974,"title":"SignUp Feature: Share your SignUp with Teacher Share","url":"Blog-And-News/New-Feature-Teacher-Share","created_at":"2016/11/21 20:15:30 +0000"},{"id":1214,"title":"#NoFilter: A Quick Look at Brand Safety","url":"partners-brand-safety","created_at":"2020/02/02 23:58:07 +0000"},{"id":1215,"title":"How to Make Co-Registration Work for You","url":"partners-coregistration","created_at":"2020/02/03 00:19:07 +0000"},{"id":1217,"title":"Convert or Desert: What Do YOU Do With Leads?","url":"partners-conversions","created_at":"2020/02/06 00:03:46 +0000"},{"id":1216,"title":"In the Trenches: Who Really Powers A Fundraiser","url":"partners-fundraisers","created_at":"2020/02/03 00:30:41 +0000"},{"id":1213,"title":"The Halo Effect: Put Your Brand in the Best Light","url":"partners-halo-effect","created_at":"2020/02/02 22:33:20 +0000"},{"id":1218,"title":"The 5S Commitment: Bring Parents and Brands Together for Good","url":"partners-our-commitment","created_at":"2020/02/06 17:33:33 +0000"},{"id":1162,"title":"End of Year Printable Photo Booth Props: School Party Classroom Activity","url":"class-party/end-of-year-printable-photo-booth-props-school-party-classroom-activity","created_at":"2019/05/14 14:35:16 +0000"},{"id":1137,"title":"Free Teacher Appreciation Printables","url":"Teacher-Appreciation/Free-Teacher-Appreciation-Printables","created_at":"2018/04/19 16:25:56 +0000"},{"id":1143,"title":"Printable Carnival Signs - Free Festive Signage for Games, Tickets, Booths \u0026 Food Stations","url":"fall-activities/Free-Carnival-Booth-Games-Signs-Printables","created_at":"2018/07/24 23:20:40 +0000"},{"id":1288,"title":"3 HOT New Features to Manage Participation in Your SUMMER Events","url":"Blog-And-News/3-New-Features-to-Manage-Participation","created_at":"2021/04/29 18:10:26 +0000"},{"id":1529,"title":"Author Bio: Diana Schlott","url":"diana-schlott","created_at":"2025/05/14 19:31:00 +0000"},{"id":1528,"title":"Author Bio: Carlyn Morris","url":"carlyn-morris","created_at":"2025/05/14 19:27:04 +0000"},{"id":1530,"title":"Author Bio: Laura Greenberg","url":"laura-greenberg","created_at":"2025/05/14 19:37:24 +0000"},{"id":898,"title":"Back to School Menaces","url":"Back-to-School/Back-to-School-Menaces-for-Parents","created_at":"2016/08/29 01:32:08 +0000"},{"id":897,"title":"5 Exciting Back to School Apps for Busy Parents","url":"Back-to-School/Exciting-Apps-for-Busy-Parents","created_at":"2016/08/28 18:59:30 +0000"},{"id":1140,"title":"Free Food-Allergy Meal Tags for Picnics \u0026 Potlucks","url":"Summer-Activities/Printable-Allergy-Tags-4th-July-Picnics","created_at":"2018/06/13 19:49:13 +0000"},{"id":996,"title":"5 Great Ways to Get Kids to Read","url":"school-activities/5-great-ways-to-motivate-kids-to-read","created_at":"2016/12/21 15:54:35 +0000"},{"id":980,"title":"6 Super Easy Ways to Infuse Your Home with Gratitude","url":"Holiday/6-Ways-to-Practice-Gratitude-at-Home","created_at":"2016/11/29 13:55:14 +0000"},{"id":951,"title":"4 Ways to Get Kids to Read More","url":"School-Activities/4-Ways-to-Get-Kids-to-Read-More","created_at":"2016/10/30 16:09:48 +0000"},{"id":978,"title":"Empowering Kids to Use STEM to Change the World!","url":"FamilyCodeNight/Empowering-Kids-with-STEM","created_at":"2016/11/28 20:59:02 +0000"},{"id":1531,"title":"New Themes for Summer SignUps","url":"blog-and-news/new-summer-themes-for-signups-2025","created_at":"2025/05/21 23:04:11 +0000"},{"id":1534,"title":"SignUp's Season of Appreciation Giveaway Winners 2025","url":"season-of-appreciation-giveaway-winners-2025","created_at":"2025/05/28 17:19:40 +0000"},{"id":1504,"title":"SignUp Recognized By Gartner Digital Markets as a Top Product in 2024","url":"Blog-And-News/SignUp-Recognized-by-Gartner-as-a-Top-Product-2024","created_at":"2025/01/09 16:23:16 +0000"},{"id":1487,"title":"New Holiday Themes for Your SignUps","url":"blog-and-news/new-holiday-themes-for-signups","created_at":"2024/10/18 19:50:19 +0000"}
1318,{"id":1462,"title":"SignUp's New Desktop Dashboard","url":"blog-and-news/new-desktop-dashboard","created_at":"2024/06/06 19:06:35 +0000"},{"id":1527,"title":"Author Bio: Tara McAdams","url":"tara-mcadams","created_at":"2025/05/14 19:07:43 +0000"},{"id":1100,"title":"Top 5 Fundraising Ideas for Teams and Booster Clubs","url":"fundraising-ideas/Top-5-FUNdraising-Ideas-for-Teams-Booster-Clubs","created_at":"2017/07/13 19:01:40 +0000"},{"id":1147,"title":"2 Ways to Boost Participation","url":"Blog-And-News/2-Ways-Gain-More-Control-SignUp-Participation","created_at":"2018/09/11 16:36:21 +0000"},{"id":1502,"title":"Email Marketing Best Practices","url":"best-practices-for-email-marketing-2025","created_at":"2025/01/08 20:33:20 +0000"},{"id":1489,"title":"How to Make Your Own SignUp Badges","url":"make-your-own-SignUp-badges","created_at":"2024/10/24 22:15:10 +0000"},{"id":1026,"title":"How to Plan a Quick Family Getaway","url":"travel/how-to-plan-a-quick-family-getaway","created_at":"2017/01/31 20:14:19 +0000"},{"id":1457,"title":"Camping Prep: Planning Tips \u0026 Printable Checklist","url":"camping-prep-tips-and-checklist","created_at":"2024/05/22 18:19:31 +0000"},{"id":1338,"title":"Printable Book Swap Wishlists","url":"Printable-Book-Swap-Wishlists","created_at":"2022/05/05 21:25:43 +0000"},{"id":930,"title":"Reading Motivators for Kids: Get Kids Excited About Reading","url":"School-Activities/5-ways-to-motivate-kids-to-read-more","created_at":"2016/09/25 19:43:29 +0000"},{"id":1364,"title":"Sports Award Certificates: Free, Customizable Designs","url":"sports-awards-certificates","created_at":"2022/11/09 19:56:15 +0000"},{"id":1173,"title":"Would You Rather \u0026 Get to Know You: Icebreakers for Back to School","url":"back-to-school/would-you-rather-and-get-to-know-you-icebreakers","created_at":"2019/07/25 00:16:10 +0000"},{"id":1374,"title":"Parent Teacher Conference Quick Start Guide for Teachers","url":"parent-teacher-conference-quick-start-guide-for-teachers","created_at":"2023/01/18 19:21:14 +0000"},{"id":1317,"title":"Parent Teacher Conference SignUps: Quick Start Guide for Organizers","url":"parent-teacher-conference-quick-start-guide","created_at":"2021/12/01 21:32:32 +0000"},{"id":1378,"title":"Best Teacher Donation Websites","url":"best-teacher-donation-websites","created_at":"2023/03/15 19:08:29 +0000"},{"id":1540,"title":"New Themes for School SignUps","url":"blog-and-news/new-themes-for-back-to-school-2025","created_at":"2025/06/27 17:32:26 +0000"},{"id":1544,"title":"Connection Events to Build a Thriving School Community","url":"School-Activities/school-community-events","created_at":"2025/07/17 15:20:11 +0000"},{"id":1546,"title":"Team-Building Activities for Middle School Students","url":"back-to-school/team-building-activities-for-middle-school-students","created_at":"2025/07/17 16:15:14 +0000"},{"id":1181,"title":"Room Parent Survival Kit","url":"Room-Parent/Survival-Kit","created_at":"2019/08/09 17:46:03 +0000"},{"id":1252,"title":"Fundraising During a Pandemic: 11 Ideas for Fundraising from a Distance","url":"fundraising-during-pandemic","created_at":"2020/07/09 19:59:44 +0000"},{"id":1470,"title":"Bridal or Wedding Shower Planning Checklist","url":"bridal-shower-checklist","created_at":"2024/07/29 16:40:10 +0000"},{"id":1175,"title":"Fundraising Tips for Success: 5 Fun Ways to Increase Family Participation","url":"fundraising-ideas/5-Fun-Ways-to-Increase-Family-Participation","created_at":"2019/07/26 21:29:24 +0000"},{"id":1176,"title":"Boost Fundraiser Engagement with Simple Tech Tools","url":"fundraising-ideas/Boost-Fundraiser-Engagement-with-Simple-Tech-Tools","created_at":"2019/07/26 21:54:58 +0000"},{"id":1465,"title":"Anatomy of a Good Donor Request Letter","url":"donor-request-letter-tips","created_at":"2024/06/25 15:41:13 +0000"},{"id":1556,"title":"Fall Sports Planning Center","url":"fall-activities-and-events/fall-sports-planning-center","created_at":"2025/08/15 17:51:43 +0000"},{"id":1480,"title":"Sports Themes for Your SignUps: Sporty Badges \u0026 Backgrounds","url":"blog-and-news/new-sports-themes-for-signups","created_at":"2024/09/16 22:42:56 +0000"},{"id":1555,"title":"Sweet Ideas for Fall Fundraising Events with Krispy Kreme","url":"fall-fundraising-with-krispy-kreme","created_at":"2025/08/14 20:02:45 +0000"},{"id":1557,"title":"Fall into Gratitude: Thankfulness Activities for Groups","url":"season-of-gratitude-thankfulness-activities","created_at":"2025/08/26 17:40:13 +0000"},{"id":1558,"title":"SignUp's B2S Sweepstakes 2025 Winners","url":"B2S-Sweepstakes-2025-Winners","created_at":"2025/09/02 20:50:27 +0000"},{"id":1183,"title":"Check Off Your Holiday List with Your Fall Fundraiser","url":"Fundraising-Ideas/Check-Off-Your-Holiday-List-with-Your-Fall-Fundraiser","created_at":"2019/08/22 18:57:10 +0000"},{"id":1564,"title":"11 Volunteer Incentives to Recruit \u0026 Engage Your Dream Team","url":"volunteer-incentives-to-recruit-and-engage","created_at":"2025/09/30 20:42:47 +0000"},{"id":1563,"title":"Fresh Fall Snack Ideas for Kids \u0026 Adults Alike","url":"fall-activities-and-events/fall-snack-ideas-for-kids-and-adults","created_at":"2025/09/30 20:28:28 +0000"},{"id":1195,"title":"Free Printable: Day of Thanks Coloring Place Mats","url":"printable-thanksgiving-place-mats","created_at":"2019/11/07 23:41:27 +0000"},{"id":1428,"title":"Hanukkah Party Guide","url":"holiday/hanukkah-party-guide","created_at":"2023/10/10 15:19:39 +0000"},{"id":1431,"title":"Festively Fun Trivia Questions for Christmas","url":"holiday/christmas-trivia","created_at":"2023/12/13 18:49:41 +0000"},{"id":1474,"title":"Printable Fall Food Allergy Tags","url":"Potlucks/Printable-Fall-Food-Allergy-Tags","created_at":"2024/08/13 16:34:49 +0000"},{"id":1567,"title":"Community Garden Ideas: Fun Tips \u0026 Resources for Growing Together","url":"community-garden-ideas","created_at":"2025/10/21 16:34:51 +0000"},{"id":1569,"title":"Science Fair Project Planning â 5 Easy Steps to Build a Science Fair Project Board","url":"steps-to-build-a-science-fair-project-board","created_at":"2025/10/21 18:59:13 +0000"},{"id":1570,"title":"Science Fair Planning Tips â 5 Simple Steps To Get Started","url":"science-fair-planning-tips","created_at":"2025/10/21 19:38:20 +0000"},{"id":1568,"title":"5 Steps to Snack Success for Team Parents","url":"snack-success-for-team-parents","created_at":"2025/10/21 17:22:12 +0000"},{"id":1571,"title":"Carnival \u0026 Festival Volunteer SignUps Made Easy","url":"carnival-and-festival-signups","created_at":"2025/10/23 17:15:04 +0000"},{"id":1315,"title":"Winter Carnival Planning Guide","url":"fundraising-ideas/winter-carnival-planning","created_at":"2021/11/30 18:35:35 +0000"},{"id":1572,"title":"Free Printable Resources for Black History Month","url":"black-history-month-teaching-resources","created_at":"2025/10/23 17:38:30 +0000"},{"id":1573,"title":"Free Printable Classroom Posters: Fall Poems","url":"School-Activities/printable-fall-poem-classroom-posters","created_at":"2025/10/23 18:16:30 +0000"},{"id":1561,"title":"Pumpkin Decorating Party Ideas","url":"fall-activities-and-events/pumpkin-decorating-party-ideas","created_at":"2025/09/08 21:33:42 +0000"},{"id":1574,"title":"Free Printable: Vintage Holiday Cards","url":"holiday/vintage-greeting-cards-2025","created_at":"2025/10/30 17:25:09 +0000"},{"id":1576,"title":"Terrific Thanksgiving Trivia Questions","url":"fall-activities-and-events/thanksgiving-trivia","created_at":"2025/11/03 18:05:08 +0000"},{"id":1494,"title":"Printable Gift Tags for Holiday Cookies","url":"Holiday/free-printable-gift-tags-for-holiday-cookies","created_at":"2024/11/09 17:11:16 +0000"},{"id":1149,"title":"Printable Bingo Cards: Fun Fall Classroom Party Activity","url":"Class-Party/Fall-Class-Party-Activity-Printable-Bingo-Cards","created_at":"2018/09/20 17:28:21 +0000"},{"id":1473,"title":"Fall Activity Sheets \u0026 Coloring Pages","url":"fall-activities-and-events/activity-sheets-and-coloring-pages","created_at":"2024/08/08 16:27:40 +0000"},{"id":1426,"title":"Christmas Planning Center","url":"holiday/christmas-planning","created_at":"2023/10/02 22:07:52 +0000"},{"id":969,"title":"Holiday Class Party Planning","url":"Holiday/Class-Party-Hacks","created_at":"2016/11/20 17:27:10 +0000"},{"id":1547,"title":"Fall Class Party Ideas for Teachers","url":"Classparty/fall-classroom-party-ideas","created_at":"2025/07/23 16:27:40 +0000"},{"id":1575,"title":"Clever Ways to Use Paper Scraps","url":"clever-ways-to-use-paper-scraps","created_at":"2025/10/30 17:45:36 +0000"},{"id":1577,"title":"Holiday Shopping for Your Tween? 3 Gifts Theyâll Actually Use Every Day","url":"Holiday/shopping-for-your-tween-3-useful-gifts","created_at":"2025/11/10 19:53:49 +0000"},{"id":1495,"title":"Christmas Scavenger Hunt at Home","url":"Holiday/christmas-scavenger-hunt-at-home","created_at":"2024/11/13 23:43:21 +0000"},{"id":1580,"title":"Printable Christmas Spot the Differences","url":"holiday/printable-christmas-spot-the-differences","created_at":"2025/11/25 20:56:13 +0000"},{"id":1578,"title":"Printable Christmas BINGO Cards","url":"holiday/printable-christmas-bingo-cards","created_at":"2025/11/25 15:16:05 +0000"},{"id":1579,"title":"Printable Christmas Word Games","url":"holiday/printable-christmas-word-games","created_at":"2025/11/25 15:43:43 +0000"},{"id":1493,"title":"Printable Christmas Gift Tags","url":"Holiday/printable-christmas-gift-tags","created_at":"2024/11/08 17:04:37 +0000"},{"id":1581,"title":"Ultimate Printable Christmas Games Bundle","url":"holiday/christmas-games-bundle","created_at":"2025/11/25 21:51:09 +0000"},{"id":1430,"title":"Christmas Activity Sheets \u0026 Coloring Pages","url":"holiday/christmas-activity-sheets-and-coloring-pages","created_at":"2023/10/31 19:17:41 +0000"},{"id":966,"title":"15+ Easy Ways for Teens to Give Back Over Winter Break","url":"Holiday/Winter-Break-Volunteer-Ideas-for-Teens","created_at":"2016/11/18 03:14:07 +0000"},{"id":1134,"title":"Volunteering at Any Age","url":"volunteer/volunteering-at-any-age","created_at":"2018/03/27 14:09:04 +0000"},{"id":1582,"title":"8 Fun, Meaningful Ways to Encourage Teens to Volunteer","url":"ways-to-encourage-teens-to-volunteer","created_at":"2025/12/08 17:50:15 +0000"},{"id":1584,"title":"Student \u0026 Teacher End-of-Year Gift Ideas","url":"student-and-teacher-end-of-year-gift-ideas","created_at":"2025/12/08 18:22:10 +0000"},{"id":1585,"title":"Volunteer Welcome Letter Samples for Schools Leaders","url":"volunteer-welcome-letter-samples-for-school-leaders","created_at":"2025/12/08 18:39:22 +0000"},{"id":1586,"title":"Thankful for You Sweepstakes 2025 Winners","url":"Thankful-Sweepstakes-2025-Winners","created_at":"2025/12/09 18:19:32 +0000"},{"id":1199,"title":"50 Dates to Do Good This Year","url":"50-dates-to-do-good","created_at":"2019/12/18 20:20:57 +0000"},{"id":1587,"title":"Printable Classroom Party Planning Checklist","url":"Class-Party/Classroom-Party-Planning-Checklist","created_at":"2025/12/10 16:39:35 +0000"},{"id":1381,"title":"Best Party Favors \u0026 Swag Ideas for Your Special Occasion","url":"best-party-favors-and-swag-ideas","created_at":"2023/03/20 23:02:12 +0000"},{"id":1377,"title":"Best Party Invitation Websites","url":"best-party-invitation-websites","created_at":"2023/03/15 18:28:03 +0000"},{"id":1400,"title":"Finding the Perfect Speaker for Your Special Event","url":"how-to-find-an-event-speaker","created_at":"2023/05/09 16:35:54 +0000"},{"id":1142,"title":"Carnival Planning Ideas \u0026 Tips for Fun \u0026 Profitable School, Church, or Community Events","url":"fundraising-ideas/best-carnival-planning-ideas-fun-profitable-school-church-community-festivals","created_at":"2018/07/23 19:28:46 +0000"},{"id":1392,"title":"The Complete Prom Planning Guide","url":"complete-prom-planning-guide","created_at":"2023/04/18 17:27:47 +0000"}
1318,{"id":1234,"title":"How to Get Involved in a Mutual Aid Network","url":"get-involved-in-mutual-aid","created_at":"2020/04/03 22:39:42 +0000"},{"id":1438,"title":"How to Protect the Vote","url":"protect-the-vote","created_at":"2024/02/14 16:21:34 +0000"},{"id":1437,"title":"Tips for Election Day Volunteer Managers","url":"tips-for-election-day-volunteer-managers","created_at":"2024/02/14 16:07:43 +0000"},{"id":1439,"title":"Volunteering for U.S. Elections","url":"volunteer-for-us-elections","created_at":"2024/02/14 16:33:09 +0000"},{"id":1349,"title":"Ideas for Fun Fall Gatherings","url":"ideas-for-fun-fall-gatherings","created_at":"2022/08/18 21:13:10 +0000"},{"id":1161,"title":"Essential Day of Service Planning Tips for your Company, Church, Community or Team","url":"volunteering/essential-day-of-service-planning-tips-company-church-community-team-groups-giving-back","created_at":"2019/04/17 17:41:13 +0000"},{"id":1282,"title":"Volunteer Ideas for Individuals \u0026 Families","url":"volunteer-ideas","created_at":"2021/03/20 00:05:56 +0000"},{"id":1230,"title":"Virtual Volunteering: How to Make an Impact from Home","url":"virtual-volunteering","created_at":"2020/03/26 15:12:31 +0000"},{"id":1204,"title":"4 Top Tips For Finding a Career Mentor","url":"finding-a-career-mentor","created_at":"2020/01/09 22:37:24 +0000"},{"id":1203,"title":"Writing the Perfect Mentor Thank You Note","url":"mentor-thank-you-note","created_at":"2020/01/09 19:30:41 +0000"},{"id":1451,"title":"The Benefits of Becoming a Volunteer Coordinator","url":"benefits-of-being-a-volunteer-coordinator","created_at":"2024/04/10 17:35:33 +0000"},{"id":1450,"title":"Responsibilities of a Volunteer Coordinator","url":"volunteer-coordinator-responsibilities","created_at":"2024/04/10 17:20:02 +0000"},{"id":1452,"title":"How to Be a Great PTA/PTO Leader","url":"how-to-be-a-great-pta-or-pto-leader","created_at":"2024/04/10 19:49:05 +0000"},{"id":1241,"title":"Free Printable Teacher Appreciation Coloring Pages","url":"teacher-appreciation-coloring-pages","created_at":"2020/04/17 21:36:46 +0000"},{"id":1274,"title":"30+ Ideas for a Heartfelt Valentine's Day","url":"ideas-for-valentines-day","created_at":"2021/01/27 00:43:38 +0000"},{"id":1210,"title":"Printable Valentine's Day Cards for Work","url":"valentines-day-cards-for-work","created_at":"2020/01/21 20:25:10 +0000"},{"id":1209,"title":"Ways to Celebrate Valentine's Day at Work","url":"valentines-day-at-work","created_at":"2020/01/21 19:45:16 +0000"},{"id":1276,"title":"3 Easy and Heartfelt Ways to Organize Valentineâs Gifts for Teachers","url":"teacher-appreciation/3-ways-to-organize-valentines-gifts-for-teachers","created_at":"2021/02/05 15:39:46 +0000"},{"id":1505,"title":"Free Printable: Mini Valentine's Day Cards","url":"printable-mini-valentines-day-cards","created_at":"2025/01/09 20:45:57 +0000"},{"id":1020,"title":"Easy Classroom Valentineâs Party Ideas","url":"classparty/easy-classroom-valentines-party-ideas","created_at":"2017/01/24 18:59:53 +0000"},{"id":1588,"title":"Printable Random Acts of Luv Challenge","url":"printable-random-acts-of-luv-challenge","created_at":"2026/01/07 16:33:06 +0000"},{"id":1508,"title":"Fun Ways to Improve Heart Health","url":"fun-ways-to-improve-heart-health","created_at":"2025/01/28 16:57:09 +0000"},{"id":1507,"title":"Free Online SignUps for National Heart Month","url":"signups-for-heart-health","created_at":"2025/01/22 18:16:02 +0000"},{"id":1533,"title":"SignUps for Trail Lovers","url":"signups-for-trail-lovers","created_at":"2025/05/23 16:13:11 +0000"},{"id":1126,"title":"A Fantastic Easter Egg Hunt with a Side of Fundraiser","url":"fundraising-ideas/A-Fantastic-Easter-Egg-Hunt-with-a-Side-of-Fundraiser","created_at":"2017/12/21 19:49:21 +0000"},{"id":1565,"title":"15+ Creative Fair \u0026 Festival Booth Ideas","url":"creative-festival-booth-ideas-and-trends","created_at":"2025/10/01 04:34:56 +0000"},{"id":1277,"title":"Ideas for Spring Fun in the Sun","url":"spring-fun-in-the-sun","created_at":"2021/02/24 14:52:51 +0000"},{"id":1236,"title":"Easter Scavenger Hunt at Home","url":"easter-scavenger-hunt-at-home","created_at":"2020/04/08 22:40:27 +0000"},{"id":1064,"title":"Fun Ways to Celebrate Earth Day","url":"spring-activities/celebrating-earth-day","created_at":"2017/04/07 15:16:19 +0000"},{"id":1078,"title":"Unique Ways to Celebrate Mom on Mother's Day","url":"spring-activities/fun-fresh-mothers-day-celebration-ideas","created_at":"2017/05/09 19:43:35 +0000"},{"id":1273,"title":"Simple Ways to Celebrate Random Acts of Kindness Week","url":"random-acts-of-kindness-week","created_at":"2021/01/26 22:53:47 +0000"},{"id":1342,"title":"School Volunteer Jobs to Fit Your (Busy) Schedule","url":"back-to-school/school-volunteer-jobs-for-every-schedule","created_at":"2022/06/21 14:45:06 +0000"},{"id":1596,"title":"How Volunteering Can Strengthen Your Resume in 2026","url":"how-volunteering-can-strengthen-your-resume","created_at":"2026/02/17 21:31:25 +0000"},{"id":1593,"title":"Easter Egg Hunt Helpers SignUp: Copy \u0026 Paste for Organizers","url":"easter-egg-hunt-helpers-signup-copy-and-paste-for-organizers","created_at":"2026/02/10 19
1318:49:27 +0000"},{"id":1591,"title":"New Pastel Backgrounds for Your SignUps","url":"blog-and-news/pastel-backgrounds-for-signups","created_at":"2026/02/10 18:06:11 +0000"},{"id":1440,"title":"Simple Easter Brunch Ideas","url":"easter-brunch-ideas","created_at":"2024/03/05 19:03:25 +0000"},{"id":1222,"title":"Easter Scavenger Hunt","url":"easter-scavenger-hunt","created_at":"2020/03/03 23:45:58 +0000"},{"id":1124,"title":"Easter Fundraisers Families Will Love","url":"fundraising-ideas/Easter-Fundraisers-Families-Will-Love","created_at":"2017/12/21 19:22:09 +0000"},{"id":1601,"title":"Easter Egg Count Calculator","url":"easter-egg-count-calculator","created_at":"2026/02/23 21:58:46 +0000"},{"id":1441,"title":"Easter Planning Center","url":"easter-planning-center","created_at":"2024/03/06 00:08:09 +0000"},{"id":1600,"title":"Easter Event Volunteers: Free Printable Instructions for Event Day","url":"easter-event-free-printable-volunteer-instructions","created_at":"2026/02/23 21:37:35 +0000"},{"id":1598,"title":"Easter Organizer Toolkit (Downloadable Bundle)","url":"easter-organizer-toolkit-downloadable-bundle","created_at":"2026/02/23 19:36:40 +0000"},{"id":1599,"title":"Easter Event Planning Guide: 15-Minute Action Plan","url":"easter-event-planning-guide-15-minute-action-plan","created_at":"2026/02/23 20:42:18 +0000"},{"id":1514,"title":"DIY Easter Basket Ideas","url":"diy-easter-basket-ideas","created_at":"2025/03/28 16:42:44 +0000"},{"id":1453,"title":"Volunteer Coordination Resource Center","url":"volunteer-coordination-center","created_at":"2024/04/17 19:03:25 +0000"},{"id":1270,"title":"SignUp Feature: Two Ways to Collect Funds","url":"Blog-And-News/New-Feature-Money-Collection-with-PayPal-and-Stripe","created_at":"2020/12/08 17:03:00 +0000"},{"id":1498,"title":"New Themes for the New Year","url":"blog-and-news/new-themes-for-2025","created_at":"2024/12/04 19:01:52 +0000"},{"id":793,"title":"Online Snack Sign Up Sheets for Sports Teams","url":"SignUp-Sheet/Team-Snack-Schedule","created_at":"2016/06/21 13:55:08 +0000"},{"id":1003,"title":"5 Tips for Planning a Blood Drive","url":"volunteer/5-tips-for-planning-a-blood-drive","created_at":"2017/01/06 22:50:38 +0000"},{"id":875,"title":"Recurring Volunteer Calendars","url":"SignUp-Sheet/Recurring-Volunteer-Calendar","created_at":"2016/08/10 03:43:28 +0000"},{"id":1070,"title":"Engage your Middle School Readers with Treasure Hunt Fun","url":"school-activities/treasure-hunt-fun-for-middle-schoolers","created_at":"2017/04/24 21:27:42 +0000"},{"id":1285,"title":"End of Year Printable Thank You Tags","url":"School-Activities/End-of-Year-Thank-You-Printables","created_at":"2021/04/12 16:47:19 +0000"},{"id":968,"title":"SignUp Spotlight: Step Up for Soldiers","url":"SignUp-Spotlights/Step-Up-For-Soldiers","created_at":"2016/11/18 20:47:42 +0000"},{"id":1590,"title":"Spring Bucket Lists: Printable Fridge Posters for Every Age","url":"spring-activities/printable-spring-bucket-lists","created_at":"2026/02/10 17:25:13 +0000"},{"id":1589,"title":"Printable Spread the Luv Notes for Valentineâs Day (and Beyond!)","url":"printable-spread-the-luv-notes-for-valentines","created_at":"2026/01/07 16:52:58 +0000"},{"id":1329,"title":"Printable Certificates for Volunteer Appreciation","url":"Volunteer-Appreciation/Printable-Certificates-of-Appreciation-2022","created_at":"2022/02/08 23:41:25 +0000"},{"id":1606,"title":"Free Printable Nurse Appreciation Notes to Brighten Their Day","url":"printable-nurse-appreciation-notes","created_at":"2026/03/19 17:46:58 +0000"},{"id":1278,"title":"Ways to Show Appreciation During National Nurses Week","url":"national-nurses-week","created_at":"2021/03/10 20:49:29 +0000"},{"id":1594,"title":"Printable Action Egg Challenge Activity Slips","url":"easter-egg-hunt-challenge-printable-activity-slips","created_at":"2026/02/10 20:15:24 +0000"},{"id":1240,"title":"Ways to Celebrate Teacher Appreciation Week","url":"teacher-appreciation-week-ideas-from-home","created_at":"2020/04/16 16:23:34 +0000"},{"id":766,"title":"20 Teacher Appreciation Group Gift Basket Ideas","url":"Teacher-Appreciation/Group-Gift-Basket-Ideas","created_at":"2016/06/14 03:42:19 +0000"},{"id":772,"title":"Last-Minute Teacher Appreciation Week Ideas (Fast + Easy Wins!)","url":"Teacher-Appreciation/5-Simple-Teacher-Appreciation-Planning-Tips","created_at":"2016/06/14 21:06:03 +0000"},{"id":765,"title":"25 Fun \u0026 Creative Themes for Teacher Appreciation Week","url":"Teacher-Appreciation/21-Teacher-Appreciation-Themes","created_at":"2016/06/14 03:13:21 +0000"},{"id":1318,"title":"Spring FUNdraisers for Schools, Nonprofits, Teams, Clubs, Anyone","url":"fundraising-ideas/spring-fundraisers","created_at":"2021/12/13 20:58:42 +0000"},{"id":1271,"title":"Easy SignUp \u0026 Scheduling for your Coronavirus Vaccination or Flu Shot Clinic or Event","url":"coronavirus-vaccination-or-flu-shot-clinic-scheduling","created_at":"2020/12/11 23:42:25 +0000"},{"id":790,"title":"Parent Volunteer SignUp Sheets","url":"SignUp-Sheet/Parent-Volunteer-SignUp","created_at":"2016/06/20 18:23:28 +0000"},{"id":1366,"title":"Fresh \u0026 Fab Employee Appreciation Ideas","url":"employee-appreciation-ideas","created_at":"2022/11/29 22:22:00 +0000"},{"id":1350,"title":"Tutor Appreciation Ideas","url":"tutor-appreciation-ideas","created_at":"2022/09/14 15:01:16 +0000"},{"id":1607,"title":"10 Years of SignUp: Helping Communities Organize Volunteers and Events","url":"blog-and-news/signup-10-years-volunteerspot-rebrand","created_at":"2026/03/27 16:00:01 +0000"},{"id":1592,"title":"8 Creative Easter Egg Hunt Ideas That Go Beyond the Basics","url":"spring-activities/easter-egg-hunt-ideas-that-go-beyond-basics","created_at":"2026/02/10 18:58:19 +0000"},{"id":1608,"title":"Mission Trip for the Soul: 10 Tips for an Unforgettable Youth Experience","url":"youth-mission-trip-planning-tips","created_at":"2026/03/27 16:50:09 +0000"},{"id":1535,"title":"How to Make Chores Fun: Easy Summer Boredom Busters","url":"summer-activities-and-events/how-to-make-chores-fun","created_at":"2025/06/12 19:47:32 +0000"},{"id":1539,"title":"Kid-Friendly Kitchen Fun: Easy Summer Boredom Busters","url":"summer-activities-and-events/kid-friendly-kitchen-fun","created_at":"2025/06/24 17:56:20 +0000"},{"id":1610,"title":"Cardboard Box Crafts for Kids: Easy Summer Boredom Busters","url":"summer-activities-and-events/cardboard-box-crafts-for-kids","created_at":"2026/03/27 20:42:43 +0000"},{"id":1536,"title":"Summer Bucket List Ideas for the Whole Family","url":"summer-activities-and-events/summer-bucket-list","created_at":"2025/06/12 20:56:48 +0000"},{"id":1510,"title":"Appreciation Planning Center","url":"appreciation-planning-center","created_at":"2025/03/11 21:20:46 +0000"},{"id":1611,"title":"Backyard Camping Ideas: Easy Summer Boredom Busters","url":"summer-activities-and-events/backyard-camping-ideas-for-kids","created_at":"2026/03/27 20:53:19 +0000"},{"id":1612,"title":"DIY Musical Fun: Easy Summer Boredom Busters","url":"summer-activities-and-events/diy-musical-fun","created_at":"2026/04/03 16:38:15 +0000"},{"id":1387,"title":"20 Safe and Fun After-Prom Activities","url":"after-prom-ideas","created_at":"2023/04/05 21:14:41 +0000"},{"id":1388,"title":"Unique Graduation Party Theme Ideas","url":"unique-graduation-party-themes","created_at":"2023/04/05 21:37:39 +0000"},{"id":1313,"title":"End-of-Year Class Party Ideas for Kids","url":"Classparty/end-of-year-class-party-ideas-for-kids","created_at":"2021/11/09 19:33:45 +0000"},{"id":1614,"title":"Puzzle \u0026 Brain Game Bonanza: Easy Summer Boredom Busters","url":"summer-activities-and-events/puzzle-and-brain-games","created_at":"2026/04/09 19:43:35 +0000"},{"id":1613,"title":"Last-Day-of-School Printables Bundle","url":"School-Activities/end-of-school-year-printable-activities-bundle","created_at":"2026/04/07 21:49:58 +0000"},{"id":1486,"title":"Raffle \u0026 Silent Auction Basket Ideas","url":"Fundraising-Ideas/raffle-and-auction-basket-themes","created_at":"2024/10/09 18:20:37 +0000"},{"id":1279,"title":"Volunteer Appreciation Ideas","url":"volunteer-appreciation-ideas","created_at":"2021/03/10 21:06:42 +0000"},{"id":1168,"title":"Family Reunion Planning Guide for Fun Family Gatherings, Picnics \u0026 Potlucks","url":"summer-activities/family-reunion-planning-tips","created_at":"2019/06/13 23:41:21 +0000"},{"id":1616,"title":"Summer Boredom Busters: A Bundle of Easy Ideas for Kids","url":"summer-activities-and-events/summer-boredom-busters-for-kids","created_at":"2026/04/15 21:33:14 +0000"},{"id":1094,"title":"Fantastically Fun Group Campout Activities","url":"summer-activities/8-fantastic-fun-group-campout-activities","created_at":"2017/05/25 16:23:06 +0000"},{"id":1404,"title":"Perfect Pairings for Your Summer Events: Theme \u0026 Food Ideas","url":"summer-activities-and-events/party-theme-and-food-ideas","created_at":"2023/05/24 20:26:31 +0000"},{"id":1617,"title":"Easy Summer Picnic \u0026 Potluck Themes","url":"summer-activities/easy-summer-picnic-and-potluck-themes","created_at":"2026/04/16 21:07:15 +0000"},{"id":1525,"title":"Christmas in July Party Games \u0026 Activities","url":"christmas-in-july-games-and-activities","created_at":"2025/04/30 17:35:11 +0000"},{"id":1089,"title":"Summer Picnic \u0026 Potluck Ideas \u0026 Tips for Easy Gatherings","url":"summer-activities/10-sensational-summer-picnic-potluck-ideas","created_at":"2017/05/16 15:54:04 +0000"},{"id":1532,"title":"Pen \u0026 Paper Games Kids Will Love","url":"summer-activities-and-events/pen-and-paper-games-for-kids","created_at":"2025/05/22 18:44:32 +0000"},{"id":1513,"title":"Paper Craft Ideas That POP","url":"summer-activities-and-events/paper-crafts-for-kids","created_at":"2025/03/24 20:01:53 +0000"},{"id":1518,"title":"Organizing Pride Month Events SignUps","url":"pride-month-event-planning","created_at":"2025/04/16 19:10:56 +0000"},{"id":1521,"title":"SignUps for Community Socials","url":"planning-community-social-events","created_at":"2025/04/16 20:42:42 +0000"},{"id":1337,"title":"How to Organize a Book Swap Party to Encourage Summer Reading","url":"summer-activities-and-events/book-swap-party-to-encourage-summer-reading","created_at":"2022/04/26 21:46:16 +0000"},{"id":1093,"title":"Celebrate Dad With These Unique Father's Day Gift Ideas","url":"summer-activities/celebrate-dad-unique-fathers-day-gift-ideas","created_at":"2017/05/18 18:23:49 +0000"},{"id":1326,"title":"Easiest Pickleball SignUps: A Game for EVERYONE!","url":"pickleball-signups","created_at":"2022/01/28 17:25:08 +0000"},{"id":1194,"title":"Free Printable: Blessing Bag Notes","url":"printable-blessing-bag-notes","created_at":"2019/10/25 20:35:10 +0000"},{"id":1552,"title":"Fall Sports Made Easy with SignUp","url":"fall-activities-and-events/fall-sports-planning-made-easy","created_at":"2025/08/14 18:07:20 +0000"},{"id":1458,"title":"Baby Shower Games \u0026 Activities","url":"baby-shower-games","created_at":"2024/05/23 17:40:39 +0000"},{"id":1459,"title":"Baby Shower Planning Checklist","url":"baby-shower-checklist","created_at":"2024/05/23 17:44:40 +0000"},{"id":1492,"title":"How to Organize a Meal Circle (aka Meal Train)","url":"meal-circle-planning","created_at":"2024/11/05 15:45:19 +0000"},{"id":1472,"title":"Printable Bridal Shower or Wedding Shower Activities","url":"printable-bridal-shower-games-and-activities","created_at":"2024/07/30 16:41:24 +0000"},{"id":1595,"title":"Housewarming Party: Food \u0026 Drink Ideas","url":"housewarming-party-food-and-drink-ideas","created_at":"2026/02/10 21:15:00 +0000"},{"id":1554,"title":"Housewarming Party Ideas: Creative Gifts, Games \u0026 Activities","url":"housewarming-party-gifts-and-games","created_at":"2025/08/14 18:42:14 +0000"},{"id":1609,"title":"Vacation Bible School Planning Made Easy: 8 Smart Tips","url":"vacation-bible-school-planning-tips","created_at":"2026/03/27 20:30:12
1318+0000"},{"id":1460,"title":"Online SignUps for Milestone Celebrations","url":"milestone-celebrations","created_at":"2024/05/30 22:13:36 +0000"},{"id":1393,"title":"Free Church Volunteer Sign Up Sheet \u0026 Ministry Scheduling Tool","url":"online-church-management-software","created_at":"2023/04/24 17:27:17 +0000"},{"id":1368,"title":"Great Ways to Use SignUp to Do Good","url":"ways-to-use-signup-to-do-good","created_at":"2022/12/12 18:42:12 +0000"},{"id":792,"title":"Free Volunteer Sign Up Sheet Maker \u0026 Online Scheduling Tool","url":"SignUp-Sheet/Volunteer-SignUp-Sheets","created_at":"2016/06/20 18:49:07 +0000"},{"id":1341,"title":"Back to School Welcome Letters to Parents for Room Parents, PTA Leaders, PTO Leaders \u0026 Teachers","url":"back-to-school/welcome-letters-to-parents","created_at":"2022/06/15 15:30:34 +0000"},{"id":1299,"title":"Virtual \u0026 Hybrid Fundraising Ideas for Schools \u0026 PTAs","url":"fundraising-ideas/virtual-fundraising-ideas-for-schools-and-ptas","created_at":"2021/07/21 18:30:55 +0000"},{"id":1118,"title":"WATCH D.O.G.S.: A School-Parent Engagement Program","url":"School-Activities/WATCH-DOGS-School-Parent-Engagement-Program","created_at":"2017/10/03 20:09:12 +0000"},{"id":862,"title":"Watch D.O.G.S. Volunteer Sign Up Sheets for School Volunteers","url":"WatchDOGS/Parent-Volunteer-SignUp","created_at":"2016/07/26 20:04:00 +0000"},{"id":1345,"title":"Best Ways to Welcome Families Back to School (for PTOs and PTAs)","url":"back-to-school/best-ways-to-welcome-families","created_at":"2022/06/29 15:24:10 +0000"},{"id":1343,"title":"Fresh Volunteer Recruitment Strategies for PTAs \u0026 PTOs","url":"back-to-school/volunteer-recruitment-strategies-for-parent-leaders","created_at":"2022/06/21 15:05:23 +0000"},{"id":1623,"title":"Classroom Fundraising Ideas for Teachers","url":"classroom-fundraising-ideas-for-teachers","created_at":"2026/06/11 16:30:24 +0000"},{"id":1624,"title":"How to Set Up a School Carpool: Step-by-Step Guide for Parents","url":"how-to-set-up-a-school-carpool","created_at":"2026/06/11 16:33:38 +0000"},{"id":1625,"title":"Shared Meals SignUp for Busy Parents","url":"signup-meal-train-for-busy-parents","created_at":"2026/06/11 16:40:43 +0000"},{"id":1622,"title":"Classroom Volunteer Management for Teachers","url":"classroom-volunteer-management","created_at":"2026/06/11 16:22:15 +0000"},{"id":1620,"title":"PTO \u0026 PTA Volunteer Coordination Center: Free PTA \u0026 PTO Volunteer SignUp Sheets","url":"pta-pto-volunteer-sign-up-sheets","created_at":"2026/06/02 22:22:27 +0000"},{"id":1583,"title":"10 Great Tools to Get Your School Parent Group Organized","url":"10-tools-to-get-your-school-parent-group-organized","created_at":"2025/12/08 18:08:47 +0000"},{"id":779,"title":"How to Get Perfect Attendance at Parent-Teacher Conferences","url":"Parent-Teacher-Conference/How-To-Get-Perfect-Attendance","created_at":"2016/06/15 03:25:50 +0000"},{"id":1095,"title":"Fourth of July Party Planning Essentials | Food, Activities \u0026 Volunteer Tips","url":"summer-activities/fourth-of-july-party-planning-essentials","created_at":"2017/05/26 13:47:22 +0000"},{"id":791,"title":"Parent-Teacher Conference Checklist for Parents | What to Ask \u0026 How to Prepare","url":"Parent-Teacher-Conference/Parent-Teacher-Conference-Checklist-for-Parents","created_at":"2016/06/20 18:40:26 +0000"},{"id":782,"title":"Parent-Teacher Conference Follow-Up with Students | Tips for Teachers","url":"Parent-Teacher-Conference/Parent-Teacher-Conference-Follow-Up-with-Students","created_at":"2016/06/15 03:45:55 +0000"},{"id":781,"title":"Parent-Teacher Conference Tips for Teachers","url":"Parent-Teacher-Conference/Parent-Teacher-Conference-Tips-for-Teachers","created_at":"2016/06/15 03:38:42 +0000"},{"id":1401,"title":"Pool Party Planning Guide | Food, Games, Setup \u0026 Safety Tips","url":"summer-activities-and-events/pool-party-planning","created_at":"2023/05/11 14:47:32 +0000"},{"id":1379,"title":"Best Apps to Find Unique Event \u0026 Party Venues","url":"best-event-venue-finder-apps","created_at":"2023/03/16 19:12:26 +0000"},{"id":1519,"title":"Festive Food Ideas for Christmas in July","url":"christmas-in-july-food-ideas","created_at":"2025/04/16 19:46:35 +0000"},{"id":1001,"title":"SignUp Spotlight: Central Carolina Skating Club","url":"SignUp-Spotlights/Central-Carolina-Skating-Club","created_at":"2016/12/30 05:36:52 +0000"},{"id":906,"title":"SignUp Spotlight: Belle Aire PTA","url":"SignUp-Spotlights/Belle-Aire-PTA","created_at":"2016/09/02 19:11:57 +0000"},{"id":876,"title":"SignUp Spotlight: Episcopal Community Services","url":"SignUp-Spotlights/Episcopal-Community-Services","created_at":"2016/08/12 16:08:42 +0000"},{"id":868,"title":"SignUp Spotlight: Iredell County Animal Services","url":"SignUp-Spotlights/Iredell-County-Animal-Services","created_at":"2016/08/01 16:17:29 +0000"},{"id":1238,"title":"SignUp Spotlight: Masks for the Frontlines Iowa","url":"SignUp-Spotlights/Masks-for-the-Frontlines-Iowa","created_at":"2020/04/14 18:06:59 +0000"},{"id":1257,"title":"SignUp Spotlight: myCovidMD","url":"SignUp-Spotlights/myCovidMD","created_at":"2020/07/28 17:28:44 +0000"},{"id":1517,"title":"Best Fundraising \u0026 Donor Management Platforms for Nonprofits","url":"nonprofit-fundraising-ideas/best-fundraising-and-donor-management-platforms","created_at":"2025/04/07 19:24:37 +0000"},{"id":1605,"title":"SignUp Spotlight: United Way Whiteside County Serving Kids in Need","url":"SignUp-Spotlights/United-Way-Whiteside-County","created_at":"2026/03/17 18:21:25 +0000"},{"id":1631,"title":"SignUp Spotlight: American Diabetes Association®","url":"SignUp-Spotlights/American-Diabetes-Association","created_at":"2026/06/25 17:22:58 +0000"},{"id":954,"title":"\"Caring\" Ideas for National Family Volunteer Day","url":"Volunteer-Appreciation/National-Family-Volunteer-Day-Caring-Ideas","created_at":"2016/11/01 02:27:23 +0000"},{"id":1303,"title":"Boosting Group Success: SignUp + MemberHub","url":"Blog-And-News/Boosting-Group-Success-with-SignUp-and-MemberHub","created_at":"2021/07/28 15:49:54 +0000"}
1318,{"id":1295,"title":"Back-to-School Staff Appreciation Ideas","url":"school-activities/staff-appreciation-ideas","created_at":"2021/06/24 19:43:28 +0000"},{"id":2187,"title":"How to Plan Parent-Teacher Conferences with SignUp","url":"help/how-to-plan-parent-teacher-conferences","created_at":"2026/07/06 21:25:09 +0000"},{"id":2188,"title":"How to Print Reports, Rosters, and Sign-In Sheets | SignUp.com","url":"help/how-to-print-reports-rosters-and-sign-in-sheets","created_at":"2026/07/06 21:25:10 +0000"},{"id":2189,"title":"How to Remove a Participant from Your SignUp | SignUp.com","url":"help/how-to-remove-a-participant","created_at":"2026/07/06 21:25:10 +0000"},{"id":2190,"title":"How to See Who Is Signed Up | View Spots and Participants","url":"help/how-to-see-whos-signed-up","created_at":"2026/07/06 21:25:10 +0000"},{"id":2191,"title":"How to Set Up a Potluck or Party SignUp","url":"help/how-to-set-up-a-potluck-or-party","created_at":"2026/07/06 21:25:10 +0000"},{"id":2192,"title":"How to Sign Up Someone Else on a SignUp | Family, Teams \u0026 Groups","url":"help/how-to-sign-up-someone-else","created_at":"2026/07/06 21:25:10 +0000"},{"id":2193,"title":"How to Sync SignUp with Google Calendar, Outlook \u0026 More","url":"help/how-to-sync-signups-with-your-calendar","created_at":"2026/07/06 21:25:11 +0000"}
1318,{"id":2194,"title":"How to Invite Participants to Your SignUp | Share by Email, Link, and More","url":"help/invite-tab-and-sharing-options","created_at":"2026/07/06 21:25:11 +0000"},{"id":2195,"title":"Is SignUp Really Free? | Free Signup Sheet Tool","url":"help/is-signup-really-free","created_at":"2026/07/06 21:25:11 +0000"},{"id":2196,"title":"Primary Organizer vs. Assistant Organizer | Roles and Permissions","url":"help/primary-vs-assistant-organizer","created_at":"2026/07/06 21:25:11 +0000"},{"id":2197,"title":"How to Get a QR Code for Your SignUp or Group Page","url":"help/qr-code-for-signup-or-group-page","created_at":"2026/07/06 21:25:11 +0000"},{"id":2199,"title":"How to Set Up Text (SMS) Reminders for Participants","url":"help/sms-text-reminders-for-participants","created_at":"2026/07/06 21:25:12 +0000"},{"id":2198,"title":"How to Set Up Parent-Teacher Conferences for a School or Grade","url":"help/setting-up-parent-teacher-conferences-for-a-school","created_at":"2026/07/06 21:25:11 +0000"},{"id":2200,"title":"Tour of the Reports Tab | All SignUp Reports Explained","url":"help/tour-of-the-reports-tab","created_at":"2026/07/06 21:25:12 +0000"},{"id":2201,"title":"Can't Sign Up? Troubleshooting Tips for Participants","url":"help/troubleshooting-i-cant-sign-up","created_at":"2026/07/06 21:25:12 +0000"},{"id":2202,"title":"What's Included in SignUp's Premium Plans?","url":"help/what-are-the-premium-features","created_at":"2026/07/06 21:25:12 +0000"},{"id":2203,"title":"When Are Emails Sent from SignUp? | All Automated Emails Explained","url":"help/when-are-emails-sent-from-signup","created_at":"2026/07/06 21:25:12 +0000"},{"id":2146,"title":"Can I Upgrade to Ad-Free Without a Premium Plan?","url":"help/can-i-upgrade-to-ad-free-without-premium","created_at":"2026/07/06 21:25:02 +0000"},{"id":2147,"title":"How to Get Started with SignUp | Free Online Sign Up Sheets","url":"help/getting-started-how-to-set-up-a-signup","created_at":"2026/07/06 21:25:03 +0000"},{"id":2148,"title":"How to Set Up a Group Page | All Your SignUp Links in One Place","url":"help/group-page-all-signup-links-on-one-page","created_at":"2026/07/06 21:25:03 +0000"},{"id":2149,"title":"How Participant Check-In Works | Track Attendance with SignUp.com","url":"help/how-participant-check-in-works","created_at":"2026/07/06 21:25:03 +0000"},{"id":2150,"title":"How Participants and Volunteers Access SignUp | No Account Needed","url":"help/how-participants-access-signup","created_at":"2026/07/06 21:25:03 +0000"},{"id":2151,"title":"How to Change or Cancel Your Spot on a SignUp","url":"help/how-to-change-or-cancel-your-spot","created_at":"2026/07/06 21:25:03 +0000"}
1318,{"id":2152,"title":"How to Add a Logo or Background to Your SignUp | Customize Your Theme","url":"help/how-to-add-a-logo-or-background-to-your-signup","created_at":"2026/07/06 21:25:03 +0000"},{"id":2153,"title":"How to Add a Manual Assignment for a Participant | SignUp.com","url":"help/how-to-add-a-manual-assignment","created_at":"2026/07/06 21:25:04 +0000"},{"id":2154,"title":"How to Add a Participant to a SignUp | Invite, Assign, or Import | SignUp.com","url":"help/how-to-add-a-participant-to-a-signup","created_at":"2026/07/06 21:25:04 +0000"},{"id":2155,"title":"How to Add a Waitlist to Your SignUp | Notification Waitlist","url":"help/how-to-add-a-waitlist","created_at":"2026/07/06 21:25:04 +0000"},{"id":2156,"title":"How to Add a Waiver to Your SignUp | Liability Release and Agreements","url":"help/how-to-add-a-waiver-to-your-signup","created_at":"2026/07/06 21:25:04 +0000"},{"id":2157,"title":"How to Add an Assistant Organizer to Your SignUp","url":"help/how-to-add-an-assistant-organizer","created_at":"2026/07/06 21:25:04 +0000"},{"id":2158,"title":"How to Add Custom Questions to Your SignUp Form","url":"help/how-to-add-custom-participant-questions","created_at":"2026/07/06 21:25:04 +0000"},{"id":2159,"title":"How to Add Spots to Your SignUp | Jobs, Shifts \u0026 More","url":"help/how-to-add-spots-to-your-signup","created_at":"2026/07/06 21:25:05 +0000"},{"id":2160,"title":"How to Archive or Delete a SignUp","url":"help/how-to-archive-or-delete-a-signup","created_at":"2026/07/06 21:25:05 +0000"},{"id":2161,"title":"How to Cancel, Archive, or Postpone a SignUp","url":"help/how-to-cancel-archive-or-postpone-a-signup","created_at":"2026/07/06 21:25:05 +0000"},{"id":2162,"title":"How to Change Your Organizer Email Preferences","url":"help/how-to-change-email-preferences","created_at":"2026/07/06 21:25:05 +0000"},{"id":2163,"title":"How to Change Your Email Address as an Organizer","url":"help/how-to-change-organizer-email-address","created_at":"2026/07/06 21:25:05 +0000"},{"id":2164,"title":"How to Change the Date of Your SignUp | Reschedule Spots","url":"help/how-to-change-the-date-of-your-signup","created_at":"2026/07/06 21:25:05 +0000"},{"id":2165,"title":"How to Change the Primary Organizer on Your SignUp","url":"help/how-to-change-the-primary-organizer","created_at":"2026/07/06 21:25:06 +0000"},{"id":2166,"title":"How to Change the Sort Order of Items on Your SignUp","url":"help/how-to-change-the-sort-order-of-spots","created_at":"2026/07/06 21:25:06 +0000"},{"id":2167,"title":"How to Change the Start Date on Your SignUp","url":"help/how-to-change-the-start-date-on-your-signup","created_at":"2026/07/06 21:25:06 +0000"},{"id":2168,"title":"How to Change Your Email Address on SignUp | SignUp.com","url":"help/how-to-change-your-email-address","created_at":"2026/07/06 21:25:06 +0000"},{"id":2169,"title":"How to Collect Money with Your SignUp | Stripe and PayPal","url":"help/how-to-collect-money-with-your-signup","created_at":"2026/07/06 21:25:06 +0000"},{"id":2170,"title":"How to Copy Last Year's SignUp Plans to This Year","url":"help/how-to-copy-last-years-signup-plans","created_at":"2026/07/06 21:25:06 +0000"},{"id":2171,"title":"How to Customize Reminder Messages","url":"help/how-to-customize-reminder-messages","created_at":"2026/07/06 21:25:07 +0000"},{"id":2172,"title":"How to Delete Days from Your SignUp | Single and Multiple Dates","url":"help/how-to-delete-days-from-your-signup","created_at":"2026/07/06 21:25:07 +0000"},{"id":2173,"title":"How to Duplicate a SignUp | Copy \u0026 Reuse Your Setup","url":"help/how-to-duplicate-a-signup","created_at":"2026/07/06 21:25:07 +0000"},{"id":2174,"title":"How to Edit Spots on Your SignUp | Update Times, Titles \u0026 More","url":"help/how-to-edit-spots-on-your-signup","created_at":"2026/07/06 21:25:07 +0000"},{"id":2175,"title":"How to Extend Your SignUp to the Next Month, Quarter, or Year","url":"help/how-to-extend-your-signup-to-the-next-season","created_at":"2026/07/06 21:25:07 +0000"},{"id":2176,"title":"How to Find a Missing SignUp | Archived and Past SignUps","url":"help/how-to-find-a-missing-signup","created_at":"2026/07/06 21:25:08 +0000"},{"id":2177,"title":"How to Get Notified When Someone Signs Up | Organizer Alerts","url":"help/how-to-get-notified-when-someone-signs-up","created_at":"2026/07/06 21:25:08 +0000"},{"id":2178,"title":"How to Get Notified When New Spots Open on a SignUp","url":"help/how-to-get-notified-when-spots-open","created_at":"2026/07/06 21:25:08 +0000"},{"id":2179,"title":"How to Get a Report of Your Volunteer Hours","url":"help/how-to-get-your-volunteer-hours-report","created_at":"2026/07/06 21:25:08 +0000"},{"id":2180,"title":"How to Import Emails and Create Contact Lists","url":"help/how-to-import-emails-and-create-contact-lists","created_at":"2026/07/06 21:25:08 +0000"},{"id":2181,"title":"How to Invite People to Your SignUp | Email, Link \u0026 More","url":"help/how-to-invite-people-to-your-signup","created_at":"2026/07/06 21:25:08 +0000"},{"id":2182,"title":"How to Limit the Number of Spots Each Participant Can Sign Up For","url":"help/how-to-limit-spots-per-participant","created_at":"2026/07/06 21:25:09 +0000"},{"id":2183,"title":"How to Lock Your SignUp and Prevent Participant Changes","url":"help/how-to-lock-spots-and-prevent-changes","created_at":"2026/07/06 21:25:09 +0000"},{"id":2184,"title":"How to Lock Your SignUp or Schedule Open and Close Times","url":"help/how-to-lock-your-signup","created_at":"2026/07/06 21:25:09 +0000"},{"id":2185,"title":"How to Make Your SignUps Ad-Free | Remove Ads","url":"help/how-to-make-your-signups-ad-free","created_at":"2026/07/06 21:25:09 +0000"},{"id":2186,"title":"How to Plan a Multi-Day SignUp | Recurring Events and Volunteer Schedules","url":"help/how-to-plan-a-multi-day-signup","created_at":"2026/07/06 21:25:09 +0000"},{"id":2145,"title":"Campus Plan for K-12 Schools | School-Wide Volunteer Management","url":"help/campus-plan-for-k12-schools","created_at":"2026/07/06 21:25:02 +0000"},{"id":2204,"title":"Top FAQs: Using SignUp","url":"help/browse-help-topics","created_at":"2026/07/08 16:30:55 +0000"},{"id":1538,"title":"Free Printable First Day of School Signs for 2025-2026","url":"back-to-school/printable-first-day-of-school-signs-2025","created_at":"2025/06/24 17:31:14 +0000"},{"id":1619,"title":"Free Printable First Day of School Signs for 2026-2027","url":"back-to-school/printable-first-day-of-school-signs-2026","created_at":"2026/05/27 20:37:10 +0000"}
1318,{"id":1456,"title":"Organized Chaos: Back-to-School Hacks for Parents","url":"back-to-school/hacks-for-parents","created_at":"2024/05/15 00:38:00 +0000"},{"id":1297,"title":"Back-to-School Night Ideas \u0026 Tips for 2026 (In-Person + Virtual)","url":"school-activities/10-Tips-for-Planning-Back-to-School-Night","created_at":"2021/07/06 18:48:29 +0000"},{"id":2118,"title":"Best Free Classroom Volunteer Tool for Room Parents","url":"best-free-classroom-volunteer-coordination-tool-for-room-parents","created_at":"2026/07/01 19:02:08 +0000"},{"id":1597,"title":"SignUp Recognized By Gartner Digital Markets as a Top Product in 2025","url":"Blog-And-News/SignUp-Recognized-by-Gartner-as-a-Top-Product-2025","created_at":"2026/02/23 00:50:29 +0000"},{"id":1264,"title":"Your Voting Checklist for the 2026 Election","url":"voters-checklist","created_at":"2020/10/05 20:53:15 +0000"},{"id":1476,"title":"Tailgating Hacks","url":"fall-activities-and-events/tailgating-hacks","created_at":"2024/08/21 15:12:18 +0000"},{"id":1553,"title":"Kid-Friendly Tailgate Ideas: Fun Games \u0026 Activities for Every Age","url":"fall-activities-and-events/kid-friendly-tailgate-activities","created_at":"2025/08/14 18:29:44 +0000"},{"id":946,"title":"Tailgating Potluck Ideas and Game Day Party Tips","url":"Potluck/Game-Day-Tailgate-Ideas","created_at":"2016/10/17 19:42:52 +0000"},{"id":1626,"title":"The SignUp Team Authors","url":"authors/signup-team","created_at":"2026/06/16 23:45:32 +0000"},{"id":1084,"title":"Company Press Releases","url":"about/company-press-releases","created_at":"2017/05/11 15:25:39 +0000"},{"id":2205,"title":"Free Nonprofit Volunteer Coordination Tool","url":"nonprofit-volunteer-coordination-tool","created_at":"2026/08/07 01:04:32 +0000"},{"id":1618,"title":"SignUp's Season of Appreciation Sweepstakes Winners 2026","url":"season-of-appreciation-sweepstakes-winners-2026","created_at":"2026/05/27 16:42:18 +0000"},{"id":948,"title":"Family Service Idea: Blessing Bags","url":"Family-Service-Idea-Blessing-Bags","created_at":"2016/10/17 22:55:34 +0000"},{"id":2206,"title":"How to Schedule and Manage Nonprofit Volunteers for Free: A Step-by-Step Guide","url":"nonprofit-volunteer-scheduling","created_at":"2026/08/07 01:44:37 +0000"},{"id":2207,"title":"Volunteer Sign-Up Sheets for Nonprofits: Templates and Best Practices","url":"volunteer-sign-up-sheets-for-nonprofits","created_at":"2026/08/07 01:44:40 +0000"},{"id":2208,"title":"Nonprofit Volunteer Hour Tracking: Why It Matters and How to Do It for Free","url":"nonprofit-volunteer-hour-tracking","created_at":"2026/08/07 01:44:43 +0000"},{"id":1202,"title":"National Mentoring Month: The 4 Cs of Mentorship","url":"national-mentoring-month","created_at":"2020/01/08 17:34:28 +0000"},{"id":1372,"title":"Mentor Planning Center","url":"mentor-planning-center","created_at":"2023/01/10 21:28:12 +0000"},{"id":1062,"title":"Tips \u0026 Tricks for Planning a Neighborhood Cleanup","url":"spring-activities/tips-tricks-planning-a-neighborhood-cleanup","created_at":"2017/04/07 14:51:44 +0000"},{"id":1083,"title":"35 Graduation Party Games and Activities","url":"spring-activities/fun-graduation-party-games-activities","created_at":"2017/05/10 20:18:49 +0000"},{"id":2213,"title":"Free Group Event SignUp Sheets for Parties, Potlucks \u0026 More","url":"group-event-sign-up-sheets","created_at":"2026/08/25 15:19:32 +0000"},{"id":1549,"title":"How to Host the Ultimate Fall Craft Night","url":"fall-activities-and-events/host-craft-night","created_at":"2025/07/23 18:29:15 +0000"},{"id":2212,"title":"Holiday Party Planning Guide: Sign Up Sheets for School, Work \u0026 Community Parties","url":"holiday-party-planning","created_at":"2026/08/24 21:36:26 +0000"},{"id":2211,"title":"Reunion Planning Guide: Tips for School, Family, Military, Workplace, and Cultural Reunions","url":"reunion-planning","created_at":"2026/08/24 21:18:52 +0000"},{"id":2210,"title":"How to Plan a Neighborhood Block Party","url":"block-party-planning","created_at":"2026/08/24 20:37:31 +0000"},{"id":2215,"title":"SignUp's B2S Sweepstakes 2026 Winners","url":"B2S-Sweepstakes-2026-Winners","created_at":"2026/08/31 18:44:35 +0000"},{"id":1550,"title":"Free Printable Classroom Posters for Teachers","url":"School-Activities/printable-classroom-posters-for-teachers","created_at":"2025/07/30 19:19:34 +0000"},{"id":2209,"title":"Fall Bucket List: Seasonal Fun for the Whole Family","url":"fall-activities-and-events/fall-bucket-list","created_at":"2026/08/20 15:29:18 +0000"},{"id":1192,"title":"Free Printables: Halloween Garland","url":"class-party/printable-halloween-garland","created_at":"2019/10/21 17:26:43 +0000"},{"id":1627,"title":"Free Printable Halloween Treat Bag Tags","url":"halloween-planning/free-printable-halloween-treat-bag-tags","created_at":"2026/06/17 18:56:40 +0000"},{"id":919,"title":"12 Tips for Planning a Halloween Block Party","url":"fall-activities-and-events/10-tips-for-hosting-halloween-block-party","created_at":"2016/09/09 18:12:45 +0000"},{"id":2216,"title":"Free Printable Halloween Games \u0026 Activities Bundle","url":"halloween-planning/printable-halloween-games-and-activities-bundle","created_at":"2026/09/03 19:47:59 +0000"},{"id":1628,"title":"Free You've Been Booed Printable Kit | Halloween Neighbor Tags \u0026 Signs","url":"halloween-planning/youve-been-booed-free-printable-kit","created_at":"2026/06/17 18:57:34 +0000"},{"id":1621,"title":"Free Printable Halloween Bingo Cards","url":"halloween-planning/halloween-bingo-printable","created_at":"2026/06/09 16:02:43 +0000"},{"id":1293,"title":"19 Ideas \u0026 Tips for Building School Spirit","url":"school-activities/ideas-for-building-school-spirit","created_at":"2021/06/04 19:19:06 +0000"},{"id":2115,"title":"Free Printable Halloween Trivia (Kids \u0026 Adults) + Answer Key","url":"halloween-planning/free-printable-halloween-trivia","created_at":"2026/06/30 23:18:39 +0000"},{"id":944,"title":"Fall Potluck Planning Ideas","url":"Potluck/Fall-Potluck-Planning-Ideas","created_at":"2016/10/17 18:43:51 +0000"},{"id":768,"title":"How to Create a Potluck SignUp Sheet with Automatic Reminders","url":"Potluck/Potluck-SignUp-Sheets-with-Reminders","created_at":"2016/06/14 19:48:10 +0000"},{"id":1053,"title":"Field Day Games \u0026 Activities for the Best Field Day Ever!","url":"spring-activities/field-day-games-activities-for-best-field-day-ever","created_at":"2017/03/06 20:22:46 +0000"},{"id":2217,"title":"Field Trip Sign Up Sheet: Free \u0026 Online | Chaperones, Drivers \u0026 Attendance","url":"Sign-Up-Sheet/Field-Trip-Sign-Up-Sheet","created_at":"2026/09/08 19:22:56 +0000"},{"id":1283,"title":"50+ School Spirit Week Ideas by Grade Level","url":"spirit-week-ideas","created_at":"2021/03/31 20:10:44 +0000"},{"id":1477,"title":"Free Printable Halloween Activity Sheets \u0026 Coloring Pages","url":"fall-activities-and-events/halloween-activity-sheets-and-coloring-pages","created_at":"2024/09/12 21:40:53 +0000"},{"id":1478,"title":"Halloween SignUp Themes for Parties, Events \u0026 Activities","url":"blog-and-news/new-halloween-themes-for-signups","created_at":"2024/09/13 19:57:42 +0000"},{"id":1190,"title":"Free Printables: Fall \u0026 Halloween Cupcake Wraps","url":"class-party/printable-fall-and-halloween-cupcake-wraps","created_at":"2019/10/09 21:18:09 +0000"},{"id":1129,"title":"Parent-Teacher Conference Scheduling Success | Tips for Teachers \u0026 Parents","url":"parent-teacher-conference/parent-teacher-conference-scheduling-success","created_at":"2018/02/13 20:42:58 +0000"},{"id":997,"title":"Book Report Survival Guide for Busy Parents","url":"school-activities/book-report-survival-guide-for-busy-parents","created_at":"2016/12/21 16:11:02 +0000"}
1318,{"id":1418,"title":"Halloween Planning Center","url":"halloween-planning","created_at":"2023/08/30 18:16:59 +0000"},{"id":1311,"title":"Holiday and Winter Fundraising Ideas","url":"fundraising-ideas/winter-fundraiser-ideas","created_at":"2021/10/12 21:49:23 +0000"},{"id":2220,"title":"Free Printable Gratitude Activities \u0026 Kindness Calendar","url":"fall-activities-and-events/giving-season-printables","created_at":"2026/09/24 17:45:55 +0000"},{"id":1496,"title":"Do Good Planning Center","url":"do-good-planning-center","created_at":"2024/11/20 17:14:45 +0000"},{"id":1389,"title":"Thoughtful Graduation Gift Ideas for High School Grads","url":"thoughtful-graduation-gifts","created_at":"2023/04/05 21:57:00 +0000"},{"id":931,"title":"SignUp Spotlight: Timothy Day (Parent Teacher Conference Planning)","url":"SignUp-Spotlights/Timothy-Day","created_at":"2016/09/26 15:39:13 +0000"},{"id":2224,"title":"Free Parent-Teacher Conference Sign-Up Sheet Template","url":"parent-teacher-conference/parent-teacher-conference-sign-up-sheet-template","created_at":"2026/09/25 15:27:10 +0000"},{"id":2225,"title":"Questions to Ask at Your Child's Parent-Teacher Conference","url":"parent-teacher-conference/questions-to-ask-at-parent-teacher-conference","created_at":"2026/09/25 15:27:11 +0000"},{"id":2223,"title":"Kindergarten Parent-Teacher Conference Guide","url":"parent-teacher-conference/kindergarten-parent-teacher-conference-guide","created_at":"2026/09/25 15:27:09 +0000"},{"id":2222,"title":"How Long Do Parent-Teacher Conferences Last?","url":"parent-teacher-conference/how-long-do-parent-teacher-conferences-last","created_at":"2026/09/25 15:26:59 +0000"},{"id":2221,"title":"How to Schedule Parent-Teacher Conferences in 8 Steps","url":"parent-teacher-conference/how-to-schedule-parent-teacher-conferences","created_at":"2026/09/24 21:50:56 +0000"},{"id":1415,"title":"28 Happenin' Halloween Party Games \u0026 Activities","url":"fall-activities-and-events/halloween-games-and-activities","created_at":"2023/08/21 18:58:36 +0000"},{"id":1413,"title":"63 Easy DIY Halloween Costume Ideas","url":"fall-activities-and-events/diy-halloween-costume-ideas","created_at":"2023/08/08 17:34:24 +0000"},{"id":1559,"title":"DIY Pet Halloween Ideas: Costumes, Treats \u0026 Photo Contest Fun","url":"fall-activities-and-events/halloween-diy-pet-costumes-and-treats","created_at":"2025/09/08 19:04:07 +0000"},{"id":1419,"title":"Fang-tastic Food Ideas for Halloween Happenings","url":"fall-activities-and-events/halloween-food-ideas","created_at":"2023/09/07 16:34:29 +0000"},{"id":1562,"title":"Glow-in-the-Dark Halloween Party Fun","url":"fall-activities-and-events/glow-in-the-dark-halloween-games","created_at":"2025/09/08 21:48:23 +0000"},{"id":945,"title":"Halloween Potluck Planning Guide","url":"Potluck/Halloween-Potluck-Ideas","created_at":"2016/10/17 19:08:10 +0000"},{"id":1416,"title":"How to Add a Magical Touch to Your Halloween Costume Contest","url":"fall-activities-and-events/halloween-costume-contest","created_at":"2023/08/23 21:16:28 +0000"},{"id":1560,"title":"How to Organize a Neighborhood Halloween Parade","url":"fall-activities-and-events/neighborhood-halloween-parade","created_at":"2025/09/08 19:20:37 +0000"},{"id":1193,"title":"Non-Food Halloween Treats Kids Will Love","url":"class-party/15-Non-Food-Halloween-Treats-Kids-Love","created_at":"2019/10/21 22:47:44 +0000"},{"id":1481,"title":"Trunk-or-Treat Ideas: 40 Eerie-sistible Trunk Designs","url":"fall-activities-and-events/trunk-or-treat-ideas","created_at":"2024/09/17 17:35:13 +0000"},{"id":1310,"title":"Fun Alternatives (or Additions) to Trick-or-Treating","url":"fall-activities-and-events/alternatives-to-trick-or-treating","created_at":"2021/10/12 21:32:23 +0000"},{"id":932,"title":"Family Code Night Facebook Images","url":"FamilyCodeNight/Facebook-Images","created_at":"2016/09/28 09:37:31 +0000"},{"id":778,"title":"Set the Tone for Learning with a Growth Mindset Bulletin Board","url":"School-Activities/Growth-Mindset-Bulletin-Board-Printable","created_at":"2016/06/14 21:57:14 +0000"},{"id":759,"title":"Reviews for SignUp.com","url":"Reviews","created_at":"2016/06/09 14:36:36 +0000"},{"id":761,"title":"Group Coordination Made Easy","url":"What-We-Do","created_at":"2016/06/13 12:44:11 +0000"},{"id":863,"title":"Free SignUp.com Printable Flyers for Elementary \u0026 Middle Schools","url":"Back-To-School/Elementary-Middleschool-Flyers","created_at":"2016/07/28 18:09:40 +0000"},{"id":878,"title":"Teacher Survey: Free Downloadable Room Parent Resource","url":"Room-Parent/Free-Teacher-Survey","created_at":"2016/08/15 17:40:28 +0000"},{"id":877,"title":"Free Printable Room Parent Checklist for Classrooms","url":"Room-Parent/Free-Room-Parent-Teacher-Checklist","created_at":"2016/08/15 17:10:12 +0000"},{"id":668,"title":"About SignUp.com","url":"About","created_at":"2016/06/01 20:19:41 +0000"},{"id":924,"title":"Nut-Free Snack Ideas and Allergy-Safe Planning Tips for Classroom Events","url":"Class-Party/Nut-Free-Snacks-for-Kids","created_at":"2016/09/12 16:58:46 +0000"},{"id":961,"title":"Printable Checklist: Holiday Classroom Party","url":"Class-Party/Class-Party-Checklist-Holiday","created_at":"2016/11/09 02:21:21 +0000"},{"id":1021,"title":"Free Downloadable Valentine's Day Class Party Checklist","url":"Class-Party/Valentines-Day-Class-Party-Checklist","created_at":"2017/01/25 02:24:13 +0000"},{"id":1022,"title":"Valentine's Day Printable Potluck Dish Labels and Food Allergy Tags","url":"Potluck/Valentines-Day-Potluck-Printables-and-Meal-Cards","created_at":"2017/01/25 02:38:06 +0000"},{"id":856,"title":"Classic Printable Volunteer Appreciation Certificates","url":"Volunteer-Appreciation/Free-Printable-Certificates","created_at":"2016/07/22 16:19:37 +0000"},{"id":752,"title":"Teacher Appreciation Week Potluck Ideas","url":"Teacher-Appreciation/Teacher-Appreciation-Potluck-Ideas","created_at":"2016/06/06 16:28:54 +0000"},{"id":671,"title":"Contact","url":"Contact","created_at":"2016/06/01 20:29:06 +0000"},{"id":626,"title":"Free Printable Potluck Meal Cards","url":"Potluck/Free-Potluck-Printables-and-Meal-Cards","created_at":"2016/05/20 13:50:37 +0000"},{"id":962,"title":"Holiday Potluck: Free Printable Meal Cards","url":"Potluck/Holiday-Potluck-Printables-and-Meal-Cards","created_at":"2016/11/09 22:18:15 +0000"},{"id":737,"title":"Free Sign Up Sheets: Better Than Paper, Excel, or Word","url":"Sign-Up-Sheet","created_at":"2016/06/02 17:44:29 +0000"},{"id":905,"title":"Halloween Classroom Party Checklist for Room Parents","url":"Class-Party/Class-Party-Checklist-Halloween","created_at":"2016/09/01 20:49:45 +0000"},{"id":750,"title":"Take SignUp on the go with SignUp Mobile","url":"Mobile","created_at":"2016/06/03 20:37:46 +0000"},{"id":1212,"title":"Brand Partner Hub","url":"partner-hub","created_at":"2020/01/30 18:22:33 +0000"},{"id":600,"title":"Potluck Planning Center","url":"Potluck-Planning-Center","created_at":"2016/05/17 21:29:29 +0000"},{"id":533,"title":"Back to School Planning Center: Tips \u0026 Ideas for a Successful Back-to-Sch
1318ool Season","url":"back-to-school","created_at":"2015/07/29 00:00:00 +0000"},{"id":595,"title":"Why Use SignUp.com for planning and organizing your next event","url":"Why-Use-Us","created_at":"2016/05/17 20:34:26 +0000"},{"id":695,"title":"The SignUp Team","url":"About/Team","created_at":"2016/06/01 22:24:38 +0000"},{"id":676,"title":"Frequently Asked Questions","url":"faq","created_at":"2016/06/01 20:53:11 +0000"},{"id":902,"title":"Class Party Planning Center: Ideas, Tips and Reminders","url":"Classparty","created_at":"2016/09/01 14:43:54 +0000"},{"id":1040,"title":"Community Action and Activism Planning Center","url":"community-action-and-activism","created_at":"2017/02/16 12:46:34 +0000"},{"id":679,"title":"SignUp In the News","url":"News","created_at":"2016/06/01 21:03:56 +0000"},{"id":991,"title":"5 Easy Ways to Spread the Word About Your Fundraiser","url":"fundraising-ideas/5-easy-ways-to-spread-the-word-about-your-fundraiser","created_at":"2016/12/12 18:13:53 +0000"},{"id":1016,"title":"4 Essentials for Successful Product Fundraisers","url":"fundraising-ideas/four-essentials-for-successful-product-fundraisers","created_at":"2017/01/17 16:59:54 +0000"},{"id":1017,"title":"Ongoing Ways to Celebrate Mother Earth at School","url":"fundraising-ideas/ongoing-ways-to-celebrate-the-earth-at-school","created_at":"2017/01/17 17:15:18 +0000"},{"id":1056,"title":"6 Things that MUST be in your Annual Fundraising Plan","url":"nonprofit-fundraising-ideas/six-things-that-must-be-in-your-annual-fundraising-plan","created_at":"2017/03/09 21:12:38 +0000"},{"id":1057,"title":"The 3 Most Overlooked Ways to Find New Donors","url":"nonprofit-fundraising-ideas/the-three-most-overlooked-ways-to-find-new-donors","created_at":"2017/03/09 21:27:32 +0000"},{"id":1054,"title":"5 Fresh Donor Acknowledgement Ideas to Thank Donors at Every Level","url":"nonprofit-fundraising-ideas/five-fresh-donor-acknowledgement-ideas-to-thank-donors-at-every-level","created_at":"2017/03/09 20:44:50 +0000"},{"id":1014,"title":"Targeting Your Fundraiser: Hints for Picking the Product People Want to Buy","url":"fundraising-ideas/targeting-your-fundraiser-hints-for-picking-the-product-people-want-to-buy","created_at":"2017/01/17 16:36:30 +0000"},{"id":1013,"title":"Go Green with Earth-friendly Fundraisers","url":"fundraising-ideas/go-green-with-earth-friendly-fundraisers","created_at":"2017/01/17 16:23:16 +0000"}
1318,{"id":1015,"title":"Reap the Benefits of School and Community Gardens!","url":"fundraising-ideas/reap-the-benefits-of-school-and-community-gardens","created_at":"2017/01/17 16:53:20 +0000"},{"id":1018,"title":"Sensational Spring Carnival Booth Ideas","url":"fundraising-ideas/seven-sensational-spring-carnival-booth-ideas","created_at":"2017/01/17 22:03:44 +0000"},{"id":633,"title":"Plan the Perfect Potluck with Free Sign Up Sheets","url":"Potluck-Sign-Up-Sheet","created_at":"2016/05/23 14:37:53 +0000"},{"id":684,"title":"Partners of SignUp.com","url":"Partners","created_at":"2016/06/01 21:28:07 +0000"},{"id":937,"title":"Get Out The Vote Planning Center: Election Season Resources","url":"get-out-the-vote","created_at":"2016/10/05 16:44:56 +0000"},{"id":927,"title":"Fall Activities \u0026 Events Planning Center","url":"fall-activities-and-events","created_at":"2016/09/16 15:50:15 +0000"},{"id":697,"title":"Tell a Friend","url":"tell-a-friend","created_at":"2016/06/01 22:27:27 +0000"},{"id":870,"title":"Fundraising Planning Center: Time-Saving Tips and Creative Ideas","url":"Fundraising-Ideas","created_at":"2016/08/02 20:18:30 +0000"},{"id":2144,"title":"Free Sign-Up Tools \u0026 Resources","url":"free-online-signup-tools-resources","created_at":"2026/07/01 21:41:59 +0000"},{"id":783,"title":"Classroom \u0026 School Volunteer Sign Up Sheets for Events \u0026 Parties","url":"School-Activities-SignUp-Sheets","created_at":"2016/06/15 17:05:42 +0000"},{"id":942,"title":"Holiday Season Activities \u0026 Events","url":"Holiday","created_at":"2016/10/13 22:29:30 +0000"},{"id":667,"title":"About Contributions: Volunteer","url":"AboutContributionsVolunteer","created_at":"2016/06/01 20:18:25 +0000"},{"id":1289,"title":"End-of-School Planning Center","url":"School-Activities/End-of-School-Year-Planning","created_at":"2021/05/03 19:15:08 +0000"},{"id":755,"title":"Our New Name","url":"Our-New-Name","created_at":"2016/06/08 15:59:44 +0000"},{"id":799,"title":"SignUp Sheets and Volunteer Calendars","url":"SignUp-Sheets-Volunteer-Calendars","created_at":"2016/06/25 18:04:19 +0000"},{"id":730,"title":"Parent-Teacher Conference Planning Center: What to Expect, Ask \u0026 Prepare","url":"Parent-Teacher-Conference","created_at":"2016/06/02 15:48:57 +0000"},{"id":753,"title":"Our New Name - Frequently Asked Questions","url":"Our-New-Name-FAQ","created_at":"2016/06/07 02:25:32 +0000"},{"id":590,"title":"Privacy Policy","url":"Privacy","created_at":"2016/05/17 20:10:04 +0000"},{"id":879,"title":"Room Parent Ideas and Classroom Coordination","url":"room-parent","created_at":"2016/08/15 19:58:15 +0000"},{"id":1033,"title":"Valentine's Day Planning Center","url":"Valentines-Day","created_at":"2017/02/13 15:07:25 +0000"},{"id":729,"title":"School Activities Planning Center: Ideas, Tips and Reminders for Well-Organized School Events","url":"School-Activities","created_at":"2016/06/02 15:20:38 +0000"},{"id":1008,"title":"Fundraising Ideas Flower Power","url":"Fundraising-Ideas-Flower","created_at":"2017/01/11 00:08:17 +0000"},{"id":1035,"title":"Spring Activities \u0026 Events Planning Center","url":"spring-activities-and-events","created_at":"2017/02/13 15:24:49 +0000"},{"id":1041,"title":"Summertime Planning Center","url":"summer-activities-and-events","created_at":"2017/02/16 13:11:39 +0000"},{"id":735,"title":"Teacher Appreciation Planning Center: Tips, Tricks \u0026 Ideas for Celebrating Teacher Appreciation Week","url":"Teacher-Appreciation","created_at":"2016/06/02 17:34:23 +0000"},{"id":900,"title":"Family Code Night","url":"FamilyCodeNight","created_at":"2016/08/31 14:43:47 +0000"}
1318,{"id":1058,"title":"Nonprofit Resource Center","url":"Nonprofit-Fundraising-Ideas","created_at":"2017/03/17 19:26:00 +0000"},{"id":728,"title":"Team Scheduling and SignUp Sheets","url":"team-scheduling","created_at":"2016/06/02 14:16:04 +0000"},{"id":864,"title":"Volunteer Appreciation Planning Center","url":"volunteer-appreciation","created_at":"2016/07/29 18:16:11 +0000"},{"id":1359,"title":"Youth Sports Planning Center","url":"youth-sports-planning-center","created_at":"2022/10/28 18:21:17 +0000"},{"id":1402,"title":"Special Events Planning Center","url":"special-events-planning-center","created_at":"2023/05/15 16:33:26 +0000"},{"id":1394,"title":"Church Events Planning Center: Free Church Volunteer Sign Up Sheets for Events, Potlucks \u0026 Ministry Scheduling","url":"church-events-planning-center","created_at":"2023/04/26 20:13:16 +0000"},{"id":1382,"title":"Business Events Planning Center","url":"business-events-planning-center","created_at":"2023/03/28 20:14:12 +0000"},{"id":802,"title":"SignUp.com Volunteer Spotlights","url":"SignUp-Spotlights","created_at":"2016/06/27 20:13:17 +0000"},{"id":801,"title":"News \u0026 More","url":"blog-and-news","created_at":"2016/06/27 13:00:30 +0000"},{"id":901,"title":"CSForAll","url":"CSForAll-Ideas","created_at":"2016/08/31 19:13:04 +0000"},{"id":795,"title":"Idea Center: Resources, Planning Tips \u0026 Ideas to save you time organizing volunteers and events","url":"Idea-Center","created_at":"2016/06/23 13:58:49 +0000"}]; 1319 $scope.currentUrl = '/back-to-school/volunteer-recruitment-strategies-for-parent-leaders'; 1320 1321 $scope.toggleMenu = function(e) { 1322 $scope.showMenu = !$scope.showMenu; 1323 if( $scope.showMenu ) { 1324 // hide search 1325 $scope.showSearch = false; 1326 } 1327 e.stopPropagation(); 1328 }; 1329 1330 $scope.toggleSearch = function(e) { 1331 if( $scope.searchableArticles.length > 0 ) { 1332 $scope.showSearch = !$scope.showSearch; 1333 1334 if( $scope.showSearch ) { 1335 // hide the menu 1336 $scope.showMenu = false;
1337 } 1338 } 1339 e.stopPropagation(); 1340 }; 1341 1342 $scope.toggleMobileDropDown = function(e, navItem) { 1343 navItem.showMenu = !navItem.showMenu; 1344 e.stopPropagation(); 1345 }; 1346 1347 $scope.clickedSearchBar = function(e) { 1348 if( $scope.showMenu ) { 1349 // Menu is covering the search bar, so hide it. 1350 $scope.showMenu = false; 1351 } 1352 e.stopPropagation(); 1353 }; 1354 1355 $(document).on('click', function(e) { 1356 $timeout(function() { 1357 $scope.showMenu = false; 1358 $scope.showSearch = false; 1359 }); 1360 }); 1361 1362 $('#responsive_nav').on('touchstart', function(e) { 1363 e.stopPropagation(); 1364 }); 1365 1366 $(document).on('touchstart', function(e) { 1367 $timeout(function() { 1368 $scope.showMenu = false; 1369 $scope.showSearch = false; 1370 }); 1371 }); 1372 1373 $scope.selectedArticle = function(item, model, label, event) { 1374 window.location = '/' + item.url; 1375 }; 1376 1377 /* 1378 * Expecting a string like this: 1379 * window_name="my_name" window_specs="width=300,height=100,location=yes" 1380 */ 1381 $scope.addPopUpAttrs = function(id, attrStr) { 1382 var el = $("#" + id); 1383 if( el.length ) { 1384 var attrArrs = global_helper.get_key_value_pairs(attrStr, ' ', /=\"|=\'/, false); 1385 ng.forEach(attrArrs, function(value, key) { 1386 if( value.substr(-1) === '"' || value.substr(-1) === "'" ) { 1387 // remove it 1388 value = value.substring(0, value.length - 1); 1389 } 1390 el.attr(key, value); 1391 }); 1392 } 1393 }; 1394 1395 $timeout(function() { 1396 // Add pop-up params to pop-up items 1397 var n, nLen, f, fLen; 1398 for( n=0, nLen=$scope.navFull.length; n<nLen; n++ ) { 1399 if( !global_helper.blank($scope.navFull[n].pop_up) ) { 1400 // We need to add attrs to this one 1401 $scope.addPopUpAttrs('resource_' + $scope.navFull[n].id, $scope.navFull[n].pop_up); 1402 } 1403 // See if there are any children we need to look at... we only go one deep 1404 if( $scope.navFull[n].children && $scope.navFull[n].children.length > 0 ) { 1405 for( f=0, fLen=$scope.navFull[n].children.length; f<fLen; f++ ) { 1406 if( !global_helper.blank($scope.navFull[n].children[f].pop_up) ) { 1407 // We need to add attrs to this one 1408 $scope.addPopUpAttrs('resource_' + $scope.navFull[n].children[f].id, $scope.navFull[n].children[f].pop_up); 1409 } 1410 } 1411 } 1412 } 1413 1414 1415 // Show the nav 1416 $scope.showNav = true; 1417 }); 1418 }]); 1419 1420 ng.bootstrap(document.getElementById('responsive_nav'), ['responsiveMenu', 'userMenu']); 1421 1422 // Register AngularJS mini-app 1423 ng.bootstrap(document.getElementById('signin'), ['signin']); 1424 })(window.jQuery, window.angular); 1425</script>
1425 1426 1427 1428 1429 1430 <div class="row"> 1431 <div class="content-container"> 1432 <main class="main-rail"> 1433 <link rel="stylesheet" media="all" href="https://assets.signup.com/assets/css/pricing-9c222ac85e48b99677a7598b12756255b711766afb281091baf4cfb27f6830f6.css" /> 1434 1435<!--Start of Desktop Code--> 1436<div id="main" ng-controller="MainController as ctrl"> 1437 <div role="main" class="main hidden-xs hidden-sm"> 1438 <div> 1439 <div class="hero"><img border="0" src="/imgs/pricing/signup-main-bg.png" class="stretch"></div> 1440 1441 <div id="plans-table" class="plans-table plans hide-phone"> 1442 <div class="b-container"> 1443 <table cellspacing="0" cellpadding="0"> 1444 <caption>Plans pricing table</caption> 1445 <thead> 1446 <tr> 1447 1448 <th class="signup-plan-nav plan__cta__cell2 blue-bdr-right"> 1449 1450 <div class="signup-plan plan__header plans__thead-first"> 1451 <h3 class="plan__name">Basic</h3> 1452 <p class="plan__price-gray"> 1453 <span class="line-through--single"> 1454 <span class="price--single green-price">Free</span> 1455 </span> 1456 </p> 1457 1458 <p class="plan__price-gray"> 1459 <span class="line-through--single"> 1460 <span class="price--single">Great for simple activities<br/> 1461 & small groups </span> 1462 </span> 1463 </p> 1464 </div> 1465 </th> 1466 1467 <th class="signup-plan-nav plan__cta__cell blue-bdr-right"> 1468 <div class="signup-plan plan__header plans__plan__col"> 1469 <h3 class="plan__name">Starter*</h3> 1470 1471 <p class="plan__price-gray"> 1472 <span class="line-through--single"> 1473 <span class="price--single"><span class="green-price">$8<sup>.34</sup></span> / per month</span> 1474 </span><br> 1475 <span><i>Billed 99<sup>.99</sup> annually</i></span> 1476 </p> 1477 1478 <p class="plan__price-gray"> 1479 <span class="line-through--single"> 1480 <span class="price--single">Boost your planning power<br/> 1481 with additional features</span> 1482 </span> 1483 </p> 1484 1485 </div> 1486 </th> 1487 1488 <th class="signup-plan-nav plan__cta__cell blue-bdr-right"> 1489 <div class="signup-plan plan__header plans__plan__col"> 1490 <strong class="plans__popular-banner plans__plan__col hide-phone">Most Popular</strong> 1491 <h3 class="plan__name highlight">Plus*</h3> 1492 1493 <p class="plan__price-gray highlight"> 1494 <span class="line-through--single"> 1495 <span class="price--single"><span class="green-price highlight">$20<sup>.83</sup></span> / per month</span> 1496 </span><br> 1497 <span><i>Billed 249<sup>.99</sup> annually</i></span> 1498 </p> 1499 1500 <p class="plan__price-gray highlight"> 1501 <span class="line-through--single"> 1502 <span class="price--single">Our most popular plan</span> 1503 </span> 1504 </p> 1505 </div> 1506 </th> 1507 <th class="signup-plan-nav plan__cta__cell blue-bdr-right"><div class="signup-plan plan__header"> 1508 <h3 class="plan__name">Max*</h3> 1509 1510 <p class="plan__price-gray">
1511 <span class="line-through--single"> 1512 <span class="price--single"><span class="green-price">$41<sup>.66</sup></span> / per month</span> 1513 </span><br> 1514 <span><i>Billed 499<sup>.99</sup> annually</i></span> 1515 </p> 1516 1517 <p class="plan__price-gray"> 1518 <span class="line-through--single"> 1519 <span class="price--single">Perfect for managing big<br/> 1520 events & large groups</span> 1521 </span> 1522 </p> 1523 </div></th> 1524 <th class="signup-plan-nav plan__cta__cell2"> 1525 <div class="signup-plan plan__header plans__thead-last plans__plan__col highlight"> 1526 <h3 class="plan__name">Campus*</h3> 1527 <p class="plan__price-gray"> 1528 <span class="line-through--single"> 1529 Starting at <span class="price--single"><span class="green-price">$99</span> / year</span> 1530 </span> 1531 </p> 1532 1533 <p class="plan__price-gray"> 1534 <span class="line-through--single"> 1535 <span class="price--single">The easiest solution for<br/> 1536 K-12 Schools</span> 1537 </span> 1538 </p> 1539 </div> 1540 1541 </th> 1542 </tr> 1543 1544 <tr> 1545 1546 <th class="signup-plan-nav plan__cta3__cell" bgcolor="#fff"> 1547 <div class="plans__plan__col plan__cta__container"> 1548 <premium-button 1549 ng-if="ctrl.pageData.enableButtons" 1550 user="ctrl.user" 1551 users-plan="ctrl.pageData.usersPlan" 1552 group-name="free" 1553 tier="0" 1554 action="ctrl.showModal" 1555 ></premium-button> 1556 1557 </div> 1558 </th> 1559 <th class="signup-plan-nav plan__cta__cell" bgcolor="#fff"> 1560 <div class="plans__plan__col plan__cta__container"> 1561 <premium-button 1562 ng-if="ctrl.pageData.enableButtons" 1563 user="ctrl.user" 1564 users-plan="ctrl.pageData.usersPlan" 1565 group-name="level_1" 1566 tier="1" 1567 action="ctrl.showModal" 1568 ></premium-button> 1569 </div> 1570 </th> 1571 <th bgcolor="#fff" class="signup-plan-nav plan__cta__cell highlight"> 1572 <div class="plans__plan__col plan__cta__container"> 1573 <premium-button 1574 ng-if="ctrl.pageData.enableButtons" 1575 user="ctrl.user" 1576 users-plan="ctrl.pageData.usersPlan" 1577 group-name="level_2" 1578 tier="2" 1579 action="ctrl.showModal" 1580 ></premium-button> 1581 </div> 1582 </th> 1583 <th bgcolor="#fff" class="signup-plan-nav plan__cta__cell"> 1584 <div class="plans__plan__col plan__cta__container"> 1585 <premium-button 1586 ng-if="ctrl.pageData.enableButtons" 1587 user="ctrl.user" 1588 users-plan="ctrl.pageData.usersPlan" 1589 group-name="level_3" 1590 tier="3" 1591 action="ctrl.showModal" 1592 ></premium-button> 1593 </div></th> 1594 <th bgcolor="#fff" class="signup-plan-nav plan__cta__cell lightblue"> 1595 <div class="plans__plan__col plan__cta__container"> 1596 <premium-button 1597 ng-if="ctrl.pageData.enableButtons" 1598 user="ctrl.user" 1599 users-plan="ctrl.pageData.usersPlan" 1600 group-name="school" 1601 tier="3" 1602 action="ctrl.showModal" 1603 ></premium-button> 1604 <button ng-show="ctrl.pageData.showCampusMoreInfo" class="plan__cta ng-hide" ng-click="ctrl.showMoreInfoForm('campus')">Contact Us »</button> 1605 </div> 1606 </th> 1607 </tr> 1608 </thead> 1609 1610 <tbody> 1611 <tr class="striping-bg-color"> 1612 <td class="signup-plan-nav plan__cta3__cell"> 1613 <p class="plan__feature__heading"> 1614 <img src="/imgs/pricing/line-separator.png" border="0" /> 1615 </p> 1616 </td> 1617 <td class="plans__feature__cell plans__plan__col"> 1618 <p class="plan__feature__heading">Unlimited Text (SMS) Reminders^ 1619 <img src="/imgs/pricing/line-separator.png" border="0" /> 1620 </p> 1621 </td> 1622 <td class="plans__feature__cell plans__plan__col highlight"> 1623 <p class="plan__feature__heading">Unlimited Text (SMS) Reminders^ 1624 <img src="/imgs/pricing/line-separator.png" border="0" /> 1625 </p> 1626 </td> 1627 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Unlimited Text (SMS) Reminders^ 1628 <img src="/imgs/pricing/line-separator.png" border="0" /> 1629 </p></td> 1630 <td class="plans__feature__cell plans__plan__col lightblue"> 1631 <p class="plan__feature__heading">Unlimited Text (SMS) Reminders^ 1632 <img src="/imgs/pricing/line-separator.png" border="0" /> 1633 </p> 1634 1635 </td> 1636 </tr> 1637 1638 <tr class="striping-bg-color"> 1639 <td class="signup-plan-nav plan__cta3__cell"> 1640 <p class="plan__feature__heading">1 Group Page 1641 <img src="/imgs/pricing/line-separator.png" border="0" /> 1642 </p> 1643 </td> 1644 <td class="plans__feature__cell plans__plan__col"> 1645 <p class="plan__feature__heading">Unlimited Group Pages 1646 <img src="/imgs/pricing/line-separator.png" border="0" /> 1647 </p> 1648 </td> 1649 <td class="plans__feature__cell plans__plan__col highlight"> 1650 <p class="plan__feature__heading">Unlimited Group Pages 1651 <img src="/imgs/pricing/line-separator.png" border="0" /> 1652 </p> 1653 </td> 1654 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Unlimited Group Pages 1655 <img src="/imgs/pricing/line-separator.png" border="0" /> 1656 </p></td> 1657 <td class="plans__feature__cell plans__plan__col lightblue"> 1658 <p class="plan__feature__heading">Unlimited Group Pages 1659 <img src="/imgs/pricing/line-separator.png" border="0" /> 1660 </p> 1661 1662 </td> 1663 </tr> 1664 1665 <tr> 1666 <td class="signup-plan-nav plan__cta3__cell" valign="top"> 1667 <p class="plan__feature__heading">1 Custom Participant Question 1668 <img src="/imgs/pricing/line-separator.png" border="0" /> 1669 </p> 1670 </td> 1671 <td class="plans__feature__cell plans__plan__col" valign="top"> 1672 <p class="plan__feature__heading">2 Custom Participant Questions 1673 <img src="/imgs/pricing/line-separator.png" border="0" /> 1674 </p> 1675 </td> 1676 <td class="plans__feature__cell plans__plan__col highlight"> 1677 <p class="plan__feature__heading">3 Custom Participant Questions 1678 <img src="/imgs/pricing/line-separator.png" border="0" /> 1679 </p> 1680 </td> 1681 <td class="plans__feature__cell plans__plan__col"> 1682 <p class="plan__feature__heading">15 Custom Participant Questions 1683 <img src="/imgs/pricing/line-separator.png" border="0" /> 1684 </p> 1685 </td> 1686 <td class="plans__feature__cell plans__plan__col lightblue"> 1687 <p class="plan__feature__heading">15 Custom Participant Questions 1688 <img src="/imgs/pricing/line-separator.png" border="0" /> 1689 </p> 1690 </td> 1691 </tr> 1692 1693 <tr class="striping-bg-color"> 1694 1695 <td class="signup-plan-nav plan__cta3__cell"> 1696 <p class="plan__feature__heading">1 Primary Organizer 1697 <img src="/imgs/pricing/line-separator.png" border="0" /> 1698 </p> 1699 </td> 1700 <td class="plans__feature__cell plans__plan__col"> 1701 <p class="plan__feature__heading">1 Primary Organizer 1702 <img src="/imgs/pricing/line-separator.png" border="0" /> 1703 </p> 1704 </td> 1705 <td class="plans__feature__cell plans__plan__col highlight"> 1706 <p class="plan__feature__heading">1 Primary Organizer 1707 <img src="/imgs/pricing/line-separator.png" border="0" /> 1708 </p> 1709 </td> 1710 <td class="plans__feature__cell plans__plan__col"> 1711 <p class="plan__feature__heading">1 Primary Organizer 1712 <img src="/imgs/pricing/line-separator.png" border="0" /> 1713 </p> 1714 </td> 1715 <td class="plans__feature__cell plans__plan__col lightblue"> 1716 <p class="plan__feature__heading">150 Organizer Upgrades 1717 <img src="/imgs/pricing/line-separator.png" border="0" /> 1718 </p> 1719 </td> 1720 </tr> 1721 1722 <tr> 1723 <td class="signup-plan-nav plan__cta3__cell"> 1724 <p class="plan__feature__heading">Customer Support: Email<br/><br/> 1725 <img src="/imgs/pricing/line-separator.png" border="0" /> 1726 </p> 1727 </td> 1728 <td class="plans__feature__cell plans__plan__col"> 1729 <p class="plan__feature__heading">Customer Support: Priority Email<br/><br/> 1730 <img src="/imgs/pricing/line-separator.png" border="0" /> 1731 </p> 1732 </td> 1733 <td class="plans__feature__cell plans__plan__col highlight"> 1734 <p class="plan__feature__heading">Customer Support: Priority Email / Coaching Calls 1735 <img src="/imgs/pricing/line-separator.png" border="0" /> 1736 </p> 1737 </td> 1738 <td class="plans__feature__cell plans__plan__col"> 1739 <p class="plan__feature__heading">Customer Support: Priority Email / Coaching Calls 1740 <img src="/imgs/pricing/line-separator.png" border="0" /> 1741 </p> 1742 </td> 1743 <td class="plans__feature__cell plans__plan__col lightblue"> 1744 <p class="plan__feature__heading">Customer Support: Priority Email / Coaching Calls 1745 <img src="/imgs/pricing/line-separator.png" border="0" /> 1746 </p> 1747 </td> 1748 </tr> 1749 1750 <tr class="striping-bg-color"> 1751 <td class="signup-plan-nav plan__cta3__cell" valign="top"> 1752 1753 <p class="plan__feature__heading"><a href ng-click="ctrl.scrollToMoreFeatures()">See MORE Features <img src="imgs/pricing/arrow-down-icon.png" border="0" /></a> 1754 1755 </p> 1756 </td> 1757 <td class="plans__feature__cell plans__plan__col" valign="top"> 1758 <p class="plan__feature__heading">1 Assistant Organizer 1759 <img src="/imgs/pricing/line-separator.png" border="0" /> 1760 </p> 1761 </td> 1762 <td class="plans__feature__cell plans__plan__col highlight"> 1763 <p class="plan__feature__heading">5 Assistant Organizers 1764 <img src="/imgs/pricing/line-separator.png" border="0" /> 1765 </p> 1766 </td> 1767 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">15 Assistant Organizers 1768 <img src="/imgs/pricing/line-separator.png" border="0" /> 1769 </p></td> 1770 <td class="plans__feature__cell plans__plan__col lightblue"> 1771 <p class="plan__feature__heading">15 Assistant Organizers 1772 <img src="/imgs/pricing/line-separator.png" border="0" /> 1773 </p> 1774 </td> 1775 </tr> 1776 <tr class="striping-bg-color"> 1777 <td class="signup-plan-nav plan__cta3__cell"> 1778 1779 </td> 1780 <td class="plans__feature__cell plans_
1780_plan__col" valign="top"> 1781 <p class="plan__feature__heading">Limit Participant Spots 1782 <img src="/imgs/pricing/line-separator.png" border="0" /> 1783 </p> 1784 </td> 1785 <td class="plans__feature__cell plans__plan__col highlight"> 1786 <p class="plan__feature__heading">Limit Participant Spots 1787 <img src="/imgs/pricing/line-separator.png" border="0" /> 1788 </p> 1789 </td> 1790 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Limit Participant Spots 1791 <img src="/imgs/pricing/line-separator.png" border="0" /> 1792 </p></td> 1793 <td class="plans__feature__cell plans__plan__col lightblue"> 1794 <p class="plan__feature__heading">Limit Participant Spots 1795 <img src="/imgs/pricing/line-separator.png" border="0" /> 1796 </p> 1797 </td> 1798 </tr> 1799 <tr class="striping-bg-color"> 1800 <td class="signup-plan-nav plan__cta3__cell"> 1801 1802 </td> 1803 <td class="plans__feature__cell plans__plan__col" valign="top"> 1804 <p class="plan__feature__heading">Waitlist Notification for Available Spots 1805 <img src="/imgs/pricing/line-separator.png" border="0" /> 1806 </p> 1807 </td> 1808 <td class="plans__feature__cell plans__plan__col highlight"> 1809 <p class="plan__feature__heading">Waitlist Notification for Available Spots 1810 <img src="/imgs/pricing/line-separator.png" border="0" /> 1811 </p> 1812 </td> 1813 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Waitlist Notification for Available Spots 1814 <img src="/imgs/pricing/line-separator.png" border="0" /> 1815 </p></td> 1816 <td class="plans__feature__cell plans__plan__col lightblue"> 1817 <p class="plan__feature__heading">Waitlist Notification for Available Spots 1818 <img src="/imgs/pricing/line-separator.png" border="0" /> 1819 </p> 1820 </td> 1821 </tr> 1822 1823 <tr> 1824 <td class="signup-plan-nav plan__cta3__cell"> 1825 1826 </td> 1827 <td class="plans__feature__cell plans__plan__col" valign="top"> 1828 <p class="plan__feature__heading"><a href ng-click="ctrl.scrollToMoreFeatures()">See MORE Features <img src="imgs/pricing/arrow-down-icon.png" border="0" /></a> 1829 1830 </p> 1831 </td> 1832 <td class="plans__feature__cell plans__plan__col highlight" valign="top"> 1833 <p class="plan__feature__heading">Add a Waiver 1834 <img src="/imgs/pricing/line-separator.png" border="0" /> 1835 </p> 1836 </td> 1837 <td class="plans__feature__cell plans__plan__col" valign="top"><p class="plan__feature__heading">Add a Waiver 1838 <img src="/imgs/pricing/line-separator.png" border="0" /> 1839 </p></td> 1840 <td class="plans__feature__cell plans__plan__col lightblue" valign="top"> 1841 <p class="plan__feature__heading">Add a Waiver 1842 <img src="/imgs/pricing/line-separator.png" border="0" /> 1843 </p> 1844 </td> 1845 </tr> 1846 1847 <tr class="striping-bg-color"> 1848 <td class="signup-plan-nav plan__cta3__cell"> 1849 1850 </td> 1851 <td class="plans__feature__cell plans__plan__col"> 1852 1853 </td> 1854 <td class="plans__feature__cell plans__plan__col highlight"> 1855 <p class="plan__feature__heading">Participant Check-in 1856 <img src="/imgs/pricing/line-separator.png" border="0" /> 1857 </p> 1858 </td> 1859 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Participant Check-in 1860 <img src="/imgs/pricing/line-separator.png" border="0" /> 1861 </p></td> 1862 <td class="plans__feature__cell plans__plan__col lightblue"> 1863 <p class="plan__feature__heading">Participant Check-in 1864 <img src="/imgs/pricing/line-separator.png" border="0" /> 1865 </p> 1866 </td> 1867 </tr> 1868 1869 <tr> 1870 <td class="signup-plan-nav plan__cta3__cell"> 1871 1872 </td> 1873 <td class="plans__feature__cell plans__plan__col"> 1874 1875 </td> 1876 <td class="plans__feature__cell plans__plan__col highlight"> 1877 <p class="plan__feature__heading">Sign Up Lock/Unlock 1878 <img src="/imgs/pricing/line-separator.png" border="0" /> 1879 </p> 1880 </td> 1881 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Sign Up Lock/Unlock 1882 <img src="/imgs/pricing/line-separator.png" border="0" /> 1883 </p></td> 1884 <td class="plans__feature__cell plans__plan__col lightblue"> 1885 1886 <p class="plan__feature__heading">Sign Up Lock/Unlock 1887 <img src="/imgs/pricing/line-separator.png" border="0" /> 1888 </p> 1889 </td> 1890 </tr> 1891 1892 <tr class="striping-bg-color"> 1893 <td class="signup-plan-nav plan__cta3__cell"> 1894 1895 </td> 1896 <td class="plans__feature__cell plans__plan__col"> 1897 1898 </td> 1899 <td class="plans__feature__cell plans__plan__col highlight" valign="top"> 1900 <p class="plan__feature__heading"><a href ng-click="ctrl.scrollToMoreFeatures()">See MORE Features <img src="imgs/pricing/arrow-down-icon.png" border="0" /></a> 1901 1902 </p> 1903 </td> 1904 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Advanced Participant Hours Tracking & Reporting 1905 <img src="/imgs/pricing/line-separator.png" border="0" /> 1906 </p></td> 1907 <td class="plans__feature__cell plans__plan__col lightblue"> 1908 <p class="plan__feature__heading">Advanced Participant Hours Tracking & Reporting 1909 <img src="/imgs/pricing/line-separator.png" border="0" /> 1910 </p> 1911 1912 </td> 1913 </tr> 1914 1915 <tr> 1916 <td class="signup-plan-nav plan__cta3__cell"> 1917 1918 </td> 1919 <td class="plans__feature__cell plans__plan__col"> 1920 1921 </td> 1922 <td class="plans__feature__cell plans__plan__col highlight" valign="top"> 1923 1924 </td> 1925 <td class="plans__feature__cell plans__plan__col"> </td> 1926 <td class="plans__feature__cell plans__plan__col lightblue"> 1927 1928 1929 </td> 1930 </tr> 1931 1932 <tr class="striping-bg-color"> 1933 <td class="signup-plan-nav plan__cta3__cell"> 1934 1935 </td> 1936 <td class="plans__feature__cell plans__plan__col"> 1937 1938 </td> 1939 <td class="plans__feature__cell plans__plan__col highlight"> 1940 1941 </td> 1942 <td class="plans__feature__cell plans__plan__col"><p class="plan__feature__heading">Custom URL 1943 <img src="/imgs/pricing/line-separator.png" border="0" /> 1944 </p></td> 1945 <td class="plans__feature__cell plans__plan__col lightblue"> 1946 <p class="plan__feature__heading">Custom URL 1947 <img src="/imgs/pricing/line-separator.png" border="0" /> 1948 </p> 1949 1950 </td> 1951 </tr> 1952 1953 <tr> 1954 <td class="signup-plan-nav plan__cta3__cell"> 1955 1956 </td> 1957 <td class="plans__feature__cell plans__plan__col"> 1958 1959 </td> 1960 <td class="plans__feature__cell plans__plan__col highlight"> 1961 1962 </td> 1963 <td class="plans__feature__cell plans__plan__col"> 1964 <p class="plan__feature__heading"><a href ng-click="ctrl.scrollToMoreFeatures()">See MORE Features <img src="imgs/pricing/arrow-down-icon.png" border="0" /></a> 1965 1966 </p> 1967 </td> 1968 <td class="plans__feature__cell plans__plan__col lightblue"> 1969 <p class="plan__feature__heading"><a href ng-click="ctrl.scrollToMoreFeatures()">See MORE Features <img src="imgs/pricing/arrow-down-icon.png" border="0" /></a> 1970 1971 </p> 1972 </td> 1973 </tr> 1974 <tr class="striping-bg-color"> 1975 <td class="plans__feature4__cell plans__plan__col"></td> 1976 <td class="plans__feature4__cell plans__plan__col"></td> 1977 <td class="plans__feature__cell plans__plan__col highlight btm-border"></td> 1978 <td class="plans__feature4__cell plans__plan__col"></td> 1979 <td class="plans__feature4__cell plans__plan__col lightblue"></td> 1980 </tr> 1981 </tbody> 1982 </table> 1983 1984 1985 <!--Begin Extra and Custom Pricing--> 1986 <div class="col-md-10 col-md-offset-1"> 1987 <div class="row text-center"> 1988 <p class="ad__free__heading">*AD-FREE UPGRADE AVAILABLE. <br/>
1989 <span style="font-size: 150%"><sup>^</sup></span>US, Canada, and Australia only, standard carrier charges apply.<br /> 1990 Click Select Plan above to get started.</p> 1991 </div> 1992 1993 <div class="row text-center common-features" id="more-features"> 1994 <h2 class="common-features__heading"> 1995 <div>All Plans Include: </div> 1996 </h2> 1997 <ul class="common-features__list"> 1998 <li class="common-features__feature"> 1999 <div class="plan__feature__heading">Unlimited Emails</div> 2000 </li> 2001 <li class="common-features__feature"> 2002 <div class="plan__feature__heading">Unlimited Participants & SignUps</div> 2003 </li> 2004 <li class="common-features__feature"> 2005 <div class="plan__feature__heading">No Passwords for Participants</div> 2006 </li> 2007 <li class="common-features__feature"> 2008 <div class="plan__feature__heading">1,500+ Theme Combinations</div> 2009 </li> 2010 <li class="common-features__feature"> 2011 <div class="plan__feature__heading">Mobile-Friendly SignUps</div> 2012 </li> 2013 <li class="common-features__feature"> 2014 <div class="plan__feature__heading">Collect Payments & Contributions</div> 2015 </li> 2016 <li class="common-features__feature"> 2017 <div class="plan__feature__heading">Lock a Day</div> 2018 </li> 2019 <li class="common-features__feature"> 2020 <div class="plan__feature__heading">Quick Multiday Copy</div> 2021 </li> 2022 <li class="common-features__feature"> 2023 <div class="plan__feature__heading">Swift Shift Scheduling</div> 2024 </li> 2025 <li class="common-features__feature"> 2026 <div class="plan__feature__heading">Simple Shift Swap (for Participants)</div> 2027 </li> 2028 <li class="common-features__feature"> 2029 <div class="plan__feature__heading">Sort, Archive & Favorite SignUps</div> 2030 </li> 2031 <li class="common-features__feature"> 2032 <div class="plan__feature__heading">Add Links: Dropbox, Zoom, Drive +</div> 2033 </li> 2034 <li class="common-features__feature"> 2035 <div class="plan__feature__heading">Social Media Sharing</div> 2036 </li> 2037 <li class="common-features__feature"> 2038 <div class="plan__feature__heading">Upload Images & Logos</div> 2039 </li> 2040 <li class="common-features__feature"> 2041 <div class="plan__feature__heading">Calendar Sync & Embed</div> 2042 </li> 2043 <li class="common-features__feature"> 2044 <div class="plan__feature__heading">Email Delivery Tracking</div> 2045 </li> 2046 <li class="common-features__feature"> 2047 <div class="plan__feature__heading">Import & Store your Contacts</div> 2048 </li> 2049 <li class="common-features__feature"> 2050 <div class="plan__feature__heading">Custom Notification Options</div> 2051 </li> 2052 <li class="common-features__feature"> 2053 <div class="plan__feature__heading">Timezones & 24hr Clock</div> 2054 </li> 2055 <li class="common-features__feature"> 2056 <div class="plan__feature__heading">Teacher Sharing</div> 2057 </li> 2058 <li class="common-features__feature"> 2059 <div class="plan__feature__heading">Advanced Messaging</div> 2060 </li> 2061 </ul> 2062 </div> 2063 2064 <div class="col-xs-6 blue-spacer"> 2065 <br> 2066 <div class="blue-hdr"> 2067 <h2 class="need__something">Need Something Extra?</h2> 2068 </div> 2069 <div class="col-xs-12 text-center need-something-box"> <img src="imgs/pricing/need-something-icon.png" border="0" /> <br> 2070 <p class="need-something">Tell us what youâre looking for and weâll get back to you soon.</p> 2071 <div class="col-md-6 col-md-offset-3"> 2072 <button class="plan__cta" ng-click="ctrl.showMoreInfoForm('more')">Tell Us More »</button> 2073 </div> 2074 </div> 2075 </div> 2076 2077 <div class="col-xs-6 blue-spacer2"> 2078 <br> 2079 <div class="blue-hdr"> 2080 <h2 class="need__something">Volume Discounts</h2> 2081 </div> 2082 <div class="col-xs-12 text-center need-something-box"> <img src="imgs/pricing/email-icon.png" border="0" /> <br> 2083 <p class="need-something">For Districts, National NPOs & Corporate use.</p> 2084 <div class="col-md-6 col-md-offset-3"> 2085 <button class="plan__cta" ng-click="ctrl.showMoreInfoForm('pricing')">Contact Us »</button> 2086 </div> 2087 </div> 2088 </div> 2089 2090 </div> 2091 2092 <!--End Extra and Custom Pricing--> 2093 </div> 2094 </div> 2095 </div> 2096 </div> 2097 <!--End of Desktop Code--> 2098 2099 <!--Start of Mobile Code--> 2100 <div role="main" class="main visible-xs visible-sm"> 2101 <div class="hero"> 2102 <h2>The Easiest Way to Bring People Together!</h2> 2103 </div> 2104 2105 <br> 2106 <!--Start of Tier 0 Plan (Free) Mobile--> 2107 <div class="col-md-10 col-md-offset-1"> 2108 <div class="col-xs-1"></div> 2109 <div class="col-xs-10"> 2110 <div class="row text-center pricing-box-light clickable" ng-click="ctrl.changeDivState('showTier0')" ng-hide="ctrl.responsiveData.showTier0"> 2111 <h3 class="plan__name">Basic</h3> 2112 <p class="plan__price-gray">
2113 <span class="line-through--single"> 2114 <span class="price--single green-price">Free</span> 2115 </span> 2116 </p> 2117 2118 <p class="plan__price-gray"> 2119 Great for simple activities<br/>& small groups 2120 </p> 2121 <div class="plan__dark_blue_arrow"></div> 2122 </div> 2123 2124 2125 2126 <div class="row text-center pricing-box-light-2 ng-hide clickable" ng-click="ctrl.changeDivState()" ng-show="ctrl.responsiveData.showTier0" id="showTier0"> 2127 <h3 class="plan__name">Basic</h3> 2128 <p class="plan__price-gray"> 2129 <span class="line-through--single"> 2130 <span class="price--single green-price">Free</span> 2131 </span> 2132 </p> 2133 2134 <p class="plan__price-gray"> 2135 Great for simple activities<br/>& small groups 2136 </p> 2137 2138 <div class="plan__dark_blue_arrow_up"></div> 2139 </div> 2140 2141 <div class="row text-center pricing-box-white ng-hide" ng-show="ctrl.responsiveData.showTier0"> 2142 <premium-button 2143 ng-if="ctrl.pageData.enableButtons" 2144 user="ctrl.user" 2145 users-plan="ctrl.pageData.usersPlan" 2146 group-name="free" 2147 tier="0" 2148 action="ctrl.showModal" 2149 ></premium-button> 2150 2151 <ul class="plan__list"> 2152 <li class="common-features__feature"> 2153 Unlimited Emails 2154 </li> 2155 <li class="common-features__feature"> 2156 Unlimited Participants & SignUps 2157 </li> 2158 <li class="common-features__feature"> 2159 No Passwords for Participants 2160 </li> 2161 <li class="common-features__feature"> 2162 1,500+ Theme Combinations 2163 </li> 2164 <li class="common-features__feature"> 2165 Mobile-Friendly SignUps 2166 </li> 2167 <li class="common-features__feature"> 2168 Collect Payments & Contributions 2169 </li> 2170 <li class="common-features__feature"> 2171 Lock a Day 2172 </li> 2173 <li class="common-features__feature"> 2174 Swift Shift Scheduling 2175 </li> 2176 <li class="common-features__feature"> 2177 Quick Multi-Day Copy 2178 </li> 2179 <li class="common-features__feature"> 2180 Shift Swap for Participants 2181 </li> 2182 <li class="common-features__feature"> 2183 Add Links: Dropbox, Zoom, Drive + 2184 </li> 2185 <li class="common-features__feature"> 2186 Teacher View Sharing 2187 </li> 2188 <li class="common-features__feature"> 2189 Calendar Sync & Embed 2190 </li> 2191 <li class="common-features__feature"> 2192 Social Media Sharing 2193 </li> 2194 <li class="common-features__feature"> 2195 Admin Tools 2196 </li> 2197 <li class="common-features__feature"> 2198 Email Delivery Tracking 2199 </li> 2200 <li class="common-features__feature"> 2201 Timezones & 24hr Clock 2202 </li> 2203 <li class="common-features__feature"> 2204 Import & Store Contacts 2205 </li> 2206 <li class="common-features__feature"> 2207 Custom Notification Options 2208 </li> 2209 <li class="common-features__feature"> 2210 Advanced Messaging 2211 </li> 2212 <li class="common-features__feature"> 2213 Upload Unlimited Logos & Images 2214 </li> 2215 <li class="common-features__feature"> 2216 1 Primary Organizer 2217 </li> 2218 <li class="common-features__feature"> 2219 1 Custom Participant Question 2220 </li> 2221 <li class="common-features__feature"> 2222 1 Group Page 2223 </li> 2224 <li class="common-features__feature"> 2225 Customer Support: Email 2226 </li> 2227 </ul> 2228 </div> 2229 </div> 2230 </div> 2231 <!--End of Tier 0 Plan Mobile--> 2232 2233 <div class="br"></div> 2234 2235 <!--Start of Tier 1 Plan Mobile--> 2236 <div class="col-md-10 col-md-offset-1"> 2237 <div class="col-xs-1"></div> 2238 <div class="col-xs-10"> 2239 <div class="row text-center pricing-box-light clickable" ng-hide="ctrl.responsiveData.showTier1" ng-click="ctrl.changeDivState('showTier1')"> 2240 <h3 class="plan__name">Starter*</h3> 2241 <p class="plan__price-gray">
2242 <span class="line-through--single"> 2243 <span class="price--single"><span class="green-price">$8<sup>.34</sup></span> / per month</span> 2244 </span><br> 2245 <span><i>Billed 99<sup>.99</sup> annually</i></span> 2246 </p> 2247 2248 <p class="plan__price-gray"> 2249 Boost your planning power<br/>with additional features 2250 </p> 2251 <div class="plan__dark_blue_arrow"></div> 2252 </div> 2253 2254 <div class="row text-center pricing-box-light-2 ng-hide clickable" ng-click="ctrl.changeDivState()" ng-show="ctrl.responsiveData.showTier1" id="showTier1"> 2255 <h3 class="plan__name">Starter*</h3> 2256 <p class="plan__price-gray"> 2257 <span class="line-through--single"> 2258 <span class="price--single"><span class="green-price">$8<sup>.34</sup></span> / per month</span> 2259 </span><br> 2260 <span><i>Billed 99<sup>.99</sup> annually</i></span> 2261 </p> 2262 2263 <p class="plan__price-gray"> 2264 Boost your planning power<br/>with additional features 2265 </p> 2266 2267 <div class="plan__dark_blue_arrow_up"></div> 2268 </div> 2269 <div class="row text-center pricing-box-white ng-hide" ng-show="ctrl.responsiveData.showTier1"> 2270 <premium-button 2271 ng-if="ctrl.pageData.enableButtons" 2272 user="ctrl.user" 2273 users-plan="ctrl.pageData.usersPlan" 2274 group-name="level_1" 2275 tier="1" 2276 action="ctrl.showModal" 2277 ></premium-button> 2278 2279 <ul class="plan__list"> 2280 <li class="common-features__feature"> 2281 Everything in Basic <b>Plus</b> 2282 </li> 2283 <li class="common-features__feature"> 2284 Unlimited Text (SMS) Reminders^ 2285 </li> 2286 <li class="common-features__feature"> 2287 1 Assistant Organizer per SignUp 2288 </li> 2289 <li class="common-features__feature"> 2290 2 Custom Participant Questions 2291 </li> 2292 2293 <li class="common-features__feature"> 2294 Unlimited Group Pages 2295 </li> 2296 <li class="common-features__feature"> 2297 Limit Spots per Participant 2298 </li> 2299 <li class="common-features__feature"> 2300 Waitlist Notification for Available Spots 2301 </li> 2302 <li class="common-features__feature"> 2303 Customer Support: Priority Email 2304 </li> 2305 </ul> 2306 </div> 2307 </div> 2308 </div> 2309 <!--End of Tier 1 Plan Mobile--> 2310 <div class="br"></div> 2311 2312 <!--Start of Tier 2 Plan Mobile--> 2313 <div class="col-md-10 col-md-offset-1"> 2314 <div class="col-xs-1"></div> 2315 <div class="col-xs-10"> 2316 <div class="row text-center pricing-box-light clickable" ng-click="ctrl.changeDivState('showTier2')" ng-hide="ctrl.responsiveData.showTier2"> 2317 <h3 class="plan__name">Plus*</h3> 2318 <p class="plan__price-gray highlight"> 2319 <span class="line-through--single"> 2320 <span class="price--single"><span class="green-price highlight">$20<sup>.83</sup></span> / per month</span> 2321 </span><br> 2322 <span><i>Billed 249<sup>.99</sup> annually</i></span> 2323 </p> 2324 2325 <p class="plan__price-blue"> 2326 Our most popular plan 2327 </p> 2328 <div class="plan__arrow"></div> 2329 </div> 2330 2331 <div class="row text-center pricing-box-light-2 ng-hide clickable" ng-click="ctrl.changeDivState()" ng-show="ctrl.responsiveData.showTier2" id="showTier2"> 2332 <h3 class="plan__name">Plus*</h3> 2333 <p class="plan__price-gray highlight">
2334 <span class="line-through--single"> 2335 <span class="price--single"><span class="green-price highlight">$20<sup>.83</sup></span> / per month</span> 2336 </span><br> 2337 <span><i>Billed 249<sup>.99</sup> annually</i></span> 2338 </p> 2339 2340 <p class="plan__price-blue"> 2341 Our most popular plan 2342 </p> 2343 2344 <div class="plan__up_arrow"></div> 2345 </div> 2346 <div class="row text-center pricing-box-white ng-hide" ng-show="ctrl.responsiveData.showTier2"> 2347 <premium-button 2348 ng-if="ctrl.pageData.enableButtons" 2349 user="ctrl.user" 2350 users-plan="ctrl.pageData.usersPlan" 2351 group-name="level_2" 2352 tier="2" 2353 action="ctrl.showModal" 2354 ></premium-button> 2355 2356 <ul class="plan__list"> 2357 <li class="common-features__feature"> 2358 Everything in Basic <b>Plus</b> 2359 </li> 2360 <li class="common-features__feature"> 2361 Unlimited Text (SMS) Reminders^ 2362 </li> 2363 <li class="common-features__feature"> 2364 5 Assistant Organizers 2365 </li> 2366 <li class="common-features__feature"> 2367 3 Custom Participant Questions 2368 </li> 2369 <li class="common-features__feature"> 2370 Unlimited Group Pages 2371 </li> 2372 <li class="common-features__feature"> 2373 Add a Waiver 2374 </li> 2375 <li class="common-features__feature"> 2376 Sign Up Lock/Unlock 2377 </li> 2378 <li class="common-features__feature"> 2379 Participant Check-in 2380 </li> 2381 <li class="common-features__feature"> 2382 Limit Spots per Participant 2383 </li> 2384 <li class="common-features__feature"> 2385 Waitlist Notification for Available Spots 2386 </li> 2387 <li class="common-features__feature"> 2388 Customer Support: Priority Email / Coaching Calls 2389 </li> 2390 </ul> 2391 </div> 2392 </div> 2393 </div> 2394 <!--End of Tier 2 Plan Mobile--> 2395 2396 <div class="br"></div> 2397 2398 <!--Start of Tier 3 Plan Mobile--> 2399 <div class="col-md-10 col-md-offset-1"> 2400 <div class="col-xs-1"></div> 2401 <div class="col-xs-10"> 2402 <div class="row text-center pricing-box-light clickable" ng-click="ctrl.changeDivState('showTier3')" ng-hide="ctrl.responsiveData.showTier3"> 2403 <h3 class="plan__name">Max*</h3> 2404 <p class="plan__price-gray"> 2405 <span class="line-through--single"> 2406 <span class="price--single"><span class="green-price">$41<sup>.66</sup></span> / per month</span> 2407 </span><br> 2408 <span><i>Billed 499<sup>.99</sup> annually</i></span> 2409 </p> 2410 2411 <p class="plan__price-gray"> 2412 Perfect for managing big<br/>events & large groups 2413 </p> 2414 <div class="plan__dark_blue_arrow"></div> 2415 </div> 2416 2417 <div class="row text-center pricing-box-light-2 ng-hide clickable" ng-click="ctrl.changeDivState()" ng-show="ctrl.responsiveData.showTier3" id="showTier3"> 2418 <h3 class="plan__name">Max*</h3> 2419 <p class="plan__price-gray">
2420 <span class="line-through--single"> 2421 <span class="price--single"><span class="green-price">$41<sup>.66</sup></span> / per month</span> 2422 </span><br> 2423 <span><i>Billed 499<sup>.99</sup> annually</i></span> 2424 </p> 2425 2426 <p class="plan__price-gray"> 2427 Perfect for managing big<br/>events & large groups 2428 </p> 2429 2430 <div class="plan__dark_blue_arrow_up"></div> 2431 </div> 2432 <div class="row text-center pricing-box-white ng-hide" ng-show="ctrl.responsiveData.showTier3"> 2433 <premium-button 2434 ng-if="ctrl.pageData.enableButtons" 2435 user="ctrl.user" 2436 users-plan="ctrl.pageData.usersPlan" 2437 group-name="level_3" 2438 tier="3" 2439 action="ctrl.showModal" 2440 ></premium-button> 2441 2442 <ul class="plan__list"> 2443 <li class="common-features__feature"> 2444 Everything in Basic <b>Plus</b> 2445 </li> 2446 <li class="common-features__feature"> 2447 Unlimited Text (SMS) Reminders^ 2448 </li> 2449 <li class="common-features__feature"> 2450 15 Assistant Organizers per SignUp 2451 </li> 2452 <li class="common-features__feature"> 2453 15 Custom Participant Questions 2454 </li> 2455 <li class="common-features__feature"> 2456 Unlimited Group Pages 2457 </li> 2458 <li class="common-features__feature"> 2459 Advanced Participant Hours Tracking & Reporting 2460 </li> 2461 <li class="common-features__feature"> 2462 Add a Waiver 2463 </li> 2464 <li class="common-features__feature"> 2465 Sign Up Lock/Unlock 2466 </li> 2467 <li class="common-features__feature"> 2468 Participant Check-in 2469 </li> 2470 <li class="common-features__feature"> 2471 Custom SignUp URLs 2472 </li> 2473 <li class="common-features__feature"> 2474 Limit Spots per Participant 2475 </li> 2476 <li class="common-features__feature"> 2477 Waitlist Notification for Available Spots 2478 </li> 2479 <li class="common-features__feature"> 2480 Customer Support: Priority Email /Coaching Calls 2481 </li> 2482 </ul> 2483 </div> 2484 </div> 2485 </div> 2486 <!--End of Tier 3 Plan Mobile--> 2487 <div class="br"></div> 2488 2489 2490 <!--Start of Campus Plan Mobile--> 2491 <div class="col-md-10 col-md-offset-1"> 2492 <div class="col-xs-1"></div> 2493 <div class="col-xs-10"> 2494 <div class="row text-center pricing-box clickable" ng-hide="ctrl.responsiveData.showSchool" ng-click="ctrl.changeDivState('showSchool')"> 2495 <h3 class="plan__name">Campus*</h3> 2496 <p class="plan__price-gray"> 2497 <span class="line-through--single"> 2498 Starting at <span class="price--single"><span class="green-price">$99</span> / year</span> 2499 </span> 2500 </p> 2501 2502 <p class="plan__price-gray"> 2503 The easiest solution for<br/>K-12 Schools 2504 </p> 2505 <div class="plan__dark_blue_arrow"></div> 2506 </div> 2507 2508 <div class="row text-center pricing-box-2 ng-hide clickable" ng-click="ctrl.changeDivState()" ng-show="ctrl.responsiveData.showSchool" id="showSchool"> 2509 <h3 class="plan__name">Campus*</h3> 2510 <p class="plan__price-gray">
2511 <span class="line-through--single"> 2512 Starting at <span class="price--single"><span class="green-price">$99</span> / year</span> 2513 </span> 2514 </p> 2515 2516 <p class="plan__price-gray"> 2517 The easiest solution for<br/>K-12 Schools 2518 </p> 2519 2520 <div class="plan__dark_blue_arrow_up"></div> 2521 </div> 2522 <div class="row text-center pricing-box-white ng-hide" ng-show="ctrl.responsiveData.showSchool"> 2523 <premium-button 2524 ng-if="ctrl.pageData.enableButtons" 2525 user="ctrl.user" 2526 users-plan="ctrl.pageData.usersPlan" 2527 group-name="school" 2528 tier="3" 2529 action="ctrl.showModal" 2530 ></premium-button> 2531 <button ng-show="ctrl.pageData.showCampusMoreInfo" class="plan__cta ng-hide" ng-click="ctrl.showMoreInfoForm('campus')">Contact Us »</button> 2532 2533 <ul class="plan__list"> 2534 <li class="common-features__feature"> 2535 Unlimited Text (SMS) Reminders^ 2536 </li> 2537 <li class="common-features__feature"> 2538 150 Organizer Upgrades 2539 </li> 2540 <li class="common-features__feature"> 2541 15 Assistant Organizers per SignUp 2542 </li> 2543 <li class="common-features__feature"> 2544 15 Custom Participant Questions 2545 </li> 2546 <li class="common-features__feature"> 2547 Unlimited Group Pages 2548 </li> 2549 <li class="common-features__feature"> 2550 Advanced Participant Hours Tracking & Reporting 2551 </li> 2552 <li class="common-features__feature"> 2553 Add a Waiver 2554 </li> 2555 <li class="common-features__feature"> 2556 Sign Up Lock/Unlock 2557 </li> 2558 <li class="common-features__feature"> 2559 Participant Check-in 2560 </li> 2561 <li class="common-features__feature"> 2562 Custom SignUp URLs 2563 </li> 2564 <li class="common-features__feature"> 2565 Limit Spots per Participant 2566 </li> 2567 <li class="common-features__feature"> 2568 Waitlist Notification for Available Spots 2569 </li> 2570 <li class="common-features__feature"> 2571 Customer Support: Priority Email /Coaching Calls 2572 </li> 2573 </ul> 2574 </div> 2575 </div> 2576 </div> 2577 <!--End of Campus Plan Mobile--> 2578 <div class="br"></div> 2579 2580 2581 <br/> 2582 2583 <!--Begin Ad-Free Copy--> 2584 <div class="col-md-10 col-md-offset-1"> 2585 <div class="row text-center"> 2586 <p class="ad__free__heading">*AD-FREE UPGRADE AVAILABLE. <br/> 2587 <span style="font-size: 150%"><sup>^</sup></span>US, Canada, and Australia only, standard carrier charges apply.<br /> 2588 Click Select Plan above to get started.</p> 2589 </div> 2590 </div> 2591 <!--End Ad-Free Copy--> 2592 2593 <br/> 2594 2595 <!--Begin Need Something Extra Section--> 2596 <div class="col-xs-1"></div> 2597 <div class="col-xs-10"> 2598 <br> 2599 <div class="blue-hdr"> 2600 <h2 class="need__something">Need Something Extra?</h2> 2601 </div> 2602 <div class="col-xs-12 text-center need-something-box"> <img src="imgs/pricing/need-something-icon.png" border="0" /> <br> 2603 <p class="need-something">Tell us what youâre looking for and weâll get back to you soon.</p> 2604 <div class="col-md-6 col-md-offset-3"> 2605 <button class="plan__cta" ng-click="ctrl.showMoreInfoForm('more')">Tell Us More »</button> 2606 </div> 2607 </div> 2608 </div> 2609 <!--End Need Something Extra Section--> 2610 2611 <div class="br"> </div> 2612 2613 <!--Begin Custom Pricing Section--> 2614 2615 <div class="col-xs-1"></div> 2616 <div class="col-xs-10"> 2617 <br> 2618 <div class="blue-hdr"> 2619 <h2 class="need__something">Volume Discounts</h2> 2620 </div> 2621 <div class="col-xs-12 text-center need-something-box"> <img src="imgs/pricing/email-icon.png" border="0" /> <br> 2622 <p class="need-something">For Districts, National NPOs & Corporate use.</p> 2623 <div class="col-md-6 col-md-offset-3"> 2624 <button class="plan__cta" ng-click="ctrl.showMoreInfoForm('pricing')">Contact Us »</button> 2625 </div> 2626 </div> 2627 </div> 2628 <!--End Custom Pricing Section--> 2629 2630 </div> 2631 2632
2632<script type="text/ng-template" id="/script/vspot-angular/templates/pricing/more-info.html"><!-- Associated module: pricing --> <style> .more-info-form .form-group .text-left { text-align: left; } </style> <form method="post" vspot-validation="mi.submit" role="form" accept-charset="utf-8" novalidate class="form-horizontal more-info-form" name="more_info" > <div class="modal-header"> <button type="button" class="close" ng-click="mi.close()">×</button> <h4 class="modal-title" data-i18n="{{ mi.title }}"></h4> </div> <div class="modal-body"> <p data-i18n="_MoreInfoIntro_" data-dont-watch></p> <div class="alert alert-danger ng-hide" role="alert" ng-show="mi.errorMsg">{{ mi.errorMsg }}</div> <div class="alert alert-success ng-hide" role="alert" data-i18n="_MoreInfoSuccess_" data-dont-watch ng-show="mi.showSuccess"></div> <div ng-show="mi.showForm"> <div class="form-group"> <label for="name" class="col-sm-3 control-label"><span data-i18n="_Name_" data-dont-watch></span> <span class="required">*</span></label> <div class="col-sm-9"> <input type="text" name="name" id="name" required ng-model="mi.formData.name" class="form-control" autofocus > </div> </div> <div class="form-group"> <label for="em_addr" class="col-sm-3 control-label"><span data-i18n="_Email_" data-dont-watch></span> <span class="required">*</span></label> <div class="col-sm-9"> <input type="email" name="em_addr" id="em_addr" required ng-model="mi.formData.em_addr" class="form-control" > </div> </div> <div class="form-group"> <label for="org_name" class="col-sm-3 control-label" data-i18n="_MoreInfoOrganizationName_" data-dont-watch></label> <div class="col-sm-9"> <input type="text" name="org_name" id="org_name" ng-model="mi.formData.org_name" class="form-control" > </div> </div> <div class="form-group"> <label for="city" class="col-sm-3 control-label" data-i18n="_City_" data-dont-watch></label> <div class="col-sm-9"> <input type="text" name="city" id="city" ng-model="mi.formData.city" class="form-control" > </div> </div> <div class="form-group"> <label for="state" class="col-sm-3 control-label" data-i18n="_State_" data-dont-watch></label> <div class="col-sm-9"> <input type="text" name="state" id="state" ng-model="mi.formData.state" class="form-control" > </div> </div> <div class="form-group"> <label for="num_volunteers" class="col-sm-3 control-label" data-i18n="_MoreInfoNumVols_" data-dont-watch></label> <div class="col-sm-9"> <input type="text" name="num_volunteers" id="num_volunteers" ng-model="mi.formData.num_volunteers" class="form-control" > </div> </div> <div class="form-group"> <label for="num_organizers" class="col-sm-3 control-label" data-i18n="_MoreInfoNumOrganizers_" data-dont-watch></label> <div class="col-sm-9"> <input type="text" name="num_organizers" id="num_organizers" ng-model="mi.formData.num_organizers" class="form-control" > </div> </div> <div class="form-group"> <label for="num_locations" class="col-sm-3 control-label" data-i18n="_MoreInfoNumLocations_" data-dont-watch></label> <div class="col-sm-9"> <input type="text" name="num_locations" id="num_locations" ng-model="mi.formData.num_locations" class="form-control" > </div> </div> <div class="form-group"> <label for="org_type" class="col-sm-6 control-label text-left" data-i18n="_MoreInfoOranizationDesc_" data-dont-watch></label> <div class="col-sm-6"> <select name="org_type" id="org_type" ng-model="mi.formData.org_type" class="form-control" > <option value="Individual School" data-i18n="_MoreInfoSelectIndividualSchool_" data-dont-watch></option> <option value="School District" data-i18n="_MoreInfoSelectSchoolDistrict_" data-dont-watch></option> <option value="College/University" data-i18n="_MoreInfoSelectUniversity_" data-dont-watch></option> <option value="Corporation" data-i18n="_MoreInfoSelectCorporation_" data-dont-watch></option> <option value="Nonprofit-local" data-i18n="_MoreInfoSelectNonProfitLocal_" data-dont-watch></option> <option value="Nonprofit-regional" data-i18n="_MoreInfoSelectNonProfitRegional_" data-dont-watch></option> <option value="Nonprofit-national" data-i18n="_MoreInfoSelectNonProfitNational_" data-dont-watch></option> <option value="Faith/Worship Group" data-i18n="_MoreInfoSelectFaithGroup_" data-dont-watch></option> <option value="Other" data-i18n="_MoreInfoSelectOther_" data-dont-watch></option> </select> </div> </div> <div class="form-group"> <label for="needs" class="col-sm-12 control-label text-left" data-i18n="_MoreInfoNeeds_" data-dont-watch></label> <div class="col-sm-12"> <textarea name="needs" id="needs" ng-model="mi.formData.needs" class="form-control" ></textarea> <input type="text" name="email" class="email-field" autocomplete="off" ng-model="mi.formData.email" > </div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="mi.submitting"></i>
2632 <button type="button" class="btn vs1-white-blue-btn ng-hide" ng-click="mi.close()" ng-show="!mi.showForm" data-i18n="_Close_" data-dont-watch></button> <button type="button" class="btn btn-primary ng-hide" ng-click="mi.submit($event)" ng-disabled="mi.submitting" ng-show="mi.showForm" data-i18n="_Submit_" data-dont-watch ></button> </div> </div> </div> </form> </script>
vendor: 1 bytes, line 2632
2632
2633<script type="text/ng-template" id="/script/vspot-angular/templates/pricing/premium-modal.html"><div class="modal-header"> <button type="button" class="close" ng-click="mod.close()">×</button> <h2 class="subheadline">{{ mod.getLocalizedString(mod.modalTitle, mod.modalTitleExtra) }}</h2> </div> <premium-subscription ng-if="mod.show.subscriptions" upgrade-to="mod.upgradeTo" promo-code="mod.promoCode" school-id="mod.selectedSchoolId" org-description="mod.orgDescription" group-plans="mod.groupPlans" user="mod.user" action="mod.subscriptionSelected" close="mod.close" ></premium-subscription> <premium-campus-plan ng-if="mod.show.campusPlan" upgrade-to="mod.upgradeTo" user="mod.user" action="mod.campusSelected" close="mod.close" ></premium-campus-plan> <premium-account ng-if="mod.show.account" user="mod.user" log-in-complete="mod.logInComplete" registration-complete="mod.registrationComplete" close="mod.close" ></premium-account> <div class="modal-body" ng-if="mod.show.checkout"> <div class="row form-group"> <div class="col-xs-10 col-xs-offset-1"> <stripe-form publishing-key="mod.pubKey" payment-description="mod.subscriptionDesc" payment-amount="mod.subscriptionAmount" subscription-data="mod.subscriptionData" users-plan="mod.usersPlan" action="mod.subscriptionComplete" trial="mod.subscriptionTrial" trial-message="mod.subscriptionTrialMsg" ></stripe-form> </div> </div> </div> <div ng-if="mod.show.complete"> <div class="modal-body"> <div class="alert alert-danger ng-hide" role="alert" ng-show="mod.modalErrorStr">{{ mod.modalErrorStr }}</div> <p ng-bind-html="mod.getLocalizedString(mod.modalBody)"></p> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12 text-right"> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-success" ng-click="mod.goNext()"></button> </div> </div> </div> </div> <div ng-if="mod.show.alreadyHavePlan"> <div class="modal-body"> <p ng-bind-html="mod.getLocalizedString(mod.modalBody, [mod.planName])"></p> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12 text-right"> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-success" ng-click="mod.goNext()"></button> </div> </div> </div> </div> </script>
2633 2634 2635
2635<script type="text/ng-template" id="/script/vspot-angular/components/register/register.html"><div ng-class="{'modal-body': $ctrl.isModal, 'mt20': !$ctrl.isModal}" ng-show="$ctrl.loading" > <div class="row text-center"> <h2 class="subheadline" data-i18n="_LoadingDotDotDot_" data-dont-watch></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> </div> <form method="post" vspot-validation="$ctrl.submit" name="register" role="form" accept-charset="utf-8" novalidate class="form-horizontal ng-hide" ng-hide="$ctrl.loading" > <div ng-class="{'modal-body': $ctrl.isModal, 'mt20': !$ctrl.isModal}"> <div class="row text-center"> <button type="button" class="btn btn-primary facebook-login-button" ng-click="$ctrl.fbRegister()"> <span class="icon-facebook-f"></span> <span data-i18n="_SignInWithFacebook_" data-dont-watch></span> </button> </div> <div class="row text-center google-btn-desktop"> <!-- google login button --> <image id="google_login" ng-click="$ctrl.googleLogin()" src="/images/[email protected]"></image> </div> <!-- <div id="appleid-signin" class="row text-center left signin-button" style="height: 50px;" data-color="black" data-border="true" data-type="sign in"></div>--> <div class="row"> <h2 class="subheadline text-center" data-i18n="_RegisterSubheader_" data-dont-watch></h2> </div> <div class="row form-group ng-hide" ng-show="$ctrl.errorCode"> <div class="col-xs-12"> <div class="alert alert-danger" role="alert" data-i18n="{{$ctrl.errorCode}}"></div> </div> </div> <div class="row form-group"> <div class="col-sm-6 responsive-mb-15"> <label for="register-fname" class="blue-label" data-i18n="_FirstName_"></label> <input type="text" id="register-fname" name="firstName" ng-model="$ctrl.form.firstName" ng-disabled="$ctrl.submitting" class="form-control" maxlength="40" required > </div> <div class="col-sm-6"> <label for="register-lname" class="blue-label" data-i18n="_LastName_"></label> <input type="text" id="register-lname" name="lastName" ng-model="$ctrl.form.lastName" ng-disabled="$ctrl.submitting" class="form-control" maxlength="40" required > </div> </div> <div class="row form-group"> <div class="col-xs-12"> <label for="register-email" class="blue-label" data-i18n="_Email_"></label> <input type="email" id="register-email" name="email" data-i18n-attr="_PlaceholderEmail_|placeholder" ng-model="$ctrl.form.email" ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 750, 'blur': 0 } }" vspot-validate-email="true" ng-disabled="$ctrl.submitting" class="form-control" maxlength="254" required > </div> </div> <div class="row form-group"> <div class="col-xs-12"> <label for="register-password" class="blue-label" data-i18n="_Password_"></label> <input type="password" id="register-password" name="password" ng-model="$ctrl.form.password" ng-disabled="$ctrl.submitting" ng-pattern="/.{6,}/" validation-pattern="_PASSWORD_MALFORMED_" title="6 characters minimum" class="form-control" maxlength="255" required > </div> </div> <div class="row form-group"> <div class="col-xs-12"> <div id="captcha-register" data-sitekey="6LfDtFwtAAAAADRFmR1EYG6cCMn7iaMrOQ_BB2n1" data-callback="reCaptcha" class="g-recaptcha"></div> </div> </div> <div class="row form-group ng-hide" ng-show="$ctrl.captchaErrorCode"> <div class="col-xs-12"> <div class="text-danger" role="alert" data-i18n="{{$ctrl.captchaErrorCode}}"></div> </div> </div> <div class="row form-group"> <div class="col-sm-8"> <span data-i18n="_RegisterInfo_" data-dont-watch></span> <br> <a href="/popup/terms" class="pop-up" data-i18n="_TermsOfService_" data-dont-watch></a> </div> <div class="col-sm-4 text-right" ng-if="$ctrl.logIn"> <a ng-href="{{$ctrl.loginHref}}" data-i18n="_PremiumModalRegisterAlreadyRegistered_" data-dont-watch ng-if="$ctrl.loginHref"></a> <a href ng-click="$ctrl.logIn()" data-i18n="_PremiumModalRegisterAlreadyRegistered_" data-dont-watch ng-if=!$ctrl.loginHref></a> </div> </div> </div> <div ng-class="{'modal-footer': $ctrl.isModal}"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Cancel_" data-dont-watch class="btn vs1-w
2635hite-blue-btn" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close()" ng-if="$ctrl.close"> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="$ctrl.submitting"></i> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn" ng-class="{'btn-success': $ctrl.isModal, 'btn-primary': !$ctrl.isModal}" ng-disabled="$ctrl.submitting"></button> </div> </div> </div> </form></script>
vendor: 1 bytes, line 2635
2635
2636<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signup-delete/signup-delete.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.cancel()">×</button> <h2 class="subheadline" data-i18n="_DeleteSignUp_" data-dont-watch ng-if="$ctrl.activities.length === 1"></h2> <h2 class="subheadline" data-i18n="_DeleteSignUps_" data-dont-watch ng-if="$ctrl.activities.length > 1"></h2> </div> <div class="modal-body form-group container-fluid"> <div class="row"> <div class="col-xs-12"> <p ng-if="$ctrl.activities.length === 1" data-i18n="_DashboardDeleteActivityConfirmOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="$ctrl.activities.length === 2" data-i18n="_DashboardDeleteActivityConfirmTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="$ctrl.activities.length === 3" data-i18n="_DashboardDeleteActivityConfirmThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="$ctrl.activities.length > 3" data-i18n="_DashboardDeleteActivityConfirmThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" ng-if="$ctrl.showSuccess" > <span ng-if="$ctrl.activities.length === 1" data-i18n="_DashboardDeleteActivitySuccess_|{{ $ctrl.titles[0] }}"></span> <span ng-if="$ctrl.activities.length > 1" data-i18n="_DashboardDeleteActivitySuccessMultiple_" data-dont-watch></span> </div> <div class="alert alert-danger" role="alert" ng-if="$ctrl.showError" data-i18n="{{ $ctrl.errorMessage }}" ></div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" data-i18n="_Close_" data-dont-watch></button> </div> <div class="col-xs-6 nowrap no-animate"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.showLoading"></i> <button type="button" class="btn btn-primary" ng-click="$ctrl.deleteActivities()" ng-hide="$ctrl.deleted.length" ng-disabled="$ctrl.showLoading" data-i18n="_Delete_" data-dont-watch ></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2636
2636
2637<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signup-publish/signup-publish.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.cancel()">×</button> <h2 class="subheadline" data-i18n="_Publishing_" data-dont-watch></h2> </div> <div class="modal-body form-group container-fluid"> <div class="row"> <div class="col-xs-12"> <p ng-if="$ctrl.activities.length === 1" data-i18n="_DashboardPublishActivityConfirmOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="$ctrl.activities.length === 2" data-i18n="_DashboardPublishActivityConfirmTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="$ctrl.activities.length === 3" data-i18n="_DashboardPublishActivityConfirmThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="$ctrl.activities.length > 3" data-i18n="_DashboardPublishActivityConfirmThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> </div> </div> <div class="row"> <div class="col-xs-3 text-right"> <label for="group" data-i18n="_Group_" data-dont-watch ></label> </div> <div class="col-xs-9"> <select id="group" ng-model="$ctrl.groupToPublishTo" ng-options="g.group_title for g in $ctrl.groups" ></select> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" ng-if="$ctrl.showSuccess" > <span ng-if="$ctrl.activities.length === 1" data-i18n="_DashboardPublishActivitySuccess_|{{ $ctrl.titles[0] }}|{{ $ctrl.groupToPublishTo.group_title }}"></span> <span ng-if="$ctrl.activities.length > 1" data-i18n="_DashboardPublishActivitySuccessMultiple_|{{ $ctrl.groupToPublishTo.group_title }}" data-dont-watch></span> </div> <div class="alert alert-danger" role="alert" ng-if="$ctrl.showError" data-i18n="{{ $ctrl.errorMessage }}" ></div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" data-i18n="_Close_" data-dont-watch></button> </div> <div class="col-xs-6 nowrap no-animate"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.showLoading"></i> <button type="button" class="btn btn-primary" ng-click="$ctrl.publishActivities()" ng-hide="$ctrl.published.length" ng-disabled="$ctrl.showLoading || $ctrl.groups.length === 0" data-i18n="_Publish_" data-dont-watch autofocus ></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2637
2637
2638<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signup-occupied/signup-occupied.html"><div class="modal-header"> <button type="button" class="close" data-ng-click="$ctrl.cancel()">×</button> <h2 data-i18n="_DashboardLockedModalTitle_" data-dont-watch class="modal-title"></h2> </div> <div class="modal-body clearfix"> <div class="alert alert-danger" role="alert" ng-show="$ctrl.errorMessage">{{ $ctrl.errorMessage }}</div> <form method="post" role="form" accept-charset="UTF-8" name="unlockForm" id="unlockForm" novalidate > <p ng-bind-html="$ctrl.msg" class="sentence-case" style="word-wrap: break-word;"></p> <p data-i18n="_DashboardLockedModalInstructions_" data-dont-watch></p> </form> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_No_" data-dont-watch class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" ng-show="!$ctrl.showClose" ng-disabled="$ctrl.unlocking"></button> <button type="button" data-i18n="_Close_" data-dont-watch class="btn btn-primary" ng-click="$ctrl.cancel()" ng-show="$ctrl.showClose" ng-disabled="$ctrl.unlocking"></button> </div> <div class="col-xs-6"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.unlocking"></i> <button type="button" data-i18n="_Yes_" data-dont-watch autofocus class="btn btn-primary" ng-click="$ctrl.unlockActivity()" ng-show="$ctrl.showButtton" ng-disabled="$ctrl.unlocking" ></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2638
2638
2639<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/groups/groups.html"><div class="clearfix ng-hide" id="header_placeholder"></div> <div class="dash-panel panel-default"> <div class="dash-panel-heading clearfix" id="group_header"> <div class="row"> <div class="col-xs-4"> <div class="fl toggle-icons clickable no-animate" ng-show="$ctrl.inDashboard"> <!-- <i class="fa fa-chevron-up" ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock"></i> --> <!-- <i class="fa fa-chevron-down" ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock"></i> --> <img ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock" src="/imgs/icons/svg/Collapse_closed.svg" alt="Collapsed"/> <img ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock" src="/imgs/icons/svg/Collapse_arrow.svg" alt="Collapse"/> </div> <div class="fl"> <h3 class="dash-title" ng-class="{'clickable': $ctrl.inDashboard}" ng-click=" $ctrl.inDashboard ? $ctrl.goToGroups() : false "> <span data-i18n="_MyGroupPages_" data-dont-watch></span> </h3> <span class="title-help-icon" uib-popover-html="$ctrl.helpPopOver" popover-placement="right" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> </div> <div class="col-xs-4 p0"> <div class="clearfix dashboard-menu"> <i class="fa fa-spinner fa-pulse white-color" ng-show="$ctrl.showMenuLoader"></i> <div class="new-dashboard btn-group" uib-dropdown is-open="$ctrl.showInactiveGroupsMenu"> <button type="button" class="btn btn-default" uib-dropdown-toggle id="group_menu_button"> <span data-i18n="_Show_" data-dont-watch></span>: <span class="bolder" data-i18n="{{ $ctrl.showingType }}"></span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" role="menu"> <li> <a href ng-click="$ctrl.updateMenu('_ActiveGroups_', true)" class="clearfix"> <span data-i18n="_ActiveGroups_" data-dont-watch ng-class="{ strong: '_ActiveGroups_' === $ctrl.showingType}"></span> ({{$ctrl.activeGroups}}) <span ng-show=" '_ActiveGroups_' === showingType " class="fa fa-check"></span> </a> </li> <li> <a href ng-click="$ctrl.updateMenu('_AllGroups_', true)" class="clearfix"> <span data-i18n="_AllGroups_" data-dont-watch ng-class="{ strong: '_AllGroups_' === $ctrl.showingType}"></span> ({{$ctrl.totalGroups}}) <span ng-show=" '_AllGroups_' === showingType " class="fa fa-check"></span> </a> </li> <li class="divider clearfix"></li> <li> <a href ng-click="$ctrl.updateMenu('_Help_', true)" class="clearfix"> <span data-i18n="_Help_" data-dont-watch ng-class="{ strong: '_Help_' === $ctrl.showingType}"></span> <span ng-show=" '_Help_' === $ctrl.showingType " class="fa fa-check"></span> </a> </li> </ul> </div> </div> </div> <div class="col-xs-4 text-right clearfix"> <span ng-if="$ctrl.totalGroups < $ctrl.allowedGroups"> <a href ng-click="$ctrl.addGroup()"> <button class="orange-btn" data-i18n="_CreateGroupPage_" data-dont-watch></button></a> </span> <span class="upgrade-link-text" ng-if="$ctrl.totalGroups >= $ctrl.allowedGroups"> <upgrade-prompt-link user="$ctrl.user" feature="GROUP_PAGES"></upgrade-prompt-link> </span> </div> </div> </div> <div class="dash-panel-body" ng-show="$ctrl.showBlock" id="group_body"> <div class="panel-content clearfix" ng-show="$ctrl.errorMessage.length > 0"> <div class="col-xs-12"> <p class="notice">{{$ctrl.errorMessage}}</p> </div> </div> <dashboard-loading class="panel-content clearfix" ng-if="!$ctrl.groupList.$resolved"></dashboard-loading> <dashboard-groups-list class="panel-content clearfix" ng-if="$ctrl.groupList.$resolved && $ctrl.showingType !== '_Help_'" in-dashboard="$ctrl.inDashboard" group-list="$ctrl.groupList" submitting="$ctrl.submitting" showing-type="$ctrl.showingType" total-groups="$ctrl.totalGroups" inactive-groups="$ctrl.inactiveGroups" set-showing="$ctrl.setShowing" error="$ctrl.error" update-counts="$ctrl.updateCounts" activate-group="$ctrl.activateGroup" delete-group="$ctrl.deleteGroup"></dashboard-groups-list> <div class="panel-content clearfix" ng-if="$ctrl.groupList.$resolved && $ctrl.showingType === '_Help_'"> <div class="col-xs-12 new-dashboard-info" data-i18n="_MyGroupPagesHelp_" data-dont-watch></div> </div> </div> <div class="panel-body" id="su_closed_placeholder" ng-show="!$ctrl.
2639showBlock"> <div class="panel-content clearfix"> <div class="col-xs-12 new-dashboard-info" data-i18n='_DashboardPanelHiddenArrow_'></div> </div> </div> </div> <div class="clearfix text-right" ng-if="!$ctrl.inDashboard"> <a ui-sref="dashboard">« <span data-i18n="_BackToDashboard_" data-dont-watch></span></a> </div></script>
vendor: 1 bytes, line 2639
2639
2640<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/invitations/invitations.html"><div class="clearfix ng-hide" id="header_placeholder"></div> <div class="dash-panel panel-default"> <div class="dash-panel-heading clearfix" id="inv_header"> <div class="row"> <div class="col-xs-4"> <div class="fl toggle-icons clickable no-animate" ng-show="$ctrl.inDashboard"> <!-- <i class="fa fa-chevron-up" ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock"></i> <i class="fa fa-chevron-down" ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock"></i> --> <img ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock" src="/imgs/icons/svg/Collapse_closed.svg" alt="Collapsed"/> <img ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock" src="/imgs/icons/svg/Collapse_arrow.svg" alt="Collapse"/> </div> <div class="fl"> <h3 class="dash-title" ng-class="{'clickable': $ctrl.inDashboard}" ng-click=" $ctrl.inDashboard ? $ctrl.goToMyInvitations() : false "> <span data-i18n="_MyInvitations_" data-dont-watch></span> </h3> <span class="title-help-icon" uib-popover-html="$ctrl.helpPopOver" popover-placement="right" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> </div> <div class="col-xs-6"> <div class="clearfix dashboard-menu"> <i class="fa fa-spinner fa-pulse white-color" ng-show="$ctrl.showMenuLoader"></i> <div class="new-dashboard btn-group" uib-dropdown is-open="$ctrl.showPastMenu"> <button type="button" class="btn btn-default" uib-dropdown-toggle id="invitations_menu_button"> <span data-i18n="_Show_" data-dont-watch></span>: <span class="bolder" data-i18n="{{ $ctrl.showingType }}"></span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" role="menu"> <li> <a href ng-click="$ctrl.updateMenu('_UpcomingInvitations_', true)" class="clearfix"> <span data-i18n="_UpcomingInvitations_" data-dont-watch ng-class="{ 'strong': '_ActiveGroups_' === $ctrl.showingType}"></span> ({{$ctrl.activeInvitations}}) <span ng-show=" '_UpcomingInvitations_' === $ctrl.showingType " class="fa fa-check"></span> </a> </li> <li> <a href ng-click="$ctrl.updateMenu('_AllInvitations_', true)" class="clearfix"> <span data-i18n="_AllInvitations_" data-dont-watch ng-class="{ 'strong': '_ActiveGroups_' === $ctrl.showingType}"></span> ({{$ctrl.totalInvitations}}) <span ng-show=" '_AllInvitations_' === $ctrl.showingType " class="fa fa-check"></span> </a> </li> <li class="divider clearfix"></li> <li> <a href ng-click="$ctrl.updateMenu('_ArchivedInvitations_', true)" class="clearfix"> <span data-i18n="_ArchivedInvitations_" data-dont-watch ng-class="{ 'strong': '_ActiveGroups_' === $ctrl.showingType}"></span> ({{$ctrl.archivedInvitations}}) <span ng-show=" '_ArchivedInvitations_' === $ctrl.showingType " class="fa fa-check"></span> </a> </li> <li> <a href ng-click="$ctrl.updateMenu('_Help_', true)" class="clearfix"> <span data-i18n="_Help_" data-dont-watch ng-class="{ 'strong': '_Help_' === $ctrl.showingType}"></span> <span ng-show=" '_Help_' === $ctrl.showingType " class="fa fa-check"></span> </a> </li> </ul> </div> </div> </div> </div> </div> <div class="dash-panel-body" id="inv_body" ng-show="$ctrl.showBlock"> <dashboard-loading class="panel-content clearfix" ng-if="!$ctrl.invList.$resolved"></dashboard-loading> <dashboard-invitations-list class="panel-content clearfix" ng-if=" $ctrl.invList.$resolved && $ctrl.showingType !== '_Help_' " update-counts="$ctrl.updateCounts" set-showing="$ctrl.setShowing" inv-list="$ctrl.invList" showing-type="$ctrl.showingType" in-dashboard="$ctrl.inDashboard"></dashboard-invitations-list> <div class="panel-content clearfix" ng-if="$ctrl.invList.$resolved && $ctrl.showingType === '_Help_'"> <div class="col-xs-12 new-dashboard-info" data-i18n="_MyInvitationsHelp_" data-dont-watch></div> </div> </div> <div class="panel-body" id="su_closed_placeholder" ng-show="!$ctrl.showBlock"> <div class="panel-content clearfix"> <div class="col-xs-12 new-dashboard-info" data-i18n='_DashboardPanelHiddenArrow_'></div> </div> </div>
2640 <div class="clearfix text-right" ng-if="!$ctrl.inDashboard"> <a ui-sref="dashboard">« <span data-i18n="_BackToDashboard_" data-dont-watch></span></a> </div></script>
vendor: 1 bytes, line 2640
2640
2641<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/organizations-list-signups/organizations-list-signups.html"><div class="dashboard"> <table class="table table-hover dash-table"> <thead class="sortable-header"> <tr class="thick-gray-border"> <th ng-click="$ctrl.setSort('activity_title')"> <span style="margin-left: 0.5rem;" data-i18n="_GroupListTitle_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'activity_title' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'activity_title' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> </th> <th class="col-xs-2 clickable" ng-click="$ctrl.setSort('startdate')"> <span data-i18n="_StartDate_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'startdate' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'startdate' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th class="col-xs-2 clickable" ng-click="$ctrl.setSort('enddate')"> <span data-i18n="_EndDate_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'enddate' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'enddate' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th class="col-xs-2 clickable" ng-click="$ctrl.setSort('orgname')"> <span data-i18n="_Organizer_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'orgname' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'orgname' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th> </th> </tr> </thead> <tbody> <tr class="dash-row" ng-repeat="a in $ctrl.activities.data | orderBy:$ctrl.sortType:$ctrl.sortReverse"> <td class="dash-title" style="padding-left: 1.5rem;"> <h3> <!-- PWD: was this, but we want sharing URL b/c org may not be volunteer. Not great to wire it in, @todo fix to call generateurl but that is big surgery <a href ng-if="a.complete" ng-click="$ctrl.view(a, $event, $ctrl.pageUrl, false)" ng-disabled="a.showLinkSpinner">{{ a.activity_title }}</a>--> <a href ng-if="a.complete" href="/login/entry/{{a.key}}" ng-disabled="a.showLinkSpinner">{{ a.activity_title }}</a> <span ng-if="!a.complete">{{ a.activity_title }}</span> </h3> </td> <td class="nowrap"> {{ (a.startdate === $ctrl.noDateRails) ? '' : $ctrl.vspotFormatDate(a.startdate, 'short') }} </td> <td class="nowrap"> {{ (a.enddate === $ctrl.noDateRails) ? '' : $ctrl.vspotFormatDate(a.enddate, 'short') }} </td> <td> <a ng-href="mailto:{{a.org_email}}">{{a.orgname}}</a> </td> <td class="menus nowrap"> <i class="fa fa-spinner fa-pulse" ng-class="{'vs-invisible': !a.showLinkSpinner}"></i> <span uib-dropdown class="nowrap"> <img src="/imgs/icons/svg/Settings.svg" ng-attr-id="manage_signup_{{a.id}}" uib-dropdown-toggle alt="Settings"/> <!-- <a href uib-dropdown-toggle ng-attr-id="manage_signup_{{a.id}}"><span data-i18n="_Tools_" data-dont-watch></span><span class="caret"></span></a> --> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="manage_signup_{{a.id}}"> <li role="menuitem"> <!-- @see above <a href ng-click="$ctrl.view(a, $event, $ctrl.pageUrl, false)" ng-disabled="!a.complete || a.showLinkSpinner" data-i18n="_View_" data-dont-watch></a>--> <a style="color: #000;" ng-disabled="!a.complete || a.showLinkSpinner" data-i18n="_View_" data-dont-watch ng-if="a.complete" href="/login/entry/{{a.key}}" ng-disabled="a.showLinkSpinner" href="/login/entry/{{a.key}}"></a> </li> <li role="menuitem"> <button style="color: #000;" type="button" class="btn btn-link" ng-click="$ctrl.signupTools.showDuplicate(a, true)" data-i18n="_Duplicate_" data-dont-watch></button> </li> </ul> </span> </td> </tr> </tbody> </table> </div></script>
vendor: 1 bytes, line 2641
2641
2642<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/copy-signup/copy-signup.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.cancel()">×</button> <h2 class="subheadline" data-dont-watch ng-bind-html="$ctrl.modalTitle"></h2> </div> <form method="post" name="copyActivity" id="copyActivity" role="form" accept-charset="UTF-8" novalidate vspot-validation="$ctrl.duplicate" > <div class="modal-body form-group container-fluid"> <div class="row"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" ng-if="$ctrl.copy.status" data-i18n="_DashboardCopyActivitySuccess_|{{ $ctrl.activity.activity_title }}" data-dont-watch></div> <div class="alert alert-danger" role="alert" ng-if="!$ctrl.copy.status && $ctrl.copy.message">{{ $ctrl.copy.message }}</div> <p class="note" ng-if="$ctrl.activity.kind === 'dated'"> <span data-i18n="_DatesOfSignup_" data-dont-watch></span> <span data-vspot-date-range data-start-date="{{ $ctrl.activity.startdate }}" data-end-date="{{ $ctrl.activity.enddate }}"></span> </p> <div class="form-group clearfix mt20"> <div class="col-xs-3"> <label for="newTitle"><span data-i18n="_DashboardCopyActivityNewName_" data-dont-watch></span> <span class="required">*</span></label> </div> <div class="col-xs-6"> <input type="text" maxlength="40" ng-maxlength="40" name="newTitle" id="newTitle" ng-model="$ctrl.form.newTitle" class="form-control" required validation-required="_DASHBOARD_COPY_NAME_REQUIRED_" validation-maxlength="_DASHBOARD_COPY_NAME_LENGTH_" > </div> </div> <div class="form-group clearfix" ng-if="$ctrl.activity.kind === 'dated'"> <div class="col-xs-3"> <input type="radio" ng-model="$ctrl.form.useNewDate" name="useNewDate" id="useNewDateFalse" ng-value="false"> <label for="useNewDateFalse" ng-if="!$ctrl.isReset" data-i18n="_DashboardCopyAllSpots_" data-dont-watch>Duplicate All Spots</label> <label for="useNewDateFalse" ng-if="$ctrl.isReset" data-i18n="_DashboardResetAllSpots_" data-dont-watch>Reset All Spots</label> <!-- <div class="br"></div> <input type="checkbox" name="includePast" id="includePast" ng-model="form.includePast" ng-disabled="form.useNewDate" > <label for="includePast">Include Past Dates?</label> --> </div> <div class="col-xs-6"> <input type="radio" ng-model="$ctrl.form.useNewDate" name="useNewDate" id="useNewDateTrue" ng-value="true" aria-labelledby="NewD
2642ate_label"> <label id="NewDate_label" data-i18n="_DashboardCopySpotsNewDate_" data-dont-watch></label> <div class="br"></div> <div class="input-group inline-date-picker-container" id="newDate_container"> <input type="text" class="form-control clickable" id="newDate_visible" aria-labelledby="NewDate_label" uib-datepicker-popup="MMM d, yyyy" datepicker-options="$ctrl.dateOptions" ng-model="$ctrl.form.newDate" is-open="$ctrl.form.newDateOpen" ng-change="$ctrl.form.newDateOpen = false;" ng-click="$ctrl.form.newDateOpen = true; $ctrl.copyActivity.newDate.$touched = true;" ng-attr-close-text="{{ $ctrl.getLocalizedString('_Close_') }}" ng-attr-clear-text="{{ $ctrl.getLocalizedString('_Clear_') }}" ng-attr-current-text="{{ $ctrl.getLocalizedString('_Today_') }}" validation-skip="true" readonly ng-disabled="!$ctrl.form.useNewDate" > <input type="date" class="ng-hide" name="newDate" id="newDate_helper" aria-labelledby="NewDate_label" ng-model="$ctrl.form.newDate" ng-required="$ctrl.form.useNewDate" ng-min="{{ $ctrl.form.minDate | date:'yyyy-MM-dd' }}" ng-max="{{ $ctrl.form.maxDate | date:'yyyy-MM-dd' }}" validation-after="newDate_container" validation-focus="newDate_visible" validation-required="_DASHBOARD_COPY_DATE_ERROR_REQUIRED_" validation-min="_DASHBOARD_COPY_DATE_ERROR_PAST_" validation-max="_DASHBOARD_COPY_DATE_ERROR_" ></input> <span class="input-group-btn"> <button type="button" class="btn btn-default" ng-click="$ctrl.form.newDateOpen = true;" ng-disabled="!$ctrl.form.useNewDate"><i class="fa fa-calendar" aria-hidden="true"></i></button> </span> </div> <!-- <div class="br" id="date-errors-after-here"></div> --> </div> <div class="br"></div> <!-- <label for="archiveOriginal">
2642<input type="checkbox" name="archiveOriginal" id="archiveOriginal" ng-model="$ctrl.form.archiveOriginal" > Archive original after duplicating?</label> <div class="br"></div> <label for="swapKeys" ng-hide="!$ctrl.form.archiveOriginal"> <input type="checkbox" name="swapKeys" id="swapKeys" ng-model="$ctrl.form.swapKeys" ng-hide="!$ctrl.form.archiveOriginal"> Point original sharing URL to new duplicate SignUp?</label> --> </div> <div> <p><strong data-i18n="_NoteColon_" data-dont-watch></strong></p> <ul class="default"> <!-- Notes for everyone: --> <li data-i18n="_DashboardCopyNote2_" ng-if="!$ctrl.isReset" data-dont-watch></li> <li data-i18n="_DashboardResetNote2_" ng-if="$ctrl.isReset" data-dont-watch></li> <li data-i18n="_DashboardResetNote3_" ng-if="$ctrl.isReset" data-dont-watch></li> <li data-i18n="_DashboardResetNote4_" ng-if="$ctrl.isReset" data-dont-watch></li> <li data-i18n="_DashboardCopyNote3_" data-dont-watch></li> <!-- Note if the original SignUp belongs to a group --> <li data-i18n="_DashboardCopyNote5_" data-dont-watch ng-show="$ctrl.activity.groups.length"></li> <!-- Note if the original SignUp has contributions set up --> <li data-i18n="_DashboardCopyNote7_" data-dont-watch ng-show="$ctrl.activity.accept_wampum"></li> <!-- Note for no-date SignUps --> <li data-i18n="_DashboardCopyNote1All_" data-dont-watch ng-show="$ctrl.activity.kind !== 'dated'"></li> <!-- Notes for dated SignUps --> <li data-i18n="_DashboardCopyNote1Past_" data-dont-watch ng-show="$ctrl.activity.kind === 'dated' && $ctrl.form.includePast && !$ctrl.form.useNewDate && !$ctrl.isReset"></li> <li data-i18n="_DashboardResetNote1Past_" data-dont-watch ng-show="$ctrl.activity.kind === 'dated' && $ctrl.form.includePast && !$ctrl.form.useNewDate && $ctrl.isReset"></li> <li data-i18n="_DashboardCopyNote1Future_" data-dont-watch ng-show="$ctrl.activity.kind === 'dated' && !$ctrl.form.includePast && !$ctrl.form.useNewDate"></li> <li data-i18n="_DashboardCopyNote4_|{{ $ctrl.form.dayOfWeek }}" data-dont-watch ng-show="$ctrl.activity.kind === 'dated' && $ctrl.form.useNewDate"></li> <li data-i18n="_DashboardCopyNote6_" data-dont-watch ng-show="$ctrl.activity.kind === 'dated' && $ctrl.form.includePast && !$ctrl.form.useNewDate && $ctrl.vspotDateIsPast($ctrl.activity.startdate)"></li> </ul> </div> </div> <div class="col-xs-12" ng-show="$ctrl.showForce"> <div class="checkbox"> <label> <input type="checkbox" ng-model="$ctrl.force"> <span data-i18n="_CopyTransferCopyForce_" data-dont-watch></span> </label> </div> </div> <div class="col-xs-12"> <div class="form-group" ng-show="$ctrl.error"> <span class="notice col-xs-12" data-i18n="{{ $ctrl.error }}"></span> </div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" ng-hide="$ctrl.copy.status" data-i18n="_Close_" data-dont-watch></button> </div> <div class="col-xs-6"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.duplicating"></i> <button type="button" class="btn btn-primary" ng-click="$ctrl.cancel()" ng-show="$ctrl.copy.status" data-i18n="_Manage_" data-dont-watch></button> <button type="submit" class="btn btn-primary" ng-hide="$ctrl.copy.status || $ctrl.isReset" data-i18n="_Duplicate_" data-dont-watch></button> <button type="submit" class="btn btn-primary" ng-hide="$ctrl.copy.status || !$ctrl.isReset" data-i18n="_Reset_" data-dont-watch></button> </div> </div> </div> </form> </script>
vendor: 1 bytes, line 2642
2642
2643<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/organizations-list-users/organizations-list-users.html"><div class="clearfix"> <table class="table"> <thead class="sortable-header"> <tr> <th ng-click="$ctrl.setSort('name')"> <span data-i18n="_Organizer_" data-dont-watch></span> <i class="fa fa-chevron-up" aria-hidden="true" ng-show="$ctrl.sortType === 'name' && $ctrl.sortReverse"></i> <i class="fa fa-chevron-down" aria-hidden="true" ng-show="$ctrl.sortType === 'name' && !$ctrl.sortReverse"></i> </th> <th ng-click="$ctrl.setSort('is_owner')"> <span data-i18n="_OrganizationOwner_" data-dont-watch></span> <i class="fa fa-chevron-up" aria-hidden="true" ng-show="$ctrl.sortType === 'is_owner' && $ctrl.sortReverse"></i> <i class="fa fa-chevron-down" aria-hidden="true" ng-show="$ctrl.sortType === 'is_owner' && !$ctrl.sortReverse"></i> </th> <th> </th> </tr> </thead> <tbody> <tr class="dashboard-table" ng-repeat="u in $ctrl.users.data | filter:{hide:'!'} | orderBy:$ctrl.sortType:$ctrl.sortReverse"> <td> <h3 class="word-wrap"> <a ng-href="mailto:{{u.email}}">{{u.name}}</a> </h3> </td> <td> <span ng-if="u.is_owner"> <i class="fa fa-check green" aria-hidden="true"></i> <span class="sr-only">Owner</span> </span> </td> <td class="menus nowrap"> <span uib-dropdown class="nowrap" ng-if="!u.is_owner"> <a href uib-dropdown-toggle ng-attr-id="manage_user_{{u.ou_id}}"><span data-i18n="_Tools_" data-dont-watch></span><span class="caret"></span></a> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="manage_user_{{u.ou_id}}"> <li role="menuitem"> <button type="button" class="btn btn-link" ng-click="$ctrl.remove(u)" data-i18n="_Remove_" data-dont-watch></button> </li> </ul> </span> </td> </tr> </tbody> </table> </div></script>
vendor: 1 bytes, line 2643
2643
2644<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/dashboard-container/dashboard-container.html"><div> <dashboard-signups in-dashboard="true"></dashboard-signups> <div class="br"></div> <dashboard-groups in-dashboard="true"></dashboard-groups> <div class="br"></div> <dashboard-spots in-dashboard="true"></dashboard-spots> <div class="br"></div> <dashboard-invitations in-dashboard="true"></dashboard-invitations> <div class="br"></div> <dashboard-reports in-dashboard="true"></dashboard-reports> </div></script>
vendor: 1 bytes, line 2644
2644
2645<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/invitations-list/invitations-list.html"><div class="clearfix no-animate" id="dash-invitation"> <!-- Iterate over the invitation list, saving the filtered results for use below --> <span ng-repeat="invitation in $ctrl.invList.data | filterInvitations:$ctrl.showingType | orderBy:$ctrl.sortType:$ctrl.sortReverse as invitationResults" ng-if="false" ><!-- This is a cheat to get the invitationResults variable populated, but nothing happens here... invitationResults is automatically published to $scope. --></span> <section class="panel-content clearfix" ng-if="invitationResults.length === 0"> <div class="col-xs-12 new-dashboard-info" ng-if="$ctrl.showingType !== '_ArchivedInvitations_'" data-i18n="_MyInvitationsNoInvitationsMessage_" data-dont-watch ></div> <div class="col-xs-12 new-dashboard-info" ng-if="$ctrl.showingType === '_ArchivedInvitations_'" data-i18n="_MyInvitationsNoArchivedInvitationsMessage_" data-dont-watch ></div> </section> <section ng-if="invitationResults.length > 0"> <table class="table table-hover dash-table" id="inv-table"> <thead class="sortable-header"> <tr> <th style="width: 59%" ng-click="$ctrl.setSort('sortTitle')"> <span class="inv-title" data-i18n="_Title_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th style="width: 15%; padding-left: 0;" ng-click="$ctrl.setSort('startDateSort')"> <span data-i18n="_Start_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'startDateSort' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'startDateSort' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th style="width: 20%; padding-left: 0;" ng-click="$ctrl.setSort('endDateSort')"> <span data-i18n="_End_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'endDateSort' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'endDateSort' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th style="width: 6%"> </th> </tr> </thead> <tbody class="dash-list" > <tr ng-repeat="invitation in invitationResults track by $index" ng-class="{ 'archived': invitation.archived }" class="dashboard-table" ng-class="{ 'selected' : invitation.selected }"> <td class="dash-title"> <h3 class="word-wrap" style="max-width: 37rem;" ng-class="{'past': invitation.past, 'clickable': !invitation.past && !invitation.archived}" ng-attr-title="{{ invitation.past ? '_SignupPastMessage_' : '' | i18n }}" > <a href ng-if="!invitation.past && !invitation.archived" ng-click="$ctrl.goTo(invitation)">{{invitation.activity_title}}</a> <span ng-if="invitation.past || invitation.archived">{{invitation.activity_title}}</span> </h3> </td> <td class="nowrap">{{ $ctrl.vspotFormatDate(invitation.startdate, 'short') }}</td> <td class="nowrap">{{ $ctrl.vspotFormatDate(invitation.enddate, 'short') }}</td> <td> </td> </tr> </tbody> </table> </section> </div> <div class="fr clearfix note" ng-if="$ctrl.showingType === '_UpcomingInvitations_' && $ctrl.pastInvitations === 1" style="padding: 10px"> <span>1</span> <span data-i18n="_PastInvitation_" data-dont-watch></span> </div> <div class="fr clearfix note" ng-if="$ctrl.showingType === '_UpcomingInvitations_' && $ctrl.pastInvitations > 1" style="padding: 10px"> <a href ng-click="$ctrl.setShowing('_AllInvitations_')"> <span data-i18n="_YouAlsoHave_" data-dont-watch></span> <span>{{$ctrl.pastInvitations}}</span> <span data-i18n="_PastInvitations_" data-dont-watch></span> </a> </div></script>
vendor: 1 bytes, line 2645
2645
2646<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/spots/spots.html"><div class="clearfix ng-hide" id="header_placeholder"></div> <div class="dash-panel panel-default"> <div class="dash-panel-heading clearfix" id="su_header"> <div class="row"> <div class="col-xs-3"> <div class="fl toggle-icons clickable no-animate" ng-show="$ctrl.inDashboard"> <!-- <i class="fa fa-chevron-up" ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock"></i> <i class="fa fa-chevron-down" ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock"></i> --> <img ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock" src="/imgs/icons/svg/Collapse_closed.svg" alt="Collapsed"/> <img ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock" src="/imgs/icons/svg/Collapse_arrow.svg" alt="Collapse"/> </div> <div class="fl"> <h3 class="dash-title" ng-class="{'clickable': $ctrl.inDashboard}" ng-click=" $ctrl.inDashboard ? $ctrl.goToMySignUps() : false "> <span data-i18n="_MySpotsSettings_" data-dont-watch></span> </h3> <!-- info icon --> <span class="title-help-icon" uib-popover-html="$ctrl.helpPopOver" popover-placement="right" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> </div> </div> </div> <div class="dash-panel-body" id="su_body" ng-show="$ctrl.showBlock"> <dashboard-loading class="panel-content clearfix" ng-if="!$ctrl.spotsList.$resolved"></dashboard-loading> <dashboard-spots-list ng-if="$ctrl.spotsList.$resolved" spots-list="$ctrl.spotsList"></dashboard-spots-list> <div class="panel-content clearfix" ng-if="$ctrl.spots.$resolved && $ctrl.showing.selected === '_Help_'"> <div class="col-xs-12 dashboard-info" data-i18n="_MySignUpsHelp_" data-dont-watch></div> </div> </div> <div class="panel-body" id="su_closed_placeholder" ng-show="!$ctrl.showBlock"> <div class="panel-content clearfix"> <div class="col-xs-12 new-dashboard-info" data-i18n='_DashboardPanelHiddenArrow_'></div> </div> </div> <div class="clearfix text-right" ng-if="!$ctrl.inDashboard"> <a ui-sref="dashboard">« <span data-i18n="_BackToDashboard_" data-dont-watch></span></a> </div></script>
vendor: 1 bytes, line 2646
2646
2647<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/groups-no-activities/groups-no-activities.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.close()">×</button> <h2 class="subheadline" data-i18n="_DashboardGroupsNoActivitiesTitle_" data-dont-watch></h2> </div> <div class="modal-body form-group container-fluid"> <div class="row"> <span class="col-xs-12"> <span data-i18n="_DashboardGroupsNoActivitiesMessage_" data-dont-watch></span> </span> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12"> <button data-i18n="_Ok_" data-dont-watch type="button" ng-disabled="submitted" class="btn vs1-white-blue-btn" ng-click="$ctrl.close()"></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2647
2647
2648<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signups-list/signups-list.html"><div class="m0 panel-content new-dashboard-panel clearfix" id="dash-signup"> <!-- Iterate over the signup list, saving the filtered results for use below --> <span ng-repeat="a in $ctrl.signups.data | filterSignUps:$ctrl.showing.selected | orderBy:$ctrl.sortType:$ctrl.sortReverse as signupResults" ng-if="false"><!-- This is a cheat to get the signupResults variable populated, not nothing happens here... --></span> <section class="p0 col-xs-12 new-dashboard-info" ng-if="signupResults.length === 0"> <div ng-show=" $ctrl.showing.selected === '_PinnedSignUps_' " data-i18n="_MySignupsPinnedNone_" data-dont-watch> </div> <div ng-show=" $ctrl.showing.selected === '_UpcomingSignUps_' "> <div data-i18n="_MySignUpsUpcomingNone_" data-dont-watch></div> <div class="fr clearfix note" ng-if="$ctrl.pastSignups === 1"> <span>1</span> <span data-i18n="_PastSignUp_" data-dont-watch></span> </div> <div class="fr clearfix note" ng-if="$ctrl.pastSignups > 1"> <span>{{$ctrl.pastSignups}}</span> <span data-i18n="_PastSignUps_" data-dont-watch></span> </div> </div> <div ng-show=" $ctrl.showing.selected === '_PastSignUps_' "> <div data-i18n="_MySignUpsPastNone_" data-dont-watch></div> <div class="fr clearfix note" ng-if="$ctrl.upcomingSignups === 1"> <span>1</span> <span data-i18n="_UpcomingSignUp_" data-dont-watch></span> </div> <div class="fr clearfix note" ng-if="$ctrl.upcomingSignups > 1"> <span>{{$ctrl.upcomingSignups}}</span> <span data-i18n="_UpcomingSignUps_" data-dont-watch></span> </div> </div> <div ng-show=" $ctrl.showing.selected === '_AllSignUps_' "> <div data-i18n="_DashboardNoSignupsMessage_" data-dont-watch></div> </div> <div ng-show=" $ctrl.showing.selected === '_ArchivedSignUps_' " data-i18n="_MySignUpsArchivedNone_" data-dont-watch></div> </section> <section ng-if="signupResults.length > 0"> <p class="text-danger" ng-if="$ctrl.unlockErrorMessage">{{$ctrl.unlockErrorMessage}}</p> <!-- Collapsed view --> <div ng-if="$ctrl.viewType==='collapsed'" class="sortable-header"> <div class="top-table-container" id="main-table-top"> <div class="top-checkbox"> <span style="width: 4%"> <label class="check-label" aria-label="Select Row"> <input class="form-check-input" ng-model="$ctrl.allSignupSelected" ng-click="$ctrl.selectAllSignup($ctrl.allSignupSelected)" type="checkbox" /> <span class="checkmark-list" id="top-checkmark-list"></span> </label> </span> </div> <div ng-if="!$ctrl.numSignupChecked" class="top-table-header"> <span style="width: 27.5%; max-width: 32.5rem;" ng-click="$ctrl.setSort('sortTitle')"> <span data-i18n="_Title_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg" alt="sm-closed-arrow"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg" alt="sm-collapsed-arrow"></span> </span> <span style="width: 18%"> <span data-i18n="_FillStatus_" data-dont-watch></span> </span> <span style="width: 13.5%" ng-click="$ctrl.setSort('startDateSort')"> <span data-i18n="_StartDate_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'startDateSort' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg" alt="sm-closed-arrow"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'startDateSort' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg" alt="sm-collapsed-arrow"></span> </span> <span style="width: 13.5%" ng-click="$ctrl.setSort('endDateSort')"> <span data-i18n="_EndDate_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'endDateSort' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg" alt="sm-closed-arrow"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'endDateSort' && !$ctrl.
2648sortReverse"><img class="sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg" alt="sm-collapsed-arrow"></span> </span> <span style="width: 10%"> <span> <img class="header-img" src="/imgs/icons/svg/To_do.svg" alt="To Do"/> </span> </span> <span style="width: 8.5%"> <span> <img class="header-img" src="/imgs/icons/svg/To_bring.svg" alt="To Bring"/> </span> </span> <span style="width: 8%" ng-if="$ctrl.viewType==='collapsed'"> </span> </div> <div ng-if="$ctrl.numSignupChecked" id="checked-header" class="top-table-header"> <!-- Transfer --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.signupTools.showBaton($ctrl.afterRemoval, $ctrl.checkSignupFn(['isprimary', 'complete']))" ng-if="'_ArchivedSignUps_' !== $ctrl.showing.selected" ng-disabled="$ctrl.checkSignupFn(['isprimary', 'complete']).length === 0"> <img src="/imgs/icons/svg/Transfer.svg" /> <span data-i18n="_Transfer_" data-dont-watch></span> ({{ $ctrl.checkSignupFn(['isprimary', 'complete']).length }}) </button> <!-- Publish --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.showPublish()" ng-if="'_ArchivedSignUps_' !== $ctrl.showing.selected" ng-disabled="$ctrl.checkSignupFn(['complete']).length === 0"> <img src="/imgs/icons/svg/Publish.svg" /> <span data-i18n="_Publish_" data-dont-watch></span> ({{ $ctrl.checkSignupFn(['complete']).length }}) </button> <!-- Archive (if not on the archive screen, user is primary, and activity is not locked) --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.showArchive()" ng-if="'_ArchivedSignUps_' !== $ctrl.showing.selected" ng-disabled="$ctrl.checkSignupFn(['isprimary', $ctrl.notOccupied], true).length === 0"> <img src="/imgs/icons/svg/Archive.svg" /> <span data-i18n="_Archive_" data-dont-watch></span> ({{ $ctrl.checkSignupFn(['isprimary', $ctrl.notOccupied], true).length }}) </button> <!-- Restore (if on the archive screen, and user is primary) --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.restore()" ng-if="'_ArchivedSignUps_' === $ctrl.showing.selected" ng-disabled="$ctrl.checkSignupFn(['isprimary']).length === 0"> <i class="fa fa-upload" aria-hidden="true"></i> <span data-i18n="_Restore_" data-dont-watch></span> ({{ $ctrl.checkSignupFn(['isprimary']).length }}) </button> <!-- Delete (if on the archive screen, and user is primary) --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.showDelete()" ng-if="'_ArchivedSignUps_' === $ctrl.showing.selected" ng-disabled="$ctrl.checkSignupFn(['isprimary']).length === 0"> <i class="fa fa-trash-o" aria-hidden="true"></i> <span data-i18n="_Delete_" data-dont-watch></span> ({{ $ctrl.checkSignupFn(['isprimary']).length }}) </button> <!-- Lock --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.lockSignups(true)" ng-if="$ctrl.userHasLocking && '_ArchivedSignUps_' !== $ctrl.showing.selected" ng-disabled="$ctrl.checkSignupFn([$ctrl.signupTools.notLocked]).length === 0"><img class="locked-icon" src="/imgs/icons/svg/Lock.svg"> <span data-i18n="_Lock_" data-dont-watch></span> <!-- ({{ $ctrl.bulkSelection.getChecked([$ctrl.signupTools.notLocked]).length }}) --> ({{ $ctrl.checkSignupFn([$ctrl.signupTools.notLocked]).length }}) </button> <!-- Unlock --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.lockSignups(false)" ng-if="$ctrl.userHasLocking && '_ArchivedSignUps_' !== $ctrl.showing.selected" ng-disabled="$ctrl.checkSignupFn([$ctrl.signupTools.isLocked]).length === 0"> <img class="locked-icon" src="/imgs/icons/svg/Unlock.svg"> <span data-i18n="_Unlock_" data-dont-watch></span> <!-- ({{ $ctrl.bulkSelection.getChecked([$ctrl.signupTools.isLocked]).length }}) --> ({{ $ctrl.checkSignupFn([$ctrl.signupTools.isLocked]).length }}) </button> </div> </div> </div> <table class="table table-hover dash-table"> <tbody ng-if="$ctrl.viewType==='collapsed'" class="signup-list-collapsed"> <tr ng-repeat="a in signupResults track by $index" ng-if="$ctrl.viewType==='collapsed'" class="signup-list-collapsed word-wrap" ng-class="{'archived': a.archived}" ng-attr-id="signup_{{a.id}}"> <td style="width: 3rem" class="icon"> <label class="check-label" aria-label="Select Row"> <input class="form-check-input" ng-model="a.selected" ng-change="$ctrl.selectedSignup(a)" type="checkbox" /> <span class="checkmark-list"></span> </label> </td> <td class="icon"> <span class="clickable star" ng-if="!a.archived && !a.pinned" ng-disabled="a.pinningInProgress" uib-popover-html="$ctrl.activityPinningPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"> <img ng-click="$ctrl.togglePin(a)" src="/imgs/icons/svg/Favorite.svg" alt="Favorite"/>
2648 </span> <span class="clickable star" ng-if="!a.archived && a.pinned" ng-disabled="a.pinningInProgress" uib-popover-html="$ctrl.activityPinningPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"> <img ng-click="$ctrl.togglePin(a)" class="yellow-star-list" src="/imgs/icons/svg/Favorite_yellow.svg" alt="Favorite"/> </span> </td> <td style="width: 26%" class="dash-title"> <!-- User has premium locking: --> <span class="clickable" ng-if="$ctrl.userHasLocking && a.participant_lock.locked" uib-popover-html="$ctrl.activityLockedPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'" ng-click="$ctrl.lockSignups(false, a)"><img class="locked-icon" src="/imgs/icons/svg/Lock_Red.svg"> </span> <!-- User does not have premium locking: --> <span ng-if="!$ctrl.userHasLocking && a.participant_lock.locked" uib-popover-html="$ctrl.activityLockedPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"><img class="locked-icon" src="/imgs/icons/svg/Lock_Red.svg"> </span> <!-- Assistant organizer (blue): --> <span class="clearfix info-icon" ng-if="!a.isprimary"> <img src="/imgs/icons/svg/Assist_Headset.svg" class="locked-icon" alt="Assistant Organizer" uib-popover-html="$ctrl.asstOrgNotePopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"> </span> <!-- In use (Occupied) by another organizer (red): --> <span class="clearfix alert-icon" ng-if="$ctrl.signupTools.isOccupied(a)"> <span class="animated-dots" ng-show="a.unlocking"> <span class="one">.</span><span class="two">.</span><span class="three">.</span> </span> <img src="/imgs/icons/svg/Flag.svg" class="locked-icon clickable" alt="Flagged" uib-popover-html="a.lockedMessage" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'" ng-click="$ctrl.signupTools.showOccupied(a)" ng-hide="a.unlocking"> </span> <h3 ng-attr-title="{{a.activity_title}}" ng-class="{ 'clickable': !a.archived }" ng-click="$ctrl.signupTools.editSignup(a, null, $event)">{{a.activity_title}}</h3> </td> <td style="width: 16%"> <div class="fill-status" ng-if="!a.archived && a.complete && a.kind !== 'contribonly'"> <span ng-if="a.jobstotal < 0 || a.bringstotal < 0"> <span ng-if="(a.jobstotalassignments + a.bringstotalassignments) > 1">{{a.jobstotalassignments + a.bringstotalassignments}} <span data-i18n="_SpotsFilled_" data-dont-watch></span> </span> <span ng-if="(a.jobstotalassignments + a.bringstotalassignments) === 1">{{a.jobstotalassignments + a.bringstotalassignments}} <span data-i18n="_SpotFilled_" data-dont-watch></span> </span> </span> <span ng-if="a.jobstotal >= 0 && a.bringstotal >= 0"> <div ng-bind="progressPercent(a, 'percent')"></div> <div class="progress"> <div class="progress-bar" role="progressbar" ng-style="{'width': progressPercent(a, 'progress') + '%'}" aria-valuemin="0" aria-valuemax="100"></div> </div> </span> </div> </td> <td style="width: 12%" class="dates"> <date-range ng-if="a.startdate" start-date="a.startdate" date-format="'MMM D, YYYY'"></date-range> </td> <td style="width: 12%" class="dates"> <date-range start-date="a.enddate" date-format="'MMM D, YYYY'"></date-range> </td> <td style="width: 9%" class="jobs"> <div ng-if="!a.archived && a.complete && a.kind !== 'contribonly'"> <span ng-if="a.jobstotal > 0">{{a.jobstotalassignments}}/{{a.jobstotal}}</span> <span ng-if="a.jobstotalassignments >= 0 && a.jobstotal < 0">{{a.jobstotalassignments}}</span> </div> </td> <td style="width: 9%" class="jobs"> <div ng-if="!a.archived && a.complete && a.kind !== 'contribonly'"> <span ng-if="a.bringstotal > 0">{{a.bringstotalassignments}}/{{a.bringstotal}}</span> <span ng-if="a.bringstotalassignments >= 0 && a.bringstotal < 0">{{a.bringstotalassignments}}</span> </div> </td> <td style="width: 6rem" class="fr menus icon"> <i class="fa menu-icons" ng-class="{'vs-invisible': !a.showLinkSpinner && !a.showArchiveSpinner, 'fa-spinner fa-pulse': a.showLinkSpinner || a.showArchiveSpinner}"></i> <!-- Edit icon --> <span class="edit-icons" ng-if="!a.archived" uib-dropdown-toggle> <img ng-if="!a.complete" ng-click="$ctrl.signupTools.editSignup(a)" src="/imgs/icons/svg/Edit.svg" alt="Edit"/> <span class="edit-icons" uib-dropdown ng-if="a.complete"> <img uib-dropdown-toggle ng-attr-id="edit_signup_{{a.id}}" src="/imgs/icons/svg/Edit.svg" alt="Edit"/> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="edit_signup_{{a.id}}"> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'invites/edit')" data-i18n="_DashLinkInvite_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'reports')" data-i18n="_DashLinkReports_" data-dont-watch></a></li> <li role="menuitem" ng-if="a.kind !== 'contribonly'"><a href ng-click="$ctrl.signupTools.editSignup(a, 'jobs/edit')" data-i18n="_DashLinkSpots_" data-dont-watch></a></li> <li role="menuitem" ng-if="a.kind === 'contribonly'"><a href ng-click="$ctrl.signupTools.editSignup(a, 'contributions/edit')" data-i18n="_DashLinkContributions_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'participants')" data-i18n="_Participants_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'messages')" data-i18n="_Messaging_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'details/edit')" data-i18n="_Details_" data-dont-watch></a></li> <li role="menuitem" ng-if="a.kind !== 'contribonly' && a.wepayIsAuthorized"><a href ng-click="$ctrl.signupTools.editSignup(a, 'contributions/edit')" data-i18n="_Contributions_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'settings')" data-i18n="_Settings_" data-dont-watch></a></li> </ul> </span> </span> <!-- Manage icon --> <span class="edit-icons" uib-dropdown> <img src="/imgs/icons/svg/Settings.svg" ng-attr-id="manage_signup_{{a.id}}" alt="Settings" uib-dropdown-toggle /> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="manage_signup_{{a.id}}"> <li role="menuitem" ng-if="$ctrl.userHasLocking && !a.participant_lock.locked && !a.archived"> <button type="button" class="btn btn-link" ng-click="$ctrl.lockSignups(true, a)" data-i18n="_Lock_" data-dont-watch> </button> </li> <li role="menuitem" ng-if="$ctrl.userHasLocking && a.participant_lock.locked && !a.archived"> <button type="button" class="btn btn-link" ng-click="$ctrl.lockSignups(false, a)" data-i18n="_Unlock_" data-dont-watch> </button> </li> <li role="menuitem" ng-if="!a.archived && a.kind !== 'contribonly'"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || !a.complete" ng-click="$ctrl.signupTools.showBaton($ctrl.afterRemoval, [a])" data-i18n="_PassTheBaton_" data-dont-watch></button> </li> <li role="menuitem" ng-if="!a.archived && a.kind !== 'contribonly'"> <button type="button" class="btn btn-link" ng-disabled="!a.complete" ng-click="$ctrl.signupTools.showDuplicate(a, false,false)" data-i18n="_Duplicate_" data-dont-watch></button> </li> <li role="menuitem" ng-if="!a.archived && a.kind !== 'contribonly' && a.isprimary"> <button type="button" class="btn btn-link" ng-disabled="!a.complete" ng-click="$ctrl.signupTools.showDuplicate(a, false,true)" data-i18n="_Reset_" data-dont-watch></button> </li> <li role="menuitem" ng-if="!a.archived"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || a.showArchiveSpinner" ng-click="$ctrl.showArchive(a)" data-i18n="_Archive_" data-dont-watch></button> </li> <li role="menuitem" ng-if="a.archived"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || a.showArchiveSpinner" ng-click="$ctrl.restore(a)" data-i18n="_Restore_" data-dont-watch></button> </li> <li role="menuitem" ng-if="a.archived"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || a.showArchiveSpinner" ng-click="$ctrl.showDelete(a)" data-i18n="_Delete_" data-dont-watch></button> </li> <li role="menuitem"><a href ng-click="$ctrl.view(a, $event)" data-i18n="_PreView_" class="pop-up" ng-disabled="!a.complete || a.showLinkSpinner" data-dont-watch></a></li> </ul> </span> </td> </tr> </tbody> </table> <!-- Expanded view --> <div ng-if="$ctrl.viewType==='expanded'" class="expanded-container"> <div class="expanded-inner" ng-mouseenter="a.$ctrl.showOverlay = true" ng-mouseleave="a.$ctrl.showOverlay = false" ng-repeat="a in signupResults | limitTo : pageSize : (currentPage - 1) * pageSize track by $index"> <div class="action-icons"> <span> <span class="clickable" ng-if="!a.archived && !a.pinned" ng-click="$ctrl.togglePin(a)" ng-disabled="a.pinningInProgress" uib-popover-html="$ctrl.activityPinningPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"> <img src="/imgs/icons/svg/Favorite_white.svg" /> </span> <span class="clickable" ng-if="!a.archived && a.pinned" ng-click="$ctrl.togglePin(a)" ng-disabled="a.pinningInProgress" uib-popover-html="$ctrl.activityPinningPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"> <img class="yellow-star" src="/imgs/icons/svg/Favorite_yellow.svg" alt="Favorite"/>
2648 </span> </span> <span> <!-- Edit icon --> <span class="nowrap" ng-if="!a.archived" uib-dropdown-toggle> <img ng-if="!a.complete" ng-click="$ctrl.signupTools.editSignup(a)" src="/imgs/icons/svg/Edit_white.svg" /> <span class="nowrap" uib-dropdown ng-if="a.complete"> <img uib-dropdown-toggle ng-attr-id="edit_signup_{{a.id}}" src="/imgs/icons/svg/Edit_white.svg" /> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="edit_signup_{{a.id}}"> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'invites/edit')" data-i18n="_DashLinkInvite_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'reports')" data-i18n="_DashLinkReports_" data-dont-watch></a></li> <li role="menuitem" ng-if="a.kind !== 'contribonly'"><a href ng-click="$ctrl.signupTools.editSignup(a, 'jobs/edit')" data-i18n="_DashLinkSpots_" data-dont-watch></a></li> <li role="menuitem" ng-if="a.kind === 'contribonly'"><a href ng-click="$ctrl.signupTools.editSignup(a, 'contributions/edit')" data-i18n="_DashLinkContributions_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'participants')" data-i18n="_Participants_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'messages')" data-i18n="_Messaging_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'details/edit')" data-i18n="_Details_" data-dont-watch></a></li> <li role="menuitem" ng-if="a.kind !== 'contribonly' && a.wepayIsAuthorized"><a href ng-click="$ctrl.signupTools.editSignup(a, 'contributions/edit')" data-i18n="_Contributions_" data-dont-watch></a></li> <li role="menuitem"><a href ng-click="$ctrl.signupTools.editSignup(a, 'settings')" data-i18n="_Settings_" data-dont-watch></a></li> </ul> </span> </span> <!-- Manage icon --> <span class="nowrap" uib-dropdown> <img src="/imgs/icons/svg/Settings_white.svg" ng-attr-id="manage_signup_{{a.id}}" uib-dropdown-toggle /> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="manage_signup_{{a.id}}"> <li role="menuitem" ng-if="$ctrl.userHasLocking && !a.participant_lock.locked && !a.archived"> <button type="button" class="btn btn-link" ng-click="$ctrl.lockSignups(true, a)" data-i18n="_Lock_" data-dont-watch> </button> </li> <li role="menuitem" ng-if="$ctrl.userHasLocking && a.participant_lock.locked && !a.archived"> <button type="button" class="btn btn-link" ng-click="$ctrl.lockSignups(false, a)" data-i18n="_Unlock_" data-dont-watch> </button> </li> <li role="menuitem" ng-if="!a.archived && a.kind !== 'contribonly'"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || !a.complete" ng-click="$ctrl.signupTools.showBaton($ctrl.afterRemoval, [a])" data-i18n="_PassTheBaton_" data-dont-watch></button> </li> <li role="menuitem" ng-if="!a.archived && a.kind !== 'contribonly'"> <button type="button" class="btn btn-link" ng-disabled="!a.complete" ng-click="$ctrl.signupTools.showDuplicate(a, false,false)" data-i18n="_Duplicate_" data-dont-watch></button> </li> <li role="menuitem" ng-if="!a.archived && a.kind !== 'contribonly' && a.isprimary"> <button type="button" class="btn btn-link" ng-disabled="!a.complete" ng-click="$ctrl.signupTools.showDuplicate(a, false,true)" data-i18n="_Reset_" data-dont-watch></button> </li> <li role="menuitem" ng-if="!a.archived"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || a.showArchiveSpinner" ng-click="$ctrl.showArchive(a)" data-i18n="_Archive_" data-dont-watch></button> </li> <li role="menuitem" ng-if="a.archived"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || a.showArchiveSpinner" ng-click="$ctrl.restore(a)" data-i18n="_Restore_" data-dont-watch></button> </li> <li role="menuitem" ng-if="a.archived"> <button type="button" class="btn btn-link" ng-disabled="!a.isprimary || a.showArchiveSpinner" ng-click="$ctrl.showDelete(a)" data-i18n="_Delete_" data-dont-watch></button> </li> <li role="menuitem"><a href ng-click="$ctrl.view(a, $event)" data-i18n="_PreView_" class="pop-up" ng-disabled="!a.complete || a.showLinkSpinner" data-dont-watch></a></li> </ul> </span> </span> </div> <div class="expanded-img img" ng-style="{'background-image': 'url(/client/themes/{{a.theme.folder}}/imgs/wallpaper-thumb.jpg)'}"> </div> <div class="overlay" ng-show="a.$ctrl.showOverlay"></div> <div class="overlay-bg"></div> <div class="signup-percent" ng-click="$ctrl.signupTools.editSignup(a, null, $event)"> <svg ng-attr-width="{{$ctrl.svg_elem.width}}" ng-attr-height="{{$ctrl.svg_elem.height}}"> <defs ng-if="a.theme.folder"> <pattern ng-attr-id="bgimage_{{$index}}" x="0" y="0" patternUnits="userSpaceOnUse" ng-attr-width="{{$ctrl.svg_elem.width}}" ng-attr-height="{{$ctrl.svg_elem.height}}"> <image x="0" y="0" ng-attr-width="{{$ctrl.svg_elem.width}}" ng-attr-height="{{$ctrl.svg_elem.height}}" xlink:href=""></image> </pattern> </defs> <circle class="fill-circle" ng-attr-cx="{{$ctrl.svg_elem.centerX}}" ng-attr-cy="{{$ctrl.svg_elem.centerY}}" ng-attr-r="{{$ctrl.svg_elem.radius}}" stroke="#DCFFC6" ng-attr-stroke-width="{{$ctrl.svg_elem.strokeWidth}}" fill="transparent" fill-opacity="0.5"> </circle> <circle ng-if="a.kind !== 'contribonly' && a.total > 0 && a.totalassignments > 0 && $ctrl.get_percentage(a, false) >= 100" ng-attr-cx="{{$ctrl.svg_elem.centerX}}" ng-attr-cy="{{$ctrl.svg_elem.centerY}}" ng-attr-r="{{$ctrl.svg_elem.radius}}" stroke="DCFFC6" ng-attr-stroke-width="{{$ctrl.svg_elem.strokeWidth}}" fill="#000" fill-opacity="0"></circle> <path ng-if="a.kind !== 'contribonly' && a.total > 0 && a.totalassignments > 0 && $ctrl.get_percentage(a, false) <= 99" ng-attr-d="{{$ctrl.get_d(a)}}" stroke="#51D100" stroke-linecap="round" ng-attr-stroke-width="{{$ctrl.svg_elem.strokeWidth}}" fill="#000" fill-opacity="0"></path> <circle ng-if="a.kind === 'contribonly' && a.wampumTotal > 0 && a.wampum_goal > 0 && $ctrl.get_percentage(a, false) >= 100" ng-attr-cx="{{$ctrl.svg_elem.centerX}}" ng-attr-cy="{{$ctrl.svg_elem.centerY}}" ng-attr-r="{{$ctrl.svg_elem.radius}}" stroke="#51D100" stroke-linecap="round" ng-attr-stroke-width="{{$ctrl.svg_elem.strokeWidth}}" fill="#000" fill-opacity="0.5"> </circle> <path ng-if="a.kind === 'contribonly' && a.wampumTotal > 0 && a.wampum_goal > 0 && $ctrl.get_percentage(a, false) <= 99" ng-attr-d="{{$ctrl.get_d(a)}}" stroke="#51D100" stroke-linecap="round" ng-attr-stroke-width="{{$ctrl.svg_elem.strokeWidth}}" fill="#000" fill-opacity="0.5"></path> <circle ng-if="a.theme.folder" ng-attr-cx="{{$ctrl.svg_elem.centerX}}" ng-attr-cy="{{$ctrl.svg_elem.centerY}}" ng-attr-r="{{$ctrl.svg_elem.imgRadius}}" ng-attr-fill="url(#bgimage_{{$index}})" fill="#000" fill-opacity="0.5"></circle> </svg> <div class="signup-percent-text error clearfix" ng-if="!a.complete"> <i class="fa fa-exclamation-triangle text-danger clickable" uib-popover-html="$ctrl.activityIncompletePopOver" popover-append-to-body="true" popover-placement="right" popover-trigger="'mouseenter'" ng-click="$ctrl.signupTools.editSignup(a)"></i> <div class="error-message" data-i18n="_ActivityIncompleteMessage_" data-dont-watch></div> </div> <div class="signup-percent-num clearfix" ng-if="a.complete && a.kind !== 'contribonly'">
2648 <div ng-if="a.total !== -1"> <span ng-class="{'inactive': a.totalassignments === 0, 'active': a.totalassignments > 0}" ng-bind="$ctrl.get_percentage(a, true)"></span> </div> <div ng-if="a.total === -1"> <span ng-class="{'inactive': a.totalassignments === 0, 'active': a.totalassignments > 0}">{{ a.totalassignments | number:0 }}</span> </div> <!-- <div class="signed-up percent-filled" data-i18n="_Filled_" data-dont-watch></div> --> </div> <div class="signup-percent-contrib clearfix" ng-class="{ 'contribonly': !a.wampumError, 'no-goal': !a.wampum_goal && !a.wampumError, 'error': !!a.wampumError }" ng-if="a.complete && a.wepayIsAuthorized && a.kind === 'contribonly'"> <div ng-show="!a.wampumError && a.wampumTotal === null" class="contrib-amt"> <span><i class="fa fa-spinner fa-pulse inactive"></i></span> </div> <div ng-show="!a.wampumError && a.wampumTotal !== null" class="contrib-amt"> <span ng-class="{'inactive': a.wampumTotal === 0, 'active': a.wampumTotal > 0}">{{ a.wampumTotal | currency:'$':0 }}</span> </div> <div class="contrib" ng-show="!!a.wampumError"> <i class="fa fa-exclamation-triangle text-danger" uib-popover-html="a.wampumError" popover-append-to-body="true" popover-placement="right" popover-trigger="'mouseenter'"></i> <div class="contrib-goal" ng-show="a.wampum_goal"> <span data-i18n="_of_"></span> {{ a.wampum_goal | currency:'$':0 }} </div> </div> </div> </div> <!-- bottom action icons --> <div class="bottom-action-icons"> <div class="d-flex mt-1" style="margin-left: .5rem;"> <!-- Assistant organizer --> <span class="clearfix info-icon" ng-if="!a.isprimary"> <img src="/imgs/icons/svg/Assist_Headset.svg" class="locked-icon" alt="Assistant Organizer" uib-popover-html="$ctrl.asstOrgNotePopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"> </span> <!-- In use (Occupied) by another organizer: --> <span class="clearfix alert-icon" ng-if="$ctrl.signupTools.isOccupied(a)"> <span class="animated-dots" ng-show="a.unlocking"> <span class="one">.</span><span class="two">.</span><span class="three">.</span> </span> <img src="/imgs/icons/svg/Flag.svg" class="locked-icon clickable" alt="Flagged" uib-popover-html="a.lockedMessage" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'" ng-click="$ctrl.signupTools.showOccupied(a)" ng-hide="a.unlocking"> </span> </div> <!-- User has premium locking: --> <div class="clickable expanded-lock" ng-if="$ctrl.userHasLocking && a.participant_lock.locked" uib-popover-html="$ctrl.activityLockedPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'" ng-click="$ctrl.lockSignups(false, a)"><img class="locked-icon" src="/imgs/icons/svg/Lock_Red_White_Border.svg"> </div> <!-- User has premium locking: --> <div class="expanded-lock" ng-if="!$ctrl.userHasLocking && a.participant_lock.locked" uib-popover-html="$ctrl.activityLockedPopOver" popover-append-to-body="true" popover-placement="top" popover-trigger="'mouseenter'"><img class="locked-icon" src="/imgs/icons/svg/Lock_Red_White_Border.svg"> </div> </div> <div class="signup-info" ng-click="$ctrl.signupTools.editSignup(a, null, $event)"> <div class="title">{{a.activity_title}}</div> <div class="expanded-info"> <span ng-if="a.startdate && a.startdate !='2038/01/01'" class="expanded-label">Start</span> <span ng-if="a.startdate"><date-range start-date="a.startdate" date-format="'MMM D, YYYY'"></date-range></span> <!-- <span ng-if="!a.startdate || a.startdate ==='2038/01/01'">anytime</span> --> </div> <div class="expanded-info"> <span ng-if="a.enddate && a.enddate !='2038/01/01'" class="expanded-label">End</span> <span><date-range start-date="a.enddate" date-format="'MMM D, YYYY'"></date-range></span> <!-- <span ng-if="!a.enddate || a.enddate ==='2038/01/01'">anytime</span> --> </div> <div class="expanded-info icon" ng-if="a.jobstotal != 0"> <span class="expanded-label"><img src="/imgs/icons/svg/To_do.svg" alt="To Do"/></span> <span ng-if="a.jobstotal > 0"><span class="expanded-info-num">{{a.jobstotalassignments}}</span> of {{a.jobstotal}}</span> <span ng-if="a.jobstotalassignments >= 0 && a.jobstotal < 0" class="expanded-info-num">{{a.jobstotalassignments}}</span> </div> <div class="expanded-info icon" ng-if="a.bringstotal != 0"> <span class="expanded-label"><img src="/imgs/icons/svg/To_bring.svg" alt="To Bring"/></span> <span ng-if="a.bringstotal > 0"><span class="expanded-info-num">{{a.bringstotalassignments}}</span> of {{a.bringstotal}}</span> <span ng-if="a.bringstotalassignments >= 0 && a.bringstotal < 0" class="expanded-info-num">{{a.bringstotalassignments}}</span> </div> <!-- <div class="expanded-desc">{{a.description}}</div> --> <div class="expanded-desc"><span ng-bind-html="a.description"></span></div> </div> </div> <div ng-show="$ctrl.viewType==='expanded'" class="expanded-inner" id="create-new"> <a href="/Activities#/create"> <button id="dashboard_create_button" class="orange-btn" data-i18n="_CreateNewSignUpButton_" data-dont-watch popover-title="{{ $ctrl.pageData.welcomeTitle }}" uib-popover="{{ $ctrl.pageData.welcomeMessage }}" popover-is-open="$ctrl.pageData.showWelcomeMessage" popover-trigger="'none'" popover-append-to-body></button> </a> </div> </div> <div ng-show="$ctrl.viewType==='expanded'" style="text-align: center;"> <ul uib-pagination total-items="signupResults.length" ng-model="currentPage" items-per-page="pageSize"></ul> </div> </section> <div class="fr clearfix note" ng-if="$ctrl.showing.selected === '_UpcomingSignUps_' && $ctrl.pastSignups === 1" style="padding: 10px"> <a href ng-click="$ctrl.setShowing('_PastSignUps_')"> <span data-i18n="_YouAlsoHave_" data-dont-watch></span> <span>1</span> <span data-i18n="_PastSignUp_" data-dont-watch></span> </a> </div> <div class="fr clearfix note" ng-if="$ctrl.showing.selected === '_UpcomingSignUps_' && $ctrl.pastSignups > 1" style="padding: 10px"> <a href ng-click="$ctrl.setShowing('_PastSignUps_')"> <span data-i18n="_YouAlsoHave_" data-dont-watch></span> <span>{{$ctrl.pastSignups}}</span> <span data-i18n="_PastSignUps_" data-dont-watch></span> </a> </div> <div class="fr clearfix note" ng-if="$ctrl.showing.selected === '_PastSignUps_' && $ctrl.upcomingSignups === 1" style="padding: 10px"> <a href ng-click="$ctrl.setShowing('_UpcomingSignUps_')"> <span data-i18n="_YouAlsoHave_" data-dont-watch></span> <span>1</span> <span data-i18n="_UpcomingSignUp_" data-dont-watch></span> </a> </div> <div class="fr clearfix note" ng-if="$ctrl.showing.selected === '_PastSignUps_' && $ctrl.upcomingSignups > 1" style="padding: 10px"> <a href ng-click="$ctrl.setShowing('_UpcomingSignUps_')"> <span data-i18n="_YouAlsoHave_" data-dont-watch></span> <span>{{$ctrl.upcomingSignups}}</span> <span data-i18n="_UpcomingSignUps_" data-dont-watch></span> </a> </div> </div></script>
vendor: 1 bytes, line 2648
2648
2649<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/invitation-archive/invitation-archive.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.cancel()">×</button> <h2 ng-if="$ctrl.invitations.length === 1" class="subheadline" data-i18n="_ArchiveInvitation_" data-dont-watch></h2> <h2 ng-if="$ctrl.invitations.length > 1" class="subheadline" data-i18n="_ArchiveInvitations_" data-dont-watch></h2> </div> <div class="modal-body form-group container-fluid"> <div class="row"> <div class="col-xs-12"> <p ng-if="$ctrl.invitations.length === 1" data-i18n="_DashboardArchiveInvitationConfirmOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="$ctrl.invitations.length === 2" data-i18n="_DashboardArchiveInvitationConfirmTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="$ctrl.invitations.length === 3" data-i18n="_DashboardArchiveInvitationConfirmThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="$ctrl.invitations.length > 3" data-i18n="_DashboardArchiveInvitationConfirmThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> <p data-i18n="_DashboardArchiveInvitationConfirm2_"></p> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" ng-if="$ctrl.showSuccess" data-i18n="{{$ctrl.successMessage}}|{{ $ctrl.titles[0] }}" ></div> <div class="alert alert-danger" role="alert" ng-if="$ctrl.showError" data-i18n=" {{ $ctrl.errorMessage }} " ></div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" data-i18n="_Close_" data-dont-watch></button> </div> <div class="col-xs-6 nowrap no-animate"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.showLoading"></i> <button type="button" class="btn btn-primary" ng-click="$ctrl.archiveInvitations()" ng-show="$ctrl.showArchiveBtn" ng-disabled="$ctrl.showLoading" data-i18n="_Archive_" data-dont-watch autofocus ></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2649
2649
2650<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/dashboard-top/dashboard-top.html"><div id="dashboard_top" class="clearfix ng-hide" ng-show="$ctrl.show"> <div class="row"> <div ng-class="{ 'col-xs-12': !$ctrl.showTopButton, 'col-xs-6': $ctrl.showTopButton }"> <!-- <h1 class="vs1-headline" data-i18n="{{ $ctrl.title }}"></h1> --> </div> <!-- <div class="col-xs-6 text-right" ng-if="$ctrl.showCreateSignUpsButton"> <a href="/Activities#/create"> <button id="dashboard_get_started_button" class="vs1-orangebtn" data-i18n="_CreateNewSignUpButton_" data-dont-watch popover-title="{{ $ctrl.pageData.welcomeTitle }}" uib-popover="{{ $ctrl.pageData.welcomeMessage }}" popover-is-open="$ctrl.pageData.showWelcomeMessage" popover-trigger="'none'" popover-append-to-body ></button> </a> </div> --> <!-- <div class="col-xs-6 text-right" ng-show="$ctrl.runGroupCheck && $ctrl.onMyGroupsPage()"> <a href ng-click="$ctrl.addGroup()" ng-show="$ctrl.groupsCount < $ctrl.allowedGroups"> <button class="vs1-orangebtn" data-i18n="_CreateGroupPage_" data-dont-watch ></button> </a> <upgrade-prompt ng-if="$ctrl.groupsCount >= $ctrl.allowedGroups" user="$ctrl.user" feature="GROUP_PAGES" ></upgrade-prompt> </div> <div class="col-xs-6 text-right" ng-show="$ctrl.onMyReportsPage() && $ctrl.userAdvancedReportingEnabled"> <a href="/su#/reports"> <button type="button" class="vs1-orangebtn" data-i18n="_CreateNewReportButton_" data-dont-watch ></button> </a> </div> --> </div> </div></script>
vendor: 1 bytes, line 2650
2650
2651<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/loading/loading.html"><div class="col-xs-12 dashboard-info"> <h2><span data-i18n="_LoadingDotDotDot_" data-dont-watch></span></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" alt=""> </div></script>
vendor: 1 bytes, line 2651
2651
2652<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signup-baton/signup-baton.html"><form method="post" class="form-horizontal" name="transfer" vspot-validation="$ctrl.transferActivities" accept-charset="utf-8" novalidate role="form"> <div class="modal-header"> <button type="button" class="close" data-ng-click="$ctrl.cancel()">×</button> <h2 data-i18n="_PassTheBaton_" data-dont-watch class="modal-title"></h2> </div> <div class="modal-body clearfix"> <div class="row" ng-hide="$ctrl.showSuccess"> <div class="col-xs-12"> <p ng-if="$ctrl.items.length === 1" data-i18n="_DashboardBulkActionBatonOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="$ctrl.items.length === 2" data-i18n="_DashboardBulkActionBatonTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="$ctrl.items.length === 3" data-i18n="_DashboardBulkActionBatonThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="$ctrl.items.length > 3" data-i18n="_DashboardBulkActionBatonThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> </div> </div> <div class="row" ng-hide="$ctrl.showSuccess"> <div class="col-xs-12"> <label for="neworganizer"><span data-i18n="_CopyTransferCopyNewOrgEmail_" data-dont-watch></span> <span class="required">*</span></label> <input autofocus type="email" class="form-control" id="neworganizer" name="neworganizer" data-i18n-attr="_CopyTransferCopyNewOrgEmail_|placeholder" ng-model="$ctrl.newOrganizer" required validation-required="_COPY_TRANSFER_EMAIL_REQUIRED_" > <div class="note" data-i18n="_CopyTransferTransferRegisteredNote_" data-dont-watch></div> <div ng-if="$ctrl.items.length === 1" class="note" data-i18n="_CopyTransferTransferAccessNote_" data-dont-watch></div> <div ng-if="$ctrl.items.length > 1" class="note" data-i18n="_CopyTransferTransferAccessNotePlural_" data-dont-watch></div> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" ng-if="$ctrl.showSuccessSelf" > <span data-i18n="_TransferSelf_"></span> </div> <div class="alert alert-success" role="alert" ng-if="$ctrl.showSuccess" > <span data-i18n="_CopyTransferTransferSuccess_|{{ $ctrl.newOrganizer }}"></span> </div> <div ng-if="$ctrl.showError"> <div class="alert alert-danger" role="alert" ng-show="$ctrl.errorCode" data-i18n="{{ $ctrl.errorCode }}" ></div> <div class="alert alert-danger" role="alert" ng-show="$ctrl.errorMessage" ng-bind-html="$ctrl.errorMessage" ></div> </div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" data-i18n="_Close_" data-dont-watch></button> </div> <div class="col-xs-6 nowrap no-animate"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.showLoading"></i> <button type="submit" class="btn btn-primary" ng-hide="$ctrl.transferred.length" ng-disabled="$ctrl.showLoading" data-i18n="_Transfer_" data-dont-watch ></button> </div> </div> </div> </form></script>
vendor: 1 bytes, line 2652
2652
2653<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/spots-list/spots-list.html"><div class="panel-content new-dashboard-panel new-dashboard-info" id="dash-spots"> <div ng-if="$ctrl.spotsData.length === 0" class="new-dashboard-info clearfix"> <h2 data-i18n="_NoSpotsHeader_" data-dont-watch></h2> <p data-i18n="_NoSpots_" data-dont-watch></p> </div> <div ng-if="$ctrl.spotsData.length > 0" class="clearfix no-animate"> <div class="sortable-header"> <div class="top-table-container" id="main-table-top"> <div class="top-table-header"> <span style="width: 33%" ng-click="$ctrl.setSort('sortTitle')"> <span data-i18n="_Spots_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 25%" ng-click="$ctrl.setSort('activity_title')"> <span data-i18n="_SignUp_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'activity_title' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'activity_title' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 13%" ng-click="$ctrl.setSort('edate')"> <span data-i18n="_Date_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'edate' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'edate' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 13%" ng-click="$ctrl.setSort('jobstarttime')"> <span data-i18n="_Time_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'jobstarttime' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'jobstarttime' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 8%"> <span> <img class="header-img" src="/imgs/icons/svg/To_do.svg" alt="To Do"/> </span> </span> <span style="width: 5%"> <span> <img class="header-img" src="/imgs/icons/svg/To_bring.svg" alt="To Bring"/> </span> </span> </div> </div> </div> <table class="table table-hover dash-table" id="group-table" ng-if="$ctrl.spotsData.length > 0"> <tbody> <tr ng-repeat="spots in $ctrl.spotsData | orderBy:$ctrl.sortType:$ctrl.sortReverse as spotsResults" id="spots_{{$index}}" class="dashboard-table dash-list" ng-class="{ 'selected' : spots.selected }"> <td style="width: 9%;"> </td> <td style="width: 30%; max-width: 28rem;" class="dash-title"> <h3 class="word-wrap"> <a ng-href="{{spots.volunteer_link}}" ng-click="$ctrl.editGroup(group.key)" class="pop-up" ng-class="{'submitting': $ctrl.submitting}"> {{spots.jobname}} </a> </h3> </td> <td style="width: 23%; max-width: 19rem;">{{spots.activity_title}}</td> <td style="width: 12%; max-width: 12rem;"; class="dates"> <date-range ng-if="spots.edate" start-date="spots.edate" date-format="'MMM D, YYYY'"></date-range> </td> <td style="width: 12%"><span>{{spots.jobstarttime}}</span> </td> <td style="width: 7%; max-width: 6rem;"> <!-- to do --> <span ng-if="spots.jobtype === 0">{{spots.jassquantity}}</span> </td> <td style="width: 7%;max-width: 6rem;"> <!-- to bring --> <span ng-if="spots.jobtype === 1">{{spots.jassquantity}}</span> </td> </tr> </tbody> </table> </div> </div></script>
vendor: 1 bytes, line 2653
2653
2654<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/groups-delete/groups-delete.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.cancel()">×</button> <h2 ng-if="$ctrl.groups.length === 1" class="subheadline" data-i18n="_DeleteGroupConfirmHeader_" data-dont-watch></h2> <h2 ng-if="$ctrl.groups.length > 1" class="subheadline" data-i18n="_DeleteGroupConfirmHeaderPlural_" data-dont-watch></h2> </div> <div class="modal-body form-group container-fluid"> <div class="row"> <div class="col-xs-12"> <p ng-if="$ctrl.groups.length === 1" data-i18n="_DeleteGroupConfirmOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="$ctrl.groups.length === 2" data-i18n="_DeleteGroupConfirmTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="$ctrl.groups.length === 3" data-i18n="_DeleteGroupConfirmThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="$ctrl.groups.length > 3" data-i18n="_DeleteGroupConfirmThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" ng-if="$ctrl.showSuccess" data-i18n="{{$ctrl.successMessage}}|{{ $ctrl.titles[0] }}" ></div> <div class="alert alert-danger" role="alert" ng-if="$ctrl.showError" data-i18n=" {{ $ctrl.errorMessage }} " ></div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" data-i18n="_Close_" data-dont-watch></button> </div> <div class="col-xs-6 nowrap no-animate"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.showLoading"></i> <button type="button" class="btn btn-primary" ng-click="$ctrl.deleteGroups()" ng-show="$ctrl.showDeleteBtn" ng-disabled="$ctrl.showLoading" data-i18n="_GroupDelete_" data-dont-watch autofocus ></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2654
2654
2655<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signup-archive/signup-archive.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.cancel()">×</button> <h2 class="subheadline" data-i18n="_ArchiveSignUp_" data-dont-watch ng-if="$ctrl.activities.length === 1"></h2> <h2 class="subheadline" data-i18n="_ArchiveSignUps_" data-dont-watch ng-if="$ctrl.activities.length > 1"></h2> </div> <div class="modal-body form-group container-fluid"> <div class="row"> <div class="col-xs-12"> <p ng-if="$ctrl.activities.length === 1" data-i18n="_DashboardArchiveActivityConfirmOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="$ctrl.activities.length === 2" data-i18n="_DashboardArchiveActivityConfirmTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="$ctrl.activities.length === 3" data-i18n="_DashboardArchiveActivityConfirmThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="$ctrl.activities.length > 3" data-i18n="_DashboardArchiveActivityConfirmThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" ng-if="$ctrl.showSuccess" > <span ng-if="$ctrl.activities.length === 1" data-i18n="_DashboardArchiveActivitySuccess_|{{ $ctrl.titles[0] }}"></span> <span ng-if="$ctrl.activities.length > 1" data-i18n="_DashboardArchiveActivitySuccessMultiple_" data-dont-watch></span> </div> <div class="alert alert-danger" role="alert" ng-if="$ctrl.showError" data-i18n="{{ $ctrl.errorMessage }}" ></div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" data-i18n="_Close_" data-dont-watch></button> </div> <div class="col-xs-6 nowrap no-animate"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.showLoading"></i> <button type="button" class="btn btn-primary" ng-click="$ctrl.archiveActivities()" ng-hide="$ctrl.archived.length" ng-disabled="$ctrl.showLoading" data-i18n="_Archive_" data-dont-watch ></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2655
2655
2656<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/groups-list/groups-list.html"><div class="panel-content new-dashboard-panel clearfix" id="dash-group"> <!-- Advertisement for adding groups if the user has no groups: --> <div ng-if="$ctrl.groupList.data.length === 0" class="clearfix"> <div data-i18n="_GroupPageNoGroupsMessage_" data-dont-watch></div> </div> <!-- The user has groups, but they might not all be visible --> <div ng-if="$ctrl.groupList.data.length > 0" class="clearfix no-animate"> <!-- Iterate over the group list, saving the filtered results for use below --> <span ng-repeat="group in $ctrl.groupList.data | filterGroups:$ctrl.showingType | orderBy:$ctrl.sortType:$ctrl.sortReverse as groupResults" ng-if="false"><!-- This is a cheat to get the groupResults variable populated, not nothing happens here... --></span> <div class="sortable-header"> <div class="top-table-container" id="main-table-top"> <div class="top-checkbox"> <span style="width: 4%; display: inline-block;"> <label class="check-label"> <input class="form-check-input" ng-model="$ctrl.allGroupSelected" ng-click="$ctrl.selectAllGroup($ctrl.allGroupSelected)" type="checkbox" /> <span class="checkmark-list" id="top-checkmark-list"></span> </label> </span> </div> <div ng-if=" ('_ActiveGroups_' === $ctrl.showingType || '_AllGroups_' === $ctrl.showingType) && !$ctrl.numGroupChecked" class="top-table-header"> <span style="width: 36%;" ng-click="$ctrl.setSort('sortTitle')"> <span data-i18n="_GroupListTitle_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt="sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortTitle' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 29%;" ng-click="$ctrl.setSort('num_future_activities')"> <span data-i18n="_GroupListNumActivities_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'num_future_activities' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'num_future_activities' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 10%" ng-click="$ctrl.setSort('active')"> <span data-i18n="_Active_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'active' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'active' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 20%" ng-click="$ctrl.setSort('sortOwner')"> <span data-i18n="_GroupListOwner_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortOwner' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'sortOwner' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </span> <span style="width: 5%"> </span> </div> <div ng-if="$ctrl.numGroupChecked" id="checked-header" class="top-table-header"> <!-- <span class="group-num">{{$ctrl.numGroupChecked}}</span> --> <!-- Activate --> <button ng-if="'_AllGroups_' === $ctrl.showingType" type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.activateGroup(true)"> <img src="/imgs/icons/svg/Deactivate.svg" alt="Activate"/> <span data-i18n="_GroupActivate_" data-dont-watch></span> </button> <!-- Deactivate --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.activateGroup(false)"> <img src="/imgs/icons/svg/Deactivate.svg" alt="Deactivate"/> <span data-i18n="_GroupDeactivate_" data-dont-watch></span> </button> <!-- Delete --> <button type="button" class="btn btn-warning btn-xs" ng-click="$ctrl.deleteGroup()"> <img src="/imgs/icons/svg/Delete.svg" alt="Delete"/> <span data-i18n="_GroupDelete_" data-dont-watch></span> </button> </div> </div> </div> <table class="table table-hover dash-table" id="group-table" ng-if="groupResults.length > 0"> <tbody> <tr ng-repeat="group in groupResults track by $index" id="group_{{$index}}" class="dashboard-table dash-list" ng-class="{ 'selected' : group.selected }"> <td class="dashboard-checkbox-label-container icon"> <label class="check-label" aria-label="Select Row" ng-if="$ctrl.user.id === group.group_user_id"> <input type="checkbox" ng-model="group.selected" ng-change="$ctrl.selected(group)"> <span class="checkmark-list"></span> </label> </td> <td style="width: 33%; max-width: 28rem;" class="dash-title"> <h3 class="word-wrap"> <a ng-href="" ng-click="$ctrl.editGroup(group.key)" class="pop-up" ng-class="{'submitting': $ctrl.submitting}"> {{group.group_title}} </a> </h3> </td> <td style="width: 27%; max-width: 21rem;"><span style="color: #338500">{{group.num_active_activities}} </span> <span style="color: #338500" data-i18n="_Active_" data-dont-watch></span> </td> <td style="width: 9%; max-width: 4rem;"> <span style="color: #338500" ng-show="group.active" data-i18n="_GroupActiveTrue_" data-dont-watch></span> <span ng-show="!group.active" data-i18n="_GroupActiveFalse_" data-dont-watch></span> </td> <td style="width: 18%; max-width: 15rem;"> <span ng-show="group.group_user_id === user.id" data-i18n="_GroupOwnerYou_" data-dont-watch></span> <span ng-show="group.group_user_id !== user.id"> <a ng-href="mailto:{{group.group_organizer_email}}" target="_top">{{group.group_organizer_name}}</a> </span> </td> <td style="width: 5%;" class="menus group-menu icon"> <i class="fa" ng-class="{'vs-invisible': !a.showLinkSpinner && !a.showArchiveSpinner, 'fa-spinner fa-pulse': a.showLinkSpinner || a.showArchiveSpinner}"></i> <span uib-dropdown class="nowrap fr"> <span> <img src="/imgs/icons/svg/More.svg" alt="more" uib-dropdown-toggle /> </span> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="manage_signup_{{a.id}}"> <li role="menuitem"> <a class="edit-item btn btn-link" ng-class="{'submitting': $ctrl.submitting}" ng-href="/Group/{{group.key}}/"> <img src="/imgs/icons/svg/Preview.svg" alt="preview"/> <span data-i18n="_PreView_" data-dont-watch></span> </a> </li> <li role="menuitem"> <button class="edit-item btn btn-link" ng-class="{'submitting': $ctrl.submitting}" ng-disabled="$ctrl.submitting" ng-click="$ctrl.editGroup(group.key)"> <img src="/imgs/icons/svg/Edit_black.svg" alt="Edit"/> <span data-i18n="_Edit_" data-dont-watch></span> </button> </li> <li role="menuitem" ng-show="group.active"> <button class="edit-item btn btn-link" ng-class="{'submitting': $ctrl.user.id !== group.group_user_id || $ctrl.submitting}" ng-disabled="$ctrl.user.id !== group.group_user_id || $ctrl.submitting" ng-click="$ctrl.activateGroup(false, group)"> <img src="/imgs/icons/svg/Deactivate.svg" alt="Deactivate"/> <span data-i18n="_GroupDeactivate_" data-dont-watch></span> </button> </li> <li role="menuitem" ng-show="!group.active"> <button class="edit-item btn btn-link" ng-class="{'submitting': $ctrl.user.id !== group.group_user_id || $ctrl.submitting}" ng-disabled="$ctrl.user.id !== group.group_user_id || $ctrl.submitting" ng-click="$ctrl.activateGroup(true, group)"> <img src="/imgs/icons/svg/Deactivate.svg" alt="Deactivate"/> <span data-i18n="_GroupActivate_" data-dont-watch></span> </button> </li> <li role="menuitem"> <button class="edit-item btn btn-link" ng-class="{'submitting': $ctrl.user.id !== group.group_user_id || $ctrl.submitting}" ng-disabled="$ctrl.user.id !== group.group_user_id || $ctrl.submitting" ng-click="$ctrl.deleteGroup(group)"> <img src="/imgs/icons/svg/Delete.svg" alt="Delete"/> <span data-i18n="_GroupDelete_" data-dont-watch></span> </button> </li> </ul> </span> </td> </tr> </tbody> </table> <!-- Using groupResults from above... display if the filter returns no results --> <div class="col-xs-12 new-dashboard-info" ng-if="groupResults.length === 0"> <h2 style="color: #2b2929;" data-i18n="_GroupListNoneTitle_" data-dont-watch></h2> <p data-i18n="_GroupListNoneMessage_" data-dont-watch></p> <div ng-if="ctrl.inDashboard"> <p ng-if="ctrl.upcomingSignups === 0" data-i18n="_DashboardGroupsNoActivitiesMessage_" data-dont-watch> </p> <p ng-if="ctrl.upcomingSignups > 0" ng-show="ctrl.totalGroups < ctrl.allowedGroups" data-i18n="_GroupListNoneButtonBelow_" data-dont-watch></p> </div> <div ng-if="!ctrl.inDashboard"> <p ng-if="ctrl.upcomingSignups === 0" data-i18n="_DashboardGroupsNoActivitiesMessage_" data-dont-watch> </p> <p ng-if="ctrl.upcomingSignups > 0" data-i18n="_GroupListNoneButtonAbove_" data-dont-watch></p> </div>
2656 <div class="fr clearfix note" ng-if="ctrl.showingType === '_ActiveGroups_' && ctrl.inactiveGroups === 1"> <span>1</span> <span data-i18n="_InactiveGroup_" data-dont-watch></span> </div> <div class="fr clearfix note" ng-if="ctrl.showingType === '_ActiveGroups_' && ctrl.inactiveGroups > 1"> <span>{{ctrl.inactiveGroups}}</span> <span data-i18n="_InactiveGroups_" data-dont-watch></span> </div> <div class="fl buttonSpacer clearfix" ng-if="ctrl.inDashboard && (ctrl.totalGroups < ctrl.allowedGroups)"> <a href ng-click="ctrl.addGroup()"><button class="vs1-orangebtn" data-i18n="_CreateGroupPage_" data-dont-watch></button></a> </div> </div> <div ng-if="$ctrl.totalGroups > $ctrl.groupList.data.length && $ctrl.showingType" data-i18n="_GroupPageInactiveGroupsMessage_|{{$ctrl.totalGroups - $ctrl.groupList.data.length}}" class="clearfix"></div> <div class="fr clearfix note" ng-if="$ctrl.showingType === '_ActiveGroups_' && $ctrl.inactiveGroups === 1" style="padding: 10px"> <span>1</span> <span data-i18n="_InactiveGroup_" data-dont-watch></span> </div> <div class="fr clearfix note" ng-if="$ctrl.showingType === '_ActiveGroups_' && $ctrl.inactiveGroups > 1" style="padding: 10px"> <a href ng-click="$ctrl.setShowing('_AllGroups_')"> <span data-i18n="_YouAlsoHave_" data-dont-watch></span> <span>{{$ctrl.inactiveGroups}}</span> <span data-i18n="_InactiveGroups_" data-dont-watch></span> </a> </div> </div> </div></script>
vendor: 1 bytes, line 2656
2656
2657<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/reports-list/reports-list.html"><div ng-if="$ctrl.reportList.data.length > 0" class="new-dashboard-panel clearfix" id="dash-reports"> <table class="table table-hover dash-table no-animate"> <thead> <tr> <th width="35%" class="clickable title-header" ng-click="$ctrl.setSort('name')"> <span data-i18n="_Name_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'name' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'name' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th width="8%" class="clickable" ng-click="$ctrl.setSort('fullStatus')"> <span data-i18n="_Status_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'fullStatus' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'fullStatus' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th width="28%" class="clickable" ng-click="$ctrl.setSort('reportType')"> <span data-i18n="_ReportType_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'reportType' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'reportType' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th width="10%" class="clickable" ng-click="$ctrl.setSort('start_date')"> <span data-i18n="_From_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'start_date' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'start_date' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th class="clickable" ng-click="$ctrl.setSort('end_date')"> <span data-i18n="_to_" data-dont-watch></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'end_date' && $ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Closed_Black.svg"></span> <span aria-hidden="true" ng-show="$ctrl.sortType === 'end_date' && !$ctrl.sortReverse"><img class="sm-collapsed-arrow" alt=sm-collapsed-arrow" src="/imgs/icons/svg/Arrow_Open_Black.svg"></span> </th> <th> </th> </tr> </thead> <tbody class="dash-list"> <tr ng-repeat="report in $ctrl.reportList.data | orderBy:$ctrl.sortType:$ctrl.sortReverse" id="report_{{ report.id }}" class="dashboard-table no-animate"> <td width="37%" style="max-width: 200px;" class="dash-title"> <h3 class="word-wrap"> <a ng-href="/su#/reports/{{ report.id }}"> {{ report.name }} </a> </h3> </td> <td> <span>{{ report.fullStatus }}</span> <i class="fa fa-exclamation-triangle error-color" ng-show="report.hasError && report.hoverStatus !== '_ORG_REPORTS_ERROR_'" uib-popover="{{ report.hoverStatus | i18n }}" popover-placement="top" popover-append-to-body="true" popover-trigger="'mouseenter'"></i> </td> <td style="max-width: 200px;"> {{ report.reportType }} </td> <td style="max-width: 100px;"> <date-range ng-if="report.start_date" start-date="report.start_date" date-format="'MMM D, YYYY'"></date-range> <!-- {{ $ctrl.vspotFormatDate(report.start_date) }} --> </td> <td style="max-width: 100px;"> <!-- {{ $ctrl.vspotFormatDate(report.end_date) }} --> <date-range ng-if="report.end_date" start-date="report.end_date" date-format="'MMM D, YYYY'"></date-range> </td> <td class="menus icon"> <i class="fa" ng-class="{'vs-invisible': !a.showLinkSpinner && !a.showArchiveSpinner, 'fa-spinner fa-pulse': a.showLinkSpinner || a.showArchiveSpinner}"></i> <span uib-dropdown class="nowrap fr"> <span> <!-- <i class="fa fa-ellipsis-h" uib-dropdown-toggle></i> --> <img src="/imgs/icons/svg/More.svg" alt="more" uib-dropdown-toggle /> </span> <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right" role="menu" ng-attr-aria-labelledby="manage_signup_{{a.id}}"> <li role="menuitem"> <button class="edit-item btn btn-link" ng-class="{'submitting': $ctrl.submitting}" ng-disabled="$ctrl.submitting" ng-click="$ctrl.deleteReport($index, report.id)"> <img src="/imgs/icons/svg/Delete.svg" alt="Delete"/> <span data-i18n="_Delete_" data-dont-watch=""><span class="ng-scope">Delete</span></span> </button> </li> <li role="menuitem"> <button class="edit-item btn btn-link" ng-class="{'submitting': $ctrl.submitting}" ng-click="$ctrl.editReport(report.id)" ng-disabled="$ctrl.submitting"> <img src="/imgs/icons/svg/Edit_black.svg" alt="Edit"/> <span data-i18n="_Edit_" data-dont-watch></span> </button> </li> <li> <!-- disable the run button if the report is currently running --> <button class="edit-item pop-up btn btn-link" ng-class="{'submitting': $ctrl.submitting}" ng-disabled="report.status === '_ORG_REPORTS_STARTED_'" ng-click="$ctrl.runReport(report)"> <img src="/imgs/icons/svg/Run.svg" alt="Run"/><span data-i18n="_Run_" data-dont-watch></span> </button> </li> </ul> </span> </td> </tr> </tbody> </table> <span class="notice" data-i18n="{{ error }}" ng-show="error"></span> </div> </script>
vendor: 1 bytes, line 2657
2657
2658<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/organizations/organizations.html"><div class="panel panel-default"> <div class="gray-panel-heading clearfix"> <div class="row"> <div class="col-xs-7"> <div class="fl"> <h3 class="panel-title"> <span>{{ $ctrl.organizationTitle }}</span>: <span data-i18n="{{ $ctrl.showingType }}"></span> </h3> </div> </div> <div class="col-xs-5"> <div class="fr ml10"> <span uib-popover-html="$ctrl.helpPopOver" popover-placement="right" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img style="margin-top: .5rem; display: inline-flex;" src="/imgs/icons/svg/Info.svg" alt="Info"></span> </span> </div> <div class="clearfix dashboard-menu"> <i class="fa fa-spinner fa-pulse white-color" ng-show="$ctrl.showMenuLoader"></i> <label for="group_menu_button" data-i18n="_Show_" data-dont-watch></label> <div class="btn-group" uib-dropdown is-open="$ctrl.showOrgsMenu"> <button type="button" class="btn btn-default" uib-dropdown-toggle id="group_menu_button"> <span data-i18n="{{ $ctrl.showingType }}"></span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" role="menu"> <li> <a href ng-click="$ctrl.updateMenu('_AllSignUps_', true)" class="clearfix"> <span data-i18n="_AllSignUps_" data-dont-watch ng-class="{ strong: '_AllSignUps_' === $ctrl.showingType}"></span> ({{$ctrl.totalSignUps}}) <span ng-show=" '_AllSignUps_' === showingType " class="fa fa-check"></span> </a> </li> <li> <a href ng-click="$ctrl.updateMenu('_AllOrganizers_', true)" class="clearfix"> <span data-i18n="_AllOrganizers_" data-dont-watch ng-class="{ strong: '_AllOrganizers_' === $ctrl.showingType}"></span> ({{$ctrl.totalOrganizers}}) <span ng-show=" '_AllOrganizers_' === showingType " class="fa fa-check"></span> </a> </li> <li class="divider clearfix"></li> <li> <a href ng-click="$ctrl.updateMenu('_Help_', true)" class="clearfix"> <span data-i18n="_Help_" data-dont-watch ng-class="{ strong: '_Help_' === $ctrl.showingType}"></span> <span ng-show=" '_Help_' === $ctrl.showingType " class="fa fa-check"></span> </a> </li> </ul> </div> </div> </div> </div> </div> <div class="panel-body"> <div class="panel-content clearfix" role="alert" ng-if="$ctrl.showError"> <div class="col-xs-12"> <p class="notice" data-i18n="{{ $ctrl.errorI18n }}" ng-if="$ctrl.errorI18n"></p> <p class="notice" ng-if="$ctrl.errorMessage">{{ $ctrl.errorMessage }}</p> </div> </div> <dashboard-loading class="panel-content clearfix" ng-if="$ctrl.showingType !== '_Help_' && !$ctrl.showError && !$ctrl.organization.$resolved && !$ctrl.users.$resolved && !$ctrl.activities.$resolved" ></dashboard-loading> <dashboard-organizations-list-signups class="panel-content clearfix" ng-if="$ctrl.showingType === '_AllSignUps_' && !$ctrl.showError && $ctrl.organization.$resolved && $ctrl.activities.$resolved" activities="$ctrl.activities" org-id="$ctrl.orgId" ></dashboard-organizations-list-signups> <dashboard-organizations-list-users class="panel-content clearfix" ng-if="$ctrl.showingType === '_AllOrganizers_' && !$ctrl.showError && $ctrl.organization.$resolved && $ctrl.users.$resolved" users="$ctrl.users" org-id="$ctrl.orgId" reduce-orgs="$ctrl.reduceOrgsByOne" ></dashboard-organizations-list-users> <div class="panel-content clearfix" ng-if="$ctrl.showingType === '_Help_'"> <div class="col-xs-12 dashboard-info" data-i18n="_MyOrganizationPagesHelp_" data-dont-watch></div> </div> </div> </div></script>
vendor: 1 bytes, line 2658
2658
2659<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/welcome/welcome.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.close()">×</button> <h2 class="subheadline" data-i18n="_ThanksForJoining_"></h2> </div> <div class="modal-body form-group container-fluid"> <p><strong data-i18n="_ReadyToStart_"></strong> <span data-i18n="_ClickToStartPlanningWithButton_"></span></p> <p><strong data-i18n="_NotOrganizer_"></strong> <a href="" ng-click="$ctrl.trackClick('/Dashboard#/my-invitations')" data-i18n="_FindSignupHere_"></a></p> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12 text-right"> <button type="button" data-i18n="_StartPlanning_" class="btn vs1-orangebtn-small" ng-click="$ctrl.close()"></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2659
2659
2660<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signups/signups.html"><div class="clearfix ng-hide" id="header_placeholder"></div> <div class="dash-panel panel-default"> <div class="dash-panel-heading clearfix" id="su_header"> <div class="row"> <div class="col-xs-3"> <div class="fl toggle-icons clickable no-animate" ng-show="$ctrl.inDashboard"> <!-- <i class="fa fa-chevron-up" ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock"></i> <i class="fa fa-chevron-down" ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock"></i> --> <img ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock" src="/imgs/icons/svg/Collapse_closed.svg" alt="Collapsed"/> <img ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock" src="/imgs/icons/svg/Collapse_arrow.svg" alt="Collapse"/> </div> <div class="fl"> <h3 class="dash-title" ng-class="{'clickable': $ctrl.inDashboard}" ng-click=" $ctrl.inDashboard ? $ctrl.goToMySignUps() : false "> <span data-i18n="_MySignUps_" data-dont-watch></span> </h3> <!-- info icon --> <span class="title-help-icon" uib-popover-html="$ctrl.pageData.helpTextMySignups" popover-placement="right" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> </div> <div class="col-xs-4"> <div class="clearfix dashboard-menu"> <i class="fa fa-spinner fa-pulse white-color" ng-show="$ctrl.showMenuLoader"></i> <div class="new-dashboard btn-group" uib-dropdown is-open="$ctrl.showing.showMenu"> <button type="button" class="btn btn-default" uib-dropdown-toggle id="$ctrl.signups_menu_button"> <span data-i18n="_Show_" data-dont-watch></span>: <span class="bolder" data-i18n="{{ $ctrl.showing.selected }}"></span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" role="menu"> <li role="menuitem"> <a href ng-click="$ctrl.updateMenu('_PinnedSignUps_', true)" class="clearfix"> <span data-i18n="_PinnedSignUps_" data-dont-watch ng-class="{ 'strong': '_PinnedSignUps_' === $ctrl.showing.selected }"></span> ({{$ctrl.pinnedSignups}}) <span ng-show=" '_PinnedSignUps_' === $ctrl.showing.selected " class="fa fa-check"></span> </a> </li> <li role="menuitem"> <a href ng-click="$ctrl.updateMenu('_UpcomingSignUps_', true)" class="clearfix"> <span data-i18n="_UpcomingSignUps_" data-dont-watch ng-class="{ 'strong': '_UpcomingSignUps_' === $ctrl.showing.selected }"></span> ({{$ctrl.upcomingSignups}}) <span ng-show=" '_Show_ _UpcomingSignUps_' === $ctrl.showing.selected " class="fa fa-check"></span> </a> </li> <li role="menuitem"> <a href ng-click="$ctrl.updateMenu('_PastSignUps_', true)" class="clearfix"> <span data-i18n="_PastSignUps_" data-dont-watch ng-class="{ 'strong': '_PastSignUps_' === $ctrl.showing.selected }"></span> ({{$ctrl.pastSignups}}) <span ng-show=" '_PastSignUps_' === $ctrl.showing.selected " class="fa fa-check"></span> </a> </li> <li role="menuitem"> <a href ng-click="$ctrl.updateMenu('_AllSignUps_', true)" class="clearfix"> <span data-i18n="_AllSignUps_" data-dont-watch ng-class="{ 'strong': '_AllSignUps_' === $ctrl.showing.selected }"></span> ({{$ctrl.totalSignups}}) <span ng-show=" '_AllSignUps_' === $ctrl.showing.selected " class="fa fa-check"></span> </a> </li> <li class="divider clearfix"></li> <li role="menuitem"> <a href ng-click="$ctrl.updateMenu('_ArchivedSignUps_', true)" class="clearfix"> <span data-i18n="_ArchivedSignUps_" data-dont-watch ng-class="{ 'strong': '_ArchivedSignUps_' === $ctrl.showing.selected }"></span> ({{$ctrl.archivedSignups}}) <span ng-show=" '_ArchivedSignUps_' === $ctrl.showing.selected " class="fa fa-check"></span> </a> </li> <li role="menuitem"> <a href ng-click="$ctrl.updateMenu('_Help_', true)" class="clearfix"> <span data-i18n="_Help_" data-dont-watch ng-class="{ 'strong': '_Help_' === $ctrl.showing.selected }"></span> <span ng-show=" '_Help_' === $ctrl.showing.selected " class="fa fa-check"></span> </a> </li> </ul> </div> </div> </div> <div class="col-xs-5 text-right"> <a class="mr10 btn-wrapper" href="/Activities#/create"> <button class="orange-btn" data-i18n="_CreateNewSignUpButton_" data-dont-watch popover-title="{{ $ctrl.pageData.welcomeTitle }}" uib-popover="{{ $ctrl.pageData.welcomeMessage }}" popover-is-open="$ctrl.pageData.showWelcomeMessage" popover-trigger="'none'" popover-append-to-body></button> </a> <span ng-show="$ctrl.viewType==='collapsed'" ng-click="$ctrl.setViewType('expanded')" ng-model="viewT
2660ype" uib-btn-radio="'list'" uib-popover="List View" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img src="/imgs/icons/svg/Toggle_list_on.svg" alt="List"/> </span> <span ng-show="$ctrl.viewType==='expanded'" ng-click="$ctrl.setViewType('collapsed')" ng-model="viewType" uib-btn-radio="'card'" uib-popover="Card View" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img src="/imgs/icons/svg/Toggle_card_on.svg" alt="Card"/> </span> </div> </div> </div> <div class="dash-panel-body" id="su_body" ng-show="$ctrl.showBlock"> <dashboard-loading class="panel-content clearfix" ng-if="!$ctrl.signups.$resolved"></dashboard-loading> <dashboard-signups-list ng-if="$ctrl.signups.$resolved" upcoming-signups="$ctrl.upcomingSignups" past-signups="$ctrl.pastSignups" signups="$ctrl.signups" showing="$ctrl.showing" set-showing="$ctrl.setShowing" update-counts="$ctrl.updateCounts" is-occupied="$ctrl.signupTools.isOccupied" in-dashboard="$ctrl.inDashboard" restore="$ctrl.restore" show-delete="$ctrl.showDelete" show-archive="$ctrl.showArchive" show-publish="$ctrl.showPublish" after-removal="$ctrl.afterRemoval" check-signup="$ctrl.checkSignup(additionalProperties)" lock-signups="$ctrl.lockSignups" user-has-locking="$ctrl.userHasLocking"></dashboard-signups-list> <div class="clearfix" ng-if="$ctrl.signups.$resolved && $ctrl.showing.selected === '_Help_'"> <div class="col-xs-12 new-dashboard-info" data-i18n="_MySignUpsHelp_" data-dont-watch></div> </div> </div> <div class="panel-body" id="su_closed_placeholder" ng-show="!$ctrl.showBlock"> <div class="panel-content clearfix"> <div class="col-xs-12 new-dashboard-info" data-i18n='_DashboardPanelHiddenArrow_'></div> </div> </div> <div class="clearfix text-right" ng-if="!$ctrl.inDashboard"> <a ui-sref="dashboard">« <span data-i18n="_BackToDashboard_" data-dont-watch></span></a> </div></script>
vendor: 1 bytes, line 2660
2660
2661<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/signups-lock/signups-lock.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.cancel()" ng-disabled="$ctrl.ajaxing">×</button> <h2 ng-if="$ctrl.lock" data-i18n="_DashboardBulkActionLockSignups_" data-dont-watch class="modal-title"></h2> <h2 ng-if="!$ctrl.lock" data-i18n="_DashboardBulkActionUnlockSignups_" data-dont-watch class="modal-title"></h2> </div> <div class="modal-body clearfix"> <div class="form-group col-xs-12 alert alert-danger" role="alert" data-i18n="{{ $ctrl.lockingError }}" ng-if="$ctrl.lockingError"></div> <p ng-if="$ctrl.lock && $ctrl.items.length === 1" data-i18n="_DashboardBulkActionLockOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="$ctrl.lock && $ctrl.items.length === 2" data-i18n="_DashboardBulkActionLockTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="$ctrl.lock && $ctrl.items.length === 3" data-i18n="_DashboardBulkActionLockThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="$ctrl.lock && $ctrl.items.length > 3" data-i18n="_DashboardBulkActionLockThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> <p ng-if="!$ctrl.lock && $ctrl.items.length === 1" data-i18n="_DashboardBulkActionUnlockOne_|{{ $ctrl.titles[0] }}"></p> <p ng-if="!$ctrl.lock && $ctrl.items.length === 2" data-i18n="_DashboardBulkActionUnlockTwo_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}"></p> <p ng-if="!$ctrl.lock && $ctrl.items.length === 3" data-i18n="_DashboardBulkActionUnlockThree_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}"></p> <p ng-if="!$ctrl.lock && $ctrl.items.length > 3" data-i18n="_DashboardBulkActionUnlockThreePlus_|{{ $ctrl.titles[0] }}|{{ $ctrl.titles[1] }}|{{ $ctrl.titles[2] }}|{{ $ctrl.more }}"></p> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Close_" data-dont-watch class="btn vs1-white-blue-btn" ng-click="$ctrl.cancel()" ng-disabled="$ctrl.ajaxing"></button> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.ajaxing"></i> <button ng-if="$ctrl.lock" type="button" data-i18n="_Lock_" data-dont-watch class="btn btn-primary" ng-click="$ctrl.toggleLock(true)" ng-disabled="$ctrl.ajaxing"></button> <button ng-if="!$ctrl.lock" type="button" data-i18n="_Unlock_" data-dont-watch class="btn btn-primary" ng-click="$ctrl.toggleLock(false)" ng-disabled="$ctrl.ajaxing"></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2661
2661
2662<script type="text/ng-template" id="/script/vspot-angular/components/dashboard/reports/reports.html"><div class="dash-panel dashboard-reports panel-default" id="reports-page"> <div class="dash-panel-heading clearfix"> <div class="row"> <div class="col-xs-12"> <div class="fl toggle-icons clickable no-animate" ng-show="$ctrl.inDashboard"> <!-- <i class="fa fa-chevron-up" ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock"></i> <i class="fa fa-chevron-down" ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock"></i> --> <img ng-click="$ctrl.toggleBlock($event)" ng-show="!$ctrl.showBlock" src="/imgs/icons/svg/Collapse_closed.svg" alt="Collapsed"/> <img ng-click="$ctrl.toggleBlock($event)" ng-show="$ctrl.showBlock" src="/imgs/icons/svg/Collapse_arrow.svg" alt="Collapse"/> </div> <div class="flex-between"> <span> <h3 class="dash-title" ng-class="{'clickable': $ctrl.inDashboard}" ng-click=" $ctrl.inDashboard ? $ctrl.goToMyReports() : false "> <span data-i18n="_MyReports_" data-dont-watch></span> </h3> <span class="report-info" uib-popover-html="$ctrl.helpPopOver" popover-placement="right" popover-trigger="'mouseenter'" popover-append-to-body="true"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </span> <span> <span class="fl clearfix" ng-if="$ctrl.user.premium"> <a href="/su#/reports"> <button type="button" class="orange-btn" data-i18n="_CreateNewReportButton_" data-dont-watch ></button> </a> </span> <span class="upgrade-link-text"> <upgrade-prompt-link user="$ctrl.user" feature="ADVANCED_REPORTING" ></upgrade-prompt-link> </span> </span> </div> </div> </div> </div> <div class="dash-panel-body" ng-show="$ctrl.showBlock"> <dashboard-loading class="panel-content clearfix" ng-if="!$ctrl.initialDataLoaded && $ctrl.userAdvancedReportingEnabled" ></dashboard-loading> <dashboard-reports-list class="panel-content clearfix" ng-if="$ctrl.userAdvancedReportingEnabled && $ctrl.languageFileLoaded" ng-show="$ctrl.initialDataLoaded" in-dashboard="$ctrl.inDashboard" initial-data-loaded="$ctrl.initialDataLoaded" user="$ctrl.user" user-advanced-reporting-enabled="$ctrl.userAdvancedReportingEnabled" ></dashboard-reports-list> <div ng-if="!$ctrl.userAdvancedReportingEnabled" class="clearfix"> <div class="col-xs-12 new-dashboard-info"> <h2 data-i18n="_SuperUserReportsHeader_" data-dont-watch></h2> <p data-i18n="_DashboardPremiumReportsPrompt_" data-dont-watch></p> </div> </div> </div> <div class="panel-body" id="su_closed_placeholder" ng-show="!$ctrl.showBlock"> <div class="panel-content clearfix" ng-if="$ctrl.languageFileLoaded" > <div class="col-xs-12 new-dashboard-info" data-i18n='_DashboardPanelHiddenArrow_'></div> </div> </div> <div class="clearfix text-right" ng-if="!$ctrl.inDashboard"> <a ui-sref="dashboard">« <span data-i18n="_BackToDashboard_" data-dont-watch></span></a> </div></script>
vendor: 1 bytes, line 2662
2662
2663<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/left-rail/left-rail.html"><div id="rail" ng-click="$ctrl.toggleRail($event)" ng-class="{'collapsed': !$ctrl.open, 'expanded': $ctrl.open, 'fixed': $ctrl.fixedClass, 'invitation': $ctrl.volunteer && $ctrl.isOnInvite()}" > <div class="inner-container"> <div class="top-buttons"> <!-- User is not logged in - launches identification modal --> <div class="item" ng-click="$ctrl.showIdentity()" ng-hide="$ctrl.volunteer"> <div class="icon fl"> <i class="fa fa-sign-in" aria-hidden="true"></i> </div> <div class="fl" data-i18n="_SignedUp_" data-dont-watch></div> </div> <!-- My Info - User is logged in --> <div class="item" ng-click="$ctrl.expand($event, 'myInfo')" ng-show="$ctrl.volunteer"> <div class="icon fl"> <i class="fa fa-user" aria-hidden="true"></i> </div> <div class="fl" data-i18n="_MyInfo_" data-dont-watch></div> <div class="rail-info word-wrap" ng-show="$ctrl.expanded.myInfo && $ctrl.open"> <ul> <li ng-if="$ctrl.volunteer.contactname">{{ $ctrl.volunteer.contactname }}</li> <li ng-if="$ctrl.volunteer.email"> <a href="mailto:{{ $ctrl.volunteer.email }}"><i class="fa fa-envelope" aria-hidden="true"></i> {{ $ctrl.volunteer.email }}</a> </li> <li ng-if="$ctrl.volunteer.contactphone"> <a href="tel:{{ $ctrl.volunteer.contactphone }}"><i class="fa fa-phone" aria-hidden="true"></i> {{ $ctrl.volunteer.contactphone }}</a> </li> <li><span data-i18n="_NumAssignments_" data-dont-watch></span>: {{ $ctrl.volunteer.numassignments }}</li> <li><a href data-i18n="_MyInfo_" data-dont-watch ng-click="$ctrl.showUserInfo()"></a></li> </ul> </div> </div> <!-- Location --> <div ng-if="$ctrl.activity.location" class="item" ng-click="$ctrl.expand($event, 'location')"> <div class="icon fl"> <i class="fa fa-map-marker" aria-label="Location" title="Location"></i> </div> <div class="fl" data-i18n="_Location_" data-dont-watch></div> <div class="rail-info" ng-show="$ctrl.expanded.location && $ctrl.open"> <ul> <li ng-bind-html="$ctrl.activity.location_link"></li> </ul> </div> </div> <!-- Organizer --> <div class="item" ng-click="$ctrl.expand($event, 'organizer')"> <div class="icon fl"> <i class="fa fa-address-card-o" aria-label="Organizer Info" title="Organizer Info"></i> </div> <div class="fl" data-i18n="_OrganizerInfoShort_" data-dont-watch > </div> <div class="rail-info" ng-show="$ctrl.expanded.organizer && $ctrl.open"> <ul ng-if="$ctrl.volunteer"> <li ng-if="$ctrl.activity.orgname">{{ $ctrl.activity.orgname }}</li> <li ng-if="$ctrl.activity.orgtitle">{{ $ctrl.activity.orgtitle }}</li> <li ng-if="$ctrl.activity.org_email"> <a href="mailto:{{ $ctrl.activity.org_email }}"><i class="fa fa-envelope" aria-hidden="true"></i> {{ $ctrl.activity.org_email }}</a> </li> <li ng-if="$ctrl.activity.orgphonenumber"> <a href="tel:{{ $ctrl.activity.orgphonenumber }}"><i class="fa fa-phone" aria-hidden="true"></i> {{ $ctrl.activity.orgphonenumber }}</a> </li> </ul> <ul ng-if="!$ctrl.volunteer"> <li> <a href ng-click="$ctrl.showIdentity()" data-i18n="_ClickHere_" data-dont-watch></a> <span data-i18n="_OrganizerInfoPleaseLogIn_" data-dont-watch></span> </li> </ul> </div> </div> <!-- Manage link --> <div class="item" ng-show="$ctrl.isOrganizer"> <div class="icon fl"> <i class="fa fa-gears" aria-label="Manage this page" title="Manage this Page"></i> </div> <div ng-click="$ctrl.managePage()" class="fl" data-i18n="_Manage_This_Page_" data-dont-watch > <i class="fa fa-external-link"></i></div> </div> <!-- Swap is allowed --> <div class="item" ng-click="$ctrl.expand($event, 'swap')" ng-show="$ctrl.activity && $ctrl.activity.allowswap"> <div class="icon fl"> <i class="fa fa-retweet" data-i18n-attr="_Swap_|title" data-i18n-attr="_Swap_|aria-label"></i> </div> <div class="fl" data-i18n="_Swap_" data-dont-watch></div> <div class="rail-info" ng-show="$ctrl.expanded.swap && $ctrl.open"> <div data-i18n="_SwapBrief_" data-dont-watch></div> <div> <a href ng-click="$ctrl.goSwap($event)" data-i18n="_MoreInfo_" data-dont-watch></a> </div> </div> </div> </div> <div class="bottom-button"> <!-- Expand/Contract --> <div class="bottom icon no-animate" ng-class="{'btn-expanded' : $ctrl.open}"> <i ng-show="$ctrl.open" class="fa fa-compress"></i> <i ng-hide="$ctrl.open" class="fa fa-expand"></i> </div> </div> </div> </div> </script>
vendor: 1 bytes, line 2663
2663
2664<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/swap-page/swap-page.html"><div class="participant-signup container-fluid"> <div class="row participant-section"> <div class="section-inner clearfix assignment"> <div ng-show="$ctrl.show !== 'swap'"> <div class="col-xs-12"> <h2 data-i18n="_SwapTitle_" data-dont-watch></h2> </div> </div> <div ng-show="$ctrl.show === 'instructions'"> <div class="col-xs-12"> <h3 data-i18n="_SwapSubTitleNoJob_" data-dont-watch></h3> <p> <ol> <li data-i18n="_SwapInstructionsStep1_" data-dont-watch></li> <li data-i18n="_SwapInstructionsStep2_" data-dont-watch></li> <li data-i18n="_SwapInstructionsStep3_" data-dont-watch></li> </ol> </p> </div> </div> <div ng-show="$ctrl.show === 'loading'"> <h3 data-i18n="_LoadingDotDotDot_" data-dont-watch></h3> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div ng-if="$ctrl.show === 'swap'"> <assignments-header activity="$ctrl.activity" job="$ctrl.job" claimed-spots="$ctrl.claimedSpots" volunteer="$ctrl.volunteer" show-available="false" show-quantity="false" tracking-label="Swap" back="$ctrl.invitation" ></assignments-header> <div class="assignment-body"> <div class="assignment-right"> <!-- No Events --> <section ng-if="$ctrl.events.length === 0"> <div class="col-xs-12"> <h3 data-i18n="_SwapNoSpotsAvailableTitle_" data-dont-watch></h3> <p data-i18n="_SwapNoSpotsAvailableTitleText_" data-dont-watch></p> </div> <div class="col-xs-10 col-xs-offset-1"> <p> <strong ng-if="$ctrl.activity.orgname">{{ $ctrl.activity.orgname }}</strong> <span ng-if="$ctrl.activity.org_email"> <br> <strong><span data-i18n="_NewVolunteerEmailLabel_" data-dont-watch></span>:</strong> <span>{{ $ctrl.activity.org_email }}</span> </span> <span ng-if="$ctrl.activity.orgphonenumber"> <br> <strong><span data-i18n="_NewVolunteerPhoneLabel_" data-dont-watch></span>:</strong> <span>{{ $ctrl.activity.orgphonenumber }}</span> </span> </p> </div> </section> <!-- We have events--> <div ng-if="$ctrl.events.length > 0" class="swap-body"> <section ng-if="$ctrl.step === 1"> <div class="row"> <div class="col-xs-12"> <div class="col-xs-12 text-center"> <h2 data-i18n="_SwapTitleSelectSpots_" data-dont-watch></h2> </div> <div class="col-sm-6"> <div class="checkbox"> <label> <input type="checkbox" name="select_all" ng-model="$ctrl.selectAll" ng-change="$ctrl.toggleSelectAll()" > <span data-i18n="_SelectAll_" data-dont-watch></span> </label> </div> </div> <div class="col-sm-6 jobs-selected"> <strong><span data-i18n="_Selected_" data-dont-watch></span>:</strong> <span ng-repeat="event in $ctrl.events"> <span class="label label-primary" ng-repeat="job in event.jobs" ng-if="job.selected"> <span>{{job.name}}</span> <button type="button" class="icon-btn white-color" ng-attr-title="{{ '_Remove_'|i18n }}" ng-attr-aria-label="{{ '_Remove_'|i18n }}" ng-click="job.selected = false; $ctrl.checkSelections();" > <span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span> </button> </span> </span> </div> </div> </div> <div ng-repeat="event in $ctrl.events" class="row"> <div class="col-xs-12"> <div class="date-banner col-xs-12"> <date-range start-date="event.edate"></date-range> </div> <div class="col-xs-12 job-row" ng-repeat="job in event.jobs" ng-class="{'bg-info': $odd}"> <div> <div class="job-title clearfix"> <div class="checkbox-container"> <input type="checkbox" name="job_{{job.id}}" ng-model="job.selected" ng-change="$ctrl.checkSelections()" > </div> <i class="fa fa-user" ng-if="job.jobtype === $ctrl.toDo" aria-hidden="true" ></i> <i class="fa fa-shopping-basket" ng-if="job.jobtype === $ctrl.toBring" aria-hidden="true" ></i> <h4>{{job.name}}</h4> </div> <time-range start-hour="job.starthour" start-minute="job.startminute" end-hour="job.endhour" end-minute="job.endminute" time-format="$ctrl.timeFormat" activity-timezone="($ctrl.useActivityTimeZone ? false: $ctrl.activity.timezone)" display-timezone="::$ctrl.browserTimeZone" job-date="event.edate" ></time-range> <div ng-if="job.desc" class="job-description" vspot-overflow ng-bind-html="job.desc"></div> </div> <div class="job-comments"> <job-comments volunteer="$ctrl.volunteer" job="job" activity-type="$ctrl.activity.activitytype" activity-id="$ctrl.activity.id" ></job-comments> </div> <div class="participant-list"> <participant-list volunteer="$ctrl.volunteer" job="job" collapsed="false" clickable="false" show-review-link="false" show-names="::$ctrl.activity.shownames" ></participant-list> </div> </div> </div> </div> </section> <section ng-if="$ctrl.step === 2"> <div class="row"> <div class="col-xs-12"> <div class="col-xs-12 text-center"> <h2 data-i18n="_SwapTitleMessage_" data-dont-watch></h2> </div> <div class="col-xs-12"> <div class="alert alert-danger ng-hide" role="alert" ng-show="$ctrl.errorMessage">{{ $ctrl.errorMessage }}</div> <div class="alert alert-danger ng-hide" role="alert" ng-show="$ctrl.errorI18n" data-i18n="{{ $ctrl.errorI18n }}"></div> </div> <div class="col-xs-12 current-spot"> <div class="fl title"> <strong data-i18n="_SwapLabelCurrentSpot_" data-dont-watch></strong> </div> <div class="fl"> <div class="green-color">{{ $ctrl.job.name }}</div> <date-range start-date="$ctrl.job.job_date"></date-range> <time-range start-hour="$ctrl.job.starthour" start-minute="$ctrl.job.startminute" end-hour="$ctrl.job.endhour" end-minute="$ctrl.job.endminute" time-format="$ctrl.timeFormat" ></time-range> </div> </div> </div> </div> <form method="post" class="formhorizontal row"> <div class="form-group"> <div class="col-xs-12"> <div class="col-xs-9"> <label for="swap_msg" class="sr-only" data-i18n="_SwapMessageLabel_" data-dont-watch></label> <textarea class="form-control swap-msg" ng-model="$ctrl.swapMessage" id="swap_msg" ></textarea> </div> </div> </div> </form> </section> <section ng-if="$ctrl.step === 3"> <div class="row"> <div class="col-xs-12"> <div class="col-xs-12 text-center"> <h2 data-i18n="_SwapTitleSend_" data-dont-watch></h2> </div> <div class="col-xs-12"> <p data-i18n="_SwapMessageSent_" data-dont-watch></p> </div> </div> </div> </section> <div class="row"> <div class="col-xs-12 mb10 mt10 no-animate"> <div class="col-sm-6 text-left">
2664 <button type="button" class="btn vs1-white-blue-btn" data-i18n="_Cancel_" data-dont-watch ng-click="$ctrl.invitation()" ng-show="$ctrl.step < 3"></button> </div> <div class="col-sm-6 text-right"> <button type="button" class="btn btn-primary" data-i18n="_NextWithArrow_" data-dont-watch ng-click="$ctrl.toNote()" ng-disabled="$ctrl.disableNext" ng-show="$ctrl.step === 1" ></button> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.submitting"></i> <button type="button" class="btn btn-primary" data-i18n="_SwapBtnSendRequest_" data-dont-watch ng-click="$ctrl.send()" ng-disabled="$ctrl.submitting" ng-show="$ctrl.step === 2" ></button> <button type="button" class="btn btn-primary" data-i18n="_Done_" data-dont-watch ng-click="$ctrl.invitation()" ng-show="$ctrl.step === 3" ></button> </div> </div> </div> </div> </div> </div> </div> <!-- Errors to show if the page is just not going to work... non recoverable --> <div ng-show="$ctrl.show === 'error'"> <div class="col-xs-12"> <div class="alert alert-danger ng-hide" role="alert" ng-show="$ctrl.errorMessage">{{ $ctrl.errorMessage }}</div> <div class="alert alert-danger ng-hide" role="alert" ng-show="$ctrl.errorI18n" data-i18n="{{ $ctrl.errorI18n }}"></div> </div> </div> <!-- Return buttons --> <div class="mb20" ng-show="$ctrl.show !== 'swap'"> <div class="col-sm-6 text-center"> <button type="button" data-i18n="_SwapButtonInvitation_" data-dont-watch class="btn btn-primary" ng-click="$ctrl.invitation()" ></button> </div> <div class="col-sm-6 text-center"> <a class="btn btn-primary white-color" data-i18n="_SwapButtonMySpots_" data-dont-watch class="btn btn-primary" href="#/invitation?myspots=true" ></a> </div> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2664
2664
2665<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/notify-me/notify-me.html"><div class="main container-fluid"> <p> <span data-i18n="_NotifyMeModalText_" data-dont-watch></span> </p> <form method="post" class="form-horizontal col-xs-12" id="notifyForm" name="notifyForm" role="form" vspot-validation="$ctrl.submit" novalidate accept-charset="utf-8" > <div class="row"> <div class="col-xs-12"> <div class="checkbox col-xs-offset-3 col-xs-9"> <label for="notify_me_spot"> <input id="notify_me_spot" name="notifyMeSpot" type="radio" ng-model="$ctrl.data.notifyMeOn" value="job" checked > <span data-i18n="_NotifyMeSpot_" data-dont-watch></span> </label> </div> </div> </div> <div class="row" ng-if="$ctrl.showEventOption"> <div class="col-xs-12"> <div class="checkbox col-xs-offset-3 col-xs-9"> <label for="notify_me_day"> <input id="notify_me_day" name="notifyMeDay" type="radio" ng-model="$ctrl.data.notifyMeOn" value="event" > <span data-i18n="_NotifyMeDay_" data-dont-watch></span> </label> </div> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="checkbox col-xs-offset-3 col-xs-9"> <label for="notify_me_activity"> <input id="notify_me_activity" name="notifyMeActivity" type="radio" ng-model="$ctrl.data.notifyMeOn" value="activity" > <span data-i18n="_NotifyMeActivity_" data-dont-watch></span> </label> </div> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="checkbox col-xs-offset-3 col-xs-9"> <label for="notify_me_none"> <input id="notify_me_none" name="notifyMeNone" type="radio" ng-model="$ctrl.data.notifyMeOn" value="none" > <span data-i18n="_NotifyMeNone_" data-dont-watch></span> </label> </div> </div> <div class="col-xs-10 info note" ng-if="(($ctrl.data.notifyMeOn == 'none') && $ctrl.deleteDescription)">{{$ctrl.deleteDescription}}</div> </div> <div class="form-group buttons"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" data-i18n="_Cancel_" data-dont-watch ng-click="$ctrl.cancelAction()"></button> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.submitting"></i> <button type="submit" class="btn btn-primary" data-i18n="_Update_"></button> </div> </div> </form> </div></script>
vendor: 1 bytes, line 2665
2665
2666<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/number-picker/number-picker.html"><div class="input-group number-picker" ng-attr-id="container_{{ $ctrl.id }}"> <span class="input-group-btn"> <button class="btn btn-default" ng-click="$ctrl.decrement($event)" ng-disabled="$ctrl.volunteer.jaQuantity <= $ctrl.min"> <i class="fa fa-minus"></i> </button> </span> <input type="number" class="form-control value" name="quantity" ng-attr-id="{{ $ctrl.id }}" ng-model="$ctrl.volunteer.jaQuantity" min="{{ $ctrl.min }}" ng-attr-max="{{ $ctrl.max }}" required validation-required="_FieldRequiredError_" data-i18n-attr="{{ $ctrl.placeHolder }}|placeholder" ng-attr-validation-after="container_{{ $ctrl.id }}" > <span class="input-group-btn"> <button class="btn btn-default" ng-click="$ctrl.increment($event)" ng-disabled="$ctrl.volunteer.jaQuantity >= $ctrl.max"> <i class="fa fa-plus"></i> </button> </span> </div></script>
vendor: 1 bytes, line 2666
2666
2667<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/participant-identify/participant-identify.html"><div class="participant-signup container-fluid"> <div class="row participant-section"> <div class="section-inner clearfix assignment"> <assignments-header ng-if="$ctrl.claimedSpots" activity="$ctrl.activity" job="$ctrl.job" claimed-spots="$ctrl.claimedSpots" volunteer="$ctrl.volunteer" tracking-label="Participant Identify" back="$ctrl.cancel" ></assignments-header> <div class="assignment-body"> <div class="assignment-right"> <h2 class="assignments-title" data-i18n="_ParticipantAssignmentStep1Intro_" data-dont-watch ng-if="!$ctrl.showWaiver"></h2> <div class="col-xs-12 mb10"> <log-in ng-if="!$ctrl.showWaiver" is-modal="false" volunteer-activity="true" activity-id="$ctrl.activity.id" close="$ctrl.cancel" action="$ctrl.afterLogIn" ></log-in> <user-waiver ng-if="$ctrl.showWaiver" activity="$ctrl.activity" volunteer="$ctrl.volunteer" cancel-action="$ctrl.cancel" success-action="$ctrl.afterWaiver" ></user-waiver> </div> </div> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2667
2667
2668<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/my-info/my-info.html"> my Info {{$ctrl}} {{$ctrl.volunteer}}</script>
vendor: 1 bytes, line 2668
2668
2669<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/participant-waiver/participant-waiver.html"><div class="participant-signup container-fluid"> <div class="row participant-section"> <div class="section-inner clearfix assignment"> <assignments-header ng-if="$ctrl.claimedSpots" activity="$ctrl.activity" volunteer="$ctrl.volunteer" tracking-label="Participant Waiver" back="$ctrl.cancel" show-quantity="false" ></assignments-header> <div class="assignment-body"> <div class="assignment-right"> <div class="col-xs-12 mb10"> <user-waiver ng-if="$ctrl.showWaiver" activity="$ctrl.activity" volunteer="$ctrl.volunteer" cancel-action="$ctrl.cancel" success-action="$ctrl.afterWaiver" ></user-waiver> <div ng-if="!$ctrl.showWaiver"> <h2><span data-i18n="_LoadingDotDotDot_" data-dont-watch></span></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" alt=""> </div> </div> </div> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2669
2669
2670<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/invitation/invitation.html"> <div class="participant-signup container-fluid"> <div class="row participant-section"> <div class="section-inner clearfix"> <div class="activity-data"> <div class="activity-image" ng-if="!$ctrl.activity.badge && $ctrl.activity.image_location"> <!-- 200 x up to 200 --> <img ng-src="{{ ::$ctrl.activity.image_location }}" ng-attr-alt="{{ ::$ctrl.activity.title }}"> </div> <div class="activity-image-mobile visible-sm-inline visible-xs-inline" ng-if="$ctrl.activity.badge"> <!-- 70 x 70 --> <img ng-src="{{ ::$ctrl.activity.badge.mobile_url }}" ng-attr-alt="{{ ::$ctrl.activity.badge.name }}"> </div> <div class="activity-image-desktop hidden-sm hidden-xs" ng-if="$ctrl.activity.badge"> <!-- 150 x 150 --> <img ng-src="{{ ::$ctrl.activity.badge.url }}" ng-attr-alt="{{ ::$ctrl.activity.badge.name }}"> </div> <div class="activity-info"> <div class="col-xs-12 mt10"> <h1 class="word-wrap">{{ ::$ctrl.activity.title }}</h1> </div> <div class="col-xs-12" ng-if="$ctrl.activity.kind === 'dated'"> <date-range start-date="::$ctrl.activity.startdate" end-date="::$ctrl.activity.enddate" ></date-range> <span>{{ ::$ctrl.activity.timezone }}</span> </div> <div class="activity-description word-wrap" ng-bind-html="::$ctrl.activity.description"></div> <div class="activity-items"> <signup-share activity="::$ctrl.activity" ng-if="$ctrl.activity.share"></signup-share> <button type="button" class="btn btn-link link-button contribute-link pop-up" ng-href="{{$ctrl.contribLink}}" ng-if="$ctrl.contribLink" > <i class="fa fa-usd" aria-hidden="true"></i><i class="fa fa-usd" aria-hidden="true"></i> <span data-i18n="_Contribute_" data-dont-watch></span> </button> </div> </div> </div> <div class="col-xs-12 divided-section activity-controls"> <!--*************** Beging Date Range ******************--> <div ng-if="$ctrl.showDateControl"> <h4 class="black-color" data-i18n="_FilterByDate_"></h4> <date-range-picker start-date="::$ctrl.activity.startdate" end-date="::$ctrl.activity.enddate" display-date="::$ctrl.activity.displaydate" update-date-range="$ctrl.updateDateRange" hide-past-spots="$ctrl.hidePastSpots" your-days="$ctrl.yourDays" available-days="$ctrl.availableDays" full-days="$ctrl.fullDays" ></date-range-picker> </div> <!--*************** End Date Range ******************--> <div class="mb10 ml10" ng-if="$ctrl.volunteer && $ctrl.myAssignments.length > 0"> <a ng-href="{{:: '/client/print_spots?accesskey=' + $ctrl.volunteer.accessKey + '&activity_id=' + $ctrl.activity.id + '&_=' + $ctrl.cacheBuster }}" target="_blank" rel="noopener noreferrer" aria-label="Print spots (opens in a new tab)"><i class="fa fa-print" aria-hidden="true"></i></a> <a ng-href="{{:: '/client/print_spots?accesskey=' + $ctrl.volunteer.accessKey + '&activity_id=' + $ctrl.activity.id + '&_=' + $ctrl.cacheBuster }}" target="_blank" rel="noopener noreferrer" aria-label="Print spots (opens in a new tab)"><span data-i18n="_ClientConfirmPrintSpots_" data-dont-watch></span></a> </div> <div class="mb10 ml10 mr10" ng-if="$ctrl.volunteer && $ctrl.activity.kind === 'dated' && $ctrl.myAssignments.length > 0"> <a ng-href="{{:: '/client/export_ical/' + $ctrl.volunteer.id + '?activity_id=' + $ctrl.activity.id + '&accesskey=' + $ctrl.volunteer.accessKey + '&_=' + $ctrl.cacheBuster }}" target="_blank" rel="noopener noreferrer" aria-label="Add to calendar (opens in a new tab)"><i class="fa fa-calendar" aria-hidden="true"></i></a> <a ng-href="{{:: '/client/export_ical/' + $ctrl.volunteer.id + '?activity_id=' + $ctrl.activity.id + '&accesskey=' + $ctrl.volunteer.accessKey + '&_=' + $ctrl.cacheBuster }}" target="_blank" rel="noopener noreferrer" aria-label="Add to calendar (opens in a new tab)"><span data-i18n="_ClientConfirmAddToCalendar_" data-dont-watch></span></a> </div> <div class="check-boxes"> <div ng-show="$ctrl.showPastSpotsControl"> <div class="checkbox"> <label> <input type="checkbox" ng-model="$ctrl.hidePastSpotsLocal" ng-disabled="$ctrl.loading || $ctrl.mainLoader" ng-click="$ctrl.updateCheckBox('hidePastSpots')"> <span data-i18n="_HidePastSpots_" data-dont-watch></span> </label> </div> </div> <div> <div class="checkbox"> <label> <input type="checkbox" ng-model="$ctrl.hideFullSpotsLocal" ng-disabled="$ctrl.loading || $ctrl.mainLoader" ng-click="$ctrl.updateCheckBox('hideFullSpots')"> <span data-i18n="_HideFullSpots_" data-dont-watch></span> </label> </div> </div> <div ng-show="$ctrl.volunteer"> <div class="checkbox"> <label> <input type="checkbox" ng-model="$ctrl.mySpotsLocal" ng-disabled="$ctrl.loading || $ctrl.mainLoader" ng-click="$ctrl.updateCheckBox('mySpots')"> <span data-i18n="_MySpotsOnly_" data-dont-watch></span> </label> </div> </div> <div ng-if="$ctrl.activity.timezone"> <div class="checkbox"> <label> <input type="checkbox" ng-model="$ctrl.useDeviceTimeZoneLocal" ng-disabled="$ctrl.loading || $ctrl.mainLoader" ng-click="$ctrl.updateCheckBox('useDeviceTimeZone')"> <span data-i18n="_UseDeviceTimeZone_" data-dont-watch></span> </label> </div> </div> </div> </div> <div class="br"></div> <activity-rows ng-if="$ctrl.initialized" activity="$ctrl.activity" access-key="$ctrl.accessKey" show-identity-form="$ctrl.showIdentityForm" volunteer="$ctrl.volunteer" events="$ctrl.events" num-past-spots="$ctrl.numPastSpots" last-updated="$ctrl.lastUpdated" hide-past-spots="$ctrl.hidePastSpots" hide-full-spots="$ctrl.hideFullSpots" my-spots="$ctrl.mySpots" my-spots-list="$ctrl.mySpotsList" my-assignees="$ctrl.myAssignees" my-assignments="$ctrl.myAssignments" set-pagination="$ctrl.setPagination" loading="$ctrl.loading" show-loading="$ctrl.showLoading" hide-loading="$ctrl.hideL
2670oading" date-map="$ctrl.dateMap" chunk="$ctrl.chunk" ></activity-rows> </div> </div> <div id="div-gpt-ad-1503091846794-0"></div> </div> </script>
vendor: 1 bytes, line 2670
2670
2671<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/participant-dot/participant-dot.html"><span class="fa-stack fa-lg" > <i class="fa fa-circle fa-stack-2x" aria-hidden="true" style="color: {{ $ctrl.color }};"></i> <strong class="fa-stack-1x participant-initials">{{ $ctrl.initials }}</strong> </span></script>
vendor: 1 bytes, line 2671
2671
2672<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/assignments-header/assignments-header.html"><div class="header-img-title"> <div class="activity-image-container ng-hide" ng-show="$ctrl.activity.badge || $ctrl.activity.image_location"> <div class="activity-image" ng-if="!$ctrl.activity.badge && $ctrl.activity.image_location"> <img ng-src="{{ $ctrl.activity.image_location }}" ng-attr-alt="{{ $ctrl.activity.title }}"> </div> <div class="activity-image" ng-if="$ctrl.activity.badge"> <img ng-src="{{ $ctrl.activity.badge.mobile_url }}" ng-attr-alt="{{ $ctrl.activity.badge.name }}"> </div> </div> <div class="header-title"> <h3 class="word-wrap">{{ $ctrl.activity.title }}</h3> <h2> <span class="ng-hide" ng-show="$ctrl.showDate"> <date-range start-date="$ctrl.job.job_date"></date-range> – </span> {{ $ctrl.job.name }} </h2> </div> </div> <div ng-if="$ctrl.showQuantity"> <h3><span data-i18n="_Quantity_" data-dont-watch></span>:</h3> <h2> {{ $ctrl.claimedSpots }} <span data-i18n="_Spot_" data-dont-watch ng-show="$ctrl.claimedSpots === 1"></span> <span data-i18n="_Spots_" data-dont-watch ng-show="$ctrl.claimedSpots !== 1"></span> <span ng-if="$ctrl.showAvailable"> / <span ng-if="!$ctrl.unlimited">{{ $ctrl.job.available }}</span> <span data-i18n="_Available_" data-dont-watch ng-if="!$ctrl.unlimited"></span> <span data-i18n="_unlimited_" data-dont-watch ng-if="$ctrl.unlimited" class="text-capitalize"></span> </span> </h2> </div> <div class="activity-close"> <!-- Close Icon --> <button type="button" class="icon-btn" ng-attr-title="{{ '_Close_'|i18n }}" ng-attr-aria-label="{{ '_Close_'|i18n }}" data-trackelem = "_CloseButton_" ng-click="$ctrl.close($event)" > <i class="fa fa-times" aria-hidden="true"></i> </button> </div></script>
vendor: 1 bytes, line 2672
2672
2673<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/confirm-email/confirm-email.html"><div class="main"> <p> <span data-i18n="_ConfirmEmailModalText_" data-dont-watch></span> <br> {{$ctrl.user.email}} </p> <div class="buttons center-text"> <button class="btn btn-success" ng-click="$ctrl.callback({reloadUser: false});" > <span data-i18n="_ConfirmEmailContinueAs_" data-dont-watch></span> {{ $ctrl.user.name | limitTo:40 }}{{ $ctrl.user.name.length > 40 ? '…' : '' }} </button> <br><span class="or">or</span><br> <button ng-if="!$ctrl.activity.share" class="btn btn-info" ng-click="$ctrl.callback({reloadUser: true});" > <span data-i18n="_ConfirmEmailNot_" data-dont-watch></span> {{ $ctrl.user.name | limitTo:40 }}{{ $ctrl.user.name.length > 40 ? '…' : '' }} </button> <!----> <button ng-if="!!$ctrl.activity.share" class="btn btn-info" ng-click="$ctrl.callback({reloadUser: true});" data-i18n="_ConfirmEmailContinueAsGuest_" data-dont-watch></button> </div> </div></script>
vendor: 1 bytes, line 2673
2673
2674<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/confirm-page/confirm-page.html"><div class="participant-signup container-fluid"> <main> <div class="row participant-section"> <div class="section-inner clearfix"> <div class="title-row"> <h2 data-i18n="_ClientConfirmPageTitleLoading_" data-dont-watch ng-if="$ctrl.loading"></h2> <h2 data-i18n="_ClientConfirmPageTitle_|{{$ctrl.activity.title}}" data-dont-watch ng-if="!$ctrl.loading && $ctrl.myAssignments.length > 0"></h2> <h2 data-i18n="_ClientConfirmPageTitleNoSpots_" data-dont-watch ng-if="!$ctrl.loading && $ctrl.myAssignments.length === 0"></h2> </div> <div class="title-row"> <a ui-sref="invitation"> <button type="button" class="btn vs1-white-blue-btn" data-i18n="_ClientConfirmPageBackButton_" data-dont-watch></button> </a> <div class="text-center"> <div class="note mb5">Follow us on Facebook!</div> <div class="fb-follow" data-href="https://www.facebook.com/signupdotcom" data-layout="button_count" data-size="large" data-show-faces="false"></div> </div> </div> <div class="col-xs-12 ng-hide" ng-show="$ctrl.loading"> <h3 data-i18n="_LoadingDotDotDot_" data-dont-watch></h3> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div class="ng-hide" ng-show="!$ctrl.loading"> <div class="title-row"> <h2 data-i18n="_ClientConfirmYourSpotsTitle_" data-dont-watch ng-if="$ctrl.myAssignments.length > 0"></h2> <h2 data-i18n="_ClientConfirmNoSpotsTitle_" data-dont-watch ng-if="$ctrl.myAssignments.length === 0"></h2> <span ng-repeat="assignment in $ctrl.myAssignments | filter: {isPast: false} as upcoming track by $index" class="ng-hide"> <!-- Total hack to get the variable "upcoming" populated for the next line... move this to the controller! --> </span> <div ng-if="upcoming.length > 0"> <button type="button" class="btn btn-link link-button pop-up" ng-href="{{ '/client/print_spots?accesskey=' + $ctrl.volunteer.accessKey + '&activity_id=' + $ctrl.activity.id + '&_=' + $ctrl.cacheBuster }}" ng-if="$ctrl.volunteer && $ctrl.myAssignments.length > 0" > <i class="fa fa-print" aria-hidden="true"></i> <span data-i18n="_ClientConfirmPrintSpots_" data-dont-watch></span> </button> <button type="button" class="btn btn-link link-button ml20 pop-up" ng-href="{{ '/client/export_ical/' + $ctrl.volunteer.id + '?activity_id=' + $ctrl.activity.id + '&accesskey=' + $ctrl.volunteer.accessKey + '&_=' + $ctrl.cacheBuster }}" ng-if="$ctrl.volunteer && $ctrl.activity.kind === 'dated' && $ctrl.myAssignments.length > 0" > <i class="fa fa-calendar" aria-hidden="true"></i> <span data-i18n="_ClientConfirmAddToCalendar_" data-dont-watch></span> </button> </div> </div> <section class="col-xs-12" ng-if="$ctrl.myAssignments.length > 0"> <div class="spot-headers clearfix" ng-if="upcoming.length > 0"> <div class="col-xs-4">Spot</div> <div class="col-xs-3" ng-if="$ctrl.showTitles.assigner.date">Date</div> <div class="col-xs-3" style="text-align: center" ng-if="$ctrl.showTitles.assigner.time">Time<div ng-if="$ctrl.activity.timezone">{{($ctrl.useActivityTimeZone ? $ctrl.displayActivityTimeZone : $ctrl.displayBrowserTimeZone)}}</div></div> <div class="col-xs-2">Quantity</div> </div> <div class="spot-row clearfix" ng-repeat="assignment in $ctrl.myAssignments | filter: {isPast: false} as upcoming track by $index"> <div class="col-xs-4"> <i class="fa fa-user primary-color" aria-hidden="true" ng-if="assignment.toDo"></i> <i class="fa fa-shopping-bag primary-color" aria-hidden="true" ng-if="assignment.toBring"></i> <span class="word-wrap">{{assignment.jobTitle}}</span> </div> <div class="col-xs-3" ng-if="assignment.showDate"> {{ assignment.date | amDateFormat : 'dddd MMM D, YYYY' }} </div> <div class="col-xs-3" ng-if="!assignment.showDate && $ctrl.showTitles.assigner.date"> <!-- Placeholder, if needed --> </div> <time-range ng-if="assignment.showTime || assignment.showTimeRange" start-hour="assignment.date.hour()" start-minute="assignment.date.minute()" end-hour="(assignment.showTimeRange ? assignment.endTime.hour() : -1)" end-minute="(assignment.showTimeRange ? assignment.endTime.minute() : -1)" class="col-xs-3" time-format="$ctrl.timeFormat" activity-timezone="($ctrl.useActivityTimeZone ? false: $ctrl.activity.timezone)" display-timezone="::$ctrl.browserTimeZone" job-date="assignment.date" ></time-range> <div class="col-xs-3" ng-if="!assignment.showTime && !assignment.showTimeRange && $ctrl.showTitles.assigner.time"> <!-- Placeholder, if needed --> </div> <div class="col-xs-2">{{ assignment.myJobAsgtCt }}</div> <div class="col-xs-11 col-xs-offset-1 spot-description note" ng-if="assignment.jobDescription" ng-bind-html="assignment.jobDescription"></div> </div> <div ng-if="upcoming.length === 0" class="col-xs-12 note">No upcoming spots</div> </section> </div> <div class="ng-hide" ng-show="!$ctrl.loading && $ctrl.assigneeAssignments.length > 0"> <div class="title-row"> <h2 data-i18n="_ClientConfirmParticipantSpotsTitle_" data-dont-watch></h2> <span ng-repeat="assignment in $ctrl.assigneeAssignments | filter: {isPast: false} as assigneeUpcoming track by $index" class="ng-hide"> <!-- Total hack to get the variable "assigneeUpcoming" populated for the next line... move this to the controller! --> </span> <div ng-if="assigneeUpcoming.length > 0"> <button type="button" class="btn btn-link link-button pop-up" ng-href="{{ '/client/print_spots?accesskey=' + $ctrl.volunteer.accessKey + '&activity_id=' + $ctrl.activity.id + '&_=' + $ctrl.cacheBuster }}" ng-if="$ctrl.volunteer && $ctrl.myAssignments.length > 0" > <i class="fa fa-print" aria-hidden="true"></i> <span data-i18n="_ClientConfirmPrintSpots_" data-dont-watch></span> </button> <button type="button" class="btn btn-link link-button ml20 pop-up" ng-href="{{ '/client/export_ical/' + $ctrl.volunteer.id + '?activity_id=' + $ctrl.activity.id + '&accesskey=' + $ctrl.volunteer.accessKey + '&_=' + $ctrl.cacheBuster }}" ng-if="$ctrl.volunteer && $ctrl.activity.kind === 'dated' && $ctrl.myAssignments.length > 0" > <i class="fa fa-calendar" aria-hidden="true"></i> <span data-i18n="_ClientConfirmAddToCalendar_" data-dont-watch></span> </button> </div> </div> <section class="col-xs-12"> <div class="spot-headers clearfix" ng-if="assigneeUpcoming.length > 0"> <div class="col-xs-4">Spot</div> <div class="col-xs-3" ng-if="$ctrl.showTitles.assignees.date">Date</div> <div class="col-xs-3" ng-if="$ctrl.showTitles.assignees.time">Time</div> <div class="col-xs-2">Quantity</div> </div> <div class="spot-row clearfix" ng-repeat="assignment in $ctrl.assigneeAssignments | filter: {isPast: false} as assigneeUpcoming track by $index"> <div class="col-xs-4"> <i class="fa fa-user secondary-color" aria-hidden="true" ng-if="assignment.toDo"></i> <i class="fa fa-shopping-bag secondary-color" aria-hidden="true" ng-if="assignment.toBring"></i> <span class="word-wrap">{{assignment.assignees.join(', ')}}</span>: <span class="word-wrap">{{assignment.jobTitle}}</span> </div> <div class="col-xs-3" ng-if="assignment.showDate"> {{ assignment.date | amDateFormat : 'dddd MMM D, YYYY' }} </div> <div class="col-xs-3" ng-if="!assignment.showDate && $ctrl.showTitles.assignees.date"> <!-- Placeholder, if needed --> </div> <div class="col-xs-3" ng-if="assignment.showTime"> {{ assignment.date | amDateFormat : $ctrl.timeFormat }} </div> <div class="col-xs-3" ng-if="assignment.showTimeRange"> {{ assignment.date | amDateFormat : $ctrl.timeFormat }} - {{ assignment.endTime | amDateFormat : $ctrl.timeFormat }} </div> <div class="col-xs-3" ng-if="!assignment.showTime && !assignment.showTimeRange && $ctrl.showTitles.assignees.time"> <!-- Placeholder, if needed --> </div> <div class="col-xs-2">{{ assignment.myAssAsgtCt }}</div> </div> <div ng-if="assigneeUpcoming.length === 0" class="note">No upcoming spots</div> </section> </div> <div class="title-row mt20" ng-if="$ctrl.isDemo || $ctrl.groupLink"> <a ng-if="$ctrl.isDemo" href="/Organizer/Register" class="btn vs1-orangebtn demo-button" data-i18n="_ClientConfirmPageDemoRegisterLink_" data-dont-watch ></a> <a ng-href="{{$ctrl.groupLink}}" ng-if="$ctrl.groupLink"> <button type="button" class="btn btn-primary" data-i18n="_BackToGroupPage_" data-dont-watch></button> </a> </div> </div> </div> <div class="row participant-bottom-section"> <div class="participant-section"> <div class="section-inner"> <div> <h3 data-i18n="_ClientConfirmOrganizeUpSellTitle_" data-dont-watch></h3> <div class="divided-section"></div> </div> <div> <h4 data-i18n="_ClientConfirmOrganizeUpSellSubTitle_" data-dont-watch></h4> <ul> <li data-i18n="_ClientConfirmOrganizeUpSellItemsOne_" data-dont-watch></li> <li data-i18n="_ClientConfirmOrganizeUpSellItemsTwo_" data-dont-watch></li> <li data-i18n="_ClientConfirmOrganizeUpSellItemsThree_" data-dont-watch></li> <li data-i18n="_ClientConfirmOrganizeUpSellItemsFour_" data-dont-watch></li> <li data-i18n="_ClientConfirmOrganizeUpSellItemsFive_" data-dont-watch></li> <li data-i18n="_ClientConfirmOrganizeUpSellItemsSix_" data-dont-watch></li> </ul> </div> <div class="participant-upsell"> <div class="text-center"> <label for="become_organizer" class="form-control-static" data-i18n="_ClientConfirmOrganizeUpSellButtonLabel_" data-dont-watch></label> </div> <div class="text-center"> <a href="/organizer/register"><button type="button" class="btn btn-primary btn-sm" id="become_organizer" data-i18n="_ClientConfirmOrganizeUpSellButtonText_" data-dont-watch></button></a> </div> </div> </div> </div> <div class="participant-section"> <div class="section-inner"> <div> <h3 data-i18n="_ClientConfirmSocialShareTitle_" data-dont-watch></h3> <div class="divided-section"></div> </div> <div> <h4 data-i18n="_ClientConfirmSocialShareSubTitle_" data-dont-watch></h4> <div class="participant-social"> <div class="text-center"> <a href="http://twitter.com/SignUpdotcom" target="_blank" rel="noopener noreferrer" aria-label="Twitter (opens in a new tab)"><img src="/imgs/icons/client/Twitter-icon.png" alt="Twitter" title="Twitter" border="0"></a> </div> <div class="text-center"> <a href="https://www.facebook.com/SignUpdotcom" target="_blank" rel="noopener noreferrer" aria-label="Facebook (opens in a new tab)"><img src="/imgs/icons/client/Facebook-icon.png" alt="Facebook" title="Facebook" border="0"></a> </div> <div class="text-center"> <a href="https://www.pinterest.com/signupdotcom/" target="_blank" rel="noopener noreferrer" aria-label="Pinterest (opens in a new tab)"><img src="/imgs/icons/client/Pinterest-icon.png" alt="Pinterest" title="Pinterest" border="0"></a> </div> </div> </div> <div> <div class="text-center"> <user-feedback button-class="btn-primary btn-sm" name="$ctrl.volunteer.contactname" email="$ctrl.volunteer.email"></user-feedback> </div> </div> </div> </div> </div> </main> </div></script>
vendor: 1 bytes, line 2674
2674
2675<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/participant-list/participant-list.html"><aside class="no-animate" ng-if="$ctrl.job.jobassignments.length > 0"> <div ng-show="$ctrl.collapsed" ng-click="$ctrl.showFullList()" ng-class="{ 'clickable': $ctrl.clickable }"> <participant-dot ng-repeat="vol in $ctrl.dotsArray" name="vol.name" color-str="vol.colorStr" ></participant-dot> <span ng-if="$ctrl.dotsDiff > 0">+ {{ $ctrl.dotsDiff }}</span> </div> <h4 class="participants-list-heading" ng-show="!$ctrl.collapsed && $ctrl.clickable" ng-click="$ctrl.hideFullList()" ng-class="{ 'clickable': $ctrl.clickable }"> <div class="title"> <span data-i18n="_SignedUp_" data-dont-watch></span> </div> <div class="close-icon"> <i class="fa fa-angle-double-up" aria-hidden="true" data-i18n-attr="_Close_|title"></i> </div> </h4> <table class="participants-list table table-condensed table-striped" ng-show="!$ctrl.collapsed"> <tbody> <tr ng-repeat="participant in $ctrl.whosComingArray"> <td> <participant-dot name="participant.who" color-str="participant.colorStr" ></participant-dot> </td> <td class="word-wrap" ng-class="{'current-volunteer': participant.volunteer_id === $ctrl.volunteer.id}" ng-if="participant.showLink"> <a href ng-click="$ctrl.initiateSignUp(participant, $ctrl.job, $ctrl.volunteer, false)" ng-disabled="$ctrl.activityLocked || $ctrl.job.locked" >{{ participant.who }}</a> </td> <td class="word-wrap" ng-class="{'current-volunteer': participant.volunteer_id === $ctrl.volunteer.id}" ng-if="!participant.showLink"> <span>{{ participant.who }}</span> </td> <td class="nowrap" ng-class="{'current-volunteer': participant.volunteer_id === $ctrl.volunteer.id}" ng-if="participant.showLink"> <a href ng-click="$ctrl.initiateSignUp(participant, $ctrl.job, $ctrl.volunteer, false)" ng-disabled="$ctrl.activityLocked || $ctrl.job.locked" > {{ participant.quantity }} <span data-i18n="_Spot_" data-dont-watch ng-if="participant.quantity === 1"></span> <span data-i18n="_Spots_" data-dont-watch ng-if="participant.quantity !== 1"></span> </a> </td> <td class="nowrap" ng-class="{'current-volunteer': participant.volunteer_id === $ctrl.volunteer.id}" ng-if="!participant.showLink"> {{ participant.quantity }} <span data-i18n="_Spot_" data-dont-watch ng-if="participant.quantity === 1"></span> <span data-i18n="_Spots_" data-dont-watch ng-if="participant.quantity !== 1"></span> </td> <td> <span ng-if="participant.assigners && participant.assigners.length === 1"><span data-i18n="_Assigner_" data-dont-watch></span>:</span> <span ng-if="participant.assigners && participant.assigners.length > 1"><span data-i18n="_Assigners_" data-dont-watch></span>:</span> <span ng-repeat="assigner in participant.assigners"> <span ng-show="!$first">,</span> {{ assigner.assigner_name }} <span ng-if="assigner.assigner_phone"> (<a ng-href="{{'tel:' + assigner.assigner_phone}}"><i class="fa fa-phone" aria-hidden="true"></i> {{assigner.assigner_phone}}</a>) </span> </span> </td> </tr> </tbody> </table> <div class="text-right" ng-show="$ctrl.displayReviewLink() && !$ctrl.collapsed"> <a href ng-click="$ctrl.initiateSignUp(participant, $ctrl.job, $ctrl.volunteer, false)" data-i18n="_ReviewParticipants_" data-dont-watch></a> </div> </aside></script>
vendor: 1 bytes, line 2675
2675
2676<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/participants/change-modal.html"><div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.close({$value: {result: 'cancel'}})">×</button> <h2 class="subheadline" data-i18n="_ParticipantSignUpChangeModalTitle_" data-dont-watch></h2> </div> <div class="modal-body"> <ul class="change-set"> <li ng-repeat="change in $ctrl.changes.diffs"> <strong class="orig-value"> {{ change.old }}</strong> is now <strong class="new-value"> <span ng-if="change.new.length > 0">{{ change.new }}</span> <span ng-if="change.new.length === 0" data-i18n="_blank_" data-dont-watch></span> </strong> </li> </ul> </div> <div class="modal-footer"> <div class="text-center mb20" data-i18n="_ParticipantSignUpChangeModalQuestion_" data-dont-watch></div> <div class="change-buttons" ng-class="{ 'full-width': $ctrl.showNew }"> <button ng-if="$ctrl.showNew" type="button" class="btn btn-primary" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close({$value: {result: 'new'}})" data-i18n="_ParticipantSignUpChangeModalCreate_" data-dont-watch ></button> <span ng-if="$ctrl.showNew" class="change-or" data-i18n="_Or_" data-dont-watch></span> <button type="button" data-i18n="_ParticipantSignUpChangeModalUpdate_" data-dont-watch class="btn btn-success" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close({$value: {result: 'change'}})" ></button> </div> <div class="text-center mt20"> <button type="button" data-i18n="_ParticipantSignUpChangeModalCancel_" data-dont-watch class="btn btn-link cancel-button" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close({$value: {result: 'cancel'}})" ></button> </div> </div></script>
vendor: 1 bytes, line 2676
2676
2677<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/participants/participants.html"><div class="participant-signup container-fluid"> <div class="row participant-section"> <div class="section-inner clearfix assignment"> <assignments-header activity="$ctrl.activity" job="$ctrl.job" claimed-spots="$ctrl.claimedSpots" volunteer="$ctrl.volunteer" tracking-label="Participants" back="$ctrl.back" ></assignments-header> <div class="assignments-error" ng-show="$ctrl.errorMessage || $ctrl.errorI18n" id="participant_edit_error"> <div class="ng-hide" role="alert" ng-show="$ctrl.errorMessage" ng-bind-html="$ctrl.errorMessage"></div> <div class="ng-hide" role="alert" ng-show="$ctrl.errorI18n" data-i18n="{{ $ctrl.errorI18n }}"></div> </div> <div class="assignment-body"> <div class="assignment-right"> <div ng-if="$ctrl.initialized" class="participants-management-area"> <div class="participants-list" ng-show="savedList.length || !$ctrl.isAddParticipantDisabled()"> <table class="table table-condensed" ng-show="savedList.length"> <thead> <tr> <th> </th> <th data-i18n="_Name_" data-dont-watch></th> <th> </th> </tr> </thead> <tbody> <tr ng-repeat="vol in savedList = $ctrl.volunteerList" class="clickable" ng-class="{'selected': $index === $ctrl.activeVolunteer}" ng-click="$ctrl.switchParticipant($index)" > <td> <participant-dot name="vol.contactname" color-str="vol.colorStr" ></participant-dot> </td> <td> <span ng-if="vol.contactname" class="word-wrap">{{ vol.contactname }}</span> <span ng-if="!vol.contactname && vol.email" class="word-wrap">{{ vol.email }}</span> <span ng-if="!vol.contactname && !vol.email" data-i18n="_ParticipantAssignmentNewParticipant_" data-dont-watch class="word-wrap"></span> </td> <td> <button ng-attr-id="{{ 'remove_icon_' + $index }}" type="button" class="icon-btn delete-color" ng-attr-title="{{ '_Remove_'|i18n }}" ng-attr-aria-label="{{ '_Remove_'|i18n }}" ng-disabled="vol.disabled" data-trackelem = "_Remove_" ng-click="vol.disabled = true; $ctrl.whichSubmit = 'remove'; $ctrl.removeParticipant($index, $event)" > <label ng-attr-for="{{ 'remove_icon_' + $index }}" class="sr-only" data-i18n="_Remove_" data-dont-watch></label> <span class="fa fa-trash-o" aria-hidden="true"></span> </button> </td> </tr> </tbody> </table> <div ng-if="!$ctrl.activity.signup_others && $ctrl.job.available > 0 && !$ctrl.isAssignerInParticipantList()"> <!-- Show the add yourself button --> <div class="col-xs-12 text-center"> <button type="button" class="btn btn-info btn-xs btn-block" ng-click="$ctrl.addAssigner()" ng-disabled="$ctrl.doneOnly" > <i class="fa fa-plus" aria-hidden="true"></i> <span data-i18n="_ParticipantAssignmentAddAssignerButton_" data-dont-watch></span> </button> </div> </div> <div ng-if="$ctrl.activity.signup_others"> <!-- Show the add assigners and assignees buttons --> <div class="col-xs-12 text-center" ng-if="$ctrl.job.available > 0 && !$ctrl.isAddParticipantDisabled() && !$ctrl.isAssignerInParticipantList() && $ctrl.volunteerList.length === 0"> <button type="button" class="btn btn-info btn-xs btn-block" ng-click="$ctrl.addAssigner()" ng-disabled="$ctrl.doneOnly" > <i class="fa fa-plus" aria-hidden="true"></i> <span data-i18n="_ParticipantAssignmentAddAssignerButton_" data-dont-watch></span> </button> <div class="mt20 mb20"> — <span data-i18n="_Or_" data-dont-watch></span> — </div> </div> <div class="col-xs-12 text-center" ng-if="$ctrl.job.available > 0 && !$ctrl.isAddParticipantDisabled() && $ctrl.volunteerList.length === 0"> <button type="button" class="btn btn-info btn-xs btn-block" ng-click="$ctrl.addParticipant($event)" ng-disabled="$ctrl.doneOnly" > <i class="fa fa-plus" aria-hidden="true"></i> <span class="trackElem" data-i18n="_ParticipantAssignmentAddParticipantButton_" data-dont-watch></span> </button> </div> <div class="col-xs-12 text-right add-participant-button-note"> <span data-i18n="_ParticipantAssignmentStep2NoSpotsText_" data-dont-watch class="note" ng-show="$ctrl.job.available <= 0"></span> </div> </div> </div> <div class="participant-edit"> <div ng-show="!$ctrl.volunteerList.length" class="mt20 clearfix"> <div class="clearfix" data-i18n="_ParticipantAssignmentNoParticipantsMessage_" data-dont-watch></div> </div> <div ng-repeat="vol in $ctrl.volunteerList"> <section ng-show="$index === $ctrl.activeVolunteer"> <div class="participant-header"> <div class="participant-header-icon"> <participant-dot name="vol.contactname" color-str="vol.colorStr" ></participant-dot> </div> <div class="participant-header-title"> <h3 class="assignee" data-i18n="_ParticipantSignUpAssigneeCallOut_" data-dont-watch></h3> <div ng-if="$ctrl.activityLimit" class="activity_limits_container"> <span class="activity_limits_header" data-i18n="_ActivityLimitHeader_|{{$ctrl.activityLimit}}" > </span> <div ng-if="$ctrl.limitReached"> <span class="activity_limits_header" data-i18n="_AssignerActivityLimitHeader_" > </span> </div> </div> </div> </div> <form method="post" vspot-validation="$ctrl.saveParticipant" ng-attr-name="participantForms.log_in_{{vol.uniqueKey}}" ng-attr-id="log_in_{{vol.uniqueKey}}" role="form" accept-charset="utf-8" novalidate ng-show="$ctrl.toShow === 'user-info'" class="participant-form" > <input type="hidden" name="participant_key" ng-model="vol.uniqueKey"> <div class="container-fluid"> <div class="row"> <div class="form-group col-lg-7"> <label class="control-label" ng-attr-for="contactname_{{$index}}"> <span data-i18n="_Name_" data-dont-watch></span> <span class="required">*</span> </label> <input type="text" name="contactname" ng-attr-id="contactname_{{$index}}" ng-model="vol.contactname" class="form-control" maxlength="80" required validation-required="_FieldRequiredError_" data-i18n-attr="_ParticipantAssignmentParticipantName_|placeholder" autofocus data-tf-sensitive="false" > </div> <div class="form-group col-lg-5"> <label class="control-label nowrap" ng-attr-for="{{ 'quantity_' + $index }}"> # <span data-i18n="_of_" data-dont-watch></span> <span data-i18n="_Spots_" data-dont-watch></span> <span class="required">*</span> </label> <signup-number-picker id="{{ 'quantity_' + $index }}" place-holder="_Num_" volunteer="vol" job="$ctrl.job" activity=$ctrl.activity ></signup-number-picker> </div> </div> <div class="row"> <div class="form-group col-sm-6"> <label class="control-label no-animate" ng-attr-for="email_{{$index}}"> <span data-i18n="_Email_" data-dont-watch></span> </label>
2677 <div class="form-control-static" ng-if="!$ctrl.activity.signup_others" data-tf-sensitive="false"> {{ vol.email }} </div> <input ng-if="$ctrl.activity.signup_others" type="email" name="email" ng-attr-id="email_{{$index}}" ng-model="vol.email" class="form-control" maxlength="254" data-i18n-attr="_Email_|placeholder" data-tf-sensitive="false" > </div> <div class="form-group col-sm-6"> <label class="control-label" ng-attr-for="contactphone_{{$index}}"> <span data-i18n="_Phone_" data-dont-watch></span> <span class="required" ng-if="$ctrl.activity.require_phone">*</span> </label> <input ng-if="$ctrl.activity.require_phone" type="text" name="contactphone" id-attr-id="contactphone_{{$index}}" ng-model="vol.contactphone" class="form-control" maxlength="40" required validation-required="_FieldRequiredError_" data-i18n-attr="_Phone_|placeholder" > <input ng-if="!$ctrl.activity.require_phone" type="text" name="contactphone" id-attr-id="contactphone_{{$index}}" ng-model="vol.contactphone" class="form-control" maxlength="40" data-i18n-attr="_Phone_|placeholder" > <div class="checkbox" ng-if="!vol.isAssignee && ($ctrl.activity.sms_enabled || vol.sms_optin)"> <label> <input type="checkbox" ng-attr-id="sms_option_{{$index}}" ng-model="vol.sms_optin" > <span data-i18n="_SMS_OPT_IN_" data-dont-watch></span> </label> </div> </div> </div> <div class="row"> <div class="form-group col-sm-6" ng-repeat-start="c in $ctrl.activity.custom_fields | orderBy:'order'"> <label class="control-label word-wrap" ng-attr-for="custom_fields_{{$index}}_{{ c.id }}"> <span class="word-wrap">{{ c.title }}</span> <span id="label-{{c.id}}" ng-if="c.definition.required" class="required">*</span> </label> <span class="help-block word-wrap" ng-if="c.definition && c.definition.comment != ''">{{c.definition.comment}}</span> <div class="word-wrap" ng-switch="c.definition.format"> <div ng-switch-when="text"> <input type="text" ng-attr-name="custom_fields_{{$index}}_{{ c.id }}" ng-attr-id="custom_fields_{{$index}}_{{ c.id }}" ng-model="vol.extra_fields['customfield' + c.field_number]" class="form-control" maxlength="255" ng-required="c.definition.required" ng-attr-placeholder="{{ c.title }}" > </div> <div data-ng-switch-when="number"> <input type="number" class="form-control value" ng-attr-name="custom_fields_{{$index}}_{{ c.id }}" ng-attr-id="custom_fields_{{$index}}_{{ c.id }}" ng-model="vol.extra_fields['customfield' + c.field_number]" min="{{ c.definition.min }}" ng-attr-max="{{ c.definition.max }}" ng-required="c.definition.required" > </div> <div data-ng-switch-when="date"> <input type="date" ng-attr-name="custom_fields_{{$index}}_{{ c.id }}" ng-attr-id="custom_fields_{{$index}}_{{ c.id }}" ng-model="vol.extra_fields['customfield' + c.field_number]" ng-required="c.definition.required" placeholder="yyyy-MM-dd" > </div> <div ng-switch-when="checkbox"> <div class="checkbox" ng-repeat="cb_name in c.definition.values.split(',')"> <label> <input type="checkbox" name="custom_fields_{{$parent.$index}}_{{ c.id }}_checkbox" id="custom_fields_{{$parent.$index}}_{{ c.id }}_checkbox{{cb_name}}" ng-model="vol.extra_fields['customfield' + c.field_number][cb_name]" ng-required="c.definition.required && ($ctrl.countCheckboxesSet(vol.extra_fields['customfield' + c.field_number]) == 0)" validation-after="label-{{c.id}}" > <span ng-bind-html="cb_name"></span> </label> </div> </div> <div data-ng-switch-when="dropdown"> <select id="custom_fields_{{$index}}_{{ c.id }}_dropdown" name="custom_fields_{{$index}}_{{ c.id }}" class="form-control" ng-model="vol.extra_fields['customfield' + c.field_number]" ng-options="o for o in c.definition.values.split(',')" ng-required="c.definition.required" > </select> </div> <div class="radio" data-ng-switch-when="radio"> <div ng-repeat="r in c.definition.values.split(',') track by $index"> <label> <input type="radio" name="custom_fields_{{$parent.$index}}_{{ c.id }}" id= "custom_fields_{{$parent.$index}}_{{ c.id }}radio{{r}}" ng-value="r" ng-model="vol.extra_fields['customfield' + c.field_number]" ng-required="c.definition.required" validation-after="label-{{c.id}}" /> <span>{{ r }}</span> </label> </div> </div> </div> </div> <div class="br" ng-repeat-end ng-if="$odd"></div> </div> <!-- Assignee waiver check box: --> <div class="form-group" ng-if="$ctrl.activity.waiver.enabled && vol.isAssignee"> <label> <input type="checkbox" ng-attr-name="waiver_{{ vol.id }}" ng-disabled="vol.waiver && vol.waiverChecked" ng-model="vol.waiverChecked" > <span data-i18n="_ParticipantAssignmentWaiver_" data-dont-watch></span> </label> </div> <div class="form-group" ng-if="vol.showCheckBoxes"> <div class="checkbox" ng-if="vol.origs.subscribe === 0"> <label> <user-checkbox pre-check="true" subscribe-value="vol.subscribe" name="'subscribe_' + $index" ></user-checkbox> <span data-i18n="_MyInformationSubscribe_" data-dont-watch></span> </label> </div> <div class="checkbox" ng-repeat="cr in vol.coreg"> <label> <user-checkbox pre-check="cr.default_checked" subscribe-value="vol['offer_' + cr.coreg_id]" name="'offer_' + $index + '_' + cr.coreg_id" data-tf-sensitive="false" ></user-checkbox> <span ng-show="vol.prompt === 0" ng-bind-html="cr.prompt1"></span> <span ng-show="vol.prompt === 1" ng-bind-html="cr.prompt2"></span> </label> </div> </div>
2677 <div class="participant-buttons" ng-if="!$ctrl.doneOnly"> <!-- Cancel: --> <div class="button-container" ng-show="participantForms.log_in_{{vol.uniqueKey}}.$dirty"> <button type="button" class="btn btn-link cancel-button" ng-disabled="vol.disabled" ng-class="{'bold':$ctrl.mergeBtnDisabled}" ng-click="vol.disabled = true; $ctrl.cancelParticipantForm(false, $event)" data-trackelem = "_CancelLink_" > <span data-i18n="_Cancel_" data-dont-watch></span> </button> </div> <!-- Save and Add Another: --> <div class="button-container" ng-show="!$ctrl.forceMerge && $ctrl.activity.signup_others && ($ctrl.job.available - (vol.jaQuantity - vol.origs.jaQuantity) > 0)"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon ng-hide" aria-hidden="true" ng-show="$ctrl.submitting"></i> <!-- <i class="fa fa-check primary-color fa-2x submit-success ng-hide" aria-hidden="true" ng-show="!$ctrl.submitting && vol.submitted && !$ctrl.isAddParticipantDisabled()"></i> <span class="note green-color" data-i18n="_Saved_" data-dont-watch ng-show="!$ctrl.submitting && vol.submitted && !$ctrl.isAddParticipantDisabled()"></span> --> <button type="submit" class="btn btn-primary" ng-disabled="vol.disabled" ng-click="$ctrl.whichSubmit = 'save-and-add';" data-trackelem="_SaveSignUp_" > <span class="hidden-lg" data-i18n="_SaveSignUp_" data-dont-watch></span> <span class="visible-lg-inline" data-i18n="_SaveSignUpBig_" data-dont-watch></span> </button> </div> <!-- Save and Done: --> <div class="button-container" ng-show="!$ctrl.forceMerge"> <button type="submit" class="btn btn-success" ng-disabled="vol.disabled" ng-click="$ctrl.whichSubmit = 'save-and-done';" data-trackelem="_FinishSignUp_" > <span class="hidden-lg" data-i18n="_FinishSignUp_" data-dont-watch></span> <span class="visible-lg-inline" data-i18n="_FinishSignUpBig_" data-dont-watch></span> </button> </div> <!-- The merge button: --> <div class="button-container" ng-show="$ctrl.forceMerge"> <button type="submit" class="btn btn-danger" ng-disabled="vol.disabled || $ctrl.mergeBtnDisabled" ng-click="$ctrl.whichSubmit = 'save';" > <span data-i18n="_Merge_" data-dont-watch></span> </button> </div> </div> <div class="participant-buttons" ng-if="$ctrl.doneOnly"> <!-- The done button: --> <div class="button-container"> <button type="button" class="btn btn-success" ng-click="$ctrl.back()" > <span data-i18n="_Done_" data-dont-watch></span> </button> </div> </div> </div> </form> <!-- Only for the assigner: --> <user-waiver ng-if="$ctrl.toShow === 'user-waiver'" activity="$ctrl.activity" volunteer="vol" cancel-action="$ctrl.waiverCancel" success-action="$ctrl.waiverSuccess" ></user-waiver> </section> </div> </div> </div> </div> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2677
2677
2678<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/activity-rows/activity-rows.html"><div id="activities" class="main clearfix"> <div id="activities_inner"> <div ng-if="$ctrl.showRow(row, $last)" ng-repeat="row in $ctrl.rows track by row.displayIdx" class="no-animate activity-row"> <div ng-attr-id="{{ 'row-' + row.displayIdx }}" class="date-banner col-sm-12 no-animate" ng-class="{ 'open': !$ctrl.rowhide[row.groupIdx] }" ng-if="row.showHeader" ng-click="$ctrl.toggleInfo(row.displayIdx)" > <div> <i class="fa fa-chevron-down" aria-hidden="true" ng-hide="$ctrl.rowhide[row.groupIdx]"></i> <i class="fa fa-chevron-right" aria-hidden="true" ng-show="$ctrl.rowhide[row.groupIdx]"></i> <date-range start-date="row.edate"></date-range> </div> <div class="count"> {{ row.filled }} <span ng-if="row.maxIsFinite"> <span data-i18n="_of_" data-dont-watch></span> {{ row.max }} </span> <span data-i18n="_Filled_" data-dont-watch></span> </div> </div> <div ng-if="row.showBody" ng-attr-id="{{ 'rowDetails-' + row.displayIdx }}" class="rowDetails clearfix"> <!-- Titles --> <div ng-if="row.showTitles" ng-attr-id="{{ 'row-titles-' + row.displayIdx }}" class="row-titles clearfix"> <h3 class="col-sm-6 col-md-4 col-lg-3" data-i18n="_Spot_" data-dont-watch></h3> <div class="col-sm-6 col-md-4 col-lg-2" style="text-align: center"> <h3 data-i18n="_Time_" data-dont-watch></h3> <h3 ng-if="$ctrl.activity.timezone">{{($ctrl.useActivityTimeZone ? $ctrl.displayActivityTimeZone : $ctrl.displayBrowserTimeZone)}}</h3> </div> <h3 class="col-sm-6 col-md-4 col-lg-2" data-i18n="_Filled_" data-dont-watch></h3> <h3 class="col-sm-6 col-md-6 col-lg-3" data-i18n="_Participants_" data-dont-watch></h3> <div class="col-sm-6 col-md-6 col-lg-2" aria-hidden="true"> </div> </div> <div ng-if="row.showJob" ng-attr-id="{{ 'row-' + row.displayIdx }}" class="job-row clearfix" > <div class="col-sm-12 job-row-inner"> <div class="first-row narrow-cols-5 clearfix clickable" ng-click="row.expanded = !row.expanded"> <div class="col-sm-6 col-md-4 col-lg-3 name" ng-class="{ 'name-desc': row.desc }"> <i class="fa fa-chevron-down" aria-hidden="true" ng-show="row.expanded"></i> <i class="fa fa-chevron-right" aria-hidden="true" ng-hide="row.expanded"></i> <strong>{{row.name}}</strong> <div class="job-description" ng-if="row.desc" ng-hide="row.expanded">{{ row.descPlain }}</div> </div> <!--"::$ctrl.activity.timezone",--> <time-range start-hour="row.starthour" start-minute="row.startminute" end-hour="row.endhour" end-minute="row.endminute" class="col-sm-6 col-md-4 col-lg-2" time-format="$ctrl.timeFormat" activity-timezone="($ctrl.useActivityTimeZone ? false: $ctrl.activity.timezone)" display-timezone="::$ctrl.browserTimeZone" date="row.job_date" job-date="row.job_date" ></time-range> <div class="col-sm-6 col-md-4 col-lg-2 filled-comments"> <div> <span ng-if="!row.isFinite"> {{ row.filled }} <span data-i18n="_Filled_" data-dont-watch></span> </span> <span ng-if="row.isFinite"> {{ row.filled }} <span data-i18n="_of_" data-dont-watch></span> {{ row.quantityJs }} </span> </div> <job-comments show-identity-form="$ctrl.showIdentityForm" volunteer="$ctrl.volunteer" job="row" activity-type="::$ctrl.activity.activitytype" activity-id="::$ctrl.activity.id" short="true" clickable="false" ></job-comments> </div> <div class="clearfix visible-md-block"></div> <participant-list volunteer="$ctrl.volunteer" job="row" initiate-sign-up="$ctrl.initiateSignUp" c
2678ollapsed="true" clickable="false" invitation-lock="::$ctrl.invitationLock" show-names="::$ctrl.activity.shownames" class="col-sm-6 col-md-6 col-lg-3" ></participant-list> <assignment-widget volunteer="$ctrl.volunteer" job="row" invitation-lock="::$ctrl.invitationLock" initiate-sign-up="$ctrl.initiateSignUp" show-identity-form="$ctrl.showIdentityForm" allow-swap="::$ctrl.activity.allowswap" access-key="$ctrl.accessKey" class="col-sm-6 col-md-6 col-lg-2" show-notifyme="::$ctrl.activity.waitlist_enabled" ></assignment-widget> </div> <div class="second-row row-titles clearfix" ng-if="row.expanded"> <div class="narrow-cols-5"> <div class="col-md-12" ng-if="row.desc"> <h3 data-i18n="_GroupDescription_" data-dont-watch></h3> <div class="job-description" ng-bind-html="row.desc"></div> </div> </div> <div class="narrow-cols-5"> <div class="col-md-6"> <h3 data-i18n="_Comments_" data-dont-watch></h3> <job-comments ng-if="row.expanded" show-identity-form="$ctrl.showIdentityForm" volunteer="$ctrl.volunteer" job="row" activity-type="::$ctrl.activity.activitytype" activity-id="::$ctrl.activity.id" clickable="false" expanded="true" ></job-comments> </div> <div class="col-md-6"> <!-- Participants Vertical list goes here... --> <h3 data-i18n="_SignedUp_" data-dont-watch></h3> <participant-list volunteer="$ctrl.volunteer" job="row" initiate-sign-up="$ctrl.initiateSignUp" c
2678ollapsed="false" clickable="false" invitation-lock="::$ctrl.invitationLock" show-names="::$ctrl.activity.shownames" ></participant-list> </div> </div> </div> </div> </div> </div> <!-- row.displayIdx check --> <div ng-if="row.showSeparator" class="more-seperator" > <div class="show_more_jobs col-sm-12"> <span ng-if="$ctrl.hideFullSpots"> Displaying {{ row.nextSetStart - 1 }} of {{ row.totalJobs - $ctrl.eventFullCounts[row.groupIdx] }} spots for <date-range start-date="row.edate"></date-range> </span> <span ng-if="!$ctrl.hideFullSpots"> Displaying {{ row.nextSetStart - 1 }} of {{ row.totalJobs }} spots for <date-range start-date="row.edate"></date-range> </span> <button type="button" ng-click=" $ctrl.showMoreJobs(row.groupIdx, row.nextSetEnd)" class="vs1-orangebtn" data-i18n="_OverflowMoreJobs_" data-dont-watch>Orange</button> <!-- <a ng-click=" $ctrl.showMoreJobs(row.groupIdx, row.nextSetEnd)" data-i18n="_OverflowMoreJobs_" data-dont-watch></a> --> </div> </div> <div ng-if="$last" class="ng-hide" on-finish-render></div> </div> <div class="loading mb1-" ng-if="$ctrl.loading && !$ctrl.mainLoader"> <i class="fa fa-spinner fa-pulse loader-icon" aria-hidden="true"></i> Loading Spots </div> <div ng-if="$ctrl.rows.length < 1 && !$ctrl.loading && !$ctrl.mainLoader" class="mb10"> <div class="col-sm-12 text-center"> <h3 data-i18n="_NoJobsJobRow_" data-dont-watch></h3> </div> </div> </div> <div class="col-sm-12 paggey" ng-show="$ctrl.numPages > 1"> <ul uib-pagination ng-change="$ctrl.pageChanged()" total-items="$ctrl.totalItems" ng-model="$ctrl.currentPage" class="pagination-sm" boundary-link-numbers="true" items-per-page="::$ctrl.chunk" max-size="::$ctrl.maxSize" rotate="false" num-pages="$ctrl.numPages" ></ul> </div> <div ng-if="$ctrl.showDebugPanel " style=" position: fixed; top: 0;left:800px; border: 1px solid red; padding: 2rem; color: #000; background-color:#fff; "> Previous SignUp: {{$ctrl.myAssignments.length}}<br> <hr> Hide Past Spots : {{$ctrl.hidePastSpots}} <br> My Spots : {{$ctrl.mySpots}} <br> Hide Full Spots : {{$ctrl.hideFullSpots}} <br><hr> Start :{{ $ctrl.start}} End: {{ $ctrl.end}}<br> Is loading : {{$ctrl.loading}} <br> <!--Y: {{$ctrl.scrollY}} <br>--> <!--PreviousY {{$ctrl.previousY}}<br>--> <!--Trigger Down Y: {{$ctrl.triggerHeightDown}}<br>--> <!--Trigger Up Y: {{$ctrl.triggerHeightUp}}<br>--> Page Direction: {{$ctrl.direction}}<br> <!--Height: {{$ctrl.activitiesHeight}}<br>--> Length: {{$ctrl.totalItems}}<br> Scroll To: {{$ctrl.scrollTo}}<br> <!--Start: {{ $ctrl.Start }}<br>--> <!--End: {{ $ctrl.End }}<br>--> <!--Previous Start: {{ $ctrl.lastStart }}<br>--> <!--Previous End: {{ $ctrl.lastEnd }}<br>--> Items Per Page: {{$ctrl.chunk}}<br> Current Page: {{$ctrl.currentPage}}<br> Previous Page: {{ $ctrl.lastPage }}<br> Num Jobs To Display: {{$ctrl.numJobsToDisplay}} </div> </div> </script>
vendor: 1 bytes, line 2678
2678
2679<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/assignment-widget/assignment-widget.html"><div ng-if="!$ctrl.showReviewButton && $ctrl.job.isPast"> <button disabled type="button" class="btn btn-default btn-block" data-i18n="_Past_" data-dont-watch ></button> </div> <div ng-if="!$ctrl.showReviewButton && ($ctrl.activityLocked || $ctrl.job.locked) && !$ctrl.job.isPast" class="button-with-icon"> <button disabled type="button" class="btn btn-danger btn-block main-button" data-i18n="_Locked_" data-dont-watch ></button> <button ng-if="$ctrl.job.locked" type="button" class="icon-button" data-i18n-attr="_Locked_|title" uib-popover-html="$ctrl.getLocalizedString($ctrl.job.lockMessage)" popover-placement="auto right" popover-append-to-body="true" popover-trigger="'mouseenter'" > <label class="sr-only" data-i18n="_Locked_" data-dont-watch></label> <i class="fa fa-lock text-danger" aria-hidden="true"></i> </button> </div> <div ng-if="!$ctrl.showReviewButton && !($ctrl.activityLocked || $ctrl.job.locked) && !$ctrl.job.isPast"> <button ng-if="$ctrl.available === 0" disabled type="button" class="btn btn-default btn-block" data-i18n="_Full_" data-dont-watch ></button> <div ng-if="$ctrl.showNotifyme && ($ctrl.available === 0) && !$ctrl.volunteer"> <a href data-dont-watch ng-click="$ctrl.showIdentityForm()"> <i class="fa fa-bell fa-spin" aria-hidden="true"></i> <span data-i18n="_CommentsSignIn_" data-dont-watch></span> </a> <span class="notifyMeText" > to </span> <span class="notifyMeText" data-i18n="_AddWaitlist_" data-dont-watch></span> </div> <div ng-if="$ctrl.showNotifyme && ($ctrl.available === 0) && $ctrl.volunteer" class="my-spots-menu" uib-dropdown keyboard-nav is-open="$ctrl.mySpotsMenuShowing" ng-click="$event.stopPropagation();"> <label for="full_menu_button" data-i18n="_NotifyMe_" data-dont-watch class="sr-only"></label> <button type="button" class="btn btn-info btn-block" uib-dropdown-toggle id="full_menu_button"> <span data-i18n="_NotifyMe_" data-dont-watch></span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu role="menu"> <li role="menuitem" ng-if="$ctrl.volunteer"> <a href ng-click="$ctrl.notifyMeClick($event)" data-trackelem="_AddWaitlist_"> <i class="fa fa-bell fa-spin" aria-hidden="true"></i> <span data-i18n="_AddWaitlist_" data-dont-watch></span> </a> </li> </ul> </div> <button ng-if="$ctrl.available > 0" type="button" class="btn btn-success btn-block" data-i18n="_SignUp_" data-dont-watch ng-disabled="$ctrl.job.disabled" ng-click="$ctrl.signUp($event, true)" data-trackelem = "_SignUp_" ></button> </div> <div ng-if="$ctrl.showReviewButton"> <div class="my-spots-menu" uib-dropdown keyboard-nav is-open="$ctrl.mySpotsMenuShowing" ng-click="$event.stopPropagation();"> <label for="my_spots_menu_button" data-i18n="_MySpotsSettings_" data-dont-watch class="sr-only"></label> <button type="button" class="btn btn-info btn-block" uib-dropdown-toggle id="my_spots_menu_button" ng-disabled="$ctrl.job.disabled"> <span data-i18n="_MySpotsSettings_" data-dont-watch></span> <span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu role="menu"> <li role="menuitem"> <a href ng-click="$ctrl.signUp($event, false)" data-trackelem="_MySpotsSettingsEdit_"> <i class="fa fa-pencil" aria-hidden="true"></i> <span data-i18n="_MySpotsSettingsEdit_" data-dont-watch></span> </a> </li> <li role="menuitem" ng-if="$ctrl.allowSwap && $ctrl.myJobCount > 0"> <a href ng-click="$ctrl.swap($event)" data-trackelem="_MySpotsSettingsSwap_"> <i class="fa fa-retweet" aria-hidden="true"></i> <span data-i18n="_MySpotsSettingsSwap_" data-dont-watch></span> </a> </li> <li role="menuitem"> <a href ng-click="$ctrl.maybeRemoveSpots($event)" data-trackelem="_MySpotsSettingsRemove_"> <i class="fa fa-trash-o" aria-hidden="true"></i> <span data-i18n="_MySpotsSettingsRemove_" data-dont-watch></span> </a> </li> <li role="menuitem" ng-if="$ctrl.showNotifyme && ($ctrl.available === 0)"> <a href ng-click="$ctrl.notifyMeClick($event)" data-trackelem="_AddWaitlist_"> <i class="fa fa-bell fa-spin" aria-hidden="true"></i> <span data-i18n="_AddWaitlist_" data-dont-watch></span> </a> </li> </ul> </div> </div> </script>
vendor: 1 bytes, line 2679
2679
2680<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/modal-manager/modal-manager.html"><div class="modal-header"> <button type="button" class="close ng-hide" ng-click="$ctrl.close()" ng-show="$ctrl.showClose">×</button> <h2 class="subheadline" data-i18n="{{ $ctrl.title }}"></h2> </div> <div class="modal-body ng-hide" ng-show="$ctrl.showBody"> <confirm-email ng-if="$ctrl.toShow === 'confirm-email'" user="$ctrl.user" callback="$ctrl.callback(reloadUser)" ></confirm-email> <user-info ng-if="$ctrl.toShow === 'user-info'" activity="$ctrl.activity" volunteer="$ctrl.volunteer" cancel-action="$ctrl.close" success-action="$ctrl.callback" ></user-info> <user-waiver ng-if="$ctrl.toShow === 'user-waiver'" activity="$ctrl.activity" volunteer="$ctrl.volunteer" cancel-action="$ctrl.close" success-action="$ctrl.callback" ></user-waiver> <notify-me ng-if="$ctrl.toShow === 'notify-me'" activity="$ctrl.activity" volunteer="$ctrl.volunteer" job="$ctrl.job" mywaitlists="$ctrl.mywaitlists" cancel-action="$ctrl.close" success-action="$ctrl.callback" ></notify-me> </div> <log-in ng-if="$ctrl.toShow === 'log-in'" is-modal="true" volunteer-activity="$ctrl.volunteerActivity" activity-id="$ctrl.activity.id" close="$ctrl.close"; action="$ctrl.callback" forgot-password="true" ></log-in></script>
vendor: 1 bytes, line 2680
2680
2681<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/existing-assignments/existing-assignments.html"><div class="participant-signup container-fluid"> <div class="row participant-section"> <div class="section-inner clearfix assignment"> <assignments-header activity="$ctrl.activity" job="$ctrl.job" claimed-spots="$ctrl.claimedSpots" volunteer="$ctrl.volunteer" tracking-label="Existing Assignments" back="$ctrl.close" ></assignments-header> <div class="assignment-body"> <div class="assignment-right ng-hide" ng-show="$ctrl.claimedSpots"> <div class="col-xs-12"> <p class="text-center mt20"> <i class="fa fa-thumbs-o-up fa-5x goldenrod-color" aria-hidden="true"></i> </p> <h3 class="text-center goldenrod-color" data-i18n="_ParticipantAssignmentStep2ErrorTitleSingular_" data-dont-watch ng-show="$ctrl.claimedSpots === 1"></h3> <h3 class="text-center goldenrod-color" data-i18n="_ParticipantAssignmentStep2ErrorTitlePlural_" data-dont-watch ng-show="$ctrl.claimedSpots > 1"></h3> <p class="text-center"> <span data-i18n="_ParticipantAssignmentStep2ErrorTextSingluar_" data-dont-watch ng-show="$ctrl.claimedSpots === 1"></span> <span data-i18n="_ParticipantAssignmentStep2ErrorTextPlural_|{{ $ctrl.claimedSpots }}" data-dont-watch ng-show="$ctrl.claimedSpots > 1"></span> </p> </div> <div class="col-xs-12 mb10"> <div class="row"> <div class="col-sm-6 text-left"> <button type="button" data-i18n="_ParticipantAssignmentStep2ErrorCancelButton_" data-dont-watch class="btn vs1-white-blue-btn" ng-click="$ctrl.close()" ng-disabled="$ctrl.goingBack || $ctrl.goingNext" ></button> <i class="fa fa-spinner fa-pulse fa-2x loader-icon ng-hide" aria-hidden="true" ng-show="$ctrl.goingBack"></i> </div> <div class="col-sm-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon ng-hide" aria-hidden="true" ng-show="$ctrl.goingNext"></i> <button type="submit" data-i18n="_ParticipantAssignmentStep2ErrorContinueButton_" data-dont-watch class="btn btn-primary" ng-click="$ctrl.next()" ng-disabled="$ctrl.goingBack || $ctrl.goingNext" ></button> </div> </div> </div> </div> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2681
2681
2682<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/date-range/date-range.html"><span ng-if="$ctrl.beginningDate"> <time ng-attr-datetime="$ctrl.beginningDate | amDateFormat:$ctrl.dateTimeFormat" >{{ $ctrl.beginningDate | amDateFormat:$ctrl.dateFormat }}</time> <span ng-if="$ctrl.endingDate"> <span ng-bind-html="$ctrl.seperator"></span> <time ng-attr-datetime="$ctrl.endingDate | amDateFormat:$ctrl.dateTimeFormat" >{{ $ctrl.endingDate | amDateFormat:$ctrl.dateFormat }}</time> </span> </span></script>
vendor: 1 bytes, line 2682
2682
2683<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/signup-share/share-popover.html"><div class="clearfix" style="width: 100%;"> <div class="vs-share-invite vs-share-invite__link"> <a href ng-click="$ctrl.showShareByLink($event)"> <i class="fa fa-link fa-2x" aria-hidden="true"></i><span data-i18n="_ShareInvitationLinkShare_" data-dont-watch></span> </a> </div> <div class="vs-share-invite vs-share-invite__tw"> <a ng-href="{{ $ctrl.twitterLink }}" class="pop-up" window_specs="width=600,height=300,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,titlebar=no,toolbar=no"> <i class="fa fa-twitter fa-2x" aria-hidden="true"></i><span data-i18n="_ShareInvitationTwitterShare_" data-dont-watch></span> </a> </div> <div class="br"></div> <div class="vs-share-invite vs-share-invite__fb"> <a href ng-click="$ctrl.shareByFB()"> <i class="fa fa-facebook fa-2x" aria-hidden="true"></i><span data-i18n="_ShareInvitationFBShare_" data-dont-watch></span> </a> </div> <div class="vs-share-invite vs-share-invite__email"> <a href ng-click="$ctrl.showShareByEmail($event)"> <i class="fa fa-envelope fa-2x" aria-hidden="true"></i><span data-i18n="_ShareInvitationEmailShare_" data-dont-watch></span> </a> </div> </div></script>
vendor: 1 bytes, line 2683
2683
2684<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/signup-share/signup-share.html"><button type="button" class="btn btn-link link-button" uib-popover-template="'/script/vspot-angular/components/participant-signup/signup-share/share-popover.html'" popover-placement="bottom" popover-trigger="'outsideClick'" popover-append-to-body="true" > <i class="fa fa-share-alt" aria-hidden="true"></i> <span data-i18n="_ShareInvitation_" data-dont-watch></span> </button></script>
vendor: 1 bytes, line 2684
2684
2685<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/signup-share/share-by-link.html"><div class="modal-header"> <button type="button" class="close" ng-click="ctrl.ok()">×</button> <h2 class="subheadline" data-i18n="_ShareByLinkHeader_" data-dont-watch></h2> </div> <div class="modal-body form-group container-fluid"> <p data-i18n="_ShareByLinkPrompt_" data-dont-watch></p> <input type="text" id="share_txt" readonly class="form-control" ng-click="ctrl.select()" value="{{ ctrl.shareUrl }}" > </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12 text-right"> <button data-i18n="_Ok_" data-dont-watch ng-click="ctrl.ok()" type="submit" class="btn btn-primary"></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2685
2685
2686<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/signup-share/share-by-email.html"><div class="modal-header"> <button type="button" class="close" ng-click="ctrl.ok()">×</button> <h2 class="subheadline" data-i18n="_ShareByEmailHeader_" data-dont-watch></h2> </div> <div class="modal-body form-group container-fluid"> <p data-i18n="_ShareByEmailPrompt_" data-dont-watch></p> <textarea id="share_txt" readonly rows="6" cols="77" class="form-control" ng-click="ctrl.select()" >{{ ctrl.emailBody }}</textarea> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12 text-right"> <button data-i18n="_Ok_" data-dont-watch ng-click="ctrl.ok()" type="submit" class="btn btn-primary"=></button> </div> </div> </div> </script>
vendor: 1 bytes, line 2686
2686
2687<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/time-range/time-range.html"><span ng-if="$ctrl.useStartTime"> <time ng-attr-datetime="$ctrl.beginningDate | amDateFormat:$ctrl.dateTimeFormat" >{{ $ctrl.beginningDate | amDateFormat:$ctrl.timeFormat }}</time> <span ng-if="$ctrl.useEndTime"> <span ng-bind-html="$ctrl.seperator"></span> <time ng-attr-datetime="$ctrl.endingDate | amDateFormat:$ctrl.dateTimeFormat" >{{ $ctrl.endingDate | amDateFormat:$ctrl.timeFormat }}</time> </span> <span ng-if="$ctrl.zoneMessage" style="color: red" ng-bind-html="$ctrl.zoneMessage"></span> </span></script>
vendor: 1 bytes, line 2687
2687
2688<script type="text/ng-template" id="/script/vspot-angular/components/participant-signup/job-comments/job-comments.html"><aside ng-if="!$ctrl.showJobComments" ng-class="{ 'clickable': $ctrl.clickable }" ng-click="$ctrl.showComments()" > <i class="fa fa-comments-o" aria-hidden="true"></i> <span ng-if="$ctrl.short"> ({{ $ctrl.commentsCount }}) </span> <span ng-if="!$ctrl.short"> <span ng-if="$ctrl.commentsCount">{{ $ctrl.commentsCount }}</span> <span data-i18n="_Comment_" data-dont-watch ng-if="$ctrl.commentsCount === 1"></span> <span data-i18n="_Comments_" data-dont-watch ng-if="$ctrl.commentsCount !== 1"></span> </span> </aside> <aside ng-if="$ctrl.showJobComments"> <div class="alert alert-danger ng-hide" role="alert" ng-show="$ctrl.errorMessage || $ctrl.errorCode"> <span ng-show="$ctrl.errorMessage">{{ $ctrl.errorMessage }}</span> <span ng-show="$ctrl.errorCode" data-i18n="{{ $ctrl.errorCode }}"></span> </div> <div ng-show="$ctrl.loading"> <h4 data-i18n="_LoadingDotDotDot_" data-dont-watch></h4> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div ng-show="!$ctrl.loading"> <h4 class="comments-heading" ng-click="$ctrl.hideComments()" ng-class="{ 'clickable': $ctrl.clickable }" ng-if="$ctrl.clickable"> <div class="fl"> <i class="fa fa-comments-o" aria-hidden="true"></i> <span data-i18n="_Comments_" data-dont-watch></span> </div> <div class="fr text-right"> <!-- <i class="fa fa-refresh mr10 primary-color" aria-hidden="true" ng-click="$ctrl.refresh($event)" data-i18n-attr="_Refresh_|title"></i> --> <i class="fa fa-angle-double-up" aria-hidden="true" data-i18n-attr="_Close_|title"></i> </div> </h4> <table class="comments-list table table-condensed table-striped"> <tr ng-repeat="comment in $ctrl.comments"> <td> <div class="word-wrap"> <strong ng-if="$ctrl.volunteer.id === comment.volunteer_id" data-i18n="_CommentsMeColon_" data-dont-watch></strong> <strong ng-if="$ctrl.volunteer.id !== comment.volunteer_id && comment.name">{{comment.name}}:</strong> <strong ng-if="$ctrl.volunteer.id !== comment.volunteer_id && !comment.name" data-i18n="_CommentsParticipantColon_" data-dont-watch>:</strong> </div> <div ng-if="$ctrl.volunteer.id === comment.volunteer_id"> <a href data-i18n="_Update_" data-dont-watch ng-click="$ctrl.editComment(comment)" ng-show="!comment.edit"></a> </div> </td> <td ng-if="!comment.edit">{{comment.text}}</td> <td ng-if="comment.edit" colspan="2"> <form method="post" name="edit_comment" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div class="form-group"> <div class="col-xs-12"> <label ng-attr-for="comment_{{ comment.id }}" class="sr-only">{{ $ctrl.newCommentPlaceholder | i18n }}</label> <textarea ng-attr-name="comment_{{ comment.id }}" ng-attr-id="comment_{{ comment.id }}" class="form-control" ng-model="comment.text" data-i18n-attr="{{ $ctrl.newCommentPlaceholder }}|placeholder" ></textarea> <label ng-attr-for="comment_{{ comment.id }}" class="text-danger" role="alert" data-i18n="_COMMENTS_MODAL_COMMENT_MAXLENGTH_" data-dont-watch ng-show="comment.text.length > $ctrl.commentMax" ></label> </div> </div> <div class="form-group"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn btn-xs" data-i18n="_Cancel_" data-dont-watch ng-click="$ctrl.cancelEditComment(comment)"></button> </div> <div class="col-xs-6 text-right"> <span class="mr10 form-control-static" ng-class="{ 'text-danger': comment.text.length > $ctrl.commentMax, 'text-info': comment.text.length > ($ctrl.commentMax - 20) && comment.text.length <= $ctrl.commentMax, 'text-muted': comment.text.length <= ($ctrl.commentMax - 20) }" >{{ $ctrl.commentMax - comment.text.length }}</span> <button type="button" class="btn btn-info btn-xs" data-i18n="_Update_" data-dont-watch ng-click="$ctrl.updateComment(comment)"></button> </div> </div> </form> </td> <td ng-if="!comment.edit"> <div class="text-muted" am-time-ago="comment.full_date"></div> </td> </tr> </table> <div class="form-group add-box" ng-if="!$ctrl.volunteer" ng-class="{ 'separator': $ctrl.comments.length > 0 }"> <a href data-i18n="_CommentsSignIn_" data-dont-watch ng-click="$ctrl.showIdentityForm()"></a> <span data-i18n="_CommentsToComment_" data-dont-watch></span> </div> <form ng-if="$ctrl.volunteer" method="post" name="add_comment" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div class="form-group add-box" ng-class="{ 'separator': $ctrl.comments.length > 0 }"> <div class="col-xs-12">
2688 <label ng-attr-for="new_comment_{{ $ctrl.job.id }}" class="sr-only">{{ $ctrl.newCommentPlaceholder | i18n }}</label> <textarea ng-attr-name="new_comment_{{ $ctrl.job.id }}" ng-attr-id="new_comment_{{ $ctrl.job.id }}" class="form-control" ng-model="$ctrl.newComment" data-i18n-attr="{{ $ctrl.newCommentPlaceholder }}|placeholder" ></textarea> <label ng-attr-for="new_comment_{{ $ctrl.job.id }}" class="text-danger" role="alert" data-i18n="_COMMENTS_MODAL_COMMENT_MAXLENGTH_" data-dont-watch ng-show="$ctrl.newComment.length > $ctrl.commentMax" ></label> </div> </div> <div class="form-group"> <div class="col-xs-12 text-right"> <span class="mr10 form-control-static" ng-class="{ 'text-danger': $ctrl.newComment.length > $ctrl.commentMax, 'text-info': $ctrl.newComment.length > ($ctrl.commentMax - 20) && $ctrl.newComment.length <= $ctrl.commentMax, 'text-muted': $ctrl.newComment.length <= ($ctrl.commentMax - 20) }" >{{ $ctrl.commentMax - $ctrl.newComment.length }}</span> <button type="button" class="btn btn-info btn-xs" data-i18n="_CommentsAddComment_" data-dont-watch ng-click="$ctrl.addComment()"></button> </div> </div> </form> </div> </aside></script>
vendor: 1 bytes, line 2688
2688
2689<script type="text/ng-template" id="/script/vspot-angular/components/activity-invites/shareable-link/shareable-link.html"><style type="text/css"> .pb15 { padding-bottom: 15px; } </style> <div ng-if="$ctrl.useSpacerCol" class="col-xs-1"></div> <div> <div ng-if="!$ctrl.showEmail"> <h2 data-i18n="_LoadingEllip_"></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div ng-if="$ctrl.showEmail"> <div class="col-xs-10 mb20 p0"> <input id="shareLinkContent" name="shareLinkContent" readonly type="text" class="form-control" ng-model="$ctrl.urlData.shorturl" ng-click="$ctrl.select('shareLinkContent')" > </div> <div class="br"></div> <div class="col-xs-10 p0" ng-class="{ 'form-group': $ctrl.useSpacerCol }"> <textarea id="emailBodyCopy" readonly ng-click="$ctrl.select('emailBodyCopy')" class="col-xs-11 form-control" rows="10" >{{ $ctrl.emailBody }}</textarea> </div> </div> </div></script>
vendor: 1 bytes, line 2689
2689
2690<script type="text/ng-template" id="/script/vspot-angular/components/activity-invites/remind/remind.html"><style> .share-on-remind { display: block; width: 185px; height: 40px; background: url("https://assets.remind.com/eng/share-on-remind-button-with-text.png") no-repeat top; background-position: center top; } .share-on-remind:active { background-position: center bottom; } </style> <div ng-if="$ctrl.useSpacerCol" class="col-xs-1"></div> <div> <div ng-if="$ctrl.showLink" class="mt-1"> <a class="share-on-remind" ng-href="{{$ctrl.link}}" target="_blank" rel="noopener noreferrer" aria-label="Share on Remind (opens in a new tab)"></a> </div> <div ng-if="!$ctrl.showLink"> <h3 data-i18n="_LoadingDotDotDot_" data-dont-watch></h3> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> </div></script>
vendor: 1 bytes, line 2690
2690
2691<script type="text/ng-template" id="/script/vspot-angular/components/activity-invites/button/button.html"><div ng-if="$ctrl.useSpacerCol" class="col-xs-1"></div> <div> <div ng-if="!$ctrl.showButton"> <h2 data-i18n="_LoadingEllip_" data-dont-watch></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div ng-if="$ctrl.showButton"> <div id="shareButtonImg" class="col-xs-12"> <h4 data-i18n="_InviteButtonHelpText_" data-dont-watch></h4> <img ng-src="{{ $ctrl.inviteButtonSrc }}" data-i18n-attr="_InviteButtonAltText_|alt"> </div> <div id="shareButtonHtml" class="col-xs-12"> <div class="message"> <h4 data-i18n="_CopyHTML_" data-dont-watch></h4> <textarea id="buttonHtml" name="buttonHtml" readonly rows="5" class="col-xs-12 form-control" ng-click="$ctrl.selectButtonHtml()" ng-model="$ctrl.buttonForm.buttonHtml" ></textarea> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2691
2691
2692<script type="text/ng-template" id="/script/vspot-angular/components/activity-invites/social/social.html"><div ng-if="$ctrl.useSpacerCol" class="col-xs-1"></div> <div> <div ng-if="!$ctrl.showSocial"> <h2 data-i18n="_LoadingEllip_" data-dont-watch></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div ng-if="$ctrl.showSocial"> <div> <span class="mr-1"> <img src="/imgs/icons/svg/Fb.svg" alt="Facebook" class="clickable" ng-click="$ctrl.fbOpen()" > </span> <span class="mr-1"> <img src="/imgs/icons/svg/x.svg" alt="Twitter" id="share_social_img_twitter" class="pop-up" window_specs="width=600,height=260,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,titlebar=no,toolbar=no" ng-href="https://twitter.com/share?url={{$ctrl.urlData.shorturl | encode}}&text={{ $ctrl.genericSocialText | encode}}&dnt=true" ng-click="$ctrl.trackSocialClick('twitter')" > </span> <span class="mr-1"> <!-- <a ng-href="//www.pinterest.com/pin/create/button/?url={{ $strl.urlData.shorturl | encode }}&description={{ $ctrl.genericSocialText | encode }}" target="_blank" data-pin-do="buttonPin" data-pin-config="none" data-pin-color="red" data-pin-height="28" ng-click="$ctrl.trackSocialClick('pinterest')"><img src="//assets.pinterest.com/images/pidgets/pinit_fg_en_rect_red_28.png"></a> --> <a ng-href="//www.pinterest.com/pin/create/button/?url={{ $strl.urlData.shorturl | encode }}&description={{ $ctrl.genericSocialText | encode }}" target="_blank" rel="noopener noreferrer" aria-label="Share on Pinterest (opens in a new tab)" data-pin-do="buttonPin" data-pin-config="none" data-pin-color="red" data-pin-height="28" ng-click="$ctrl.trackSocialClick('pinterest')"><img src="/imgs/icons/svg/Pinterest.svg" alt="Pinterest"></a> </span> </div> <div> <div class="message"> <h4 data-i18n="_SocialInviteCopyPasteText_" data-dont-watch></h4> <textarea id="socialMsg" name="socialMsg" class="col-xs-12 form-control" readonly rows="7" ng-click="$ctrl.selectSocialMsg()" >{{ $ctrl.genericSocialText }}</textarea> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2692
2692
2693<script type="text/ng-template" id="/script/vspot-angular/components/activity-invites/email/email.html"><style type="text/css"> #email_sender_container .alert > div { padding-top: 0; padding-bottom: 0; } #email_sender_container .alert .faux-link { text-decoration: underline; padding-top: 8px; } #email_sender_container .alert .icon-holder { padding-top: 5px; } #email_sender_container .alert .icon-arrow-left-solid { font-size: 3rem; } </style> <div ng-if="$ctrl.useSpacerCol" class="col-xs-1"></div> <form method="post" id="email_sender_container" name="emailInvitationsForm" ng-submit="$ctrl.sendInvitations(emailInvitationsForm)" > <!-- <form method="post" id="email_sender_container" name="emailInvitationsForm" ng-class="{ 'col-xs-11': $ctrl.useSpacerCol, 'col-xs-12': !$ctrl.useSpacerCol }" ng-submit="$ctrl.sendInvitations(emailInvitationsForm)" > --> <div class="col-xs-12" ng-show="!$ctrl.dataLoaded"> <h2 data-i18n="_LoadingEllip_" data-dont-watch></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div class="col-xs-12" ng-show="$ctrl.dataLoaded"> <div class="form-group"> <span data-i18n="_SendThroughVSHelpText2_" data-dont-watch></span> </div> <div class="form-group" ng-hide="!$ctrl.activityData.data.invitationssent"> <div class="col-xs-2"> <label for="msgFromEmail" data-i18n="_From_" data-dont-watch></label> </div> <div class="col-xs-10"> <span id="msgFromEmail">{{ $ctrl.name }}</span> </div> </div> <div class="form-group"> <div class="col-xs-2"> <label for="invites" data-i18n="_To_" data-dont-watch></label> </div> <!-- Initial Draft --> <div class="col-xs-9" ng-hide="$ctrl.activityData.data.invitationssent"> <span id="invites">{{ $ctrl.user.email }}</span> </div> <div class="col-xs-1 form-control-static" ng-hide="$ctrl.activityData.data.invitationssent"> <span class="clickable-icon" uib-popover="{{ '_HelpInvitationDraftText_' | i18n }}" popover-placement="top" popover-append-to-body="true" popover-trigger="'mouseenter'" ><img src="/imgs/icons/svg/Info.svg" alt="Info"/></span> </div> <!-- Send invitations to users --> <div class="col-xs-9 col-xs-offset-2" ng-hide="!$ctrl.activityData.data.invitationssent"> <textarea id="invites" name="invites" rows="4" cols="50" class="form-control" ng-model="$ctrl.emailForm.inviteList" ></textarea> </div> <div class="col-xs-1 form-control-static" ng-hide="!$ctrl.activityData.data.invitationssent"> <span class="clickable-icon" aria-hidden="true" uib-popover-html="$ctrl.toFieldPopOver" popover-append-to-body="true" popover-trigger="'mouseenter'"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> </div> <div class="form-group" ng-hide="!$ctrl.activityData.data.invitationssent"> <div class="col-xs-5 col-xs-offset-2"> <select id="previousActivities" name="previousActivities" class="form-control" ng-model="$ctrl.emailForm.previousActivity" ng-change="$ctrl.getPreviousParticipants()" ng-disabled="!$ctrl.activityList.$resolved" ng-options="activity.title for activity in $ctrl.activityList.activities" > <option value="" data-i18n="_AddFromPreviousActivity_" data-dont-watch></option> </select> </div> <div class="col-xs-4"> <select id="contactLists" name="contactLists" class="form-control" ng-model="$ctrl.emailForm.contactList" ng-change="$ctrl.addContactList()" ng-disabled="!$ctrl.contactLists.$resolved" ng-options="contactList.name for contactList in $ctrl.contactLists.data" > <option value="" data-i18n="_AddFromContactList_" data-dont-watch></option> </select> </div> <div class="col-xs-1 form-control-static" ng-hide="!$ctrl.activityData.data.invitationssent"> <span class="clickable-icon" aria-hidden="true" uib-popover-html="$ctrl.selectMenusPopOver" popover-append-to-body="true" popover-trigger="'mouseenter'"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> </div> <div class="form-group"> <div class="col-xs-2"> <label for="msgSubject" data-i18n="_Subject_" data-dont-watch></label> </div> <div class="col-xs-10 word-break"> <span>{{ $ctrl.activityTitle }}</span> <span data-i18n="_DefaultInviteSubject_" data-dont-watch></span> </div> </div> <div class="form-group"> <div class="col-xs-2">
2693 <label for="invitation_message" data-i18n="_Message_" data-dont-watch></label> </div> <div class="col-xs-9"> <img src="/imgs/ajax/ajax-loader-bar.gif" alt="Loading..." ng-show="!$ctrl.loadEditor"> <textarea id="invitation_message" name="invitation_message" class="ng-hide" ng-if="$ctrl.loadEditor" ng-model="$ctrl.emailForm.invitation_message" ng-maxlength="{{ $ctrl.emailMsgMaxLen }}" froala="$ctrl.emailEditorOptions" ></textarea> <label for="invitation_message" class="text-danger" ng-show="!$ctrl.editorSizeOkay()" data-i18n="_HTML_EDITOR_MAX_LENGTH_" data-dont-watch ></label> </div> <div class="col-xs-1 form-control-static"> <span> <img class="clickable-icon" aria-hidden="true" uib-popover-html="$ctrl.messagePopOver" popover-append-to-body="true" popover-trigger="'mouseenter'" src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> </div> <div class="form-group"> <div class="col-xs-9 col-xs-offset-2"> <div class="col-xs-12 alert alert-info" role="alert"> <div class="col-xs-5 faux-link" data-i18n="_HelpTextInvitationSignup_" data-dont-watch ng-show=" !$ctrl.activityData.data.accept_wampum "></div> <div class="col-xs-5 faux-link" data-i18n="_HelpTextInvitationContrib_" data-dont-watch ng-show=" $ctrl.activityData.data.accept_wampum "></div> <div class="col-xs-1 icon-holder"> <span class="icon-arrow-left-solid"></span> </div> <div class="col-xs-6"> <span data-i18n="_HelpTextInvitationInclude_" data-dont-watch></span> </div> </div> </div> </div> <div class="form-group no-animate"> <div style="margin-left: 15rem;"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="showLoading"></i> <button type="button" ng-click="$ctrl.resendInvitations()" class="btn vs1-white-blue-btn" data-i18n="_ReSendInvitations_" ng-hide="!$ctrl.activityData.data.invitationssent" ng-attr-title="{{ ('_ReSendInvitationsTitle_' | i18n) }}" ng-disabled="showLoading || $ctrl.emailForm.inviteList || !$ctrl.editorSizeOkay()" ></button> <button type="button" ng-click="$ctrl.sendDraftInvitation()" class="btn" ng-class="{ 'btn-primary': !$ctrl.activityData.data.invitationssent, 'vs1-white-blue-btn': $ctrl.activityData.data.invitationssent }" data-i18n="_SendDraftInvitation_" data-dont-watch ng-disabled="showLoading || $ctrl.emailForm.inviteList" ></button> <button type="submit" class="btn btn-primary" data-i18n="_SendInvitations_" data-dont-watch ng-hide="!$ctrl.activityData.data.invitationssent" ng-attr-title="{{ !$ctrl.emailForm.inviteList ? ('_SendInvitationsTitle_' | i18n) : '' }}" ng-disabled="showLoading || !$ctrl.emailForm.inviteList || !$ctrl.editorSizeOkay()" ></button> </div> </div> </div> </form></script>
vendor: 1 bytes, line 2693
2693
2694<script type="text/ng-template" id="/script/vspot-angular/components/user/waiver/waiver.html"><div class="container-fluid"> <div class="alert alert-danger" role="alert" ng-show="$ctrl.loadErrorMsg" data-i18n="{{ $ctrl.loadErrorMsg }}"></div> <form method="post" ng-if="$ctrl.showForm" vspot-validation="$ctrl.submit" name="waiver_form" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div class="form-group"> <div class="col-sm-12 text-center"> <h2>{{ $ctrl.activity.waiver.label }}</h2> <div class="alert alert-danger" role="alert" ng-show="$ctrl.saveErrorMsg" id="save_error">{{ $ctrl.saveErrorMsg }}</div> </div> </div> <div class="form-group"> <div class="col-sm-12" ng-bind-html="$ctrl.activity.waiver.description"></div> </div> <div class="form-group"> <div class="col-sm-9"> <!-- The clickable class (below) is to decorate the disconnected label that is actually clickable (without giving the left padding that they would get inside the check box div). This is rather poor design... the label from the Organizer should be next to the check box. However this is the implied design in the admin tool, so Organizers will be expecting it. Leaving as-is until we can do a more global rewrite (and address older waivers expecting the label to be above the check box). --> <label for="waiver" class="clickable" ng-bind-html="$ctrl.activity.waiver.accept_label"></label> <div class="checkbox" id="waiver_check"> <label for="waiver"> <input type="checkbox" name="waiver" id="waiver" required validation-required="_WAIVER_ACCEPTANCE_REQUIRED_" validation-after="waiver_check" ng-model="$ctrl.data.accepted_waiver" ng-disabled="$ctrl.data.initiallyChecked" > <span data-i18n="_WaiverAcceptCheckboxLabelDefault_" data-dont-watch></span> </label> </div> </div> </div> <div class="form-group"> <div class="col-xs-6 text-left"> <button type="button" class="btn vs1-white-blue-btn" data-i18n="_Cancel_" data-dont-watch ng-if="$ctrl.showCancel" ng-click="$ctrl.cancelAction()"></button> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.submitting"></i> <button type="submit" class="btn btn-primary" data-i18n="_PremiumModalContinueButton_" data-dont-watch></button> </div> </div> </form> </div></script>
vendor: 1 bytes, line 2694
2694
2695<script type="text/ng-template" id="/script/vspot-angular/components/user/info/info.html"><div class="container-fluid"> <div class="alert alert-danger" role="alert" ng-show="$ctrl.loadErrorMsg" data-i18n="{{ $ctrl.loadErrorMsg }}"></div> <form method="post" ng-if="$ctrl.showForm" vspot-validation="$ctrl.submit" name="log_in" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div class="form-group"> <div class="col-sm-12 text-center"> <h2 data-i18n="_MyInformation_" data-dont-watch ng-if="$ctrl.showIntroText"></h2> <p data-i18n="_MyInformationExplanation_|{{ $ctrl.activity.orgname }}" ng-if="$ctrl.showIntroText"></p> <div class="alert alert-danger" role="alert" ng-show="$ctrl.saveErrorMsg" id="save_error">{{ $ctrl.saveErrorMsg }}</div> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label" for="email" data-i18n="_Email_" data-dont-watch></label> <div class="col-sm-9 form-control-static" ng-if="$ctrl.data.id && $ctrl.data.email"> {{ $ctrl.data.email }} </div> <div class="col-sm-9" ng-if="!$ctrl.data.id || !$ctrl.data.email"> <input type="email" name="email" id="email" ng-model="$ctrl.data.email" class="form-control" maxlength="254" data-tf-sensitive="false" > </div> </div> <div class="form-group"> <label class="col-sm-3 control-label" for="contactname"> <span data-i18n="_Name_" data-dont-watch></span> <span class="required">*</span> </label> <div class="col-sm-9"> <input type="text" name="contactname" id="contactname" ng-model="$ctrl.data.contactname" class="form-control" maxlength="80" required data-tf-sensitive="false" > </div> </div> <div class="form-group"> <label class="col-sm-3 control-label" for="contactphone"> <span data-i18n="_PhoneNumber_" data-dont-watch></span> <span class="required" ng-if="$ctrl.activity.require_phone">*</span> </label> <div class="col-sm-9"> <input ng-if="$ctrl.activity.require_phone" type="text" name="contactphone" id="contactphone" ng-model="$ctrl.data.contactphone" class="form-control" maxlength="40" required > <input ng-if="!$ctrl.activity.require_phone" type="text" name="contactphone" id="contactphone" ng-model="$ctrl.data.contactphone" class="form-control" maxlength="40" > <div class="checkbox" ng-if="($ctrl.activity.sms_enabled || $ctrl.data.sms_optin)"> <label> <input type="checkbox" id="sms_option" ng-model="$ctrl.data.sms_optin" > <span data-i18n="_SMS_OPT_IN_" data-dont-watch></span> </label> </div> </div> </div> <div class="form-group word-wrap" ng-repeat="c in $ctrl.activity.custom_fields | orderBy:'order'"> <label class="col-sm-3 control-label" ng-attr-for="custom_fields_{{ c.id }}"> <span >{{ c.title }}</span> <span id="label-{{c.id}}" ng-if="c.definition.required" class="required">*</span> </label> <div ng-switch="c.definition.format" class="col-sm-9"> <div ng-switch-when="text"> <input type="text" name="custom_fields_{{ c.id }}" id="custom_fields_{{ c.id }}" ng-model="$ctrl.data.extra_fields['customfield' + c.field_number]" class="form-control" maxlength="255" ng-required="" > <span class="help-block" ng-if="c.definition && c.definition.comment != ''">{{c.definition.comment}}</span> </div> <div data-ng-switch-when="number"> <input type="number" class="form-control value" ng-attr-name="custom_fields_{{ c.id }}" ng-attr-id="custom_fields_{{ c.id }}" ng-model="$ctrl.data.extra_fields['customfield' + c.field_number]" min="{{ c.definition.min }}" ng-attr-max="{{ c.definition.max }}" ng-required="c.definition.required" validation-required="_FieldRequiredError_" > <span class="help-block" ng-if="c.definition && c.definition.comment != ''">{{c.definition.comment}}</span> </div> <div data-ng-switch-when="date"> <input type="date" ng-attr-name="custom_fields_{{ c.id }}" ng-attr-id="custom_fields_{{ c.id }}" ng-model="$ctrl.data.extra_fields['customfield' + c.field_number]" ng-required="c.definition.required" validation-required="_FieldRequiredError_" > <span class="help-block" ng-if="c.definition && c.definition.comment != ''">{{c.definition.comment}}</span> </div> <div ng-switch-when="checkbox"> <div class="checkbox" ng-repeat="cb_name in c.definition.values.split(',')"> <label> <input type="checkbox" name="custom_fields_{{ c.id }}_checkbox" id="custom_fields_{{ c.id }}_checkbox_{{cb_name}}" ng-model="$ctrl.data.extra_fields['customfield' + c.field_number][cb_name]" ng-required="c.definition.required && ($ctrl.countCheckboxesSet($ctrl.data.extra_fields['customfield' + c.field_number]) == 0)" validation-after="label-{{c.id}}" > <span ng-bind-html="cb_name"></span> </label> </div> <span class="help-block" ng-if="c.definition && c.definition.comment != ''">{{c.definition.comment}}</span> </div> <div data-ng-switch-when="dropdown"> <select id="custom_fields_{{ c.id }}_dropdown" name="custom_fields_{{ c.id }}" class="form-control" ng-model="$ctrl.data.extra_fields['customfield' + c.field_number]" ng-options="o for o in c.definition.values.split(',')" ng-required="c.definition.required" > </select> <span class="help-block" ng-if="c.definition && c.definition.comment != ''">{{c.definition.comment}}</span> </div> <div class="radio" data-ng-switch-when="radio"> <div ng-repeat="r in c.definition.values.split(',') track by $index"> <label> <input type="radio" name="custom_fields_{{$parent.$index}}_{{ c.id }}" id= "custom_fields_{{$parent.$index}}_{{ c.id }}radio{{r}}" ng-value="r" ng-model="$ctrl.data.extra_fields['customfield' + c.field_number]" ng-required="c.definition.required" validation-after="label-{{c.id}}" /> <span>{{ r }}</span> </label> </div> <span class="help-block" ng-if="c.definition && c.definition.comment != ''">{{c.definition.comment}}</span> </div> </div> </div> <div class="form-group" ng-if="$ctrl.showCheckBoxes"> <div class="checkbox col-sm-9 col-sm-offset-3" ng-if="$ctrl.volunteer.subscribeOrig === 0"> <label> <user-checkbox pre-check="true" subscribe-value="$ctrl.data.subscribe" name="'subscribe'" ></user-checkbox> <span data-i18n="_MyInformationSubscribe_" data-dont-watch></span> </label> </div> <div class="checkbox col-sm-9 col-sm-offset-3" ng-repeat="cr in $ctrl.volunteer.coreg"> <label> <user-checkbox pre-check="cr.default_checked" subscribe-value="$ctrl.data['offer_' + cr.coreg_id]" name="'offer_' + cr.coreg_id" data-tf-sensitive="false" ></user-checkbox> <span ng-show="$ctrl.data.prompt === 0" ng-bind-html="cr.prompt1"></span> <span ng-show="$ctrl.data.prompt === 1" ng-bind-html="cr.prompt2"></span> </label> </div> </div> <div class="form-group"> <div class="col-xs-6 text-left">
2695 <button type="button" class="btn vs1-white-blue-btn" data-i18n="_Cancel_" data-dont-watch ng-if="$ctrl.showCancel" ng-click="$ctrl.cancelAction()"></button> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.submitting"></i> <button type="submit" class="btn btn-primary" data-i18n="{{ $ctrl.saveBtn }}"></button> </div> </div> </form> </div></script>
vendor: 1 bytes, line 2695
2695
2696<script type="text/ng-template" id="/script/vspot-angular/components/user/checkbox/checkbox.html"><input type="checkbox" ng-attr-name="{{ $ctrl.name }}" ng-model="$ctrl.subscribeValue" ng-true-value="1" ng-false-value="2" ></script>
vendor: 1 bytes, line 2696
2696
2697<script type="text/ng-template" id="/script/vspot-angular/components/user/feedback/feedback-modal.html"><form method="post" role="form" accept-charset="UTF-8" name="feedbackForm" novalidate vspot-validation="$ctrl.sendFeedback" > <div class="modal-header"> <button type="button" class="close" ng-click="$ctrl.close()">×</button> <h2 data-i18n="_FeedbackModalTitle_" data-dont-watch class="subheadline"></h2> </div> <div class="modal-body clearfix"> <p data-i18n="_FeedbackModalBody_" data-dont-watch></p> <div ng-if="$ctrl.errorMessage" class="alert alert-danger" role="alert">{{ $ctrl.errorMessage }}</div> <div ng-if="$ctrl.showSuccess" class="alert alert-success" role="alert" data-i18n="_FeedbackModalSuccess_" data-dont-watch></div> <div class="form-group"> <label for="feedback" class="sr-only" data-i18n="_FeedbackModalYourFeedback_" data-dont-watch></label> <textarea class="form-control" id="feedback" name="feedback" ng-model="$ctrl.form.feedback" ng-attr-placeholder="{{'_FeedbackModalYourFeedback_' | i18n}}" tabindex="1" required validation-required="_FEEDBACK_FEEDBACK_REQUIRED_" ></textarea> </div> <div class="form-group"> <label for="name" class="sr-only" data-i18n="_FeedbackModalYourName_" data-dont-watch></label> <input type="text" class="form-control" id="name" name="name" ng-model="$ctrl.form.name" ng-attr-placeholder="{{ '_FeedbackModalYourName_' | i18n }}" tabindex="2"> </div> <div class="form-group"> <label for="em_addr" class="sr-only" data-i18n="_FeedbackModalYourEmail_" data-dont-watch></label> <input type="email" class="email-field" id="email" name="email" ng-model="$ctrl.form.email"> <input type="email" class="form-control" id="em_addr" name="em_addr" ng-model="$ctrl.form.em_addr" ng-attr-placeholder="{{ '_FeedbackModalYourEmail_' | i18n }}" tabindex="3" required validation-required="_FEEDBACK_EMAIL_REQUIRED_" validation-email="_FEEDBACK_EMAIL_INVALID_" > </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-4 text-left"> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.close()" tabindex="5" data-i18n="_Cancel_" data-dont-watch ng-if="!showSuccess"></button> <button type="button" class="btn vs1-white-blue-btn" ng-click="$ctrl.close()" tabindex="5" data-i18n="_Close_" data-dont-watch ng-if="showSuccess"></button> </div> <div class="col-xs-8"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon ng-hidden" aria-hidden="true" ng-show="$ctrl.submitting"></i> <button type="submit" class="btn btn-primary" tabindex="4" ng-disabled="!$ctrl.resolve.browserInfo.$resolved || $ctrl.submitting" data-i18n="_FeedbackModalSubmitButtonText_" data-dont-watch></button> </div> </div> </div> </form> </script>
vendor: 1 bytes, line 2697
2697
2698<script type="text/ng-template" id="/script/vspot-angular/components/user/feedback/feedback.html"><button type="button" class="btn" ng-class="$ctrl.buttonClass" ng-click="$ctrl.openFeedbackModal()" data-i18n="{{ $ctrl.buttonLangStr }}" data-dont-watch ></button></script>
vendor: 1 bytes, line 2698
2698
2699<script type="text/ng-template" id="/script/vspot-angular/components/premium/upgrade-prompt/upgrade-prompt-modal.html"><div class="modal-header"> <button type="button" class="close" ng-disabled="mod.submitting" ng-click="mod.close()">×</button> <h2 class="subheadline">{{ mod.getLocalizedString(mod.modalTitle) }}</h2> </div> <div class="modal-body" ng-if="mod.show.loading"> <div class="row form-group"> <div class="col-xs-10 col-xs-offset-1"> <h2 class="subheadline" data-i18n="_LoadingDotDotDot_" data-dont-watch></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> </div> </div> <form method="post" ng-if="mod.show.picker" vspot-validation="mod.submit" name="subscription" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div class="modal-body"> <div class="row form-group narrow-cols-5"> <div class="col-xs-5"> <img ng-src="{{ mod.featureData[mod.featureName].imgSource }}" alt="" class="title-image"> </div> <div class="col-xs-7"> <h2 class="title-title" data-i18n="{{ mod.featureData[mod.featureName].title }}"></h2> <p class="title-description" data-i18n="{{ mod.featureData[mod.featureName].description }}"></p> </div> </div> <div class="row form-group"> <div class="col-xs-12"> <hr> </div> </div> <div class="col-xs-12 alert alert-danger ng-hide" role="alert" ng-show="mod.error">{{ mod.error }}</div> <div class="row form-group"> <div class="col-xs-12 current-plan"> <span data-i18n="_PremiumModalCurrentPlan_" data-dont-watch></span> <span class="plan-tier-title">{{ mod.user.premiumData.tier_name }}</span> </div> </div> <div class="row form-group"> <div class="col-xs-12"> <div id="plan_required_error"></div> </div> </div> <!-- adfree upgrade --> <div class="row form-group"> <div class="col-xs-12"> <label> <input type="checkbox" name="adfree_only" ng-change="mod.updateSubscription()" ng-model="mod.formData.adFree" > <span class="price-label" data-i18n="_PremiumModalAddOnAdFreeMonthAndYear_" data-dont-watch></span> </label> </div> </div> <!-- NOTE: The filter below will block level 10, 20, 4000, etc... anything with a zero. Fine while we have less than 10 levels. --> <div class="row form-group" ng-repeat="tier in mod.tiers | filterTier | orderBy:'tier_level'" ng-init="thisGroup = mod.groups['level_' + tier.tier_level]" ng-hide="!mod.tierAvailable(tier) && mod.featureName === 'PROFILE'"> <!-- LEFT COLUMN: Plan Description --> <div class="col-xs-7"> <h2 class="plan-tier">{{tier.tier_name}} <span class="fade-in" ng-show="mod.formData.adFree"> & Ad-Free</span></h2> <div class="br"></div> <span class="tier-description" data-i18n="{{ '_Tier' + tier.tier_level + mod.featureName + 'Description_' }}"></span> <br> <a href uib-popover-html="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' )" popover-trigger="'mouseenter'" popover-placement="right" class="plan-tier-more" ng-show="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' ) !== ''" ><span>See More {{tier.tier_name}} Features ›</span></a> </div> <!-- RIGHT COLUMN: --> <!-- Ad Free Plans --> <div class="col-xs-5" ng-if="mod.tierAvailable(tier) && mod.formData.adFree"> <div class="radio" ng-if="thisGroup.adFree.monthly"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.monthly.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" ng-disabled="mod.formData.adFreeOnly" > <strong>{{ thisGroup.adFree.monthly.price | currency }}</strong> <span data-i18n="_PremiumModalPerMonth_" data-dont-watch></span> </label> </div> <div class="radio" ng-if="thisGroup.adFree.annual"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.annual.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" ng-disabled="mod.formData.adFreeOnly" > <strong>{{ thisGroup.adFree.annual.price | currency }}</strong>
2699 <span data-i18n="_PremiumModalPerYear_" data-dont-watch></span> <span ng-if="thisGroup.adFree.monthly" data-i18n="_PremiumModalPerYearSavings_|17" data-dont-watch></span> </label> </div> </div> <!-- Regular Plans --> <div class="col-xs-5" ng-if="mod.tierAvailable(tier) && !mod.formData.adFree"> <div class="radio" ng-if="thisGroup.plans.monthly"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.plans.monthly.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.plans.monthly.price | currency }}</strong> <span data-i18n="_PremiumModalPerMonth_" data-dont-watch></span> </label> </div> <div class="radio" ng-if="thisGroup.plans.annual"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.plans.annual.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.plans.annual.price | currency }}</strong> <span data-i18n="_PremiumModalPerYear_" data-dont-watch></span> <span ng-if="thisGroup.plans.monthly" data-i18n="_PremiumModalPerYearSavings_|17" data-dont-watch></span> </label> </div> </div> <!-- Plan not available for upgrade --> <div class="col-xs-5" ng-if="!mod.tierAvailable(tier)"> <p data-i18n="_UpgradeModalPlanUnavailable_|{{ tier.tier_name }}"></p> </div> </div> <!-- Adfree only --> <div ng-show="mod.user.premiumData.tier_level < 4 && mod.formData.adFree"> <div class="row form-group fade-in" ng-repeat="tier in mod.tiers | filter:{tier_level: '4'}" ng-init="thisGroup = mod.groups['level_' + tier.tier_level]" > <!-- LEFT COLUMN: Plan Description --> <div class="col-xs-7"> <h2 class="plan-tier">{{tier.tier_name}}<span> Only</span></h2> <div class="br"></div> <span class="tier-description" data-i18n="{{ '_Tier' + tier.tier_level + mod.featureName + 'Description_' }}"></span> <br> <a href uib-popover-html="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' )" popover-trigger="'mouseenter'" popover-placement="right" class="plan-tier-more" ng-show="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' ) !== ''" ><span>See More {{tier.tier_name}} Features ›</span></a> </div> <!-- RIGHT COLUMN: --> <div class="col-xs-5" ng-if="mod.tierAvailable(tier) && mod.formData.adFree"> <div class="radio" ng-if="thisGroup.adFree.monthly"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.monthly.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.adFree.monthly.price | currency }}</strong> <span data-i18n="_PremiumModalPerMonth_" data-dont-watch></span> </label> </div> <div class="radio" ng-if="thisGroup.adFree.annual"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.annual.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.adFree.annual.price | currency }}</strong> <span data-i18n="_PremiumModalPerYear_" data-dont-watch></span> <span ng-if="thisGroup.adFree.monthly" data-i18n="_PremiumModalPerYearSavings_|17" data-dont-watch></span> </label> </div> </div> <!-- Plan not available for upgrade --> <div class="col-xs-5" ng-if="!mod.tierAvailable(tier)"> <p data-i18n="_UpgradeModalPlanUnavailable_|{{ tier.tier_name }}"></p> </div> </div> </div> <!-- promo code --> <div class="row form-group" ng-if="mod.promoEnabled"> <div class="col-xs-7"> <label for="promo-code" class="control-label" data-i18n="_PremiumModalPromoCode_" data-dont-watch></label> </div> <div class="col-xs-5"> <input type="text" class="form-control" name="promo-code" id="promo-code" maxlength="40" validation-skip="true" ng-model="mod.formData.promoCode" > <label for="promo-code" class="text-danger" data-i18n="{{mod.promoCodeErrorCode}}" ng-show="mod.promoCodeErrorCode"></label> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Cancel_" data-dont-watch class="btn vs1-w
2699hite-blue-btn" ng-disabled="mod.submitting" ng-click="mod.close()"> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="mod.submitting"></i> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-primary" ng-disabled="mod.submitting"></button> </div> </div> </div> </form> <div class="modal-body" ng-if="mod.show.checkout"> <div class="row form-group"> <div class="col-xs-10 col-xs-offset-1"> <stripe-form publishing-key="mod.pubKey" payment-description="mod.subscriptionDesc" payment-amount="mod.subscriptionAmount" subscription-data="mod.subscriptionData" users-plan="mod.usersPlan" action="mod.subscriptionComplete" trial="mod.subscriptionTrial" trial-message="mod.subscriptionTrialMsg" ></stripe-form> </div> </div> </div> <div ng-if="mod.show.complete"> <div class="modal-body"> <div class="alert alert-danger ng-hide" role="alert" ng-show="mod.modalErrorStr">{{ mod.modalErrorStr }}</div> <p ng-bind-html="mod.getLocalizedString(mod.modalBody)"></p> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12 text-right"> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-primary" ng-click="mod.goNext()"></button> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2699
2699
2700<script type="text/ng-template" id="/script/vspot-angular/components/premium/upgrade-prompt/upgrade-prompt.html"><div ng-if="$ctrl.type === 'button'" ng-show="$ctrl.showPrompt" ng-click="$ctrl.showModal()" class="upgrade-prompt" uib-popover-html="$ctrl.getLocalizedString($ctrl.buttonHelpText)" popover-placement="auto right" popover-append-to-body="true" popover-trigger="'mouseenter'" > <div> <span class="super-align" data-i18n="{{$ctrl.buttonText}}"></span> </div> </div> <div ng-if="$ctrl.type === 'icon'" ng-show="$ctrl.showPrompt" ng-click="$ctrl.showModal()" class="upgrade-prompt-icon clickable" > <div class="icon-img" style="background-image: url('{{ $ctrl.iconImg }}');"></div> <div class="icon-txt" data-i18n="{{ $ctrl.iconText }}"></div> </div></script>
vendor: 1 bytes, line 2700
2700
2701<script type="text/ng-template" id="/script/vspot-angular/components/premium/upgrade-prompt-link/upgrade-prompt-link-modal.html"><div class="modal-header"> <button type="button" class="close" ng-disabled="mod.submitting" ng-click="mod.close()">×</button> <h2 class="subheadline">{{ mod.getLocalizedString(mod.modalTitle) }}</h2> </div> <div class="modal-body" ng-if="mod.show.loading"> <div class="row form-group"> <div class="col-xs-10 col-xs-offset-1"> <h2 class="subheadline" data-i18n="_LoadingDotDotDot_" data-dont-watch></h2> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> </div> </div> <form method="post" ng-if="mod.show.picker" vspot-validation="mod.submit" name="subscription" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div class="modal-body"> <div class="row form-group narrow-cols-5"> <div class="col-xs-5"> <img ng-src="{{ mod.featureData[mod.featureName].imgSource }}" alt="" class="title-image"> </div> <div class="col-xs-7"> <h2 class="title-title" data-i18n="{{ mod.featureData[mod.featureName].title }}"></h2> <p class="title-description" data-i18n="{{ mod.featureData[mod.featureName].description }}"></p> </div> </div> <div class="row form-group"> <div class="col-xs-12"> <hr> </div> </div> <div class="col-xs-12 alert alert-danger ng-hide" role="alert" ng-show="mod.error">{{ mod.error }}</div> <div class="row form-group"> <div class="col-xs-12 current-plan"> <span data-i18n="_PremiumModalCurrentPlan_" data-dont-watch></span> <span class="plan-tier-title">{{ mod.user.premiumData.tier_name }}</span> </div> </div> <div class="row form-group"> <div class="col-xs-12"> <div id="plan_required_error"></div> </div> </div> <!-- adfree upgrade --> <div class="row form-group"> <div class="col-xs-12"> <label> <input type="checkbox" name="adfree_only" ng-change="mod.updateSubscription()" ng-model="mod.formData.adFree" > <span class="price-label" data-i18n="_PremiumModalAddOnAdFreeMonthAndYear_" data-dont-watch></span> </label> </div> </div> <!-- NOTE: The filter below will block level 10, 20, 4000, etc... anything with a zero. Fine while we have less than 10 levels. --> <div class="row form-group" ng-repeat="tier in mod.tiers | filterTier | orderBy:'tier_level'" ng-init="thisGroup = mod.groups['level_' + tier.tier_level]" ng-hide="!mod.tierAvailable(tier) && mod.featureName === 'PROFILE'"> <!-- LEFT COLUMN: Plan Description --> <div class="col-xs-7"> <h2 class="plan-tier">{{tier.tier_name}} <span class="fade-in" ng-show="mod.formData.adFree"> & Ad-Free</span></h2> <div class="br"></div> <span class="tier-description" data-i18n="{{ '_Tier' + tier.tier_level + mod.featureName + 'Description_' }}"></span> <br> <a href uib-popover-html="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' )" popover-trigger="'mouseenter'" popover-placement="right" class="plan-tier-more" ng-show="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' ) !== ''" ><span>See More {{tier.tier_name}} Features ›</span></a> </div> <!-- RIGHT COLUMN: --> <!-- Ad Free Plans --> <div class="col-xs-5" ng-if="mod.tierAvailable(tier) && mod.formData.adFree"> <div class="radio" ng-if="thisGroup.adFree.monthly"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.monthly.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" ng-disabled="mod.formData.adFreeOnly" > <strong>{{ thisGroup.adFree.monthly.price | currency }}</strong> <span data-i18n="_PremiumModalPerMonth_" data-dont-watch></span> </label> </div> <div class="radio" ng-if="thisGroup.adFree.annual"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.annual.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" ng-disabled="mod.formData.adFreeOnly" > <strong>{{ thisGroup.adFree.annual.price | currency }}</strong>
2701 <span data-i18n="_PremiumModalPerYear_" data-dont-watch></span> <span ng-if="thisGroup.adFree.monthly" data-i18n="_PremiumModalPerYearSavings_|17" data-dont-watch></span> </label> </div> </div> <!-- Regular Plans --> <div class="col-xs-5" ng-if="mod.tierAvailable(tier) && !mod.formData.adFree"> <div class="radio" ng-if="thisGroup.plans.monthly"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.plans.monthly.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.plans.monthly.price | currency }}</strong> <span data-i18n="_PremiumModalPerMonth_" data-dont-watch></span> </label> </div> <div class="radio" ng-if="thisGroup.plans.annual"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.plans.annual.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.plans.annual.price | currency }}</strong> <span data-i18n="_PremiumModalPerYear_" data-dont-watch></span> <span ng-if="thisGroup.plans.monthly" data-i18n="_PremiumModalPerYearSavings_|17" data-dont-watch></span> </label> </div> </div> <!-- Plan not available for upgrade --> <div class="col-xs-5" ng-if="!mod.tierAvailable(tier)"> <p data-i18n="_UpgradeModalPlanUnavailable_|{{ tier.tier_name }}"></p> </div> </div> <!-- Adfree only --> <div ng-show="mod.user.premiumData.tier_level < 4 && mod.formData.adFree"> <div class="row form-group fade-in" ng-repeat="tier in mod.tiers | filter:{tier_level: '4'}" ng-init="thisGroup = mod.groups['level_' + tier.tier_level]" > <!-- LEFT COLUMN: Plan Description --> <div class="col-xs-7"> <h2 class="plan-tier">{{tier.tier_name}}<span> Only</span></h2> <div class="br"></div> <span class="tier-description" data-i18n="{{ '_Tier' + tier.tier_level + mod.featureName + 'Description_' }}"></span> <br> <a href uib-popover-html="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' )" popover-trigger="'mouseenter'" popover-placement="right" class="plan-tier-more" ng-show="mod.getLocalizedString( '_Tier' + tier.tier_level + mod.featureName + 'More_' ) !== ''" ><span>See More {{tier.tier_name}} Features ›</span></a> </div> <!-- RIGHT COLUMN: --> <div class="col-xs-5" ng-if="mod.tierAvailable(tier) && mod.formData.adFree"> <div class="radio" ng-if="thisGroup.adFree.monthly"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.monthly.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.adFree.monthly.price | currency }}</strong> <span data-i18n="_PremiumModalPerMonth_" data-dont-watch></span> </label> </div> <div class="radio" ng-if="thisGroup.adFree.annual"> <label class="price-label"> <input type="radio" name="subscription_level" value="{{ thisGroup.adFree.annual.premiumplan_id }}" ng-model="mod.formData.selectedPlan" required validation-after="plan_required_error" validation-required="_UPGRADE_MODAL_PLEASE_SELECT_PLAN_" ng-change="mod.updateSubscription()" > <strong>{{ thisGroup.adFree.annual.price | currency }}</strong> <span data-i18n="_PremiumModalPerYear_" data-dont-watch></span> <span ng-if="thisGroup.adFree.monthly" data-i18n="_PremiumModalPerYearSavings_|17" data-dont-watch></span> </label> </div> </div> <!-- Plan not available for upgrade --> <div class="col-xs-5" ng-if="!mod.tierAvailable(tier)"> <p data-i18n="_UpgradeModalPlanUnavailable_|{{ tier.tier_name }}"></p> </div> </div> </div> <!-- promo code --> <div class="row form-group" ng-if="mod.promoEnabled"> <div class="col-xs-7"> <label for="promo-code" class="control-label" data-i18n="_PremiumModalPromoCode_" data-dont-watch></label> </div> <div class="col-xs-5"> <input type="text" class="form-control" name="promo-code" id="promo-code" maxlength="40" validation-skip="true" ng-model="mod.formData.promoCode" > <label for="promo-code" class="text-danger" data-i18n="{{mod.promoCodeErrorCode}}" ng-show="mod.promoCodeErrorCode"></label> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Cancel_" data-dont-watch class="btn vs1-w
2701hite-blue-btn" ng-disabled="mod.submitting" ng-click="mod.close()"> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="mod.submitting"></i> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-primary" ng-disabled="mod.submitting"></button> </div> </div> </div> </form> <div class="modal-body" ng-if="mod.show.checkout"> <div class="row form-group"> <div class="col-xs-10 col-xs-offset-1"> <stripe-form publishing-key="mod.pubKey" payment-description="mod.subscriptionDesc" payment-amount="mod.subscriptionAmount" subscription-data="mod.subscriptionData" users-plan="mod.usersPlan" action="mod.subscriptionComplete" trial="mod.subscriptionTrial" trial-message="mod.subscriptionTrialMsg" ></stripe-form> </div> </div> </div> <div ng-if="mod.show.complete"> <div class="modal-body"> <div class="alert alert-danger ng-hide" role="alert" ng-show="mod.modalErrorStr">{{ mod.modalErrorStr }}</div> <p ng-bind-html="mod.getLocalizedString(mod.modalBody)"></p> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-12 text-right"> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-primary" ng-click="mod.goNext()"></button> </div> </div> </div> </div></script>
vendor: 1 bytes, line 2701
2701
2702<script type="text/ng-template" id="/script/vspot-angular/components/premium/upgrade-prompt-link/upgrade-prompt-link.html"><div ng-if="$ctrl.type === 'button'" ng-show="$ctrl.showPrompt" ng-click="$ctrl.showModal()" class="upgrade-prompt-link" uib-popover-html="$ctrl.getLocalizedString($ctrl.buttonHelpText)" popover-placement="auto right" popover-append-to-body="true" popover-trigger="'mouseenter'" > <span><img class="ml10" src="/imgs/icons/svg/Upgrade.svg" alt="Upgrade To Access"/></span> <span class="upgrade-prompt-link" data-i18n="{{$ctrl.buttonText}}"></span> </div> <div ng-if="$ctrl.type === 'icon'" ng-show="$ctrl.showPrompt" ng-click="$ctrl.showModal()" class="upgrade-prompt-icon clickable" > <div class="icon-img" style="background-image: url('{{ $ctrl.iconImg }}');"></div> <div class="icon-txt" data-i18n="{{ $ctrl.iconText }}"></div> </div></script>
vendor: 1 bytes, line 2702
2702
2703<script type="text/ng-template" id="/script/vspot-angular/components/premium/stripe-form/stripe-form.html"><div class="checkout-form-header"> <img src="/imgs/pricing/signup-checkmark-icon.png" alt="SignUp.com logo" class="checkout-form-header-icon"> <h2>SignUp.com</h2> {{ $ctrl.paymentDescription }} </div> <div class="checkout-form-body"> <div class="alert alert-danger ng-hide" role="alert" ng-show="$ctrl.error" ng-bind-html="$ctrl.error"></div> <form method="post" name="renewalForm" vspot-validation="$ctrl.submit" role="form" accept-charset="utf-8" novalidate ng-show="!$ctrl.doingUpgrade" > <div id="address-element"> <!-- Elements will create form elements here --> </div> <div id="payment-element"> <!-- Elements will create form elements here --> </div> <div class="form-group" style="margin-top: 20px"> <div class="text-left"> <span ng-show="(!$ctrl.trial && !$ctrl.billingAddressComplete && $ctrl.showExempt)"><input type="checkbox" ng-model="$ctrl.salesTaxExempt"> Sales Tax Exempt</span> <span ng-show="(!$ctrl.trial && !$ctrl.billingAddressComplete && $ctrl.showExempt)" class="title-help-icon" uib-popover-html="$ctrl.helpTextExempt" popover-placement="right" popover-trigger="'mouseenter'"> <img src="/imgs/icons/svg/Info.svg" alt="Info"/> </span> </div> <div class="text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon mr10 ng-hide" ng-show="$ctrl.submitting"></i> <button type="button" class="btn btn-primary" ng-attr-title="{{:: '_Next_'|i18n }}" ng-attr-aria-label="{{:: '_Next_'|i18n }}" ng-if="(!$ctrl.billingAddressComplete)" ng-click="$ctrl.confirmBilling()" ng-disabled="($ctrl.submitting || $ctrl.elementLoading)" >{{:: '_Next_' | i18n }} </button> <div class="text-center" style="padding-top: 8px;"> <input ng-if="($ctrl.trial && $ctrl.billingAddressComplete)" type="submit" name="submit" data-i18n-attr="{{$ctrl.trialMessage}}|value" class="btn btn-primary" ng-disabled="$ctrl.submitting"> <input ng-if="(!$ctrl.trial && $ctrl.billingAddressComplete)" type="submit" name="submit" value="Pay {{($ctrl.paymentAmount + ($ctrl.salesTaxExempt ? 0 : $ctrl.totalTax)) | currency:'$'}}" class="btn btn-primary" ng-disabled="($ctrl.submitting || $ctrl.elementLoading)"> <span class="help-block text-center" ng-if="$ctrl.billingAddressComplete && ($ctrl.totalTax > 0.00)" >includes {{($ctrl.salesTaxExempt ? 0 : $ctrl.salesTax)}} sales tax </span> </div> </div> </div> </form> <div ng-show="$ctrl.doingUpgrade" class="text-center"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon mr10 ng-hide" ng-show="true"></i> </div> </div></script>
vendor: 1 bytes, line 2703
2703
2704<script type="text/ng-template" id="/script/vspot-angular/components/premium/premium-campus-plan/premium-campus-plan.html"><form method="post" name="premium_campus_plan" vspot-validation="$ctrl.submit" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div class="modal-body"> <div class="row"> <div class="col-xs-12"> <p> <span data-i18n="{{ $ctrl.introTextCode }}" data-dont-watch></span> <a class="clickable" ng-click="$ctrl.showMoreInfoDialog()" data-i18n="_CampusPlanClickHere_" data-dont-watch></a> </p> </div> </div> <div class="row"> <div class="col-xs-12"> <div school-form form-var="$ctrl.formData" ng-if="$ctrl.isSchoolPage" col-left="4" col-right="8"></div> </div> </div> <div class="form-group clearfix"> <div class="col-xs-4"> <label for="org_description" class="control-label"> <span data-i18n="{{ $ctrl.nameCode }}" data-dont-watch></span> <span class="required">*</span> </label> </div> <div class="col-xs-8"> <input type="text" name="org_description" id="org_description" ng-model="$ctrl.formData.org_description" class="form-control" ng-attr-placeholder="{{ $ctrl.placeholderCode | i18n }}" required maxlength="60" > <span class="help-block" data-i18n="_SchoolNicknameQuestion_" data-dont-watch ng-if="$ctrl.isSchoolPage"></span> </div> </div> <div class="row"> <div class="col-xs-12" role="alert" ng-show="$ctrl.errorCode"> <div class="col-xs-12 alert alert-danger" data-i18n="{{ $ctrl.errorCode }}"></div> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Cancel_" data-dont-watch class="btn vs1-white-blue-btn" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close()"> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="$ctrl.submitting"></i> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-success" ng-disabled="$ctrl.submitting"></button> </div> </div> </div> </form></script>
vendor: 1 bytes, line 2704
2704
2705<script type="text/ng-template" id="/script/vspot-angular/components/premium/premium-button/premium-button.html"><button class="plan__cta" data-i18n="{{$ctrl.buttonText}}" data-dont-watch ng-click="$ctrl.action($ctrl.groupName, $ctrl.promoCode)" ng-hide="$ctrl.planSelected" ng-if="$ctrl.planAvailable" ></button> <div class="plan__selected" data-i18n="{{$ctrl.planSelectedText}}" data-dont-watch ng-show="$ctrl.planSelected" ></div></script>
vendor: 1 bytes, line 2705
2705
2706<script type="text/ng-template" id="/script/vspot-angular/components/premium/premium-subscription/premium-subscription.html"><form method="post" vspot-validation="$ctrl.submit" name="subscription" role="form" accept-charset="utf-8" novalidate class="premium-subscriptions form-horizontal" > <div class="modal-body"> <div class="form-group"> <div class="col-xs-12 alert alert-danger ng-hide" role="alert" ng-show="$ctrl.error">{{ $ctrl.error }}</div> <div class="col-xs-7"> <h2>{{ $ctrl.groupPlans.name }}</h2> </div> <div class="col-xs-5"> <div class="radio" ng-if="$ctrl.groupPlans.plans.monthly"> <label class="price-label"> <input type="radio" name="subscription-level" value="monthly" ng-change="$ctrl.updateCost()" ng-model="$ctrl.formData.subscriptionLevel" > <strong>{{ $ctrl.formData.monthlyCost | currency }}</strong> <span data-i18n="_PremiumModalPerMonth_" data-dont-watch></span> </label> </div> <div class="radio" ng-if="$ctrl.groupPlans.plans.annual"> <label class="price-label"> <input type="radio" name="subscription-level" value="annual" ng-change="$ctrl.updateCost()" ng-model="$ctrl.formData.subscriptionLevel" > <strong>{{ $ctrl.formData.annualCost | currency }}</strong> <span data-i18n="_PremiumModalPerYear_" data-dont-watch></span> <span ng-if="$ctrl.groupPlans.plans.monthly" data-i18n="_PremiumModalPerYearSavings_|{{ $ctrl.getDiscountPercent() }}" data-dont-watch></span> </label> </div> </div> </div> <div class="form-group" ng-if="$ctrl.promoEnabled"> <div class="col-xs-7"> <label for="promo-code" class="control-label" data-i18n="_PremiumModalPromoCode_" data-dont-watch></label> </div> <div class="col-xs-5"> <input type="text" class="form-control" name="promo-code" id="promo-code" maxlength="40" validation-skip="true" ng-model="$ctrl.formData.promoCode" > <label for="promo-code" class="text-danger" data-i18n="{{$ctrl.promoCodeErrorCode}}" ng-show="$ctrl.promoCodeErrorCode"></label> </div> </div> <div class="form-group" ng-if="$ctrl.groupPlans.adFree.monthly || $ctrl.groupPlans.adFree.annual"> <div class="col-xs-12"> <label> <input type="checkbox" ng-change="$ctrl.updateCost()" ng-model="$ctrl.formData.adFree" > <span class="price-label" data-i18n="_PremiumModalAddOnAdFreeMonthOnly_" data-dont-watch ng-if="$ctrl.groupPlans.adFree.monthly && !$ctrl.groupPlans.adFree.annual"></span> <span class="price-label" data-i18n="_PremiumModalAddOnAdFreeYearOnly_" data-dont-watch ng-if="!$ctrl.groupPlans.adFree.monthly && $ctrl.groupPlans.adFree.annual"></span> <span class="price-label" data-i18n="_PremiumModalAddOnAdFreeMonthAndYear_" data-dont-watch ng-if="$ctrl.groupPlans.adFree.monthly && $ctrl.groupPlans.adFree.annual"></span> </label> </div> </div> </div> <div class="modal-footer"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Cancel_" data-dont-watch class="btn vs1-white-blue-btn" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close()"> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="$ctrl.submitting"></i> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn btn-success" ng-disabled="$ctrl.submitting"></button> </div> </div> </div> </form></script>
vendor: 1 bytes, line 2706
2706
2707<script type="text/ng-template" id="/script/vspot-angular/components/premium/premium-account/premium-account.html"><style> .facebook-login-button span { vertical-align: middle; } .icon-facebook-f { font-size: 2.4rem; } </style> <register ng-if="$ctrl.show.register" is-modal="true" user="$ctrl.user" action="$ctrl.registrationComplete" log-in="$ctrl.showLogIn" close="$ctrl.close" ></register> <log-in ng-if="$ctrl.show.logIn" is-modal="true" action="$ctrl.logInComplete" forgot-password="$ctrl.showForgotPassword" close="$ctrl.close" ></log-in> <forgot-password ng-if="$ctrl.show.forgotPassword" is-modal="true" close="$ctrl.close" show-log-in="$ctrl.showLogIn" show-register="$ctrl.showRegister" ></forgot-password></script>
vendor: 1 bytes, line 2707
2707
2708<script type="text/ng-template" id="/script/vspot-angular/components/log-in/log-in.html"><form method="post" vspot-validation="$ctrl.submit" name="log_in" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div ng-class="{'modal-body': $ctrl.isModal, 'log-in-body': !$ctrl.isModal}"> <div class="row text-center"> <button type="button" class="btn btn-primary facebook-login-button" ng-click="$ctrl.fbRegister()"> <span class="icon-facebook-f"></span> <span data-i18n="_SignInWithFacebook_" data-dont-watch></span> </button> </div> <div class="row text-center google-btn-desktop"> <!-- google login button --> <image id="google_login" ng-click="$ctrl.googleLogin()" src="/images/[email protected]"></image> </div> <!-- <div id="appleid-signin" class="row text-center left signin-button" style="height: 50px;" data-color="black" data-border="true" data-type="sign in"></div>--> <div class="row"> <h2 class="subheadline text-center" data-i18n="_OrSignin_" data-dont-watch></h2> </div> <div class="row form-group ng-hide" ng-show="$ctrl.errorCode"> <div class="col-xs-12"> <div class="alert alert-danger" role="alert">{{ $ctrl.getError() }}</div> </div> </div> <!-- Email --> <div class="row form-group email-block" ng-hide="$ctrl.confirmEmail"> <div class="col-xs-12"> <label for="login-email" class="blue-label" data-i18n="_Email_" data-dont-watch></label> <input id="login-email" name="loginEmail" type="email" data-i18n-attr="_PlaceholderEmail_|placeholder" ng-model="$ctrl.form.email" ng-disabled="$ctrl.submitting" required class="form-control" autofocus > </div> </div> <!-- Confirm Email (hidden by default) --> <div class="row form-group confirm-email email-block ng-hide" ng-show="$ctrl.confirmEmail"> <div class="col-xs-12"> <label for="login-email" class="blue-label" data-i18n="_ConfirmEmailAddress_" data-dont-watch></label> <address class="lead bg-info">{{ $ctrl.form.email }}</address> </div> </div> <!-- Password --> <div class="row form-group" ng-if="!$ctrl.volunteerActivity"> <div class="col-xs-12"> <label for="login-password" class="blue-label" data-i18n="_Password_" data-dont-watch></label> <input id="login-password" name="loginPassword" type="password" ng-model="$ctrl.form.password" ng-disabled="$ctrl.submitting" required class="form-control" > </div> </div> <div class="row form-group" ng-if="$ctrl.forgotPassword && !$ctrl.volunteerActivity"> <span class="col-xs-12"> <span class="col-xs-4 text-left"> <a ng-href="{{$ctrl.fpHref}}" data-i18n="_ForgotPassword_" data-dont-watch ng-if="$ctrl.fpHref"></a> <a href ng-click="$ctrl.forgotPassword()" data-i18n="_ForgotPassword_" data-dont-watch ng-if=!$ctrl.fpHref></a> </span> <span class="col-xs-8 text-right"> <span data-i18n="_SignInInfo_"></span> <span> <a href="/popup/terms" class="pop-up" data-i18n="_TermsOfService_" window_specs="width=1000,height=500,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=no,titlebar=no,toolbar=no"></a> and </span> <span> <a href="/popup/privacy" class="pop-up" data-i18n="_Privacy_" window_specs="width=1000,height=500,location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=no,titlebar=no,toolbar=no"></a> </span> </span> </span> </div> </div> <div ng-class="{'modal-footer': $ctrl.isModal, 'log-in-footer': !$ctrl.isModal}"> <!-- Log In buttons --> <div class="row" ng-hide="$ctrl.confirmEmail && $ctrl.volunteerActivity"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Cancel_" data-dont-watch class="btn vs1-white-blue-btn" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close()" ng-if="$ctrl.close" > </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="$ctrl.submitting"></i> <button type="submit" data-i18n="_PremiumModalContinueButton_" data-dont-watch class="btn" ng-class="{'btn-success': $ctrl.isModal, 'btn-primary': !$ctrl.isModal}" ng-disabled="$ctrl.submitting" autofocus ></button> </div> </div> <!-- Confirm Email buttons (hidden by default) --> <div class="row ng-hide" ng-show="$ctrl.confirmEmail && $ctrl.volunteerActivity"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_ArrowBack_" data-dont-watch class="btn vs1-w
2708hite-blue-btn" ng-disabled="$ctrl.submitting" ng-click="$ctrl.confirmBack()" > </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="$ctrl.submitting"></i> <button id="confirm_button" type="submit" data-i18n="_Confirm_" data-dont-watch class="btn" ng-class="{'btn-success': $ctrl.isModal, 'btn-primary': !$ctrl.isModal}" ng-disabled="$ctrl.submitting" ng-click="$ctrl.confirmContinue()" ></button> </div> </div> </div> </form></script>
vendor: 1 bytes, line 2708
2708
2709<script type="text/ng-template" id="/script/vspot-angular/components/grid/common/whos_coming.html"><!--<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/angular-ui/bower-ui-grid/master/ui-grid.css">--> <!-- $root.* because this component uses an isolate scope (Angular .component()), which does NOT inherit from $rootScope; $root is available on every scope. Vspot is exposed on $rootScope in desktop/script/vspot.js. --> <link ng-href="{{$root.Vspot.assetCss.gridReport}}" rel="stylesheet" type="text/css"> <link ng-href="{{$root.Vspot.assetCss.vsGridReports}}" rel="stylesheet" type="text/css"> <link ng-href="{{$root.Vspot.assetCss.gridPrint}}" rel="stylesheet" type="text/css"> <link ng-href="{{$root.Vspot.assetCss.dataTables}}" rel="stylesheet" type="text/css"> <link ng-href="{{$root.Vspot.assetCss.angularDataTables}}" rel="stylesheet" type="text/css"> <link ng-href="{{$root.Vspot.assetCss.buttonsDataTables}}" rel="stylesheet" type="text/css"> <!--<link rel="stylesheet" type="text/css" href="/script/vspot-angular/components/grid/css/vs-ui-grid.css">--> <!--<link rel="stylesheet" type="text/css" href="/script/vspot-angular/components/grid/css/ui-grid.css">--> <div class="titleRow row"> <div class="reportTitle col-md-4"> <h2 data-ng-bind-html="gridData.activity.title"> Interactive Reporting . . . </h2> </div> </div> <!-- The Loading Spinner --> <div ng-show="noAssignmentsDisplay" class="alert alert-warning loadingDiv"> <span data-i18n="_ReportNoData_" data-dont-watch></span> </div> <div ng-show="refreshData" class="loadingDiv"> <h3 data-i18n="_RefreshReport_" data-dont-watch> We are currently rebuilding your report, this may take some time to complete. </h3> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div ng-hide="displayTable || refreshData " class="loadingDiv"> <h3 data-i18n="_LoadingReport_" data-dont-watch></h3> <img src="/imgs/ajax/ajax-loader-bar.gif" ng-attr-alt="{{'_LoadingDotDotDot_'|i18n}}"> </div> <div ng-hide="noDataDisplay"> <div ng-show="gridData.jobs.length > 1200 " class="alert alert-warning loadingDiv" data-i18n="_GridLargeReturn_"></div> <div ng-show="largeNuberUnassigned && displayallassignments" class="alert alert-warning loadingDiv" data-i18n="_GridReturnLimit_|{{ unasignedLimit }}"></div> </div> <!-- this is the data table --> <div ng-if="displayTable" class="grid" ng-hide="refreshData"> <div><label><i class="icon-small-calendar"></i></label> <span class="clickable" ng-click="toggleDateRange()"> <span data-ng-bind-html="showStartDate"></span> - <span data-ng-bind-html="showEndDate"></span><br> </span> </div> <div id="dateRange" class="dateRange"> <div class="inline-date-picker-container no-animate"> <div class="input-group fl"> <input type="text" class="form-control clickable" name="startdate" id="startdate" uib-datepicker-popup="MMM d, yyyy" datepicker-options="dateOptions" ng-model="parent.dateRangeStartDate" is-open="opened_startdate" ng-change="opened_startdate = false;" ng-click="opened_startdate = true;" ng-attr-close-text="{{ getLocalizedString('_Close_') }}" ng-attr-clear-text="{{ getLocalizedString('_Clear_') }}" ng-attr-current-text="{{ getLocalizedString('_Today_') }}" ng-required="timeTemplate === 'dateRange'" validation-required='_FieldRequiredErrorBlank_' bindToController = true readonly > <span class="input-group-btn"> <button type="button" class="btn btn-default" ng-click="opened_startdate = true"> <span class="glyphicon glyphicon-calendar"> </span> </button> </span> </div> <span class="dateRangeSeparator fl"></span> <div class="input-group fl"> <input type="text" class="form-control clickable" name="enddate" id="enddate" uib-datepicker-popup="MMM d, yyyy" datepicker-options="dateOptions" ng-model="parent.dateRangeEndDate" is-open="opened_enddate" ng-change="opened_enddate = false;" ng-click="opened_enddate = true;" ng-attr-close-text="{{ getLocalizedString('_Close_') }}" ng-attr-clear-text="{{ getLocalizedString('_Clear_') }}" ng-attr-current-text="{{ getLocalizedString('_Today_') }}" ng-required="timeTemplate === 'dateRange'" validation-required='_FieldRequiredErrorBlank_' bindToController = true readonly > <span class="input-group-btn"> <button type="button" class="btn btn-default" ng-click="opened_enddate = true"> <span class="glyphicon glyphicon-calendar"></span> </button>
2709 </span> </div> <div data-i18n="_DateRangeIsInvalid_" ng-show="parent.invalidDate" class="error br"></div> <div> <button class="btn btn-warning refresh_dates" ng-click="changeDate()" ng-hide="parent.invalidDate"><span class="icon-arrows-circle" aria-hidden="true"></span> Change Date</button> <br> <label> <span class="clickable" ng-click="toggleDateRange()"> Close Date Picker </span></label> <hr> </div> <!-- {{report.startdate}} {{report.enddate}} --> <label class="text-danger" data-i18n="_ReportValidationDate_" data-dont-watch ng-show="(reportsForm.startdate.$dirty && reportsForm.startdate.$error.required && focused !== 'startdate')|| (reportsForm.enddate.$dirty && reportsForm.enddate.$error.required && focused !== 'enddate')" ></label> <label class="text-danger" data-i18n="_ReportValidationRange_" data-dont-watch ng-show="reportsForm.startdate.$dirty && reportsForm.enddate.$dirty && (focused !== 'startdate' || focused !== 'enddate') && reportsForm.startdate.$modelValue > reportsForm.enddate.$modelValue" ></label> </div> </div> <table ng-if="displayTable" datatable="" dt-options="dtOptions" dt-columns="dtColumns" dt-instance="dtIntanceCallback" class="grid row-border hover stripe" cellspacing="0" width="100%"></table> </div> <!-- End table --> <div ng-show='details' class="detailedInfo"> <span ng-hide="details.commentonly=='True'"> <div class='grid-details-info'>Details for {{details.name}} <span class="count">{{details.jobstotalassignments}} Spots filled out of {{details.jobscount}} total.</span> </div> <ul ng-show="details.who || details.comments"> <li ng-show="details.email">Email: <a href="mailto:{{details.email}}">{{details.email}}</a> <li ng-show="details.who">Number of spots filled by {{details.who }}: {{details.quantityTaken}}</li> <li ng-show="details.phone">Phone: {{details.phone}}</li> <li ng-show="details.comments">Comment(s): <br> <span ng-bind-html="details.comments"></span> </li> </ul> </span> <span ng-show="details.commentonly=='True'"> <div class='grid-details-info'>Comment for {{details.name}} </div> <ul ng-show="details.who || details.comments"> <li ng-show="details.email">Email: <a href="mailto:{{details.email}}">{{details.email}}</a> <li ng-show="details.phone">Phone: {{details.phone}}</li> <li ng-show="details.comments">Comment:<span ng-bind-html="details.comments"></span> </li> </ul> </span> </div> <div ng-show="hasCommentonly" class="alert alert-info commentonly" data-i18n="_CommentOnly_"></div> <!--<div ng-show="gridData.jobs" class="exportBtnRow">--> <!--<label class="export-title">Export and Print Data</label>--> <!--<br/>--> <!--<button ng-click=" export('print'); $event.stopPropagation();" class="btn btn-primary ">--> <!--<span class="icon-printer" aria-hidden="true"></span>--> <!--<span class="ng-scope">Print Visible Data</span>--> <!--</button>--> <!--<button ng-click=" export('pdf')" class="btn btn-primary export pdf">--> <!--<span class="fa fa-file-pdf-o" aria-hidden="true"></span>--> <!--<span class="ng-scope">PDF</span>--> <!--</button>--> <!--<button class="btn btn-primary export csv dt-button buttons-csv">--> <!--<span class="fa fa-file-excel-o" aria-hidden="true"></span>--> <!--<span class="ng-scope ">Export Data to CSV</span>--> <!--</button>--> <!--</a>--> <!--</div>--> </div> <!-- Printable --> <div id="print-div"> <div id="print-content" ng-show="true"> <h2>{{gridData.activity.title}} </h2> <table id="print-table" class="table print-table"> <thead> <tr> <th ng-repeat="(key, col) in printColumns" ng-style="{'min-width': col.width, 'max-width': col.width}" ng-hide="col.bVisible == false || col.visible == false">{{col.sTitle}} </th> </tr> </thead> <tbody class="table-striped"> <tr ng-repeat="(idx, row) in gridData.jobs" ng-class="{'commentonly':row.commentonly=='True'}"> <td ng-repeat="(key, col) in printColumns" ng-hide="col.bVisible == false || col.visible == false"> {{row[col.mData]}} </td> </tr> </tbody> </table> </div> </div> <!--<h2>gridData</h2>--> <!--{{gridData}}--> <!--<hr>--> <!--<h2>Print Columns</h2>--> <!--{{printColumns}}--> </script>
vendor: 1 bytes, line 2709
2709
2710<script type="text/ng-template" id="/script/vspot-angular/components/menu/menu-organizations/menu-organizations.html"><div ng-show="$ctrl.loadingOrgs"> Loading Organizations <span class="animated-dots"><span class="one">.</span><span class="two">.</span><span class="three ">.</span></span> </div> <div ng-show="$ctrl.showError"> Error loading Organizations </div> <div ng-show="$ctrl.organizations.length" class="open menu-invitations"> My Organizations <ul class="dropdown-menu" ng-show="true"> <li role="menuitem" ng-repeat="o in $ctrl.organizations | orderBy:'description'" > <a href="/Dashboard#/my-organizations/{{ o.id }}">{{ o.description }}</a> </li> </ul> </div></script>
vendor: 1 bytes, line 2710
2710
2711<script type="text/ng-template" id="/script/vspot-angular/components/menu/main-nav/main-nav.html"><nav> <!-- Nav for mobile --> <div class="visible-xs visible-sm mobile-nav"> <div class="menu-row"> <div class="mobile-menu-icon-wrapper"> <div class="menu menu-icon"> <span class="fa-stack fa-lg" ng-click="$ctrl.toggleMenu($event)"> <span class="sr-only">Open navigation</span> <i class="fa fa-circle-thin fa-stack-2x" aria-hidden="true"></i> <i class="fa fa-bars fa-stack-1x" aria-hidden="true"></i> </span> </div> </div> <div class="logo"> <a href="/"><img src="/imgs/signup/logo.png" alt="Signup Logo"></a> </div> <div class="mobile-menu-icon-wrapper"> <div class="ng-hide no-animate menu-icon" ng-click="$ctrl.toggleSearch($event)" ng-show="$ctrl.searchableArticles.length > 0 && !$ctrl.showSearch" > <span class="fa-stack fa-lg"> <span class="sr-only">Open search</span> <i class="fa fa-search fa-stack-2x" aria-hidden="true"></i> </span> </div> <div class="ng-hide no-animate menu menu-icon" ng-click="$ctrl.toggleSearch($event)" ng-show="$ctrl.searchableArticles.length > 0 && $ctrl.showSearch" > <span class="fa-stack fa-lg"> <span class="sr-only">Close search</span> <i class="fa fa-times fa-stack-2x" aria-hidden="true"></i> </span> </div> </div> </div> <div class="nav-menu ng-hide" ng-show="$ctrl.showMenu"> <div class="mobile-space"> <div class="menu-close menu-icon"> <span class="fa-stack fa-lg" ng-click="$ctrl.toggleMenu($event)"> <span class="sr-only">Close navigation</span> <i class="fa fa-times fa-stack-2x" aria-hidden="true"></i> </span> </div> <div class="menu-text">MENU</div> </div> <div class="nav-items ng-hide" ng-show="$ctrl.showNav"> <ul role="menu"> <li role="menuitem" ng-repeat="n in $ctrl.navFull" class="mobile-line {{ n.nav_classes }}"> <!-- No Children? Just print link or span. --> <a href ng-if="$ctrl.useLogInModal && n.log_in" ng-attr-id="{{ 'resource_' + n.id }}" class="{{ n.nav_classes }}" ng-bind-html="n.nav_title" ng-click="$ctrl.logInModal()" ></a> <a ng-if="!($ctrl.useLogInModal && n.log_in) && !n.children.length && n.url !== '/-'" ng-href="{{ n.url }}" ng-attr-id="{{ 'resource_' + n.id }}" class="{{ n.nav_classes }}" ng-class="{ 'current': n.url === $ctrl.currentUrl, 'pop-up': n.popup }" > <span ng-bind-html="n.nav_title"></span> </a> <span ng-if="!($ctrl.useLogInModal && n.log_in) && !n.children.length && n.url === '/-'" class="{{ n.nav_classes }}" ng-class="{'current': n.url === $ctrl.currentUrl}" ng-bind-html="n.nav_title"></span> <!-- Children? Wrap in div. --> <div ng-if="n.children.length" class="no-animate"> <a ng-if="n.url !== '/-'" ng-href="{{ n.url }}" ng-attr-id="{{ 'resource_' + n.id }}" class="{{ n.nav_classes }}" ng-class="{ 'current': n.url === $ctrl.currentUrl, 'pop-up': n.popup }" ng-click="$ctrl.toggleMobileDropDown($event, n)" > <span ng-bind-html="n.nav_title"></span> <i class="fa fa-caret-right" aria-hidden="true" ng-show="!n.showMenu"></i> <i class="fa fa-caret-down ng-hide" aria-hidden="true" ng-show="n.showMenu"></i> </a> <a ng-if="n.url === '/-'" class="{{ n.nav_classes }}" ng-class="{'current': n.url === $ctrl.currentUrl}" ng-click="$ctrl.toggleMobileDropDown($event, n)"> <span ng-bind-html="n.nav_title"></span> <i class="fa fa-caret-right" aria-hidden="true" ng-show="!n.showMenu"></i> <i class="fa fa-caret-down ng-hide" aria-hidden="true" ng-show="n.showMenu"></i> </a> <ul role="menu" class="ng-hide" ng-show="n.showMenu"> <li role="menuitem" ng-repeat="c in n.children" class="{{ c.li_classes }}"> <a ng-if="c.url !== '/-'" ng-href="{{ c.url }}" ng-attr-id="{{ 'resource_' + c.id }}" class="{{ c.li_classes }}" ng-class="{ 'pop-up': c.popup }" ng-bind-html="c.nav_title" ></a> <span ng-if="c.url === '/-'" class="wrap-title {{ c.li_classes }}" ng-bind-html="c.nav_title"></span> </li> </ul> </div> </li> </ul> </div> </div> </div> <!-- Nav for bigger devices --> <div class="hidden-xs hidden-sm desktop-nav"> <div class="menu-row"> <div class="menu-cell logo"> <a href="/"><img src="/imgs/signup/logo.png" alt="Signup Logo"></a> </div> <!-- <div class="menu-cell header-ad" ng-include="'/header_ad.html'"></div> --> <div class="menu-cell menu-container"> <ul class="clearfix nav ng-hide" role="menu" ng-show="$ctrl.showNav"> <li role="menuitem" ng-repeat="n in $ctrl.navFull" class="{{ n.nav_classes }}"> <!-- No Children? Just print link or span. --> <a href ng-if="$ctrl.useLogInModal && n.log_in" ng-attr-id="{{ 'resource_' + n.id }}" class="{{ n.nav_classes }}" ng-bind-html="n.nav_title" ng-click="$ctrl.logInModal()" ></a> <a ng-if="!($ctrl.useLogInModal && n.log_in) && !n.children.length && n.url !== '/-'" ng-href="{{ n.url }}" ng-attr-id="{{ 'resource_' + n.id }}" class="{{ n.nav_classes }}" ng-class="{ 'current': n.url === $ctrl.currentUrl, 'pop-up': n.popup }" ng-bind-html="n.nav_title" ></a> <span ng-if="!($ctrl.useLogInModal && n.log_in) && !n.children.length && n.url === '/-'" class="{{ n.nav_classes }}" ng-class="{'current': n.url === $ctrl.currentUrl}" ng-bind-html="n.nav_title"></span> <!-- Children? Wrap in div. --> <div ng-if="n.children.length" class="btn-group" uib-dropdown is-open="n.menu.open" ng-mouseenter="n.menu.open=true" ng-mouseleave="n.menu.open=false"> <a class="dropdown-toggle dropdown-link" uib-dropdown-toggle> <span class="{{ n.nav_classes }}" ng-class="{'current': n.url === $ctrl.currentUrl}"> <span ng-bind-html="n.nav_title" class="nav-title"></span> <span class="caret"></span> </span> </a> <ul uib-dropdown-menu role="menu" class="dropdown-menu"> <li role="menuitem" ng-repeat="c in n.children" class="{{ c.li_classes }}"> <a ng-if="c.url !== '/-'" ng-href="{{ c.url }}" ng-attr-id="{{ 'resource_' + c.id }}" class="{{ c.li_classes }}" ng-class="{ 'pop-up': c.popup }" ng-bind-html="c.nav_title" aria-label="{ c.nav_title }" ></a> <span aria-label="Menu Separator" ng-if="c.url === '/-' && !c.menu_inv
2711itations && !c.menu_organizations" class="wrap-title {{ c.li_classes }}" ng-bind-html="c.nav_title"></span> <span aria-label="Menu Separator" ng-if="c.url === '/-' && c.menu_invitations" class="wrap-title"> <menu-invitations menu-open="n.menu.open"></menu-invitations> </span> <span aria-label="Menu Separator" ng-if="c.url === '/-' && c.menu_organizations" class="wrap-title"> <menu-organizations menu-open="n.menu.open"></menu-organizations> </span> </li> </ul> </div> </li> </ul> </div> <div class="menu-cell search" ng-if="$ctrl.searchableArticles.length > 0"> <div class="ng-hide no-animate menu-icon" ng-click="$ctrl.toggleSearch($event)" ng-show="!$ctrl.showSearch" > <span class="fa-stack fa-lg"> <span class="sr-only">Open search</span> <i class="fa fa-search fa-stack-2x" aria-hidden="true"></i> </span> </div> <div class="ng-hide no-animate menu-icon" ng-click="$ctrl.toggleSearch($event)" ng-show="$ctrl.showSearch" > <span class="fa-stack fa-lg"> <span class="sr-only">Close search</span> <i class="fa fa-times fa-stack-2x" aria-hidden="true"></i> </span> </div> </div> </div> </div> <!-- Search Bar --> <div class="search-bar ng-hide shared-nav" ng-show="$ctrl.showSearch" ng-click="$ctrl.clickedSearchBar($event)"> <div class="input-group"> <div class="input-group-addon"> <i class="fa fa-search" aria-hidden="true"></i> </div> <input type="text" name="search" class="form-control" autocomplete="off" data-i18n-attr="_Search_|placeholder" ng-model="$ctrl.search" uib-typeahead="s as s.title for s in $ctrl.searchableArticles | filter:$viewValue" typeahead-min-length="0" typeahead-on-select="$ctrl.selectedArticle($item, $model, $label, $event)" typeahead-popup-template-url="search-results.html" > </div> </div>
2711<script type="text/ng-template" id="search-results.html"> <div class="search-results-wrapper" ng-style="{top: position().top+'px', left: position().left+'px'}" style="position: absolute;" ng-show="query && !moveInProgress" aria-hidden="{{!isOpen()}}" > <div class="no-results" ng-show="matches.length === 0">No Results Found</div> <ul class="dropdown-menu" role="listbox" ng-show="matches.length > 0"> <li class="uib-typeahead-match" ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}" > <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div> </li> </ul> </div> </script>
2711 </nav> </script>
vendor: 1 bytes, line 2711
2711
2712<script type="text/ng-template" id="/script/vspot-angular/components/menu/menu-invitations/menu-invitations.html"><div ng-show="$ctrl.loadingInvitations"> Loading Invitations <span class="animated-dots"><span class="one">.</span><span class="two">.</span><span class="three ">.</span></span> </div> <div ng-show="$ctrl.showError"> Error loading Invitations </div> <div ng-show="$ctrl.invitations.length" class="open menu-invitations"> Upcoming SignUps <ul class="dropdown-menu" ng-show="true"> <li role="menuitem" ng-repeat="i in $ctrl.invitations" > <a ng-href="/Contribute?accesskey={{ $ctrl.accessKey }}&activity_id={{ i.activity_id }}&return={{ encodeURIComponent(window.location.href) }}" ng-if=" i.kind === 'contribonly' " >{{ i.activity_title }}</a> <a ng-href="/client/invitation2/{{ $ctrl.accessKey }}/{{ i.activity_key }}/false/" ng-if=" i.kind !== 'contribonly' " >{{ i.activity_title }}</a> </li> </ul> </div></script>
vendor: 1 bytes, line 2712
2712
2713<script type="text/ng-template" id="/script/vspot-angular/components/forgot-password/forgot-password.html"><form method="post" vspot-validation="$ctrl.submit" name="log_in" role="form" accept-charset="utf-8" novalidate class="form-horizontal" > <div ng-class="{'modal-body': $ctrl.isModal, 'mt20': !$ctrl.isModal}"> <div class="row"> <h2 class="text-center" ng-class="{'subheadline': $ctrl.isModal}" data-i18n="_ForgotPasswordHelpText_" data-dont-watch></h2> </div> <div class="row form-group ng-hide" ng-show="$ctrl.errorCode"> <div class="col-xs-12"> <div class="alert alert-danger" role="alert" data-i18n="{{ $ctrl.errorCode }}"></div> </div> </div> <div class="row form-group ng-hide" ng-show="$ctrl.showSuccess && !$ctrl.errorCode"> <div class="col-xs-12"> <div class="alert alert-success" role="alert" data-i18n="_PremiumModalResetPasswordHelpText_" data-dont-watch></div> </div> </div> <div class="row form-group"> <div class="col-xs-12"> <label for="fp-email" class="sr-only" data-i18n="_PlaceholderEmail_" data-dont-watch></label> <input id="fp-email-email" name="fpEmail" type="email" data-i18n-attr="_PlaceholderEmail_|placeholder" ng-model="$ctrl.form.email" ng-disabled="$ctrl.submitting" required class="form-control" > </div> </div> <div class="row form-group"> <div class="col-xs-6 text-left"> <a href data-i18n="_PremiumModalReturnToRegister_" data-dont-watch ng-click="$ctrl.showRegister()" ng-if="$ctrl.showRegister"></a> </div> <div class="col-xs-6 text-right"> <a href data-i18n="_PremiumModalGoToLogIn_" data-dont-watch ng-click="$ctrl.showLogIn()" ng-if="$ctrl.showLogIn"></a> </div> </div> </div> <div ng-class="{'modal-footer': $ctrl.isModal}"> <div class="row"> <div class="col-xs-6 text-left"> <button type="button" data-i18n="_Cancel_" data-dont-watch class="btn vs1-white-blue-btn" ng-disabled="$ctrl.submitting" ng-click="$ctrl.close()" ng-if="$ctrl.close"> </div> <div class="col-xs-6 text-right"> <i class="fa fa-spinner fa-pulse fa-2x loader-icon" ng-show="$ctrl.submitting"></i> <button type="submit" data-i18n="_Send_" data-dont-watch class="btn" ng-class="{'btn-success': $ctrl.isModal, 'btn-primary': !$ctrl.isModal}" ng-disabled="$ctrl.submitting"></button> </div> </div> </div> </form></script>
vendor: 1 bytes, line 2713
2713
2714<script type="text/ng-template" id="/script/vspot-angular/components/email-preferences/email-preferences.html"><div class="row email-pref-bg"> <h2>Email Preferences</h2> </div> <div class="main-email-container"> <div ng-hide="$ctrl.emailPrefs.no_contact || $ctrl.message || $ctrl.emailPrefs.error"> <div class="row text-center" ng-show="$ctrl.activity"> <div class="manage-email-bg col-md-8 col-md-offset-2"> <h3><img src="/imgs/icons/gray-email-arrow.png" class="gray-arrow" /> Remove me from the SignUp "{{$ctrl.activity.title}}"</h3> <p class="email-pref-copy">Click "Remove Me" below to remove yourself from the signup "{{$ctrl.activity.title}}". This will remove all your past and future assignments and suspend future automated messages about this activity. (You may choose to sign up in the future.)</p> <form method="post" name="emailPreferencesForm" role="form" accept-charset="utf-8" novalidate > <div class="row text-center"> <div><i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.loading"></i></div> <button class="email_btn ng-scope " ng-disabled="$ctrl.loading" ng-click="$ctrl.deleteme()"><span class="ng-scope">Remove Me</span></button> </div> </form> </div> </div> <div class="unsubscribe" ng-show="$ctrl.activity"> <div class="bar"><span>or</span></div> </div> <div class="row text-center"> <div class="manage-email-bg col-md-8 col-md-offset-2"> <h3><img src="/imgs/icons/gray-email-arrow.png" class="gray-arrow" /> Manage Email Subscriptions</h3> <p class="email-pref-copy">We respect your privacy and your preferences. Please choose which emails you want to receive below:</p> <form method="post" name="emailPreferencesForm" role="form" accept-charset="utf-8" novalidate > <div class="control-group"> <label for="newsletter-pref" class="control control--checkbox"> SignUp.com Newsletter <p class="newsletter-copy">Product updates, seasonal planning tips, and special offers from our sponsors</p> <input type="checkbox" id="newsletter-pref" name="newsletter-pref" ng-model="$ctrl.emailPrefs.newsletter"> <div class="control__indicator"></div> </label> </div> <div class="control-group"> <label for="organizer-tip-pref" class="control control--checkbox"> Organizer Tip Emails <p class="newsletter-copy">Helpful hints on how to unlock the full organizing power of SignUp.com</p> <input type="checkbox" id="organizer-tip-pref" name="organizer-tip-pref" ng-model="$ctrl.emailPrefs.organizer_tip"> <div class="control__indicator"></div> </label> </div> <div class="row text-center"> <div><i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.loading"></i></div> <button class="email_btn ng-scope " ng-disabled="$ctrl.loading" ng-click="$ctrl.update()"><span class="ng-scope">Update Preferences</span></button> </div> </form> <!-- <div class="col-lg-12">--> <!-- <p class="small-note"><b>Note:</b> If you have been invited to a SignUp.com activity and want to opt out of communication specific to that activity â please contact the activity Organizer and ask him/her to remove you from the roster.</p>--> <!-- <p class="small-note">The organizerâs contact information is at the bottom of any invitation, confirmation or reminder message. </p>--> <!-- </div>--> </div> </div> <div class="unsubscribe"> <div class="bar"><span>or</span></div> </div> <div class="row text-center"> <div class="manage-email-bg col-md-8 col-md-offset-2"> <h3><img src="/imgs/icons/gray-email-arrow.png" class="gray-arrow"> Put Me On The Permanent Do Not Mail List</h3> <p class="email-pref-copy">By choosing this option you will be permanently unsubscribed from all emails. Including Participant invitations and reminders, and Organizer related emails such as confirmations, notifications, and reports.</p> <div class="row text-center"> <div><i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.loading"></i></div> <button class="email_btn ng-scope " ng-disabled="$ctrl.loading" ng-click="$ctrl.unsubscribe()"><span class="ng-scope">Do Not Email</span></button> </div> </div> </div> </div> <div class="row text-center"> <div class="manage-email-bg col-md-8 col-md-offset-2" ng-show="$ctrl.emailPrefs.no_contact && !$ctrl.message && !$ctrl.emailPrefs.error"> <h3><img src="/imgs/icons/gray-email-arrow.png" class="gray-arrow" /> You previously placed yourself on our Do Not Email List</h3> <p class="email-pref-copy"> To receive emails related specifically to your activities as an Organizer and/or a Participant, please click the button below: </p> <div class="row text-center"> <div><i class="fa fa-spinner fa-pulse fa-2x loader-icon" aria-hidden="true" ng-show="$ctrl.loading"></i></div> <button class="email_btn ng-scope " ng-disabled="$ctrl.loading" ng-click="$ctrl.resubscribe()"><span class="ng-scope">Send Emails for My Activities</span></button> </div> <p class="email-pref-copy"> Contact us at <a href="mailto:[email protected]">[email protected]</a> with any questions or comments. </p> </div> <div class="manage-email-bg col-md-8 col-md-offset-2" ng-show="$ctrl.message && !$ctrl.emailPrefs.error"> <div class="row text-center"> {{ $ctrl.message }} </div> </div> <div class="manage-email-bg col-md-8 col-md-offset-2" ng-show="$ctrl.emailPrefs.error"> <div class="row text-center"> There was a problem trying to update your email preferences. Please contact us at <a href='mailto:[email protected]'>[email protected]</a> or try again later. </div> </div> </div> </div></script>
vendor: 1 bytes, line 2714
2714
2715<script type="text/ng-template" id="/script/vspot-angular/components/date-range-picker/date-range-picker.html"><div id="dateRange" class="dateRange"> <div class="inline-date-picker-container no-animate"> <div class="input-group fl"> <input ng-if="$ctrl.initialized" type="text" class="form-control clickable" name="startdate" id="startdate" datepicker-options="$ctrl.dateOptions" uib-datepicker-popup="MMM d, yyyy" ng-model="$ctrl.date" is-open="$ctrl.openedStartdate" ng-change="$ctrl.changeDate()" ng-click="$ctrl.openedStartdate=true;" readonly > <span class="input-group-btn"> <button type="button" class="btn btn-default" ng-click="$ctrl.openedStartdate=true"> <span class="glyphicon glyphicon-calendar"> </span> </button> </span> </div> </div> </div></script>
2715 2716 2717</div> 2718
2719<script> 2720 Vspot.boot('pricing', '#main'); 2721</script>
2721 2722 2723 </main> 2724 </div> 2725 </div> 2726 </div> 2727 2728 <div id="footer_container" class="container-fluid"> 2729 <section id="footer" class="clearfix"> 2730 <div class="left-column"> 2731 2732 <div id="copyright"> 2733 © 2026 VolunteerSpot, Inc. All Rights Reserved. 2734 </div> 2735 2736 <div id="footer_links"> 2737 <span class="hidden-xs hidden-sm"> 2738 <a href="#page_top">Back to Top ^</a> 2739 | 2740 </span> 2741 <a href="/Terms">Terms of Service</a> 2742 | 2743 <a href="/Privacy">Privacy Policy</a><a href="/Privacy#CCPA"> (CCPA)</a> 2744 | 2745 <span class="hidden-xs hidden-sm"> 2746 <a href="/Site-Map">Site Map</a> 2747 | 2748 </span> 2749 <a href="/Contact">Contact</a> 2750 | 2751 <span class="hidden-xs hidden-sm"> 2752 <a href="/Help">Help</a> 2753 | 2754 </span> 2755 <a href="/advertise">Advertise With Us</a> | 2756 <a href="/Mobile-Demo">Demo</a> 2757 </div> 2758 2759 </div> 2760 2761 <div class="right-column"> 2762 2763 <div id="footer_social"> 2764 <a href="https://twitter.com/SignUpdotcom" target="_blank" rel="noopener noreferrer" aria-label="Twitter (opens in a new tab)"><img src="/imgs/organizer/twitter-icon.png" alt="Twitter"></a> 2765 <a href="https://www.youtube.com/c/Signupcom" target="_blank" rel="noopener noreferrer" aria-label="YouTube (opens in a new tab)"><img src="/imgs/organizer/youtube-icon.png" alt="YouTube"></a> 2766 <a href="https://www.facebook.com/SignUpdotcom" target="_blank" rel="noopener noreferrer" aria-label="Facebook (opens in a new tab)"><img src="/imgs/organizer/facebook-icon.png" alt="Facebook"></a> 2767 <a href="https://www.pinterest.com/signupdotcom/" target="_blank" rel="noopener noreferrer" aria-label="Pinterest (opens in a new tab)"><img src="/imgs/organizer/pinterest-icon.png" alt="Pinterest"></a> 2768 </div> 2769 2770 </div> 2771 2772 <div class="br"></div> 2773 2774 <div class="visible-xs visible-sm text-center back-to-top"> 2775 <a href="#page_top">Back to Top ^</a> 2776 </div> 2777 2778 <div class="footer-secondary-links hidden-xs hidden-sm"> 2779 <hr> 2780 </div> 2781 2782 <div class="container-fluid hidden-xs hidden-sm"> 2783 <div class="row"> 2784 <div class="col-xs-3 footer-col"> 2785 <h3>Go To</h3> 2786 <div class="br"></div> 2787 <ul class="footer-links"> 2788 2789 <li > 2790 2791 <a href="/index" class="" >Home</a> 2792 2793 </li> 2794 <li > 2795 2796 <a href="/Find-My-SignUp" class="" >Find My SignUp</a> 2797 2798 </li> 2799 <li > 2800 2801 <a href="/login/signin" class="" >Sign In</a> 2802 2803 </li> 2804 <li > 2805 2806 <a href="/Register" class="" >Register</a> 2807 2808 </li> 2809 2810 </ul> 2811 </div> 2812 <div class="col-xs-3 footer-col"> 2813 <h3>Help & Resources</h3> 2814 <div class="br"></div> 2815 <ul class="footer-links"> 2816 2817 <li > 2818 2819 <a href="https://signuphelp.zendesk.com/hc/en-us" class="" >Help Center</a> 2820 2821 </li> 2822 <li > 2823 2824 <a href="/Video/VideoTour" class="" >Quick Tip Videos</a> 2825 2826 </li> 2827 <li > 2828 2829 <a href="/Collect-Contributions" class="" >Collect Money</a> 2830 2831 </li> 2832 <li > 2833 2834 <a href="/signup-compare-your-options" class="" >Compare</a> 2835 2836 </li> 2837 <li > 2838 2839 <a href="/Pricing" class="" >Pricing</a> 2840 2841 </li> 2842 <li > 2843 2844 <a href="/About/Logos" class="" >Logos & Buttons</a> 2845 2846 </li> 2847 <li > 2848 2849 <a href="/free-online-signup-tools-resources" class="" >Free Sign-Up Tools & Resources</a> 2850 2851 </li> 2852 2853 </ul> 2854 </div> 2855 <div class="col-xs-3 footer-col"> 2856 <h3>Company</h3> 2857 <div class="br"></div> 2858 <ul class="footer-links"> 2859 2860 <li class="has-children" > 2861 2862 <a href="/About" class="" >About</a> 2863 2864 <ul> 2865 2866 <li > 2867 2868 <a href="/about/company-press-releases" class="" >Company Press Releases</a> 2869 2870 </li> 2871 2872 </ul> 2873 </li> 2874 <li > 2875 2876 <a href="/About/Team" class="" >Team SignUp</a> 2877 2878 </li> 2879 <li > 2880 2881 <a href="//vspot.s3.amazonaws.com/sign-up/SignUp-Company-Fact-Sheet.pdf" class="" >Company Fact Sheet [pdf]</a> 2882 2883 </li> 2884 <li > 2885 2886 <a href="/News" class="" >SignUp In the News</a> 2887 2888 </li> 2889 <li > 2890 2891 <a href="/Partners" class="" >Partners & Pages</a> 2892 2893 </li> 2894 <li > 2895 2896 <a href="/responsible-disclosure-policy" class="" >Responsible Disclosure Policy</a> 2897 2898 </li> 2899 <li > 2900 2901 <a href="/responsible-disclosure-hall-of-fame" class="" >Responsible Disclosure Hall Of Fame</a> 2902 2903 </li> 2904 <li > 2905 2906 <a href="https://signup.com/Privacy#CCPA" class="" >Do Not Sell My Personal Information</a> 2907 2908 </li> 2909 2910 </ul> 2911 </div> 2912 <div class="col-xs-3 footer-col"> 2913 <h3>Connect</h3> 2914 <div class="br"></div> 2915 <ul class="footer-links"> 2916 2917 <li > 2918 2919 <a href="/Contact" class="" >Contact</a> 2920 2921 </li> 2922 <li class="has-children" > 2923 2924 <a href="/partner-hub" class="" >Brand Partner Hub</a> 2925 2926 <ul> 2927 2928 <li > 2929 2930 <a href="/Advertise" class="" >Advertise With Us</a> 2931 2932 </li> 2933 2934 </ul> 2935 </li> 2936 2937 </ul> 2938 </div> 2939 </div> 2940 </div> 2941 <div class="footer-secondary-links hidden-xs hidden-sm"> 2942 <hr> 2943 </div> 2944 2945 <!--Begin About Section --> 2946 2947 <div class="about-section-footer"> 2948 <h3>About SignUp</h3> 2949 <p>At SignUp, we believe that when people get together, great things happen. Thatâs why parents and teachers, business and community leaders, and friends and coworkers trust our coordination resources and applications to save time and achieve remarkable outcomes. Our simple, intuitive SignUp sheets and scheduling tools make it easy for people to join together and say YES to pitching in, signing up, and helping out. No waiting for approvals and passwords, no software to installâjust free, easy scheduling and SignUp tools for everyday heroes. Use SignUp for anything including school activities, potlucks, service projects, carnivals and walk-a-thons, class parties, teacher appreciation events, swim meets, tournaments, charity races, office hours, car pool, parent-teacher conference SignUps and more. Automatic reminders help participants keep their commitments, and easy online calendar editing, reporting and messaging saves time and energy, so everyone can do more GOOD!</p> 2950 </div> 2951 2952 <!--End About Section--> 2953 2954 <div id="error_dialog" class="clearfix"> 2955 <div class="error-img clearfix"> 2956 <!-- Add when we show the dialog... less for the user to load, and Facebook won't find by mistake as a sharing image. --> 2957 </div> 2958 <div class="error-box clearfix" id="supported_browser_error"> 2959 <p class="notice">Bummer! An error has occurred on this page. We have sent an error report back to the geeks.</p> 2960 <p>Possible recovery paths:</p> 2961 <ul> 2962 <li>You may be able to refresh the page and continue.</li> 2963 <li>Is it a repeated error? Please email <a id="error_email_link" href="mailto:[email protected]?Subject=SignUp.com%20Client%20Error">Support</a> with the details.</li> 2964 </ul> 2965 </div> 2966 <div class="error-box clearfix" id="old_browser_error"> 2967 <p class="notice">Bummer! An error has occurred on this page. Unfortunately you are using an unsupported browser.
2968 SignUp.com is not able to support technology this old.</p> 2969 <p>Possible recovery paths:</p> 2970 <ul> 2971 <li>You should <a href="http://www.updateyourbrowser.net/en/">upgrade as soon as possible</a>. It's free!</li> 2972 </ul> 2973 </div> 2974 </div> 2975 2976
2977<script> 2978var googletag = googletag || {}; 2979 2980if ((typeof(vspot_dont_run_ad_queue) === 'undefined' || vspot_dont_run_ad_queue == false) && 2981 (typeof(window.vspot_tags) !== 'undefined' && window.vspot_tags.length > 0)) { 2982 2983 googletag.cmd = googletag.cmd || []; 2984 (function() { 2985 var gads = document.createElement('script'); 2986 gads.async = 'true'; 2987 gads.type = 'text/javascript'; 2988 var useSSL = 'https:' == document.location.protocol; 2989 gads.src = (useSSL ? 'https:' : 'http:') + 2990 '//securepubads.g.doubleclick.net/tag/js/gpt.js'; 2991 var node = document.getElementsByTagName('script')[0]; 2992 node.parentNode.insertBefore(gads, node); 2993 })(); 2994 2995 googletag.cmd.push(function() { 2996 for (var i = 0; i < window.vspot_tags.length; i++) { 2997 try { 2998 eval(window.vspot_tags[i]); 2999 } 3000 catch(err) {} 3001 } 3002 // handle commands added after this has run. ignore errors. 3003 window.vspot_tags.push = function() { 3004 try { 3005 eval(Array.from(arguments).join(';')); 3006 } 3007 catch(err) {} 3008 }; 3009 3010 3011 googletag.pubads().collapseEmptyDivs(); 3012 googletag.pubads().enableSingleRequest(); 3013 3014 googletag.pubads().setTargeting("Org", []); 3015 googletag.pubads().setTargeting("Act", []); 3016 googletag.pubads().setTargeting("Plan", ['']); 3017 googletag.enableServices(); 3018 3019 for (var i = 0; i < window.vspot_cmds.length; i++) { 3020 try { 3021 eval(window.vspot_cmds[i]); 3022 } catch(err) {} 3023 } 3024 // handle commands added after this has run 3025 window.vspot_cmds.push = function() { 3026 try { 3027 eval(Array.from(arguments).join(';')); 3028 } catch(err) {} 3029 }; 3030 3031 }); 3032} 3033//window._pnq = window._pnq || []; 3034//_pnq.push(['setId', 'pn-490587b170ae94d7']); 3035//(function() { 3036// var pnr = document.createElement('script'); 3037// pnr.type = 'text/javascript'; 3038// pnr.async = true; 3039// pnr.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'report-ads-to.pubnation.com/dist/pnr.js?t=pn-490587b170ae94d7'; 3040// var s = document.getElementsByTagName('script')[0]; 3041// s.parentNode.insertBefore(pnr, s); 3042//})(); 3043 3044</script>
3044 3045 3046<button id="pmLink" class="about-section-footer" style="visibility:hidden">Privacy Manager</button> 3047 3048 </section> 3049 </div> 3050 </body> 3051</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.