PageSourceSearch

https://signup.com/Pricing

html signup.com collected 2026-10-01 09:19:41 UTC 578,960 bytes, 3,051 lines download raw bytes

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 &amp;#38; classroom activities, fundraisers, snack schedules, potlucks &amp;#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                                        &#38; 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 &#38; 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 &raquo;</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 &#38; 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 &#38; 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 &#38; 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 &#38; Logos</div>
2039                                </li>
2040                                <li class="common-features__feature">
2041                                    <div class="plan__feature__heading">Calendar Sync &#38; 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 &#38; 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 &#38; 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 &raquo;</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 &#38; 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 &raquo;</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/>&#38; 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/>&#38; 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 &#38; 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 &#38; 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 &#38; 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 &#38; 24hr Clock
2202                      </li>
2203                      <li class="common-features__feature">
2204                      Import &#38; 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 &#38; 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 &#38; 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 &#38; 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 &raquo;</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 &raquo;</button>
2606                    </div>
2607                </div>
2608        </div>
2609        <!--End Need Something Extra Section-->
2610
2611        <div class="br">&nbsp;</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 &#38; 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 &raquo;</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()">&times;</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()">&times;</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()">&times;</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()">&times;</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()">&times;</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">&laquo; <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">&laquo; <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>&nbsp;</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()">&times;</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>&nbsp;</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%"> &nbsp; </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>&nbsp;</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">&laquo; <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()">&times;</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'">&nbsp;</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()">&times;</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()">&times;</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%;">&nbsp;</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()">&times;</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()">&times;</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%">&nbsp;</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>&nbsp;</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()">&times;</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">&laquo; <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">&times;</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">&laquo; <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> &ndash; </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 ? '&hellip;' : '' }} </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 ? '&hellip;' : '' }} </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'}})">&times;</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>&nbsp;</th> <th data-i18n="_Name_" data-dont-watch></th> <th>&nbsp;</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"> &mdash; <span data-i18n="_Or_" data-dont-watch></span> &mdash; </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">&nbsp;</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">&times;</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()">&times;</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()">&times;</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}}&amp;text={{ $ctrl.genericSocialText | encode}}&amp;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 }}&amp;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 }}&amp;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>&nbsp;<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()">&times;</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()">&times;</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"> &amp; 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 &rsaquo;</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 &rsaquo;</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()">&times;</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"> &amp; 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 &rsaquo;</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 &rsaquo;</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 &nbsp; </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            &copy; 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 &#94;</a>
2739                &nbsp;|&nbsp;
2740            </span>
2741            <a href="/Terms">Terms of Service</a>
2742            &nbsp;|&nbsp;
2743            <a href="/Privacy">Privacy Policy</a><a href="/Privacy#CCPA"> (CCPA)</a>
2744            &nbsp;|&nbsp;
2745            <span class="hidden-xs hidden-sm">
2746                <a href="/Site-Map">Site Map</a>
2747                &nbsp;|&nbsp;
2748            </span>
2749            <a href="/Contact">Contact</a>
2750            &nbsp;|&nbsp;
2751            <span class="hidden-xs hidden-sm">
2752                <a href="/Help">Help</a>
2753                &nbsp;|&nbsp;
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 &#94;</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 &#38; 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 &#38; 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=&quot;has-children&quot; >
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 &#38; 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=&quot;has-children&quot; >
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.