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