1 2 3 4 5 6 <!DOCTYPE html> 7 <html class="" lang="en"> 8 <head> 9 10 11 12 <meta charset="utf-8" /> 13 <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> 14 <meta name="viewport" content="width=device-width, initial-scale=1"> 15 16 17 18 19 20 21 22 <title> 23 The Canadian Philosophical Association | L'Association canadienne de philosophie 24 | Login 25 26</title> 27 28 29 30 31 32 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> 33 34 35 36 <link href="https://d3lut3gzcpx87s.cloudfront.net/css/sass/1782334412.68_e093daf2c47cfe7a26686e01272610c2/acpa/premium1.css" rel="stylesheet" > 37 <link href="https://d3lut3gzcpx87s.cloudfront.net/css/sass/1782334412.68_e093daf2c47cfe7a26686e01272610c2/acpa/premium1b.css" rel="stylesheet" > 38 <link href="https://d3lut3gzcpx87s.cloudfront.net/css/sass/1782334412.68_e093daf2c47cfe7a26686e01272610c2/acpa/custom-premium1.css" rel="stylesheet" > 39 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" 40 integrity="sha512-Evv84Mr4kqVGRNSgIGL/F/aIDqQb7xQ2vcrdIwxfjThSH8CSR7PBEakCr51Ck+w+/U6swU2Im1vVX0SVk9ABhg==" 41 crossorigin="anonymous" referrerpolicy="no-referrer"/> 42 <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> 43 <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 44 <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 45 <!--[if lt IE 9]> 46
46<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
46 47
47<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
47 48 <![endif]--> 49 <!--[if IE]><link rel="stylesheet" href="/res/sass/all-ie-only.css" /><![endif]--> 50 51 <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open Sans:300,300italic,700,700italic|Roboto Slab:600,600italic,700,700italic"> 52 53 <link rel="stylesheet" href="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jQuery-File-Upload/css/jquery.fileupload-ui.css"> 54 55
55<script> 56 window.ss = window.ss || {}; 57 ss.config = ss.config || {}; 58 ss.config.CDN_URL = "https://d3lut3gzcpx87s.cloudfront.net"; 59 ss.config.THEME = "premium1" 60 ss.config.PARENT_THEME = "" 61 ss.config.THEME_CONFIG = {"email_domain_based_plans": true, "hide_blog_title": true, "has_banners": true, "home_slideshow_template": true, "has_company_banners": true, "has_font_awesome": true, "parent_theme": "version2", "cpage_editor_v2": true, "disallow_company_home_page": true, "has_article_teasers": true, "has_job_teasers": true, "root_element_selector": ".site", "default_user_directory_size": 9, "slide_search_v2": true, "has_event_teasers": true, "user_headlines": true, "cpage_extra_heading_class": "panel-heading", "widget_configs": true, "ckeditor_css_replacement": "premium1.css", "has_configurable_footer_columns": true} 62 ss.config.FEATURES = {"notification_customization": true, "disable_powered_by_silkstart": true, "auto_renew_off_by_default": true, "failed_login_attempt_lockout": true}; 63 ss.config.CONSTANTS = {"MARITAL_STATUS_WIDOWED": "widowed", "PRIVACY_PUBLIC": "public", "STATUS_UNSUBSCRIBED": "Unsubscribed", "MEMBERSHIPS": {"PROCESSED_BY_ADMIN_OVERRIDE": "admin_override"}, "FEATURED": "featured", "STATUS_INACTIVE": "Inactive", "POPULAR": "popular", "RECENT": "recent", "ALPHABETICAL": "alphabetical", "PRIVACY_PRIVATE": "private", "MARITAL_STATUS_DIVORCED": "divorced", "IMAGE_DIMENSIONS_SELECTOR_SUPPORTED_APPS": ["group_email_editor", "event", "fund", "chapter", "job", "article"], "CHOOSE_MULTIPLE_CHAPTERS": "multiple_chapters", "STATUS_CONTACT": "Contact", "INVOICE_ONLY": "invoice_only", "LISTING_MEMBER_OPTIONS": [["member_active", "Only show members with an active membership plan"], ["always_show", "Show members that are either active or inactive"]], "CHOOSE_HOME_CHAPTER": "home_chapter", "PERCENT_DISCOUNT": "percent", "MEMBERSHIP_ANY": "any", "DOLLAR_DISCOUNT": "dollar", "WORK_ADDRESS": "work_address", "HOME_ADDRESS": "home_address", "CPAGE_REVISION_LIMIT": 10, "DISPLAY_DATE": "display_date", "MARITAL_STATUS_MARRIED": "married", "DEFAULT_WELCOME_MESSAGE": "Hello {first_name},<br><br>\nPlease follow <a href=\"{invite_url}\">this link</a> to complete the signup process.<br><br>\nThe {network_name} Team", "DEFAULT_POST_LENGTH_IN_DAYS": 60, "MARITAL_STATUS_SINGLE": "single", "CHOOSE_NONE": "no_chapters", "GROUP_EMAIL_EDITOR": "group_email_editor", "DEFAULT_PASSWORD_MINIMUM_LENGTH": 6, "STATUS_SUBSCRIBED": "Subscribed", "STATUS_ACTIVE": "Active", "STATUS_NOT_SUBSCRIBED": "Not Subscribed", "PRIVACY_PUBLIC_TO_GROUPS": "public_to_groups", "MEMBERSHIP_OTHER": "other", "MEMBERSHIP_NON_MEMBER": "non_member", "LIFETIME": "Lifetime", "MEMBERSHIP_MEMBER": "member", "FONT_WEIGHT_REGULAR": "400", "FONT_STYLE_ITALIC": "italic", "CUSTOM_PLAN_FIELD_VISIBILITY_OPTIONS": ["signup", "renewal", "admin_signup", "admin_renewal"], "ONLINE_OR_INVOICE": "online_or_invoice", "SHARING_PLATFORMS": [{"url": "https://x.com/intent/tweet?text={title}:&url={item_url}", "icon": "x-twitter", "name": "X", "key": "x", "label": "Share on X"}, {"url": "https://www.facebook.com/sharer.php?u={item_url}&t={title}", "icon": "facebook-square", "name": "Facebook", "key": "facebook", "label": "Share on Facebook"}, {"url": "https://www.linkedin.com/shareArticle?mini=true&url={item_url}&title={title}", "icon": "linkedin", "name": "LinkedIn", "key": "linkedin", "label": "Share on LinkedIn"}, {"url": "https://reddit.com/submit?url={item_url}&title={title}", "icon": "reddit", "name": "Reddit", "key": "reddit", "label": "Submit to Reddit"}, {"url": "https://pinterest.com/pin/create/link/?url={item_url}&media={item_logo}", "icon": "pinterest", "name": "Pinterest", "key": "pinterest", "label": "Save on Pinterest"}], "GOOGLE_FONTS": ["Lato", "Lora", "Merriweather", "Montserrat", "Open Sans", "Playfair Display", "Raleway", "Roboto", "Roboto Slab"], "LISTING_COMPANY_OPTIONS": [["company_or_user_active", "Show companies with an active company membership plan or an active user"], ["company_active", "Only show companies with an active company membership plan"], ["always_show", "Show companies that are either active or inactive"]]}; 64 ss.config.TERMS = {"singular_individual": "people", "singular_employee": "Employee", "plural_event": "Events", "singular_group": "group", "plural_employee": "Employees", "plural_company": "Companies", "company_indefinite_article": "a", "singular_article": "article", "singular_blog": "Blog", "plural_blog": "CPA Blog de l'ACP", "plural_job": "Jobs", "plural_article": "Articles", "plural_group": "Groups", "plural_individual": "People", "singular_event": "event", "singular_job": "job", "singular_company": "company"} 65 ss.config.ASSETS = {"team_categories": ["CPA-Executive-Committee", "CPA-Board-of-Directors", "editors-of-dialogue", "CPA-Departmental-Representatives", "CPA-Congress-Program-Chair", "administrative-committee"]} 66 </script>
66 67 68
68<script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/require.min.js"></script>
68 69 70
70<script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jquery-1.11.3.min.js"></script>
70 71 72
72<script type="text/javascript"> 73 var js_marker = "1788383490.25"; 74 75 var FILE_UPLOAD = '/res/js/os/jQuery-File-Upload/js/'; 76 77 require.config({ 78 baseUrl: "/res/js/os", 79 paths: { 80 'jquery.ui.widget': FILE_UPLOAD + 'vendor/jquery.ui.widget', 81 82 tmpl: 'http://blueimp.github.com/JavaScript-Templates/tmpl.min.js', 83 84 fileupload : FILE_UPLOAD + 'jquery.fileupload', 85 // File processing 86 fileuploadfp : FILE_UPLOAD + 'jquery.fileupload-fp', 87 fileuploadui : FILE_UPLOAD + 'jquery.fileupload-ui' 88 }, 89 shim:{ 90 underscore: { 91 exports: '_' 92 }, 93 jquery: { 94 exports: '$', 95 init: function(){ 96 return $; 97 } 98 } 99 } 100 }); 101 102 // 103 function ss_require(list_of_files, func){ 104 var files_with_marker = []; 105 106 for(f_index in list_of_files){ 107 files_with_marker.push(list_of_files[f_index]+'?marker='+js_marker); 108 } 109 110 require(files_with_marker,function(templates){ 111 func(); 112 }); 113 } 114 115 116 </script>
116 117 118
118<script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jquery-migrate-1.1.1.min.js"></script>
118 119 120 121
121<script type="text/javascript" src='https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jquery-ui-1.10.2/ui/jquery.ui.dialog-width.js?time_param=1599669664.35'></script>
121 122
122<script type="text/javascript" src='https://d3lut3gzcpx87s.cloudfront.net/js/bunch/eJylWGmWozgMvtCEdNXrNxfoK@R@njAKcZUX2jZUpU8@MlsoY2yo!REw8acFSdbC1aC9vtmrpuufDs2j6EHwGhwWkqvizf5z3UdAXXPHtQJxkejuurYRok7VaCzTBvc3rDNcNRHiSmtHm9BG9qSWqFxMTavVa1z1mzYS3K@OGFTscXkpfhY@Ihxa0TVcLVStAIZ3LUjfKHjZtV3bauPishkYdMVL8eN137TQOc20bAW60FyBThVcqurPPifBexxXgUWBvVdafeHev17tUwCX0GCJ5Fpt9lGTGGsPQGoOQjcbYPCH1DUK6@8fVuldW3QWQ@U2GO5Q5jCN0V2bA3mfgHrkYNj7iMyAFLoPbd4DGNPKGS0EBZHHPh8D3AevG3QDZlzm9m0RNf8urpRoLUXAYbzBnuNHHr4X23l06eCA!l8oItGRI4n7OEclNAOfA0!SNajQcHaSKhZfWUmR!M6agrJ7o01oizl3XBVQkLSU9vYAt04xb5XwjC8AEiW1uvoyksPQD3c1mTDjbT5haWwFFv@9uZNdfVaa0vVdWwzduiPXH4Dsq46n8BAUHGQgvpClebXw8PVxvmdsc!Moajve0ny7Vmio5zJBVtL!qCVJJubsfSoqSfCUHud7zqeddVqWs4TV0@cJ02atb5TxgIr9apmRFadJivGVi9QRzteD9UNG1D5dUpzshOMOKoHPBmES9Nw6QzxKy9Ou086Xh7S!!2Rp80iUFXlhvJ3BlsNbZKx4M6DYnduVHZa@Ugwo6XBFnTT11X9jxWQRMOT@8ZpRfo1M6vymK@@LpYflzZZVhkKbBtT0Ol8ehs4yrdM!rUWBQ2FJM5gmFE@!XG5JKO@7VPt78Mzcrj7@CZvrvQbYU0zePdjTjTRl8mT4Dma45Kuab1vmexyd0ATqnjyK9XGKMWcex@s0FNp9ajIvlhncVNmVlX2D0HKqHCZgELhBgvXVRbVdbCL0NjEURKYYE@0OL0mFsls4!oeBFwgRENCqpeaGRiwqxDrmxligcDLKwDQPpYb3yGDF7sjeDQ4T6D588FdZU!Hm1NilhrqWPFb2etOfb2aYmMQNaNu1Rwe0kolOhh1qJpy!T7PUw!@Q2q46T99q60q1mZASFAr642CLYNi9rPTncRo0ZhMGCXgkGhNoCSccI4PvQrl3dY6rM8oMzhsqznF@oZGcTut2eklrtpmyUnDeqFN4zag7OI5nIFDVcMLHY2Kc6uyJF3@W1xNENB5uCshS0CrfHzPTycqu1rkJQ9DMP0wmJVVBFJs21iNGwLD@DUbMKz9Ntf!f2@g6B@kMUdwC5eixqQlfzu8@t09zGXU5xuTZlqSnRA!bojwPZHdoKamWVFbmHi83Jq4a3BJqX6aTcIfWDZfjXJ1vOw7hp!nRR3i2315L4KrnuUlnjTe2j1hz9XVb4Kel44jmsu2B4HbjnxhSMt0!SqepvvG20mDqOGcrwTjfu8S!8G8xqc@2q95p0LUcC1jYkhmUvJMvIeY@wdAx0g==/gl4127'></script>
122 123 124
124<script src="https://js.stripe.com/v3/"></script>
124 125 126
126<script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jquery-ui-1.10.2/ui/minified/jquery-ui.min.js"></script>
126 127 128
128<script type="text/javascript" src="//fast.fonts.net/jsapi/dc52497f-ddd2-4b32-9e8f-03d8b2af97f1.js"></script>
128 129 130 131 132 133 134 135
135<script> 136 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 137 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 138 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 139 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 140 141 // SS-3783 had to do it like this because 142 // trying to conditionally return an object or a string means 143 // this will return auto, instead of 'auto' 144 ga('create', 'UA-96442249-1', 'auto'); 145 ga('set', 'anonymizeIp', true); 146 ga('send', 'pageview'); 147 </script>
147 148 149 150 151 152 153 <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 153-154
153 154 <script async src="https://www.googletagmanager.com/gtag/js?id=
154G-YEKMBB2S9K
vendor: 16 bytes, lines 154-155
154"></script> 155
155<script> 156
vendor: 152 bytes, lines 156-160
156window.dataLayer = window.dataLayer || []; 157 function gtag(){dataLayer.push(arguments);} 158 gtag('js', new Date()); 159 160 gtag('config', '
160G-YEKMBB2S9K
vendor: 33 bytes, lines 160-161
160', { 'anonymize_ip': true}); 161
161</script>
161 162 163 164 165 166 167 <link rel="canonical" href="https://www.acpcpa.ca:443/auth/login"/> 168 169 170 171 172
172<script> 173 SS.app = { 174 "current_company": { 175 "company_name": null, 176 "company_id": null 177 }, 178 "current_network": { 179 "spouse_fields_enabled": false, 180 "currency": "C", 181 "company_phone_required": false, 182 "enable_company_locations": false, 183 "id": "589a5bc6893aaa3761693629", 184 "funds_enabled": true, 185 "base_url": "https://www.acpcpa.ca:443/", 186 "company_contact_info_required": false, 187 "detailed_attendee_company_info_checked": "", 188 "permaid": "acpa", 189 "has_plans": true, 190 "duplicate_company_name_allowed": false, 191 "has_custom_join_url": false, 192 "company_profile_social_media": false, 193 "enable_share_popup": true, 194 "member_number_enabled": true, 195 "password_minimum_length": "6", 196 "company_website_required": false, 197 "name": "The Canadian Philosophical Association | L'Association canadienne de philosophie", 198 "contact_form_email": "", 199 "add_employee_help_text": "", 200 "currency_symbol": "$", 201 "company_address_required": false 202 }, 203 "current_user": { 204 "phone_number": null, 205 "city": null, 206 "first_name": null, 207 "last_name": null, 208 "province": null, 209 "name": null, 210 "admin": false, 211 "created": null, 212 "url": null, 213 "email": null, 214 "status": null, 215 "network_admin": false, 216 "postal_code": null, 217 "advanced": false, 218 "comment_pic": "<img src='https://d3lut3gzcpx87s.cloudfront.net/res/img/v2/placeholder.png' style='padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; ' class=\"img-responsive\" alt=\"\" >", 219 "additional_info": null, 220 "id": null, 221 "street_address": null, 222 "permissions": {} 223 } 224}; 225 SS.page = { 226 config: { 227} 228 }; 229 </script>
229 230 231 232 233
233<script> 234 $( function(){ 235 var lastError = null; 236 var errors = []; 237 var errorBatch = null; 238 239 window.onerror = function(message, url, lineNumber) { 240 241 // If a user is using a Titanium Appcelerator app, it will cause errors, to a huge volume 242 // and not because our system, but because it will constantly be looking for something the page 243 // doesn't have 244 if (message.indexOf("TiApp is not defined") > 0) { 245 return; 246 } 247 248 var error = { 249 message: message, 250 url: url, 251 lineNumber: lineNumber 252 }; 253 254 // If the error is different than the last one we saw, log it, 255 // otherwise, don't worry about it. 256 if (!lastError || 257 (lastError.message != error.message || 258 lastError.url != error.url || 259 lastError.lineNumber != error.lineNumber) 260 ) { 261 errors.push(error); 262 lastError = error; 263 264 // Batch the errors, so that we don't DOS the servers with error messages 265 if (!errorBatch) { 266 // Batch any error messages within 1 second, so that we can send them as a group 267 errorBatch = window.setTimeout(function () { 268 $.ajax({ 269 url: '/error/log_errors', 270 type: "POST", 271 data: JSON.stringify(errors), 272 contentType: "application/json" 273 }); 274 errors = []; 275 lastError = null; 276 },60000); 277 } 278 } 279 // Allow the default error handler to go as well. 280 return false; 281 }; 282 }); 283 </script>
283 284 285 286
286<script> 287$(document).ready(function(){ 288 $('#header_topbar #header-account-buttons #header_topbar_account ul.navbar-nav').append('<li><a class="signup_button" href="/campaigns">Donate</a></li>'); 289}); 290</script>
290 291 292 293<div id="fb-root"></div>
294<script>(function(d, s, id) { 295 var js, fjs = d.getElementsByTagName(s)[0]; 296 if (d.getElementById(id)) return; 297 js = d.createElement(s); js.id = id; 298 js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8&appId=1766774860255284"; 299 fjs.parentNode.insertBefore(js, fjs); 300}(document, 'script', 'facebook-jssdk'));</script>
300 301
302<script src="https://global.localizecdn.com/localize.js"></script>
302 303
304<script>!function(a){if(!a.Localize){a.Localize={};for(var e=["translate","untranslate","phrase","initialize","translatePage","setLanguage","getLanguage","detectLanguage","getAvailableLanguages","untranslatePage","bootstrap","prefetch","on","off"],t=0;t<e.length;t++)a.Localize[e[t]]=function(){}}}(window);</script>
304 305
306<script> 307 Localize.initialize({ 308 key: 'CfD8EMYLSZsv6', 309 rememberLanguage: true 310 }); 311</script>
311 312
313<script> 314$(document).ready(function(){ 315$('#header_topbar').addClass('hidden-md'); 316$('#slide-search-field').addClass('hidden-md'); 317$('.navbar.navbar-default .container .navbar-collapse').addClass('hidden-md'); 318$('.navbar.navbar-default .container .visible-sm').addClass('visible-md'); 319$('.mobile-menu-toggle-switch').addClass('visible-md'); 320}); 321</script>
321 322
323<script type="text/javascript">$("document").ready(function(){if($("#mti_wfs_colophon").length>0){$("#mti_wfs_colophon").hide()}});</script>
323 324 325 </head> 326 <body class="white_panel_background 327 328 329 330 331 login-page 332 333 " 334 > 335 336 <a href="#main" class="sr-only sr-only-focusable">Skip to Main Content</a> 337 <div class="cookie-consent"> 338 <div class="container"> 339 <div class="row"> 340 <div class="col-sm-9 col-md-10"> 341 This site uses cookies to provide you with a great user experience. By continuing to use our 342 site, we shall assume that you accept our 343 use of cookies. 344 </div> 345 <div class="col-sm-3 col-md-2 center"> 346 <button class="ss_accept_cookies">I Understand</button> 347 </div> 348 </div> 349 </div> 350 </div> 351 352 353 354 355 356 357 358 359 360 <nav id="main-menu-mobile" class="hidden"> 361 <ul> 362 363 364 365 <li class="clearfix"> 366 <a class="signup_button mobile-menu-prime-link" href="https://www.acpcpa.ca:443/join" >Join Now</a> 367 <a class="mobile-menu-prime-link" href="/auth/login">Login</a> 368 </li> 369 370 <li> 371 372 <a href="#" class="" 373 > 374 375 376 Scholarship 377 378 </a> 379 380 381 <ul> 382 <li> 383 384 <a href="/cpages/calls" class="" 385 > 386 387 Calls 388 </a> 389 </li> 390 <li> 391 392 <a href="/cpages/prizes" class="" 393 > 394 395 CPA Prizes 396 </a> 397 </li> 398 <li> 399 400 <a href="/cpages/fellowships-and-scholarships" class="" 401 > 402 403 Fellowships and Scholarships 404 </a> 405 </li> 406 </ul> 407 408 409 </li> 410 <li> 411 412 <a href="#" class="" 413 > 414 415 416 Publications 417 418 </a> 419 420 421 <ul> 422 <li> 423 424 <a href="/articles" class="" 425 > 426 427 News 428 </a> 429 </li> 430 <li> 431 432 <a href="#" class="" 433 > 434 435 Dialogue 436 </a> 437 438 439 <ul> 440 <li> 441 442 <a href="/cpages/dialogue-home-1" class="" 443 > 444 445 Home 446 </a> 447 </li> 448 <li> 449 450 <a href="/cpages/dialogue-submissions" class="" 451 > 452 453 Submissions 454 </a> 455 </li> 456 <li> 457 458 <a href="/cpages/dialogue-editorial-board" class="" 459 > 460 461 Editorial Board 462 </a> 463 </li> 464 <li> 465 466 <a href="/cpages/dialogue-contact" class="" 467 > 468 469 Contact Dialogue 470 </a> 471 </li> 472 </ul> 473 474 475 </li> 476 <li> 477 478 <a href="/blogs" class="" 479 > 480 481 Blog 482 </a> 483 </li> 484 <li> 485 486 <a href="/cpages/compterendu2020proceedings" class="" 487 > 488 489 The 2020 CPA Congress Papers / Les textes du Congrès de l'ACP 2020 490 </a> 491 </li> 492 <li> 493 494 <a href="/cpages/presidential-address" class="" 495 > 496 497 Presidential Addresses 498 </a> 499 </li> 500 </ul> 501 502 503 </li> 504 <li> 505 506 <a href="/cpages/congress2027" class="" 507 > 508 509 510 Congress 511 512 </a> 513 514 515 <ul> 516 <li> 517 518 <a href="/cpages/congress2027" class="" 519 > 520 521 Current 522 </a> 523 </li> 524 <li> 525 526 <a href="/cpages/future-congresses-1" class="" 527 > 528 529 Future Congresses 530 </a> 531 </li> 532 <li> 533 534 <a href="/cpages/archive" class="" 535 > 536 537 Archive 538 </a> 539 </li> 540 </ul> 541 542 543 </li> 544 <li> 545 546 <a href="#" class="" 547 > 548 549 550 Profession 551 552 </a> 553 554 555 <ul> 556 <li> 557 558 <a href="/jobs" class="" 559 > 560 561 Job Postings 562 </a> 563 </li> 564 <li> 565 566 <a href="https://www.acpcpa.ca/cpages/resources" class="" 567 > 568 569 Resources 570 </a> 571 </li> 572 <li> 573 574 <a href="/cpages/philosophy-in-the-schools" class="" 575 > 576 577 Philosophy in the Schools 578 </a> 579 </li> 580 <li> 581 582 <a href="/cpages/policies-statements" class="" 583 > 584 585 Statements and Policies 586 </a> 587 </li> 588 <li> 589 590 <a href="/cpages/hiring-toolkit" class="" 591 target='_blank' > 592 593 Hiring Toolkit 594 </a> 595 </li> 596 <li> 597 598 <a href="/cpages/philosophy-faq" class="" 599 > 600 601 Philosophy FAQ 602 </a> 603 </li> 604 </ul> 605 606 607 </li> 608 <li> 609 610 <a href="/cpages/equity" class="" 611 > 612 613 614 Equity 615 616 </a> 617 618 619 <ul> 620 <li> 621 622 <a href="/cpages/equity" class="" 623 > 624 625 About the Equity Committee 626 </a> 627 </li> 628 <li> 629 630 <a href="/cpages/reports" class="" 631 > 632 633 Reports 634 </a> 635 </li> 636 </ul> 637 638 639 </li> 640 <li> 641 642 <a href="/join" class="" 643 > 644 645 646 Membership 647 648 </a> 649 650 651 <ul> 652 <li> 653 654 <a href="/groups" class="" 655 > 656 657 Member Forum/ Forum des membres 658 </a> 659 </li> 660 <li> 661 662 <a href="/cpages/benefits" class="" 663 > 664 665 Benefits 666 </a> 667 </li> 668 <li> 669 670 <a href="/join" class="" 671 > 672 673 Become a Member 674 </a> 675 676 677 <ul> 678 <li> 679 680 <a href="/down/eJwNxFEKgCAMANATqcOUtm4zUynKlDYIOn29j7epDlmck@08RPlWK5Plxm!@!BG79uYYQ6lxJgPpL4AnQxGSyaEC!bQWRLQj1w@K!Rex/CPA%202025%20Join%20Form%20-%20FR.pdf" class="" 681 > 682 683 Formulaire d'adhèsion 684 </a> 685 </li> 686 <li> 687 688 <a href="/down/eJwNwwsKgCAMANATbY4MP91maKMoU9og6PT14G1mQxfndD8PNb4N1SM3fvvFj2LpzZHPk1RhKJQI5jVk4JQi5BL8n9YqEUeVD9JIGA8=/CPA%202025%20Join%20Form%20-%20EN.pdf" class="" 689 > 690 691 Membership Form 692 </a> 693 </li> 694 </ul> 695 696 697 </li> 698 <li> 699 700 <a href="/directory" class="" 701 > 702 703 Member Directory 704 </a> 705 </li> 706 <li> 707 708 <a href="/campaigns" class="" 709 > 710 711 Donate 712 </a> 713 </li> 714 </ul> 715 716 717 </li> 718 <li> 719 720 <a href="#" class="" 721 > 722 723 724 About 725 726 </a> 727 728 729 <ul> 730 <li> 731 732 <a href="/team" class="" 733 > 734 735 Governance 736 </a> 737 738 739 <ul> 740 <li> 741 742 <a href="/team/CPA-Executive-Committee" class="" 743 > 744 745 Executive Committee 746 </a> 747 </li> 748 <li> 749 750 <a href="/team/CPA-Board-of-Directors" class="" 751 > 752 753 Board of Directors 754 </a> 755 </li> 756 <li> 757 758 <a href="/team/administrative-committee" class="" 759 > 760 761 Administrative Committee 762 </a> 763 </li> 764 </ul> 765 766 767 </li> 768 <li> 769 770 <a href="/cpages/cpa-bylaws" class="" 771 > 772 773 Bylaws 774 </a> 775 </li> 776 <li> 777 778 <a href="/cpages/cpa26-annual-meeting-acp26-reunion-annuelle" class="" 779 > 780 781 Annual Meeting 782 </a> 783 </li> 784 <li> 785 786 <a href="/cpages/cpa-minutes" class="" 787 > 788 789 Minutes 790 </a> 791 </li> 792 <li> 793 794 <a href="/cpages/presidents" class="" 795 > 796 797 Past Presidents 798 </a> 799 </li> 800 </ul> 801 802 803 </li> 804 805 806 <li> 807 <form id="mobile_search_form" action="/search"> 808 <div class="input-group"> 809 <input placeholder="Search" aria-label="Search" type="text" class="form-control input-lg search_box" name="searchable" value="">
810 <span class="input-group-btn"> 811 <button class="btn btn-default" type="submit"> 812 <span class="fas fa-search fa-1-5x"></span> 813 <span class="sr-only">Submit</span> 814 </button> 815 </span> 816 </div> 817 </form> 818 </li> 819 </ul> 820 </nav> 821
821<script type="text/javascript"> 822 $(document).ready(function() { 823 $("#main-menu-mobile").removeClass('hidden'); 824 $("#main-menu-mobile").mmenu({ 825 position:'right', 826 direction:'left' 827 }); 828 }); 829 </script>
829 830 831 832 833 834 <div id='fb-root'></div> 835 836 837 <div class="site" id="page"> 838 <header class="site-header 839 "> 840 841 842 <a href="#main-menu-mobile" class="visible-sm visible-xs mobile-menu-toggle-switch"><i class="fas fa-bars fa-2x"></i></a> 843 844 <div id="header_topbar" class="hidden-sm hidden-xs"> 845 846 <div class="container"> 847 <div class="row"> 848 <div class="col-xs-12"> 849 <div class="pull-left"> 850 <div class="navbar-header"> 851 852 853 <a href="https://www.acpcpa.ca/" class="navbar-brand"> 854 855 856 857 <img src='https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS9iMjU1YzA2Yi0xZTg2LTRjOTMtOWI5ZC1iMTRkODFkNGQwNDIucG5n/1396x250fPNG' 858 style='padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; ' 859 alt='The Canadian Philosophical Association | L'Association canadienne de philosophie' 860 resize_with_padding='True' 861 class="img-responsive" 862 alt="" 863 > 864 865 866 </a> 867 868 </div> 869 </div> 870 <div id="header-account-buttons" class="pull-right"> 871 <div id="header_topbar_account" class="pull-left"> 872 <div class="sign_in_block media_signin"> 873 <ul class="nav navbar-nav pull-right sign_in_ul sign_in_section_js"> 874 875 876 877 878 <li class="sign_in_button" id="login_button"> 879 <a href="#" data-toggle="modal" data-target="#sign_in_modal">Login</a> 880 </li> 881 882 883 884 <li> 885 <a class="signup_button" href="https://www.acpcpa.ca:443/join" >Join Now</a> 886 </li> 887 888 889 </ul> 890 </div> 891 </div> 892 </div> 893 </div> 894 </div> 895 </div> 896 897 </div> 898 <div class="navbar navbar-default" role="navigation"> 899 <div class="container"> 900 <div class="visible-xs visible-sm"> 901 902 903 <a href="https://www.acpcpa.ca/" class="navbar-brand"> 904 905 906 907 <img src='https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS9iMjU1YzA2Yi0xZTg2LTRjOTMtOWI5ZC1iMTRkODFkNGQwNDIucG5n/1396x250fPNG' 908 style='padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; ' 909 alt='The Canadian Philosophical Association | L'Association canadienne de philosophie' 910 resize_with_padding='True' 911 class="img-responsive" 912 alt="" 913 > 914 915 916 </a> 917 918 </div> 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 <div class="navbar-collapse collapse hidden-sm hidden-xs main-nav"> 937 <ul class="nav navbar-nav" data-sm-options="{subMenusSubOffsetX: -5, subMenusMaxWidth: 'None'}"> 938 939 940 941 <li class=" 942 943 dropdown "> 944 <a href="#" 945 class=" 946 947 " 948 data-hover=dropdown data-toggle=dropdown data-target=# 949 > 950 951 952 Scholarship 953 954 </a> 955 956 957 <ul class="dropdown-menu"> 958 959 960 961 962 <li class=" 963 964 "> 965 <a href="/cpages/calls" 966 class=" 967 968 " 969 970 > 971 972 Calls 973 </a> 974 </li> 975 976 977 978 979 <li class=" 980 981 "> 982 <a href="/cpages/prizes" 983 class=" 984 985 " 986 987 > 988 989 CPA Prizes 990 </a> 991 </li> 992 993 994 995 996 <li class=" 997 998 "> 999 <a href="/cpages/fellowships-and-scholarships" 1000 class=" 1001 1002 " 1003 1004 > 1005 1006 Fellowships and Scholarships 1007 </a> 1008 </li> 1009 </ul> 1010 1011 1012 </li> 1013 1014 1015 1016 <li class=" 1017 1018 dropdown "> 1019 <a href="#" 1020 class=" 1021 1022 " 1023 data-hover=dropdown data-toggle=dropdown data-target=# 1024 > 1025 1026 1027 Publications 1028 1029 </a> 1030 1031 1032 <ul class="dropdown-menu"> 1033 1034 1035 1036 1037 <li class=" 1038 1039 "> 1040 <a href="/articles" 1041 class=" 1042 1043 " 1044 1045 > 1046 1047 News 1048 </a> 1049 </li> 1050 1051 1052 1053 1054 <li class=" 1055 1056 dropdown-submenu"> 1057 <a href="#" 1058 class=" 1059 1060 " 1061 1062 > 1063 1064 Dialogue 1065 </a> 1066 1067 1068 <ul class="dropdown-menu"> 1069 1070 1071 1072 1073 <li class=" 1074 1075 "> 1076 <a href="/cpages/dialogue-home-1" 1077 class=" 1078 1079 " 1080 1081 > 1082 1083 Home 1084 </a> 1085 </li> 1086 1087 1088 1089 1090 <li class=" 1091 1092 "> 1093 <a href="/cpages/dialogue-submissions" 1094 class=" 1095 1096 " 1097 1098 > 1099 1100 Submissions 1101 </a> 1102 </li> 1103 1104 1105 1106 1107 <li class=" 1108 1109 "> 1110 <a href="/cpages/dialogue-editorial-board" 1111 class=" 1112 1113 " 1114 1115 > 1116 1117 Editorial Board 1118 </a> 1119 </li> 1120 1121 1122 1123 1124 <li class=" 1125 1126 "> 1127 <a href="/cpages/dialogue-contact" 1128 class=" 1129 1130 " 1131 1132 > 1133 1134 Contact Dialogue 1135 </a> 1136 </li> 1137 </ul> 1138 1139 1140 </li> 1141 1142 1143 1144 1145 <li class=" 1146 1147 "> 1148 <a href="/blogs" 1149 class=" 1150 1151 " 1152 1153 > 1154 1155 Blog 1156 </a> 1157 </li> 1158 1159 1160 1161 1162 <li class=" 1163 1164 "> 1165 <a href="/cpages/compterendu2020proceedings" 1166 class=" 1167 1168 " 1169 1170 > 1171
1172 The 2020 CPA Congress Papers / Les textes du Congrès de l'ACP 2020 1173 </a> 1174 </li> 1175 1176 1177 1178 1179 <li class=" 1180 1181 "> 1182 <a href="/cpages/presidential-address" 1183 class=" 1184 1185 " 1186 1187 > 1188 1189 Presidential Addresses 1190 </a> 1191 </li> 1192 </ul> 1193 1194 1195 </li> 1196 1197 1198 1199 <li class=" 1200 1201 dropdown "> 1202 <a href="/cpages/congress2027" 1203 class=" 1204 1205 " 1206 data-hover=dropdown data-toggle=dropdown data-target=# 1207 > 1208 1209 1210 Congress 1211 1212 </a> 1213 1214 1215 <ul class="dropdown-menu"> 1216 1217 1218 1219 1220 <li class=" 1221 1222 "> 1223 <a href="/cpages/congress2027" 1224 class=" 1225 1226 " 1227 1228 > 1229 1230 Current 1231 </a> 1232 </li> 1233 1234 1235 1236 1237 <li class=" 1238 1239 "> 1240 <a href="/cpages/future-congresses-1" 1241 class=" 1242 1243 " 1244 1245 > 1246 1247 Future Congresses 1248 </a> 1249 </li> 1250 1251 1252 1253 1254 <li class=" 1255 1256 "> 1257 <a href="/cpages/archive" 1258 class=" 1259 1260 " 1261 1262 > 1263 1264 Archive 1265 </a> 1266 </li> 1267 </ul> 1268 1269 1270 </li> 1271 1272 1273 1274 <li class=" 1275 1276 dropdown "> 1277 <a href="#" 1278 class=" 1279 1280 " 1281 data-hover=dropdown data-toggle=dropdown data-target=# 1282 > 1283 1284 1285 Profession 1286 1287 </a> 1288 1289 1290 <ul class="dropdown-menu"> 1291 1292 1293 1294 1295 <li class=" 1296 1297 "> 1298 <a href="/jobs" 1299 class=" 1300 1301 " 1302 1303 > 1304 1305 Job Postings 1306 </a> 1307 </li> 1308 1309 1310 1311 1312 <li class=" 1313 1314 "> 1315 <a href="https://www.acpcpa.ca/cpages/resources" 1316 class=" 1317 1318 " 1319 1320 > 1321 1322 Resources 1323 </a> 1324 </li> 1325 1326 1327 1328 1329 <li class=" 1330 1331 "> 1332 <a href="/cpages/philosophy-in-the-schools" 1333 class=" 1334 1335 " 1336 1337 > 1338 1339 Philosophy in the Schools 1340 </a> 1341 </li> 1342 1343 1344 1345 1346 <li class=" 1347 1348 "> 1349 <a href="/cpages/policies-statements" 1350 class=" 1351 1352 " 1353 1354 > 1355 1356 Statements and Policies 1357 </a> 1358 </li> 1359 1360 1361 1362 1363 <li class=" 1364 1365 "> 1366 <a href="/cpages/hiring-toolkit" 1367 class=" 1368 1369 " 1370 1371 target=_blank > 1372 1373 Hiring Toolkit 1374 </a> 1375 </li> 1376 1377 1378 1379 1380 <li class=" 1381 1382 "> 1383 <a href="/cpages/philosophy-faq" 1384 class=" 1385 1386 " 1387 1388 > 1389 1390 Philosophy FAQ 1391 </a> 1392 </li> 1393 </ul> 1394 1395 1396 </li> 1397 1398 1399 1400 <li class=" 1401 1402 dropdown "> 1403 <a href="/cpages/equity" 1404 class=" 1405 1406 " 1407 data-hover=dropdown data-toggle=dropdown data-target=# 1408 > 1409 1410 1411 Equity 1412 1413 </a> 1414 1415 1416 <ul class="dropdown-menu"> 1417 1418 1419 1420 1421 <li class=" 1422 1423 "> 1424 <a href="/cpages/equity" 1425 class=" 1426 1427 " 1428 1429 > 1430 1431 About the Equity Committee 1432 </a> 1433 </li> 1434 1435 1436 1437 1438 <li class=" 1439 1440 "> 1441 <a href="/cpages/reports" 1442 class=" 1443 1444 " 1445 1446 > 1447 1448 Reports 1449 </a> 1450 </li> 1451 </ul> 1452 1453 1454 </li> 1455 1456 1457 1458 <li class=" 1459 1460 dropdown "> 1461 <a href="/join" 1462 class=" 1463 1464 " 1465 data-hover=dropdown data-toggle=dropdown data-target=# 1466 > 1467 1468 1469 Membership 1470 1471 </a> 1472 1473 1474 <ul class="dropdown-menu"> 1475 1476 1477 1478 1479 <li class=" 1480 1481 "> 1482 <a href="/groups" 1483 class=" 1484 1485 " 1486 1487 > 1488 1489 Member Forum/ Forum des membres 1490 </a> 1491 </li> 1492 1493 1494 1495 1496 <li class=" 1497 1498 "> 1499 <a href="/cpages/benefits" 1500 class=" 1501 1502 " 1503 1504 > 1505 1506 Benefits 1507 </a> 1508 </li> 1509 1510 1511 1512 1513 <li class=" 1514 1515 dropdown-submenu"> 1516 <a href="/join" 1517 class=" 1518 1519 " 1520 1521 > 1522 1523 Become a Member 1524 </a> 1525 1526 1527 <ul class="dropdown-menu"> 1528 1529 1530 1531 1532 <li class=" 1533 1534 "> 1535 <a href="/down/eJwNxFEKgCAMANATqcOUtm4zUynKlDYIOn29j7epDlmck@08RPlWK5Plxm!@!BG79uYYQ6lxJgPpL4AnQxGSyaEC!bQWRLQj1w@K!Rex/CPA%202025%20Join%20Form%20-%20FR.pdf" 1536 class=" 1537 1538 " 1539 1540 > 1541 1542 Formulaire d'adhèsion 1543 </a> 1544 </li> 1545 1546 1547 1548 1549 <li class=" 1550 1551 "> 1552 <a href="/down/eJwNwwsKgCAMANATbY4MP91maKMoU9og6PT14G1mQxfndD8PNb4N1SM3fvvFj2LpzZHPk1RhKJQI5jVk4JQi5BL8n9YqEUeVD9JIGA8=/CPA%202025%20Join%20Form%20-%20EN.pdf" 1553 class=" 1554 1555 " 1556 1557 > 1558 1559 Membership Form 1560 </a> 1561 </li> 1562 </ul> 1563 1564 1565 </li> 1566 1567 1568 1569 1570 <li class=" 1571 1572 "> 1573 <a href="/directory" 1574 class=" 1575 1576 " 1577 1578 > 1579 1580 Member Directory 1581 </a> 1582 </li> 1583 1584 1585 1586 1587 <li class=" 1588 1589 "> 1590 <a href="/campaigns" 1591 class=" 1592 1593 " 1594 1595 > 1596 1597 Donate 1598 </a> 1599 </li> 1600 </ul> 1601 1602 1603 </li> 1604 1605 1606 1607 <li class=" 1608 1609 dropdown "> 1610 <a href="#" 1611 class=" 1612 1613 " 1614 data-hover=dropdown data-toggle=dropdown data-target=# 1615 > 1616 1617 1618 About 1619 1620 </a> 1621 1622 1623 <ul class="dropdown-menu"> 1624 1625 1626 1627 1628 <li class=" 1629 1630 dropdown-submenu"> 1631 <a href="/team" 1632 class=" 1633 1634 " 1635 1636 > 1637 1638 Governance 1639 </a> 1640 1641 1642 <ul class="dropdown-menu"> 1643 1644 1645 1646 1647 <li class=" 1648 1649 "> 1650 <a href="/team/CPA-Executive-Committee" 1651 class=" 1652 1653 " 1654 1655 > 1656 1657 Executive Committee 1658 </a> 1659 </li> 1660 1661 1662 1663 1664 <li class=" 1665 1666 "> 1667 <a href="/team/CPA-Board-of-Directors" 1668 class=" 1669 1670 " 1671 1672 > 1673 1674 Board of Directors 1675 </a> 1676 </li> 1677 1678 1679 1680 1681 <li class=" 1682 1683 "> 1684 <a href="/team/administrative-committee" 1685 class=" 1686 1687 " 1688 1689 > 1690 1691 Administrative Committee 1692 </a> 1693 </li> 1694 </ul> 1695 1696 1697 </li> 1698 1699 1700 1701 1702 <li class=" 1703 1704 "> 1705 <a href="/cpages/cpa-bylaws" 1706 class=" 1707 1708 " 1709 1710 > 1711 1712 Bylaws 1713 </a> 1714 </li> 1715 1716 1717 1718 1719 <li class=" 1720 1721 "> 1722 <a href="/cpages/cpa26-annual-meeting-acp26-reunion-annuelle" 1723 class=" 1724 1725 " 1726 1727 > 1728 1729 Annual Meeting 1730 </a> 1731 </li> 1732 1733 1734 1735 1736 <li class=" 1737 1738 "> 1739 <a href="/cpages/cpa-minutes" 1740 class=" 1741 1742 " 1743 1744 > 1745 1746 Minutes 1747 </a> 1748 </li> 1749 1750 1751 1752 1753 <li class=" 1754 1755 "> 1756 <a href="/cpages/presidents" 1757 class=" 1758 1759 " 1760 1761 > 1762 1763 Past Presidents 1764 </a> 1765 </li> 1766 </ul> 1767 1768 1769 </li> 1770 </ul> 1771 </div><!--/.nav-collapse --> 1772
1772<script> 1773 1774 $( document ).ready(function() { 1775 $('.nav.navbar-nav li.active').parents('li').addClass('active'); 1776 }); 1777 1778 </script>
1778 1779 1780 <div id="slide-search-field" class="hidden-sm hidden-xs search-field pull-left"> 1781 <form id="search_form" action="/search"> 1782 <div class="input-group"> 1783 <input placeholder="Search" type="text" class="form-control search_box" name="searchable" value=""> 1784 <div class="input-group-btn"> 1785 <button class="btn btn-default search-toggle-button" type="submit"><i class="fas fa-search fa-1-5x"></i></button> 1786 </div> 1787 </div> 1788 </form> 1789 </div> 1790 1791 </div><!--/.container --> 1792 </div> 1793 1794 1795 </header> 1796 <div id="body"> 1797 1798 <div id="fb-root"></div> 1799 1800 1801 1802 1803 1804 <div class="header-banner" > 1805 <div class="header-banner-text overlay-light"> 1806 1807 <div class="container"> 1808 <div class="header-banner-text-inner"> 1809 <div class="row"> 1810 <div class="col-xs-12"> 1811 <h1 class="header-banner-page-title"><var> 1812 1813</var></h1> 1814 <div class="hide-breadcrumbs"> 1815 <ol class="breadcrumb"></ol> 1816 </div> 1817 </div> 1818 </div> 1819 <h4 class="header-banner-subtext"><var> 1820 1821 1822 1823 </var></h4> 1824 </div> 1825 </div> 1826 1827 </div> 1828 </div> 1829 1830 <div class="container extra-header-content"> 1831 1832 1833 </div> 1834 <div id="main" class=""> 1835 <div id="content" class="container 1836 fields auth 1837" 1838> 1839 1840 <div class="error-panel-container"> 1841 1842 <div class="alert alert-danger"> 1843 <div class="w5 pull-left mt5 ml5 hidden-xs"> 1844 <i class="fas fa-exclamation-triangle fa-3x"></i> 1845 </div> 1846 <div class="w80 ml15percent mt-5 p1"> 1847 <span class="richtext">Cookies are not enabled and they must be in order for you to remain logged in for your entire session. Learn how to enable cookies <a href="http://www.google.com/support/accounts/bin/answer.py?&answer=61416">here.</a><a></a></span> 1848 <br/><br/> 1849 If you think this is an error, please email us at 1850 <a href="mailto:[email protected]" aria-label="Send mail to support at [email protected]">[email protected]</a>. 1851 <br/><br/> 1852 <button class="btn btn-default"><a href="/">Take me home!</a></button> 1853 </div> 1854 </div> 1855 1856 1857 <!--[if lte IE 7]> 1858 <div class="error"> 1859 <img src="/res/img/warning.png" /> 1860 You are using Internet Explorer 7 or below. Please upgrade your browser. <a href="http://www.google.com/chrome/" title="Google Chrome">Google Chrome</a>, <a href="http://www.mozilla.com/en-US/firefox/new/" title="Firefox">Firefox</a>, and <a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home" title="Internet Explorer 9">Internet Explorer 9</a> are good browsers. 1861 </div> 1862 <![endif]--> 1863 1864 1865 1866 1867 </div> 1868 <div class="full-width-container mt3"> 1869 <div class="row"> 1870 1871 <div id="main_content" class="col-xs-12"> 1872 1873 1874 1875 1876 <div class="row"> 1877 <div class="col-xs-12"> 1878 1879 <h2>Log In to The Canadian Philosophical Association | L'Association canadienne de philosophie</h2> 1880 1881 </div> 1882 </div> 1883 <div class="row"> 1884 <div class="col-sm-6 col-lg-5"> 1885 <div class="panel panel-default"> 1886 <div class="panel-heading"> 1887 <h3 class="panel-title">Sign in with your email and password</h3> 1888 </div> 1889 <div class="panel-body"> 1890 <form method='post' id='loginForm' action="/auth/login" class="form-horizontal" role="form"> 1891 <input type='hidden' name='associate_with_social_network' value=''> 1892 <div class="form-group row clearfix"> 1893 <label for="inputEmail" class="col-sm-3 col-lg-3 control-label"> 1894 Email 1895 </label> 1896 <div class="col-sm-9 col-lg-9"> 1897 <input type="email" class="login_username required form-control" id="user_email" placeholder="Email" name="username" id="username" value=""> 1898 </div> 1899 </div> 1900 <div class="form-group row clearfix"> 1901 <label for="inputPassword3" class="col-sm-3 col-lg-3 control-label">Password</label> 1902 <div class="col-sm-9 col-lg-9"> 1903 <input type="password" class="form-control required" name="password" id="password" placeholder="Password"> 1904 </div> 1905 </div> 1906 1907 <div class="form-group row clearfix"> 1908 <div class="col-sm-9 col-sm-offset-3 col-lg-9 col-lg-offset-3"> 1909 <button type="submit" class="btn btn-default" sel='login_button'>Sign in</button> 1910 </div> 1911 </div> 1912 </form> 1913 <div class="clearfix"> 1914 <div class="col-xs-12"> 1915 <div class="ml-5 pull-right"> 1916 1917 <a tabindex="0" class="popover_link " role="button" data-toggle="popover" data-trigger="focus" title="Forgot your password" data-content="Select this to reset your password via email. 1918 If your email is already connected to an account but you have not logged in yet, you may also setup your password for the first time." aria-label="Forgot your password Help"><span class="fas fa-question-circle icon-question-sign"></span></a> 1919 </div> 1920 <a class="pull-right" href="/auth/forgotten_password"> 1921 Forgot your password? 1922 </a> 1923 </div> 1924 </div> 1925 </div> 1926 </div> 1927 </div> 1928 </div> 1929 <div class="row"> 1930 <div class="col-xs-12 col-lg-10"> 1931 1932 <div class="alert alert-info login-page-join-alert">Not yet a member? <a href="https://www.acpcpa.ca:443/join">Join Now!</a></div> 1933 1934 </div> 1935 </div> 1936 1937 </div> 1938 1939 </div> 1940 </div> 1941 <div style="display: none;"> 1942 1943 1944 </div> 1945 1946 </div> 1947 </div> 1948 1949 </div> 1950 1951 <footer id="site_footer"> 1952 1953 1954 <div class="container footer-top"> 1955 <div class="row"> 1956 <div class="col-lg-3 col-md-6"> 1957 1958 <aside class="footer-section footer-contact"> 1959 <div class="footer-address clearfix footer-contact-info"> 1960 <i class="fas fa-location-dot fa-fw"></i> 1961 <div class="footer-contact-info-text"> 1962 555 Rue Chabanel Ouest<br/> 1963 Suite 1541, PO Box 794<br/> 1964 Montreal QC H2N 2J2<br/> 1965 Canada 1966 </div> 1967 </div> 1968 <div class="footer-email clearfix footer-contact-info"> 1969 <i class="fas fa-envelope fa-fw"></i> 1970 <div class="footer-contact-info-text"> 1971 <a href="mailto:[email protected]">[email protected]</a> 1972 </div> 1973 </div> 1974 </aside> 1975 1976 </div> 1977 <div class="col-lg-3 col-md-6"> 1978 1979 1980 <aside class="footer-section footer-articles"> 1981 <h4>Latest Articles</h4> 1982 <ul class="footer-ul"> 1983 1984 <li> 1985 1986 <div class="ss-panel-header"> 1987 <div class="item-name item_name"> 1988 <a href="https://www.acpcpa.ca:443/articles/call-for-submissions-annual-meeting-of-the-canadian-philosophical-association-wester
1988n-university-london-31-may-3-june-2027">Call for Submissions: Annual Meeting of The Canadian Philosophical Association Western University, London, 31 May – 3 June 2027 1989</a> 1990 </div> 1991 <span class="item-date-widget-style">September 14, 2026</span> 1992 </div> 1993 <div class="widget-item-text ss-panel-body"> 1994 <span class="richtext">The CPA invites submissions of papers, abstracts, and symposium proposals</span> <span><a href="https://www.acpcpa.ca:443/articles/call-for-submissions-annual-meeting-of-the-canadian-philosophical-association-western-university-london-31-may-3-june-2027" class="readmore">Read More</a></span> 1995 </div> 1996</li> 1997 1998 <li> 1999 2000 <div class="ss-panel-header"> 2001 <div class="item-name item_name"> 2002 <a href="https://www.acpcpa.ca:443/articles/funded-ma-phd-places-in-philosophy-at-ceu-vienna">Funded MA & PhD Places in Philosophy at CEU Vienna 2003</a> 2004 </div> 2005 <span class="item-date-widget-style">September 09, 2026</span> 2006 </div> 2007 <div class="widget-item-text ss-panel-body"> 2008 <span class="richtext">CEU is accepting applications for its MA and PhD programs in Philosophy, beginning September 2027</span> <span><a href="https://www.acpcpa.ca:443/articles/funded-ma-phd-places-in-philosophy-at-ceu-vienna" class="readmore">Read More</a></span> 2009 </div> 2010</li> 2011 </ul> 2012 </aside> 2013 2014 </div> 2015 <div class="col-lg-3 col-md-6"> 2016 <h4>About the CPA</h4> 2017 2018The Canadian Philosophical Association was founded in 1958 to promote philosophical scholarship and education across Canada, and to represent the interests of the profession in public forums. 2019 </div> 2020 <div class="col-lg-3 col-md-6"> 2021 <div class="fb-page" data-href="https://www.facebook.com/acpcpa.ca/" data-tabs="timeline" data-height="250" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true"><blockquote cite="https://www.facebook.com/acpcpa.ca/" class="fb-xfbml-parse-ignore"><a href="https://www.facebook.com/acpcpa.ca/"> 2022 </div> 2023 </div> 2024 </div> 2025 <div class="lower-footer"> 2026 <div class="container"> 2027 <div class="row"> 2028 <div class="col-sm-6"> 2029 <div class="footer-logo"> 2030 2031 2032 <a href="https://www.acpcpa.ca/" class="navbar-brand"> 2033 2034 2035 2036 <img src='https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS9iMjU1YzA2Yi0xZTg2LTRjOTMtOWI5ZC1iMTRkODFkNGQwNDIucG5n/1396x250fPNG' 2037 style='padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; ' 2038 alt='The Canadian Philosophical Association | L'Association canadienne de philosophie' 2039 resize_with_padding='True' 2040 class="img-responsive" 2041 alt="" 2042 > 2043 2044 2045 </a> 2046 2047 </div> 2048 </div> 2049 <div class="col-sm-6"> 2050 <div class="pull-right"> 2051 <div id="search_and_links"> 2052 2053 <ul class="media_links"> 2054 2055 2056 2057 2058 2059 <li><a href='https://www.facebook.com/acpcpa.ca/' target="_blank"><i class="fab fa-facebook fa-1-5x"></i></a></li> 2060 2061 2062 2063 <li><a href='https://www.youtube.com/channel/UC1f8HrYA3GBP5lALz1myq7g' target="_blank"><i class="fab fa-youtube fa-1-5x"></i></a></li> 2064 2065 2066 2067 <li><a href='https://linkedin.com/company/the-canadian-philosophical-association-l-association-canadienne-de-philosophie' target="_blank"><i class="fab fa-linkedin fa-1-5x"></i></a></li> 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 <li><a href='mailto:[email protected]' target="_blank"><i class="fas fa-envelope fa-1-5x"></i></a></li> 2084 2085 </ul> 2086 2087 </div> 2088 </div> 2089 </div> 2090 </div> 2091 </div> 2092 </div> 2093 <div class="powered-by-silkstart"> 2094 <div class="container"> 2095 <div class="clearfix"> 2096 <div class="pull-right"> 2097 2098 <span class="powered-by">Powered by</span> <a href="http://www.silkstart.com/" target="_blank">SilkStart Association Management Software</a> 2099 2100 </div> 2101 </div> 2102 </div> 2103 </div> 2104 2105 </footer> 2106 </div> 2107 2108 2109 2110 2111 2112 2113 2114 2115
2115<script type="text/javascript"> 2116 ss_context = 2117 2118 (function(js_data_safe, error){ 2119 if(error && typeof console !== "undefined"){ 2120 console.error(error); 2121 } 2122 return js_data_safe; 2123 })({}, false) 2124; 2125 </script>
2125 2126 2127 2128
2128<script type="text/javascript"> 2129 $(function(){ 2130 window.SigninApp = new ss.views.UserSignInSectionApp({ 2131 el: $('.sign_in_section_js') 2132 }); 2133 2134 }); 2135 </script>
2135 2136 2137 2138 2139 2140
2140<script type="text/template" id="multitable_view"> 2141 <ul class="selectors"> 2142 <%for(var key in menu_items){ var value = menu_items[key]; %> 2143 <li class="<%=key==selected ? 'selected' : ''%>" > 2144 <a id="<%=key%>" href="#"><%-value%></a> 2145 </li> 2146 <%}%> 2147 </ul> 2148 <div class="table_container"> 2149 2150 </div> 2151 </script>
2151 2152 2153 2154 2155 2156 2157
2157<script type="text/template" id="input_options_view"> 2158 <% 2159 descriptions.each(function(i, elem){ 2160 var description = $(this).text(); 2161 %> 2162 <div class="input_container <%=i==selected?'selected':'unselected'%>"> 2163 <div class="left_fixed column"> 2164 <div class="input_div input_container_radio"> 2165 <input type="radio" name="input_options_app_selected" <%=i==selected?'checked="checked"':''%>> 2166 </div> 2167 <div class="input_div input_container_input"> 2168 <!-- The render function will place the input element here --> 2169 </div> 2170 </div> 2171 <div class="right_fluid column"> 2172 <div class="input_div input_container_description"> 2173 <%-description%> 2174 </div> 2175 </div> 2176 </div> 2177 <%});%> 2178 </script>
2178 2179 2180 2181 2182 2183 2184 2185 2186
2186<script type="text/template" id="document_panel_view"> 2187 <div class="panel panel-default"> 2188 <div class="panel-heading"> 2189 <h3 class="panel-title"> 2190 <i class="fas fa-file-alt"></i> <%-heading_title%> 2191 </h3> 2192 <%if(may_modify == "True"){%> 2193 <div class="mt1"> 2194 <a href="#" class="btn btn-primary upload_file_popup"><i class="fas fa-cloud-upload"></i> Upload a File</a> 2195 </div> 2196 <%}%> 2197 </div> 2198 <div class="panel-body"> 2199 <ul class="existing_file_div"> 2200 <%if(files.length == 0){%> 2201 <i class="no_file_yet">No files uploaded yet.</i> 2202 <%}%> 2203 </ul> 2204 </div> 2205 </div> 2206 2207 <% 2208 var files_json = _.map(files, function(file){ 2209 return file.toJSON(); 2210 }); 2211 files_json.reverse(); 2212 var uploader_files_info = JSON.stringify(files_json); 2213 %> 2214 <input type="hidden" name="uploader_files_info" value="<%-uploader_files_info%>"> 2215 </script>
2215 2216 2217
2217<script type="text/template" id="uploaded_file_single_view"> 2218 <% 2219 var file_type; 2220 var ext = ''; 2221 if (file_name) { 2222 ext = file_name.split('.').reverse()[0]; 2223 } else { 2224 file_name = '------------'; 2225 } 2226 2227 var file_types = { 2228 "tar": "file-zipper", 2229 "gz": "file-zipper", 2230 "jpg": "file-image", 2231 "mp4": "file-video", 2232 "rar": "file-zipper", 2233 "mp3": "file-audio", 2234 "ppt": "file-powerpoint", 2235 "txt": "file-text", 2236 "7z": "file-zipper", 2237 "m4a": "file-audio", 2238 "zip": "file-zipper", 2239 "gif": "file-image", 2240 "wav": "file-audio", 2241 "tif": "file-image", 2242 "csv": "file-excel", 2243 "pptx": "file-powerpoint", 2244 "xlsx": "file-excel", 2245 "docx": "file-word", 2246 "mov": "file-video", 2247 "bmp": "file-image", 2248 "jpeg": "file-image", 2249 "flac": "file-audio", 2250 "ogg": "file-audio", 2251 "png": "file-image", 2252 "exe": "file-code", 2253 "doc": "file-word", 2254 "pdf": "file-pdf", 2255 "xls": "file-excel", 2256 "avi": "file-video" 2257}; 2258 2259 if (ext.toLowerCase() in file_types) { 2260 file_type = file_types[ext.toLowerCase()]; 2261 } else { 2262 file_type = 'file'; 2263 } 2264 2265 if (!title) { 2266 if (!file_name) { 2267 title = "------------"; 2268 } else { 2269 title = file_name; 2270 } 2271 } 2272 2273 function stripScripts(s) { 2274 var div = document.createElement('div'); 2275 div.innerHTML = s; 2276 var scripts = div.getElementsByTagName('script'); 2277 var i = scripts.length; 2278 while (i--) { 2279 scripts[i].parentNode.removeChild(scripts[i]); 2280 } 2281 return div.innerHTML; 2282 } 2283 2284 if (title) { 2285 title = stripScripts(title); 2286 } 2287 %> 2288 <%if(template_type=='normal'){%> 2289 <div class="action_buttons"> 2290 <%if(may_modify == "True"){%><i class="delete_file far fa-trash-can fa-2x" data-file_key=<%=key%>></i><%}%> 2291 <a class="download_file" target="_blank" href="<%=url%>"><i class="fas fa-2x fa-download"></i></a> 2292 </div> 2293 2294 2295 <a class="download_file" target="_blank" href="<%=url%>"> 2296 <i class="fas fa-2x fa-<%=file_type%>"></i> 2297 </a> 2298 <div class="file_info"> 2299 <div class="file_name"><b><%=title%></b></div> 2300 <div class="by_user">by <a href="<%=user_url%>"><%=user_name%></a></div> 2301 </div> 2302 <div class="clearfix"></div> 2303 <%}else if(template_type=='image_selector'){%> 2304 <div class="action_buttons"> 2305 <%if(may_modify == "True"){%><i class="delete_file far fa-trash-can fa-2x" data-file_key=<%=key%>></i><%}%> 2306 <a class="download_file" target="_blank" href="<%=url%>"><i class="fas fa-2x fa-download"></i></a> 2307 </div> 2308 <%var radio_id = "uploader_radio_" + $.ss.util.unique_id();%> 2309 <input class="uploaded_selector" type="radio" id="<%=radio_id%>" name="uploader_selector" value="<%=url%>" <%=selected ? 'checked="checked"' : ''%>> 2310 <label for="<%=radio_id%>"> 2311 <i class="fas fa-2x fa-<%=file_type%>"></i> 2312 </label> 2313 <div class="file_info"> 2314 <label for="<%=radio_id%>"> 2315 <div class="file_name"><b><%=title%></b></div> 2316 </label> 2317 <div class="by_user">by <a href="<%=user_url%>"><%=user_name%></a></div> 2318 </div> 2319 <div class="clearfix"></div> 2320 <%}%> 2321 2322 </script>
2322 2323 2324
2324<script type="text/template" id="deleteFile"> 2325 <% 2326 if(!title){ 2327 if(file_name){ 2328 title = file_name 2329 }else{ 2330 title = "------------" 2331 } 2332 } 2333 2334 function stripScripts(s) { 2335 var div = document.createElement('div'); 2336 div.innerHTML = s; 2337 var scripts = div.getElementsByTagName('script'); 2338 var i = scripts.length; 2339 while (i--) { 2340 scripts[i].parentNode.removeChild(scripts[i]); 2341 } 2342 return div.innerHTML; 2343 } 2344 2345 if (title) { 2346 title = stripScripts(title); 2347 } 2348 %> 2349 <div class="delete_popup"> 2350 <div class="delete_warning">Are you sure you want to delete <%=title%>? Deleting a file is irreversible.</div> 2351 <form class="upload_form item_edit_form"> 2352 2353 <input type="hidden" name="<%=target_type%>:<%=collection_name ||'uploader_files'%>[<%=key%>].to_delete" value=True> 2354 </form> 2355 </div> 2356 </script>
2356 2357 2358 2359 2360 2361 <div class="filter-templates"> 2362 2363
2363<script type="text/template" id="item_filters"> 2364 <div class="row"> 2365 <div class="col-lg-8 col-md-10"> 2366 <div class="report-filters"> 2367 <div class="row"> 2368 <div class="col-xs-6 col-lg-4"> 2369 <h4> 2370 <div class="filter_heading">Filters</div> 2371 </h4> 2372 </div> 2373 <div class="col-xs-6 col-lg-8 form-inline"> 2374 <div class="add_new_filter form-group"> 2375 <label>Select Filter</label> 2376 <select class="form-control add_new_filter_js"></select> 2377 </div> 2378 </div> 2379 </div> 2380 </div> 2381 </div> 2382 </div> 2383 <div class="row"> 2384 <div class="col-lg-8 col-md-10"> 2385 <ul class="item_filters item-filters list-group"></ul> 2386 </div> 2387 </div> 2388 </script>
2388 2389 2390
2390<script type="text/template" id="item_filter_row"> 2391 <div class="filter-row form-inline"> 2392 <div class="row_filter_label"><label><%-label%></label></div> 2393 <div class="row_filter_operation"><span class="filter-placeholder"></span></div> 2394 <div class="row_filter_remove"><span class="remove_filter"><i class="fas fa-times red"></i></span></div> 2395 </div> 2396 </script>
2396 2397 2398
2398<script type="text/template" id="item_currency_filter_options"> 2399 <select data-field="filter_type" class='filter_type form-control numeric_filter_type_js'> 2400 <option value='between'>Between 2401 <option value='greater_than'>Greater than 2402 <option value='less_than'>Less than 2403 </select> 2404 <input class="input-small filter_criteria_js greater_than_js between_js form-control" type="text" data-field="min_value"> 2405 <input class="input-small filter_criteria_js less_than_js between_js form-control" type="text" data-field="max_value"> 2406 </script>
2406 2407 2408
2408<script type="text/template" id="item_numeric_filter_options"> 2409 <select data-field="filter_type" class='filter_type numeric_filter_type_js form-control'> 2410 <option value='between'>Between 2411 <option value='greater_than'>Greater than 2412 <option value='less_than'>Less than 2413 </select> 2414 <!-- 2415 <%=ss.text_field({ 2416 name: 'min_value', 2417 css_class: 'input-small filter_criteria_js greater_than_js between_js'})%> 2418 <%=ss.text_field({ 2419 name: 'max_value', 2420 css_class: 'input-small filter_criteria_js less_than_js between_js'})%> 2421 data-field instead of data-name 2422 --> 2423 2424 <input class="input-small filter_criteria_js greater_than_js between_js form-control" type="text" data-field="min_value"> 2425 <input class="input-small filter_criteria_js less_than_js between_js form-control" type="text" data-field="max_value"> 2426 </script>
2426 2427 2428
2428<script type="text/template" id="item_options_filter_options"> 2429 <select data-field="filter_type" class='filter_type align_top_and_width form-control' > 2430 <option value='contains'>Is 2431 <option value='does_not_contain'>Is not 2432 </select> 2433 <% 2434 var size_of_list = Math.min(options.length,4); 2435 %> 2436 <select data-field="value" class="filter_value multi_select form-control" multiple="multiple" size="<%=size_of_list%>" > 2437 <% var option; 2438 for (key in options) { 2439 option = options[key]; 2440 %> 2441 <option value="<%=option.value%>"><%=option.label%> 2442 <% } %> 2443 </select> 2444 <%= ss.fn.popover({content: "Multiple values can be selected using Shift or Ctrl/Cmd clicks."}) %> 2445 </script>
2445 2446 2447
2447<script type="text/template" id="item_text_filter_options"> 2448 <select data-field="filter_type" class='filter_type form-control exists_filter_js'> 2449 <option value='contains'>Contains 2450 <option value='does_not_contain'>Doesn't Contain 2451 <option value="blank">Blank 2452 <option value="not_blank">Not Blank 2453 </select> 2454 <input type="text" data-field="value" class="filter_value form-control"> 2455 <%= ss.fn.popover({content: "Filters can be separated by commas if you want to use more than one."}) %> 2456 </script>
2456 2457 2458
2458<script type="text/template" id="item_object_id_filter_options"> 2459 <select data-field="filter_type" class='filter_type form-control'> 2460 <option value="is_objectid">Is 2461 </select> 2462 <input type="text" data-field="value" class="filter_value form-control"> 2463 </script>
2463 2464 2465
2465<script type="text/template" id="item_yes_no_filter_options"> 2466 <select data-field="filter_type" class='filter_type form-control'> 2467 <option value="true_or_false">Is 2468 </select> 2469 <select data-field="value" class="filter_value form-control multi_select" multiple="multiple" size="2" > 2470 <option value="True">Yes 2471 <option value="False">No 2472 </select> 2473 2474 </script>
2474 2475 2476
2476<script type="text/template" id="item_expiry_date_filter_options"> 2477 <% 2478 // UG copied and pasted from below 2479 var start = null; 2480 var end = null; 2481 try { 2482 if (start_date) { 2483 start = ss_format_date( new Date(start_date) ); 2484 end = ss_format_date( new Date(end_date) ); 2485 } 2486 } catch (error) { 2487 } 2488 %> 2489 <select data-field="filter_type" class="filter_type form-control date_filter_type" name="date_filter"> 2490 <option value="last_month">Last Month 2491 <option value="last_year">Last Year 2492 <option value="next_month">Next Month 2493 <option value="next_year">Next Year 2494 <option value="custom">Custom 2495 <option value="Recurring">Recurring 2496 <option value="blank">Blank 2497 <option value="Lifetime">Lifetime 2498 </select> 2499 <input data-field="start_date" class="date date-picker-field form-control date_input start_date" value="<%- start || ''%> "> 2500 <input data-field="end_date" class="date date-picker-field form-control date_input end_date" value="<%- end || ''%> "> 2501 </script>
2501 2502 2503
2503<script type="text/template" id="item_previous_date_filter_options"> 2504 <% 2505 // UG copied and pasted above 2506 var start = null; 2507 var end = null; 2508 try { 2509 if (start_date) { 2510 start = ss_format_date( new Date(start_date) ); 2511 end = ss_format_date( new Date(end_date) ); 2512 } 2513 } catch (error) { 2514 } 2515 %> 2516 <select data-field="filter_type" class="filter_type form-control date_filter_type" name="date_filter"> 2517 <option value="last_month">Last Month 2518 <option value="last_year">Last Year 2519 <option value="custom" <%= start ? 'selected="selected"' : '' %>>Custom 2520 <option value="blank">Blank 2521 </select> 2522 <input data-field="start_date" class="date form-control date-picker-field date_input start_date" value="<%- start || ''%> "> 2523 <input data-field="end_date" class="date form-control date-picker-field date_input end_date" value="<%- end || ''%> "> 2524 </script>
2524 2525 2526
2526<script type="text/template" id="item_date_filter_options"> 2527 <% 2528 // UG copied and pasted above 2529 var start = null; 2530 var end = null; 2531 try { 2532 if (start_date) { 2533 start = ss_format_date( new Date(start_date) ); 2534 end = ss_format_date( new Date(end_date) ); 2535 } 2536 } catch (error) { 2537 } 2538 %> 2539 <select data-field="filter_type" class="filter_type form-control date_filter_type" name="date_filter"> 2540 <option value="last_month">Last Month 2541 <option value="last_year">Last Year 2542 <option value="next_month">Next Month 2543 <option value="next_year">Next Year 2544 <option value="custom" <%= start ? 'selected="selected"' : '' %>>Custom 2545 </select> 2546 <input data-field="start_date" class="date form-control date-picker-field date_input start_date" value="<%- start || ''%> "> 2547 <input data-field="end_date" class="date form-control date-picker-field date_input end_date" value="<%- end || ''%> "> 2548 </script>
2548 2549 2550 </div> 2551 2552 2553 2554
2554<script type="text/template" id="pdf_reader_view"> 2555 <div class="<%=can_display ? 'loading_dark_background_large':''%> inner_container"> 2556 <%if(can_display){%> 2557 <div class="pdf_toolbar"> 2558 <div class="navigation_buttons"> 2559 <button class="previous inverse small"> 2560 <i class="icon-arrow-left icon-white"></i> 2561 </button> 2562 <button class="next inverse small"> 2563 <i class="icon-arrow-right icon-white"></i> 2564 </button> 2565 <span class="pages"> 2566 Page <span class="current_page"></span> of <span class="total_pages"></span> 2567 </span> 2568 </div> 2569 </div> 2570 <canvas height="0"></canvas> 2571 <%}else{%> 2572 <div class="ie_fail_container"> 2573 <span> 2574 To preview this PDF you need to use a modern browser. 2575 Some good ones are shown below. You can also download the PDF by clicking 2576 <a href="<%=pdf_download_url || pdf_url%>">here</a>. 2577 </span> 2578 <div class="good_browsers"> 2579 <a target="_blank" href="http://www.google.com/chrome"> 2580 <img src="/res/img/v2/Chrome-128.png"> 2581 <div>Chrome</div> 2582 </a> 2583 <a target="_blank" href="http://www.mozilla.org/en-US/firefox/new/"> 2584 <img src="/res/img/v2/Firefox-128.png"> 2585 <div>Firefox</div> 2586 </a> 2587 </div> 2588 </div> 2589 <%}%> 2590 </div> 2591 </script>
2591 2592 2593 2594 2595 <div class="autocomplete-templates"> 2596 2597
2597<script type="text/template" id="autocomplete_view"> 2598 <div class="autocomplete_app"> 2599 <ul class="selected_container autocomplete_selected_view pill_list"></ul> 2600 <input class="autocomplete_input form-control <%= options.required ? 'required':''%>" name="<%='autocomplete_' + $.ss.util.unique_number()%>" type="text" placeholder="<%-placeholder%>"></input> 2601 </div> 2602 </script>
2602 2603 2604 2605 2606
2606<script type="text/template" id="autocomplete_item"> 2607 <% if ( ! c.image_url && ! c.icon_class ) { %> 2608 <div> 2609 <div class="alert alert-warning"> 2610 No matches found 2611 </div> 2612 </div> 2613 <% } else { %> 2614 <div> 2615 <div class="autocomplete_box" data-id="<%=c.id%>"> 2616 <div class="ab_image"> 2617 <% if ( c.image_url ) { %> 2618 <img src="<%=c.image_url%>"> 2619 <% } else { %> 2620 <i class="<%=c.icon_class%>"></i> 2621 <% } %> 2622 </div> 2623 <div class="ab_info"> 2624 <% if(c.type==="search"){%> 2625 <ul> 2626 <li><span class="highlightable">"<%-c.name%>"</span> 2627 <li>( Search <%- c.search_description %> ) 2628 </ul> 2629 <% }else if(c.type==="user" || c.type==="company"){%> 2630 <ul> 2631 <li><span class="highlightable"><%-c.name%></span> 2632 <% if(ss_context.network_admin) { %> 2633 (<%-c.plan_name || "No Plan"%>) 2634 <% } %> 2635 </li> 2636 <%if(c.member_number){%> 2637 <li>Mem #: <span class="highlightable"><%-c.member_number%></span></li> 2638 <%}%> 2639 <%if(c.email){%> 2640 <li>Email: <%-c.email%></li> 2641 <%}%> 2642 </ul> 2643 <% } else if(c.type=="event"){%> 2644 <ul> 2645 <li><span class="highlightable"><%-c.name%></span></li> 2646 <%if(c.formatted_date){%> 2647 <li><span><%-c.formatted_date%></span></li> 2648 <%}%> 2649 <%if(c.location){%> 2650 <li><%-c.location%></li> 2651 <%}%> 2652 </ul> 2653 <% } else if(c.type=="cpage"){%> 2654 <ul class="cpage-auto-complete"> 2655 <li><strong>Page: <span class="highlightable"><%-c.name%></span></strong></li> 2656 <%if(c.permaid){%> 2657 <li>URL: <%-c.permaid%></li> 2658 <%}%> 2659 <%if(c.template){%> 2660 <li><span>Template: <%-c.template%></span></li> 2661 <%}%> 2662 </ul> 2663 <% } else if(c.type=="invoice"){%> 2664 <ul> 2665 <li><strong>Invoice: #<span class="highlightable"><%-c.invoice_number%> (<%-c.recipient_name%>)</span></strong></li> 2666 <%if(c.created){%> 2667 <li><span>Date: <%-c.created%></span></li> 2668 <%}%> 2669 <%if(c.description){%> 2670 <li>Description: <%-c.description%></li> 2671 <%}%> 2672 </ul> 2673 <% } else if(c.type=="chapter"){%> 2674 <ul> 2675 <li><strong><span class="highlightable"><%-c.name%></span></strong></li> 2676 </ul> 2677 <% } else if(c.type=="campaign"){%> 2678 <ul> 2679 <li>Campaign Name: <strong><span class="highlightable"><%-c.name%></span></strong></li> 2680 <%if(c.description){%> 2681 <li>Description: <%= c.description %></li> 2682 <%}%> 2683 </ul> 2684 <% } else if(c.type=="transaction"){%> 2685 ## You can't view a single transaction, so no point putt
2685ing it in the autocomplete 2686 ## Maybe someday... 2687 <% } %> 2688 2689 </div> 2690 </div> 2691 </div> 2692 <% } %> 2693 </script>
2693 2694 2695 2696 2697
2697<script type="text/template" id="autocomplete_selected_view"> 2698 <span><%-title%></span> 2699 <a class="remove">×</a> 2700 <%if(name){%> 2701 <input type="hidden" name="<%-input_name%>" value="<%-id%>"> 2702 <%}%> 2703 </script>
2703 2704 2705 </div> 2706 2707 2708 2709 <div class="directory-page-templates" style="display:none"> 2710 2711
2711<script type="text/template" class="event-list-pagination-filters"> 2712 2713 <div class="panel panel-default event-filters filtered-search-controls"> 2714 <div class="facet-title">Categories</div> 2715 <div class="event-category-facets mb2"> 2716 <% _.each(event_categories, function(event_category) { %> 2717 <% 2718 var name = event_category.name; 2719 var no_events = event_category.count == 0; 2720 var checked = (event_category.selected && !no_events) ? "checked" : ""; 2721 var label_classes = no_events ? "empty-facet" : ""; 2722 var disabled = no_events ? "disabled" : ""; 2723 var default_category = (event_category.id == 'Default'); 2724 %> 2725 <div class="checkbox"> 2726 <label class="<%= label_classes %>"> 2727 <input class="event-category-filter" data-value="<%= default_category ? 'default' : event_category.id %>" <%= checked %> <%= disabled %> type="checkbox"> 2728 <%= name %> 2729 <span class="badge"><%= event_category.count %></span> 2730 </label> 2731 </div> 2732 <% });%> 2733 </div> 2734 2735 <div class="facet-title">Display Type</div> 2736 2737 <div class="btn-group btn-group-justified" role="toolbar"> 2738 <div class="btn-group"> 2739 <button type="button" class="btn btn-default display-type-picker <%= display_type == 'default' ? 'active' : '' %>" data-value="default">List</button> 2740 </div> 2741 <div class="btn-group"> 2742 <button type="button" class="btn btn-default display-type-picker <%= display_type == 'grid' ? 'active' : '' %>" data-value="grid">Grid</button> 2743 </div> 2744 </div> 2745 2746 <div class="mt2"> 2747 <div class="facet-title mb2">Events in the Next</div> 2748 2749 <div class="btn-group btn-group-justified" role="toolbar"> 2750 <div class="btn-group"> 2751 <button type="button" class="btn btn-default event-period-picker <%= period == 'week' ? 'active' : '' %>" data-value="week">Week</button> 2752 </div> 2753 <div class="btn-group"> 2754 <button type="button" class="btn btn-default event-period-picker <%= period == 'month' ? 'active' : '' %>" data-value="month">Month</button> 2755 </div> 2756 </div> 2757 <div class="btn-group btn-group-justified" role="toolbar"> 2758 <div class="btn-group"> 2759 <button type="button" class="btn btn-default event-period-picker <%= period == 'year' ? 'active' : '' %>" data-value="year">Year</button> 2760 </div> 2761 <div class="btn-group"> 2762 <button type="button" class="btn btn-default event-period-picker <%= period == 'all' ? 'active' : '' %>" data-value="all">Ever</button> 2763 </div> 2764 </div> 2765 </div> 2766 <div class="mt1"> 2767 <button type="button" class="btn btn-block btn-default event-period-picker <%= period == 'past' ? 'active' : '' %>" data-value="past">View Past Events</button> 2768 </div> 2769 </div> 2770 </script>
2770 2771 2772
2772<script type="text/template" class="results-total-template"> 2773 <h2> 2774 <div class="found"> 2775 <%= total_found_string %> 2776 </div> 2777 </h2> 2778 </script>
2778 2779 2780
2780<script type="text/template" class="job-directory-pagination-filters"> 2781 <div class="filtered-search-controls job-search-controls panel panel-default"> 2782 <div class="facet-title">Keyword</div> 2783 <div class="filtered-keyword-search-box"> 2784 <div class="input-group"> 2785 <input type="text" name="keyword" id="job_keyword" placeholder="Search" class="form-control enter-keypress-trigger-button"> 2786 <span class="input-group-btn"> 2787 <button class="btn btn-default job-keyword-search go"><i class="fas fa-search"></i></button> 2788 </span> 2789 </div> 2790 <% if (job_keyword) { %> 2791 <div> 2792 <label class="job-keyword-display"><%=job_keyword%></label> 2793 <a class="remove-keyword-item btn btn-sm">(clear)</a> 2794 </div> 2795 <% } else { %> 2796 <br/><br/> 2797 <% } %> 2798 </div> 2799 <div class="job_type_facets panel-body"> 2800 <div class="facet-title">Type</div> 2801 <% _.each( job_types, function( job_type ) { 2802 var description = job_type.description; 2803 var checked = job_type.selected ? "checked" : ""; 2804 var no_jobs = job_type.count == 0; 2805 var label_classes = no_jobs ? "empty-facet" : ""; 2806 var disabled = no_jobs ? "disabled" : ""; 2807 %> 2808 <div class="checkbox"> 2809 <label class="<%= label_classes %>"><input class="job-type-filter" data-value="<%=description%>" 2810 <%=checked%> <%= disabled %> 2811 type="checkbox"> <%=description%> <span class="badge"><%=job_type.count%></span></label> 2812 </div> 2813 <% });%> 2814 2815 2816 <div class="facet-title">Category</div> 2817 2818 <% _.each( job_categories, function( job_category ) { 2819 var description = job_category.description; 2820 var checked = job_category.selected ? "checked" : ""; 2821 var no_jobs = job_category.count == 0; 2822 var label_classes = no_jobs ? "empty-facet" : ""; 2823 var disabled = no_jobs ? "disabled" : ""; 2824 %> 2825 <div class="checkbox"> 2826 <label class="<%= label_classes %>"><input class="job-category-filter" data-value="<%=description%>" 2827 <%=checked%> <%= disabled %> 2828 type="checkbox"> <%=description%> <span class="badge"><%=job_category.count%></span></label> 2829 </div> 2830 <% });%> 2831 2832 <% if (search_by_location) { %> 2833 2834 <div class="facet-title">Location</div> 2835 2836 <div class="job_location"> 2837 <div class="field form-group"> 2838 <select onchange="" class="country_binding_provinces job-country-filter form-control"> 2839 <% _.each( all_countries_and_states['ALL_COUNTRIES'], function( country ) { 2840 var selected = job_country == country[0] ? "selected" : ""; 2841 %> 2842 <option value="<%=country[0]%>" <%=selected%>><%=country[1]%></option> 2843 <% });%> 2844 </select> 2845 </div> 2846 2847 <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="CA" style="display: none;"> 2848 <select onchange="" class=" form-control job-province-filter" disabled="disabled"> 2849 <% _.each( all_countries_and_states['CANADIAN_PROVINCES'], function( province ) { 2850 var selected = job_province == province[0] ? "selected" : ""; 2851 %> 2852 <option value="<%=province[0]%>
2852" <%=selected%>><%=province[1]%></option> 2853 <% });%> 2854 </select> 2855 </div> 2856 2857 <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="US" style="display: none;"> 2858 <select onchange="" class=" form-control job-province-filter" disabled="disabled"> 2859 <% _.each( all_countries_and_states['AMERICAN_STATES'], function( province ) { 2860 var selected = job_province == province[0] ? "selected" : ""; 2861 %> 2862 <option value="<%=province[0]%>" <%=selected%>><%=province[1]%></option> 2863 <% });%> 2864 </select> 2865 </div> 2866 2867 <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="AU" style="display: none;"> 2868 <select onchange="" class=" form-control job-province-filter" disabled="disabled"> 2869 <% _.each( all_countries_and_states['AUSTRALIAN_STATES'], function( province ) { 2870 var selected = job_province == province[0] ? "selected" : ""; 2871 %> 2872 <option value="<%=province[0]%>" <%=selected%>><%=province[1]%></option> 2873 <% });%> 2874 </select> 2875 </div> 2876 2877 <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="GB" style="display: none;"> 2878 <select onchange="" class=" form-control job-province-filter" disabled="disabled"> 2879 <% _.each( all_countries_and_states['UK_STATES'], function( province ) { 2880 var selected = job_province == province[0] ? "selected" : ""; 2881 %> 2882 <option value="<%=province[0]%>" <%=selected%>><%=province[1]%></option> 2883 <% });%> 2884 </select> 2885 </div> 2886 2887 <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="!CA,!US,!AU,!GB" style="display: block;"> 2888 <div class="input-group"> 2889 <input type="text" id="other_province" placeholder="Province" value="<%=job_province%>" class="form-control enter-keypress-trigger-button"> 2890 <span class="input-group-btn"> 2891 <button class="btn btn-default job-province-search go"><i class="fas fa-search"></i></button> 2892 </span> 2893 </div> 2894 </div> 2895 2896 <div class="checkbox"> 2897 <% var checked = job_remote == "true" ? "checked" : ""; %> 2898 <label><input class="job-remote-filter" <%=checked%> type="checkbox"> Remote Only</label> 2899 </div> 2900 </div> 2901 2902 <% } %> 2903 2904 <div class="facet-title">Company</div> 2905 <div id="autocomplete_company"></div> 2906 </div> 2907 </div> 2908 </script>
2908 2909 2910
2910<script type="text/template" class="pagination-top-links"> 2911 2912 <div class="row"> 2913 <div class="col-xs-3 col-md-6 form-inline"> 2914 <% if (c.model.get('allow_alpha') === 'True'){ %> 2915 <div class="form-group alpha-filter"> 2916 <label class="directory-search-label">Name</label> 2917 <select name="first_name" class="form-control input-lg alpha_filter_select"> 2918 <% _.each( alphabet, function( letter ) { 2919 var selected = ''; 2920 if(hash == '#' + letter){ 2921 selected = 'selected'; 2922 } 2923 %> 2924 <option value="<%=letter%>" <%=selected%>><%=letter%></option> 2925 <% }); %> 2926 </select> 2927 </div> 2928 <% } %> 2929 </div> 2930 2931 <% if ( c.model.get('asset_type') != 'job' ) { %> 2932 <div class="col-xs-9 col-md-6 "> 2933 <!--- START SEARCH FORM ---> 2934 <% 2935 var category_to_search = '' 2936 var search_for = c.model.get('asset_type'); 2937 if(c.model.get('asset_type') == 'company_user'){ 2938 search_for = 'directory'; 2939 } else if (c.model.get('asset_type') == 'article') { 2940 filter_json = JSON.parse(c.model.get('filter', '')); 2941 if (filter_json['category']) { 2942 category_to_search = filter_json['category'] 2943 } 2944 } 2945 %> 2946 <form method="get" action="/<%-search_for%>/search"> 2947 <div class="directory-search-field form-group"> 2948 <input type="submit" class="directory-search-submit btn btn-lg btn-primary" value="GO" /> 2949 <label class="directory-search-label">Quick Search</label> 2950 <span><input type="text" name="keyword" class="form-control directory-search-text-input input-lg" <%= keyword ? 'value="' + keyword + '"' : '' %> placeholder="Search"></span> 2951 <% if (category_to_search) { %> 2952 <input type="hidden" name="category" value="<%- category_to_search %>" /> 2953 <% } %> 2954 </div> 2955 </form> 2956 <!--- END SEARCH FORM ---> 2957 </div> 2958 <% } %> 2959 </div> 2960 2961 <% if (c.model.get('allow_alpha') === 'True'){ %> 2962 <div class="row"> 2963 <div class="col-xs-12"> 2964 <% if (c.model.get('asset_type') === 'company_user' && pagination_filter_buttons){ %> 2965 <!--- START FILTER BUTTONS ---> 2966 <div class="filter_by pull-right"> 2967 <div class="hidden-xs"> 2968 <label class="directory-search-label hidden-sm">Filter</label> 2969 <%=pagination_filter_buttons%> 2970 </div> 2971 <div class="visible-xs btn-group"> 2972 <%=pagination_filter_buttons%> 2973 </div> 2974 </div> 2975 <!--- END FILTER BUTTONS ---> 2976 <% } %> 2977 <!--- START SORT BUTTONS ---> 2978 2979 <div class="sort-by pull-right"> 2980 <div class="hidden-xs"> 2981 <label class="directory-search-label hidden-sm">Sort By: </label> 2982 <%=pagination_sort_buttons%> 2983 </div> 2984 <div class="visible-xs btn-group"> 2985 <%=pagination_sort_buttons%> 2986 </div> 2987 </div> 2988 <!--- END SORT BUTTONS ---> 2989 </div> 2990 </div> 2991 <% } %> 2992 </script>
2992 2993 2994 2995
2995<script type="text/template" class="pagination-control"> 2996 2997 <div class="btn-toolbar pagination-toolbar"> 2998 <div> 2999 <!--START PREV BUTTON ---> 3000 <div class="btn-group btn-group-sm prev-button"> 3001 <% if( current_page !== 1 && current_page !== 0){ %> 3002 <a class="btn btn-default page" data-page="<%-current_page-1%>">Prev </a> 3003 <% }else{ %> 3004 <a class="btn btn-default page" data-page="<%-current_page%>" disabled>Prev </a> 3005 <% } %> 3006 </div> 3007 <!--END PREV BUTTON ---> 3008 3009 3010 <!--START NUMBERED BUTTON GROUP--> 3011 <div class="btn-group btn-group-sm hidden-xs"> 3012 <% 3013 if( total_page < 10 ) { 3014 // TOTAL PAGES LESS THAN 10 3015 for(var i = 1; i<=total_page; i++){ 3016 if(i === current_page){ %> 3017 <a class="btn btn-info page" data-page="<%-i%>"><%-i%></a> 3018 <% }else{ %> 3019 <a class="btn btn-default page" data-page="<%-i%>"><%-i%></a> 3020 <% } 3021 } 3022 }else{ 3023 // TOTAL PAGES GREATER THAN 10 3024 if(current_page>=5 && current_page <= total_page - 4){ 3025 // TOTAL PAGES GREATER THAN 10 AND CURRENT_PAGE >= 5 AND CURRENT_PAGE <= TOTAL_PAGE-4 3026 %> 3027 <a class="btn btn-default page" data-page="1">1... </a> 3028 </div> 3029 <div class="btn-group btn-group-sm"> 3030 <% 3031 for(var page = current_page - 2; page<=current_page+2; page++){ 3032 if(page === current_page){ %> 3033 <a class="btn btn-info page" data-page="<%-page%>"><%-page%></a> 3034 <% }else{ %> 3035 <a class="btn btn-default page" data-page="<%-page%>"><%-page%></a> 3036 <% } 3037 } %> 3038 </div> 3039 <div class="btn-group btn-group-sm hidden-xs"> 3040 <a class="btn btn-default page" data-page="<%-total_page%>">...<%-total_page%></a> 3041 <% }else{ 3042 if(current_page<=5){ 3043 // TOTAL PAGES GREATER THAN 10 AND CURRENT_PAGE LESS THAN 5 3044 for(page = 1; page <=6; page++){ 3045 if(page === current_page){ %> 3046 <a class="btn btn-info page" data-page="<%-page%>"><%-page%></a> 3047 <% }else{ %> 3048 <a class="btn btn-default page" data-page="<%-page%>"><%-page%></a> 3049 <% } 3050 } %> 3051 </div> 3052 <div class="btn-group btn-group-sm hidden-xs"> 3053 <a class="btn btn-default page" data-page="<%-total_page%>">...<%-total_page%></a> 3054 <% }else if(current_page>=total_page - 4){ 3055 // TOTAL PAGES GREATER THAN 10 AND CURRENT_PAGE >= TOTAL_PAGE-4 3056 %> 3057 <a class="btn btn-default page" data-page="1">1... </a> 3058 </div> 3059 <div class="btn-group btn-group-sm hidden-xs"> 3060 <% 3061 for(page = total_page - 5; page <= total_page; page++){ 3062 if(page === current_page){ %> 3063 <a class="btn btn-info page" data-page="<%-page%>"><%-page%></a> 3064 <% }else{ %> 3065 <a class="btn btn-default page" data-page="<%-page%>"><%-page%></a> 3066 <% } 3067 } 3068 } 3069 } 3070 } %> 3071 3072 </div> 3073 <!--END NUMBERED BUTTON GROUP--> 3074 3075 <!--START NEXT BUTTON ---> 3076 <div class="btn-group btn-group-sm next-button"> 3077 <% if( current_page !== this.model.get('total_page') ){ %> 3078 <a class="btn btn-default page" data-page="<%-current_page+1%>">Next </a> 3079 <% }else{ %> 3080 <a class="btn btn-default page" data-page="<%-current_page%>" disabled>Next </a> 3081 <% } %> 3082 </div> 3083 <!--END NEXT BUTTON ---> 3084 </div> 3085 3086 <div class="visible-xs col-xs-12 pagination-pages"> 3087 Pages: <%-total_page%> 3088 </div> 3089 3090 3091 <!--START GO BUTTON ---> 3092 <div> 3093 <div class="input-group input-group-sm">
3094 <span class="input-group-btn"> 3095 <a class="btn btn-default btn-sm go">Go</a> 3096 </span> 3097 <input type="text" class="form-control goto"> 3098 </div> 3099 </div> 3100 3101 <!--END GO BUTTON ---> 3102 3103 <div> 3104 </script>
3104 3105
3105<script type="text/template" class="pagination-filter-buttons"> 3106 <button class="btn btn-default directory-search-btn btn-lg directory-filter <%-all_filtered%>" data-value="all">All</button> 3107 <button class="btn btn-default directory-search-btn btn-lg directory-filter <%-people_filtered%>" data-value="user"><%- _.string.capitalize(ss.config.TERMS.singular_individual) %></button> 3108 <button class="btn btn-default directory-search-btn btn-lg directory-filter <%-company_filtered%>" data-value="company"><%- _.string.capitalize(ss.config.TERMS.singular_company) %></button> 3109 </script>
3109 3110
3110<script type="text/template" class="pagination-sort-buttons"> 3111 <button class="btn btn-default btn-lg directory-search-btn alpha_filter <%-alpha_filtered%>" data-value="">A-Z</button> 3112 <button class="btn btn-default btn-lg directory-search-btn recent_filter <%-recent_filtered%>" data-value="recent">Recent</button> 3113 </script>
3113 3114
3114<script type="text/template" class="pagination-count-selector"> 3115 <div class="btn-toolbar"> 3116 <div class="input-group input-group-sm"> 3117 <span class="input-group-addon">Results per page</span> 3118 <select class="form-control num_per_page"> 3119 <% _.each(list_options, function(value){ 3120 var selected = ''; 3121 if (value === num_per_list) { 3122 selected = 'selected'; 3123 } 3124 %> 3125 <option value="<%-value%>" <%=selected%>><%-value%></option> 3126 <% }); %> 3127 </select> 3128 </div> 3129 </div> 3130 </script>
3130 3131 </div> 3132 3133 3134 3135 3136 <div class="custom-content-creator-templates"> 3137 3138
3138<script type="text/template" id="custom-content-creator"> 3139 <div class="custom-content-creator"> 3140 <h3><%- title %> 3141 <i 3142 class="popover_link fas fa-question-circle" 3143 role="button" 3144 data-toggle="popover" 3145 data-trigger="focus" 3146 title="<%- popovertitle %>" 3147 data-content="<%- popovertext %>" 3148 > 3149 </i> 3150 </h3> 3151 <div class="row"> 3152 <div class="col-sm-3 col-md-4"> 3153 <ul class="list-group custom-content-list"> 3154 3155 </ul> 3156 <a href="javascript:void(0)" class="btn btn-primary btn-lg btn-block add-custom-content">Add a <%- item_type %></a> 3157 </div> 3158 <div class="col-sm-9 col-md-8"> 3159 <div class="custom-content-editor"> 3160 3161 </div> 3162 </div> 3163 </div> 3164 <div class="feedback alert"> 3165 </div> 3166 </div> 3167 </script>
3167 3168
3168<script type="text/template" id="custom-content-list-item"> 3169 <li class="list-group-item custom-content-li" data-id="<%-id%>"> 3170 <div class="move-target" data-id="<%-id%>"> 3171 </div> 3172 <%-name%> 3173 </li> 3174 </script>
3174 3175
3175<script type="text/template" id="custom-content-edit-panel"> 3176 <div class="form-group"> 3177 <input type="text" class="custom-content-name form-control" name="name" value="<%-name || ''%>" placeholder="Content Title"> 3178 </div> 3179 <div class="form-group custom-content"> 3180 <label><%- item_type %> Content</label> 3181 <div class="hidden_ckeditor_input" name="content" style="display:none"><%=content%></div> 3182 </div> 3183 <div class="clearfix"> 3184 <a href="javascript:void(0)" class="pull-left save-custom-content btn btn-success" data-id="<%-id%>" >Save</a> 3185 <a href="javascript:void(0)" class="pull-left cancel-custom-content btn btn-warning" data-id="<%-id%>">Cancel</a> 3186 <% if (id) { %> 3187 <a href="javascript:void(0)" class="pull-right delete-custom-content btn btn-danger" data-id="<%-id%>">Delete</a> 3188 <% } %> 3189 </div> 3190 </script>
3190 3191 3192 </div> 3193 3194 <div class="ticket-templates"> 3195 3196
3196<script type="text/template" id="event_ticket_rows"> 3197 3198 <td class="name"> 3199 <input data-name="name" name="name_<%=random_token%>" class="required form-control" type="text" value="<%-name || ''%>" placeholder="Ticket name"> 3200 </td> 3201 <td class="quantity"> 3202 <input data-name="total_number_of_tickets" name="quantity_<%=random_token%>" class="not_negative form-control" type="text" value="<%=total_number_of_tickets || ''%>" placeholder="No Limit"> 3203 </td> 3204 <td class="price"> 3205 <div class="input-group"> 3206 <div class="input-group-addon"><%=currency_symbol%></div> 3207 <input name="price_<%=random_token%>" data-name="price" class="required numbers form-control" type="text" value="<%=price_to_display%>"> 3208 </div> 3209 </td> 3210 <td class="settings"> 3211 <a class="ticket_settings">Settings</a> 3212 </td> 3213 <td class="signup_form"> 3214 <a class="signup_form_js">Signup Form</a> 3215 </td> 3216 <td class="remove"> 3217 <span class="remove_list_row"><i class="fas fa-times"></i></span> 3218 </td> 3219 </script>
3219 3220
3220<script type="text/template" id="ticket_settings"> 3221 <div class="ticket_detail_dialog"> 3222 <form class="form-horizontal"> 3223 <div class="form-group"> 3224 <label class="control-label col-sm-4">Ticket Description:</label> 3225 <div class="col-sm-8"> 3226 <input name="ticket:description" type="text" class="description form-control" value="<%-description || ''%>"> 3227 </div> 3228 </div> 3229 <div class="form-group"> 3230 <label class="control-label col-sm-4"> 3231 Available to:  3232 <%= ss.fn.popover({ title: "Available To", 3233 content: "Limit the purchase of this ticket type to a certain membership category or designation. " + 3234 "If you are looking to make this ticket type available to people without an account, make sure to select 'Anyone' here " + 3235 "and then 'Allow Registration Without Account' on the main event edit page."}) %> 3236 </label> 3237 <div class="col-sm-8"> 3238 <select name="ticket:membership_requirement" class="membership_requirement form-control"> 3239 <% _.each(membership_options,function(value){ %> 3240 <option value="<%=value[0]%>" 3241 <% if(value[0] == membership_requirement){ %> 3242 selected 3243 <% } %> 3244 > <%=value[1]%> </option> 3245 <% }); %> 3246 </select> 3247 </div> 3248 </div> 3249 <div class="form-group user_type_options" 3250 <% 3251 if(membership_requirement == "other"){ 3252 %> 3253 style="display:block;" 3254 <% 3255 }else{ 3256 %> 3257 style="display:none;" 3258 <% 3259 } 3260 %> 3261 > 3262 <label class="control-label col-sm-4">Choose membership type: <br><i style="color: #B8B8B8;">Hold ctrl on PC or command on Mac to select/deselect multiple items</i></label> 3263 <div class="col-sm-8"> 3264 <select name="ticket:user_type_requirement" id="user_type_options" class="form-control" size="10" multiple="multiple"> 3265 <% 3266 _.each(user_type_options,function(value){ 3267 %> 3268 <option value="<%=value[0]%>" 3269 <% 3270 if(user_type_requirement != null){ 3271 if(typeof(user_type_requirement) == "string" && user_type_requirement == value[0] || typeof(user_type_requirement) == "object" && _.indexOf(user_type_requirement,value[0]) >= 0){ 3272 %> 3273 selected 3274 <% 3275 } 3276 } 3277 %> 3278 ><% if(value[1] == "Group Admin"){%>Organization Admin<%}else{%><%=value[1]%><%}%></option> 3279 <% 3280 }); 3281 %> 3282 </select> 3283 </div> 3284 <label class="control-label col-sm-4"> 3285 Display Ticket:
3286 <%= ss.fn.popover({ title: "Display Ticket", 3287 content: "Show membership type ticket to users either without a membership or plans other than ones selected. " + 3288 "They will not be able to purchase without the proper membership type."}) %> 3289 </label> 3290 <div class="col-sm-8 form-inline"> 3291 <input type="checkbox" value name="ticket:show_user_type_ticket" class="form-control" <%= show_user_type_ticket ? 'checked' : ''%>> 3292 </div> 3293 </div> 3294 <div class="form-group"> 3295 <label class="control-label col-sm-4"> 3296 Sale Start:  3297 <div class="pull-right"> 3298 <a class="popover_link" 3299 role="button" 3300 data-toggle="popover" 3301 data-trigger="focus" 3302 data-title="Sale Start" 3303 data-content="<p>Based on the time zone for your event, ticket sales will begin at 12:00 AM on the start date chosen and end at 11:59 PM on the day chosen to end sales.</p>"> 3304 <i class="fas fa-question-circle"></i> 3305 </a> 3306 </div> 3307 </label> 3308 <% 3309 var start_date; 3310 var date_to_display = ''; 3311 3312 if(registration_start_date){ 3313 start_date = new Date(registration_start_date); 3314 date_to_display = ss_format_date(start_date); 3315 } 3316 3317 %> 3318 <div class="col-sm-8"> 3319 <input name="ticket:registration_start_date" type="text" class="start_date date date_input form-control" value="<%=date_to_display%>" placeholder="Start Date"> 3320 <%/*%> 3321 <select name="ticket:registration_start_time" class="start_time" <%if(!registration_start_time){%>style="display:none;"<%}%>> 3322 <%*/%> 3323 <select name="ticket:registration_start_time" class="start_time" style="display:none;"> 3324 3325 <% _.each(time_options, function(time){ %> 3326 <option value="<%=time%>" 3327 <% if(registration_start_time == time){ %> 3328 selected 3329 <% } %> 3330 ><%=time%></option> 3331 <% }); %> 3332 </select> 3333 </div> 3334 </div> 3335 <div class="form-group"> 3336 <label class="control-label col-sm-4">Sale End:</label> 3337 <div class="col-sm-8"> 3338 <% 3339 var end_date; 3340 var date_to_display = ''; 3341 3342 if(registration_end_date){ 3343 end_date = new Date(registration_end_date); 3344 date_to_display = ss_format_date(end_date); 3345 } 3346 %> 3347 <input name="ticket:registration_end_date" type="text" class="end_date date date_input end_date_validation form-control" value="<%=date_to_display%>" placeholder="End Date"> 3348 <%/*%> 3349 <select name="ticket:registration_end_time" id="end_time" <%if(!registration_end_time){%>style="display:none;"<%}%>> 3350 <%*/%> 3351 <select name="ticket:registration_end_time" id="end_time" style="display:none;"> 3352 <% _.each(time_options, function(time){ %> 3353 <option value="<%=time%>" 3354 <% if(registration_end_time == time){ %> 3355 selected 3356 <% } %> 3357 ><%=time%></option> 3358 <% }); %> 3359 </select> 3360 </div> 3361 </div> 3362 <div class="form-group"> 3363 <label class="control-label col-sm-4">Max Number of Tickets / Person:</label> 3364 <div class="col-sm-8 form-inline"> 3365 <input name="ticket:max_num_of_tickets_per_user" class="max_per_order form-control" 3366 value="<%= has_max_num_of_tickets_per_user ? max_num_of_tickets_per_user : ''%>" placeholder="No Limit" > 3367 </div> 3368 3369 </div> 3370 <% if (use_gl_codes) { %> 3371 <div class="form-group"> 3372 <label class="control-label col-sm-4">General Ledger Code:</label> 3373 <div class="col-sm-8"> 3374 <input name="ticket:gl_code" type="text" class="form-control" value="<%=gl_code%>" /> 3375 </div> 3376 </div> 3377 <% } %> 3378 <div> 3379 <label class="control-label col-sm-4">Coupons:</label> 3380 <div class="inline_field_block col-sm-8"> 3381 <ul class="coupons"> </ul> 3382 <div class="field_displayed_data"> 3383 <a href="#" class="add-coupon-js">Add Coupon</a> 3384 </div> 3385 </div> 3386 </div> 3387 </form> 3388 </div> 3389 </script>
3389 3390 3391
3391<script type="text/template" id="coupon_row"> 3392 <!-- validation only works if fields have unique names--> 3393 <li class="clearfix"> 3394 <div class="col-xs-12 form-horizontal"> 3395 <div class="form-group"> 3396 <div class="form-inline"> 3397 <input class="required code-js form-control" type="text" placeholder="code" name="coupon_code_<%-(new Date()).getTime()%>" value="<%=code%>"> 3398 <button class="btn btn-danger remove_list_row">x</button> 3399 </div> 3400 </div> 3401 <div class="form-group"> 3402 <div class="form-inline"> 3403 <input name="coupon_discount_amount_<%-(new Date()).getTime()%>" placeholder="discount" type="number" min="0" <%if(discount_type==ss.config.CONSTANTS.PERCENT_DISCOUNT){%>max="100"<%}%> class="form-control coupon-discount required discount-js" value="<%=discount%>" /> 3404 <div class="btn-group discount_type_buttons" role="group"> 3405 <button type="button" class="btn discount_type_percent <% if(discount_type==ss.config.CONSTANTS.PERCENT_DISCOUNT){%>active btn-primary<%}%>">%</button> 3406 <button type="button" class="btn discount_type_dollar <% if(discount_type==ss.config.CONSTANTS.DOLLAR_DISCOUNT){%>active btn-primary<%}%>"><%= SS.app.current_network.currency_symbol %></button> 3407 </div> 3408 <input id="coupon_discount_type" name="coupon_discount_type_<%-(new Date()).getTime()%>" value="<%=discount_type%>" type="hidden" readonly class="input-group-addon discount_type-js" /> 3409 </div> 3410 </div> 3411 </div> 3412 </li> 3413 </script>
3413 3414 3415
3415<script type="text/template" id="signup_form"> 3416 <div class="ticket_signup_form ticket_detail_dialog label_beside"> 3417 <form class="form-horizontal"> 3418 <% 3419 var signup_form_fields = [['name','Name'],['email','Email Address'],['company','Company Name'],['phone','Phone Number'],['address','Address'],['company_detailed','Detailed Company Information']]; 3420 _.each(signup_form_fields, function(value) { 3421 %> 3422 <div class="form-group"> 3423 <label class="control-label col-sm-4"> 3424 <%=value[1]%>: 3425 <% if (value[0] === 'company_detailed') { %> 3426 <%= ss.fn.popover({title: "Detailed Company Information", 3427 content: "When checked, users will be required to enter their company information in order to purchase tickets. " + 3428 "This info will then be used as the address info on the invoice for any such tickets. " + 3429 "Furthermore, the info entered will populate the Work Address fields for any new contacts created " + 3430 "as a result of purchasing tickets. This info will not be used to automatically create a company " + 3431 "or to link a user to an existing company. " + 3432 "Do not use this option in conjunction with the 'Company Name' field option above."})%> 3433 <% } else if (value[0] === "email") { %>
3434 <%= ss.fn.popover({title: "Email Address", 3435 content: "All event attendees are recorded in your database using the email address entered on their event ticket." })%> 3436 <% } %> 3437 </label> 3438 <div class="col-sm-8"> 3439 <% if (value[0] === "name" || value[0] === "email") { %> 3440 3441 <input type="checkbox" value name="ticket:signup_form:<%=value[0]%>" class="mr-1i" disabled checked> 3442 3443 <% } else { %> 3444 3445 <input type="checkbox" value name="ticket:signup_form:<%=value[0]%>" class="mr-li<% if (value[0] === "company_detailed") { %> company_name_conflict<% } %>" 3446 3447 <% if (_.indexOf(signup_form,value[0]) !== -1) { %> 3448 checked 3449 <% } else if (value[0] === "company_detailed" && SS.app.current_network.detailed_attendee_company_info_checked && _.indexOf(signup_form,value[0]) !== -1) { %> 3450 checked 3451 <% } %> 3452 > 3453 <% } %> 3454 </div> 3455 </div> 3456 <% 3457 }); 3458 %> 3459 <hr> 3460 <ul class="ticket_custom_fields sortable-items"> 3461 3462 </ul> 3463 <a class="btn btn-success add_field">Add a Custom Field</a> 3464 </form> 3465 </div> 3466 </script>
3466 3467 3468
3468<script type="text/template" class="ticket-custom-field"> 3469 <li class="form-group custom_field"> 3470 <input class="key input_box" type="hidden" name="key" value="<%=key%>"> 3471 <input class="index" type="hidden" name="index" value="<%=key%>"> 3472 <div class="input-group"> 3473 <select class="custom_field_selection form-control validation_no_duplicate_field" 3474 name="field_info_id_<%=key%>"> 3475 <% _.each(ss_context.ticket_custom_fields,function(value){ %> 3476 <option value="<%=value[0]%>" 3477 <% if(field_info_id == value[0]){ %> 3478 selected 3479 <% } %> 3480 ><%=value[1]%></option> 3481 <% }); %> 3482 </select> 3483 <span class="input-group-btn"> 3484 <button class="btn btn-danger remove_list_row" type="button">×</button> 3485 </span> 3486 </div> 3487 </li> 3488 </script>
3488 3489 3490
3490<script type="text/template" id="event_reminder_row"> 3491 <div class=""> 3492 <input class="input_box to_delete" type="hidden" name="day_list[<%=key%>].to_delete" value="<%=to_delete%>"> 3493 <% 3494 if(is_before == 'day_of'){ 3495 %> 3496 <input class="input_box reminder_number required form-control " type="text" name="day_list[<%=key%>].number" value="<%=number || ''%>" style="display:none;" disabled> 3497 <input class="input_box reminder_time_unit" type="hidden" name="day_list[<%=key%>].time_unit" value="days" disabled> 3498 <span class="time_until_js" style="display:none;">Days</span> 3499 <%}else{%> 3500 <input class="input_box reminder_number required form-control " type="text" name="day_list[<%=key%>].number" value="<%=number || ''%>"> 3501 <input class="input_box reminder_time_unit" type="hidden" name="day_list[<%=key%>].time_unit" value="days"> 3502 <span class="time_until_js">Days</span> 3503 <%}%> 3504 <select class="form-control is_before_selection" name="day_list[<%=key%>].is_before"> 3505 <option value="before" <%if(is_before == 'before'){%>selected<%}%>>Before</option> 3506 <option value="day_of" <%if(is_before == 'day_of'){%>selected<%}%>>Day of</option> 3507 </select> 3508 3509 3510 <span class="remove_list_row" title="Removes the field">×</span> 3511 </div> 3512 </script>
3512 3513 3514
3514<script type="text/template" id="custom_field_list"> 3515 <div> 3516 3517 <ul class="custom_fields"></ul> 3518 <a class="button success add_field">Add a Custom Field</a> 3519 </div> 3520 </script>
3520 3521
3521<script type="text/template" id="custom_field_selection"> 3522 <div class="form-group field custom_field"> 3523 <label>Custom Field:</label> 3524 <div class="input-group"> 3525 <select class="custom_field_selection form-control validation_no_duplicate_field"> 3526 <% _.each(ss_context.ticket_custom_fields,function(field_info){ %> 3527 <option value="<%=field_info[0]%>" 3528 <% if(field_info_id == field_info[0]){ %> 3529 selected 3530 <% } %> 3531 ><%=field_info[1]%></option> 3532 <% }); %> 3533 </select> 3534 <span class="input-group-btn"> 3535 <button class="btn btn-danger remove_list_row" type="button">×</button> 3536 </span> 3537 </div> 3538 3539 </div> 3540 3541 3542 </script>
3542 3543 3544 </div> 3545 3546 3547 3548
3548<script type="text/template" id="search_widget_edit_row"> 3549 <div class="clearfix"> 3550 <div class="btn-group pull-right"> 3551 <a class="btn btn-sm btn-danger remove_row_js">Delete Row <i class="fas fa-times-circle"></i></a> 3552 <a class="add_field_js btn-sm btn btn-default">Add Field <i class="fas fa-plus-circle"></i></a> 3553 </div> 3554 </div> 3555 <div class="mt1 field row_field"> 3556 <input type="hidden" name ="<%=field_prefix%>.index" class="index_input" value=> 3557 <input type="hidden" name ="<%=field_prefix%>.key" value="<%=key%>"> 3558 <select name="<%=field_prefix%>.value" class="form-control mb1 search_option_js"> 3559 <% _.each(search_target_options,function(target_option){ %> 3560 <option value="<%=target_option[0]%>" <%= target_option[0] == value && value ? 'selected' : ''%>> 3561 <%=target_option[1]%> </option> 3562 <% }); %> 3563 </select> 3564 </div> 3565 </script>
3565 3566 3567
3567<script type="text/template" id="search_widget_field"> 3568 3569 <div class="field field_element"> 3570 <input type="hidden" name = "<%=field_prefix%>.index" class="index_input" value=<%=index%>> 3571 <input type="hidden" name ="<%=field_prefix%>.key" value="<%=key%>"> 3572 <input type="hidden" name ="<%=field_prefix%>.deletable" value="<%= deletable ? 'true' : ''%>"> 3573 <input class="required_input" type="hidden" name ="<%=field_prefix%>.required" value="<%= required ? 'true' : ''%>"> 3574 <input class="no_empty_input" type="hidden" name ="<%=field_prefix%>.no_empty_option" value="<%= no_empty_option ? 'true' : ''%>"> 3575 <input class="hidden_options_input" type="hidden" name ="<%=field_prefix%>.hidden_options" value="<%=hidden_options%>"> 3576 3577 <% if(field_id == 'keyword'){ %> 3578 <input type="hidden" name ="<%=field_prefix%>.field_id" value="keyword"> 3579 <% } %> 3580 3581 <div class="input-group"> 3582 <select name="<%=field_prefix%>.field_id" class="form-control search_field_js" <%= field_id === 'keyword' ? 'disabled' : ''%>> 3583 3584 <% _.each(field_option_groups, function(option_group){ %> 3585 3586 <optgroup label="<%-option_group.label%>"> 3587 3588 <% _.each(option_group.options, function(target_option){ %> 3589 <% 3590 var value = target_option[0]; 3591 %> 3592 3593 <option value="<%=value%>" <%= target_option[0] === field_id ? 'selected' : ''%>> 3594 <%=target_option[1]%> 3595 </option> 3596 3597 <% }); %> 3598 3599 </optgroup> 3600 3601 <% }); %> 3602 3603 </select> 3604 <span class="input-group-btn"> 3605 <% if(deletable){ %> 3606 <a class="remove_field_js btn btn-danger"><i class="fas fa-times-circle"></i> Delete</a> 3607 <% } %> 3608 <a href="" class='edit_js btn btn-info'><i class="fas fa-pencil"></i> Edit</a> 3609 </span> 3610 </div> 3611 </div> 3612 </script>
3612 3613 3614 3615 3616 3617
3617<script type="text/template" id="non_loggedin_contact_message"> 3618 <form> 3619 3620 <div class="form-group"> 3621 <label>Email: <i class="required_marker"></i></label> 3622 <input type="text" class="reply_email form-control required email" name="reply_email" value=""> 3623 </div> 3624 <div class="form-group"> 3625 <label>First Name: <i class="required_marker"></i></label> 3626 <input type="text" class="first_name form-control required" name="first_name" value=""> 3627 </div> 3628 <div class="form-group"> 3629 <label>Last Name: <i class="required_marker"></i></label> 3630 <input type="text" class="last_name form-control required" name="last_name" value=""> 3631 </div> 3632 <div class="form-group"> 3633 <label>Subject: <i class="required_marker"></i></label> 3634 <input type="text" class="message_subject form-control required" name="message_subject" value="<%=subject%>"> 3635 </div> 3636 <div class="form-group"> 3637 <label>Message: <i class="required_marker"></i></label> 3638 <textarea class="message_body required form-control" name="message_body"></textarea> 3639 </div> 3640 3641 3642 3643 </form> 3644 </script>
3644 3645 3646 3647 3648 3649
3649<script type="text/template" id="company_member_listing"> 3650 <div class="row"> 3651 <div class="col-lg-4 col-md-5 col-sm-6"> 3652 <% if ( at_plan_cap ) { %> 3653 <div class="at_plan_cap_limit_reached alert alert-warning">You are at your <%- ss.config.TERMS.singular_company %>'s plan's capacity, please contact your association administrator to increase the number of <%- ss.config.TERMS.plural_employee.toLowerCase() %> available for your current plan.</div> 3654 <% } %> 3655 3656 <h2 class="active_employees_title_js">Active <%- ss.config.TERMS.plural_employee %></h2> 3657 <span class="add_employee_help"></span> 3658 <ul class="active_employees list-group"> 3659 </ul> 3660 <div> 3661 <button type="button" class="btn btn-primary btn-lg add_member_js" <%- at_plan_cap && !SS.app.current_user.network_admin ? 'disabled' : '' %> >Add <%- ss.config.TERMS.singular_employee %></button> 3662 </div> 3663 <br> 3664 <h2 class="pending_employees_title_js">Pending <%- ss.config.TERMS.plural_employee %></h2> 3665 <ul class="pending_employees list-group"> 3666 </ul> 3667 </div> 3668 </div> 3669 </script>
3669 3670 3671
3671<script type="text/template" id="active_company_member_view"> 3672 <div class="row"> 3673 <div class="image_div col-xs-3"> 3674 <% if ( image_url ) {%> 3675 <img width="60" height="60" src="<%-image_url%>"> 3676 <% } else { %> 3677 3678 <% } %> 3679 </div> 3680 <div class="member_details col-xs-9"> 3681 <div> 3682 <div class="member_name"><a href="/profiles/<%-id%>"><%-name%></a></div> 3683 <div class="member_actions"> 3684 <a class="member_action_delete_js"><i class="fas fa-trash-can"></i></a> 3685 </div> 3686 </div> 3687 <div class="member_title"> 3688 <label> 3689 <input type="text" placeholder="Title" class="title_js" value="<%-title || ''%>"> 3690 </label> 3691 </div> 3692 <ul class="member_type"> 3693 <li> 3694 <label> 3695 <input type="radio" name="primary_contact" class="primary_contact_js" 3696 <%-primary_contact ? 'checked' : ''%>> 3697 <span> 3698 Contact Person 3699 <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="Contact Person" 3700 data-content="The Primary Contact is the person whose contact info will appear on your <%- ss.config.TERMS.singular_company %>'s profile." 3701 data-original-title="Primary Contact"> 3702 <i class="fas fa-question-circle icon-question-sign"></i> 3703 </a> 3704 </span> 3705 </label> 3706 <li> 3707 <% 3708 var account_holder_only_plan = company_plan_for == 'account_holder_only'; 3709 var account_holder_disabled = account_holder_only_plan && !is_network_admin; 3710 %> 3711 <label> 3712 <input type="radio" name="account_holder" class="account_holder_js" 3713 <%-account_holder ? ' checked ' : ''%> 3714 <%-account_holder_disabled ? ' disabled ' : ''%>> 3715 <span> 3716 Billing Person 3717 <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="Billing Person" 3718 data-content="The Billing Person will receive confirmation emails and expiry reminders for your <%- ss.config.TERMS.singular_company %>'s membership, 3719 and is the person who can purchase or renew memberships on behalf of the <%- ss.config.TERMS.singular_company %>. To access the full range of billing 3720 functionality, please ensure that this member has a valid email address." 3721 data-original-title="Billing Person"> 3722 <i class="fas fa-question-circle icon-question-sign"></i> 3723 </a> 3724 </span> 3725 </label> 3726 <li> 3727 <label> 3728 <input type="checkbox" class="company_admin_js" <%-admin ? 'checked' : ''%> 3729 <%-account_holder && admin && !is_network_admin ? 'disabled' : ''%>> 3730 <% capitalized_company_type = _.string.titleize(ss.config.TERMS.singular_company) %>
3731 <span><%- capitalized_company_type %> Admin</span> 3732 <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="<%- capitalized_company_type %> Admin" 3733 data-content="<%- capitalized_company_type %> Admins can edit the <%- capitalized_company_type %> profile and access its settings. There can be multiple <%- capitalized_company_type %> Admins, they can add other employees and they will receive communications regarding their <%- capitalized_company_type %>." 3734 data-original-title="<%- ss.config.TERMS.singular_company %> Admin"> 3735 <i class="fas fa-question-circle icon-question-sign"></i> 3736 </a> 3737 </label> 3738 </ul> 3739 <% if (ss.config.FEATURES.company_employee_sorting) { %> 3740 <div class="member_sort"> 3741 <label> 3742 <input type="text" placeholder="Sort Index" class="sort_js" value="<%-sort_index || ''%>"> 3743 </label> 3744 </div> 3745 <% } %> 3746 </div> 3747 </div> 3748 <% if (account_holder && account_holder_only_plan) { %> 3749 <div class="alert alert-warning"> 3750 <i class="fas fa-exclamation-triangle pr1"></i><strong>Billing Person Only Plan</strong> 3751 <br/><br/> 3752 <div> 3753 This <%- ss.config.TERMS.singular_company %> holds a Billing Person Only Membership Plan. 3754 Only the billing person has access to the benefits of the <%- ss.config.TERMS.singular_company %>'s membership plan. 3755 Therefore, only network admins may change who the billing person is for this <%- ss.config.TERMS.singular_company %>. 3756 </div> 3757 </div> 3758 <% } %> 3759 </script>
3759 3760
3760<script type="text/template" id="pending_company_member_view"> 3761 <div class="row"> 3762 <div class="image_div col-xs-3"> 3763 <% if ( image_url ) {%> 3764 <img width="60" height="60" src="<%-image_url%>"> 3765 <% } else { %> 3766 3767 <% } %> 3768 </div> 3769 <div class="member_details col-xs-9"> 3770 <div class="member_name"><a href="/profiles/<%-id%>"><%-name%></a></div> 3771 <div class="member_email"><%-email%></div> 3772 <button type="button" class="btn btn-danger member_action_reject_js">Decline</button> 3773 <button type="button" class="btn btn-success member_action_approve_js" <%- at_plan_cap ? 'disabled' : '' %> >Approve</button> 3774 </div> 3775 <div class="member_actions"> 3776 </div> 3777 </div> 3778 </script>
3778 3779 3780
3780<script type="text/template" id="add_member_view"> 3781 <form class="new_member_form_js form-horizontal"> 3782 <div class="form-group"> 3783 <label class="control-label col-md-3">Email: <span style="color:red">*</span></label> 3784 <div class="col-md-9"> 3785 <input type="text" class="form-control email <%- ss.config.FEATURES.company_admin_invite_existing_members ? '' : 'user_id_update_available' %> required" name="email"> 3786 </div> 3787 </div> 3788 <div class="form-group"> 3789 <label class="control-label col-md-3">First Name: <span style="color:red">*</span></label> 3790 <div class="col-md-9"> 3791 <input type="text" class="form-control required" name="first_name"> 3792 </div> 3793 </div> 3794 <div class="form-group"> 3795 <label class="control-label col-md-3">Last Name: <span style="color:red">*</span></label> 3796 <div class="col-md-9"> 3797 <input type="text" class="form-control required" name="last_name"> 3798 </div> 3799 </div> 3800 <hr> 3801 <div class="form-group"> 3802 <label class="control-label col-md-3 col-xs-6 "><%= _.string.titleize(ss.config.TERMS.singular_company) %> Admin?</label> 3803 <div class="col-md-9 col-xs-6"> 3804 <input type="checkbox" name="admin" value="true"> 3805 </div> 3806 </div> 3807 </form> 3808 </script>
3808 3809 3810
3810<script type="text/template" id="cancel_company_plan_popup"> 3811 <form> 3812 <div class="alert alert-warning"> 3813 <strong>Expiring a membership plan</strong> does not refund the fees 3814 the person has already paid. 3815 </div> 3816 <div> 3817 <input type="radio" name="cancel_member" value="" checked="True"> 3818 <strong>Expire this Member.</strong> This member's expiry date will be set to today, but will still be sent renewal reminders and/or invoices. 3819 <br> 3820 <input type="radio" name="cancel_member" value="True"> 3821 <strong>Cancel this Member.</strong> 3822 Cancelled members will not be sent renewal reminders or invoices. 3823 </div> 3824 </form> 3825 </script>
3825 3826 3827
3827<script type="text/template" id="uncancel_company_popup"> 3828 <form> 3829 Cancelled members will not be sent renewal reminders or invoices. 3830 </form> 3831 </script>
3831 3832 3833 3834
3834<script type="text/template" id="cancel_company_popup"> 3835 <form> 3836 Cancelled members will not be sent renewal reminders and/or invoices. 3837 </form> 3838 </script>
3838 3839 3840
3840<script type="text/template" id="cancel_company_offer_popup"> 3841 <form class=""> 3842 <div class="alert alert-warning"> 3843 Deleting this offer won't change any existing plans this <%- ss.config.TERMS.singular_company %> has signed up for and will allow the <%- ss.config.TERMS.singular_company %> to sign up for any standard plans that match their <%- ss.config.TERMS.singular_company %> type. 3844 </div> 3845 </form> 3846 </script>
3846 3847 3848
3848<script type="text/template" id="category_row"> 3849 3850 <input type="hidden" class="to_delete" name="company:company_categories[<%=key%>].to_delete" value="<%=to_delete%>"> 3851 <div class="form-inline"> 3852 <div class="field parent_category_div form-group"> 3853 <span class="select_option"> 3854 <select name='company:company_categories[<%=key%>].parent_category_id' class='form-control parent_category_js'> 3855 3856 <% 3857 if(parent_options.length == 0){ 3858 %> 3859 <option value=''>Other</option> 3860 <% 3861 }else{ 3862 _.each(parent_options,function(value){ 3863 %> 3864 <option value="<%=value[0]%>" <%if(parent_category_id == value[0]){%>selected<%}%> ><%=value[1]%></options> 3865 <% 3866 }); 3867 3868 } 3869 %> 3870 3871 </select> 3872 </span> 3873 </div> 3874 3875 <% 3876 if(!parent_options.length == 0 && !sub_options.length == 0){ 3877 %> 3878 <div class="field sub_category_div form-group"> 3879 <span class="select_option"> 3880 3881 <select class="form-control" name='company:company_categories[<%=key%>].sub_category_id'> 3882 <% 3883 _.each(sub_options,function(value){ 3884 %> 3885 <option value="<%=value[0]%>" <%if(sub_category_id == value[0]){%>selected<%}%> ><%=value[1]%></options> 3886 <% 3887 }); 3888 %> 3889 </select> 3890 3891 </span> 3892 </div> 3893 <% 3894 } 3895 %> 3896 <span class="remove_row"><i class="fas fa-remove red"></i></span> 3897 </div> 3898 </script>
3898 3899 3900
3900<script type="text/template" id="company_selection"> 3901 <div class='field'> 3902 <label>Choose a <%- ss.config.TERMS.singular_company %>:</label> 3903 <input type='text' class='company_edit_autocomplete'> 3904 <div class='company_address'> 3905 </div> 3906 </div> 3907 </script>
3907 3908 3909
3909<script type="text/template" id="company_address"> 3910 <% 3911 if(address){ 3912 %> 3913 <h4><%- ss.config.TERMS.singular_company %> Address</h4> 3914 <div class="alert alert-info company_address_info"> 3915 <span><%=address%> 3916 <% 3917 if(!popup_version){ 3918 %> 3919 <a class='choose_company'><img src="/res/img/v2/icons/gear_16.png"></a> 3920 <% 3921 } 3922 %> 3923 </span> 3924 </div> 3925 <% 3926 }else{ 3927 %> 3928 <h4>Error:</h4> 3929 <div class="alert alert-error company_address_info"> 3930 <span>The selected <%- ss.config.TERMS.singular_company %> does not have an address. </span> 3931 <span>Please <a href="<%=url%>/edit" target="_blank">edit the <%- ss.config.TERMS.singular_company %></a> or Choose another one.</span> 3932 </div> 3933 <% 3934 } 3935 %> 3936 </script>
3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 <div class="team-page-templates"> 3946
3946<script type="text/template" class="team-page-base-template"> 3947 <div class="team editing-team relative"> 3948 <div class="center mb3"> 3949 <button class="btn btn-success add-team-member">Add <%- page_title %> Member</button> 3950 <a href="./" class="btn btn-default">View <%- page_title %> Page</a> 3951 <span class="category-dropdown"></spam> 3952 </div> 3953 <div class="team-members row relative"></div> 3954 <div class="row mt3"> 3955 <% if (show_cats) { %> 3956 3957 <div class="col-sm-6 col-md-4 col-md-offset-1"> 3958 <h2 class="center mb2"> 3959 Edit Team Categories 3960 <a tabindex="0" class="popover_link" role="button" data-toggle="popover" title="Team Categories" 3961 data-content="A team category lets you separate team members into different groups and display them on separate pages. A team member can belong to anywhere from zero to infinite categories, and they'll show up on each category's page."> 3962 <span class="fas fa-question-circle icon-question-sign" aria-hidden="true"></span><span class="sr-only">Help</span> 3963 </a> 3964 </h2> 3965 <div class="categories-target"></div> 3966 </div> 3967 <div class="col-sm-6 col-md-4 col-md-offset-2"> 3968 3969 <% } else { %> 3970 3971 <div class="col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4"> 3972 3973 <% } %> 3974 <div class="team-members-ordering"> 3975 </div> 3976 3977 </div> 3978 </div> 3979 </script>
3979 3980 3981
3981<script type="text/template" class="category-dropdown-template"> 3982 <div class="btn-group"> 3983 <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 3984 Other Categories <span class="caret"></span> 3985 </button> 3986 <ul class="dropdown-menu"> 3987 <li><a href="/team/edit">All Team Members</a></li> 3988 <li role="separator" class="divider"></li> 3989 <% _.each(categories, function(category){ %> 3990 <li><a href="/team/<%- category.get('permaid') %>/edit"><%- category.get('name') %></a></li> 3991 <% }); %> 3992 </ul> 3993 </div> 3994 </script>
3994 3995 3996
3996<script type="text/template" class="team-member-order-section"> 3997 <h2 class="center mb2">Order Team Members</h2> 3998 <ul class="list-group team-member-order relative"> 3999 </ul> 4000 </script>
4000 4001 4002
4002<script type="text/template" class="team-member-list-item"> 4003 <li class="list-group-item team-member-li move" data-id="<%- id %>"> 4004 <i class="fas fa-arrows"></i> <%- name %> 4005 </li> 4006 </script>
4006 4007 4008
4008<script type="text/template" class="team-member"> 4009 <div class="col-md-3 col-sm-4" data-id="<%- id %>"> 4010 <div class="team-member relative"> 4011 <div class="team-member-photo <%- image_url && image2_url ? 'has-two-photos' : '' %>"> 4012 <% if (image_url) { %> 4013 <img src="<%- image_url %>" class="img-responsive center-block primary-photo" alt="<%- name %>; <%- job_title %>" /> 4014 <% } %> 4015 <% if (image2_url) { %> 4016 <img src="<%- image2_url %>" class="img-responsive center-block secondary-photo" style="display:none" alt="<%- name %>; <%- job_title %>" /> 4017 <% } %> 4018 </div> 4019 <div class="team-member-name"> 4020 <h4><%- name %></h4> 4021 </div> 4022 <div class="team-member-position"> 4023 <%- job_title %> 4024 </div> 4025 <% if (extra_field_1) { %> 4026 <div class="team-member-extra"> 4027 <%= extra_field_1 %> 4028 </div> 4029 <% } %> 4030 <% if (extra_field_2) { %> 4031 <div class="team-member-extra"> 4032 <%= extra_field_2 %> 4033 </div> 4034 <% } %> 4035 <% if (extra_field_3) { %> 4036 <div class="team-member-extra"> 4037 <%= extra_field_3 %> 4038 </div> 4039 <% } %> 4040 <% if (extra_field_4) { %> 4041 <div class="team-member-extra"> 4042 <%= extra_field_4 %> 4043 </div> 4044 <% } %> 4045 <% if (bio) { %> 4046 <div class="team-member-blurb"> 4047 <a data-toggle="modal" data-target="#<%- id %>">BIO</a> 4048 <div class="modal fade" id="<%- id %>"> 4049 <div class="modal-dialog"> 4050 <div class="modal-content"> 4051 <div class="modal-header"> 4052 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 4053 <h4 class="modal-title"><%- name %></h4> 4054 </div> 4055 <div class="modal-body"> 4056 <%= bio %> 4057 </div> 4058 <div class="modal-footer"> 4059 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 4060 </div> 4061 </div><!-- /.modal-content --> 4062 </div><!-- /.modal-dialog --> 4063 </div><!-- /.modal --> 4064 </div> 4065 <% } %> 4066 <div class="team-member-links"> 4067 <% if ( email_address ) { %> 4068 <a href="mailto:<%- email_address %>" class="team-member-email mb1"> 4069 <i class="fas fa-envelope"></i> 4070 </a> 4071 <% } %> 4072 <% if ( phone_number ) { %> 4073 <a href="javascript:void(0)" role="button" class="team-member-phone mb1" tabindex="0" data-toggle="popover-click" data-trigger="click" data-placement="auto" title="<%- name %>'s Phone Number" data-content="<%- phone_number %>"> 4074 <i class="fas fa-phone"></i> 4075 </a> 4076 <% } %>
4077 <% if ( website_url ) { %> 4078 <a href="<%- website_url %>" class="team-member-website mb1" target="_blank"> 4079 <i class="fas fa-desktop"></i> 4080 </a> 4081 <% } %> 4082 <% if ( facebook_url ) { %> 4083 <a href="<%- facebook_url %>" class="team-member-facebook mb1" target="_blank"> 4084 <i class="fab fa-facebook"></i> 4085 </a> 4086 <% } %> 4087 <% if ( twitter_url ) { %> 4088 <a href="<%- twitter_url %>" class="team-member-twitter mb1" target="_blank"> 4089 <i class="fab fa-x-twitter"></i> 4090 </a> 4091 <% } %> 4092 <% if ( linkedin_url ) { %> 4093 <a href="<%- linkedin_url %>" class="team-member-linkedin mb1" target="_blank"> 4094 <i class="fab fa-linkedin"></i> 4095 </a> 4096 <% } %> 4097 <% if ( instagram_url ) { %> 4098 <a href="<%- instagram_url %>" class="team-member-instagram mb1" target="_blank"> 4099 <i class="fab fa-instagram"></i> 4100 </a> 4101 <% } %> 4102 </div> 4103 <div class="absolute bottom0"> 4104 <div class="btn-group btn-group-justified" role="group"> 4105 <div class="btn-group" role="group"> 4106 <button class="btn btn-primary edit-team-member" data-id="<%- id %>">Edit</button> 4107 </div> 4108 <div class="btn-group" role="group"> 4109 <button class="btn btn-danger delete-team-member" data-id="<%- id %>">Delete</button> 4110 </div> 4111 </div> 4112 </div> 4113 </div> 4114 </div> 4115 </script>
4115 4116 4117
4117<script type="text/template" class="edit-team-member-panel-template"> 4118 <div> 4119 <div class="team-member-edit-panel"> 4120 </div> 4121 </div> 4122 </script>
4122 4123 4124
4124<script type="text/template" class="edit-team-member-template"> 4125 <div class="edit-team-member ht500 of-auto"> 4126 <form id="team_member"> 4127 <div class="row"> 4128 <div class="col-sm-6"> 4129 <div class="form-group"> 4130 <label for="team_member_name">Name</label> 4131 <input type="text" id="team_member_name" class="form-control required name" placeholder="Name" value="<%- team_member.get('name') %>" /> 4132 </div> 4133 </div> 4134 <div class="col-sm-6"> 4135 <div class="form-group"> 4136 <label for="team_member_title">Title</label> 4137 <input type="text" id="team_member_title" class="form-control job-title" placeholder="Title" value="<%- team_member.get('job_title') %>" /> 4138 </div> 4139 </div> 4140 </div> 4141 <div class="row"> 4142 <% if (extra_fields['extra_field_1_label'] || team_member.get('extra_field_1')) { %> 4143 <div class="col-sm-6"> 4144 <div class="form-group"> 4145 <label for="extra_field_1"><%= extra_fields['extra_field_1_label'] ? extra_fields['extra_field_1_label'] : 'Field 1' %></label> 4146 <input type="text" id="extra_field_1" class="form-control required extra-field-1" 4147 placeholder="<%= extra_fields['extra_field_1_label'] ? extra_fields['extra_field_1_label'] : 'Field 1' %>" 4148 value="<%- team_member.get('extra_field_1') %>"/> 4149 </div> 4150 </div> 4151 <% } %> 4152 <% if (extra_fields['extra_field_2_label'] || team_member.get('extra_field_2')) { %> 4153 <div class="col-sm-6"> 4154 <div class="form-group"> 4155 <label for="extra_field_2"><%= extra_fields['extra_field_2_label'] ? extra_fields['extra_field_2_label'] : 'Field 2' %></label> 4156 <input type="text" id="extra_field_2" class="form-control required extra-field-2" 4157 placeholder="<%= extra_fields['extra_field_2_label'] ? extra_fields['extra_field_2_label'] : 'Field 2' %>" 4158 value="<%- team_member.get('extra_field_2') %>"/> 4159 </div> 4160 </div> 4161 <% } %> 4162 <% if (extra_fields['extra_field_3_label'] || team_member.get('extra_field_3')) { %> 4163 <div class="col-sm-6"> 4164 <div class="form-group"> 4165 <label for="extra_field_3"><%= extra_fields['extra_field_3_label'] ? extra_fields['extra_field_3_label'] : 'Field 3' %></label> 4166 <input type="text" id="extra_field_3" class="form-control required extra-field-3" 4167 placeholder="<%= extra_fields['extra_field_3_label'] ? extra_fields['extra_field_3_label'] : 'Field 3' %>" 4168 value="<%- team_member.get('extra_field_3') %>"/> 4169 </div> 4170 </div> 4171 <% } %> 4172 <% if (extra_fields['extra_field_4_label'] || team_member.get('extra_field_4')) { %> 4173 <div class="col-sm-6"> 4174 <div class="form-group"> 4175 <label for="extra_field_4"><%= extra_fields['extra_field_4_label'] ? extra_fields['extra_field_4_label'] : 'Field 4' %></label> 4176 <input type="text" id="extra_field_4" class="form-control required extra-field-4" 4177 placeholder="<%= extra_fields['extra_field_4_label'] ? extra_fields['extra_field_4_label'] : 'Field 4' %>" 4178 value="<%- team_member.get('extra_field_4') %>"/> 4179 </div> 4180 </div> 4181 <% } %> 4182 </div> 4183 <div class="form-group row"> 4184 <div class="col-sm-6"> 4185 <label>Primary Image</label> 4186 <div class="primary-image"></div> 4187 </div> 4188 <div class="col-sm-6"> 4189 <label>Secondary Image <small>(appears on hover)</small></label> 4190 <div class="secondary-image"></div> 4191 </div> 4192 </div> 4193 <div class="form-group"> 4194 <label>Bio</label> 4195 <div class="ckeditor_input" name="bio" data-name="bio"><%=team_member.get('bio') || '' %></div> 4196 </div> 4197 <div class="row"> 4198 <div class="col-sm-6"> 4199 <div class="form-group"> 4200 <label for="team_member_email">Email Address</label> 4201 <input type="text" id="team_member_email" class="form-control email-address" placeholder="[email protected]" value="<%- team_member.get('email_address') %>" /> 4202 </div> 4203 </div> 4204 <div class="col-sm-6"> 4205 <div class="form-group"> 4206 <label for="team_member_phone">Phone Number</label> 4207 <input type="text" id="team_member_phone" class="form-control phone-number" placeholder="XXX-XXX-XXXX" value="<%- team_member.get('phone_number') %>" /> 4208 </div> 4209 </div> 4210 </div> 4211 <div class="row"> 4212 <div class="col-sm-6"> 4213 <div class="form-group"> 4214 <label for="team_member_website">Website</label> 4215 <input type="text" id="team_member_website" class="form-control website-url" placeholder="http://www.domain-name.com" value="<%- team_member.get('website_url') %>" /> 4216 </div> 4217 </div> 4218 <div class="col-sm-6"> 4219 <div class="form-group"> 4220 <label for="team_member_facebook">Facebook Page</label> 4221 <input type="text" id="team_member_facebook" class="form-control facebook-url" placeholder="http://www.facebook.com/yourname" value="<%- team_member.get('facebook_url') %>" /> 4222 </div> 4223 </div> 4224 </div> 4225 <div class="row"> 4226 <div class="col-sm-6"> 4227 <div class="form-group"> 4228 <label for="team_member_linkedin">LinkedIn Page</label> 4229 <input type="text" id="team_member_linkedin" class="form-control linkedin-url" placeholder="http://www.linkedin.com/yourname" value="<%- team_member.get('linkedin_url') %>" /> 4230 </div> 4231 </div> 4232 <div class="col-sm-6"> 4233 <div class="form-group"> 4234 <label for="team_member_twitter">X Page</label> 4235 <input type="text" id="team_member_twitter" class="form-control twitter-url" placeholder="http://www.twitter.com/yourname" value="<%- team_member.get('twitter_url') %>" /> 4236 </div> 4237 </div> 4238 </div> 4239 <div class="row"> 4240 <div class="col-sm-6"> 4241 <div class="form-group"> 4242 <label for="team_member_instagram">Instagram Page</label> 4243 <input type="text" id="team_member_instagram" class="form-control instagram-url" placeholder="http://www.instagram.com/yourname" value="<%- team_member.get('instagram_url') %>" /> 4244 </div> 4245 </div> 4246 </div> 4247 <% if (!current_cat && categories.length > 0) { %> 4248 <div class="form-group row"> 4249 <div class="col-sm-6"> 4250 <label>Category</label> 4251 <% _.each(categories, function(category) { %> 4252 <% 4253 var checked = team_member.get('asset_categories').indexOf(category.id) >= 0 ? 'checked' : ''; 4254 %> 4255 <div class="checkbox"> 4256 <label> 4257 <input type="checkbox" name="category" class="category" style="margin-top:2px;" value="<%- category.id %>" <%- checked %>><%- category.get('name') %> 4258 </label> 4259 </div> 4260 <% }); %> 4261 </div> 4262 </div> 4263 <% } %> 4264 </form> 4265 </div> 4266 </script>
4266 4267 4268 </div> 4269 4270 4271 4272 4273 <div class="asset-categories-templates"> 4274
4274<script type="text/template" class="categories-base-template"> 4275 <ul class="list-group"> 4276 <% _.each(categories, function(category) { %> 4277 <li class="list-group-item clearfix"> 4278 <a href="<% category.category_page_url() %><%- category.get('permaid') %>" class="pull-left lh3"><%- category.get('name') %></a> 4279 <div class="btn-group pull-right" role="group"> 4280 <a class="btn btn-primary btn-sm edit-category" data-id="<%- category.id %>">EDIT</a> 4281 <a class="btn btn-danger btn-sm delete-category" data-id="<%- category.id %>">DELETE</a> 4282 </div> 4283 </li> 4284 <% }); %> 4285 <li class="block"> 4286 <button type="button" class="btn-block add-category list-group-item"><i class="fas fa-plus-circle"></i> Add Category</button> 4287 </li> 4288 </ul> 4289 </script>
4289 4290 4291
4291<script type="text/template" class="edit-category-template"> 4292 <form id="asset_category"> 4293 <% /* Eventually want to make the preset bind_to_asset_name optional, so we could use this to let users create any asset type category */ %> 4294 <input type="hidden" class="asset_name" name="bind_to_asset_name" value="<%- this.options.asset_name %>"> 4295 <div class="form-group"> 4296 <label for="<%- this.options.asset_name %>_category_name">Category Name</label> 4297 <input id="<%- this.options.asset_name %>_category_name" class="form-control name required" name="name" value="<%- this.options.asset_category.get('name') %>" placeholder="Category Name" /> 4298 </div> 4299 <div class="form-group"> 4300 <label for="<%- this.options.asset_name %>_category_desc">Category Description</label> 4301 <textarea id="<%- this.options.asset_name %>_category_desc" name="description" class="form-control description"><%- this.options.asset_category.get('description') %></textarea> 4302 </div> 4303 <div class="form-group"> 4304 <label for="<%- this.options.asset_name %>_category_url">URL</label> 4305 <input class="form-control permaid category_url_available valid_page_url" id="<%- this.options.asset_name %>_category_url" name="permaid" data-current_url="<%- this.options.asset_category.get('permaid') %>" value="<%- this.options.asset_category.get('permaid') %>" placeholder="E.g. board-of-directors" /> 4306 4307 <p class="help-block">The URL for your category. Please only use letters, numbers, and hyphens. E.g. board-of-directors. 4308 If you don't fill it out, we'll generate a page URL based on the Category Name field.</p> 4309 </div> 4310 </form> 4311 </script>
4311 4312 </div> 4313 4314 4315 4316 <div class="popup-templates"> 4317 4318
4318<script type="text/template" class="delete-popup-template"> 4319 <div class="alert alert-danger"> 4320 <%- this.options.template_text %> 4321 </div> 4322 </script>
4322 4323 4324 </div> 4325 4326 4327 <div class="custom-field-templates"> 4328 4329
4329<script type="text/template" class="custom-field-panel-template"> 4330 <div class="edit-panel-title"> 4331 <div class="panel-name"> 4332 <% if ( c.model.label ) { %> 4333 Edit <%- c.model.label %> 4334 <% } else { %> 4335 Create New Field 4336 <% } %> 4337 </div> 4338 <div class="panel-button-div"> 4339 <button type="button" class="save-js">Save</button> 4340 <% if ( ss.user.advanced && c.model.id ){ %> 4341 <button type="button" class="danger delete-js">Delete</button> 4342 <% } %> 4343 </div> 4344 </div> 4345 <div class="edit-panel-alerts"> 4346 </div> 4347 <div class="edit-panel-content"> 4348 <%= ss.text_row({label:'Label', 4349 name:'label', 4350 item:c.model, 4351 validations:'required protected_name'}) %> 4352
4353 <%= ss.text_area_row({label: 'Description/Help Text', 4354 name: 'description', 4355 item: c.model}) %> 4356 4357 <%= ss.select_row({label:'Field Type', 4358 name:'field_type', 4359 item:c.model, 4360 options:ss.models.FIELD_TYPES}) %> 4361 4362 <%= ss.checkbox_row({label:'Optional', 4363 name:'optional', 4364 item:c.model}) %> 4365 4366 <div class="limit-block"> 4367 <%= ss.number_row({label:'Multiselect limit', 4368 name:'limit', 4369 item:c.model}) %> 4370 </div> 4371 4372 <div class="option-block"> 4373 <div class="field"> 4374 <label>Options (Label/Value):</label> 4375 <ul class="options inline_field_block sortable-items"></ul> 4376 </div> 4377 <div class="add-option-row indented-block"> 4378 <a href="#" class="add-custom-field-item-js">+ Add Another Option</a> 4379 </div> 4380 </div> 4381 4382 <div class="number-block">
4383 <%= ss.number_row({label:'Number minimum', 4384 name:'min_number', 4385 item:c.model}) %> 4386 <%= ss.number_row({label:'Number maximum', 4387 name:'max_number', 4388 item:c.model}) %> 4389 </div> 4390 4391 <div class="hide-label-block"> 4392 <%= ss.checkbox_row({label:'Hide Label', 4393 name:'hide_label', 4394 item:c.model, 4395 popover:{ 4396 title:'Hide Label', 4397 content:"Hide the label/heading when the field is displayed. Useful when just wanting to display the help text." 4398 } 4399 }) %> 4400 </div> 4401 4402 </div> 4403 </script>
4403 4404 4405
4405<script type="text/template" class="custom-field-option-row"> 4406 <li class="field-option"> 4407 <input type="text" 4408 value="<%=c.model.label%>" 4409 class="label-field pull-left"> 4410 <input type="<%= ss.user.advanced ? 'text' : 'hidden'%>" 4411 value="<%=c.model.value%>" 4412 class="value-field pull-left"> 4413 <a href="#" class="close-button pull-left">×</a> 4414 </script>
4414 4415 4416
4416<script type="text/template" class="custom-field-li-template"> 4417 <div> 4418 <%- c.label %> 4419 </div> 4420 </script>
4420 4421 4422
4422<script type="text/template" class="custom-field-listing-template"> 4423 <div> 4424 <div class="two-panel-left-header"> 4425 Custom Fields 4426 </div> 4427 4428 <h2 class="one-page-grouping-title"> 4429 <span class="one-page-grouping-name"> 4430 Assets 4431 </span> 4432 </h2> 4433 <ul class="asset-listing one-page-listing"> 4434 <li data-asset="user">Individuals 4435 <li data-asset="company">Organizations 4436 <li data-asset="event">Events 4437 </ul> 4438 4439 <h2 class="one-page-grouping-title"> 4440 <span class="one-page-grouping-name"> 4441 Fields 4442 </span> 4443 </h2> 4444 <ul class="custom-field-listing one-page-listing"></ul> 4445 4446 <% if (ss_context.network_features.chapter_custom_fields && !ss_context.is_apex){ %> 4447 <h2 class="one-page-grouping-title"> 4448 <span class="one-page-grouping-name"> 4449 Additional Fields 4450 </span> 4451 </h2> 4452 <ul class="additional-custom-field-listing one-page-listing"></ul> 4453 <% } %> 4454 4455 <a class="add-new new-custom-field-js">+ new field</button> 4456 </div> 4457 </script>
4457 4458 4459 4460
4460<script type="text/template" class="configure-asset-template"> 4461 <div class="edit-panel-title"> 4462 <div class="panel-name"> 4463 Location for Custom Field 4464 </div> 4465 <div class="panel-button-div"> 4466 <button type="button" class="save-js">Save</button> 4467 </div> 4468 </div> 4469 <div class="edit-panel-alerts"> 4470 </div> 4471 <div class="edit-panel-content"> 4472 </div> 4473 </script>
4473 4474 4475 4476 4477 4478 4479 4480 <!-- old ones below here --> 4481 <div class="custom_field_templates" style="display:none"> 4482
4482<script type="text/template" class="custom_field_row"> 4483 <select class="span3 field-js" data-field="field_info_id"> 4484 <option value="">Choose a Field 4485 <% field_infos.each( function(field_info, index){ %> 4486 <option value="<%=field_info.get('id') %>" 4487 <%= field_info.get('id') === field_info_id ? 'selected' :''%> 4488 > 4489 <%= field_info.get('label')%> 4490 <% }); %> 4491 </select> 4492 4493 <div class="remove-button">×</div> 4494 </script>
4494 4495
4495<script type="text/template" class="custom_field_list"> 4496 <div class="field"> 4497 <label>Fields:</label> 4498 <div class="inline-block"> 4499 <ul class="field-list-js"> 4500 </ul> 4501 <a href="#" class="add-link add-field-js">Add Another Field</a> 4502 </div> 4503 </div> 4504 </script>
4504 4505 </div> 4506 4507 4508 4509 </div> 4510 4511 4512 4513 <div class="field-templates" style="display:none"> 4514 <!-- 4515 Common attributes for selects, textareas, radio buttons 4516 --> 4517
4517<script type="text/template" class="input-attributes"> 4518 <% if ( c.data_name ) { %> data-name="<%- c.data_name %>" <% } %> 4519 <% if ( c.name ) { %> name="<%- c.name %>" <% } %> 4520 <%= c.disabled ? 'disabled' : '' %> 4521 <%= ss.validations( c ) %> 4522 class="<%- c.css_class || '' %> <%- c.required ?' required ' : '' %>" 4523 <% if ( c.placeholder ) { %> 4524 placeholder="<%= c.placeholder %>" 4525 <% } %> 4526 <% if ( c.data_value ) { %> 4527 data-value="<%- c.data_value %>" 4528 <% } %> 4529 <% if ( c.data_values ) { %> 4530 <% for (var key in c.data_values) { %> 4531 <% if (c.data_values.hasOwnProperty(key)) { %> 4532 data-<%= key %>="<%= c.data_values[key] %>" 4533 <% } %> 4534 <% } %> 4535 <% } %> 4536 <% if ( c.maxlength ) { %> 4537 maxlength="<%= c.maxlength %>" 4538 <% } %> 4539 </script>
4539 4540 4541
4541<script type="text/template" class="field-label"> 4542 <label class="<%= c.label_css_class || ''%>"> 4543 <%- c.label %><%= c.label ? ':' : '' %> 4544 <% if (c.required || _.string.contains(c.validations, 'required')){ %> 4545 <i class="required_marker"></i> 4546 <% } %> 4547 </label> 4548 </script>
4548 4549 4550
4550<script type="text/template" class="generic-row"> 4551 <div class="field <%= c.row_css_class || ''%>"> 4552 <%= ss.label( c ) %> 4553 <div class="<%= c.input_wrap_class || ''%>"> 4554 <% if ( c.description ) { %> 4555 <div class="custom-field-description md-gray fs12"> 4556 <%= c.description %> 4557 </div> 4558 <% } %> 4559 <%= c.field_content %> 4560 <% 4561 if (c.popover){ 4562 c.popover.placement = c.popover.placement || 'bottom'; 4563 print(ss.fn.popover(c.popover)); 4564 } 4565 %> 4566 </div> 4567 </div> 4568 </script>
4568 4569 4570
4570<script type="text/template" class="text-field"> 4571 <% if ( c.prepend || c.append ){ %> 4572 <div class="input-group <%= c.inline ? 'pull-left' : '' %>"> 4573 <% } %> 4574 <% if ( c.prepend ) { %> 4575 <div class="input-group-addon"><%-c.prepend %></div> 4576 <% } %> 4577 4578 <input 4579 <%= ss.input_attributes( c )%> 4580 type="text" 4581 value="<%- c.value || '' %>"> 4582 4583 <% if ( c.append ) { %> 4584 <div class="input-group-addon"><%-c.append %></div> 4585 <% } %> 4586 4587 <% if ( c.prepend || c.append ){ %> 4588 </div> 4589 <% } %> 4590 </script>
4590 4591 4592
4592<script type="text/template" class="number-field"> 4593 <% if ( c.prepend || c.append ){ %> 4594 <div class="input-group <%= c.inline ? 'pull-left' : '' %>"> 4595 <% } %> 4596 <% if ( c.prepend ) { %> 4597 <div class="input-group-addon"><%-c.prepend %></div> 4598 <% } %> 4599 4600 <input <%= ss.input_attributes( c )%> 4601 type="number" 4602 value="<%- c.value || '' %>"> 4603 4604 <% if ( c.append ) { %> 4605 <div class="input-group-addon"><%-c.append %></div> 4606 <% } %> 4607 4608 <% if ( c.prepend || c.append ){ %> 4609 </div> 4610 <% } %> 4611 </script>
4611 4612 4613
4613<script type="text/template" class="color-field"> 4614 <% 4615 var value = c.value; 4616 var checked = '' 4617 if ( value == 'transparent' ){ 4618 value = ''; 4619 checked = 'checked'; 4620 } 4621 %> 4622 <input <%= ss.input_attributes( c )%> 4623 type="text" 4624 value="<%- value || '' %>"> 4625 <% 4626 if ( c.allow_transparent ){ 4627 %> 4628 <input class="transparency-input" name="<%= c.name %>-transparent" data-color_name="<%= c.name %>" <%= checked %> type="checkbox"> Transparent 4629 <% 4630 } 4631 %> 4632 </script>
4632 4633 4634
4634<script type="text/template" class="checkbox-field"> 4635 <% 4636 var options = _.extend({}, c); 4637 options.css_class = (options.css_class || '') + ' send_unchecked_js '; 4638 options.checked = Boolean(options.checked) || Boolean( options.value ); 4639 options.value = 'True'; 4640 %> 4641 <input type="checkbox" 4642 value="True" 4643 <%= ss.input_attributes( options ) %> 4644 <%- options.checked ? 'checked' : '' %> > 4645 </script>
4645 4646 4647
4647<script type="text/template" class="list-field"> 4648 <% 4649 var options = _.extend({}, c); 4650 //options.css_class = (options.css_class || '') + ' send_unchecked_js '; 4651 4652 xxx_c = c; 4653 4654 safe_log(c.options, ss.fields.build_options(c.options)); 4655 %> 4656 <div class="inline_field_block"> 4657 <% _.each( ss.fields.build_options(c.options), function( option ){ 4658 // var selected = c.value === option.value; 4659 var checked; 4660 if ( _.isString( c.value ) ){ 4661 checked = _.contains( c.value.split(','), option.value ); 4662 } else if ( _.isArray( c.value ) ){ 4663 checked = _.contains( c.value, option.value ); 4664 } 4665 4666 safe_log( 'Option', option); 4667 %> 4668 <div> 4669 <input type="<%= c.input_type %>" 4670 class="checkbox-list" 4671 value="<%=option.value%>" 4672 name="<%- c.name %>" 4673 data-name="<%- c.data_name %>" 4674 <%= option.disabled ? 'disabled' :'' %> 4675 <%- checked ? 'checked' : '' %> > 4676 <%= option.label %> 4677 </div> 4678 <% }); %> 4679 </div> 4680 </script>
4680 4681 4682 4683
4683<script type="text/template" class="select-field"> 4684 <select <%= ss.input_attributes( c ) %> > 4685 <% _.each( ss.fields.build_options(c.options), function( option ){ %> 4686 <% 4687 var selected = c.value === option.value || 4688 ( _.isEmpty(c.value) && _.isEmpty( option.value ) ); 4689 %> 4690 <option <%= option.disabled ? 'disabled' :'' %> 4691 value="<%-option.value || ''%>" 4692 <%= option.field_type ? 'data-field_type=' + option.field_type : '' %> 4693 <%- selected ? 'selected' : '' %> ><%-option.label%> 4694 </option> 4695 <% }); %> 4696 </select> 4697 </script>
4697 4698 4699
4699<script type="text/template" class="multiselect-field"> 4700 <% 4701 c.css_class = c.css_class? c.css_class + ' multi-select-target' : 'multi-select-target'; 4702 %> 4703 <div class="js-multiselect-wrapper "> 4704 <select multiple="multiple" <%= ss.input_attributes( c ) %> data-placeholder=" " data-limit="<%= c.limit ? c.limit : '' %>"> 4705 <% _.each( ss.fields.build_options(c.options), function( option ){ %> 4706 <% 4707 if ( c.value && ! _.isArray(c.value) && ! _.isBoolean(c.value)) 4708 c.value = c.value.split(','); 4709 var selected = _.indexOf(c.value, option.value) >= 0; 4710 %> 4711 <option <%= option.disabled ? 'disabled' :'' %> 4712 value="<%-option.value || ''%>" 4713 <%- selected ? 'selected' : '' %> ><%-option.label%> 4714 <% }); %> 4715 </select> 4716 </div> 4717 </script>
4717 4718 4719
4719<script type="text/template" class="richtext-field"> 4720 <div class="inline_field_block"> 4721 <div <%= ss.input_attributes(c) %> ><%= c.value || '' %></div> 4722 </div> 4723 </script>
4723 4724 4725
4725<script type="text/template" class="pill-radio-field"> 4726 <div class="inline_field_block btn-group" role="group"> 4727 <% 4728 _.each( ss.fields.build_options(c.options), function(option){ 4729 var extra_class = ''; 4730 if ( c.value === option.value ){ 4731 extra_class = 'active'; 4732 } 4733 %> 4734 <button type="button" 4735 name="<%=c.name%>" 4736 class="btn btn-default <%= c.css_class %> <%= extra_class %>" 4737 value="<%= option.value %>" 4738 <%= option.disabled ? 'disabled' : '' %> 4739 ><%= option.label %></button> 4740 <% }); %> 4741 </div> 4742 </script>
4742 4743 4744 4745 4746
4746<script type="text/template" class="textarea-field"> 4747 <textarea <%= ss.input_attributes(c) %> ><%- c.value || '' %></textarea> 4748 </script>
4748 4749 4750
4750<script type="text/template" class="display-field"> 4751 <div class="field_displayed_data"> 4752 <% if ( c.value !== undefined && c.value !== null ) { %> 4753 <%- c.value %> 4754 <% } %> 4755 </div> 4756 </script>
4756 4757 4758
4758<script type="text/template" class="address-template"> 4759 4760 <br/> 4761 <h2 class="alert alert-info"><%=c.label%></h2> 4762 <div class="form-group row"> 4763 <div class="col-md-4"> 4764 <%= ss.text_row({label:'Street Address', 4765 item:c.item, 4766 validations:c.validations, 4767 name:c.prefix +'.'+'street_address', 4768 row_css_class:'mobile-form-group', 4769 css_class:'form-control'}) %> 4770 </div> 4771 <div class="col-md-4"> 4772 <%= ss.text_row({label:'City', 4773 item:c.item, 4774 validations:c.validations, 4775 name:c.prefix +'.'+'city', 4776 row_css_class:'mobile-form-group', 4777 css_class:'form-control'}) %> 4778 </div> 4779 <div class="col-md-4"> 4780 <%=
4780ss.text_row({label:'State/ Province', 4781 item:c.item, 4782 validations:c.validations, 4783 name:c.prefix +'.'+'province', 4784 row_css_class:'mobile-form-group', 4785 css_class:'form-control'}) %> 4786 </div> 4787 </div> 4788 <div class="form-group row"> 4789 <div class="col-md-6"> 4790 <%= ss.text_row({label:'Country', 4791 item:c.item, 4792 validations:c.validations, 4793 name:c.prefix +'.'+'country', 4794 row_css_class:'mobile-form-group', 4795 css_class:'form-control'}) %> 4796 </div> 4797 <div class="col-md-6"> 4798 <%= ss.text_row({label:'Zip Code / Postal Code ', 4799 item:c.item, 4800 validations:c.validations, 4801 name:c.prefix +'.'+'postal_code', 4802 row_css_class:'mobile-form-group', 4803 css_class:'form-control'}) %> 4804 </div> 4805 </div> 4806 4807 </script>
4807 4808 4809
4809<script type="text/template" class="address-linear-template"> 4810 <% 4811 if (c.prefix.indexOf('.') >= 0) { 4812 var div_class = c.prefix.split('.')[1] 4813 } else { 4814 var div_class = c.prefix 4815 } 4816 var field_settings = ss.data.network ? ss.data.network.get('field_settings') : {}; 4817 %> 4818 <br/> 4819 <div class="<%- div_class %>"> 4820 <h2 class="alert alert-info"><%=c.label%></h2> 4821 <%= ss.text_row({label:'Address Line 1', 4822 item:c.item, 4823 validations:c.validations, 4824 name:c.prefix+'.'+'street_address', 4825 row_css_class:'mobile-form-group form-group', 4826 css_class:'form-control inline', 4827 label_css_class:'col-md-3 col-lg-2', 4828 input_wrap_class:'col-md-9 col-lg-10', 4829 maxlength: field_settings.street_address_max_characters, 4830 popover: c.unit_popover, 4831 }) %>
4832 <%= ss.text_row({label:'Address Line 2', 4833 item:c.item, 4834 name:c.prefix+'.'+'address2', 4835 row_css_class:'mobile-form-group form-group', 4836 css_class:'form-control', 4837 label_css_class:'col-md-3 col-lg-2', 4838 input_wrap_class:'col-md-9 col-lg-10', 4839 maxlength: field_settings.street_address_max_characters }) %> 4840 <%= ss.text_row({label:'City', 4841 item:c.item, 4842 validations:c.validations, 4843 name:c.prefix+'.'+'city', 4844 row_css_class:'mobile-form-group form-group', 4845 css_class:'form-control', 4846 label_css_class:'col-md-3 col-lg-2', 4847 input_wrap_class:'col-md-9 col-lg-10', 4848 maxlength: field_settings.city_max_characters }) %> 4849 <%= ss.select_row({label:'Country', 4850 name:c.prefix+'.country', 4851 item:c.item, 4852 row_css_class:'mobile-form-group form-group', 4853 css_class:'form-control short country_binding_provinces', 4854 label_css_class:'col-md-3 col-lg-2', 4855 input_wrap_class:'col-md-9 col-lg-10', 4856 options:c.all_countries_and_states.ALL_COUNTRIES})%> 4857 <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="CA">
4858 <%= ss.select_row({label:'Province', 4859 name:c.prefix+'.province', 4860 item:c.item, 4861 validations:c.validations, 4862 row_css_class:'mobile-form-group', 4863 css_class:'form-control short', 4864 label_css_class:'col-md-3 col-lg-2', 4865 input_wrap_class:'col-md-9 col-lg-10', 4866 options:c.all_countries_and_states.CANADIAN_PROVINCES})%> 4867 </div> 4868 <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="US"> 4869 <%= ss.select_row({label:'State', 4870 name:c.prefix+'.province', 4871 item:c.item, 4872 validations:c.validations, 4873 row_css_class:'mobile-form-group', 4874 css_class:'form-control short', 4875 label_css_class:'col-md-3 col-lg-2', 4876 input_wrap_class:'col-md-9 col-lg-10', 4877 options:c.all_countries_and_states.AMERICAN_STATES})%> 4878 </div> 4879 <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="AU">
4880 <%= ss.select_row({label:'State', 4881 name:c.prefix+'.province', 4882 item:c.item, 4883 validations:c.validations, 4884 row_css_class:'mobile-form-group', 4885 css_class:'form-control short', 4886 label_css_class:'col-md-3 col-lg-2', 4887 input_wrap_class:'col-md-9 col-lg-10', 4888 options:c.all_countries_and_states.AUSTRALIAN_STATES})%> 4889 </div> 4890 <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="GB"> 4891 <%= ss.select_row({label:'State', 4892 name:c.prefix+'.province', 4893 item:c.item, 4894 validations:c.validations, 4895 row_css_class:'mobile-form-group', 4896 css_class:'form-control short', 4897 label_css_class:'col-md-3 col-lg-2', 4898 input_wrap_class:'col-md-9 col-lg-10', 4899 options:c.all_countries_and_states.UK_STATES})%> 4900 </div> 4901 <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="!CA,!US,!AU,!GB">
4902 <%= ss.text_row({label:'Province / State', 4903 item:c.item, 4904 validations:c.validations, 4905 name:c.prefix+'.'+'province', 4906 row_css_class:'mobile-form-group', 4907 label_css_class:'col-md-3 col-lg-2', 4908 input_wrap_class:'col-md-9 col-lg-10', 4909 css_class:'form-control',}) %> 4910 </div> 4911 <%= ss.text_row({label:'Zip Code / Postal Code ', 4912 item:c.item, 4913 validations:c.validations, 4914 name:c.prefix+'.'+'postal_code', 4915 row_css_class:'mobile-form-group form-group', 4916 label_css_class:'col-md-3 col-lg-2', 4917 input_wrap_class:'col-md-9 col-lg-10', 4918 css_class:'form-control', 4919 maxlength: field_settings.zip_postal_code_max_characters }) %> 4920 </div> 4921 </script>
4921 4922 4923
4923<script type="text/template" class="image-field"> 4924 <% 4925 var guid = ss.fn.guid(); 4926 4927 var placeholder_url = ss.fn.cdn('/res/img/v2/placeholder.png'); 4928 var image_url = c.value && _.isFunction( c.value.build_image_url ) && c.value.build_image_url({width:c.width,height:c.height}); 4929 4930 var no_image_style = ''; 4931 var image_exists_style = ''; 4932 4933 if ( image_url ){ 4934 no_image_style = 'style="display:None"'; 4935 } else { 4936 image_exists_style = 'style="display:None"'; 4937 } 4938 4939 %> 4940 <div class="image-does-not-exist no_image_block" <%=no_image_style%>> 4941 <img width="<%=c.width%>" height="<%=c.height%>" 4942 style="padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; " 4943 src="<%= placeholder_url %>"> 4944 </div> 4945 <div class="image-exists image_block" <%=image_exists_style%>> 4946 <img width="<%=c.width%>" height="<%=c.height%>" 4947 style="padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; " 4948 src="<%= image_url + "fPNG"%>"> 4949 </div> 4950 4951 <div class="image-upload-panel col-sm-3"> 4952 <div class="upload_section"> 4953 <div class="image-does-not-exist" <%=no_image_style%>> 4954 <input id="hidden_<%=guid%>" 4955 version="2" 4956 type="hidden" 4957 name="<%=c.name%>.key" 4958 data-name="<%=c.name%>.key" 4959 disabled="true" 4960 value="<%=guid%>"> 4961 <input type="hidden" 4962 class="temp-file-url" 4963 name="<%=c.name%>.temp_url" 4964 data-name="<%=c.name%>.temp_url" 4965 value="<%= image_url %>"> 4966 4967 <iframe id="iframe_<%=guid%>" class="upload_frame" height="24" 4968 src="/upload_iframe/image/<%=guid%>?callback=${callback}&field_name=${field_name}&suggested_width=&image_height=<%=c.height%>&image_width=<%=c.width%>" 4969 frameborder="0" 4970 style="${'display:None;' if existing_upload_url else ''}" 4971 > 4972 </iframe> 4973 4974 <div class="upload_instructions"> 4975 <%= c.upload_instructions || 'Upload a photo (GIF, JPG, or PNG).' %> 4976 </div> 4977 </div> 4978 <div class="image-exists" <%=image_exists_style%>> 4979 <a href="#" class="delete_image">Delete Image</a> 4980 </div> 4981 4982 </div> 4983 </div> 4984 </script>
4984 4985 4986
4986<script type="text/template" class="file-field"> 4987 <% 4988 var guid = ss.fn.guid(); 4989 4990 var placeholder_url = ss.fn.cdn('/res/img/v2/placeholder.png'); 4991 var deleted = c.value && c.value.get('key') === 'delete'; 4992 4993 var file_url = c.value && _.isFunction( c.value.build_file_url ) && c.value.build_file_url({width:c.width,height:c.height}); 4994 var file_name = c.value && (c.value.get('temp_name') || c.value.get('file_name')); 4995 var is_private = c.is_private || 'False'; 4996 4997 if ( deleted ){ 4998 file_url = null; 4999 } 5000 5001 safe_log( 'file_url', file_url ); 5002 5003 var no_file_style = ''; 5004 var file_exists_style = ''; 5005 5006 if ( file_url ){ 5007 no_file_style = 'style="display:None"'; 5008 } else { 5009 file_exists_style = 'style="display:None"'; 5010 } 5011 5012 safe_log('File!!!',c.value, file_name); 5013 5014 %> 5015 <div class="inline_field_block"> 5016 <div class="file-does-not-exist no_file_block field_displayed_data" <%=no_file_style%>> 5017 </div> 5018 <div class="file-exists file_block field_displayed_data" <%=file_exists_style%>> 5019 <a download href="<%=file_url%>"> 5020 <%= file_name %> 5021 </a> 5022 <a href="#" data-name="<%=c.name%>" 5023 class="delete_file close-button">×</a> 5024 </div> 5025 <div class="image-upload-panel col-sm-3"> 5026 <div class="upload_section"> 5027 <div class="file-does-not-exist" <%=no_file_style%>> 5028 <input id="hidden_<%=guid%>" 5029 type="hidden" 5030 name="<%=c.name%>.key" 5031 data-name="<%=c.name%>.key" 5032 disabled="true" 5033 value="<%=guid%>"> 5034 <input type="hidden" 5035 class="temp-file-url" 5036 name="<%=c.name%>.temp_url" 5037 data-name="<%=c.name%>.temp_url" 5038 value="<%= file_url %>"> 5039 <input type="hidden" 5040 class="temp-file-name" 5041 name="<%=c.name%>.temp_name" 5042 data-name="<%=c.name%>.temp_name" 5043 disabled="true"> 5044 5045 5046 <iframe id="iframe_<%=guid%>" class="upload_frame" height="24" 5047 src="/upload_iframe/file/<%=guid%>?private=<%=is_private%>" 5048 frameborder="0" 5049 style="<%= file_exists_style %>" 5050 > 5051 </iframe> 5052 </div> 5053 </div> 5054 </div> 5055 </div> 5056 </script>
5056 5057 5058 5059
5059<script type="text/template" class="multi-item-row"> 5060 <% if ( ! c.suppress_label ) { %> 5061 <div class="field"> 5062 <label><%=c.label%>:</label> 5063 <% } %> 5064 <div class="inline-field-block"> 5065 <ul class="multi-field-items sortable-items"></ul> 5066 <a class="add-item"><%= c.add_more_text || '+ Add More'%></a> 5067 </div> 5068 <% if ( ! c.suppress_label ) { %> 5069 </div> 5070 <% } %> 5071 </script>
5071 5072 5073
5073<script type="text/template" class="member-portal-multi-item-row"> 5074 <li class="member-portal-tile-row"> 5075 <div class="display-inline-block"> 5076 <%= ss.text_field({ 5077 css_class: 'member-portal-tile-text w-auto', 5078 value: c.value.get('text'), 5079 name: c.name + '.text', 5080 item: c.model, 5081 placeholder: 'Text', 5082 maxlength: 70, 5083 data_values: { 5084 index: c.index 5085 } 5086 }) %> 5087 </div> 5088 <div class="display-inline-block"> 5089 <%= ss.text_field({ 5090 css_class: 'member-portal-tile-icon w-auto', 5091 value: c.value.get('icon'), 5092 name: c.name + '.icon', 5093 item: c.model, 5094 placeholder: 'Icon', 5095 data_values: { 5096 index: c.index 5097 } 5098 }) %> 5099 </div> 5100 <div class="display-inline-block">
5101 <%= ss.text_field({ 5102 css_class: 'member-portal-tile-link w-auto', 5103 value: c.value.get('link'), 5104 name: c.name + '.link', 5105 item: c.model, 5106 placeholder: 'Link', 5107 validations: 'url', 5108 data_values: { 5109 index: c.index 5110 } 5111 }) %> 5112 </div> 5113 <div class="display-inline-block"> 5114 <a class="close-button" data-index="<%=c.index%>">×</a> 5115 </div> 5116 </li> 5117 </script>
5117 5118 5119
5119<script type="text/template" class="multi-select-item-row"> 5120 <li> 5121 <%=ss.select_field( { name:c.name, 5122 value:c.value, 5123 validations: c.validations, 5124 options:c.options} ) %> 5125 <a class="close-button" data-index="<%=c.index%>">×</a> 5126 </script>
5126 5127 5128
5128<script type="text/template" class="directory-multi-select-item-row"> 5129 <li> 5130 <%=ss.select_field( { name:c.name, 5131 value:c.value, 5132 validations: c.validations, 5133 css_class: 'directory-table-field', 5134 options:c.options, 5135 data_values: { 5136 index: c.index 5137 }} ) %> 5138 <a class="close-button" data-index="<%=c.index%>">×</a> 5139 </script>
5139 5140 5141
5141<script type="text/template" class="plan-field-multi-select-item-row"> 5142 <li class="plan-additional-field-row"> 5143 <div class="row row-no-padding ml0"> 5144 <div class="col-lg-6"> 5145 <%=ss.select_field( { name:c.name, 5146 value:c.value, 5147 options:c.options, 5148 css_class:'plan-additional-field update-model-ignore form-control', 5149 data_values: { 5150 index: c.index 5151 }}) %> 5152 </div> 5153 <div class="col-lg-5 no-padding"> 5154 <select multiple="multiple" class="form-control multi-select-target plan-custom-field-visibility update-model-ignore" 5155 data-index="<%= c.index %>" 5156 data-placeholder="Display Context"> 5157 <% 5158 _.each(ss.config.CONSTANTS.CUSTOM_PLAN_FIELD_VISIBILITY_OPTIONS, function(option) { 5159 var selected = _.contains(c.config.visibility, option) ? 'selected' : ''; 5160 %> 5161 <option value="<%= option %>" <%= selected %>><%= option %></option> 5162 <% }); %> 5163 </select> 5164 </div> 5165 <div class="col-lg-1 center"> 5166 <a class="close-button pull-left" data-index="<%=c.index%>">×</a> 5167 </div> 5168 </div> 5169 </li> 5170 </script>
5170 5171 5172
5172<script type="text/template" class="heading-field"> 5173 <div class="custom-heading-field mb2"> 5174 <% if ( c.label ) { %> 5175 <h3 class="custom-heading-field-title"><%- c.label %></h3> 5176 <% } %> 5177 <% if ( c.description ) { %> 5178 <div class="custom-heading-field-description"><%- c.description %></div> 5179 <% } %> 5180 </div> 5181 </script>
5181 5182 5183 </div> 5184 5185 5186 5187 5188 5189 5190
5190<script type="text/template" id="group_invite_view"> 5191 <label for="group_invite_targets">Invite by Name</label> 5192 <div class="group_invite_targets_display"></div> 5193 <input type="text" id="group_invite_targets" class="group_invite_targets form-control"> 5194 <input class="group_invite_targets_value" type="hidden"> 5195 <label for="group_invite_targets_email">Invite by Email Address (separate by commas)</label> 5196 <input type="text" id="group_invite_targets_email" class="group_invite_targets_email form-control"> 5197 <label>Optional Personal Message</label> 5198 <div class="group_invite_personalization ckeditor_input" name="group_invite_personalization" style="display:none"></div> 5199 </script>
5199 5200 5201 5202 5203 5204 <div class="editor-templates"> 5205 5206
5206<script type="text/template" class="base-image-template"> 5207 <a class="btn btn-lg btn-primary launch-image-chooser">Add Image</a> 5208 <input name="<%- input_name %>" class="<%- required ? 'required' : '' %>" value="<%- id %>" type="hidden" /> 5209 </script>
5209 5210 5211
5211<script type="text/template" class="image-chooser-template"> 5212 <div class="image-chooser-main-wrapper"> 5213 <div class="main-panel"></div> 5214 </div> 5215 </script>
5215 5216 5217
5217<script type="text/template" class="image-editor-template"> 5218 <link rel="stylesheet" href="https://uicdn.toast.com/tui-color-picker/v2.2.0/tui-color-picker.css"> 5219 <link rel="stylesheet" href="https://uicdn.toast.com/tui-image-editor/latest/tui-image-editor.css"> 5220 <div class="w1 ht80vh"> 5221 <div id="tui-image-editor"></div> 5222 </div> 5223 </script>
5223 5224 5225
5225<script type="text/template" class="user-image-chooser-template"> 5226 <div class="center user-image-chooser-main-wrapper"> 5227 <div class="main-panel"></div> 5228 </div> 5229 </script>
5229 5230 5231
5231<script type="text/template" class="image-panel-template"> 5232 <div class="row"> 5233 <div class="image-panel-header mb2 col-sm-3"> 5234 <div class="upload-section"></div> 5235 <div class="selected-image-section"></div> 5236 </div> 5237 <div class="row bl-lg image-panel-images of-auto col-sm-9"> 5238 <div class="center mt2"> 5239 <i class="fas fa-spinner fa-pulse fa-5x fa-fw"></i> 5240 </div> 5241 </div> 5242 </div> 5243 </script>
5243 5244 5245
5245<script type="text/template" class="user-image-panel-template"> 5246 <div class="image-panel-header mb2"> 5247 <div class="upload-section"></div> 5248 <% if (typeof show_crop_warning !== 'undefined' && show_crop_warning) { %> 5249 <div class="force-crop-warning"> 5250 We recommend specific dimensions for this image: <br/><strong> 5251 <%- recommended_width %>px x <%- recommended_height %>px <br/></strong> 5252 <!-- After uploading an image you can click 'Edit Image' and crop/resize the image as suggested. --> 5253 </div> 5254 <% } %> 5255 <div class="selected-image-section"></div> 5256 </div> 5257 </script>
5257 5258 5259
5259<script type="text/template" class="selected-image-template"> 5260 <div class="selected-image-display mt1 center clearfix"> 5261 <img src="<%- thumbnail_url %>" class="img-responsive thumbnail center-block" /> 5262 <% if (suggest_crop) { %> 5263 <div class="mb1"> 5264 We recommend you crop/resize the image to the following dimensions:<br/> 5265 <strong><%- recommended_width %>px x <%- recommended_height %>px</strong> 5266 </div> 5267 <% } %> 5268 <a data-image_src="<%- src %>" data-image_id="editableimage1" class="hidden-xs white btn btn-primary edit-image">Edit Image</a> 5269 <img id="editableimage1" style="display:none" class="edit-image" src="<%- src %>" /> 5270 <% if (show_alignment) { %> 5271 <hr/> 5272 5273 <label>Image Alignment:</label> 5274 <br> 5275 <%= ss.pill_radio_field({ 5276 item: model, 5277 name: 'alignment', 5278 css_class: 'alignment', 5279 value: alignment, 5280 options: { 5281 left: 'Left', 5282 center: 'Center', 5283 right: 'Right' 5284 } 5285 }) %> 5286 5287 <% } %> 5288 <% if (show_alt_text) { %> 5289 <label for="image_alt_attr" class="mt1">Alternative Text:</label> 5290 <br>
5291 <%= ss.text_field({ 5292 item: model, 5293 name: 'alt', 5294 css_class: 'alt-text form-control', 5295 value: alt}) %> 5296 <% } %> 5297 </div> 5298 </script>
5298 5299 5300
5300<script type="text/template" class="uploader"> 5301 <form class="fileupload center"> 5302 <!-- The fileinput-button span is used to style the file input field as button --> 5303 <% if (uploading) { %> 5304 <div class="uploading-status"> 5305 <span class="uploading-status-text">Uploading...</span> <i class="fas fa-spinner fa-spin"></i> 5306 </div> 5307 <% } else { %> 5308 <div class="upload-button clearfix mb2"> 5309 <span class="btn btn-success fileinput-button"<% if (uploading) {%> disabled<% } %>> 5310 <i class="fas fa-plus"></i> 5311 <span>Upload Image</span> 5312 <!-- The file input field used as target for the file upload widget --> 5313 <input id="fileupload" type="file" name="files[]" multiple> 5314 </span> 5315 </div> 5316 <% } %> 5317 </form> 5318 </script>
5318 5319 5320
5320<script type="text/template" class="image-panel-image-template"> 5321 <div class="col-sm-2 mb2 image-chooser-selectable-thumb"> 5322 <i class="fas fa-times delete-image absolute pointer" aria-hidden="true"></i> 5323 <img 5324 data-original="<%- thumbnail_url %>" 5325 class="img-responsive thumbnail img-chooser-thumbnail lazy" 5326 data-id="<%-id%>" 5327 src="<%- thumbnail_url %>" /> 5328 <% if ( height && width ) { %> 5329 <div class="center mt-n1-5"> 5330 <small><%- width %> x <%- height %></small> 5331 </div> 5332 <% } %> 5333 </div> 5334 </script>
5334 5335 5336
5336<script type="text/template" class="image-chooser-template"> 5337 <div class="upload-section"></div> 5338 <hr> 5339 <div class="image-selector"></div> 5340 </script>
5340 5341 5342
5342<script type="text/template" class="form-return-values"> 5343 <% // Polyfill for endsWith not working in IE 5344 if (!String.prototype.endsWith) { 5345 String.prototype.endsWith = function(search, this_len) { 5346 if (this_len === undefined || this_len > this.length) { 5347 this_len = this.length; 5348 } 5349 return this.substring(this_len - search.length, this_len) === search; 5350 }; 5351 }; 5352 5353 if (input_name.endsWith('image_url')) { 5354 var image_value = thumbnail_url; 5355 } else{ 5356 var image_value = id; 5357 }; 5358 %> 5359 <div class="image-chooser-form-return"> 5360 <div class="icfr-thumbnail"> 5361 <img src="<%- thumbnail_url + "fPNG" %>" class="img-responsive thumbnail"> 5362 </div> 5363 <input type="hidden" name="<%- input_name %>" value="<%- image_value %>" /> 5364 <a class="btn btn-danger delete-image">Remove Image</a> 5365 </div> 5366 </script>
5366 5367 </div> 5368 5369 5370 5371 <div class="chapter-plan-selector-templates"> 5372 5373
5373<script type="text/template" class="chapter-plan-selector-base-template"> 5374 <div class="selectors-target"></div> 5375 <div class="button-target"></div> 5376 </script>
5376 5377
5377<script type="text/template" class="add-chapter-button"> 5378 <a tabindex="0" role="button" class="add-chapter mb2 btn btn-sm btn-primary"><i class="fas fa-plus"></i> Add another Affiliate</a> 5379 </script>
5379 5380 5381
5381<script type="text/template" class="chapter-plan-selector"> 5382 <div class="<%= selector_target_class %> mb2 p1-5 b1-lg br-5"> 5383 <div class="chapter-selector-target"></div> 5384 <div class="plan-selector-target"></div> 5385 <div class="validation-error"></div> 5386 <% if (can_remove) { %> 5387 <div class="right-align"> 5388 <a class="remove-chapter text-danger mt1 block" style="line-height:1em;">Remove <i class="fas fa-times-circle"></i></a> 5389 </div> 5390 <% } %> 5391 </div> 5392 </script>
5392 5393 5394
5394<script type="text/template" class="chapter-selector"> 5395 <select name="affiliate" class="multi-select-target chapter-selector form-control"> 5396 <option value="" selected>Select an Affiliate</option> 5397 <% _.each(ss.fields.build_options(select_options), function(option) { %> 5398 <% 5399 var selected = _.indexOf(values, option.value) >= 0; 5400 %> 5401 <option value="<%-option.value || ''%>" <%- selected ? 'selected' : '' %> ><%-option.label%> 5402 <% }); %> 5403 </select> 5404 </script>
5404 5405 5406
5406<script type="text/template" class="plan-selector"> 5407 <div class="input-group mt1"> 5408 <select name="membership_info:chapter_plan_selector:affiliate_plans[]" class="plan-selector form-control"> 5409 <option value="" selected>Select a plan</option> 5410 <% _.each(ss.fields.build_options(select_options), function(option) { %> 5411 <% 5412 var selected = _.indexOf(values, option.value) >= 0; 5413 %> 5414 <option value="<%- option.value || '' %>" <%- selected ? 'selected' : '' %> ><%- option.label %> 5415 <% }); %> 5416 </select> 5417 <div class="input-group-btn"> 5418 <button type="button" class="btn btn-default" aria-label="Help" data-toggle="modal" data-target="#plan_description_<%= chapter_permaid %>"> 5419 <i class="fas fa-question-circle"></i> 5420 </button> 5421 </div> 5422 </div> 5423 <div class="modal fade" id="plan_description_<%= chapter_permaid %>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 5424 <div class="modal-dialog" role="document"> 5425 <div class="modal-content"> 5426 <div class="modal-header"> 5427 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 5428 <h4 class="modal-title" id="myModalLabel">Membership Plans</h4> 5429 </div> 5430 <div class="modal-body"> 5431 <% _.each(plans, function(plan) { %> 5432 <h4><%= plan.get('name') %> - <%= ss.fn.money(plan.get('amount')) %>/<%= plan.get('period') %></h4> 5433 <%= plan.get('description') %> 5434 <hr/> 5435 <% }); %> 5436 </div> 5437 </div> 5438 </div> 5439 </div> 5440 </script>
5440 5441 5442 </div> 5443 5444 5445 <div class="panel-templates"> 5446 5447
5447<script type="text/template" class="edit-panel"> 5448 <div class="onepage-panel-header"> 5449 <div class="panel-header-fixed-wrapper"> 5450 <% 5451 var listing_page = c.view.get_listing_page(); 5452 %> 5453 <% if ( listing_page ) { %> 5454 <button class="onepage-borderless-button onepage-return-button default"><i class="icon-back icon-18"></i></button> 5455 <% } %> 5456 <span class="onepage-panel-header-name"> 5457 <% 5458 if ( c.view.get_panel_heading() ){ 5459 print(c.view.get_panel_heading()); 5460 } else if ( c.model.id ){ 5461 print('Edit ' + (c.model.get('name') || c.model.id)); 5462 } else { 5463 print('New ' + (c.item_name || 'Item')); 5464 } 5465 %> 5466 </span> 5467 <div class="onepage-header-button-group"> 5468 <span class="extra-header-buttons"></span> 5469 <% var save_text = c.model.id ? 'Save' : 'Create' %> 5470 <button type="button" class="<%= listing_page ? 'default' : ''%> save-js"><%= save_text %></button> 5471 5472 <% if ( listing_page ) { %> 5473 <button type="button" class="save-close-js"><%= save_text %> and Close</button> 5474 <% } %> 5475 </div> 5476 </div> 5477 </div> 5478 <div class="edit-panel-alerts"></div> 5479 <div class="edit-panel-content panel-content"></div> 5480 </script>
5480 5481 5482 </div> 5483 5484 5485 5486 <div class="member-settings-templates"> 5487 5488
5488<script type="text/template" class="delete-card-template"> 5489 <div> 5490 Delete the card ending in <%= c.last_four_digits %>? 5491 </div> 5492 </script>
5492 5493
5493<script type="text/template" class="move-me-to-chapter"> 5494 <% 5495 var options = _.map(ss_context.chapter_options, function(values){ 5496 return {'label':values['name'], 'value':values['permaid']} 5497 }); 5498 5499 print( ss.select_row({label:'Select Home Chapter', 5500 name:'chapter_id', 5501 options:options, 5502 value:''})); 5503 5504 %> 5505 5506 Add Chapters: 5507 <select name="select_use_chapter" multiple="multiple" class="select-user-chapter multi-select-target" 5508 data-placeholder="Select chapter"> 5509 <% _.each(ss_context.chapter_options, function(network) { %> 5510 <% if(!_.some(ss_context.user_networks, function(o){return o.permaid === network.permaid})) { %> 5511 <option value="<%= network.permaid %>"><%= network.name %></option> 5512 <% } %> 5513 <% }); %> 5514 </select> 5515 5516 You can update your home chapter and the chapters that you are a part of from this dialog. 5517 <br> 5518 <br> 5519 <br> 5520 <br> 5521 5522 </script>
5522 5523 5524 </div> 5525 5526 5527 5528 <div class="organization-selection-templates"> 5529 5530
5530<script type="text/template" class="organization-listing-item"> 5531 <div class="clearfix"> 5532 <% 5533 var organization = c.model; 5534 var pending = c.model.is_pending( SS.app.current_user && SS.app.current_user.id); 5535 %> 5536 <div class="image-section"> 5537 <% 5538 var image_url = organization.build_image_url({width:60,height:60}); 5539 %> 5540 <img src="<%=image_url%>" height="60" width="60"> 5541 </div> 5542 <div class="detail-section"> 5543 <div> 5544 <div class="organization-name"> 5545 <%-organization.get('name')%> 5546 </div> 5547 <div class="member_actions"> 5548 <% if ( pending ){ %> 5549 Join Status: <span class="badge">Pending</span> 5550 <% } %> 5551 <% if ( organization.may_edit() ){ %> 5552 <a class="edit-organization">Edit</a> 5553 <% } %> 5554 <a class="leave-organization">(Leave)</a> 5555 </div> 5556 </div> 5557 </div> 5558 </div> 5559 </script>
5559 5560
5560<script type="text/template" class="organization-listing-template"> 5561 <div> 5562 <ul class="pending-organization-listing list-group item-listing"> </ul> 5563 <ul class="organization-listing list-group item-listing"> </ul> 5564 </div> 5565 </script>
5565 5566
5566<script type="text/template" class="organization-selection-template"> 5567 <div> 5568 <div class="alert alert-info"> 5569 <strong> 5570 You don't currently belong to any <%= ss.config.TERMS.plural_company.toLowerCase() %>. 5571 </strong> 5572 </div> 5573 <div class="row"> 5574 <% if ( c.organization_listing_visible || true ){ %> 5575 <div class="col-md-6"> 5576 <div class="panel panel-default"> 5577 <div class="panel-heading"> 5578 <h3>Join Your <%= _.string.capitalize(ss.config.TERMS.singular_company) %></h3> 5579 </div> 5580 <div class="panel-body"> 5581 Is your <%= ss.config.TERMS.singular_company.toLowerCase() %> already registered? If they've already been registered you may ask to join the <%= ss.config.TERMS.singular_company.toLowerCase() %>. 5582 </div> 5583 <div class="panel-footer"> 5584 <div class="company-autocomplete"></div> 5585 </div> 5586 </div> 5587 </div> 5588 <% } else { %> 5589 Please contact <%= SS.app.current_network.name %> to join a <%= ss.config.TERMS.singular_company.toLowerCase() %>. 5590 <% } %> 5591 5592 <% if ( c.may_create_organizations ) { %> 5593 <div class="col-md-6"> 5594 <div class="panel panel-default"> 5595 <div class="panel-heading"> 5596 <h3>Register a New <%= _.string.capitalize(ss.config.TERMS.singular_company) %></h3> 5597 </div> 5598 <div class="panel-body"> 5599 You may register a new <%= ss.config.TERMS.singular_company.toLowerCase() %> and become the <%= ss.config.TERMS.singular_company.toLowerCase() %>'s admin. 5600 </div> 5601 <div class="panel-footer"> 5602 <% if( c.setup ) { %> 5603 <a class="button btn btn-primary register-company">Register your <%= _.string.capitalize(ss.config.TERMS.singular_company) %></a> 5604 <% } else { %> 5605 <a class="button btn btn-primary" href="/company/new">Register your <%= _.string.capitalize(ss.config.TERMS.singular_company) %></a> 5606 <% } %> 5607 </div> 5608 </div> 5609 </div> 5610 <% } %> 5611 </div> 5612 </div> 5613 </script>
5613 5614 5615 </div> 5616 5617 5618 5619 5620 <div class="organization-edit-templates"> 5621 5622
5622<script type="text/template" class="organization-edit-panel"> 5623 <div class="onepage-panel-header"> 5624 <span class="onepage-panel-header-name"> 5625 <% if ( c.model.id ){ %> 5626 Edit <%= c.model.get('name') %> 5627 <% if ( ss.user.advanced ) { %> 5628 <a href="<%= c.model.get('url')%>/edit" target="_blank">old</a> 5629 <a href="<%= c.model.get('url')%>/json-data" target="_blank">json</a> 5630 <a href="/test/load_details?id=<%= c.model.id%>" target="_blank">load details</a> 5631 <% } %> 5632 <% } else { %> 5633 New Member 5634 <% } %> 5635 </span> 5636 <div class="onepage-header-button-group"> 5637 <% if ( c.options.on_cancel ){ %> 5638 <button type="button" class="default cancel">Cancel</button> 5639 <% } %> 5640 5641 <% if ( c.options.on_created ){ %> 5642 <button type="button" class="save-and-use">Create and Use</button> 5643 <% } else {%> 5644 <% var save_text = c.model.id ? 'Save' : 'Create' %> 5645 <button type="button" class="default save-js"><%= save_text %></button> 5646 <button type="button" class="save-close-js"><%= save_text %> and Close</button> 5647 <% } %> 5648 </div> 5649 </div> 5650 5651 <div class="actions"> 5652 <% 5653 var action_button = function(){ 5654 print( ss.listing.action_button.apply(this, arguments) ); 5655 }; 5656 var admin = SS.app.current_user.network_admin; 5657 %> 5658 5659 <% if (this.model.get('status') === 'archived') { %> 5660 <div class="alert alert-info w40 pr1"> 5661 <i class="fas fa-exclamation-circle fa-lg mr1"></i> <b>This company has been archived</b> 5662 </div> 5663 <% } %> 5664
5665 <%= ss.onepage.return_button() %> 5666 5667 <% if ( admin ){ %> 5668 <div class="grid-button-group button_group"> 5669 <% action_button('Enter<br>Payment', 'one', 'enter_payment','not_default') %> 5670 <% 5671 //action_button('Cancel<br>Membership', 'one', 'cancel_membership') 5672 %> 5673 </div> 5674 <% } %> 5675 5676 <div class="grid-button-group button_group"> 5677 <% 5678 if (admin){ 5679 if (this.model.get('status') !== 'archived') { 5680 if (ss_context.apex_admin) { 5681 action_button('<i class="icon-trash icon-white"></i>', 'any', 'delete_selected', 'danger'); 5682 } else { 5683 action_button('Remove From<br>Chapter', 'any', 'remove_from_chapter', 'danger'); 5684 } 5685 } 5686 } 5687 %> 5688 <% 5689 if(ss.user.advanced) { 5690 action_button( 'Unarchive', 'any', 'unarchive', 'success'); 5691 } 5692 %> 5693 </div> 5694 5695 5696 5697 </div> 5698 5699 <% 5700 var pages = { 5701 space0: null, 5702 // Maybe change private-view to member-only-view 5703 basic: {label: 'Basic Info', class: 'private-view'}, 5704 overview: {label: 'Details', class: 'private-view'}, 5705 home_page: {label: 'Home Page', 5706 class: 'private-view', 5707 relative_url:'home_page/edit' 5708 }, // OFFSHOREMARINE 5709 5710 people: {label: 'Employees', class: 'private-view'}, 5711 locations: {label: 'Locations', class: 'private-view'}, 5712 privacy: {label: 'Privacy', class: 'private-view'}, 5713 space1: null, 5714 5715 membership: {label: 'Membership Info', class: 'mixed-view'}, 5716 space2: null, 5717 5718 custom: {label: 'Custom Info', class: 'admin-only-view'}, 5719 history: {label: 'History', class: 'admin-only-view'}, 5720 //files: {label: 'Files', class: 'admin-only-view'}, 5721 }; 5722 5723 if (ss.config.THEME_CONFIG.disallow_company_home_page){ 5724 delete pages.home_page; 5725 } 5726 if (!SS.app.current_network.enable_company_locations){ 5727 delete pages.locations; 5728 } 5729 if ( ss.user.advanced ){ 5730 //pages.people = {label: 'People', class: 'admin-only-view'}; 5731 } 5732 var network_id = ss.data.network.get('permaid'); 5733 if ( ! c.model.id ){ 5734 delete pages.home_page; 5735 } 5736 if ( c.options.sections ){ 5737 _.each( pages, function( value, key ){ 5738 if ( key !== 'space0' && ! _.contains( c.options.sections, key ) ){ 5739 delete pages[key]; 5740 } 5741 }); 5742 } 5743 5744 %> 5745 5746 <div class="onepage-sub-tabbar"> 5747 <div class="sub-tabbar-container"> 5748 <ul class="sub-tabbar-tabs section-list"> 5749 <% _.each( pages, function( section, key){ 5750 if ( section ){ %> 5751 <li class="<%=section.class%>"> 5752 <% if (section.relative_url ){ %> 5753 <a target="_blank" 5754 href="<%=c.model.get('url') + '/' + section.relative_url %>">
5755 <%= section.label %> 5756 </a> 5757 <% } else { %> 5758 <a data-section="<%=key%>"> <%= section.label %> </a> 5759 <% } %> 5760 <% } else { %> 5761 <li class="separator"><div style="width:20px;"> </div> 5762 <% } 5763 }); %> 5764 </ul> 5765 </div> 5766 </div> 5767 <div class="edit-panel-alerts absolute mt5"></div> 5768 <div class="panel-content tabbed-actions-panel-content tabbed-panel-content"></div> 5769 </script>
5769 5770 5771
5771<script type="text/template" class="basic-section"> 5772 <h2 class="alert alert-info">Basics</h2> 5773 <div> 5774 <% var validations = "required"; 5775 // For now, we'll only support company id verification creating new companies 5776 // because our validators have no concept of a model, and if the model 5777 // has changed, as would happen when the admin changes a company's name 5778 // to one of an existing company 5779 if (!c.model.id && !SS.app.current_network.duplicate_company_name_allowed) { 5780 validations += " company_name_available"; 5781 } %> 5782 <%= ss.text_row({label:'Name', 5783 name:'name', 5784 item:c.model, 5785 validations:validations, 5786 css_class:'form-control ', 5787 row_css_class:'row form-group', 5788 label_css_class:'col-md-3 col-lg-2', 5789 input_wrap_class:'col-md-9 col-lg-10'}) %> 5790
5791 <%= ss.image_row({label:'Logo', 5792 name:'image', 5793 item:c.model, 5794 css_class:'form-control', 5795 row_css_class:'row form-group', 5796 label_css_class:'col-md-3 col-lg-2', 5797 input_wrap_class:'col-md-9 col-lg-10', 5798 upload_instructions:'Recommended: 400px x 400px'}) %> 5799 5800 <div class="organization-type"></div> 5801 <div class="organization-categories"></div> 5802 5803 <% 5804 company_address_required = ( SS.app.current_network.company_address_required && !ss.apps.admin_app ) ? 'required' : ''; 5805 company_phone_required = ( (SS.app.current_network.company_phone_required || SS.app.current_network.company_contact_info_required) && !ss.apps.admin_app ) ? 'required' : ''; 5806 contact_info_required = ( SS.app.current_network.company_contact_info_required && !ss.apps.admin_app ) ? 'required' : ''; 5807 website_required = ( SS.app.current_network.company_website_required && !ss.apps.admin_app ) ? 'required' : ''; 5808 company_profile_social_media = SS.app.current_network.company_profile_social_media; 5809 %> 5810 5811 <h2 class="alert alert-info">Contact</h3>
5812 <%= ss.text_row({label:'Website', 5813 name:'website', 5814 item:c.model, 5815 css_class:'form-control', 5816 row_css_class:'row form-group', 5817 label_css_class:'col-md-3 col-lg-2', 5818 input_wrap_class:'col-md-9 col-lg-10', 5819 validations: website_required}) %> 5820 <%= ss.text_row({label: _.string.capitalize(ss.config.TERMS.singular_company) + ' Email', 5821 name:'email', 5822 item:c.model, 5823 css_class:'form-control', 5824 row_css_class:'row form-group', 5825 label_css_class:'col-md-3 col-lg-2', 5826 input_wrap_class:'col-md-9 col-lg-10', 5827 validations: contact_info_required}) %>
5828 <%= ss.text_row({label:'Phone', 5829 name:'phone', 5830 item:c.model, 5831 css_class:'form-control', 5832 row_css_class:'row form-group', 5833 label_css_class:'col-md-3 col-lg-2', 5834 input_wrap_class:'col-md-9 col-lg-10', 5835 validations:company_phone_required}) %> 5836 <%= ss.text_row({label:'Fax', 5837 name:'fax', 5838 item:c.model, 5839 css_class:'form-control', 5840 row_css_class:'row form-group', 5841 label_css_class:'col-md-3 col-lg-2', 5842 input_wrap_class:'col-md-9 col-lg-10'}) %> 5843 <!-- 5844 hidden set email domain field show on the old edit page? 5845 --> 5846 <div class="field company-email-domains form-group"> 5847 <label class="col-md-3 col-lg-2"> 5848 Email Domains: 5849 </label> 5850 <div class="col-md-9 col-lg-10">
5851 <%= ss.text_field({ 5852 name:'email_domains', 5853 prepend:'@', 5854 placeholder:'example.com', 5855 item:c.model, 5856 css_class: 'form-control'}) %> 5857 <a tabindex="0" href="#" role="button" data-trigger="focus" class="popover_link" data-toggle="popover" 5858 data-content="Allows users to join their company by confirming an email address with one of these domains. 5859 The domains should be comma separated, and can include wildcards such as *.example.com, which for example, 5860 would match @subgroup1.example.com and @subgroup2.example.com email addresses, among others." 5861 data-original-title="Email Domains" data-placement="bottom"> 5862 <i class="fas fa-question-circle"></i> 5863 </a> 5864 </div> 5865 </div> 5866 5867 <% if (company_profile_social_media) { %> 5868
5869 <%= ss.text_row({label:'LinkedIn Page URL', 5870 name:'linkedin_url', 5871 item:c.model, 5872 css_class:'form-control', 5873 row_css_class:'row form-group', 5874 label_css_class:'col-md-3 col-lg-2', 5875 input_wrap_class:'col-md-9 col-lg-10'}) %> 5876 5877 <%= ss.text_row({label:'Facebook Page URL', 5878 name:'facebook_url', 5879 item:c.model, 5880 css_class:'form-control', 5881 row_css_class:'row form-group', 5882 label_css_class:'col-md-3 col-lg-2', 5883 input_wrap_class:'col-md-9 col-lg-10'}) %> 5884 5885 <%= ss.text_row({label:'Instagram Page URL', 5886 name:'instagram_url', 5887 item:c.model, 5888 css_class:'form-control', 5889 row_css_class:'row form-group', 5890 label_css_class:'col-md-3 col-lg-2', 5891 input_wrap_class:'col-md-9 col-lg-10'}) %> 5892 5893 <div class="field relative company-twitter-handle row clearfix form-group"> 5894 <label class="col-md-3 col-lg-2"> 5895 X Handle: 5896 </label> 5897 <div class="col-md-9 col-lg-10">
5898 <%= ss.text_field({name:'twitter_handle', 5899 prepend:'@', 5900 placeholder:'company_name', 5901 item:c.model, 5902 css_class:'form-control'}) %> 5903 </div> 5904 </div> 5905 5906 <% } %> 5907 5908 <%= ss.address_linear_block({ 5909 label:'Address', 5910 item:c.model, 5911 prefix:'address', 5912 unit_popover: { 5913 title: 'Address Line 1', 5914 content:'Please enter unit, suite, and floor information under Address Line 2; otherwise, your ' + ss.config.TERMS.singular_company.toLowerCase() + ' will not appear on the company map.' 5915 }, 5916 validations:company_address_required}) %> 5917
5918 <%= ss.address_linear_block({label:'Mailing Address ( if different )', 5919 item:c.model, 5920 prefix:'mailing_address'}) %> 5921 <br/> 5922 <h2 class="alert alert-info"><%= _.string.capitalize(ss.config.TERMS.singular_company) %> Overview</h2> 5923 <div class="company-overview-field"> 5924 5925 <%= ss.rich_text_row({ name:'summary', 5926 item:c.model, 5927 validations:''}) %> 5928 </div> 5929 5930 <%= ss.custom_fields({asset_key:'company',section:'about', subsection:'main'}, 5931 c.model, 5932 {row_css_class: 'form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10'} ) %> 5933 <br/> 5934 <!-- sponsors --> 5935 5936 <!-- 5937 ${self.contact_section()} 5938 --> 5939 </div> 5940 </script>
5940 5941 5942
5942<script type="text/template" class="people-section"> 5943 <div> 5944 <ul class="members item-listing mt2"></ul> 5945 <button class="add-person">Add Person</button> 5946 <!--<div class="add-person-autocomplete"></div>--> 5947 </div> 5948 </script>
5948 5949 5950
5950<script type="text/template" class="chosen-person-template"> 5951 <div class="field_displayed_data"> 5952 <%= c.model.get('name') %> 5953 <a class="change-person">(Change)</a> 5954 <br> 5955 <!--<%= c.model.get('member_number') %> --> 5956 <%= c.model.get('email') || 'no email' %> 5957 <br> 5958 <%= c.model.get('phone_number') %> 5959 </div> 5960 </script>
5960 5961 5962
5962<script type="text/template" class="add-person"> 5963 <div> 5964 <div class="indented-block button_group" data-toggle="buttons-radio"> 5965 <button type="button" 5966 class="button default add-by" 5967 value="name" 5968 >Add Existing Person</button> 5969 <button type="button" 5970 class="button default add-by" 5971 value="email" 5972 >Add New Person</button> 5973 </div> 5974 <div class="add-by-name"> 5975 <div class="field"> 5976 <label>Person:</label> 5977 <div class="add-person-autocomplete"></div> 5978 <div class="chosen-person"></div> 5979 </div> 5980 </div> 5981 <div class="add-by-email">
5982 <%= ss.text_row({label:'Email', 5983 name:'email' 5984 //, validations:'required' 5985 }) %> 5986 <%= ss.text_row({label:'First Name', 5987 name:'first_name', 5988 validations:'required'}) %> 5989 <%= ss.text_row({label:'Last Name', 5990 name:'last_name', 5991 validations:'required'}) %> 5992 </div> 5993 <hr> 5994 <%= ss.checkbox_row({label:'Company Admin?',name:'company_admin'}) %> 5995 <div class="add-by-email"> 5996 <%= ss.checkbox_row({label:'Send Welcome Message?',name:'send_welcome_message'}) %> 5997 </div> 5998 </div> 5999 </script>
5999 6000
6000<script type="text/template" class="person-listing-item"> 6001 <div> 6002 <% 6003 var person = c.model; 6004 var pending = person.pending(); 6005 %> 6006 <div class="image-section"> 6007 <% 6008 var image_url = person.build_image_url({width:60,height:60}); 6009 %> 6010 <img src="<%=image_url%>" height="60" width="60"> 6011 </div> 6012 <div class="detail-section"> 6013 <div> 6014 <div class="person-name"> 6015 6016 <% var url = '/profiles/' + person.id + '/sections/basic'; %> 6017 <a class="onepage-link" href="/onepage<%=url%>" data-url="<%=url%>"> 6018 <%-person.get('name')%></a> 6019 </a> 6020 <% if ( ! pending ){ %> 6021 <a class="remove-member">(remove)</a> 6022 <% } %> 6023 <br> 6024 <%-person.get('email') || 'No email'%> 6025 </div> 6026 <div class="member-actions"> 6027 <% if ( pending ){ %> 6028 <span class="label label-important">Pending Member</span> 6029 <div style="padding-top:5px"> 6030 <button type="button" class="danger reject-member">Decline</button> 6031 <button type="button" class="success approve-member">Approve</button> 6032 </div> 6033 <% } else { %>
6034 <%= ss.text_field({name:'employee_title', 6035 value:person.get('title'), 6036 placeholder:'Title'}) %> 6037 <br> 6038 <input type="checkbox" 6039 class="admin" 6040 <%= person.admin()?'checked' : '' %> > 6041 <span> 6042 Admin 6043 <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="" 6044 data-content="Admins can edit the company's profile and access its settings. There can be multiple 6045 company Admins. They can add other employees and they will receive communications 6046 regarding the company." 6047 data-original-title="Admin"> 6048 <i class="fas fa-question-circle icon-question-sign"></i> 6049 </a> 6050 </span> 6051 <br> 6052 <input type="radio" name="account_holder" class="account-holder" 6053 <%-person.get('account_holder') ? ' checked ' : ''%> 6054 <span> 6055 Billing Person 6056 <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="" 6057 data-content="The Billing Person will receive confirmation emails and expiry reminders for your company's membership, 6058 and is the person who can purchase or renew memberships on behalf of the company. To access the full range of billing 6059 functionality, please ensure that this member has a valid email address." 6060 data-original-title="Billing Person"> 6061 <i class="fas fa-question-circle icon-question-sign"></i> 6062 </a> 6063 </span> 6064 6065 <br> 6066 <input type="radio" name="primary_contact" class="primary-contact" 6067 <%-person.get('primary_contact') ? ' checked ' : ''%> 6068 <span> 6069 Contact Person 6070 <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="" 6071 data-content="The Primary Contact is the person whose contact info will appear on your company's profile." 6072 data-original-title="Primary Contact"> 6073 <i class="fas fa-question-circle icon-question-sign"></i> 6074 </a> 6075 </span> 6076 <br> 6077 <% if (ss_context.network_features.company_employee_sorting) { %>
6078 <%= ss.text_field({name:'sort_index', 6079 value:person.get('sort_index'), 6080 placeholder:'Sort Index'}) %> 6081 <% } %> 6082 <% } %> 6083 6084 <% if ( false && 'person.may_edit()' ){ %> 6085 <a class="edit-person">Edit</a> 6086 <% } %> 6087 6088 </div> 6089 </div> 6090 </div> 6091 </div> 6092 6093 </script>
6093 6094 6095
6095<script type="text/template" class="custom-section"> 6096 <% 6097 var plan_name = c.model.get('company_summary').plan_name; 6098 var plan_class = plan_name ? ss.fn.make_safe_for_css(plan_name) : 'no-plan'; 6099 %> 6100 <div class="company-custom-info-section plan_class-<%- plan_class %>"> 6101 <div class="alert alert-info"> 6102 Admin View: This page is only visible to network admins (people who can 6103 access the admin panel of your site). 6104 </div> 6105 <%= ss.text_area_row({label:'Internal Notes', 6106 name:'note', 6107 item:c.model, 6108 validations:''}) %> 6109 <%= ss.custom_fields({asset_key:'company',config_key:'admin_info'}, c.model ) %> 6110 </div> 6111 </script>
6111 6112 6113 6114
6114<script type="text/template" class="company-section"> 6115 <% 6116 c.companies.each( function( company ){ 6117 %> 6118 6119 <div> 6120 <%- company.get('name') %> 6121 </div> 6122 <% 6123 }); 6124 6125 if ( ! c.companies.length ){ 6126 %> 6127 <div class="alert alert-info"><%= c.model.get('name') %> is not part of any companies</div> 6128 <% 6129 } 6130 %> 6131 </script>
6131 6132 6133 6134
6134<script type="text/template" class="files-section"> 6135 <% 6136 var files = c.model.get('admin_uploader_files') || []; 6137 %> 6138 <ul> 6139 <% 6140 files.each(function( file ){ 6141 var file_path = 'admin_uploader_files.'+file.get('key')+'.file.file'; 6142 if (file.get('to_delete')){ 6143 return; 6144 } 6145 print('<li>'); 6146 print( ss.file_row({label:'File', 6147 item:c.model, 6148 name:file_path, 6149 is_private='True'})); 6150 }); 6151 %> 6152 </ul> 6153 <a href="#" class="add-file">+ Add File</a> 6154 </script>
6154 6155 6156
6156<script type="text/template" class="privacy-section"> 6157 <ul class="privacy_radio label_beside"> 6158 <% 6159 var name = c.model.get('name') || 'this company'; 6160 var privacy = c.model.get('company_directory_privacy') || 'public'; 6161 var privacy_options = 6162 [{value:'public', 6163 label:'<b>Open</b> (List '+ name +' in the Membership Directory for anyone to see)'}, 6164 {value:'public_to_groups', 6165 label:'<b>Members Only</b> (Only list ' + name + ' for members of ' + SS.app.current_network.name +')'}, 6166 {value:'private', 6167 label:'<b>Private</b> (Do not list ' + name + ' in the Membership Directory)'}] 6168 _.each( privacy_options, function( option ){ 6169 %> 6170 <li> 6171 <input type="radio" 6172 <%=option.value===privacy ? 'checked' : ''%> 6173 name="company_directory_privacy" 6174 data-name="company_directory_privacy" 6175 value="<%=option.value%>"><%=option.label%> 6176 <% }); %> 6177 </ul> 6178 </script>
6178 6179 6180
6180<script type="text/template" class="history-section"> 6181 <% 6182 var history_filters = [['All','all'], 6183 ['Profile Changes','profile_changes'], 6184 ['Imports','imports'], 6185 ['Exports','exports']]; 6186 %> 6187 <div class="button_group" data-toggle="buttons-radio"> 6188 <% _.each( history_filters, function( history_filter, index ){ %> 6189 <% 6190 var extra_class = ''; 6191 var label = history_filter[0]; 6192 var value = history_filter[1]; 6193 if ( index === 0 ){ 6194 extra_class = 'active'; 6195 } 6196 %> 6197 <button type="button" 6198 class="button default history-filter-type <%=extra_class%>" 6199 value="<%=value%>" 6200 ><%=label%></button> 6201 <% }); %> 6202 </div> 6203 <div class="history"></div> 6204 </script>
6204 6205
6205<script type="text/template" class="social-section"> 6206 <div> 6207 Social 6208 </div> 6209 </script>
6209 6210
6210<script type="text/template" class="public-section"> 6211 <div> 6212 Public 6213 </div> 6214 </script>
6214 6215 6216
6216<script type="text/template" class="locations-section"> 6217 <div class="location-editor-target"></div> 6218 </script>
6218 6219 6220
6220<script type="text/template" class="location-editor-template"> 6221 <% if (locations.length === 0) { %> 6222 <div class="pb2"><i>No locations were found for this company.</i></div> 6223 <% } else { %> 6224 <div class="pb2"> 6225 <button type="button" class="btn default save-locations pull-right"><i class="fas fa-save fa-lg mr1"></i>Save Location Changes</button> 6226 <div class="alert alert-success save-success absolute" style="width:73.5%" hidden>Location changes successfully saved.</div> 6227 <div class="alert alert-danger save-failure absolute" style="width:73.5%" hidden>Location changes not successfully saved. Please review for errors and re-save.</div> 6228 </div> 6229 <% locations.sort(function(location1,location2) { 6230 return (location1.get('name').toLowerCase() > location2.get('name').toLowerCase()) ? 1 : ((location2.get('name').toLowerCase() > location1.get('name').toLowerCase()) ? -1 : 0); 6231 }); 6232 _.each(locations, function(location) { %> 6233 <div class="location-to-edit w75 b1-lg br-5 mb2"> 6234 <div class="location-header-selector p1 fs14 bg-f5"> 6235 <a class="location-item-view-control mr3" id="<%- location.get('id') %>"><i class="fas fa-plus-circle fa-lg"></i></a><strong><%- location.get('name') %></strong> 6236 </div> 6237 <div class="location-edit-fields-target" hidden></div> 6238 </div> 6239 <% }); %> 6240 <% } %> 6241 <div><a class="btn btn-primary add-new-location"><i class="fas fa-plus mr1"></i>Add a New Location</a></div> 6242 </script>
6242 6243 6244
6244<script type="text/template" class="location-edit-fields-template"> 6245 <div class="location-edit p1-5 ml3-5"> 6246 <div><strong>Edit location data:</strong></div> 6247 <div class="location-data-fields pt1"> 6248 <form class="location-edit-form bb1-lg mr3"> 6249 <div class="label_beside"> 6250 <div class="field"> 6251 <label class="w-auto">Location Name:</label><i class="required_marker"></i> 6252 <input class="location-data-field input_box required w75 pull-right" name="name" value="<%- location.get('name') %>" data-validations="required"> 6253 </div> 6254 <div class="field"> 6255 <label class="w-auto">Street Address:</label> 6256 <input class="location-data-field input_box w75 pull-right" name="street_address" value="<%- location.attributes.address.street_address %>"> 6257 </div> 6258 <div class="field"> 6259 <label class="w-auto">City:</label> 6260 <input class="location-data-field input_box w75 pull-right" name="city" value="<%- location.attributes.address.city %>"> 6261 </div> 6262 <div class="field"> 6263 <label class="w-auto">Country:</label>
6264 <%= ss.select_row({name:'country', 6265 value:location.attributes.address.country, 6266 css_class:'location-data-field input_box w75i mt-n-1i pull-right country_binding_provinces', 6267 options:countries_and_states.ALL_COUNTRIES 6268 })%> 6269 </div> 6270 <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="CA"> 6271 <label class="w-auto">Province / State:</label> 6272 <%= ss.select_row({name:'state', 6273 value:location.attributes.address.state, 6274 css_class:'location-data-field input_box w75i mt-n-1i pull-right', 6275 options:countries_and_states.CANADIAN_PROVINCES})%> 6276 </div> 6277 <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="US"> 6278 <label class="w-auto">Province / State:</label>
6279 <%= ss.select_row({name:'state', 6280 value:location.attributes.address.state, 6281 css_class:'location-data-field input_box w75i mt-n-1i pull-right', 6282 options:countries_and_states.AMERICAN_STATES})%> 6283 </div> 6284 <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="AU"> 6285 <label class="w-auto">Province / State:</label> 6286 <%= ss.select_row({name:'state', 6287 value:location.attributes.address.state, 6288 css_class:'location-data-field input_box w75i mt-n-1i pull-right', 6289 options:countries_and_states.AUSTRALIAN_STATES})%> 6290 </div> 6291 <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="GB"> 6292 <label class="w-auto">Province / State:</label>
6293 <%= ss.select_row({name:'state', 6294 value:location.attributes.address.state, 6295 css_class:'location-data-field input_box w75i mt-n-1i pull-right', 6296 options:countries_and_states.UK_STATES})%> 6297 </div> 6298 <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="!CA,!US,!AU,!GB"> 6299 <label class="w-auto">Province / State:</label> 6300 <input class="location-data-field input_box w75 pull-right" name="state" value="<%- location.attributes.address.state %>"> 6301 </div> 6302 <div class="field"> 6303 <label class="w-auto">Postal / Zip Code:</label> 6304 <input class="location-data-field input_box w75 pull-right" name="zip_code" value="<%- location.attributes.address.zip_code %>"> 6305 </div> 6306 <div class="field"> 6307 <label class="w-auto">Email Address:</label> 6308 <input class="location-data-field input_box w75 pull-right" name="email" value="<%- location.get('email') %>"> 6309 </div> 6310 <div class="field"> 6311 <label class="w-auto">Phone Number:</label> 6312 <input class="location-data-field input_box w75 pull-right" name="phone" value="<%- location.get('phone') %>"> 6313 </div> 6314 <div class="field"> 6315 <label class="w-auto">Fax Number:</label> 6316 <input class="location-data-field input_box w75 pull-right" name="fax" value="<%- location.get('fax') %>"> 6317 </div> 6318 <div class="field"> 6319 <label class="w-auto">Website:</label> 6320 <input class="location-data-field input_box w75 pull-right" name="website" value="<%- location.get('website') %>"> 6321 </div> 6322 </div> 6323 </form 6324 </div> 6325 <div class="location-member-edit pt1 pr3"> 6326 <div><strong>Edit employee data:</strong></div> 6327 <div class="table-responsive pt1"> 6328 <table class="table table-bordered"> 6329 <thead> 6330 <tr> 6331 <td>Employee Name</td> 6332 <td>Email</td> 6333 <td>Action</td> 6334 </tr> 6335 </thead> 6336 <tbody> 6337 <% 6338 var members = []; 6339 var non_members = []; 6340 _.each(company.get('members').models, function(employee) { 6341 _.each(location.get('members'), function(member) { 6342 if (employee.id === member.user_id) { 6343 members.push(employee); 6344 } 6345 }); 6346 if (members.indexOf(employee) === -1) { 6347 non_members.push(employee); 6348 } 6349 }); 6350 %> 6351 <% _.each(members, function(employee) { %> 6352 <tr> 6353 <td><a href="/onepage/profiles/<%- employee.get('id') %>" target=_blank><%- employee.get('name') %></a></td> 6354 <td><%- employee.get('email') %></td> 6355 <td><i class="fas fa-user-times red mr1"></i><a class="move-employee remove" name=<%- employee.id %>>Remove from this location</a></td> 6356 </tr> 6357 <% }); %> 6358 <% _.each(non_members, function(employee) { %> 6359 <tr> 6360 <td><a href="/onepage/profiles/<%- employee.get('id') %>" target=_blank><%- employee.get('name') %></a></td> 6361 <td><%- employee.get('email') %></td> 6362 <td><i class="fas fa-user-plus green mr1"></i><a class="move-employee add" name=<%- employee.id %>>Add to this location</a></td> 6363 </tr> 6364 <% }); %> 6365 </tbody> 6366 </table> 6367 </div> 6368 </div> 6369 <div> 6370 <button class="btn btn-danger delete-location" name="<%- location.id %>"><i class="icon-trash icon-white pr2"></i>Delete this location</button> 6371 </div> 6372 </div> 6373 </script>
6373 6374 6375 </div> 6376 6377 6378 6379 6380 <div class="member-admin-templates"> 6381 6382
6382<script type="text/template" class="reset-password"> 6383 <div class="form-group"> 6384 <label>New Password</label> 6385 <input type="text" name="password" placeholder="New Password or Blank for Random" value="" 6386 data-name="password" data-validations="password_reset" class="form-control" style="width:50% !important;"> 6387 <div class="help-block"> 6388 Passwords must be at least <%=SS.app.current_network.password_minimum_length%> characters long (or you can leave the field blank and let SilkStart generate a random password. 6389 </div> 6390 </div> 6391 6392 The following email will be sent: 6393 <div class="dialog_message_preview"> 6394 <!--<h4>Your password has been reset</h4>--> 6395 Dear <%=c.user_name%> 6396 <br><br> 6397 Your password has been reset. 6398 <br><br> 6399 Your new password is: NEWPASSWORD 6400 <br><br> 6401 Go to <%=SS.app.current_network.base_url%> to log in with your email <%=c.email %>. 6402 <br><br> 6403 Thank you, 6404 <br> 6405 <%=SS.app.current_network.name%> Team 6406 </div> 6407 6408 </script>
6408 6409 6410
6410<script type="text/template" class="manage-chapter"> 6411 <% if (! c.network_map) { %> 6412 <div style="text-align:center"> 6413 <i class="fas fa-spinner fa-pulse fa-4x"></i> 6414 </div> 6415 <% } else { %> 6416 <table class="table table-bordered"> 6417 <thead> 6418 <tr> 6419 <th>Chapter Name</th> 6420 <th>Status</th> 6421 <th>Membership Plan</th> 6422 <th>Home Chapter</th> 6423 <th>Remove</th> 6424 </tr> 6425 </thead> 6426 <tbody> 6427 <% _.each(_.sortBy(c.network_permaids, function(network_permaid) {return c.network_map[network_permaid]['is_apex'] ? 0 : 1;}), function(network_permaid) { %> 6428 <% var network = c.network_map[network_permaid] %> 6429 <tr> 6430 <td><%= network['network_name'] %></td> 6431 <td><%= network['status'] %></td> 6432 <td><%= network['membership_name'] %></td> 6433 <td style="text-align:center"> 6434 <% if(!network['is_apex'] && _.some(ss_context.user_networks, function(user_network) {return user_network.permaid === network['network_permaid']})) { %> 6435 <% if(network['network_permaid'] === c.home_chapter) { %> 6436 <a class="current-home-chapter"><i data-permaid=<%= network['network_permaid'] %> class="fas fa-lg fa-check-circle" aria-hidden="true"></i></a> 6437 <% } else { %> 6438 <a class="make-home-chapter"><i data-permaid=<%= network['network_permaid'] %> class="far fa-lg fa-circle" aria-hidden="true"></i></a> 6439 <% } %> 6440 <% } else { %> 6441 <i class="fas fa-lg fa-lock" aria-hidden="true"></i> 6442 <% } %> 6443 </td> 6444 <td style="text-align:center"> 6445 <% if(!network['is_apex'] && _.some(ss_context.user_networks, function(user_network) {return user_network.permaid === network['network_permaid']})) { %> 6446 <a class="remove-network" data-permaid=<%= network['network_permaid'] %>><i class="fas fa-lg fa-times red" aria-hidden="true"></i></a> 6447 <% } else { %> 6448 <i class="fas fa-lg fa-lock" aria-hidden="true"></i> 6449 <% } %> 6450 </td> 6451 </tr> 6452 <% }) %> 6453 </tbody> 6454 </table> 6455 <% if(ss_context.network_features.active_on_only_one_chapter && c.network_permaids.length > 2) { %> 6456 <div class="alert alert-danger"> 6457 This person now belongs to more than one chapter. Are you sure you want to make this change? 6458 </div> 6459 <% } %> 6460 Add Chapter: 6461 <select name="select_use_chapter" multiple="multiple" class="select-user-chapter multi-select-target" 6462 data-placeholder="Select chapter"> 6463 <% _.each(ss_context.user_networks, function(network) { %> 6464 <% if(!_.contains(c.network_permaids, network.permaid)) { %> 6465 <option value="<%= network.permaid %>"><%= network.name %></option> 6466 <% } %> 6467 <% }); %> 6468 </select> 6469 6470 You can update the chapters that a user is a part of from this dialog. If you try to remove a user from a 6471 chapter, you must first make sure that they do not have any chapter specific plans, or else they will 6472 not be able to be removed from that chapter. 6473 <% } %> 6474 </script>
6474 6475 6476
6476<script type="text/template" class="send-password-reset"> 6477 The following email will be sent: 6478 <div class="dialog_message_preview"> 6479 Dear <%=c.user_name%>, 6480 <br /><br /> 6481 You have requested a password reset for <%=c.email %>. 6482 <br /><br /> 6483 Please use the following link to reset your password: 6484 [password reset link] 6485 <br /><br /> 6486 Thank you, 6487 <br /> 6488 <%=SS.app.current_network.name%> Team 6489 </div> 6490 6491 </script>
6491 6492 6493
6493<script type="text/template" class="add-note"> 6494 <% 6495 var note = c.note; 6496 6497 if ( note ){ 6498 note = ss.fn.escape_newlines( note ); 6499 %> 6500 <div class="field" style="max-height:200px;overflow-y:auto"> 6501 <div class="indented-block field_displayed_data"> 6502 <%= note %> 6503 </div> 6504 </div> 6505 <% 6506 } 6507 %> 6508 <%= ss.text_area_row({label:'Internal Note', 6509 name:'note', 6510 validations:'required'}) %> 6511 </script>
6511 6512 6513
6513<script type="text/template" class="send-welcome"> 6514 <form class="dialog-scroll-container"> 6515 <%= ss.text_row( {label:'Subject', 6516 name:'bulk_network_invite_subject', 6517 validations:'required', 6518 value:c.subject_template } ) %> 6519 <div class="field row"> 6520 <label class="col-sm-3" style="width:25%">Send a Custom Message:</label> 6521 <div class="col-sm-9"> 6522 <div class="help-block"> 6523 Customize your invitation. You can use the replacement variables as you see fit, but be sure to include {invite_url} as the destination for one of your links! 6524 </div> 6525 <table class="table table-bordered"> 6526 <thead> 6527 <tr><th><strong>Replacement Text</strong></th><th><strong>Value</strong></th></tr> 6528 </thead> 6529 <tbody> 6530 <tr><td>{user_first_name}</td><td>The user's first name</td></tr> 6531 <tr><td>{invite_url}</td><td>A signup URL for your site</td></tr> 6532 <tr><td>{network_name}</td><td>Your organization's name</td></tr> 6533 </tbody> 6534 6535 </table> 6536 <% if (c.body_template) { %> 6537 <div class="inline_field_block field_displayed_data"> 6538 <div class="bulk_network_invite_personalization ckeditor_input" name="bulk_network_invite_personalization" style="display:none"> 6539 <%= c.body_template %> 6540 </div> 6541 </div> 6542 <% } %> 6543 </div> 6544 </div> 6545 6546 <input type="hidden" value="${invite_type}" name="invite_type"> 6547 <input type="hidden" value="" name="continue_failed_job"
6547class="continue_failed_job"> 6548 6549 <% 6550 var redirect_url = SS.app.current_network.base_url; 6551 if ( ! _.string.endsWith( redirect_url, '/' ) ){ 6552 redirect_url += '/'; 6553 } 6554 redirect_url += 'setup'; 6555 %> 6556 6557 <%= ss.text_row({label:'Redirect Url', 6558 name:'redirect_url', 6559 validations:'required url', 6560 value: redirect_url }) %> 6561 6562 <div class="field"> 6563 <label></label> 6564 <div class="inline_field_block field_displayed_data"> 6565 We recommend you use the default address for this email, 6566 <br> 6567 but if you need to redirect users to a different page instead, 6568 <br> 6569 you can set that URL here. 6570 </div> 6571 </div> 6572 <!-- 6573 <hr> 6574 <div class="field"> 6575 <label>Send to:</label> 6576 <div class="number_of_people" data-number="${number_of_invite}" data-number_nologin="${number_no_last_login}">${number_no_last_login} people</div> 6577 </div> 6578 <div class="field"> 6579 <label>Include people who have already logged in:</label> 6580 <input type="checkbox" name="include_has_last_login" class="bulk_network_invite_display_number" value=1> 6581 </div> 6582 --> 6583 </form> 6584 </script>
6584 6585 6586
6586<script type="text/template" class="change-plan"> 6587 <form> 6588 <% 6589 var options = [{label:'No Plan', value:''} ]; 6590 c.plans.each( function(plan){ 6591 options.push( {label: plan.get('name'),value:plan.id} ); 6592 }); 6593 6594 print(ss.select_row({label:'Membership Plan', 6595 name:'membership_plan', 6596 options:options, 6597 value:c.model.get_plan_id()})); 6598 6599 print(ss.text_row({label:'Expiry Date', 6600 name:'expiry_date', 6601 css_class:'date-picker-field form-control undo-field', 6602 value:ss.fn.format_date(c.model.get_expiry_date()), 6603 validations: 'date', 6604 placeholder:'Latest possible expiry date'})); 6605 6606 %> 6607 <div class="field"> 6608 <label>Lifetime plan?</label> 6609 <input data-name="lifetime" class="lifetime-checkbox" name="lifetime" type="checkbox" /> 6610 </div> 6611 <div class="field"> 6612 <label>Notify user by email?</label> 6613 <input data-name="notify_user_membership_change" class="notify-user-membership-change-checkbox" name="notify_user_membership_change" type="checkbox" /> 6614 </div> 6615 <div class="field description"> 6616 Please note that changing the plan or expiry date will not bill this member. Changing a member's expiry date and/or membership plan is not simply an edit to their current plan. Making a change will stop the current membership and start a new one on the date you make the change. Please consider this before making a change. 6617 </div> 6618 <% if (c.model.get('has_recurring_billing_membership')) { %> 6619 <div class="panel panel-danger"> 6620 <div class="panel-heading"> 6621 <%- c.model.get('name') %> has set up automatic billing on their account. 6622 This action will end their automatic billing cycle and stop them from being billed automatically for membership on <%- c.model.get_expiry_date() %>. 6623 </div> 6624 </div> 6625 <% } %> 6626 </form> 6627 </script>
6627 6628 6629
6629<script type="text/template" class="offer-plan"> 6630 <div class="alert"> 6631 <b>Note</b>: When offering a plan, an offer email is <u>not</u> automatically sent by SilkStart to the member 6632 </div> 6633 <form> 6634 <% 6635 var options = [{label:'Choose a Plan to Offer', value:''} ]; 6636 6637 var company_summary = c.model.get('company_summary'); 6638 var user_summary = c.model.get('user_summary'); 6639 6640 var offered_plan = c.offered_plan; 6641 6642 xxx_offered_plan = offered_plan; 6643 6644 var summary = company_summary || user_summary; 6645 6646 offered_plan_id = offered_plan && offered_plan.get('id'); 6647 var offered_plan_price = ''; 6648 if (offered_plan ){ 6649 offered_plan_price = offered_plan.get_price().cost_in_dollars(); 6650 } 6651 6652 c.plans.each( function( plan ){ 6653 options.push( {label: plan.get('name'),value:plan.id} ); 6654 }); 6655 6656 print(ss.select_row({ 6657 label:'Membership Plan', 6658 name:'membership_plan_id', 6659 options:options, 6660 value:offered_plan_id 6661 })); 6662 6663 print(ss.currency_row({ 6664 label:'Membership Fee', 6665 name:'membership_fee', 6666 value:offered_plan_price, 6667 placeholder:'' 6668 })); 6669 6670 print(ss.text_row({ 6671 label:'Offer Details', 6672 name:'offer_details', 6673 css_class:'display-inline-block', 6674 popover:{ 6675 content:"Give a short explanation to provide more context to the user about why they have " + 6676 "been offered the discounted plan." 6677 } 6678 })); 6679 6680 %> 6681 </form> 6682 </script>
6682 6683 6684
6684<script type="text/template" class="cancel-offer"> 6685 <div class="alert alert-warning"> 6686 <% if ( c.model.get('company_summary') ) { %> 6687 Deleting this offer won't change any existing plans this company has signed up for and will allow the company to sign up for any standard plans that match their company type. 6688 <% } else { %> 6689 Deleting this offer won't change any existing plans this individual has signed up for and will allow the individual to sign up for any standard plans. 6690 <% } %> 6691 </div> 6692 </script>
6692 6693 6694
6694<script type="text/template" class="change-signup-date"> 6695 <form> 6696 <div> 6697 <label>Date</label> 6698 <input class="date_input form-control date required" name="date" 6699 value="<%- ss.fn.format_date(c.model.get('signup_date')) %>" type="text" /> 6700 </div> 6701 </form> 6702 </script>
6702 6703 6704
6704<script type="text/template" class="membership-section"> 6705 <% 6706 var member_number = c.model.get('member_number'); 6707 6708 var org_summary = c.model.get('company_summary'); 6709 var user_summary = c.model.get('user_summary'); 6710 6711 var summary = org_summary || user_summary; 6712 6713 var plan_name = summary.plan_name; 6714 var expiry = summary.membership_expiry_date; 6715 6716 if (!expiry && summary.mixed_expiry_date == ss.config.CONSTANTS.LIFETIME) { 6717 expiry = ss.config.CONSTANTS.LIFETIME 6718 } 6719 6720 var state = summary.state; 6721 6722 var latest_plan = summary.latest_plan; 6723 6724 var is_company_plan = summary.on_company_plan; 6725 6726 var can_edit = SS.app.current_user.network_admin; 6727 safe_log('membership section'); 6728 %> 6729 <div> 6730 <div class="field"> 6731 <label>Signup Date:</label> 6732 <div class="field_displayed_data"> 6733 <% if ( c.model.get('company_summary') ) { %>
6734 <%= ss.fn.format_date( c.model.get('signup_date') ) %> 6735 <% if (c.model.get('can_modify_membership')) {%> 6736 <a href="#" class="change-signup-date">(Change)</a> 6737 <% } %> 6738 <% } else { %> 6739 <%= ss.fn.format_date( c.model.get('created') ) %> 6740 <% } %> 6741 </div> 6742 </div> 6743 6744 <% if ( member_number ){ 6745 print( ss.display_row({label:'Member Number', value:member_number})); 6746 } %> 6747 6748 <div class="field"> 6749 <label>Current Membership Plan:</label> 6750 <div class="field_displayed_data"> 6751 <%= plan_name || 'No Plan' %> 6752 <% if (c.model.get('can_modify_membership')) {%> 6753 <a href="#" class="change-plan">(Change Plan)</a> 6754 <% } %> 6755 <%=
6755ss.fn.popover({title:'Current Membership Plan', 6756 content:"If this user has a current active membership, the plan name will display here. " + "<br/><br/>" + 6757 "<strong>Caution</strong> - Changing a member\'s expiry date and/or membership plan is not simply an edit to their current plan. " + 6758 "Making a change will stop the current membership and start a new one on the date you make the change. " + 6759 "Please consider this before making a change."}) %> 6760 </div> 6761 </div> 6762 <div class="field"> 6763 <label>Expiry Date:</label> 6764 <div class="field_displayed_data"> 6765 <% if (expiry === ss.config.CONSTANTS.LIFETIME) { %> 6766 <%= expiry %> 6767 <% } else { %> 6768 <%= ss.fn.format_date( expiry ) %> 6769 <% } %> 6770 </div> 6771 </div> 6772 <div class="field"> 6773 <label>Membership Status:</label> 6774 <div class="field_displayed_data">
6775 <%= state %> 6776 6777 <% 6778 if ( state !== 'Active' ){ 6779 if ( latest_plan ){ 6780 print( ' - ' + latest_plan ); 6781 } 6782 } 6783 6784 6785 if ( !can_edit || !c.model.get('can_modify_membership') ){ 6786 } else if ( is_company_plan && user_summary ){ 6787 // If a user has an active plan don't let it be modified 6788 } else if ( state === 'Active' ){ 6789 print(' <a class="cancel-membership">(Cancel Membership)</a>'); 6790 } else { 6791 if ( state === 'Cancelled' ){ 6792 var cancellation = c.model.get('cancellation'); 6793 if (cancellation.reason) { 6794 print(' [Reason: ' + cancellation.reason + ']'); 6795 } 6796 print(' <a href="#" class="uncancel">(Remove Cancellation) </a>'); 6797 6798 } else { 6799 print(' <a href="#" class="cancel-membership">(Cancel) </a>'); 6800 } 6801 } 6802 var content = ''; 6803 content += "<p><strong>Active</strong> - Members are active if they have a membership plan that they've either been "; 6804 content += 'granted or for which they or their company have paid.'; 6805 content += '<p><strong>Contact</strong> - Members who have never had a membership plan are considered contacts '; 6806 content += '<p><strong>Expired</strong> - Members who have had a membership plan in the past but have had '; 6807 content += 'their membership lapse are considered expired. These members '; 6808 content += 'may still be sent renewal notices and may have renewal invoices '; 6809 content += 'generated '; 6810 content += "<p><strong>Cancelled</strong> - Cancelled members don't receive renewal reminders or invoices."; 6811 print(ss.fn.popover({title:'Membership Status', content:content})); 6812 %> 6813 6814 </div> 6815 </div> 6816 6817 6818 <hr> 6819 6820 <% 6821 var offered_plan_id = summary.offered_plan_id; 6822 var offered_plan_name = summary.offered_plan_name; 6823 var offered_plan_price = summary.offered_plan_price_description; 6824 %> 6825 6826 <div class="field"> 6827 <label>Membership Plan Offer:</label> 6828 <div class="field_displayed_data"> 6829 <% if ( offered_plan_id ) { %> 6830 <%= offered_plan_name %> 6831 @ 6832 <%= offered_plan_price %> 6833 <% } else { %> 6834 No offer 6835 <% } %>
6836 <%= ss.fn.popover({title:'Offered Plan', 6837 content:'By giving a member or prospective member an offer you can give them a special deal, making it easier for them to sign up and restricting their choice of plans.'}) %> 6838 6839 </div> 6840 </div> 6841 <div class="indented-block"> 6842 <% if ( can_edit ) { %> 6843 <% if ( offered_plan_id ) { %> 6844 <button type="button" class="offer-plan">Change Offer</button> 6845 <button type="button" class="danger cancel-offer">Cancel Offer</button> 6846 <% } else { %> 6847 <button type="button" class="offer-plan">Make an Offer</button> 6848 <% } %> 6849 <% } %> 6850 </div> 6851 6852 </div> 6853 </script>
6853 6854 6855 6856 </div> 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 <div class="sign_in_modal modal fade" id="sign_in_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 6868 <div class="modal-dialog"> 6869 <div class="modal-content"> 6870 <div class="modal-header"> 6871 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> 6872 <h4 class="modal-title">Log In</h4> 6873 </div> 6874 <div class="modal-body"> 6875 6876 <div id="sign_in_div"> 6877 6878 <div class="sign_in_form"> 6879 <form method="post" id="login_form_dropdown" class="form-horizontal" action="/auth/login" role="form"> 6880 <input type='hidden' name='associate_with_social_network' value=''> 6881 <input type="hidden" name="after_login" value="/auth/login"> 6882 <div class="form-group"> 6883 <label for="member-username-input" class="col-sm-2 control-label">Email:</label> 6884 <div class="col-sm-10"> 6885 <input type="text" id="member-username-input" class="form-control required" placeholer="email" name="username_dropdown" value=""> 6886 </div> 6887 </div> 6888 <div class="form-group"> 6889 <label for="member-password-input" class="col-sm-2 control-label">Password:</label> 6890 <div class="col-sm-10"> 6891 <input class="form-control required" id="member-password-input" type="password" name="password_dropdown"> 6892 <span class="help-block"> 6893 <div class="ml-5 pull-right"> 6894 6895 <a tabindex="0" class="popover_link " role="button" data-toggle="popover" data-trigger="focus" title="Forgot your password" data-content="Select this to reset your password via email. 6896 If your email is already connected to an account but you have not logged in yet, you may also setup your password for the first time." aria-label="Forgot your password Help"><span class="fas fa-question-circle icon-question-sign"></span></a> 6897 </div> 6898 <a href="/auth/forgotten_password" class="pull-right"> 6899 Forgot your password? 6900 </a> 6901 </span> 6902 </div> 6903 </div> 6904 6905 <div class="form-group"> 6906 <div class="col-xs-12"> 6907 <button type="submit" class="btn btn-primary pull-right">Log In</button> 6908 </div> 6909 </div> 6910 6911 </form> 6912 </div> 6913
6913<script> 6914 $form = $("#login_form_dropdown"); 6915 6916 var validator = $form.validate({ignore:[],focusInvalid:true}); 6917 </script>
6917 6918 6919 </div> 6920 6921 </div> 6922 <div class="modal-footer center"> 6923 Not a member? <a href="https://www.acpcpa.ca:443/join">Sign up</a>. 6924 </div> 6925 </div> 6926 </div> 6927 </div> 6928 6929 6930 6931 6932 6933 6934 6935 </body> 6936 </html> 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087
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.