CINXE.COM

Missouri 3rd Party Testing Labs

<!DOCTYPE html> <html class="" lang="en"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta property="og:site_name" content="MoCannTrade" /> <meta property="og:description" content="" /> <meta property="og:title" content="Missouri 3rd Party Testing Labs" /> <meta property="og:url" content="https://www.mocanntrade.org/cpages/3rd-party-testing-labs" /> <meta property="og:image" content="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiOGFkYTUxZWExZjA1Y2QyMDZhYWIucG5n/560x292" /> <meta property="og:updated_time" content="2024-07-09T16:51:09.925000" /> <meta property="og:type" content="website" /> <meta property="twitter:image" content="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiOGFkYTUxZWExZjA1Y2QyMDZhYWIucG5n/560x292" /> <meta property="twitter:description" content="" /> <meta property="twitter:card" content="summary" /> <meta property="twitter:title" content="Missouri 3rd Party Testing Labs" /> <title>Missouri 3rd Party Testing Labs</title> <meta name="description" content="Missouri cannabis testing labs"/> <meta name="keywords" content="Missouri cannabis testing labs, Missouri cannabis"/> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <link href="https://d3lut3gzcpx87s.cloudfront.net/css/sass/1732657221.4_91326088eadc715aa988c7c08735e166/mocanntrade/premium1.css" rel="stylesheet" > <link href="https://d3lut3gzcpx87s.cloudfront.net/css/sass/1732657221.4_91326088eadc715aa988c7c08735e166/mocanntrade/premium1b.css" rel="stylesheet" > <link href="https://d3lut3gzcpx87s.cloudfront.net/css/sass/1732657221.4_91326088eadc715aa988c7c08735e166/mocanntrade/custom-premium1.css" rel="stylesheet" > <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> <!--[if IE]><link rel="stylesheet" href="/res/sass/all-ie-only.css" /><![endif]--> <link rel="stylesheet" href="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jQuery-File-Upload/css/jquery.fileupload-ui.css"> <script> window.ss = window.ss || {}; ss.config = ss.config || {}; ss.config.CDN_URL = "https://d3lut3gzcpx87s.cloudfront.net"; ss.config.THEME = "premium1" ss.config.PARENT_THEME = "" 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} ss.config.FEATURES = {"notification_customization": true, "admin_only_secret_questions": true, "failed_login_attempt_lockout": true, "capped_company_plans": true, "plan_based_event_discounts": true}; 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", "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"]]}; ss.config.TERMS = {"singular_individual": "people", "singular_employee": "Employee", "plural_event": "Events", "singular_group": "Industry Discussion and Buy/Sell", "plural_employee": "Employees", "plural_company": "Companies", "company_indefinite_article": "a", "singular_article": "News", "singular_blog": "blog", "plural_blog": "Blogs", "plural_job": "Missouri Cannabis Industry Job Postings", "plural_article": "News", "plural_group": "Members Only Forums", "plural_individual": "People", "singular_event": "event", "singular_job": "MoCannTrade Medical Cannabis Industry Jobs", "singular_company": "company"} ss.config.ASSETS = {"team_categories": ["board-of-directors", "advisory-board", "staff", "dis", "man", "gov", "het", "cul"]} </script> <script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/require.min.js"></script> <script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jquery-1.11.3.min.js"></script> <script type="text/javascript"> var js_marker = "1706552593.37"; var FILE_UPLOAD = '/res/js/os/jQuery-File-Upload/js/'; require.config({ baseUrl: "/res/js/os", paths: { 'jquery.ui.widget': FILE_UPLOAD + 'vendor/jquery.ui.widget', tmpl: 'http://blueimp.github.com/JavaScript-Templates/tmpl.min.js', fileupload : FILE_UPLOAD + 'jquery.fileupload', // File processing fileuploadfp : FILE_UPLOAD + 'jquery.fileupload-fp', fileuploadui : FILE_UPLOAD + 'jquery.fileupload-ui' }, shim:{ underscore: { exports: '_' }, jquery: { exports: '$', init: function(){ return $; } } } }); // function ss_require(list_of_files, func){ var files_with_marker = []; for(f_index in list_of_files){ files_with_marker.push(list_of_files[f_index]+'?marker='+js_marker); } require(files_with_marker,function(templates){ func(); }); } </script> <script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jquery-migrate-1.1.1.min.js"></script> <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=1593018300.15'></script> <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==/gl3668'></script> <script src="https://js.stripe.com/v3/"></script> <script type="text/javascript" src="https://d3lut3gzcpx87s.cloudfront.net/res/js/os/jquery-ui-1.10.2/ui/minified/jquery-ui.min.js"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); // SS-3783 had to do it like this because // trying to conditionally return an object or a string means // this will return auto, instead of 'auto' ga('create', 'UA-121328875-1', 'auto'); ga('set', 'anonymizeIp', true); ga('send', 'pageview'); </script> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-T0YPCC8833"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-T0YPCC8833', { 'anonymize_ip': true}); </script> <link rel="canonical" href="https://www.mocanntrade.org/cpages/3rd-party-testing-labs"/> <script> SS.app = { "current_company": { "company_name": null, "company_id": null }, "current_network": { "spouse_fields_enabled": false, "currency": "USD", "company_phone_required": false, "enable_company_locations": "True", "id": "5dcc2d4e686213047ed0baa8", "funds_enabled": true, "base_url": "https://www.mocanntrade.org/", "company_contact_info_required": false, "detailed_attendee_company_info_checked": "", "permaid": "mocanntrade", "has_plans": true, "duplicate_company_name_allowed": false, "has_custom_join_url": true, "company_profile_social_media": true, "enable_share_popup": true, "member_number_enabled": true, "password_minimum_length": "6", "company_website_required": false, "name": "MoCannTrade", "contact_form_email": "", "add_employee_help_text": "", "currency_symbol": "$", "company_address_required": false }, "current_user": { "phone_number": null, "city": null, "first_name": null, "last_name": null, "province": null, "name": null, "admin": false, "created": null, "url": null, "email": null, "status": null, "network_admin": false, "postal_code": null, "advanced": false, "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=\"\" >", "additional_info": null, "id": null, "street_address": null, "permissions": {} } }; SS.page = { config: { } }; </script> <script> $( function(){ var lastError = null; var errors = []; var errorBatch = null; window.onerror = function(message, url, lineNumber) { // If a user is using a Titanium Appcelerator app, it will cause errors, to a huge volume // and not because our system, but because it will constantly be looking for something the page // doesn't have if (message.indexOf("TiApp is not defined") > 0) { return; } var error = { message: message, url: url, lineNumber: lineNumber }; // If the error is different than the last one we saw, log it, // otherwise, don't worry about it. if (!lastError || (lastError.message != error.message || lastError.url != error.url || lastError.lineNumber != error.lineNumber) ) { errors.push(error); lastError = error; // Batch the errors, so that we don't DOS the servers with error messages if (!errorBatch) { // Batch any error messages within 1 second, so that we can send them as a group errorBatch = window.setTimeout(function () { $.ajax({ url: '/error/log_errors', type: "POST", data: JSON.stringify(errors), contentType: "application/json" }); errors = []; lastError = null; },60000); } } // Allow the default error handler to go as well. return false; }; }); </script> <script type="text/javascript"> $(document).ready(function(){ if (window.location.href.indexOf('/cpages/home') > -1) { $('.full_width_page .custom_webpage_section_view:nth-of-type(even) > div > div').addClass('homepage-alt-bg'); $('.custom_webpage_section_view:nth-of-type(even) > div > div .ss-panel .ss-panel-header .item_name a').css({ 'color': '#fff' }); } }) </script> <script type="text/javascript"> $(document).ready(function () { if ($('#main_content1') && $('.subcontainer_style4')) { $(document).on('click','[data-toggle="collapse"]',function(){ $('.collapse.in').collapse('hide'); $('.custom_webpage_section_heading_view:not(.collapsed)').not(this).addClass('collapsed') }); $.each($('.cps_subcontainer > .subcontainer_style4'), function (ind) { $('.subcontainer_style1.custom_webpage_section_heading_view', this).addClass('collapsed').attr({ 'data-toggle': 'collapse', 'data-parent': '#main_content1', 'href': '#collapse' + parseInt(ind + 1) }); $('.subcontainer_style1.custom_webpage_section_richtext_view', this).addClass('panel-collapse collapse').attr('id', 'collapse' + parseInt(ind + 1)); }); } }); </script> <script type="text/javascript"> $(document).ready(function () { if ($('#committees_content1') && $('.committees_style4')) { $(document).on('click','[data-toggle="collapse"]',function(){ $('.collapse.in').collapse('hide'); $('.custom_webpage_section_heading_view:not(.collapsed)').not(this).addClass('collapsed') }); $.each($('.cps_subcontainer > .committees_style4'), function (ind) { $('.subcontainer_style1.custom_webpage_section_heading_view', this).addClass('collapsed').attr({ 'data-toggle': 'collapse', 'data-parent': '#committees_content1', 'href': '#collapse' + parseInt(ind + 1) }); $('.subcontainer_style1.custom_webpage_section_richtext_view', this).addClass('panel-collapse collapse').attr('id', 'collapse' + parseInt(ind + 1)); }); } }); </script> <script type="text/javascript"> $(document).ready(function () { var footer_logo = $('#site_footer .footer-logo .navbar-brand img'); if (footer_logo) { footer_logo.attr('src', 'https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS81ZTUwMjY1NDg5M2FhYTU2NmYzMTJiODQucG5n/x'); } }); </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WTXW2WPB');</script> <!-- End Google Tag Manager --> </head> <body class="white_panel_background cpage 657a1e4f1995c705950440e3 cpage_657a1e4f1995c705950440e3 cpage_3rd-party-testing-labs cpage-template2 " > <a href="#main" class="sr-only sr-only-focusable">Skip to Main Content</a> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WTXW2WPB" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <nav id="main-menu-mobile" class="hidden"> <ul> <li class="clearfix"> <a class="signup_button mobile-menu-prime-link" href="https://mocanntrade.silkstart.com/cpages/membership" >Join MoCannTrade Now</a> <a class="mobile-menu-prime-link" href="/auth/login">Login</a> </li> <li> <a href="/cpages/about" class="" > About </a> <ul> <li> <a href="/cpages/economic-impact" class="" > Economic Impact </a> </li> <li> <a href="/cpages/microbusiness" class="" > Missouri Microbusiness </a> </li> <li> <a href="/cpages/mocanntrade-pac" class="" > MoCannTrade PAC </a> </li> <li> <a href="/cpages/member-brands" class="" > Missouri Member Brands </a> </li> </ul> </li> <li> <a href="/cpages/membership" class="" > Membership </a> <ul> <li> <a href="/cpages/licensed-facility" class="" > Licensed Facility Memberships </a> </li> <li> <a href="/cpages/licensed-testing-lab" class="" > Licensed Testing Lab Membership </a> </li> <li> <a href="/cpages/service-providers" class="" > Service Provider Memberships </a> </li> <li> <a href="/cpages/microbusiness" class="" > Microbusiness Membership </a> </li> </ul> </li> <li> <a href="/team/board-of-directors" class="" target=&#39;_blank&#39; > Board and Leadership </a> <ul> <li> <a href="/team/advisory-board" class="" > Advisory Board </a> </li> <li> <a href="/team/gov" class="" > Government Affairs Committee </a> </li> <li> <a href="/team/cul" class="" > Cultivation Committee </a> </li> <li> <a href="/team/man" class="" > Manufacturing/Testing Lab Committee </a> </li> <li> <a href="/team/dis" class="" > Dispensary Committee </a> </li> <li> <a href="/team/het" class="" > Healthcare Education and Training Committee </a> </li> <li> <a href="/team/staff" class="" > Staff </a> </li> <li> <a href="/cpages/board-nomination" class="" > Board Nomination Form </a> </li> </ul> </li> <li> <a href="/events" class="" > Events </a> </li> <li> <a href="/articles" class="" > News &amp; Resources </a> <ul> <li> <a href="/cpages/physician-education-resources" class="" > Physician Education Resources </a> </li> <li> <a href="/cpages/jobs-benefits-hr" class="" > Jobs/Benefits/Training </a> </li> <li> <a href="/jobs" class="" target=&#39;_blank&#39; > Job Board </a> </li> <li> <a href="/cpages/do-good-organizations" class="" > Cannabis Industry Do-Good Organizations </a> </li> <li> <a href="/cpages/association-insurance-program" class="" > Association Insurance Providers </a> </li> <li> <a href="/cpages/3rd-party-testing-labs" class="" > Missouri 3rd Party Testing Labs </a> </li> </ul> </li> <li> <a href="/cpages/contact" class="" > Contact </a> </li> <li> <a href="/memberportal" class="" target=&#39;_blank&#39; > Member Portal </a> <ul> <li> <a href="/directory?current_page=1&amp;sort_type=featured&amp;search_for=company&amp;asset_type=company_user&amp;display_type=default" class="" target=&#39;_blank&#39; > Member Directory </a> </li> <li> <a href="/cpages/meetup-presentations-1" class="" > Meetup and Event Presentations </a> </li> <li> <a href="/cpages/resource-library" class="" target=&#39;_blank&#39; > Resource Library </a> </li> <li> <a href="/cpages/logos-and-guidelines" class="" target=&#39;_blank&#39; > Logos and Guidelines </a> </li> <li> <a href="/cpages/dispensarymap" class="" > Dispensary Facility Locator </a> </li> <li> <a href="/cpages/brand-landscape-map" class="" > Missouri Brand Landscape Map </a> </li> <li> <a href="/cpages/missouri-cannabis-facility-list" class="" > Missouri Cannabis Facility ATO List </a> </li> <li> <a href="/cpages/feedback" class="" target=&#39;_blank&#39; > Industry Feedback </a> </li> </ul> </li> </ul> </nav> <script type="text/javascript"> $(document).ready(function() { $("#main-menu-mobile").removeClass('hidden'); $("#main-menu-mobile").mmenu({ position:'right', direction:'left' }); }); </script> <div id='fb-root'></div> <div class="site" id="page"> <header class="site-header "> <a href="#main-menu-mobile" class="visible-sm visible-xs mobile-menu-toggle-switch"><i class="fa fa-bars fa-2x"></i></a> <div id="header_topbar" class="hidden-sm hidden-xs"> <div class="container"> <div class="row"> <div class="col-xs-12"> <div class="pull-left"> <div class="navbar-header"> <a href="/cpages/home" class="navbar-brand"> <img src='https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS8wNTJkY2UyZi1jMjFmLTRlMzctODQ0Yi1hNDU1MGRlOTYyMTcucG5n/440x140fPNG' style='padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; ' alt='MoCannTrade' resize_with_padding='True' class="img-responsive" alt="" > </a> </div> </div> <div id="header-account-buttons" class="pull-right"> <div id="header_topbar_account" class="pull-left"> <div class="sign_in_block media_signin"> <ul class="nav navbar-nav pull-right sign_in_ul sign_in_section_js"> <li class="sign_in_button" id="login_button"> <a href="#" data-toggle="modal" data-target="#sign_in_modal">Login</a> </li> <li> <a class="signup_button" href="https://mocanntrade.silkstart.com/cpages/membership" >Join MoCannTrade Now</a> </li> </ul> </div> </div> </div> </div> </div> </div> </div> <div class="navbar navbar-default" role="navigation"> <div class="container"> <div class="visible-xs visible-sm"> <a href="/cpages/home" class="navbar-brand"> <img src='https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS8wNTJkY2UyZi1jMjFmLTRlMzctODQ0Yi1hNDU1MGRlOTYyMTcucG5n/440x140fPNG' style='padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; ' alt='MoCannTrade' resize_with_padding='True' class="img-responsive" alt="" > </a> </div> <div class="navbar-collapse collapse hidden-sm hidden-xs main-nav"> <ul class="nav navbar-nav" data-sm-options="{subMenusSubOffsetX: -5, subMenusMaxWidth: 'None'}"> <li class=" dropdown "> <a href="/cpages/about" class=" " data-hover=dropdown data-toggle=dropdown data-target=# > About </a> <ul class="dropdown-menu"> <li class=" "> <a href="/cpages/economic-impact" class=" " > Economic Impact </a> </li> <li class=" "> <a href="/cpages/microbusiness" class=" " > Missouri Microbusiness </a> </li> <li class=" "> <a href="/cpages/mocanntrade-pac" class=" " > MoCannTrade PAC </a> </li> <li class=" "> <a href="/cpages/member-brands" class=" " > Missouri Member Brands </a> </li> </ul> </li> <li class=" dropdown "> <a href="/cpages/membership" class=" " data-hover=dropdown data-toggle=dropdown data-target=# > Membership </a> <ul class="dropdown-menu"> <li class=" "> <a href="/cpages/licensed-facility" class=" " > Licensed Facility Memberships </a> </li> <li class=" "> <a href="/cpages/licensed-testing-lab" class=" " > Licensed Testing Lab Membership </a> </li> <li class=" "> <a href="/cpages/service-providers" class=" " > Service Provider Memberships </a> </li> <li class=" "> <a href="/cpages/microbusiness" class=" " > Microbusiness Membership </a> </li> </ul> </li> <li class=" dropdown "> <a href="/team/board-of-directors" class=" " data-hover=dropdown data-toggle=dropdown data-target=# target=_blank > Board and Leadership </a> <ul class="dropdown-menu"> <li class=" "> <a href="/team/advisory-board" class=" " > Advisory Board </a> </li> <li class=" "> <a href="/team/gov" class=" " > Government Affairs Committee </a> </li> <li class=" "> <a href="/team/cul" class=" " > Cultivation Committee </a> </li> <li class=" "> <a href="/team/man" class=" " > Manufacturing/Testing Lab Committee </a> </li> <li class=" "> <a href="/team/dis" class=" " > Dispensary Committee </a> </li> <li class=" "> <a href="/team/het" class=" " > Healthcare Education and Training Committee </a> </li> <li class=" "> <a href="/team/staff" class=" " > Staff </a> </li> <li class=" "> <a href="/cpages/board-nomination" class=" " > Board Nomination Form </a> </li> </ul> </li> <li class=" "> <a href="/events" class=" " > Events </a> </li> <li class=" dropdown "> <a href="/articles" class=" " data-hover=dropdown data-toggle=dropdown data-target=# > News &amp; Resources </a> <ul class="dropdown-menu"> <li class=" "> <a href="/cpages/physician-education-resources" class=" " > Physician Education Resources </a> </li> <li class=" "> <a href="/cpages/jobs-benefits-hr" class=" " > Jobs/Benefits/Training </a> </li> <li class=" "> <a href="/jobs" class=" " target=_blank > Job Board </a> </li> <li class=" "> <a href="/cpages/do-good-organizations" class=" " > Cannabis Industry Do-Good Organizations </a> </li> <li class=" "> <a href="/cpages/association-insurance-program" class=" " > Association Insurance Providers </a> </li> <li class=" active "> <a href="/cpages/3rd-party-testing-labs" class=" selected" > Missouri 3rd Party Testing Labs </a> </li> </ul> </li> <li class=" "> <a href="/cpages/contact" class=" " > Contact </a> </li> <li class=" dropdown "> <a href="/memberportal" class=" " data-hover=dropdown data-toggle=dropdown data-target=# target=_blank > Member Portal </a> <ul class="dropdown-menu"> <li class=" "> <a href="/directory?current_page=1&amp;sort_type=featured&amp;search_for=company&amp;asset_type=company_user&amp;display_type=default" class=" " target=_blank > Member Directory </a> </li> <li class=" "> <a href="/cpages/meetup-presentations-1" class=" " > Meetup and Event Presentations </a> </li> <li class=" "> <a href="/cpages/resource-library" class=" " target=_blank > Resource Library </a> </li> <li class=" "> <a href="/cpages/logos-and-guidelines" class=" " target=_blank > Logos and Guidelines </a> </li> <li class=" "> <a href="/cpages/dispensarymap" class=" " > Dispensary Facility Locator </a> </li> <li class=" "> <a href="/cpages/brand-landscape-map" class=" " > Missouri Brand Landscape Map </a> </li> <li class=" "> <a href="/cpages/missouri-cannabis-facility-list" class=" " > Missouri Cannabis Facility ATO List </a> </li> <li class=" "> <a href="/cpages/feedback" class=" " target=_blank > Industry Feedback </a> </li> </ul> </li> </ul> </div><!--/.nav-collapse --> <script> $( document ).ready(function() { $('.nav.navbar-nav li.active').parents('li').addClass('active'); }); </script> </div><!--/.container --> </div> </header> <div id="body"> <div id="fb-root"></div> <div class="header-banner" style=background-image:url(https://silkstart.s3.amazonaws.com/640b8ada51ea1f05cd206aab.png)> <div class="header-banner-text overlay-light"> <div class="container"> <div class="header-banner-text-inner"> <div class="row"> <div class="col-xs-12"> <h1 class="header-banner-page-title"><var> Missouri 3rd Party Testing Labs </var></h1> <div class="hide-breadcrumbs"> <ol class="breadcrumb"></ol> </div> </div> </div> <h4 class="header-banner-subtext"><var> MoCannTrade </var></h4> </div> </div> </div> </div> <div class="container extra-header-content"> </div> <div id="main" class=""> <div id="content" class="full_width_page custom_webpage cpage657a1e4f1995c705950440e3" > <div class="error-panel-container"> <!--[if lte IE 7]> <div class="error"> <img src="/res/img/warning.png" /> 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. </div> <![endif]--> </div> <div class="full-width-container mt3"> <div class="row"> <div id="main_content" class="col-xs-12"> <div id="custom_webpage_app_js" class="custom_webpage_app_view"> <div class="cpage_template" id="template2"> <div class="stacks"> <div class="cpage_container cps_widget cps_subcontainer cps_can_add_or_remove" id="primary1"><div class="custom_webpage_section_view subcontainer_style2 custom_webpage_section_subcontainer_view"> <div class="container"> <div class="container_holder panel panel-default"> <div class="custom_webpage_section_view subcontainer_style1 custom_webpage_section_richtext_view"> <div class="html_content"> <p><span style="font-size:16px;"><span style="font-family:Arial,Helvetica,sans-serif;"></span></span><span style="font-size:18px;"><span style="font-family:Arial,Helvetica,sans-serif;"></span>Every single cannabis product sold through the Article XIV Missouri program must be 3rd party tested for safety before consumption by a patient or consumer. As a service to our member licensees, we have gathered this Missouri licensed testing lab contact directory聽for outreach convenience to licensed facility members.聽 Please contact any of the below MoCann testing lab members to better understand their testing lab service offering.聽聽<span style="font-family:Arial,Helvetica,sans-serif;"></span></span></p> </div> </div> </div> </div> </div><div class="custom_webpage_section_view subcontainer_style2 custom_webpage_section_subcontainer_view"> <div class="container"> <div class="container_holder panel panel-default"> <div class="custom_webpage_section_view subcontainer_style1 custom_webpage_section_richtext_view"> <div class="html_content"> <div class="container jobs-staff-container"> <h2>Testing Labs</h2> </div> <p>聽</p> <table border="0" cellpadding="1" cellspacing="1"> <tbody> <tr> <td>聽</td> <td>聽</td> </tr> <tr> <td> <table border="0" cellpadding="1" cellspacing="1" class="table table-bordered"> <tbody> <tr> <td style="vertical-align: middle;"> <h2><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTJlZjUxZWExZjA1Y2QyMDg4NmMucG5n/x"/></h2> </td> <td style="vertical-align: middle;"> <h3>Cloud TEN Lab - Fenton聽</h3> <p>Cloud TEN testing lab is a spin off of it's sister company TEN Healthcare, a medical diagnostic laboratory founded in St. Louis in 2014. Cloud TEN's mission is to become a partner for Missouri cultivators and manufacturers and to ensure only the safest products tested at the highest standard are sold to Missouri Medical Marijuana patients.</p> </td> <td style="vertical-align: middle;"> <p><strong>Contact:聽</strong></p> <p>Jackson Benefield</p> <p>CEO</p> <p>(314) 200-3040</p> <p><a href="mailto:jbenefield@cloudtenlab.com">jbenefield@cloudtenlab.com</a></p> <p><a href="https://www.cloudtenlab.com" target="_blank">cloudtenlab.com</a></p> </td> </tr> <tr> <td style="vertical-align: middle;"><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDYucG5n/x"/></td> <td style="vertical-align: middle;"> <h3>ContiCorp Labs - Galena聽</h3> <p>ContiCorp Labs is a family-owned, state-licensed marijuana testing laboratory in the heart of Southwest Missouri. Our expertise is taking a values-centered approach to our clients and employees, ensuring that our testing standards meet or exceed all state/industry regulations as well as client expectations. We empower our employees through our focus on commitment and engagement to drive innovation and build the future of this industry from right here in the beautiful Ozark Plateau.</p> <p>ContiCorp Labs draws from decades of experience in testing analytics and scientific rigor to provide unrivaled accuracy and continual process improvement. We look forward to providing our services for all facets of the industry, and peace of mind to the cultivators, dispensaries, and patients in the State of Missouri.</p> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>Chris Conte</p> <p>(785) 331-7272</p> <p><a href="mailto:cconti@conticorplabs.com">cconti@conticorplabs.com</a></p> <p><a href="https://www.conticorplabs.com" target="_blank">conticorplabs.com</a></p> </td> </tr> <tr> <td style="vertical-align: middle;"><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDgucG5n/x"/></td> <td style="vertical-align: middle;"> <h3>Fleur de Lis Analytical Laboratories, LLC - St Louis</h3> <p>When it positively, absolutely must be tested accurately and on time, send it to Fleur De Lis Analytical Laboratories, LLC! FDL Labs serves medical marijuana growers and manufacturers over the length and breadth of Missouri. With quality testing turnaround times unmatched in the State of Missouri, FDL Labs is here to see that your products get off your shelves and into the dispensaries. Contact FDL Labs today and see how our commitment to excellence delivers more profits to your bottom line.</p> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>Thomas Shifflett</p> <p>(314) 410-5851</p> <p>thomas.shifflett@fdlanalytical.com</p> <p><a href="https://fdlanalytical.com/" target="_blank">fdlanalytical.com</a></p> </td> </tr> <tr> <td style="vertical-align: middle;"> <h3><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDQucG5n/x"/></h3> </td> <td style="vertical-align: middle;"> <h3>GCA Labs - Herculaneum聽</h3> <p>ISO/IEC 17025:2017 ACCREDITED, NIST-CannaQAP Participant, Top-ranked testing facility</p> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>Jessica Cooksey</p> <p>VP of Sales and Marketing</p> <p>(636) 224-2882/3</p> <p><a href="mailto:jesscooksey@gcalabs.com">jesscooksey@gcalabs.com</a></p> <p><a href="https://www.gcalabs.com" target="_blank">gcalabs.com</a></p> </td> </tr> <tr> <td style="vertical-align: middle;"><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDUucG5n/x"/></td> <td style="vertical-align: middle;"> <h3>Green Precision Analytics (GPA Labs) - Kansas City聽</h3> <p>GPA Labs is a licensed Missouri Medical Marijuana Testing Facility located in Kansas City. With over 20 years of medical diagnostic laboratory testing expertise, CEO Paul Joslin, MD and Director Josh Kollmeyer, MLS (ASCP) have operated a medical diagnostic laboratory, collaborating to meet stringent CMS regulatory standards, master QA, QC and proficiency testing protocols, integrate results reporting with multiple user interfaces, streamline workflow and reduce turnaround time for unparalleled customer satisfaction-providing over a million accurate and reliable test results per year for our physician customers.</p> <p>Now that experience will be put to work ensuring the safety and quality of Missouri medical cannabis flower, manufactured and infused medical cannabis products, and hemp- derived CBD products for cultivators, manufacturers, dispensaries, and patients in Missouri.</p> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>Anthony David聽</p> <p>COO</p> <p>(816) 442-8238</p> <p><a href="mailto:anthonyd@gpa-kc.com">anthonyd@gpa-kc.com</a></p> <p><a href="https://www.gpakc.com" target="_blank">gpakc.com</a></p> </td> </tr> <tr> <td style="vertical-align: middle;"><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDcucG5n/x"/></td> <td style="vertical-align: middle;"> <h3>Inovatia AgriTesting Services - Fayette聽</h3> <p>Inovatia AgriTesting Services has been in the analytical services / R&amp;D business for over 28 years. With care, that experience has been translated to the cannabis industry - or better stated, the experience is being translated, as we are always learning.</p> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>JB Waggoner</p> <p>Founder / Managing Director</p> <p>(660) 248-1911</p> <p><a href="mailto:info@testinglab-mo.com">info@testinglab-mo.com</a></p> <p><a href="https://www.testinglab-mo.com" target="_blank">testinglab-mo.com</a></p> </td> </tr> <tr> <td style="vertical-align: middle;"><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDMucG5n/x"/></td> <td style="vertical-align: middle;"> <h3>MoCann Testing - A Division of EKG Labs - St. Louis聽</h3> <p>Missouri Cannabis Testing, a Division of EKG Labs, was founded in 2013 by Jennifer Eagan, Allen Kesselring, and Katie Grayson. The founders have spent the majority of their careers working within contract research laboratories focused on combination product, medical device, and pharmaceutical development. A little over 7 years ago, the opportunity arose for Eagan, Kesselring, and Grayson to leverage their experience and history together to create a new business endeavor.</p> <p>Drawing on their collective 50+ years of experience working with DEA controlled substances (including CBD, THC, general cannabinoids and their metabolites), the team decided to utilize their knowledge in pharmaceutical science and passion for medical cannabis to form the medicinal marijuana division, MoCann Testing.</p> <p>Their mission is to help individuals across the state ensure they have access to safe medical marijuana through accurate sample testing and quality results. ISO/IEC 17025:2017 Certified.</p> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>Natalie Brown</p> <p>Director of Operations</p> <p>(810) 354-5229</p> <p><a href="mailto:nbrown@mocanntesting.com">nbrown@mocanntesting.com</a></p> <p><a data-auth="NotApplicable" data-linkindex="2" href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.mocanntesting.com&amp;d=DwMFAg&amp;c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&amp;r=lpI6LLu1gRqa3_SeZAxa7qqb6Laew7uas1UA0SXC7h4h3WYBSwNZyKmYgf4lHR_4&amp;m=3GFMpDH4HsSAQmREzvZS0qWeukJK-7k8bYxXxBfTS9AzLT0MZW7HZ0m_8M2WVJBi&amp;s=qZWtg2gw2R-Eka9pWswuFqotOl3hie_JrGYRnCGXInA&amp;e=" rel="noopener noreferrer" target="_blank">www.mocanntesting.com</a>聽</p> </td> </tr> <tr> <td style="vertical-align: middle;"><span style="font-size:12px;"><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NGZmNzUxNjU3OTEyNjA1YWUxYTYyMjAucG5n/x"/></span></td> <td style="vertical-align: middle;"> <h3>Green Hills Labs</h3> <p>Reliable Results. Signature Science.聽 Green Hills Labs provides safety testing for cannabis in Missouri.聽聽</p> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>George Schoedinger</p> <p>(636) 366-5232</p> <p><a href="mailto:info@greenhillslabs.com">info@greenhillslabs.com</a></p> <p><a href="https://www.greenhillslabs.com" target="_blank">www.greenhillslabs.com</a></p> </td> </tr> <tr> <td style="vertical-align: middle;"><img alt="" class="pull-left img-responsive" src="https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NGZmNzRhZTU3OTEyNjA1YWUxYTYxZjMucG5n/x"/></td> <td style="vertical-align: middle;"> <h3>Clearwater Science</h3> <p>Clearwater Science, LLC is a licensed Missouri Cannabis聽Analytical Testing Facility that specializes in the following:</p> <ul> <li>Cannabis, USDA Industrial Hemp &amp; CBD</li> <li>Food Safety Testing</li> <li>Environmental Testing</li> <li>Research &amp; Development</li> <li>Specialized Testing available upon request, reach out to Rachael for info</li> </ul> </td> <td style="vertical-align: top;"> <p><strong>Contact:</strong></p> <p>Rachael Rowden</p> <p>(573) 355-6455</p> <p><a href="mailto:rachael@cwsmo.com">rachael@cwsmo.com</a></p> <p><a href="https://clearwatermo.wixsite.com/website-1" target="_blank">https://clearwatermo.wixsite.com/website-1</a></p> </td> </tr> </tbody> </table> <p>聽</p> </td> <td>聽</td> </tr> </tbody> </table> </div> </div> </div> </div> </div></div> </div> </div> </div> </div> </div> </div> <div style="display: none;"> </div> </div> </div> </div> <footer id="site_footer"> <div class="container footer-top"> <div class="row"> <div class="col-lg-3 col-md-6"> <aside class="footer-section footer-contact"> <div class="footer-address clearfix footer-contact-info"> <i class="fa fa-map-marker fa-fw"></i> <div class="footer-contact-info-text"> 131 W. High Street <br> #164<br> Jefferson City MO 65102<br> US </div> </div> <div class="footer-email clearfix footer-contact-info"> <i class="fa fa-envelope fa-fw"></i> <div class="footer-contact-info-text"> <a href="mailto:director@mocanntrade.org">director@mocanntrade.org</a> </div> </div> </aside> <div class="footer-policy"> <div class="footer-policy-terms"> <a href="https://mocanntrade.silkstart.com/cpages/privacy-policy/" target="_blank">Privacy Policy</a> <p>|</p> <a href="https://mocanntrade.silkstart.com/cpages/terms-and-conditions" target="_blank">Terms & Conditions</a> </div> <div class="footer-policy-item"> <p>漏2024 Missouri Cannabis Trade Association. All rights reserved.</p> </div> </div> </div> <div class="col-lg-3 col-md-6"> <div class="footer-social-container"> <div class="footer-social-item"> <a href="https://atach.org/" target="_blank"><img class="pull-left img-responsive" src="https://silkstart.s3.amazonaws.com/bc50831a-c54e-429c-a6e4-fea2d83e0660.png" style="max-width:100%; height:auto;" /></a> </div> </div> </div> <div class="col-lg-3 col-md-6"> <aside class="footer-section footer-events"> <h4>Upcoming Events</h4> <ul class="footer-ul"> <li> <div class="ss-panel-header"> <div class="item-name item_name"> <a href="https://www.mocanntrade.org/events/csq-presents-what-are-cgmps-and-why-are-they-crucial-for-missouri-license-holders">CSQ Presents Lunch and Learn Webinar: What Are cGMPs and Why Are They Crucial for Missouri License Holders? </a> </div> <span class="item-date-widget-style">December 12</span> </div> <div class="widget-item-text ss-panel-body"> <span class="richtext">Current Good Manufacturing Practices (cGMPs) have been commonly followed by food, beverage, and diet</span> <span><a href="https://www.mocanntrade.org/events/csq-presents-what-are-cgmps-and-why-are-they-crucial-for-missouri-license-holders" class="readmore">Read More</a></span> </div> </li> <li> <div class="ss-panel-header"> <div class="item-name item_name"> <a href="https://www.mocanntrade.org/events/q1-missouri-leader-owner-stakeholder-gathering">Q1 Missouri Leader | Owner | Stakeholder Gathering </a> </div> <span class="item-date-widget-style">March 10</span> </div> <div class="widget-item-text ss-panel-body"> <span class="richtext">Missouri Stakeholders &amp; Industry Leaders Gather To Meet Missouri Legislators </span> <span><a href="https://www.mocanntrade.org/events/q1-missouri-leader-owner-stakeholder-gathering" class="readmore">Read More</a></span> </div> </li> </ul> </aside> </div> <div class="col-lg-3 col-md-6"> <div class="subscribe-widget ss-widget"> <i aria-hidden="true" class="fa fa-envelope"></i> <h2 class="widget-title">Newsletter Signup</h2> <div class="row subscribe_form"> <div class="col-lg-10 col-lg-offset-1"> <div class="subscribe-form-response"></div> <form novalidate="novalidate"> <div class="row"> <div class="col-sm-3 widget-item"> <div class="form-group"> <input class="form-control required input-lg" name="first_name" placeholder="First Name" aria-required="true" style="background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHklEQVQ4EaVTO26DQBD1ohQWaS2lg9JybZ+AK7hNwx2oIoVf4UPQ0Lj1FdKktevIpel8AKNUkDcWMxpgSaIEaTVv3sx7uztiTdu2s/98DywOw3Dued4Who/M2aIx5lZV1aEsy0+qiwHELyi+Ytl0PQ69SxAxkWIA4RMRTdNsKE59juMcuZd6xIAFeZ6fGCdJ8kY4y7KAuTRNGd7jyEBXsdOPE3a0QGPsniOnnYMO67LgSQN9T41F2QGrQRRFCwyzoIF2qyBuKKbcOgPXdVeY9rMWgNsjf9ccYesJhk3f5dYT1HX9gR0LLQR30TnjkUEcx2uIuS4RnI+aj6sJR0AM8AaumPaM/rRehyWhXqbFAA9kh3/8/NvHxAYGAsZ/il8IalkCLBfNVAAAAABJRU5ErkJggg==&quot;); background-repeat: no-repeat; background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%;"> </div> </div> <div class="col-sm-3 widget-item"> <div class="form-group"> <input class="form-control required input-lg" name="last_name" placeholder="Last Name" aria-required="true"> </div> </div> <div class="col-sm-4 widget-item"> <div class="form-group"> <input class="email input-lg form-control required" name="username" placeholder="Email Address" aria-required="true"> </div> </div> <div class="col-sm-2 widget-item"> <button class="btn btn-block btn-primary btn-lg submit_button_js " type="button">Subscribe</button> </div> </div> </form> </div> <div class="cover_div"><i class="fa fa-spinner fa-spin fa-4x"></i></div> </div> </div> <script type="text/javascript"> $(function(){ ss_require(['/res/js/v2/backbone/widgets/subscribe_form.js'],function(module){ ss.apps.SubscribeFormViewApp = new ss.views.SubscribeFormView({ el:$('.subscribe_form') }); }); }); </script> </div> </div> </div> <div class="lower-footer"> <div class="container"> <div class="row"> <div class="col-sm-6"> <div class="footer-logo"> <a href="/cpages/home" class="navbar-brand"> <img src='https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS8wNTJkY2UyZi1jMjFmLTRlMzctODQ0Yi1hNDU1MGRlOTYyMTcucG5n/440x140fPNG' style='padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; ' alt='MoCannTrade' resize_with_padding='True' class="img-responsive" alt="" > </a> </div> </div> <div class="col-sm-6"> <div class="pull-right"> <div id="search_and_links"> <ul class="media_links"> <li><a href='https://twitter.com/mocanntrade' target="_blank"><i class="fa fa-brands fa-x-twitter fa-1-5x"></i></a></li> <li><a href='https://www.facebook.com/mocanntrade' target="_blank"><i class="fa fa-facebook fa-1-5x"></i></a></li> <li><a href='https://www.youtube.com/channel/UCN5qVjh06rhUy8ryXXc4XkA' target="_blank"><i class="fa fa-youtube fa-1-5x"></i></a></li> <li><a href='https://www.linkedin.com/company/mocanntrade ' target="_blank"><i class="fa fa-linkedin fa-1-5x"></i></a></li> <li><a href='https://www.instagram.com/mocanntrade' target="_blank"><i class="fa fa-instagram fa-1-5x"></i></a></li> </ul> </div> </div> </div> </div> </div> </div> <div class="powered-by-silkstart"> <div class="container"> <div class="clearfix"> <div class="pull-right"> <span class="powered-by">Powered by</span> <a href="http://www.silkstart.com/" target="_blank">SilkStart Association Management Software</a> </div> </div> </div> </div> </footer> </div> <script type="text/javascript"> ss_context = (function(js_data_safe, error){ if(error && typeof console !== "undefined"){ console.error(error); } return js_data_safe; })({"versioned_url": "/cpages/3rd-party-testing-labs/657a1e4f1995c705950440e3", "editing": false, "page_class": "cpage657a1e4f1995c705950440e3", "template": "template2", "url": "/cpages/3rd-party-testing-labs", "cpage_html_enabled_all": false, "page_color": null, "is_draft": false, "containers": {"primary1": [{"type": "subcontainer", "style": "subcontainer_style2", "sections": [{"text": "<p><span style=\"font-size:16px;\"><span style=\"font-family:Arial,Helvetica,sans-serif;\"></span></span><span style=\"font-size:18px;\"><span style=\"font-family:Arial,Helvetica,sans-serif;\"></span>Every single cannabis product sold through the Article XIV Missouri program must be 3rd party tested for safety before consumption by a patient or consumer. As a service to our member licensees, we have gathered this Missouri licensed testing lab contact directory&nbsp;for outreach convenience to licensed facility members.&nbsp; Please contact any of the below MoCann testing lab members to better understand their testing lab service offering.&nbsp;&nbsp;<span style=\"font-family:Arial,Helvetica,sans-serif;\"></span></span></p>\n", "type": "richtext"}]}, {"type": "subcontainer", "style": "subcontainer_style2", "sections": [{"text": "<div class=\"container jobs-staff-container\">\n<h2>Testing Labs</h2>\n</div>\n\n<p>&nbsp;</p>\n\n<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\">\n\t<tbody>\n\t\t<tr>\n\t\t\t<td>&nbsp;</td>\n\t\t\t<td>&nbsp;</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" class=\"table table-bordered\">\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h2><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTJlZjUxZWExZjA1Y2QyMDg4NmMucG5n/x\"></h2>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>Cloud TEN Lab - Fenton&nbsp;</h3>\n\n\t\t\t\t\t\t<p>Cloud TEN testing lab is a spin off of it's sister company TEN Healthcare, a medical diagnostic laboratory founded in St. Louis in 2014. Cloud TEN's mission is to become a partner for Missouri cultivators and manufacturers and to ensure only the safest products tested at the highest standard are sold to Missouri Medical Marijuana patients.</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<p><strong>Contact:&nbsp;</strong></p>\n\n\t\t\t\t\t\t<p>Jackson Benefield</p>\n\n\t\t\t\t\t\t<p>CEO</p>\n\n\t\t\t\t\t\t<p>(314) 200-3040</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:jbenefield@cloudtenlab.com\">jbenefield@cloudtenlab.com</a></p>\n\n\t\t\t\t\t\t<p><a href=\"https://www.cloudtenlab.com\" target=\"_blank\">cloudtenlab.com</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\"><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDYucG5n/x\"></td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>ContiCorp Labs - Galena&nbsp;</h3>\n\n\t\t\t\t\t\t<p>ContiCorp Labs is a family-owned, state-licensed marijuana testing laboratory in the heart of Southwest Missouri. Our expertise is taking a values-centered approach to our clients and employees, ensuring that our testing standards meet or exceed all state/industry regulations as well as client expectations. We empower our employees through our focus on commitment and engagement to drive innovation and build the future of this industry from right here in the beautiful Ozark Plateau.</p>\n\n\t\t\t\t\t\t<p>ContiCorp Labs draws from decades of experience in testing analytics and scientific rigor to provide unrivaled accuracy and continual process improvement. We look forward to providing our services for all facets of the industry, and peace of mind to the cultivators, dispensaries, and patients in the State of Missouri.</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>Chris Conte</p>\n\n\t\t\t\t\t\t<p>(785) 331-7272</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:cconti@conticorplabs.com\">cconti@conticorplabs.com</a></p>\n\n\t\t\t\t\t\t<p><a href=\"https://www.conticorplabs.com\" target=\"_blank\">conticorplabs.com</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\"><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDgucG5n/x\"></td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>Fleur de Lis Analytical Laboratories, LLC - St Louis</h3>\n\n\t\t\t\t\t\t<p>When it positively, absolutely must be tested accurately and on time, send it to Fleur De Lis Analytical Laboratories, LLC! FDL Labs serves medical marijuana growers and manufacturers over the length and breadth of Missouri. With quality testing turnaround times unmatched in the State of Missouri, FDL Labs is here to see that your products get off your shelves and into the dispensaries. Contact FDL Labs today and see how our commitment to excellence delivers more profits to your bottom line.</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>Thomas Shifflett</p>\n\n\t\t\t\t\t\t<p>(314) 410-5851</p>\n\n\t\t\t\t\t\t<p>thomas.shifflett@fdlanalytical.com</p>\n\n\t\t\t\t\t\t<p><a href=\"https://fdlanalytical.com/\" target=\"_blank\">fdlanalytical.com</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDQucG5n/x\"></h3>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>GCA Labs - Herculaneum&nbsp;</h3>\n\n\t\t\t\t\t\t<p>ISO/IEC 17025:2017 ACCREDITED, NIST-CannaQAP Participant, Top-ranked testing facility</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>Jessica Cooksey</p>\n\n\t\t\t\t\t\t<p>VP of Sales and Marketing</p>\n\n\t\t\t\t\t\t<p>(636) 224-2882/3</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:jesscooksey@gcalabs.com\">jesscooksey@gcalabs.com</a></p>\n\n\t\t\t\t\t\t<p><a href=\"https://www.gcalabs.com\" target=\"_blank\">gcalabs.com</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\"><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDUucG5n/x\"></td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>Green Precision Analytics (GPA Labs) - Kansas City&nbsp;</h3>\n\n\t\t\t\t\t\t<p>GPA Labs is a licensed Missouri Medical Marijuana Testing Facility located in Kansas City. With over 20 years of medical diagnostic laboratory testing expertise, CEO Paul Joslin, MD and Director Josh Kollmeyer, MLS (ASCP) have operated a medical diagnostic laboratory, collaborating to meet stringent CMS regulatory standards, master QA, QC and proficiency testing protocols, integrate results reporting with multiple user interfaces, streamline workflow and reduce turnaround time for unparalleled customer satisfaction-providing over a million accurate and reliable test results per year for our physician customers.</p>\n\n\t\t\t\t\t\t<p>Now that experience will be put to work ensuring the safety and quality of Missouri medical cannabis flower, manufactured and infused medical cannabis products, and hemp- derived CBD products for cultivators, manufacturers, dispensaries, and patients in Missouri.</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>Anthony David&nbsp;</p>\n\n\t\t\t\t\t\t<p>COO</p>\n\n\t\t\t\t\t\t<p>(816) 442-8238</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:anthonyd@gpa-kc.com\">anthonyd@gpa-kc.com</a></p>\n\n\t\t\t\t\t\t<p><a href=\"https://www.gpakc.com\" target=\"_blank\">gpakc.com</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\"><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDcucG5n/x\"></td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>Inovatia AgriTesting Services - Fayette&nbsp;</h3>\n\n\t\t\t\t\t\t<p>Inovatia AgriTesting Services has been in the analytical services / R&amp;D business for over 28 years. With care, that experience has been translated to the cannabis industry - or better stated, the experience is being translated, as we are always learning.</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>JB Waggoner</p>\n\n\t\t\t\t\t\t<p>Founder / Managing Director</p>\n\n\t\t\t\t\t\t<p>(660) 248-1911</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:info@testinglab-mo.com\">info@testinglab-mo.com</a></p>\n\n\t\t\t\t\t\t<p><a href=\"https://www.testinglab-mo.com\" target=\"_blank\">testinglab-mo.com</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\"><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NDBiYTUzNjUxZWExZjA1Y2QyMDg4ZDMucG5n/x\"></td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>MoCann Testing - A Division of EKG Labs - St. Louis&nbsp;</h3>\n\n\t\t\t\t\t\t<p>Missouri Cannabis Testing, a Division of EKG Labs, was founded in 2013 by Jennifer Eagan, Allen Kesselring, and Katie Grayson. The founders have spent the majority of their careers working within contract research laboratories focused on combination product, medical device, and pharmaceutical development. A little over 7 years ago, the opportunity arose for Eagan, Kesselring, and Grayson to leverage their experience and history together to create a new business endeavor.</p>\n\n\t\t\t\t\t\t<p>Drawing on their collective 50+ years of experience working with DEA controlled substances (including CBD, THC, general cannabinoids and their metabolites), the team decided to utilize their knowledge in pharmaceutical science and passion for medical cannabis to form the medicinal marijuana division, MoCann Testing.</p>\n\n\t\t\t\t\t\t<p>Their mission is to help individuals across the state ensure they have access to safe medical marijuana through accurate sample testing and quality results. ISO/IEC 17025:2017 Certified.</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>Natalie Brown</p>\n\n\t\t\t\t\t\t<p>Director of Operations</p>\n\n\t\t\t\t\t\t<p>(810) 354-5229</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:nbrown@mocanntesting.com\">nbrown@mocanntesting.com</a></p>\n\n\t\t\t\t\t\t<p><a data-auth=\"NotApplicable\" data-linkindex=\"2\" href=\"https://urldefense.proofpoint.com/v2/url?u=http-3A__www.mocanntesting.com&amp;d=DwMFAg&amp;c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&amp;r=lpI6LLu1gRqa3_SeZAxa7qqb6Laew7uas1UA0SXC7h4h3WYBSwNZyKmYgf4lHR_4&amp;m=3GFMpDH4HsSAQmREzvZS0qWeukJK-7k8bYxXxBfTS9AzLT0MZW7HZ0m_8M2WVJBi&amp;s=qZWtg2gw2R-Eka9pWswuFqotOl3hie_JrGYRnCGXInA&amp;e=\" rel=\"noopener noreferrer\" target=\"_blank\">www.mocanntesting.com</a>&nbsp;</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\"><span style=\"font-size:12px;\"><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NGZmNzUxNjU3OTEyNjA1YWUxYTYyMjAucG5n/x\"></span></td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>Green Hills Labs</h3>\n\n\t\t\t\t\t\t<p>Reliable Results. Signature Science.&nbsp; Green Hills Labs provides safety testing for cannabis in Missouri.&nbsp;&nbsp;</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>George Schoedinger</p>\n\n\t\t\t\t\t\t<p>(636) 366-5232</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:info@greenhillslabs.com\">info@greenhillslabs.com</a></p>\n\n\t\t\t\t\t\t<p><a href=\"https://www.greenhillslabs.com\" target=\"_blank\">www.greenhillslabs.com</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\"><img alt=\"\" class=\"pull-left img-responsive\" src=\"https://d3lut3gzcpx87s.cloudfront.net/image_encoded/aHR0cHM6Ly9zaWxrc3RhcnQuczMuYW1hem9uYXdzLmNvbS82NGZmNzRhZTU3OTEyNjA1YWUxYTYxZjMucG5n/x\"></td>\n\t\t\t\t\t\t<td style=\"vertical-align: middle;\">\n\t\t\t\t\t\t<h3>Clearwater Science</h3>\n\n\t\t\t\t\t\t<p>Clearwater Science, LLC is a licensed Missouri Cannabis&nbsp;Analytical Testing Facility that specializes in the following:</p>\n\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>Cannabis, USDA Industrial Hemp &amp; CBD</li>\n\t\t\t\t\t\t\t<li>Food Safety Testing</li>\n\t\t\t\t\t\t\t<li>Environmental Testing</li>\n\t\t\t\t\t\t\t<li>Research &amp; Development</li>\n\t\t\t\t\t\t\t<li>Specialized Testing available upon request, reach out to Rachael for info</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"vertical-align: top;\">\n\t\t\t\t\t\t<p><strong>Contact:</strong></p>\n\n\t\t\t\t\t\t<p>Rachael Rowden</p>\n\n\t\t\t\t\t\t<p>(573) 355-6455</p>\n\n\t\t\t\t\t\t<p><a href=\"mailto:rachael@cwsmo.com\">rachael@cwsmo.com</a></p>\n\n\t\t\t\t\t\t<p><a href=\"https://clearwatermo.wixsite.com/website-1\" target=\"_blank\">https://clearwatermo.wixsite.com/website-1</a></p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\n\t\t\t<p>&nbsp;</p>\n\t\t\t</td>\n\t\t\t<td>&nbsp;</td>\n\t\t</tr>\n\t</tbody>\n</table>\n", "type": "richtext"}]}]}}, false) ; </script> <script type="text/javascript"> $(function(){ window.SigninApp = new ss.views.UserSignInSectionApp({ el: $('.sign_in_section_js') }); }); </script> <script type="text/template" id="multitable_view"> <ul class="selectors"> <%for(var key in menu_items){ var value = menu_items[key]; %> <li class="<%=key==selected ? 'selected' : ''%>" > <a id="<%=key%>" href="#"><%-value%></a> </li> <%}%> </ul> <div class="table_container"> </div> </script> <script type="text/template" id="input_options_view"> <% descriptions.each(function(i, elem){ var description = $(this).text(); %> <div class="input_container <%=i==selected?'selected':'unselected'%>"> <div class="left_fixed column"> <div class="input_div input_container_radio"> <input type="radio" name="input_options_app_selected" <%=i==selected?'checked="checked"':''%>> </div> <div class="input_div input_container_input"> <!-- The render function will place the input element here --> </div> </div> <div class="right_fluid column"> <div class="input_div input_container_description"> <%-description%> </div> </div> </div> <%});%> </script> <script type="text/template" id="document_panel_view"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"> <i class="fa fa-file-text"></i> <%-heading_title%> </h3> <%if(may_modify == "True"){%> <div class="mt1"> <a href="#" class="btn btn-primary upload_file_popup"><i class="fa fa-cloud-upload"></i> Upload a File</a> </div> <%}%> </div> <div class="panel-body"> <ul class="existing_file_div"> <%if(files.length == 0){%> <i class="no_file_yet">No files uploaded yet.</i> <%}%> </ul> </div> </div> <% var files_json = _.map(files, function(file){ return file.toJSON(); }); files_json.reverse(); var uploader_files_info = JSON.stringify(files_json); %> <input type="hidden" name="uploader_files_info" value="<%-uploader_files_info%>"> </script> <script type="text/template" id="uploaded_file_single_view"> <% var file_type; var ext = ''; if (file_name) { ext = file_name.split('.').reverse()[0]; } else { file_name = '------------'; } var file_types = { "tar": "file-archive-o", "gz": "file-archive-o", "jpg": "file-image-o", "mp4": "file-video-o", "rar": "file-archive-o", "mp3": "file-audio-o", "ppt": "file-powerpoint-o", "txt": "file-text-o", "7z": "file-archive-o", "m4a": "file-audio-o", "zip": "file-archive-o", "gif": "file-image-o", "wav": "file-audio-o", "tif": "file-image-o", "csv": "file-excel-o", "pptx": "file-powerpoint-o", "xlsx": "file-excel-o", "docx": "file-word-o", "mov": "file-video-o", "bmp": "file-image-o", "jpeg": "file-image-o", "flac": "file-audio-o", "ogg": "file-audio-o", "png": "file-image-o", "exe": "file-code-o", "doc": "file-word-o", "pdf": "file-pdf-o", "xls": "file-excel-o", "avi": "file-video-o" }; if (ext.toLowerCase() in file_types) { file_type = file_types[ext.toLowerCase()]; } else { file_type = 'file-o'; } if (!title) { if (!file_name) { title = "------------"; } else { title = file_name; } } function stripScripts(s) { var div = document.createElement('div'); div.innerHTML = s; var scripts = div.getElementsByTagName('script'); var i = scripts.length; while (i--) { scripts[i].parentNode.removeChild(scripts[i]); } return div.innerHTML; } if (title) { title = stripScripts(title); } %> <%if(template_type=='normal'){%> <div class="action_buttons"> <%if(may_modify == "True"){%><i class="delete_file fa fa-trash-o fa-2x" data-file_key=<%=key%>></i><%}%> <a class="download_file" target="_blank" href="<%=url%>"><i class="fa fa-2x fa-download"></i></a> </div> <a class="download_file" target="_blank" href="<%=url%>"> <i class="fa fa-2x fa-<%=file_type%>"></i> </a> <div class="file_info"> <div class="file_name"><b><%=title%></b></div> <div class="by_user">by <a href="<%=user_url%>"><%=user_name%></a></div> </div> <div class="clearfix"></div> <%}else if(template_type=='image_selector'){%> <div class="action_buttons"> <%if(may_modify == "True"){%><i class="delete_file fa fa-trash-o fa-2x" data-file_key=<%=key%>></i><%}%> <a class="download_file" target="_blank" href="<%=url%>"><i class="fa fa-2x fa-download"></i></a> </div> <%var radio_id = "uploader_radio_" + $.ss.util.unique_id();%> <input class="uploaded_selector" type="radio" id="<%=radio_id%>" name="uploader_selector" value="<%=url%>" <%=selected ? 'checked="checked"' : ''%>> <label for="<%=radio_id%>"> <i class="fa fa-2x fa-<%=file_type%>"></i> </label> <div class="file_info"> <label for="<%=radio_id%>"> <div class="file_name"><b><%=title%></b></div> </label> <div class="by_user">by <a href="<%=user_url%>"><%=user_name%></a></div> </div> <div class="clearfix"></div> <%}%> </script> <script type="text/template" id="deleteFile"> <% if(!title){ if(file_name){ title = file_name }else{ title = "------------" } } function stripScripts(s) { var div = document.createElement('div'); div.innerHTML = s; var scripts = div.getElementsByTagName('script'); var i = scripts.length; while (i--) { scripts[i].parentNode.removeChild(scripts[i]); } return div.innerHTML; } if (title) { title = stripScripts(title); } %> <div class="delete_popup"> <div class="delete_warning">Are you sure you want to delete <%=title%>? Deleting a file is irreversible.</div> <form class="upload_form item_edit_form"> <input type="hidden" name="<%=target_type%>:<%=collection_name ||'uploader_files'%>[<%=key%>].to_delete" value=True> </form> </div> </script> <div class="filter-templates"> <script type="text/template" id="item_filters"> <div class="row"> <div class="col-lg-8 col-md-10"> <div class="report-filters"> <div class="row"> <div class="col-xs-6 col-lg-4"> <h4> <div class="filter_heading">Filters</div> </h4> </div> <div class="col-xs-6 col-lg-8 form-inline"> <div class="add_new_filter form-group"> <label>Select Filter</label> <select class="form-control add_new_filter_js"></select> </div> </div> </div> </div> </div> </div> <div class="row"> <div class="col-lg-8 col-md-10"> <ul class="item_filters item-filters list-group"></ul> </div> </div> </script> <script type="text/template" id="item_filter_row"> <div class="filter-row form-inline"> <div class="row_filter_label"><label><%-label%></label></div> <div class="row_filter_operation"><span class="filter-placeholder"></span></div> <div class="row_filter_remove"><span class="remove_filter"><i class="fa fa-times red"></i></span></div> </div> </script> <script type="text/template" id="item_currency_filter_options"> <select data-field="filter_type" class='filter_type form-control numeric_filter_type_js'> <option value='between'>Between <option value='greater_than'>Greater than <option value='less_than'>Less than </select> <input class="input-small filter_criteria_js greater_than_js between_js form-control" type="text" data-field="min_value"> <input class="input-small filter_criteria_js less_than_js between_js form-control" type="text" data-field="max_value"> </script> <script type="text/template" id="item_numeric_filter_options"> <select data-field="filter_type" class='filter_type numeric_filter_type_js form-control'> <option value='between'>Between <option value='greater_than'>Greater than <option value='less_than'>Less than </select> <!-- <%=ss.text_field({ name: 'min_value', css_class: 'input-small filter_criteria_js greater_than_js between_js'})%> <%=ss.text_field({ name: 'max_value', css_class: 'input-small filter_criteria_js less_than_js between_js'})%> data-field instead of data-name --> <input class="input-small filter_criteria_js greater_than_js between_js form-control" type="text" data-field="min_value"> <input class="input-small filter_criteria_js less_than_js between_js form-control" type="text" data-field="max_value"> </script> <script type="text/template" id="item_options_filter_options"> <select data-field="filter_type" class='filter_type align_top_and_width form-control' > <option value='contains'>Is <option value='does_not_contain'>Is not </select> <% var size_of_list = Math.min(options.length,4); %> <select data-field="value" class="filter_value multi_select form-control" multiple="multiple" size="<%=size_of_list%>" > <% var option; for (key in options) { option = options[key]; %> <option value="<%=option.value%>"><%=option.label%> <% } %> </select> <%= ss.fn.popover({content: "Multiple values can be selected using Shift or Ctrl/Cmd clicks."}) %> </script> <script type="text/template" id="item_text_filter_options"> <select data-field="filter_type" class='filter_type form-control exists_filter_js'> <option value='contains'>Contains <option value='does_not_contain'>Doesn't Contain <option value="blank">Blank <option value="not_blank">Not Blank </select> <input type="text" data-field="value" class="filter_value form-control"> <%= ss.fn.popover({content: "Filters can be separated by commas if you want to use more than one."}) %> </script> <script type="text/template" id="item_object_id_filter_options"> <select data-field="filter_type" class='filter_type form-control'> <option value="is_objectid">Is </select> <input type="text" data-field="value" class="filter_value form-control"> </script> <script type="text/template" id="item_yes_no_filter_options"> <select data-field="filter_type" class='filter_type form-control'> <option value="true_or_false">Is </select> <select data-field="value" class="filter_value form-control multi_select" multiple="multiple" size="2" > <option value="True">Yes <option value="False">No </select> </script> <script type="text/template" id="item_expiry_date_filter_options"> <% // UG copied and pasted from below var start = null; var end = null; try { if (start_date) { start = ss_format_date( new Date(start_date) ); end = ss_format_date( new Date(end_date) ); } } catch (error) { } %> <select data-field="filter_type" class="filter_type form-control date_filter_type" name="date_filter"> <option value="last_month">Last Month <option value="last_year">Last Year <option value="next_month">Next Month <option value="next_year">Next Year <option value="custom">Custom <option value="Recurring">Recurring <option value="blank">Blank <option value="Lifetime">Lifetime </select> <input data-field="start_date" class="date date-picker-field form-control date_input start_date" value="<%- start || ''%> "> <input data-field="end_date" class="date date-picker-field form-control date_input end_date" value="<%- end || ''%> "> </script> <script type="text/template" id="item_previous_date_filter_options"> <% // UG copied and pasted above var start = null; var end = null; try { if (start_date) { start = ss_format_date( new Date(start_date) ); end = ss_format_date( new Date(end_date) ); } } catch (error) { } %> <select data-field="filter_type" class="filter_type form-control date_filter_type" name="date_filter"> <option value="last_month">Last Month <option value="last_year">Last Year <option value="custom" <%= start ? 'selected="selected"' : '' %>>Custom <option value="blank">Blank </select> <input data-field="start_date" class="date form-control date-picker-field date_input start_date" value="<%- start || ''%> "> <input data-field="end_date" class="date form-control date-picker-field date_input end_date" value="<%- end || ''%> "> </script> <script type="text/template" id="item_date_filter_options"> <% // UG copied and pasted above var start = null; var end = null; try { if (start_date) { start = ss_format_date( new Date(start_date) ); end = ss_format_date( new Date(end_date) ); } } catch (error) { } %> <select data-field="filter_type" class="filter_type form-control date_filter_type" name="date_filter"> <option value="last_month">Last Month <option value="last_year">Last Year <option value="next_month">Next Month <option value="next_year">Next Year <option value="custom" <%= start ? 'selected="selected"' : '' %>>Custom </select> <input data-field="start_date" class="date form-control date-picker-field date_input start_date" value="<%- start || ''%> "> <input data-field="end_date" class="date form-control date-picker-field date_input end_date" value="<%- end || ''%> "> </script> </div> <script type="text/template" id="pdf_reader_view"> <div class="<%=can_display ? 'loading_dark_background_large':''%> inner_container"> <%if(can_display){%> <div class="pdf_toolbar"> <div class="navigation_buttons"> <button class="previous inverse small"> <i class="icon-arrow-left icon-white"></i> </button> <button class="next inverse small"> <i class="icon-arrow-right icon-white"></i> </button> <span class="pages"> Page <span class="current_page"></span> of <span class="total_pages"></span> </span> </div> </div> <canvas height="0"></canvas> <%}else{%> <div class="ie_fail_container"> <span> To preview this PDF you need to use a modern browser. Some good ones are shown below. You can also download the PDF by clicking <a href="<%=pdf_download_url || pdf_url%>">here</a>. </span> <div class="good_browsers"> <a target="_blank" href="http://www.google.com/chrome"> <img src="/res/img/v2/Chrome-128.png"> <div>Chrome</div> </a> <a target="_blank" href="http://www.mozilla.org/en-US/firefox/new/"> <img src="/res/img/v2/Firefox-128.png"> <div>Firefox</div> </a> </div> </div> <%}%> </div> </script> <div class="autocomplete-templates"> <script type="text/template" id="autocomplete_view"> <div class="autocomplete_app"> <ul class="selected_container autocomplete_selected_view pill_list"></ul> <input class="autocomplete_input form-control <%= options.required ? 'required':''%>" name="<%='autocomplete_' + $.ss.util.unique_number()%>" type="text" placeholder="<%-placeholder%>"></input> </div> </script> <script type="text/template" id="autocomplete_item"> <% if ( ! c.image_url && ! c.icon_class ) { %> <div> <div class="alert alert-warning"> No matches found </div> </div> <% } else { %> <div> <div class="autocomplete_box" data-id="<%=c.id%>"> <div class="ab_image"> <% if ( c.image_url ) { %> <img src="<%=c.image_url%>"> <% } else { %> <i class="<%=c.icon_class%>"></i> <% } %> </div> <div class="ab_info"> <% if(c.type==="search"){%> <ul> <li><span class="highlightable">"<%-c.name%>"</span> <li>( Search <%- c.search_description %> ) </ul> <% }else if(c.type==="user" || c.type==="company"){%> <ul> <li><span class="highlightable"><%-c.name%></span> <% if(ss_context.network_admin) { %> (<%-c.plan_name || "No Plan"%>) <% } %> </li> <%if(c.member_number){%> <li>Mem #: <span class="highlightable"><%-c.member_number%></span></li> <%}%> <%if(c.email){%> <li>Email: <%-c.email%></li> <%}%> </ul> <% } else if(c.type=="event"){%> <ul> <li><span class="highlightable"><%-c.name%></span></li> <%if(c.formatted_date){%> <li><span><%-c.formatted_date%></span></li> <%}%> <%if(c.location){%> <li><%-c.location%></li> <%}%> </ul> <% } else if(c.type=="cpage"){%> <ul class="cpage-auto-complete"> <li><strong>Page: <span class="highlightable"><%-c.name%></span></strong></li> <%if(c.permaid){%> <li>URL: <%-c.permaid%></li> <%}%> <%if(c.template){%> <li><span>Template: <%-c.template%></span></li> <%}%> </ul> <% } else if(c.type=="invoice"){%> <ul> <li><strong>Invoice: #<span class="highlightable"><%-c.invoice_number%> (<%-c.recipient_name%>)</span></strong></li> <%if(c.created){%> <li><span>Date: <%-c.created%></span></li> <%}%> <%if(c.description){%> <li>Description: <%-c.description%></li> <%}%> </ul> <% } else if(c.type=="chapter"){%> <ul> <li><strong><span class="highlightable"><%-c.name%></span></strong></li> </ul> <% } else if(c.type=="campaign"){%> <ul> <li>Campaign Name: <strong><span class="highlightable"><%-c.name%></span></strong></li> <%if(c.description){%> <li>Description: <%= c.description %></li> <%}%> </ul> <% } else if(c.type=="transaction"){%> ## You can't view a single transaction, so no point putting it in the autocomplete ## Maybe someday... <% } %> </div> </div> </div> <% } %> </script> <script type="text/template" id="autocomplete_selected_view"> <span><%-title%></span> <a class="remove">&times;</a> <%if(name){%> <input type="hidden" name="<%-input_name%>" value="<%-id%>"> <%}%> </script> </div> <div class="directory-page-templates" style="display:none"> <script type="text/template" class="event-list-pagination-filters"> <div class="panel panel-default event-filters filtered-search-controls"> <div class="facet-title">Categories</div> <div class="event-category-facets mb2"> <% _.each(event_categories, function(event_category) { %> <% var name = event_category.name; var no_events = event_category.count == 0; var checked = (event_category.selected && !no_events) ? "checked" : ""; var label_classes = no_events ? "empty-facet" : ""; var disabled = no_events ? "disabled" : ""; var default_category = (event_category.id == 'Default'); %> <div class="checkbox"> <label class="<%= label_classes %>"> <input class="event-category-filter" data-value="<%= default_category ? 'default' : event_category.id %>" <%= checked %> <%= disabled %> type="checkbox"> <%= name %> <span class="badge"><%= event_category.count %></span> </label> </div> <% });%> </div> <div class="facet-title">Display Type</div> <div class="btn-group btn-group-justified" role="toolbar"> <div class="btn-group"> <button type="button" class="btn btn-default display-type-picker <%= display_type == 'default' ? 'active' : '' %>" data-value="default">List</button> </div> <div class="btn-group"> <button type="button" class="btn btn-default display-type-picker <%= display_type == 'grid' ? 'active' : '' %>" data-value="grid">Grid</button> </div> </div> <div class="mt2"> <div class="facet-title mb2">Events in the Next</div> <div class="btn-group btn-group-justified" role="toolbar"> <div class="btn-group"> <button type="button" class="btn btn-default event-period-picker <%= period == 'week' ? 'active' : '' %>" data-value="week">Week</button> </div> <div class="btn-group"> <button type="button" class="btn btn-default event-period-picker <%= period == 'month' ? 'active' : '' %>" data-value="month">Month</button> </div> </div> <div class="btn-group btn-group-justified" role="toolbar"> <div class="btn-group"> <button type="button" class="btn btn-default event-period-picker <%= period == 'year' ? 'active' : '' %>" data-value="year">Year</button> </div> <div class="btn-group"> <button type="button" class="btn btn-default event-period-picker <%= period == 'all' ? 'active' : '' %>" data-value="all">Ever</button> </div> </div> </div> <div class="mt1"> <button type="button" class="btn btn-block btn-default event-period-picker <%= period == 'past' ? 'active' : '' %>" data-value="past">View Past Events</button> </div> </div> </script> <script type="text/template" class="results-total-template"> <h2> <div class="found"> <%= total_found_string %> </div> </h2> </script> <script type="text/template" class="job-directory-pagination-filters"> <div class="filtered-search-controls job-search-controls panel panel-default"> <div class="facet-title">Keyword</div> <div class="filtered-keyword-search-box"> <div class="input-group"> <input type="text" name="keyword" id="job_keyword" placeholder="Search" class="form-control enter-keypress-trigger-button"> <span class="input-group-btn"> <button class="btn btn-default job-keyword-search go"><i class="fa fa-search"></i></button> </span> </div> <% if (job_keyword) { %> <div> <label class="job-keyword-display"><%=job_keyword%></label> <a class="remove-keyword-item btn btn-sm">(clear)</a> </div> <% } else { %> <br/><br/> <% } %> </div> <div class="job_type_facets panel-body"> <div class="facet-title">Type</div> <% _.each( job_types, function( job_type ) { var description = job_type.description; var checked = job_type.selected ? "checked" : ""; var no_jobs = job_type.count == 0; var label_classes = no_jobs ? "empty-facet" : ""; var disabled = no_jobs ? "disabled" : ""; %> <div class="checkbox"> <label class="<%= label_classes %>"><input class="job-type-filter" data-value="<%=description%>" <%=checked%> <%= disabled %> type="checkbox"> <%=description%> <span class="badge"><%=job_type.count%></span></label> </div> <% });%> <div class="facet-title">Category</div> <% _.each( job_categories, function( job_category ) { var description = job_category.description; var checked = job_category.selected ? "checked" : ""; var no_jobs = job_category.count == 0; var label_classes = no_jobs ? "empty-facet" : ""; var disabled = no_jobs ? "disabled" : ""; %> <div class="checkbox"> <label class="<%= label_classes %>"><input class="job-category-filter" data-value="<%=description%>" <%=checked%> <%= disabled %> type="checkbox"> <%=description%> <span class="badge"><%=job_category.count%></span></label> </div> <% });%> <% if (search_by_location) { %> <div class="facet-title">Location</div> <div class="job_location"> <div class="field form-group"> <select onchange="" class="country_binding_provinces job-country-filter form-control"> <% _.each( all_countries_and_states['ALL_COUNTRIES'], function( country ) { var selected = job_country == country[0] ? "selected" : ""; %> <option value="<%=country[0]%>" <%=selected%>><%=country[1]%></option> <% });%> </select> </div> <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="CA" style="display: none;"> <select onchange="" class=" form-control job-province-filter" disabled="disabled"> <% _.each( all_countries_and_states['CANADIAN_PROVINCES'], function( province ) { var selected = job_province == province[0] ? "selected" : ""; %> <option value="<%=province[0]%>" <%=selected%>><%=province[1]%></option> <% });%> </select> </div> <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="US" style="display: none;"> <select onchange="" class=" form-control job-province-filter" disabled="disabled"> <% _.each( all_countries_and_states['AMERICAN_STATES'], function( province ) { var selected = job_province == province[0] ? "selected" : ""; %> <option value="<%=province[0]%>" <%=selected%>><%=province[1]%></option> <% });%> </select> </div> <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="AU" style="display: none;"> <select onchange="" class=" form-control job-province-filter" disabled="disabled"> <% _.each( all_countries_and_states['AUSTRALIAN_STATES'], function( province ) { var selected = job_province == province[0] ? "selected" : ""; %> <option value="<%=province[0]%>" <%=selected%>><%=province[1]%></option> <% });%> </select> </div> <div class="field form-group disabled_by_binding" data-bound_to=".job_location|.country_binding_provinces" data-bound_to_value="GB" style="display: none;"> <select onchange="" class=" form-control job-province-filter" disabled="disabled"> <% _.each( all_countries_and_states['UK_STATES'], function( province ) { var selected = job_province == province[0] ? "selected" : ""; %> <option value="<%=province[0]%>" <%=selected%>><%=province[1]%></option> <% });%> </select> </div> <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;"> <div class="input-group"> <input type="text" id="other_province" placeholder="Province" value="<%=job_province%>" class="form-control enter-keypress-trigger-button"> <span class="input-group-btn"> <button class="btn btn-default job-province-search go"><i class="fa fa-search"></i></button> </span> </div> </div> <div class="checkbox"> <% var checked = job_remote == "true" ? "checked" : ""; %> <label><input class="job-remote-filter" <%=checked%> type="checkbox"> Remote Only</label> </div> </div> <% } %> <div class="facet-title">Company</div> <div id="autocomplete_company"></div> </div> </div> </script> <script type="text/template" class="pagination-top-links"> <div class="row"> <div class="col-xs-3 col-md-6 form-inline"> <% if (c.model.get('allow_alpha') === 'True'){ %> <div class="form-group alpha-filter"> <label class="directory-search-label">Name</label> <select name="first_name" class="form-control input-lg alpha_filter_select"> <% _.each( alphabet, function( letter ) { var selected = ''; if(hash == '#' + letter){ selected = 'selected'; } %> <option value="<%=letter%>" <%=selected%>><%=letter%></option> <% }); %> </select> </div> <% } %> </div> <% if ( c.model.get('asset_type') != 'job' ) { %> <div class="col-xs-9 col-md-6 "> <!--- START SEARCH FORM ---> <% var category_to_search = '' var search_for = c.model.get('asset_type'); if(c.model.get('asset_type') == 'company_user'){ search_for = 'directory'; } else if (c.model.get('asset_type') == 'article') { filter_json = JSON.parse(c.model.get('filter', '')); if (filter_json['category']) { category_to_search = filter_json['category'] } } %> <form method="get" action="/<%-search_for%>/search"> <div class="directory-search-field form-group"> <input type="submit" class="directory-search-submit btn btn-lg btn-primary" value="GO" /> <label class="directory-search-label">Quick Search</label> <span><input type="text" name="keyword" class="form-control directory-search-text-input input-lg" <%= keyword ? 'value="' + keyword + '"' : '' %> placeholder="Search"></span> <% if (category_to_search) { %> <input type="hidden" name="category" value="<%- category_to_search %>" /> <% } %> </div> </form> <!--- END SEARCH FORM ---> </div> <% } %> </div> <% if (c.model.get('allow_alpha') === 'True'){ %> <div class="row"> <div class="col-xs-12"> <% if (c.model.get('asset_type') === 'company_user' && pagination_filter_buttons){ %> <!--- START FILTER BUTTONS ---> <div class="filter_by pull-right"> <div class="hidden-xs"> <label class="directory-search-label hidden-sm">Filter</label> <%=pagination_filter_buttons%> </div> <div class="visible-xs btn-group"> <%=pagination_filter_buttons%> </div> </div> <!--- END FILTER BUTTONS ---> <% } %> <!--- START SORT BUTTONS ---> <div class="sort-by pull-right"> <div class="hidden-xs"> <label class="directory-search-label hidden-sm">Sort By: </label> <%=pagination_sort_buttons%> </div> <div class="visible-xs btn-group"> <%=pagination_sort_buttons%> </div> </div> <!--- END SORT BUTTONS ---> </div> </div> <% } %> </script> <script type="text/template" class="pagination-control"> <div class="btn-toolbar pagination-toolbar"> <div> <!--START PREV BUTTON ---> <div class="btn-group btn-group-sm prev-button"> <% if( current_page !== 1 && current_page !== 0){ %> <a class="btn btn-default page" data-page="<%-current_page-1%>">Prev </a> <% }else{ %> <a class="btn btn-default page" data-page="<%-current_page%>" disabled>Prev </a> <% } %> </div> <!--END PREV BUTTON ---> <!--START NUMBERED BUTTON GROUP--> <div class="btn-group btn-group-sm hidden-xs"> <% if( total_page < 10 ) { // TOTAL PAGES LESS THAN 10 for(var i = 1; i<=total_page; i++){ if(i === current_page){ %> <a class="btn btn-info page" data-page="<%-i%>"><%-i%></a> <% }else{ %> <a class="btn btn-default page" data-page="<%-i%>"><%-i%></a> <% } } }else{ // TOTAL PAGES GREATER THAN 10 if(current_page>=5 && current_page <= total_page - 4){ // TOTAL PAGES GREATER THAN 10 AND CURRENT_PAGE >= 5 AND CURRENT_PAGE <= TOTAL_PAGE-4 %> <a class="btn btn-default page" data-page="1">1... </a> </div> <div class="btn-group btn-group-sm"> <% for(var page = current_page - 2; page<=current_page+2; page++){ if(page === current_page){ %> <a class="btn btn-info page" data-page="<%-page%>"><%-page%></a> <% }else{ %> <a class="btn btn-default page" data-page="<%-page%>"><%-page%></a> <% } } %> </div> <div class="btn-group btn-group-sm hidden-xs"> <a class="btn btn-default page" data-page="<%-total_page%>">...<%-total_page%></a> <% }else{ if(current_page<=5){ // TOTAL PAGES GREATER THAN 10 AND CURRENT_PAGE LESS THAN 5 for(page = 1; page <=6; page++){ if(page === current_page){ %> <a class="btn btn-info page" data-page="<%-page%>"><%-page%></a> <% }else{ %> <a class="btn btn-default page" data-page="<%-page%>"><%-page%></a> <% } } %> </div> <div class="btn-group btn-group-sm hidden-xs"> <a class="btn btn-default page" data-page="<%-total_page%>">...<%-total_page%></a> <% }else if(current_page>=total_page - 4){ // TOTAL PAGES GREATER THAN 10 AND CURRENT_PAGE >= TOTAL_PAGE-4 %> <a class="btn btn-default page" data-page="1">1... </a> </div> <div class="btn-group btn-group-sm hidden-xs"> <% for(page = total_page - 5; page <= total_page; page++){ if(page === current_page){ %> <a class="btn btn-info page" data-page="<%-page%>"><%-page%></a> <% }else{ %> <a class="btn btn-default page" data-page="<%-page%>"><%-page%></a> <% } } } } } %> </div> <!--END NUMBERED BUTTON GROUP--> <!--START NEXT BUTTON ---> <div class="btn-group btn-group-sm next-button"> <% if( current_page !== this.model.get('total_page') ){ %> <a class="btn btn-default page" data-page="<%-current_page+1%>">Next </a> <% }else{ %> <a class="btn btn-default page" data-page="<%-current_page%>" disabled>Next </a> <% } %> </div> <!--END NEXT BUTTON ---> </div> <div class="visible-xs col-xs-12 pagination-pages"> Pages: <%-total_page%> </div> <!--START GO BUTTON ---> <div> <div class="input-group input-group-sm"> <span class="input-group-btn"> <a class="btn btn-default btn-sm go">Go</a> </span> <input type="text" class="form-control goto"> </div> </div> <!--END GO BUTTON ---> <div> </script> <script type="text/template" class="pagination-filter-buttons"> <button class="btn btn-default directory-search-btn btn-lg directory-filter <%-all_filtered%>" data-value="all">All</button> <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> <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> </script> <script type="text/template" class="pagination-sort-buttons"> <button class="btn btn-default btn-lg directory-search-btn alpha_filter <%-alpha_filtered%>" data-value="">A-Z</button> <button class="btn btn-default btn-lg directory-search-btn recent_filter <%-recent_filtered%>" data-value="recent">Recent</button> </script> <script type="text/template" class="pagination-count-selector"> <div class="btn-toolbar"> <div class="input-group input-group-sm"> <span class="input-group-addon">Results per page</span> <select class="form-control num_per_page"> <% _.each(list_options, function(value){ var selected = ''; if (value === num_per_list) { selected = 'selected'; } %> <option value="<%-value%>" <%=selected%>><%-value%></option> <% }); %> </select> </div> </div> </script> </div> <div class="custom-content-creator-templates"> <script type="text/template" id="custom-content-creator"> <div class="custom-content-creator"> <h3><%- title %> <i class="popover_link fa fa-question-circle" role="button" data-toggle="popover" data-trigger="focus" title="<%- popovertitle %>" data-content="<%- popovertext %>" > </i> </h3> <div class="row"> <div class="col-sm-3 col-md-4"> <ul class="list-group custom-content-list"> </ul> <a href="javascript:void(0)" class="btn btn-primary btn-lg btn-block add-custom-content">Add a <%- item_type %></a> </div> <div class="col-sm-9 col-md-8"> <div class="custom-content-editor"> </div> </div> </div> <div class="feedback alert"> </div> </div> </script> <script type="text/template" id="custom-content-list-item"> <li class="list-group-item custom-content-li" data-id="<%-id%>"> <div class="move-target" data-id="<%-id%>"> </div> <%-name%> </li> </script> <script type="text/template" id="custom-content-edit-panel"> <div class="form-group"> <input type="text" class="custom-content-name form-control" name="name" value="<%-name || ''%>" placeholder="Content Title"> </div> <div class="form-group custom-content"> <label><%- item_type %> Content</label> <div class="hidden_ckeditor_input" name="content" style="display:none"><%=content%></div> </div> <div class="clearfix"> <a href="javascript:void(0)" class="pull-left save-custom-content btn btn-success" data-id="<%-id%>" >Save</a>&nbsp; <a href="javascript:void(0)" class="pull-left cancel-custom-content btn btn-warning" data-id="<%-id%>">Cancel</a> <% if (id) { %> <a href="javascript:void(0)" class="pull-right delete-custom-content btn btn-danger" data-id="<%-id%>">Delete</a> <% } %> </div> </script> </div> <div class="ticket-templates"> <script type="text/template" id="event_ticket_rows"> <td class="name"> <input data-name="name" name="name_<%=random_token%>" class="required form-control" type="text" value="<%-name || ''%>" placeholder="Ticket name"> </td> <td class="quantity"> <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"> </td> <td class="price"> <div class="input-group"> <div class="input-group-addon"><%=currency_symbol%></div> <input name="price_<%=random_token%>" data-name="price" class="required numbers form-control" type="text" value="<%=price_to_display%>"> </div> </td> <td class="settings"> <a class="ticket_settings">Settings</a> </td> <td class="signup_form"> <a class="signup_form_js">Signup Form</a> </td> <td class="remove"> <span class="remove_list_row"><i class="fa fa-times"></i></span> </td> </script> <script type="text/template" id="ticket_settings"> <div class="ticket_detail_dialog"> <form class="form-horizontal"> <div class="form-group"> <label class="control-label col-sm-4">Ticket Description:</label> <div class="col-sm-8"> <input name="ticket:description" type="text" class="description form-control" value="<%-description || ''%>"> </div> </div> <div class="form-group"> <label class="control-label col-sm-4"> Available to:&nbsp <%= ss.fn.popover({ title: "Available To", content: "Limit the purchase of this ticket type to a certain membership category or designation. " + "If you are looking to make this ticket type available to people without an account, make sure to select 'Anyone' here " + "and then 'Allow Registration Without Account' on the main event edit page."}) %> </label> <div class="col-sm-8"> <select name="ticket:membership_requirement" class="membership_requirement form-control"> <% _.each(membership_options,function(value){ %> <option value="<%=value[0]%>" <% if(value[0] == membership_requirement){ %> selected <% } %> > <%=value[1]%> </option> <% }); %> </select> </div> </div> <div class="form-group user_type_options" <% if(membership_requirement == "other"){ %> style="display:block;" <% }else{ %> style="display:none;" <% } %> > <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> <div class="col-sm-8"> <select name="ticket:user_type_requirement" id="user_type_options" class="form-control" size="10" multiple="multiple"> <% _.each(user_type_options,function(value){ %> <option value="<%=value[0]%>" <% if(user_type_requirement != null){ if(typeof(user_type_requirement) == "string" && user_type_requirement == value[0] || typeof(user_type_requirement) == "object" && _.indexOf(user_type_requirement,value[0]) >= 0){ %> selected <% } } %> ><% if(value[1] == "Group Admin"){%>Organization Admin<%}else{%><%=value[1]%><%}%></option> <% }); %> </select> </div> <label class="control-label col-sm-4"> Display Ticket: <%= ss.fn.popover({ title: "Display Ticket", content: "Show membership type ticket to users either without a membership or plans other than ones selected. " + "They will not be able to purchase without the proper membership type."}) %> </label> <div class="col-sm-8 form-inline"> <input type="checkbox" value name="ticket:show_user_type_ticket" class="form-control" <%= show_user_type_ticket ? 'checked' : ''%>> </div> </div> <div class="form-group"> <label class="control-label col-sm-4"> Sale Start:&nbsp <div class="pull-right"> <a class="popover_link" role="button" data-toggle="popover" data-trigger="focus" data-title="Sale Start" 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>"> <i class="fa fa-question-circle"></i> </a> </div> </label> <% var start_date; var date_to_display = ''; if(registration_start_date){ start_date = new Date(registration_start_date); date_to_display = ss_format_date(start_date); } %> <div class="col-sm-8"> <input name="ticket:registration_start_date" type="text" class="start_date date date_input form-control" value="<%=date_to_display%>" placeholder="Start Date"> <%/*%> <select name="ticket:registration_start_time" class="start_time" <%if(!registration_start_time){%>style="display:none;"<%}%>> <%*/%> <select name="ticket:registration_start_time" class="start_time" style="display:none;"> <% _.each(time_options, function(time){ %> <option value="<%=time%>" <% if(registration_start_time == time){ %> selected <% } %> ><%=time%></option> <% }); %> </select> </div> </div> <div class="form-group"> <label class="control-label col-sm-4">Sale End:</label> <div class="col-sm-8"> <% var end_date; var date_to_display = ''; if(registration_end_date){ end_date = new Date(registration_end_date); date_to_display = ss_format_date(end_date); } %> <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"> <%/*%> <select name="ticket:registration_end_time" id="end_time" <%if(!registration_end_time){%>style="display:none;"<%}%>> <%*/%> <select name="ticket:registration_end_time" id="end_time" style="display:none;"> <% _.each(time_options, function(time){ %> <option value="<%=time%>" <% if(registration_end_time == time){ %> selected <% } %> ><%=time%></option> <% }); %> </select> </div> </div> <div class="form-group"> <label class="control-label col-sm-4">Max Number of Tickets / Person:</label> <div class="col-sm-8 form-inline"> <input name="ticket:max_num_of_tickets_per_user" class="max_per_order form-control" value="<%= has_max_num_of_tickets_per_user ? max_num_of_tickets_per_user : ''%>" placeholder="No Limit" > </div> </div> <% if (use_gl_codes) { %> <div class="form-group"> <label class="control-label col-sm-4">General Ledger Code:</label> <div class="col-sm-8"> <input name="ticket:gl_code" type="text" class="form-control" value="<%=gl_code%>" /> </div> </div> <% } %> <div> <label class="control-label col-sm-4">Coupons:</label> <div class="inline_field_block col-sm-8"> <ul class="coupons"> </ul> <div class="field_displayed_data"> <a href="#" class="add-coupon-js">Add Coupon</a> </div> </div> </div> </form> </div> </script> <script type="text/template" id="coupon_row"> <!-- validation only works if fields have unique names--> <li class="clearfix"> <div class="col-xs-12 form-horizontal"> <div class="form-group"> <div class="form-inline"> <input class="required code-js form-control" type="text" placeholder="code" name="coupon_code_<%-(new Date()).getTime()%>" value="<%=code%>"> <button class="btn btn-danger remove_list_row">x</button> </div> </div> <div class="form-group"> <div class="form-inline"> <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%>" /> <div class="btn-group discount_type_buttons" role="group"> <button type="button" class="btn discount_type_percent <% if(discount_type==ss.config.CONSTANTS.PERCENT_DISCOUNT){%>active btn-primary<%}%>">%</button> <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> </div> <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" /> </div> </div> </div> </li> </script> <script type="text/template" id="signup_form"> <div class="ticket_signup_form ticket_detail_dialog label_beside"> <form class="form-horizontal"> <% var signup_form_fields = [['name','Name'],['email','Email Address'],['company','Company Name'],['phone','Phone Number'],['address','Address'],['company_detailed','Detailed Company Information']]; _.each(signup_form_fields, function(value) { %> <div class="form-group"> <label class="control-label col-sm-4"> <%=value[1]%>: <% if (value[0] === 'company_detailed') { %> <%= ss.fn.popover({title: "Detailed Company Information", content: "When checked, users will be required to enter their company information in order to purchase tickets. " + "This info will then be used as the address info on the invoice for any such tickets. " + "Furthermore, the info entered will populate the Work Address fields for any new contacts created " + "as a result of purchasing tickets. This info will not be used to automatically create a company " + "or to link a user to an existing company. " + "Do not use this option in conjunction with the 'Company Name' field option above."})%> <% } else if (value[0] === "email") { %> <%= ss.fn.popover({title: "Email Address", content: "All event attendees are recorded in your database using the email address entered on their event ticket." })%> <% } %> </label> <div class="col-sm-8"> <% if (value[0] === "name" || value[0] === "email") { %> <input type="checkbox" value name="ticket:signup_form:<%=value[0]%>" class="mr-1i" disabled checked> <% } else { %> <input type="checkbox" value name="ticket:signup_form:<%=value[0]%>" class="mr-li<% if (value[0] === "company_detailed") { %> company_name_conflict<% } %>" <% if (_.indexOf(signup_form,value[0]) !== -1) { %> checked <% } else if (value[0] === "company_detailed" && SS.app.current_network.detailed_attendee_company_info_checked && _.indexOf(signup_form,value[0]) !== -1) { %> checked <% } %> > <% } %> </div> </div> <% }); %> <hr> <ul class="ticket_custom_fields sortable-items"> </ul> <a class="btn btn-success add_field">Add a Custom Field</a> </form> </div> </script> <script type="text/template" class="ticket-custom-field"> <li class="form-group custom_field"> <input class="key input_box" type="hidden" name="key" value="<%=key%>"> <input class="index" type="hidden" name="index" value="<%=key%>"> <div class="input-group"> <select class="custom_field_selection form-control validation_no_duplicate_field" name="field_info_id_<%=key%>"> <% _.each(ss_context.ticket_custom_fields,function(value){ %> <option value="<%=value[0]%>" <% if(field_info_id == value[0]){ %> selected <% } %> ><%=value[1]%></option> <% }); %> </select> <span class="input-group-btn"> <button class="btn btn-danger remove_list_row" type="button">&times;</button> </span> </div> </li> </script> <script type="text/template" id="event_reminder_row"> <div class=""> <input class="input_box to_delete" type="hidden" name="day_list[<%=key%>].to_delete" value="<%=to_delete%>"> <% if(is_before == 'day_of'){ %> <input class="input_box reminder_number required form-control " type="text" name="day_list[<%=key%>].number" value="<%=number || ''%>" style="display:none;" disabled> <input class="input_box reminder_time_unit" type="hidden" name="day_list[<%=key%>].time_unit" value="days" disabled> <span class="time_until_js" style="display:none;">Days</span> <%}else{%> <input class="input_box reminder_number required form-control " type="text" name="day_list[<%=key%>].number" value="<%=number || ''%>"> <input class="input_box reminder_time_unit" type="hidden" name="day_list[<%=key%>].time_unit" value="days"> <span class="time_until_js">Days</span> <%}%> <select class="form-control is_before_selection" name="day_list[<%=key%>].is_before"> <option value="before" <%if(is_before == 'before'){%>selected<%}%>>Before</option> <option value="day_of" <%if(is_before == 'day_of'){%>selected<%}%>>Day of</option> </select> <span class="remove_list_row" title="Removes the field">&times;</span> </div> </script> <script type="text/template" id="custom_field_list"> <div> <ul class="custom_fields"></ul> <a class="button success add_field">Add a Custom Field</a> </div> </script> <script type="text/template" id="custom_field_selection"> <div class="form-group field custom_field"> <label>Custom Field:</label> <div class="input-group"> <select class="custom_field_selection form-control validation_no_duplicate_field"> <% _.each(ss_context.ticket_custom_fields,function(field_info){ %> <option value="<%=field_info[0]%>" <% if(field_info_id == field_info[0]){ %> selected <% } %> ><%=field_info[1]%></option> <% }); %> </select> <span class="input-group-btn"> <button class="btn btn-danger remove_list_row" type="button">&times;</button> </span> </div> </div> </script> </div> <script type="text/template" id="search_widget_edit_row"> <div class="clearfix"> <div class="btn-group pull-right"> <a class="btn btn-sm btn-danger remove_row_js">Delete Row <i class="fa fa-times-circle"></i></a> <a class="add_field_js btn-sm btn btn-default">Add Field <i class="fa fa-plus-circle"></i></a> </div> </div> <div class="mt1 field row_field"> <input type="hidden" name ="<%=field_prefix%>.index" class="index_input" value=> <input type="hidden" name ="<%=field_prefix%>.key" value="<%=key%>"> <select name="<%=field_prefix%>.value" class="form-control mb1 search_option_js"> <% _.each(search_target_options,function(target_option){ %> <option value="<%=target_option[0]%>" <%= target_option[0] == value && value ? 'selected' : ''%>> <%=target_option[1]%> </option> <% }); %> </select> </div> </script> <script type="text/template" id="search_widget_field"> <div class="field field_element"> <input type="hidden" name = "<%=field_prefix%>.index" class="index_input" value=<%=index%>> <input type="hidden" name ="<%=field_prefix%>.key" value="<%=key%>"> <input type="hidden" name ="<%=field_prefix%>.deletable" value="<%= deletable ? 'true' : ''%>"> <input class="required_input" type="hidden" name ="<%=field_prefix%>.required" value="<%= required ? 'true' : ''%>"> <input class="no_empty_input" type="hidden" name ="<%=field_prefix%>.no_empty_option" value="<%= no_empty_option ? 'true' : ''%>"> <input class="hidden_options_input" type="hidden" name ="<%=field_prefix%>.hidden_options" value="<%=hidden_options%>"> <% if(field_id == 'keyword'){ %> <input type="hidden" name ="<%=field_prefix%>.field_id" value="keyword"> <% } %> <div class="input-group"> <select name="<%=field_prefix%>.field_id" class="form-control search_field_js" <%= field_id === 'keyword' ? 'disabled' : ''%>> <% _.each(field_option_groups, function(option_group){ %> <optgroup label="<%-option_group.label%>"> <% _.each(option_group.options, function(target_option){ %> <% var value = target_option[0]; %> <option value="<%=value%>" <%= target_option[0] === field_id ? 'selected' : ''%>> <%=target_option[1]%> </option> <% }); %> </optgroup> <% }); %> </select> <span class="input-group-btn"> <% if(deletable){ %> <a class="remove_field_js btn btn-danger"><i class="fa fa-times-circle"></i> Delete</a> <% } %> <a href="" class='edit_js btn btn-info'><i class="fa fa-pencil"></i> Edit</a> </span> </div> </div> </script> <script type="text/template" id="non_loggedin_contact_message"> <form> <div class="form-group"> <label>Email: <i class="required_marker"></i></label> <input type="text" class="reply_email form-control required email" name="reply_email" value=""> </div> <div class="form-group"> <label>First Name: <i class="required_marker"></i></label> <input type="text" class="first_name form-control required" name="first_name" value=""> </div> <div class="form-group"> <label>Last Name: <i class="required_marker"></i></label> <input type="text" class="last_name form-control required" name="last_name" value=""> </div> <div class="form-group"> <label>Subject: <i class="required_marker"></i></label> <input type="text" class="message_subject form-control required" name="message_subject" value="<%=subject%>"> </div> <div class="form-group"> <label>Message: <i class="required_marker"></i></label> <textarea class="message_body required form-control" name="message_body"></textarea> </div> </form> </script> <script type="text/template" id="company_member_listing"> <div class="row"> <div class="col-lg-4 col-md-5 col-sm-6"> <% if ( at_plan_cap ) { %> <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> <% } %> <h2 class="active_employees_title_js">Active <%- ss.config.TERMS.plural_employee %></h2> <span class="add_employee_help"></span> <ul class="active_employees list-group"> </ul> <div> <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> </div> <br> <h2 class="pending_employees_title_js">Pending <%- ss.config.TERMS.plural_employee %></h2> <ul class="pending_employees list-group"> </ul> </div> </div> </script> <script type="text/template" id="active_company_member_view"> <div class="row"> <div class="image_div col-xs-3"> <% if ( image_url ) {%> <img width="60" height="60" src="<%-image_url%>"> <% } else { %> &nbsp; <% } %> </div> <div class="member_details col-xs-9"> <div> <div class="member_name"><a href="/profiles/<%-id%>"><%-name%></a></div> <div class="member_actions"> <a class="member_action_delete_js"><i class="fa fa-trash"></i></a> </div> </div> <div class="member_title"> <label> <input type="text" placeholder="Title" class="title_js" value="<%-title || ''%>"> </label> </div> <ul class="member_type"> <li> <label> <input type="radio" name="primary_contact" class="primary_contact_js" <%-primary_contact ? 'checked' : ''%>> <span> Contact Person <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="Contact Person" data-content="The Primary Contact is the person whose contact info will appear on your <%- ss.config.TERMS.singular_company %>'s profile." data-original-title="Primary Contact"> <i class="fa fa-question-circle icon-question-sign"></i> </a> </span> </label> <li> <% var account_holder_only_plan = company_plan_for == 'account_holder_only'; var account_holder_disabled = account_holder_only_plan && !is_network_admin; %> <label> <input type="radio" name="account_holder" class="account_holder_js" <%-account_holder ? ' checked ' : ''%> <%-account_holder_disabled ? ' disabled ' : ''%>> <span> Billing Person <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="Billing Person" data-content="The Billing Person will receive confirmation emails and expiry reminders for your <%- ss.config.TERMS.singular_company %>'s membership, 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 functionality, please ensure that this member has a valid email address." data-original-title="Billing Person"> <i class="fa fa-question-circle icon-question-sign"></i> </a> </span> </label> <li> <label> <input type="checkbox" class="company_admin_js" <%-admin ? 'checked' : ''%> <%-account_holder && admin && !is_network_admin ? 'disabled' : ''%>> <% capitalized_company_type = _.string.titleize(ss.config.TERMS.singular_company) %> <span><%- capitalized_company_type %> Admin</span> <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="<%- capitalized_company_type %> Admin" 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 %>." data-original-title="<%- ss.config.TERMS.singular_company %> Admin"> <i class="fa fa-question-circle icon-question-sign"></i> </a> </label> </ul> </div> </div> <% if (account_holder && account_holder_only_plan) { %> <div class="alert alert-warning"> <i class="fa fa-exclamation-triangle pr1"></i><strong>Billing Person Only Plan</strong> <br/><br/> <div> This <%- ss.config.TERMS.singular_company %> holds a Billing Person Only Membership Plan. Only the billing person has access to the benefits of the <%- ss.config.TERMS.singular_company %>'s membership plan. Therefore, only network admins may change who the billing person is for this <%- ss.config.TERMS.singular_company %>. </div> </div> <% } %> </script> <script type="text/template" id="pending_company_member_view"> <div class="row"> <div class="image_div col-xs-3"> <% if ( image_url ) {%> <img width="60" height="60" src="<%-image_url%>"> <% } else { %> &nbsp; <% } %> </div> <div class="member_details col-xs-9"> <div class="member_name"><a href="/profiles/<%-id%>"><%-name%></a></div> <div class="member_email"><%-email%></div> <button type="button" class="btn btn-danger member_action_reject_js">Decline</button> <button type="button" class="btn btn-success member_action_approve_js" <%- at_plan_cap ? 'disabled' : '' %> >Approve</button> </div> <div class="member_actions"> </div> </div> </script> <script type="text/template" id="add_member_view"> <form class="new_member_form_js form-horizontal"> <div class="form-group"> <label class="control-label col-md-3">Email: <span style="color:red">*</span></label> <div class="col-md-9"> <input type="text" class="form-control email <%- ss.config.FEATURES.company_admin_invite_existing_members ? '' : 'user_id_update_available' %> required" name="email"> </div> </div> <div class="form-group"> <label class="control-label col-md-3">First Name: <span style="color:red">*</span></label> <div class="col-md-9"> <input type="text" class="form-control required" name="first_name"> </div> </div> <div class="form-group"> <label class="control-label col-md-3">Last Name: <span style="color:red">*</span></label> <div class="col-md-9"> <input type="text" class="form-control required" name="last_name"> </div> </div> <hr> <div class="form-group"> <label class="control-label col-md-3 col-xs-6 "><%= _.string.titleize(ss.config.TERMS.singular_company) %> Admin?</label> <div class="col-md-9 col-xs-6"> <input type="checkbox" name="admin" value="true"> </div> </div> </form> </script> <script type="text/template" id="cancel_company_plan_popup"> <form> <div class="alert alert-warning"> <strong>Expiring a membership plan</strong> does not refund the fees the person has already paid. </div> <div> <input type="radio" name="cancel_member" value="" checked="True"> <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. <br> <input type="radio" name="cancel_member" value="True"> <strong>Cancel this Member.</strong> Cancelled members will not be sent renewal reminders or invoices. </div> </form> </script> <script type="text/template" id="uncancel_company_popup"> <form> Cancelled members will not be sent renewal reminders or invoices. </form> </script> <script type="text/template" id="cancel_company_popup"> <form> Cancelled members will not be sent renewal reminders and/or invoices. </form> </script> <script type="text/template" id="cancel_company_offer_popup"> <form class=""> <div class="alert alert-warning"> 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. </div> </form> </script> <script type="text/template" id="category_row"> <input type="hidden" class="to_delete" name="company:company_categories[<%=key%>].to_delete" value="<%=to_delete%>"> <div class="form-inline"> <div class="field parent_category_div form-group"> <span class="select_option"> <select name='company:company_categories[<%=key%>].parent_category_id' class='form-control parent_category_js'> <% if(parent_options.length == 0){ %> <option value=''>Other</option> <% }else{ _.each(parent_options,function(value){ %> <option value="<%=value[0]%>" <%if(parent_category_id == value[0]){%>selected<%}%> ><%=value[1]%></options> <% }); } %> </select> </span> </div> <% if(!parent_options.length == 0 && !sub_options.length == 0){ %> <div class="field sub_category_div form-group"> <span class="select_option"> <select class="form-control" name='company:company_categories[<%=key%>].sub_category_id'> <% _.each(sub_options,function(value){ %> <option value="<%=value[0]%>" <%if(sub_category_id == value[0]){%>selected<%}%> ><%=value[1]%></options> <% }); %> </select> </span> </div> <% } %> <span class="remove_row"><i class="fa fa-remove red"></i></span> </div> </script> <script type="text/template" id="company_selection"> <div class='field'> <label>Choose a <%- ss.config.TERMS.singular_company %>:</label> <input type='text' class='company_edit_autocomplete'> <div class='company_address'> </div> </div> </script> <script type="text/template" id="company_address"> <% if(address){ %> <h4><%- ss.config.TERMS.singular_company %> Address</h4> <div class="alert alert-info company_address_info"> <span><%=address%> <% if(!popup_version){ %> <a class='choose_company'><img src="/res/img/v2/icons/gear_16.png"></a> <% } %> </span> </div> <% }else{ %> <h4>Error:</h4> <div class="alert alert-error company_address_info"> <span>The selected <%- ss.config.TERMS.singular_company %> does not have an address. </span> <span>Please <a href="<%=url%>/edit" target="_blank">edit the <%- ss.config.TERMS.singular_company %></a> or Choose another one.</span> </div> <% } %> </script> <div class="team-page-templates"> <script type="text/template" class="team-page-base-template"> <div class="team editing-team relative"> <div class="center mb3"> <button class="btn btn-success add-team-member">Add <%- page_title %> Member</button> <a href="./" class="btn btn-default">View <%- page_title %> Page</a> <span class="category-dropdown"></spam> </div> <div class="team-members row relative"></div> <div class="row mt3"> <% if (show_cats) { %> <div class="col-sm-6 col-md-4 col-md-offset-1"> <h2 class="center mb2"> Edit Team Categories <a tabindex="0" class="popover_link" role="button" data-toggle="popover" title="Team Categories" 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."> <span class="fa fa-question-circle icon-question-sign" aria-hidden="true"></span><span class="sr-only">Help</span> </a> </h2> <div class="categories-target"></div> </div> <div class="col-sm-6 col-md-4 col-md-offset-2"> <% } else { %> <div class="col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4"> <% } %> <div class="team-members-ordering"> </div> </div> </div> </script> <script type="text/template" class="category-dropdown-template"> <div class="btn-group"> <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Other Categories <span class="caret"></span> </button> <ul class="dropdown-menu"> <li><a href="/team/edit">All Team Members</a></li> <li role="separator" class="divider"></li> <% _.each(categories, function(category){ %> <li><a href="/team/<%- category.get('permaid') %>/edit"><%- category.get('name') %></a></li> <% }); %> </ul> </div> </script> <script type="text/template" class="team-member-order-section"> <h2 class="center mb2">Order Team Members</h2> <ul class="list-group team-member-order relative"> </ul> </script> <script type="text/template" class="team-member-list-item"> <li class="list-group-item team-member-li move" data-id="<%- id %>"> <i class="fa fa-arrows"></i> <%- name %> </li> </script> <script type="text/template" class="team-member"> <div class="col-md-3 col-sm-4" data-id="<%- id %>"> <div class="team-member relative"> <div class="team-member-photo <%- image_url && image2_url ? 'has-two-photos' : '' %>"> <% if (image_url) { %> <img src="<%- image_url %>" class="img-responsive center-block primary-photo" alt="<%- name %>; <%- job_title %>" /> <% } %> <% if (image2_url) { %> <img src="<%- image2_url %>" class="img-responsive center-block secondary-photo" style="display:none" alt="<%- name %>; <%- job_title %>" /> <% } %> </div> <div class="team-member-name"> <h4><%- name %></h4> </div> <div class="team-member-position"> <%- job_title %> </div> <% if (extra_field_1) { %> <div class="team-member-extra"> <%= extra_field_1 %> </div> <% } %> <% if (extra_field_2) { %> <div class="team-member-extra"> <%= extra_field_2 %> </div> <% } %> <% if (extra_field_3) { %> <div class="team-member-extra"> <%= extra_field_3 %> </div> <% } %> <% if (extra_field_4) { %> <div class="team-member-extra"> <%= extra_field_4 %> </div> <% } %> <% if (bio) { %> <div class="team-member-blurb"> <a data-toggle="modal" data-target="#<%- id %>">BIO</a> <div class="modal fade" id="<%- id %>"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title"><%- name %></h4> </div> <div class="modal-body"> <%= bio %> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> </div> <% } %> <div class="team-member-links"> <% if ( email_address ) { %> <a href="mailto:<%- email_address %>" class="team-member-email mb1"> <i class="fa fa-envelope"></i> </a> <% } %> <% if ( phone_number ) { %> <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 %>"> <i class="fa fa-phone"></i> </a> <% } %> <% if ( website_url ) { %> <a href="<%- website_url %>" class="team-member-website mb1" target="_blank"> <i class="fa fa-desktop"></i> </a> <% } %> <% if ( facebook_url ) { %> <a href="<%- facebook_url %>" class="team-member-facebook mb1" target="_blank"> <i class="fa fa-facebook"></i> </a> <% } %> <% if ( twitter_url ) { %> <a href="<%- twitter_url %>" class="team-member-twitter mb1" target="_blank"> <i class="fa fa-brands fa-x-twitter"></i> </a> <% } %> <% if ( linkedin_url ) { %> <a href="<%- linkedin_url %>" class="team-member-linkedin mb1" target="_blank"> <i class="fa fa-linkedin"></i> </a> <% } %> <% if ( instagram_url ) { %> <a href="<%- instagram_url %>" class="team-member-instagram mb1" target="_blank"> <i class="fa fa-instagram"></i> </a> <% } %> </div> <div class="absolute bottom0"> <div class="btn-group btn-group-justified" role="group"> <div class="btn-group" role="group"> <button class="btn btn-primary edit-team-member" data-id="<%- id %>">Edit</button> </div> <div class="btn-group" role="group"> <button class="btn btn-danger delete-team-member" data-id="<%- id %>">Delete</button> </div> </div> </div> </div> </div> </script> <script type="text/template" class="edit-team-member-panel-template"> <div> <div class="team-member-edit-panel"> </div> </div> </script> <script type="text/template" class="edit-team-member-template"> <div class="edit-team-member ht500 of-auto"> <form id="team_member"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_name">Name</label> <input type="text" id="team_member_name" class="form-control required name" placeholder="Name" value="<%- team_member.get('name') %>" /> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_title">Title</label> <input type="text" id="team_member_title" class="form-control job-title" placeholder="Title" value="<%- team_member.get('job_title') %>" /> </div> </div> </div> <div class="row"> <% if (extra_fields['extra_field_1_label'] || team_member.get('extra_field_1')) { %> <div class="col-sm-6"> <div class="form-group"> <label for="extra_field_1"><%= extra_fields['extra_field_1_label'] ? extra_fields['extra_field_1_label'] : 'Field 1' %></label> <input type="text" id="extra_field_1" class="form-control required extra-field-1" placeholder="<%= extra_fields['extra_field_1_label'] ? extra_fields['extra_field_1_label'] : 'Field 1' %>" value="<%- team_member.get('extra_field_1') %>"/> </div> </div> <% } %> <% if (extra_fields['extra_field_2_label'] || team_member.get('extra_field_2')) { %> <div class="col-sm-6"> <div class="form-group"> <label for="extra_field_2"><%= extra_fields['extra_field_2_label'] ? extra_fields['extra_field_2_label'] : 'Field 2' %></label> <input type="text" id="extra_field_2" class="form-control required extra-field-2" placeholder="<%= extra_fields['extra_field_2_label'] ? extra_fields['extra_field_2_label'] : 'Field 2' %>" value="<%- team_member.get('extra_field_2') %>"/> </div> </div> <% } %> <% if (extra_fields['extra_field_3_label'] || team_member.get('extra_field_3')) { %> <div class="col-sm-6"> <div class="form-group"> <label for="extra_field_3"><%= extra_fields['extra_field_3_label'] ? extra_fields['extra_field_3_label'] : 'Field 3' %></label> <input type="text" id="extra_field_3" class="form-control required extra-field-3" placeholder="<%= extra_fields['extra_field_3_label'] ? extra_fields['extra_field_3_label'] : 'Field 3' %>" value="<%- team_member.get('extra_field_3') %>"/> </div> </div> <% } %> <% if (extra_fields['extra_field_4_label'] || team_member.get('extra_field_4')) { %> <div class="col-sm-6"> <div class="form-group"> <label for="extra_field_4"><%= extra_fields['extra_field_4_label'] ? extra_fields['extra_field_4_label'] : 'Field 4' %></label> <input type="text" id="extra_field_4" class="form-control required extra-field-4" placeholder="<%= extra_fields['extra_field_4_label'] ? extra_fields['extra_field_4_label'] : 'Field 4' %>" value="<%- team_member.get('extra_field_4') %>"/> </div> </div> <% } %> </div> <div class="form-group row"> <div class="col-sm-6"> <label>Primary Image</label> <div class="primary-image"></div> </div> <div class="col-sm-6"> <label>Secondary Image <small>(appears on hover)</small></label> <div class="secondary-image"></div> </div> </div> <div class="form-group"> <label>Bio</label> <div class="ckeditor_input" name="bio" data-name="bio"><%=team_member.get('bio') || '' %></div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_email">Email Address</label> <input type="text" id="team_member_email" class="form-control email-address" placeholder="yourname@example.com" value="<%- team_member.get('email_address') %>" /> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_phone">Phone Number</label> <input type="text" id="team_member_phone" class="form-control phone-number" placeholder="XXX-XXX-XXXX" value="<%- team_member.get('phone_number') %>" /> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_website">Website</label> <input type="text" id="team_member_website" class="form-control website-url" placeholder="http://www.domain-name.com" value="<%- team_member.get('website_url') %>" /> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_facebook">Facebook Page</label> <input type="text" id="team_member_facebook" class="form-control facebook-url" placeholder="http://www.facebook.com/yourname" value="<%- team_member.get('facebook_url') %>" /> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_linkedin">LinkedIn Page</label> <input type="text" id="team_member_linkedin" class="form-control linkedin-url" placeholder="http://www.linkedin.com/yourname" value="<%- team_member.get('linkedin_url') %>" /> </div> </div> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_twitter">X Page</label> <input type="text" id="team_member_twitter" class="form-control twitter-url" placeholder="http://www.twitter.com/yourname" value="<%- team_member.get('twitter_url') %>" /> </div> </div> </div> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <label for="team_member_instagram">Instagram Page</label> <input type="text" id="team_member_instagram" class="form-control instagram-url" placeholder="http://www.instagram.com/yourname" value="<%- team_member.get('instagram_url') %>" /> </div> </div> </div> <% if (!current_cat && categories.length > 0) { %> <div class="form-group row"> <div class="col-sm-6"> <label>Category</label> <% _.each(categories, function(category) { %> <% var checked = team_member.get('asset_categories').indexOf(category.id) >= 0 ? 'checked' : ''; %> <div class="checkbox"> <label> <input type="checkbox" name="category" class="category" style="margin-top:2px;" value="<%- category.id %>" <%- checked %>><%- category.get('name') %> </label> </div> <% }); %> </div> </div> <% } %> </form> </div> </script> </div> <div class="asset-categories-templates"> <script type="text/template" class="categories-base-template"> <ul class="list-group"> <% _.each(categories, function(category) { %> <li class="list-group-item clearfix"> <a href="<% category.category_page_url() %><%- category.get('permaid') %>" class="pull-left lh3"><%- category.get('name') %></a> <div class="btn-group pull-right" role="group"> <a class="btn btn-primary btn-sm edit-category" data-id="<%- category.id %>">EDIT</a> <a class="btn btn-danger btn-sm delete-category" data-id="<%- category.id %>">DELETE</a> </div> </li> <% }); %> <li class="block"> <button type="button" class="btn-block add-category list-group-item"><i class="fa fa-plus-circle"></i> Add Category</button> </li> </ul> </script> <script type="text/template" class="edit-category-template"> <form id="asset_category"> <% /* Eventually want to make the preset bind_to_asset_name optional, so we could use this to let users create any asset type category */ %> <input type="hidden" class="asset_name" name="bind_to_asset_name" value="<%- this.options.asset_name %>"> <div class="form-group"> <label for="<%- this.options.asset_name %>_category_name">Category Name</label> <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" /> </div> <div class="form-group"> <label for="<%- this.options.asset_name %>_category_desc">Category Description</label> <textarea id="<%- this.options.asset_name %>_category_desc" name="description" class="form-control description"><%- this.options.asset_category.get('description') %></textarea> </div> <div class="form-group"> <label for="<%- this.options.asset_name %>_category_url">URL</label> <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" /> <p class="help-block">The URL for your category. Please only use letters, numbers, and hyphens. E.g. board-of-directors. If you don't fill it out, we'll generate a page URL based on the Category Name field.</p> </div> </form> </script> </div> <div class="popup-templates"> <script type="text/template" class="delete-popup-template"> <div class="alert alert-danger"> <%- this.options.template_text %> </div> </script> </div> <div class="custom-field-templates"> <script type="text/template" class="custom-field-panel-template"> <div class="edit-panel-title"> <div class="panel-name"> <% if ( c.model.label ) { %> Edit <%- c.model.label %> <% } else { %> Create New Field <% } %> </div> <div class="panel-button-div"> <button type="button" class="save-js">Save</button> <% if ( ss.user.advanced && c.model.id ){ %> <button type="button" class="danger delete-js">Delete</button> <% } %> </div> </div> <div class="edit-panel-alerts"> </div> <div class="edit-panel-content"> <%= ss.text_row({label:'Label', name:'label', item:c.model, validations:'required protected_name'}) %> <%= ss.text_area_row({label: 'Description/Help Text', name: 'description', item: c.model}) %> <%= ss.select_row({label:'Field Type', name:'field_type', item:c.model, options:ss.models.FIELD_TYPES}) %> <%= ss.checkbox_row({label:'Optional', name:'optional', item:c.model}) %> <%= ss.checkbox_row({label:'Allow Privacy', name:'allow_privacy', item:c.model}) %> <div class="limit-block"> <%= ss.number_row({label:'Multiselect limit', name:'limit', item:c.model}) %> </div> <div class="option-block"> <div class="field"> <label>Options (Label/Value):</label> <ul class="options inline_field_block sortable-items"></ul> </div> <div class="add-option-row indented-block"> <a href="#" class="add-custom-field-item-js">+ Add Another Option</a> </div> </div> <div class="number-block"> <%= ss.number_row({label:'Number minimum', name:'min_number', item:c.model}) %> <%= ss.number_row({label:'Number maximum', name:'max_number', item:c.model}) %> </div> <div class="hide-label-block"> <%= ss.checkbox_row({label:'Hide Label', name:'hide_label', item:c.model, popover:{ title:'Hide Label', content:"Hide the label/heading when the field is displayed. Useful when just wanting to display the help text." } }) %> </div> </div> </script> <script type="text/template" class="custom-field-option-row"> <li class="field-option"> <input type="text" value="<%=c.model.label%>" class="label-field pull-left"> <input type="<%= ss.user.advanced ? 'text' : 'hidden'%>" value="<%=c.model.value%>" class="value-field pull-left"> <a href="#" class="close-button pull-left">&times;</a> </script> <script type="text/template" class="custom-field-li-template"> <div> <%- c.label %> </div> </script> <script type="text/template" class="custom-field-listing-template"> <div> <div class="two-panel-left-header"> Custom Fields </div> <h2 class="one-page-grouping-title"> <span class="one-page-grouping-name"> Assets </span> </h2> <ul class="asset-listing one-page-listing"> <li data-asset="user">Individuals <li data-asset="company">Organizations <li data-asset="event">Events </ul> <h2 class="one-page-grouping-title"> <span class="one-page-grouping-name"> Fields </span> </h2> <ul class="custom-field-listing one-page-listing"></ul> <% if (ss_context.network_features.chapter_custom_fields && !ss_context.is_apex){ %> <h2 class="one-page-grouping-title"> <span class="one-page-grouping-name"> Additional Fields </span> </h2> <ul class="additional-custom-field-listing one-page-listing"></ul> <% } %> <a class="add-new new-custom-field-js">+ new field</button> </div> </script> <script type="text/template" class="configure-asset-template"> <div class="edit-panel-title"> <div class="panel-name"> Location for Custom Field </div> <div class="panel-button-div"> <button type="button" class="save-js">Save</button> </div> </div> <div class="edit-panel-alerts"> </div> <div class="edit-panel-content"> </div> </script> <!-- old ones below here --> <div class="custom_field_templates" style="display:none"> <script type="text/template" class="custom_field_row"> <select class="span3 field-js" data-field="field_info_id"> <option value="">Choose a Field <% field_infos.each( function(field_info, index){ %> <option value="<%=field_info.get('id') %>" <%= field_info.get('id') === field_info_id ? 'selected' :''%> > <%= field_info.get('label')%> <% }); %> </select> <div class="remove-button">&times;</div> </script> <script type="text/template" class="custom_field_list"> <div class="field"> <label>Fields:</label> <div class="inline-block"> <ul class="field-list-js"> </ul> <a href="#" class="add-link add-field-js">Add Another Field</a> </div> </div> </script> </div> </div> <div class="field-templates" style="display:none"> <!-- Common attributes for selects, textareas, radio buttons --> <script type="text/template" class="input-attributes"> <% if ( c.data_name ) { %> data-name="<%- c.data_name %>" <% } %> <% if ( c.name ) { %> name="<%- c.name %>" <% } %> <%= c.disabled ? 'disabled' : '' %> <%= ss.validations( c ) %> class="<%- c.css_class || '' %> <%- c.required ?' required ' : '' %>" <% if ( c.placeholder ) { %> placeholder="<%= c.placeholder %>" <% } %> <% if ( c.data_value ) { %> data-value="<%- c.data_value %>" <% } %> <% if ( c.data_values ) { %> <% for (var key in c.data_values) { %> <% if (c.data_values.hasOwnProperty(key)) { %> data-<%= key %>="<%= c.data_values[key] %>" <% } %> <% } %> <% } %> <% if ( c.maxlength ) { %> maxlength="<%= c.maxlength %>" <% } %> </script> <script type="text/template" class="field-label"> <label class="<%= c.label_css_class || ''%>"> <%- c.label %><%= c.label ? ':' : '' %> <% if (c.required || _.string.contains(c.validations, 'required')){ %> <i class="required_marker"></i> <% } %> </label> </script> <script type="text/template" class="generic-row"> <div class="field <%= c.row_css_class || ''%>"> <%= ss.label( c ) %> <div class="<%= c.input_wrap_class || ''%>"> <% if ( c.description ) { %> <div class="custom-field-description md-gray fs12"> <%= c.description %> </div> <% } %> <%= c.field_content %> <% if (c.popover){ c.popover.placement = c.popover.placement || 'bottom'; print(ss.fn.popover(c.popover)); } %> </div> </div> </script> <script type="text/template" class="text-field"> <% if ( c.prepend || c.append ){ %> <div class="input-group <%= c.inline ? 'pull-left' : '' %>"> <% } %> <% if ( c.prepend ) { %> <div class="input-group-addon"><%-c.prepend %></div> <% } %> <input <%= ss.input_attributes( c )%> type="text" value="<%- c.value || '' %>"> <% if ( c.append ) { %> <div class="input-group-addon"><%-c.append %></div> <% } %> <% if ( c.prepend || c.append ){ %> </div> <% } %> </script> <script type="text/template" class="number-field"> <% if ( c.prepend || c.append ){ %> <div class="input-group <%= c.inline ? 'pull-left' : '' %>"> <% } %> <% if ( c.prepend ) { %> <div class="input-group-addon"><%-c.prepend %></div> <% } %> <input <%= ss.input_attributes( c )%> type="number" value="<%- c.value || '' %>"> <% if ( c.append ) { %> <div class="input-group-addon"><%-c.append %></div> <% } %> <% if ( c.prepend || c.append ){ %> </div> <% } %> </script> <script type="text/template" class="color-field"> <% var value = c.value; var checked = '' if ( value == 'transparent' ){ value = ''; checked = 'checked'; } %> <input <%= ss.input_attributes( c )%> type="text" value="<%- value || '' %>"> <% if ( c.allow_transparent ){ %> <input class="transparency-input" name="<%= c.name %>-transparent" data-color_name="<%= c.name %>" <%= checked %> type="checkbox"> Transparent <% } %> </script> <script type="text/template" class="checkbox-field"> <% var options = _.extend({}, c); options.css_class = (options.css_class || '') + ' send_unchecked_js '; options.checked = Boolean(options.checked) || Boolean( options.value ); options.value = 'True'; %> <input type="checkbox" value="True" <%= ss.input_attributes( options ) %> <%- options.checked ? 'checked' : '' %> > </script> <script type="text/template" class="list-field"> <% var options = _.extend({}, c); //options.css_class = (options.css_class || '') + ' send_unchecked_js '; xxx_c = c; safe_log(c.options, ss.fields.build_options(c.options)); %> <div class="inline_field_block"> <% _.each( ss.fields.build_options(c.options), function( option ){ // var selected = c.value === option.value; var checked; if ( _.isString( c.value ) ){ checked = _.contains( c.value.split(','), option.value ); } else if ( _.isArray( c.value ) ){ checked = _.contains( c.value, option.value ); } safe_log( 'Option', option); %> <div> <input type="<%= c.input_type %>" class="checkbox-list" value="<%=option.value%>" name="<%- c.name %>" data-name="<%- c.data_name %>" <%= option.disabled ? 'disabled' :'' %> <%- checked ? 'checked' : '' %> > <%= option.label %> </div> <% }); %> </div> </script> <script type="text/template" class="select-field"> <select <%= ss.input_attributes( c ) %> > <% _.each( ss.fields.build_options(c.options), function( option ){ %> <% var selected = c.value === option.value || ( _.isEmpty(c.value) && _.isEmpty( option.value ) ); %> <option <%= option.disabled ? 'disabled' :'' %> value="<%-option.value || ''%>" <%= option.field_type ? 'data-field_type=' + option.field_type : '' %> <%- selected ? 'selected' : '' %> ><%-option.label%> </option> <% }); %> </select> </script> <script type="text/template" class="multiselect-field"> <% c.css_class = c.css_class? c.css_class + ' multi-select-target' : 'multi-select-target'; %> <div class="js-multiselect-wrapper "> <select multiple="multiple" <%= ss.input_attributes( c ) %> data-placeholder=" " data-limit="<%= c.limit ? c.limit : '' %>"> <% _.each( ss.fields.build_options(c.options), function( option ){ %> <% if ( c.value && ! _.isArray(c.value) && ! _.isBoolean(c.value)) c.value = c.value.split(','); var selected = _.indexOf(c.value, option.value) >= 0; %> <option <%= option.disabled ? 'disabled' :'' %> value="<%-option.value || ''%>" <%- selected ? 'selected' : '' %> ><%-option.label%> <% }); %> </select> </div> </script> <script type="text/template" class="richtext-field"> <div class="inline_field_block"> <div <%= ss.input_attributes(c) %> ><%= c.value || '' %></div> </div> </script> <script type="text/template" class="pill-radio-field"> <div class="inline_field_block btn-group" role="group"> <% _.each( ss.fields.build_options(c.options), function(option){ var extra_class = ''; if ( c.value === option.value ){ extra_class = 'active'; } %> <button type="button" name="<%=c.name%>" class="btn btn-default <%= c.css_class %> <%= extra_class %>" value="<%= option.value %>" <%= option.disabled ? 'disabled' : '' %> ><%= option.label %></button> <% }); %> </div> </script> <script type="text/template" class="textarea-field"> <textarea <%= ss.input_attributes(c) %> ><%- c.value || '' %></textarea> </script> <script type="text/template" class="display-field"> <div class="field_displayed_data"> <% if ( c.value !== undefined && c.value !== null ) { %> <%- c.value %> <% } %> </div> </script> <script type="text/template" class="address-template"> <br/> <h2 class="alert alert-info"><%=c.label%></h2> <div class="form-group row"> <div class="col-md-4"> <%= ss.text_row({label:'Street Address', item:c.item, validations:c.validations, name:c.prefix +'.'+'street_address', row_css_class:'mobile-form-group', css_class:'form-control'}) %> </div> <div class="col-md-4"> <%= ss.text_row({label:'City', item:c.item, validations:c.validations, name:c.prefix +'.'+'city', row_css_class:'mobile-form-group', css_class:'form-control'}) %> </div> <div class="col-md-4"> <%= ss.text_row({label:'State/ Province', item:c.item, validations:c.validations, name:c.prefix +'.'+'province', row_css_class:'mobile-form-group', css_class:'form-control'}) %> </div> </div> <div class="form-group row"> <div class="col-md-6"> <%= ss.text_row({label:'Country', item:c.item, validations:c.validations, name:c.prefix +'.'+'country', row_css_class:'mobile-form-group', css_class:'form-control'}) %> </div> <div class="col-md-6"> <%= ss.text_row({label:'Zip Code / Postal Code ', item:c.item, validations:c.validations, name:c.prefix +'.'+'postal_code', row_css_class:'mobile-form-group', css_class:'form-control'}) %> </div> </div> </script> <script type="text/template" class="address-linear-template"> <% if (c.prefix.indexOf('.') >= 0) { var div_class = c.prefix.split('.')[1] } else { var div_class = c.prefix } var field_settings = ss.data.network ? ss.data.network.get('field_settings') : {}; %> <br/> <div class="<%- div_class %>"> <h2 class="alert alert-info"><%=c.label%></h2> <%= ss.text_row({label:'Address Line 1', item:c.item, validations:c.validations, name:c.prefix+'.'+'street_address', row_css_class:'mobile-form-group form-group', css_class:'form-control inline', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', maxlength: field_settings.street_address_max_characters, popover: c.unit_popover, }) %> <%= ss.text_row({label:'Address Line 2', item:c.item, name:c.prefix+'.'+'address2', row_css_class:'mobile-form-group form-group', css_class:'form-control', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', maxlength: field_settings.street_address_max_characters }) %> <%= ss.text_row({label:'City', item:c.item, validations:c.validations, name:c.prefix+'.'+'city', row_css_class:'mobile-form-group form-group', css_class:'form-control', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', maxlength: field_settings.city_max_characters }) %> <%= ss.select_row({label:'Country', name:c.prefix+'.country', item:c.item, row_css_class:'mobile-form-group form-group', css_class:'form-control short country_binding_provinces', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', options:c.all_countries_and_states.ALL_COUNTRIES})%> <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="CA"> <%= ss.select_row({label:'Province', name:c.prefix+'.province', item:c.item, validations:c.validations, row_css_class:'mobile-form-group', css_class:'form-control short', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', options:c.all_countries_and_states.CANADIAN_PROVINCES})%> </div> <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="US"> <%= ss.select_row({label:'State', name:c.prefix+'.province', item:c.item, validations:c.validations, row_css_class:'mobile-form-group', css_class:'form-control short', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', options:c.all_countries_and_states.AMERICAN_STATES})%> </div> <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="AU"> <%= ss.select_row({label:'State', name:c.prefix+'.province', item:c.item, validations:c.validations, row_css_class:'mobile-form-group', css_class:'form-control short', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', options:c.all_countries_and_states.AUSTRALIAN_STATES})%> </div> <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="GB"> <%= ss.select_row({label:'State', name:c.prefix+'.province', item:c.item, validations:c.validations, row_css_class:'mobile-form-group', css_class:'form-control short', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', options:c.all_countries_and_states.UK_STATES})%> </div> <div class="field form-group" data-bound_to=".<%- div_class %>|.country_binding_provinces" data-bound_to_value="!CA,!US,!AU,!GB"> <%= ss.text_row({label:'Province / State', item:c.item, validations:c.validations, name:c.prefix+'.'+'province', row_css_class:'mobile-form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', css_class:'form-control',}) %> </div> <%= ss.text_row({label:'Zip Code / Postal Code ', item:c.item, validations:c.validations, name:c.prefix+'.'+'postal_code', row_css_class:'mobile-form-group form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', css_class:'form-control', maxlength: field_settings.zip_postal_code_max_characters }) %> </div> </script> <script type="text/template" class="image-field"> <% var guid = ss.fn.guid(); var placeholder_url = ss.fn.cdn('/res/img/v2/placeholder.png'); var image_url = c.value && _.isFunction( c.value.build_image_url ) && c.value.build_image_url({width:c.width,height:c.height}); var no_image_style = ''; var image_exists_style = ''; if ( image_url ){ no_image_style = 'style="display:None"'; } else { image_exists_style = 'style="display:None"'; } %> <div class="image-does-not-exist no_image_block" <%=no_image_style%>> <img width="<%=c.width%>" height="<%=c.height%>" style="padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; " src="<%= placeholder_url %>"> </div> <div class="image-exists image_block" <%=image_exists_style%>> <img width="<%=c.width%>" height="<%=c.height%>" style="padding-top: 0px;padding-bottom:0px;padding-left: 0px;padding-right:0px; " src="<%= image_url + "fPNG"%>"> </div> <div class="image-upload-panel col-sm-3"> <div class="upload_section"> <div class="image-does-not-exist" <%=no_image_style%>> <input id="hidden_<%=guid%>" version="2" type="hidden" name="<%=c.name%>.key" data-name="<%=c.name%>.key" disabled="true" value="<%=guid%>"> <input type="hidden" class="temp-file-url" name="<%=c.name%>.temp_url" data-name="<%=c.name%>.temp_url" value="<%= image_url %>"> <iframe id="iframe_<%=guid%>" class="upload_frame" height="24" src="/upload_iframe/image/<%=guid%>?callback=${callback}&field_name=${field_name}&suggested_width=&image_height=<%=c.height%>&image_width=<%=c.width%>" frameborder="0" style="${'display:None;' if existing_upload_url else ''}" > </iframe> <div class="upload_instructions"> <%= c.upload_instructions || 'Upload a photo (GIF, JPG, or PNG).' %> </div> </div> <div class="image-exists" <%=image_exists_style%>> <a href="#" class="delete_image">Delete Image</a> </div> </div> </div> </script> <script type="text/template" class="file-field"> <% var guid = ss.fn.guid(); var placeholder_url = ss.fn.cdn('/res/img/v2/placeholder.png'); var deleted = c.value && c.value.get('key') === 'delete'; var file_url = c.value && _.isFunction( c.value.build_file_url ) && c.value.build_file_url({width:c.width,height:c.height}); var file_name = c.value && (c.value.get('temp_name') || c.value.get('file_name')); var is_private = c.is_private || 'False'; if ( deleted ){ file_url = null; } safe_log( 'file_url', file_url ); var no_file_style = ''; var file_exists_style = ''; if ( file_url ){ no_file_style = 'style="display:None"'; } else { file_exists_style = 'style="display:None"'; } safe_log('File!!!',c.value, file_name); %> <div class="inline_field_block"> <div class="file-does-not-exist no_file_block field_displayed_data" <%=no_file_style%>> </div> <div class="file-exists file_block field_displayed_data" <%=file_exists_style%>> <a download href="<%=file_url%>"> <%= file_name %> </a> <a href="#" data-name="<%=c.name%>" class="delete_file close-button">&times;</a> </div> <div class="image-upload-panel col-sm-3"> <div class="upload_section"> <div class="file-does-not-exist" <%=no_file_style%>> <input id="hidden_<%=guid%>" type="hidden" name="<%=c.name%>.key" data-name="<%=c.name%>.key" disabled="true" value="<%=guid%>"> <input type="hidden" class="temp-file-url" name="<%=c.name%>.temp_url" data-name="<%=c.name%>.temp_url" value="<%= file_url %>"> <input type="hidden" class="temp-file-name" name="<%=c.name%>.temp_name" data-name="<%=c.name%>.temp_name" disabled="true"> <iframe id="iframe_<%=guid%>" class="upload_frame" height="24" src="/upload_iframe/file/<%=guid%>?private=<%=is_private%>" frameborder="0" style="<%= file_exists_style %>" > </iframe> </div> </div> </div> </div> </script> <script type="text/template" class="multi-item-row"> <% if ( ! c.suppress_label ) { %> <div class="field"> <label><%=c.label%>:</label> <% } %> <div class="inline-field-block"> <ul class="multi-field-items sortable-items"></ul> <a class="add-item"><%= c.add_more_text || '+ Add More'%></a> </div> <% if ( ! c.suppress_label ) { %> </div> <% } %> </script> <script type="text/template" class="member-portal-multi-item-row"> <li class="member-portal-tile-row"> <div class="display-inline-block"> <%= ss.text_field({ css_class: 'member-portal-tile-text w-auto', value: c.value.get('text'), name: c.name + '.text', item: c.model, placeholder: 'Text', maxlength: 70, data_values: { index: c.index } }) %> </div> <div class="display-inline-block"> <%= ss.text_field({ css_class: 'member-portal-tile-icon w-auto', value: c.value.get('icon'), name: c.name + '.icon', item: c.model, placeholder: 'Icon', data_values: { index: c.index } }) %> </div> <div class="display-inline-block"> <%= ss.text_field({ css_class: 'member-portal-tile-link w-auto', value: c.value.get('link'), name: c.name + '.link', item: c.model, placeholder: 'Link', validations: 'url', data_values: { index: c.index } }) %> </div> <div class="display-inline-block"> <a class="close-button" data-index="<%=c.index%>">&times</a> </div> </li> </script> <script type="text/template" class="multi-select-item-row"> <li> <%=ss.select_field( { name:c.name, value:c.value, validations: c.validations, options:c.options} ) %> <a class="close-button" data-index="<%=c.index%>">&times</a> </script> <script type="text/template" class="directory-multi-select-item-row"> <li> <%=ss.select_field( { name:c.name, value:c.value, validations: c.validations, css_class: 'directory-table-field', options:c.options, data_values: { index: c.index }} ) %> <a class="close-button" data-index="<%=c.index%>">&times</a> </script> <script type="text/template" class="plan-field-multi-select-item-row"> <li class="plan-additional-field-row"> <div class="row row-no-padding ml0"> <div class="col-lg-6"> <%=ss.select_field( { name:c.name, value:c.value, options:c.options, css_class:'plan-additional-field update-model-ignore form-control', data_values: { index: c.index }}) %> </div> <div class="col-lg-5 no-padding"> <select multiple="multiple" class="form-control multi-select-target plan-custom-field-visibility update-model-ignore" data-index="<%= c.index %>" data-placeholder="Display Context"> <% _.each(ss.config.CONSTANTS.CUSTOM_PLAN_FIELD_VISIBILITY_OPTIONS, function(option) { var selected = _.contains(c.config.visibility, option) ? 'selected' : ''; %> <option value="<%= option %>" <%= selected %>><%= option %></option> <% }); %> </select> </div> <div class="col-lg-1 center"> <a class="close-button pull-left" data-index="<%=c.index%>">&times</a> </div> </div> </li> </script> <script type="text/template" class="heading-field"> <div class="custom-heading-field mb2"> <% if ( c.label ) { %> <h3 class="custom-heading-field-title"><%- c.label %></h3> <% } %> <% if ( c.description ) { %> <div class="custom-heading-field-description"><%- c.description %></div> <% } %> </div> </script> </div> <script type="text/template" id="group_invite_view"> <label for="group_invite_targets">Invite by Name</label> <div class="group_invite_targets_display"></div> <input type="text" id="group_invite_targets" class="group_invite_targets form-control"> <input class="group_invite_targets_value" type="hidden"> <label for="group_invite_targets_email">Invite by Email Address (separate by commas)</label> <input type="text" id="group_invite_targets_email" class="group_invite_targets_email form-control"> <label>Optional Personal Message</label> <div class="group_invite_personalization ckeditor_input" name="group_invite_personalization" style="display:none"></div> </script> <div class="editor-templates"> <script type="text/template" class="base-image-template"> <a class="btn btn-lg btn-primary launch-image-chooser">Add Image</a> <input name="<%- input_name %>" class="<%- required ? 'required' : '' %>" value="<%- id %>" type="hidden" /> </script> <script type="text/template" class="image-chooser-template"> <div class="image-chooser-main-wrapper"> <div class="main-panel"></div> </div> </script> <script type="text/template" class="image-editor-template"> <link rel="stylesheet" href="https://uicdn.toast.com/tui-color-picker/v2.2.0/tui-color-picker.css"> <link rel="stylesheet" href="https://uicdn.toast.com/tui-image-editor/latest/tui-image-editor.css"> <div class="w1 ht80vh"> <div id="tui-image-editor"></div> </div> </script> <script type="text/template" class="user-image-chooser-template"> <div class="center user-image-chooser-main-wrapper"> <div class="main-panel"></div> </div> </script> <script type="text/template" class="image-panel-template"> <div class="row"> <div class="image-panel-header mb2 col-sm-3"> <div class="upload-section"></div> <div class="selected-image-section"></div> </div> <div class="row bl-lg image-panel-images of-auto col-sm-9"> <div class="center mt2"> <i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i> </div> </div> </div> </script> <script type="text/template" class="user-image-panel-template"> <div class="image-panel-header mb2"> <div class="upload-section"></div> <% if (typeof show_crop_warning !== 'undefined' && show_crop_warning) { %> <div class="force-crop-warning"> We recommend specific dimensions for this image: <br/><strong> <%- recommended_width %>px x <%- recommended_height %>px <br/></strong> <!-- After uploading an image you can click 'Edit Image' and crop/resize the image as suggested. --> </div> <% } %> <div class="selected-image-section"></div> </div> </script> <script type="text/template" class="selected-image-template"> <div class="selected-image-display mt1 center clearfix"> <img src="<%- thumbnail_url %>" class="img-responsive thumbnail center-block" /> <% if (suggest_crop) { %> <div class="mb1"> We recommend you crop/resize the image to the following dimensions:<br/> <strong><%- recommended_width %>px x <%- recommended_height %>px</strong> </div> <% } %> <a data-image_src="<%- src %>" data-image_id="editableimage1" class="hidden-xs white btn btn-primary edit-image">Edit Image</a> <img id="editableimage1" style="display:none" class="edit-image" src="<%- src %>" /> <% if (show_alignment) { %> <hr/> <label>Image Alignment:</label> <br> <%= ss.pill_radio_field({ item: model, name: 'alignment', css_class: 'alignment', value: alignment, options: { left: 'Left', center: 'Center', right: 'Right' } }) %> <% } %> <% if (show_alt_text) { %> <label for="image_alt_attr" class="mt1">Alternative Text:</label> <br> <%= ss.text_field({ item: model, name: 'alt', css_class: 'alt-text form-control', value: alt}) %> <% } %> </div> </script> <script type="text/template" class="uploader"> <form class="fileupload center"> <!-- The fileinput-button span is used to style the file input field as button --> <% if (uploading) { %> <div class="uploading-status"> <span class="uploading-status-text">Uploading...</span>&nbsp;<i class="fa fa-spinner fa-spin"></i> </div> <% } else { %> <div class="upload-button clearfix mb2"> <span class="btn btn-success fileinput-button"<% if (uploading) {%> disabled<% } %>> <i class="fa fa-plus"></i> <span>Upload Image</span> <!-- The file input field used as target for the file upload widget --> <input id="fileupload" type="file" name="files[]" multiple> </span> </div> <% } %> </form> </script> <script type="text/template" class="image-panel-image-template"> <div class="col-sm-2 mb2 image-chooser-selectable-thumb"> <i class="fa fa-times delete-image absolute pointer" aria-hidden="true"></i> <img data-original="<%- thumbnail_url %>" class="img-responsive thumbnail img-chooser-thumbnail lazy" data-id="<%-id%>" src="<%- thumbnail_url %>" /> <% if ( height && width ) { %> <div class="center mt-n1-5"> <small><%- width %> x <%- height %></small> </div> <% } %> </div> </script> <script type="text/template" class="image-chooser-template"> <div class="upload-section"></div> <hr> <div class="image-selector"></div> </script> <script type="text/template" class="form-return-values"> <% // Polyfill for endsWith not working in IE if (!String.prototype.endsWith) { String.prototype.endsWith = function(search, this_len) { if (this_len === undefined || this_len > this.length) { this_len = this.length; } return this.substring(this_len - search.length, this_len) === search; }; }; if (input_name.endsWith('image_url')) { var image_value = thumbnail_url; } else{ var image_value = id; }; %> <div class="image-chooser-form-return"> <div class="icfr-thumbnail"> <img src="<%- thumbnail_url + "fPNG" %>" class="img-responsive thumbnail"> </div> <input type="hidden" name="<%- input_name %>" value="<%- image_value %>" /> <a class="btn btn-danger delete-image">Remove Image</a> </div> </script> </div> <div class="chapter-plan-selector-templates"> <script type="text/template" class="chapter-plan-selector-base-template"> <div class="selectors-target"></div> <div class="button-target"></div> </script> <script type="text/template" class="add-chapter-button"> <a tabindex="0" role="button" class="add-chapter mb2 btn btn-sm btn-primary"><i class="fa fa-plus"></i> Add another Affiliate</a> </script> <script type="text/template" class="chapter-plan-selector"> <div class="<%= selector_target_class %> mb2 p1-5 b1-lg br-5"> <div class="chapter-selector-target"></div> <div class="plan-selector-target"></div> <div class="validation-error"></div> <% if (can_remove) { %> <div class="right-align"> <a class="remove-chapter text-danger mt1 block" style="line-height:1em;">Remove <i class="fa fa-times-circle"></i></a> </div> <% } %> </div> </script> <script type="text/template" class="chapter-selector"> <select name="affiliate" class="multi-select-target chapter-selector form-control"> <option value="" selected>Select an Affiliate</option> <% _.each(ss.fields.build_options(select_options), function(option) { %> <% var selected = _.indexOf(values, option.value) >= 0; %> <option value="<%-option.value || ''%>" <%- selected ? 'selected' : '' %> ><%-option.label%> <% }); %> </select> </script> <script type="text/template" class="plan-selector"> <div class="input-group mt1"> <select name="membership_info:chapter_plan_selector:affiliate_plans[]" class="plan-selector form-control"> <option value="" selected>Select a plan</option> <% _.each(ss.fields.build_options(select_options), function(option) { %> <% var selected = _.indexOf(values, option.value) >= 0; %> <option value="<%- option.value || '' %>" <%- selected ? 'selected' : '' %> ><%- option.label %> <% }); %> </select> <div class="input-group-btn"> <button type="button" class="btn btn-default" aria-label="Help" data-toggle="modal" data-target="#plan_description_<%= chapter_permaid %>"> <i class="fa fa-question-circle"></i> </button> </div> </div> <div class="modal fade" id="plan_description_<%= chapter_permaid %>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title" id="myModalLabel">Membership Plans</h4> </div> <div class="modal-body"> <% _.each(plans, function(plan) { %> <h4><%= plan.get('name') %> - <%= ss.fn.money(plan.get('amount')) %>/<%= plan.get('period') %></h4> <%= plan.get('description') %> <hr/> <% }); %> </div> </div> </div> </div> </script> </div> <div class="panel-templates"> <script type="text/template" class="edit-panel"> <div class="onepage-panel-header"> <div class="panel-header-fixed-wrapper"> <% var listing_page = c.view.get_listing_page(); %> <% if ( listing_page ) { %> <button class="onepage-borderless-button onepage-return-button default"><i class="icon-back icon-18"></i></button> <% } %> <span class="onepage-panel-header-name"> <% if ( c.view.get_panel_heading() ){ print(c.view.get_panel_heading()); } else if ( c.model.id ){ print('Edit ' + (c.model.get('name') || c.model.id)); } else { print('New ' + (c.item_name || 'Item')); } %> </span> <div class="onepage-header-button-group"> <span class="extra-header-buttons"></span> <% var save_text = c.model.id ? 'Save' : 'Create' %> <button type="button" class="<%= listing_page ? 'default' : ''%> save-js"><%= save_text %></button> <% if ( listing_page ) { %> <button type="button" class="save-close-js"><%= save_text %> and Close</button> <% } %> </div> </div> </div> <div class="edit-panel-alerts"></div> <div class="edit-panel-content panel-content"></div> </script> </div> <div class="member-settings-templates"> <script type="text/template" class="delete-card-template"> <div> Delete the card ending in <%= c.last_four_digits %>? </div> </script> <script type="text/template" class="move-me-to-chapter"> <% var options = _.map(ss_context.chapter_options, function(values){ return {'label':values['name'], 'value':values['permaid']} }); print( ss.select_row({label:'Select Home Chapter', name:'chapter_id', options:options, value:''})); %> Add Chapters: <select name="select_use_chapter" multiple="multiple" class="select-user-chapter multi-select-target" data-placeholder="Select chapter"> <% _.each(ss_context.chapter_options, function(network) { %> <% if(!_.some(ss_context.user_networks, function(o){return o.permaid === network.permaid})) { %> <option value="<%= network.permaid %>"><%= network.name %></option> <% } %> <% }); %> </select> You can update your home chapter and the chapters that you are a part of from this dialog. <br> <br> <br> <br> </script> </div> <div class="organization-selection-templates"> <script type="text/template" class="organization-listing-item"> <div class="clearfix"> <% var organization = c.model; var pending = c.model.is_pending( SS.app.current_user && SS.app.current_user.id); %> <div class="image-section"> <% var image_url = organization.build_image_url({width:60,height:60}); %> <img src="<%=image_url%>" height="60" width="60"> </div> <div class="detail-section"> <div> <div class="organization-name"> <%-organization.get('name')%> </div> <div class="member_actions"> <% if ( pending ){ %> Join Status: <span class="badge">Pending</span> <% } %> <% if ( organization.may_edit() ){ %> <a class="edit-organization">Edit</a> <% } %> <a class="leave-organization">(Leave)</a> </div> </div> </div> </div> </script> <script type="text/template" class="organization-listing-template"> <div> <ul class="pending-organization-listing list-group item-listing"> </ul> <ul class="organization-listing list-group item-listing"> </ul> </div> </script> <script type="text/template" class="organization-selection-template"> <div> <div class="alert alert-info"> <strong> You don't currently belong to any <%= ss.config.TERMS.plural_company.toLowerCase() %>. </strong> </div> <div class="row"> <% if ( c.organization_listing_visible || true ){ %> <div class="col-md-6"> <div class="panel panel-default"> <div class="panel-heading"> <h3>Join Your <%= _.string.capitalize(ss.config.TERMS.singular_company) %></h3> </div> <div class="panel-body"> 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() %>. </div> <div class="panel-footer"> <div class="company-autocomplete"></div> </div> </div> </div> <% } else { %> Please contact <%= SS.app.current_network.name %> to join a <%= ss.config.TERMS.singular_company.toLowerCase() %>. <% } %> <% if ( c.may_create_organizations ) { %> <div class="col-md-6"> <div class="panel panel-default"> <div class="panel-heading"> <h3>Register a New <%= _.string.capitalize(ss.config.TERMS.singular_company) %></h3> </div> <div class="panel-body"> You may register a new <%= ss.config.TERMS.singular_company.toLowerCase() %> and become the <%= ss.config.TERMS.singular_company.toLowerCase() %>'s admin. </div> <div class="panel-footer"> <% if( c.setup ) { %> <a class="button btn btn-primary register-company">Register your <%= _.string.capitalize(ss.config.TERMS.singular_company) %></a> <% } else { %> <a class="button btn btn-primary" href="/company/new">Register your <%= _.string.capitalize(ss.config.TERMS.singular_company) %></a> <% } %> </div> </div> </div> <% } %> </div> </div> </script> </div> <div class="organization-edit-templates"> <script type="text/template" class="organization-edit-panel"> <div class="onepage-panel-header"> <span class="onepage-panel-header-name"> <% if ( c.model.id ){ %> Edit <%= c.model.get('name') %> <% if ( ss.user.advanced ) { %> <a href="<%= c.model.get('url')%>/edit" target="_blank">old</a> <a href="<%= c.model.get('url')%>/json-data" target="_blank">json</a> <a href="/test/load_details?id=<%= c.model.id%>" target="_blank">load details</a> <% } %> <% } else { %> New Member <% } %> </span> <div class="onepage-header-button-group"> <% if ( c.options.on_cancel ){ %> <button type="button" class="default cancel">Cancel</button> <% } %> <% if ( c.options.on_created ){ %> <button type="button" class="save-and-use">Create and Use</button> <% } else {%> <% var save_text = c.model.id ? 'Save' : 'Create' %> <button type="button" class="default save-js"><%= save_text %></button> <button type="button" class="save-close-js"><%= save_text %> and Close</button> <% } %> </div> </div> <div class="actions"> <% var action_button = function(){ print( ss.listing.action_button.apply(this, arguments) ); }; var admin = SS.app.current_user.network_admin; %> <% if (this.model.get('status') === 'archived') { %> <div class="alert alert-info w40 pr1"> <i class="fa fa-exclamation-circle fa-lg mr1"></i> <b>This company has been archived</b> </div> <% } %> <%= ss.onepage.return_button() %> <% if ( admin ){ %> <div class="grid-button-group button_group"> <% action_button('Enter<br>Payment', 'one', 'enter_payment','not_default') %> <% //action_button('Cancel<br>Membership', 'one', 'cancel_membership') %> </div> <% } %> <div class="grid-button-group button_group"> <% if (admin){ if (this.model.get('status') !== 'archived') { if (ss_context.apex_admin) { action_button('<i class="icon-trash icon-white"></i>', 'any', 'delete_selected', 'danger'); } else { action_button('Remove From<br>Chapter', 'any', 'remove_from_chapter', 'danger'); } } } %> <% if(ss.user.advanced) { action_button( 'Unarchive', 'any', 'unarchive', 'success'); } %> </div> </div> <% var pages = { space0: null, // Maybe change private-view to member-only-view basic: {label: 'Basic Info', class: 'private-view'}, overview: {label: 'Details', class: 'private-view'}, home_page: {label: 'Home Page', class: 'private-view', relative_url:'home_page/edit' }, // OFFSHOREMARINE people: {label: 'Employees', class: 'private-view'}, locations: {label: 'Locations', class: 'private-view'}, privacy: {label: 'Privacy', class: 'private-view'}, space1: null, membership: {label: 'Membership Info', class: 'mixed-view'}, space2: null, custom: {label: 'Custom Info', class: 'admin-only-view'}, history: {label: 'History', class: 'admin-only-view'}, //files: {label: 'Files', class: 'admin-only-view'}, }; if (ss.config.THEME_CONFIG.disallow_company_home_page){ delete pages.home_page; } if (!SS.app.current_network.enable_company_locations){ delete pages.locations; } if ( ss.user.advanced ){ //pages.people = {label: 'People', class: 'admin-only-view'}; } var network_id = ss.data.network.get('permaid'); if ( ! c.model.id ){ delete pages.home_page; } if ( c.options.sections ){ _.each( pages, function( value, key ){ if ( key !== 'space0' && ! _.contains( c.options.sections, key ) ){ delete pages[key]; } }); } %> <div class="onepage-sub-tabbar"> <div class="sub-tabbar-container"> <ul class="sub-tabbar-tabs section-list"> <% _.each( pages, function( section, key){ if ( section ){ %> <li class="<%=section.class%>"> <% if (section.relative_url ){ %> <a target="_blank" href="<%=c.model.get('url') + '/' + section.relative_url %>"> <%= section.label %> </a> <% } else { %> <a data-section="<%=key%>"> <%= section.label %> </a> <% } %> <% } else { %> <li class="separator"><div style="width:20px;">&nbsp;</div> <% } }); %> </ul> </div> </div> <div class="edit-panel-alerts absolute mt5"></div> <div class="panel-content tabbed-actions-panel-content tabbed-panel-content"></div> </script> <script type="text/template" class="basic-section"> <h2 class="alert alert-info">Basics</h2> <div> <% var validations = "required"; // For now, we'll only support company id verification creating new companies // because our validators have no concept of a model, and if the model // has changed, as would happen when the admin changes a company's name // to one of an existing company if (!c.model.id && !SS.app.current_network.duplicate_company_name_allowed) { validations += " company_name_available"; } %> <%= ss.text_row({label:'Name', name:'name', item:c.model, validations:validations, css_class:'form-control ', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10'}) %> <%= ss.image_row({label:'Logo', name:'image', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', upload_instructions:'Recommended: 400px x 400px'}) %> <div class="organization-type"></div> <div class="organization-categories"></div> <% company_address_required = ( SS.app.current_network.company_address_required && !ss.apps.admin_app ) ? 'required' : ''; company_phone_required = ( (SS.app.current_network.company_phone_required || SS.app.current_network.company_contact_info_required) && !ss.apps.admin_app ) ? 'required' : ''; contact_info_required = ( SS.app.current_network.company_contact_info_required && !ss.apps.admin_app ) ? 'required' : ''; website_required = ( SS.app.current_network.company_website_required && !ss.apps.admin_app ) ? 'required' : ''; company_profile_social_media = SS.app.current_network.company_profile_social_media; %> <h2 class="alert alert-info">Contact</h3> <%= ss.text_row({label:'Website', name:'website', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', validations: website_required}) %> <%= ss.text_row({label: _.string.capitalize(ss.config.TERMS.singular_company) + ' Email', name:'email', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', validations: contact_info_required}) %> <%= ss.text_row({label:'Phone', name:'phone', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10', validations:company_phone_required}) %> <%= ss.text_row({label:'Fax', name:'fax', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10'}) %> <!-- hidden set email domain field show on the old edit page? --> <div class="field company-email-domains form-group"> <label class="col-md-3 col-lg-2"> Email Domains: </label> <div class="col-md-9 col-lg-10"> <%= ss.text_field({ name:'email_domains', prepend:'@', placeholder:'example.com', item:c.model, css_class: 'form-control'}) %> <a tabindex="0" href="#" role="button" data-trigger="focus" class="popover_link" data-toggle="popover" data-content="Allows users to join their company by confirming an email address with one of these domains. The domains should be comma separated, and can include wildcards such as *.example.com, which for example, would match @subgroup1.example.com and @subgroup2.example.com email addresses, among others." data-original-title="Email Domains" data-placement="bottom"> <i class="fa fa-question-circle"></i> </a> </div> </div> <% if (company_profile_social_media) { %> <%= ss.text_row({label:'LinkedIn Page URL', name:'linkedin_url', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10'}) %> <%= ss.text_row({label:'Facebook Page URL', name:'facebook_url', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10'}) %> <%= ss.text_row({label:'Instagram Page URL', name:'instagram_url', item:c.model, css_class:'form-control', row_css_class:'row form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10'}) %> <div class="field relative company-twitter-handle row clearfix form-group"> <label class="col-md-3 col-lg-2"> X Handle: </label> <div class="col-md-9 col-lg-10"> <%= ss.text_field({name:'twitter_handle', prepend:'@', placeholder:'company_name', item:c.model, css_class:'form-control'}) %> </div> </div> <% } %> <%= ss.address_linear_block({ label:'Address', item:c.model, prefix:'address', unit_popover: { title: 'Address Line 1', 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.' }, validations:company_address_required}) %> <%= ss.address_linear_block({label:'Mailing Address ( if different )', item:c.model, prefix:'mailing_address'}) %> <br/> <h2 class="alert alert-info"><%= _.string.capitalize(ss.config.TERMS.singular_company) %> Overview</h2> <div class="company-overview-field"> <%= ss.rich_text_row({ name:'summary', item:c.model, validations:''}) %> </div> <%= ss.custom_fields({asset_key:'company',section:'about', subsection:'main'}, c.model, {row_css_class: 'form-group', label_css_class:'col-md-3 col-lg-2', input_wrap_class:'col-md-9 col-lg-10'} ) %> <br/> <!-- sponsors --> <!-- ${self.contact_section()} --> </div> </script> <script type="text/template" class="people-section"> <div> <ul class="members item-listing mt2"></ul> <button class="add-person">Add Person</button> <!--<div class="add-person-autocomplete"></div>--> </div> </script> <script type="text/template" class="chosen-person-template"> <div class="field_displayed_data"> <%= c.model.get('name') %> <a class="change-person">(Change)</a> <br> <!--<%= c.model.get('member_number') %> --> <%= c.model.get('email') || 'no email' %> <br> <%= c.model.get('phone_number') %> </div> </script> <script type="text/template" class="add-person"> <div> <div class="indented-block button_group" data-toggle="buttons-radio"> <button type="button" class="button default add-by" value="name" >Add Existing Person</button> <button type="button" class="button default add-by" value="email" >Add New Person</button> </div> <div class="add-by-name"> <div class="field"> <label>Person:</label> <div class="add-person-autocomplete"></div> <div class="chosen-person"></div> </div> </div> <div class="add-by-email"> <%= ss.text_row({label:'Email', name:'email' //, validations:'required' }) %> <%= ss.text_row({label:'First Name', name:'first_name', validations:'required'}) %> <%= ss.text_row({label:'Last Name', name:'last_name', validations:'required'}) %> </div> <hr> <%= ss.checkbox_row({label:'Company Admin?',name:'company_admin'}) %> <div class="add-by-email"> <%= ss.checkbox_row({label:'Send Welcome Message?',name:'send_welcome_message'}) %> </div> </div> </script> <script type="text/template" class="person-listing-item"> <div> <% var person = c.model; var pending = person.pending(); %> <div class="image-section"> <% var image_url = person.build_image_url({width:60,height:60}); %> <img src="<%=image_url%>" height="60" width="60"> </div> <div class="detail-section"> <div> <div class="person-name"> <% var url = '/profiles/' + person.id + '/sections/basic'; %> <a class="onepage-link" href="/onepage<%=url%>" data-url="<%=url%>"> <%-person.get('name')%></a> </a> <% if ( ! pending ){ %> <a class="remove-member">(remove)</a> <% } %> <br> <%-person.get('email') || 'No email'%> </div> <div class="member-actions"> <% if ( pending ){ %> <span class="label label-important">Pending Member</span> <div style="padding-top:5px"> <button type="button" class="danger reject-member">Decline</button> <button type="button" class="success approve-member">Approve</button> </div> <% } else { %> <%= ss.text_field({name:'employee_title', value:person.get('title'), placeholder:'Title'}) %> <br> <input type="checkbox" class="admin" <%= person.admin()?'checked' : '' %> > <span> Admin <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="" data-content="Admins can edit the company's profile and access its settings. There can be multiple company Admins. They can add other employees and they will receive communications regarding the company." data-original-title="Admin"> <i class="fa fa-question-circle icon-question-sign"></i> </a> </span> <br> <input type="radio" name="account_holder" class="account-holder" <%-person.get('account_holder') ? ' checked ' : ''%> <span> Billing Person <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="" data-content="The Billing Person will receive confirmation emails and expiry reminders for your company's membership, and is the person who can purchase or renew memberships on behalf of the company. To access the full range of billing functionality, please ensure that this member has a valid email address." data-original-title="Billing Person"> <i class="fa fa-question-circle icon-question-sign"></i> </a> </span> <br> <input type="radio" name="primary_contact" class="primary-contact" <%-person.get('primary_contact') ? ' checked ' : ''%> <span> Contact Person <a tabindex="0" class="popover_link" role="button" data-toggle="popover" data-trigger="focus" title="" data-content="The Primary Contact is the person whose contact info will appear on your company's profile." data-original-title="Primary Contact"> <i class="fa fa-question-circle icon-question-sign"></i> </a> </span> <br> <% } %> <% if ( false && 'person.may_edit()' ){ %> <a class="edit-person">Edit</a> <% } %> </div> </div> </div> </div> </script> <script type="text/template" class="custom-section"> <% var plan_name = c.model.get('company_summary').plan_name; var plan_class = plan_name ? ss.fn.make_safe_for_css(plan_name) : 'no-plan'; %> <div class="company-custom-info-section plan_class-<%- plan_class %>"> <div class="alert alert-info"> Admin View: This page is only visible to network admins (people who can access the admin panel of your site). </div> <%= ss.text_area_row({label:'Internal Notes', name:'note', item:c.model, validations:''}) %> <%= ss.custom_fields({asset_key:'company',config_key:'admin_info'}, c.model ) %> </div> </script> <script type="text/template" class="company-section"> <% c.companies.each( function( company ){ %> <div> <%- company.get('name') %> </div> <% }); if ( ! c.companies.length ){ %> <div class="alert alert-info"><%= c.model.get('name') %> is not part of any companies</div> <% } %> </script> <script type="text/template" class="files-section"> <% var files = c.model.get('admin_uploader_files') || []; %> <ul> <% files.each(function( file ){ var file_path = 'admin_uploader_files.'+file.get('key')+'.file.file'; if (file.get('to_delete')){ return; } print('<li>'); print( ss.file_row({label:'File', item:c.model, name:file_path, is_private='True'})); }); %> </ul> <a href="#" class="add-file">+ Add File</a> </script> <script type="text/template" class="privacy-section"> <ul class="privacy_radio label_beside"> <% var name = c.model.get('name') || 'this company'; var privacy = c.model.get('company_directory_privacy') || 'public'; var privacy_options = [{value:'public', label:'<b>Open</b> (List '+ name +' in the Membership Directory for anyone to see)'}, {value:'public_to_groups', label:'<b>Members Only</b> (Only list ' + name + ' for members of ' + SS.app.current_network.name +')'}, {value:'private', label:'<b>Private</b> (Do not list ' + name + ' in the Membership Directory)'}] _.each( privacy_options, function( option ){ %> <li> <input type="radio" <%=option.value===privacy ? 'checked' : ''%> name="company_directory_privacy" data-name="company_directory_privacy" value="<%=option.value%>"><%=option.label%> <% }); %> </ul> </script> <script type="text/template" class="history-section"> <% var history_filters = [['All','all'], ['Profile Changes','profile_changes'], ['Imports','imports'], ['Exports','exports']]; %> <div class="button_group" data-toggle="buttons-radio"> <% _.each( history_filters, function( history_filter, index ){ %> <% var extra_class = ''; var label = history_filter[0]; var value = history_filter[1]; if ( index === 0 ){ extra_class = 'active'; } %> <button type="button" class="button default history-filter-type <%=extra_class%>" value="<%=value%>" ><%=label%></button> <% }); %> </div> <div class="history"></div> </script> <script type="text/template" class="social-section"> <div> Social </div> </script> <script type="text/template" class="public-section"> <div> Public </div> </script> <script type="text/template" class="locations-section"> <div class="location-editor-target"></div> </script> <script type="text/template" class="location-editor-template"> <% if (locations.length === 0) { %> <div class="pb2"><i>No locations were found for this company.</i></div> <% } else { %> <div class="pb2"> <button type="button" class="btn default save-locations pull-right"><i class="fa fa-save fa-lg mr1"></i>Save Location Changes</button> <div class="alert alert-success save-success absolute" style="width:73.5%" hidden>Location changes successfully saved.</div> <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> </div> <% locations.sort(function(location1,location2) { return (location1.get('name').toLowerCase() > location2.get('name').toLowerCase()) ? 1 : ((location2.get('name').toLowerCase() > location1.get('name').toLowerCase()) ? -1 : 0); }); _.each(locations, function(location) { %> <div class="location-to-edit w75 b1-lg br-5 mb2"> <div class="location-header-selector p1 fs14 bg-f5"> <a class="location-item-view-control mr3" id="<%- location.get('id') %>"><i class="fa fa-plus-circle fa-lg"></i></a><strong><%- location.get('name') %></strong> </div> <div class="location-edit-fields-target" hidden></div> </div> <% }); %> <% } %> <div><a class="btn btn-primary add-new-location"><i class="fa fa-plus mr1"></i>Add a New Location</a></div> </script> <script type="text/template" class="location-edit-fields-template"> <div class="location-edit p1-5 ml3-5"> <div><strong>Edit location data:</strong></div> <div class="location-data-fields pt1"> <form class="location-edit-form bb1-lg mr3"> <div class="label_beside"> <div class="field"> <label class="w-auto">Location Name:</label><i class="required_marker"></i> <input class="location-data-field input_box required w75 pull-right" name="name" value="<%- location.get('name') %>" data-validations="required"> </div> <div class="field"> <label class="w-auto">Street Address:</label> <input class="location-data-field input_box w75 pull-right" name="street_address" value="<%- location.attributes.address.street_address %>"> </div> <div class="field"> <label class="w-auto">City:</label> <input class="location-data-field input_box w75 pull-right" name="city" value="<%- location.attributes.address.city %>"> </div> <div class="field"> <label class="w-auto">Country:</label> <%= ss.select_row({name:'country', value:location.attributes.address.country, css_class:'location-data-field input_box w75i mt-n-1i pull-right country_binding_provinces', options:countries_and_states.ALL_COUNTRIES })%> </div> <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="CA"> <label class="w-auto">Province / State:</label> <%= ss.select_row({name:'state', value:location.attributes.address.state, css_class:'location-data-field input_box w75i mt-n-1i pull-right', options:countries_and_states.CANADIAN_PROVINCES})%> </div> <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="US"> <label class="w-auto">Province / State:</label> <%= ss.select_row({name:'state', value:location.attributes.address.state, css_class:'location-data-field input_box w75i mt-n-1i pull-right', options:countries_and_states.AMERICAN_STATES})%> </div> <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="AU"> <label class="w-auto">Province / State:</label> <%= ss.select_row({name:'state', value:location.attributes.address.state, css_class:'location-data-field input_box w75i mt-n-1i pull-right', options:countries_and_states.AUSTRALIAN_STATES})%> </div> <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="GB"> <label class="w-auto">Province / State:</label> <%= ss.select_row({name:'state', value:location.attributes.address.state, css_class:'location-data-field input_box w75i mt-n-1i pull-right', options:countries_and_states.UK_STATES})%> </div> <div class="field" data-bound_to="form|.country_binding_provinces" data-bound_to_value="!CA,!US,!AU,!GB"> <label class="w-auto">Province / State:</label> <input class="location-data-field input_box w75 pull-right" name="state" value="<%- location.attributes.address.state %>"> </div> <div class="field"> <label class="w-auto">Postal / Zip Code:</label> <input class="location-data-field input_box w75 pull-right" name="zip_code" value="<%- location.attributes.address.zip_code %>"> </div> <div class="field"> <label class="w-auto">Email Address:</label> <input class="location-data-field input_box w75 pull-right" name="email" value="<%- location.get('email') %>"> </div> <div class="field"> <label class="w-auto">Phone Number:</label> <input class="location-data-field input_box w75 pull-right" name="phone" value="<%- location.get('phone') %>"> </div> <div class="field"> <label class="w-auto">Fax Number:</label> <input class="location-data-field input_box w75 pull-right" name="fax" value="<%- location.get('fax') %>"> </div> <div class="field"> <label class="w-auto">Website:</label> <input class="location-data-field input_box w75 pull-right" name="website" value="<%- location.get('website') %>"> </div> </div> </form </div> <div class="location-member-edit pt1 pr3"> <div><strong>Edit employee data:</strong></div> <div class="table-responsive pt1"> <table class="table table-bordered"> <thead> <tr> <td>Employee Name</td> <td>Email</td> <td>Action</td> </tr> </thead> <tbody> <% var members = []; var non_members = []; _.each(company.get('members').models, function(employee) { _.each(location.get('members'), function(member) { if (employee.id === member.user_id) { members.push(employee); } }); if (members.indexOf(employee) === -1) { non_members.push(employee); } }); %> <% _.each(members, function(employee) { %> <tr> <td><a href="/onepage/profiles/<%- employee.get('id') %>" target=_blank><%- employee.get('name') %></a></td> <td><%- employee.get('email') %></td> <td><i class="fa fa-user-times red mr1"></i><a class="move-employee remove" name=<%- employee.id %>>Remove from this location</a></td> </tr> <% }); %> <% _.each(non_members, function(employee) { %> <tr> <td><a href="/onepage/profiles/<%- employee.get('id') %>" target=_blank><%- employee.get('name') %></a></td> <td><%- employee.get('email') %></td> <td><i class="fa fa-user-plus green mr1"></i><a class="move-employee add" name=<%- employee.id %>>Add to this location</a></td> </tr> <% }); %> </tbody> </table> </div> </div> <div> <button class="btn btn-danger delete-location" name="<%- location.id %>"><i class="icon-trash icon-white pr2"></i>Delete this location</button> </div> </div> </script> </div> <div class="member-admin-templates"> <script type="text/template" class="reset-password"> <div class="form-group"> <label>New Password</label> <input type="text" name="password" placeholder="New Password or Blank for Random" value="" data-name="password" data-validations="password_reset" class="form-control" style="width:50% !important;"> <div class="help-block"> 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. </div> </div> The following email will be sent: <div class="dialog_message_preview"> <!--<h4>Your password has been reset</h4>--> Dear <%=c.user_name%> <br><br> Your password has been reset. <br><br> Your new password is: NEWPASSWORD <br><br> Go to <%=SS.app.current_network.base_url%> to log in with your email <%=c.email %>. <br><br> Thank you, <br> <%=SS.app.current_network.name%> Team </div> </script> <script type="text/template" class="manage-chapter"> <% if (! c.network_map) { %> <div style="text-align:center"> <i class="fa fa-spinner fa-pulse fa-4x"></i> </div> <% } else { %> <table class="table table-bordered"> <thead> <tr> <th>Chapter Name</th> <th>Status</th> <th>Membership Plan</th> <th>Home Chapter</th> <th>Remove</th> </tr> </thead> <tbody> <% _.each(_.sortBy(c.network_permaids, function(network_permaid) {return c.network_map[network_permaid]['is_apex'] ? 0 : 1;}), function(network_permaid) { %> <% var network = c.network_map[network_permaid] %> <tr> <td><%= network['network_name'] %></td> <td><%= network['status'] %></td> <td><%= network['membership_name'] %></td> <td style="text-align:center"> <% if(!network['is_apex'] && _.some(ss_context.user_networks, function(user_network) {return user_network.permaid === network['network_permaid']})) { %> <% if(network['network_permaid'] === c.home_chapter) { %> <a class="current-home-chapter"><i data-permaid=<%= network['network_permaid'] %> class="fa fa-lg fa-check-circle" aria-hidden="true"></i></a> <% } else { %> <a class="make-home-chapter"><i data-permaid=<%= network['network_permaid'] %> class="fa fa-lg fa-circle-o" aria-hidden="true"></i></a> <% } %> <% } else { %> <i class="fa fa-lg fa-lock" aria-hidden="true"></i> <% } %> </td> <td style="text-align:center"> <% if(!network['is_apex'] && _.some(ss_context.user_networks, function(user_network) {return user_network.permaid === network['network_permaid']})) { %> <a class="remove-network" data-permaid=<%= network['network_permaid'] %>><i class="fa fa-lg fa-times red" aria-hidden="true"></i></a> <% } else { %> <i class="fa fa-lg fa-lock" aria-hidden="true"></i> <% } %> </td> </tr> <% }) %> </tbody> </table> <% if(ss_context.network_features.active_on_only_one_chapter && c.network_permaids.length > 2) { %> <div class="alert alert-danger"> This person now belongs to more than one chapter. Are you sure you want to make this change? </div> <% } %> Add Chapter: <select name="select_use_chapter" multiple="multiple" class="select-user-chapter multi-select-target" data-placeholder="Select chapter"> <% _.each(ss_context.user_networks, function(network) { %> <% if(!_.contains(c.network_permaids, network.permaid)) { %> <option value="<%= network.permaid %>"><%= network.name %></option> <% } %> <% }); %> </select> You can update the chapters that a user is a part of from this dialog. If you try to remove a user from a chapter, you must first make sure that they do not have any chapter specific plans, or else they will not be able to be removed from that chapter. <% } %> </script> <script type="text/template" class="send-password-reset"> The following email will be sent: <div class="dialog_message_preview"> Dear <%=c.user_name%>, <br /><br /> You have requested a password reset for <%=c.email %>. <br /><br /> Please use the following link to reset your password: [password reset link] <br /><br /> Thank you, <br /> <%=SS.app.current_network.name%> Team </div> </script> <script type="text/template" class="add-note"> <% var note = c.note; if ( note ){ note = ss.fn.escape_newlines( note ); %> <div class="field" style="max-height:200px;overflow-y:auto"> <div class="indented-block field_displayed_data"> <%= note %> </div> </div> <% } %> <%= ss.text_area_row({label:'Internal Note', name:'note', validations:'required'}) %> </script> <script type="text/template" class="send-welcome"> <form class="dialog-scroll-container"> <%= ss.text_row( {label:'Subject', name:'bulk_network_invite_subject', validations:'required', value:c.subject_template } ) %> <div class="field row"> <label class="col-sm-3" style="width:25%">Send a Custom Message:</label> <div class="col-sm-9"> <div class="help-block"> 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! </div> <table class="table table-bordered"> <thead> <tr><th><strong>Replacement Text</strong></th><th><strong>Value</strong></th></tr> </thead> <tbody> <tr><td>{user_first_name}</td><td>The user's first name</td></tr> <tr><td>{invite_url}</td><td>A signup URL for your site</td></tr> <tr><td>{network_name}</td><td>Your organization's name</td></tr> </tbody> </table> <% if (c.body_template) { %> <div class="inline_field_block field_displayed_data"> <div class="bulk_network_invite_personalization ckeditor_input" name="bulk_network_invite_personalization" style="display:none"> <%= c.body_template %> </div> </div> <% } %> </div> </div> <input type="hidden" value="${invite_type}" name="invite_type"> <input type="hidden" value="" name="continue_failed_job" class="continue_failed_job"> <% var redirect_url = SS.app.current_network.base_url; if ( ! _.string.endsWith( redirect_url, '/' ) ){ redirect_url += '/'; } redirect_url += 'setup'; %> <%= ss.text_row({label:'Redirect Url', name:'redirect_url', validations:'required url', value: redirect_url }) %> <div class="field"> <label></label> <div class="inline_field_block field_displayed_data"> We recommend you use the default address for this email, <br> but if you need to redirect users to a different page instead, <br> you can set that URL here. </div> </div> <!-- <hr> <div class="field"> <label>Send to:</label> <div class="number_of_people" data-number="${number_of_invite}" data-number_nologin="${number_no_last_login}">${number_no_last_login} people</div> </div> <div class="field"> <label>Include people who have already logged in:</label> <input type="checkbox" name="include_has_last_login" class="bulk_network_invite_display_number" value=1> </div> --> </form> </script> <script type="text/template" class="change-plan"> <form> <% var options = [{label:'No Plan', value:''} ]; c.plans.each( function(plan){ options.push( {label: plan.get('name'),value:plan.id} ); }); print(ss.select_row({label:'Membership Plan', name:'membership_plan', options:options, value:c.model.get_plan_id()})); print(ss.text_row({label:'Expiry Date', name:'expiry_date', css_class:'date-picker-field form-control undo-field', value:ss.fn.format_date(c.model.get_expiry_date()), validations: 'date', placeholder:'Latest possible expiry date'})); %> <div class="field"> <label>Lifetime plan?</label> <input data-name="lifetime" class="lifetime-checkbox" name="lifetime" type="checkbox" /> </div> <div class="field"> <label>Notify user by email?</label> <input data-name="notify_user_membership_change" class="notify-user-membership-change-checkbox" name="notify_user_membership_change" type="checkbox" /> </div> <div class="field description"> 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. </div> <% if (c.model.get('has_recurring_billing_membership')) { %> <div class="panel panel-danger"> <div class="panel-heading"> <%- c.model.get('name') %> has set up automatic billing on their account. This action will end their automatic billing cycle and stop them from being billed automatically for membership on <%- c.model.get_expiry_date() %>. </div> </div> <% } %> </form> </script> <script type="text/template" class="offer-plan"> <div class="alert"> <b>Note</b>: When offering a plan, an offer email is <u>not</u> automatically sent by SilkStart to the member </div> <form> <% var options = [{label:'Choose a Plan to Offer', value:''} ]; var company_summary = c.model.get('company_summary'); var user_summary = c.model.get('user_summary'); var offered_plan = c.offered_plan; xxx_offered_plan = offered_plan; var summary = company_summary || user_summary; offered_plan_id = offered_plan && offered_plan.get('id'); var offered_plan_price = ''; if (offered_plan ){ offered_plan_price = offered_plan.get_price().cost_in_dollars(); } c.plans.each( function( plan ){ options.push( {label: plan.get('name'),value:plan.id} ); }); print(ss.select_row({ label:'Membership Plan', name:'membership_plan_id', options:options, value:offered_plan_id })); print(ss.currency_row({ label:'Membership Fee', name:'membership_fee', value:offered_plan_price, placeholder:'' })); print(ss.text_row({ label:'Offer Details', name:'offer_details', css_class:'display-inline-block', popover:{ content:"Give a short explanation to provide more context to the user about why they have " + "been offered the discounted plan." } })); %> </form> </script> <script type="text/template" class="cancel-offer"> <div class="alert alert-warning"> <% if ( c.model.get('company_summary') ) { %> 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. <% } else { %> 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. <% } %> </div> </script> <script type="text/template" class="change-signup-date"> <form> <div> <label>Date</label> <input class="date_input form-control date required" name="date" value="<%- ss.fn.format_date(c.model.get('signup_date')) %>" type="text" /> </div> </form> </script> <script type="text/template" class="membership-section"> <% var member_number = c.model.get('member_number'); var org_summary = c.model.get('company_summary'); var user_summary = c.model.get('user_summary'); var summary = org_summary || user_summary; var plan_name = summary.plan_name; var expiry = summary.membership_expiry_date; if (!expiry && summary.mixed_expiry_date == ss.config.CONSTANTS.LIFETIME) { expiry = ss.config.CONSTANTS.LIFETIME } var state = summary.state; var latest_plan = summary.latest_plan; var is_company_plan = summary.on_company_plan; var can_edit = SS.app.current_user.network_admin; safe_log('membership section'); %> <div> <div class="field"> <label>Signup Date:</label> <div class="field_displayed_data"> <% if ( c.model.get('company_summary') ) { %> <%= ss.fn.format_date( c.model.get('signup_date') ) %> <% if (c.model.get('can_modify_membership')) {%> <a href="#" class="change-signup-date">(Change)</a> <% } %> <% } else { %> <%= ss.fn.format_date( c.model.get('created') ) %> <% } %> </div> </div> <% if ( member_number ){ print( ss.display_row({label:'Member Number', value:member_number})); } %> <div class="field"> <label>Current Membership Plan:</label> <div class="field_displayed_data"> <%= plan_name || 'No Plan' %> <% if (c.model.get('can_modify_membership')) {%> <a href="#" class="change-plan">(Change Plan)</a> <% } %> <%= ss.fn.popover({title:'Current Membership Plan', content:"If this user has a current active membership, the plan name will display here. " + "<br/><br/>" + "<strong>Caution</strong> - 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."}) %> </div> </div> <div class="field"> <label>Expiry Date:</label> <div class="field_displayed_data"> <% if (expiry === ss.config.CONSTANTS.LIFETIME) { %> <%= expiry %> <% } else { %> <%= ss.fn.format_date( expiry ) %> <% } %> </div> </div> <div class="field"> <label>Membership Status:</label> <div class="field_displayed_data"> <%= state %> <% if ( state !== 'Active' ){ if ( latest_plan ){ print( ' - ' + latest_plan ); } } if ( !can_edit || !c.model.get('can_modify_membership') ){ } else if ( is_company_plan && user_summary ){ // If a user has an active plan don't let it be modified } else if ( state === 'Active' ){ print(' <a class="cancel-membership">(Cancel Membership)</a>'); } else { if ( state === 'Cancelled' ){ var cancellation = c.model.get('cancellation'); if (cancellation.reason) { print(' [Reason: ' + cancellation.reason + ']'); } print(' <a href="#" class="uncancel">(Remove Cancellation) </a>'); } else { print(' <a href="#" class="cancel-membership">(Cancel) </a>'); } } var content = ''; content += "<p><strong>Active</strong> - Members are active if they have a membership plan that they've either been "; content += 'granted or for which they or their company have paid.'; content += '<p><strong>Contact</strong> - Members who have never had a membership plan are considered contacts '; content += '<p><strong>Expired</strong> - Members who have had a membership plan in the past but have had '; content += 'their membership lapse are considered expired. These members '; content += 'may still be sent renewal notices and may have renewal invoices '; content += 'generated '; content += "<p><strong>Cancelled</strong> - Cancelled members don't receive renewal reminders or invoices."; print(ss.fn.popover({title:'Membership Status', content:content})); %> </div> </div> <hr> <% var offered_plan_id = summary.offered_plan_id; var offered_plan_name = summary.offered_plan_name; var offered_plan_price = summary.offered_plan_price_description; %> <div class="field"> <label>Membership Plan Offer:</label> <div class="field_displayed_data"> <% if ( offered_plan_id ) { %> <%= offered_plan_name %> @ <%= offered_plan_price %> <% } else { %> No offer <% } %> <%= ss.fn.popover({title:'Offered Plan', 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.'}) %> </div> </div> <div class="indented-block"> <% if ( can_edit ) { %> <% if ( offered_plan_id ) { %> <button type="button" class="offer-plan">Change Offer</button> <button type="button" class="danger cancel-offer">Cancel Offer</button> <% } else { %> <button type="button" class="offer-plan">Make an Offer</button> <% } %> <% } %> </div> </div> </script> </div> <div class="custom-page-templates"> <script type="text/template" class="configure-section-popup"> <form> Configure This! <%= ss.text_row( {label:'Background Color', name:'background_color', value:c.model.background_color } ) %> </form> </script> </div> <script type="text/template" id="custom_webpage_container_view"> <%if(display=='can_edit'){%> <%if(menu_at_bottom){%> <div class="container_add_pane menu_area"> <% var section_names = { "heading":"a Heading ", "richtext":"Text", "widget":"a Widget", "image":"a Photo", "subcontainer":"a Section", "html":"an HTML Area", "html_slider":"an HTML Slider" }; var items_text = "+ Add "; var section; var prefix; var suffix; if(allowable_section_types.length==1){ items_text += section_names[allowable_section_types[0]]; } else if(allowable_section_types.length==2){ items_text += section_names[allowable_section_types[0]] + " or " + section_names[allowable_section_types[1]]; } else { for(var i in allowable_section_types){ section = allowable_section_types[i]; prefix = i==allowable_section_types.length-1 ? "or " : ""; suffix = i==allowable_section_types.length-1 ? "" : ", "; items_text += (prefix + section_names[section] + suffix); } } %> <span class="add_items_text"><%=items_text%></span> </div> <%}%> <div class="container_controls_container"> <div class="container_controls"> <div class="ss_icon_menu"> <ul> <%if(allow_style_change){%> <li> <a href="#" class="change_style"> <i class="icon-edit"></i> <span>Change Style</span> </a> </li> <%}%> <%if(allow_configuration){%> <li> <a href="#" class="configure"> <i class="icon-edit"></i> <span>Configure</span> </a> </li> <%}%> <% var types = { heading:{image:'/res/img/v2/icons/text_heading_2.png', label:'Add a Heading'}, richtext:{image:'/res/img/v2/icons/text_smallcaps.png', label:'Add Text'}, widget:{image:'/res/img/v2/icons/wrench.png', label:'Add a Widget'}, image:{image:'/res/img/v2/icons/image.png', label:'Add an Image'}, subcontainer:{image:'/res/img/v2/icons/application.png', label:'Add a Section'}, html:{image:'/res/img/v2/icons/html.png', label:'Add HTML (Advanced)'}, html_slider:{image:'/res/img/v2/icons/html_slider.png', label:'Add HTML Slider (Advanced)'}, section1:{image:'/res/img/v2/icons/application.png', label:'Add Full Width Section'}, section2:{image:'/res/img/v2/icons/application.png', label:'Add a Split Section'}, section3:{image:'/res/img/v2/icons/application.png', label:'Add a Triple Section'}, section4:{image:'/res/img/v2/icons/application.png', label:'Add a Quad Section'}, }; var allowable_types = [].concat( allowable_section_types ); if ( _.contains( allowable_types, 'section' ) ){ allowable_types = allowable_types.concat( ['section1','section2','section3','section4'] ); } xxx_allowable_types = allowable_types; _.each( allowable_types, function( type_key ) { var type = types[type_key]; if ( type ){ %> <li> <a href="#" class="add-child" data-child_type="<%= type_key %>"> <img src="<%= type.image%>"> <span><%= type.label%></span> </a> <% } else { //<li>Bad Type Key <= type_key > %> <% } }); %> </ul> </div> </div> </div> <%if(menu_at_bottom){%> <div class="container"> <div class="bottom_menu menu_area"> <span>Add a Section</span> </div> </div> <%}%> <%}%> </script> <script type="text/template" id="custom_webpage_section_view"> <%if(display=='can_edit' || (display=='editing' && content.type=='subcontainer')){%> <div class="remove_container remove_container_<%=cid%>"> <div class="controls"> <%if(controls.menu){%> <div class="dropdown"> <a class="dropdown-toggle" type="button" data-hover="dropdown" id="controlMenu" data-toggle="dropdown" aria-expanded="true"> <i class="fa fa-bars"></i> </a> <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="controlMenu"> <li role="presentation"> <a href="#" role="menuitem" tabindex="-1" title="" class="menu raised_control"> <i class="fa fa-cog"></i> Options </a> </li> <%if(controls.move_up){%> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" title="Move Up" class="move_up not_multiple_hide raised_control"> <i class="fa fa-arrow-up"></i> Move Up </a> </li> <%}%> <%if(controls.move_down){%> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" title="Move Down" class="move_down not_multiple_hide raised_control"> <i class="fa fa-arrow-down"></i> Move Down </a> </li> <%}%> <%if(controls.remove){%> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" title="Remove" class="remove raised_control"> <i class="fa fa-trash-o"></i> Delete </a> </li> <%}%> </ul> </div> <%}else{%> <!-- Cloning is disabled for now until it's fixed. --> <%if(controls.clone && false){%> <a href="#" title="Clone" class="clone raised_control"> <img src="/res/img/v2/icons/clone.png"> </a> <%}%> <%if(controls.move_up){%> <a href="#" title="Move Up" class="move_up not_multiple_hide raised_control"> <i class="fa fa-arrow-up"></i> </a> <%}%> <%if(controls.move_down){%> <a href="#" title="Move Down" class="move_down not_multiple_hide raised_control"> <i class="fa fa-arrow-down"></i> </a> <%}%> <%if(controls.remove){%> <a href="#" title="Remove" class="remove raised_control"> <i class="fa fa-trash-o"></i> </a> <%}%> <%}%> </div> </div> <%}%> </script> <script type="text/template" id="custom_webpage_section_heading_view" types="heading"> <% var heading_tag = content.heading_type || 'h3'; %> <%if(display=='viewing' || display=='can_edit'){%> <%if(display=='viewing' || content.text){%> <<%=heading_tag%>><%-content.text%></<%=heading_tag%>> <%}else{%> <span class="content_placeholder">Heading</span> <%}%> <%}else if(display=='editing'){%> <input placeholder="Heading" value="<%-content.text%>"> <%}%> </script> <script type="text/template" id="custom_webpage_section_richtext_view" types="richtext"> <%if(false){%> <%if(display=='viewing' || content.text){%> <%}else{%> <span class="content_placeholder">Richtext</span> <%}%> <%}%> <div class="html_content"><%=content.text%></div> </script> <script type="text/template" id="custom_webpage_section_widget_view" types="widget"> <%if(display=='viewing' || content.html){%> <%=content.html%> <%}else{%> <span class="content_placeholder">Widget</span> <%}%> </script> <script type="text/template" id="custom_webpage_section_widget_dialog"> <div class="row"> <div class="col-xs-12 col-sm-6"> <h4>Widgets <%= ss.fn.popover({ content: "Widgets are a block of content that pull in information from " + "other parts of your network. You can also create custom widgets. " + "To edit widgets or create your own, go to the Admin Panel > Site" + " > Configure SilkStart Widgets/Custom Widgets"}) %></h4> <div> <input id="event_listing_selector" type="radio" name="widget_selector" value="event_cpage_list"> <label for="event_listing_selector">Event List</label> </div> <div> <input id="sponsors_selector" type="radio" name="widget_selector" value="full_width_sponsors"> <label for="sponsors_selector">Full Width Sponsors</label> </div> <div> <input id="full_width_sponsors_selector" type="radio" name="widget_selector" value="sponsors"> <label for="full_width_sponsors">Sponsors</label> </div> <div> <input id="subscribe_form_selector" type="radio" name="widget_selector" value="subscribe_form"> <label for="subscribe_form_selector">Subscribe Form</label> </div> <div> <input id="recent_jobs_selector" type="radio" name="widget_selector" value="recent_jobs"> <label for="recent_jobs_selector">Recent Jobs</label> </div> <div> <input id="directory_search_selector" type="radio" name="widget_selector" value="directory_search"> <label for="directory_search_selector">Directory Search</label> </div> <div> <input id="join_now_cta_selector" type="radio" name="widget_selector" value="join_now_cta"> <label for="join_now_cta_selector">Join Now Call to Action</label> </div> <div> <input id="email_contact_form_selector" type="radio" name="widget_selector" value="email_contact_form"> <label for="email_contact_form_selector">Email Contact Form</label> </div> <div> <input id="donate_cta_selector" type="radio" name="widget_selector" value="donate_cta"> <label for="donate_cta_selector">Donation Call to Action</label> </div> <div> <input id="blog_posts_selector" type="radio" name="widget_selector" value="blog_posts"> <label for="blog_posts_selector">Blog Post List</label> </div> <% ss.data.widgets.each( function( widget ){ %> <div> <input id="<%=widget.id%>_selector" type="radio" name="widget_selector" value="widget_<%=widget.id%>"> <label for="<%=widget.id%>_selector"><%=widget.get('name')%></label> </div> <% }); %> <h4>Slideshows</h4> <% ss.data.slideshows.each( function( slideshow ){ %> <div> <input id="<%=slideshow.id%>_selector" type="radio" name="widget_selector" value="slideshow_<%=slideshow.id%>"> <label for="<%=slideshow.id%>_selector"><%=slideshow.get('name')%></label> </div> <% }); %> </div> <div class="col-xs-12 col-sm-6"> <h4>Articles</h4> <div> <input id="article_slider_selector" type="radio" name="widget_selector" value="article_slider"> <label for="article_slider_selector">All Article(s) Slider</label> </div> <div> <input id="article_list_selector" type="radio" name="widget_selector" value="article_list"> <label for="article_list_selector">All Article(s) List</label> </div> <% $.each(ss.data.article_categories, function(index, article_category){ %> <div> <input id="<%- article_category.permaid %>_selector" type="radio" name="widget_selector" value="article_list_<%=article_category.permaid%>"> <label for="<%=article_category.permaid%>_selector"><%=article_category.name%></label> </div> <% }); %> </div> </div> </script> <script type="text/template" id="custom_webpage_section_image_view" types="image"> <%if(display=='viewing' || content.url){%> <%if(content.alignment=='left' || content.alignment=='right'){%> <%if(content.is_link){%> <a class="image_link" href="<%- content.link_url %>" <%=content.open_in_new_window ? 'target="_blank"' : ''%>> <img style="float: <%=content.alignment%>;" src="<%=content.url%>" class="img-responsive"> </a> <%}else{%> <img style="float: <%=content.alignment%>;" src="<%=content.url%>" class="img-responsive"> <%}%> <%}else{%> <div style="text-align: center"> <%if(content.is_link){%> <a class="image_link" href="<%- content.link_url %>" <%=content.open_in_new_window ? 'target="_blank"' : ''%>> <img style="display: inline-block;" src="<%=content.url%>" class="img-responsive"> </a> <%}else{%> <img style="display: inline-block;" src="<%=content.url%>" class="img-responsive"> <%}%> </div> <%}%> <%}else{%> <span class="content_placeholder">Image</span> <%}%> </script> <script type="text/template" id="custom_webpage_section_image_dialog"> <div class="image_section_dialog"> <div class="row"> <div class="document_panel col-sm-9"></div> <div class="style_selections col-sm-3"> <div> <input id="wrap_text_selector" type="checkbox" name="wrap_text_checkbox" <%=!content.own_line ? 'checked="checked"' : ''%>> <label for="wrap_text_selector">Wrap Text</label> </div> <div> <input id="left_selector" type="radio" name="alignment_selector" value="left" <%=content.alignment=='left' ? 'checked="checked"' : ''%>> <label for="left_selector">Align Left</label> </div> <div> <input id="center_selector" type="radio" name="alignment_selector" value="center" <%=content.alignment=='center' ? 'checked="checked"' : ''%>> <label for="center_selector">Align Center</label> </div> <div> <input id="right_selector" type="radio" name="alignment_selector" value="right" <%=content.alignment=='right' ? 'checked="checked"' : ''%>> <label for="right_selector">Align Right</label> </div> <div> <input id="full_selector" type="radio" name="alignment_selector" value="full" <%=content.alignment=='full' ? 'checked="checked"' : ''%>> <label for="full_selector">Align Full</label> </div> <hr> <div> <input id="is_link_selector" type="checkbox" name="is_link_checkbox" <%=content.is_link ? 'checked="checked"' : ''%>> <label for="is_link_selector">Image is Link</label> </div> </div> </div> <div class="link_options_js panel panel-default link_options <%=content.is_link ? '' : 'hidden'%>"> <div class="panel-heading"><h3 class="blocky-panel-header">Link Options</h3></div> <div class="panel-body form-horizontal"> <div class="form-group"> <label class="control-label col-sm-4 next_to_input" for="link_url">Image Link (full URL):</label> <div class="col-sm-8"> <input id="link_url" class="url form-control" name="link_url" value="<%- content.link_url %>"> </div> </div> <div class="form-group"> <div class="col-sm-offset-4"> <div class="checkbox"> <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> </div> </div> </div> </div> </div> </div> </script> <script type="text/template" id="custom_webpage_section_html_view"> <%if(display=='viewing' || content.html){%> <div class="html_container"></div> <%}else{%> <span class="content_placeholder">HTML (Advanced)</span> <%}%> <%if(display=='editing'){%> <textarea><%=content.html%></textarea> <%}%> </script> <script type="text/template" id="custom_webpage_section_html_slider_view" types="html_slider"> <%if(display=='viewing' || (content.html_tabs.length && content.html_tabs[0])){%> <div class="html-slider flexslider"> <ul class="slides"> <%for(var i=0; i<content.html_tabs.length; i++){%> <li> <div class="content_container"> <%if(i==0){%> <div class="tab_content content_<%-i%> shown"></div> <%}else{%> <div class="tab_content content_<%-i%> not_shown"></div> <%}%> </div> </li> <%}%> </ul> </div> <%}else{%> <span class="content_placeholder">HTML Slider (Advanced)</span> <%}%> <%if(display=='editing'){%> <a class="preview_close"><i class="fa fa-times"></i></a> <div class="content_container"> <div class="tab_content content_preview not_shown"></div> </div> <div class="html_slider_editing_container bootstrap_nav"> <ul class="nav nav-tabs"> <%for(var i=0; i<content.html_tabs.length; i++){ var html_tab = content.html_tabs[i]; var active_class = i==0 ? "active":""; %> <li class="<%=active_class%> tab"><a href="#">Content <%=i+1%></a></li> <%}%> </ul> <textarea><%=content.html_tabs.length ? content.html_tabs[0] : ''%></textarea> <div class="other_controls"> <a class="button preview">Preview</a> <span> <label>Interval (ms):</label> <input class="interval" value="<%-content.interval || 4000%>"> </span> </div> </div> <%}%> </script> <script type="text/template" id="custom_webpage_section_subcontainer_view"> <div class="container"><div class="container_holder panel panel-default"></div></div> </script> <script type="text/template" id="custom_webpage_section_style_dialog"> <% var style = content.style || "subcontainer_style1"; %> <div id="cpage_section_style_dialog"> <div class="row"> <div class="inputs col-sm-3"> <div> <label> <input type="radio" name="style_selector" value="subcontainer_style1" <%=style=="subcontainer_style1" ? 'checked="checked"':''%>> <span>Style 1</span> </label> </div> <div> <label> <input type="radio" name="style_selector" value="subcontainer_style2" <%=style=="subcontainer_style2" ? 'checked="checked"':''%>> <span>Style 2</span> </label> </div> <div> <label> <input type="radio" name="style_selector" value="subcontainer_style3" <%=style=="subcontainer_style3" ? 'checked="checked"':''%>> <span>Style 3</span> </label> </div> <div> <label> <input type="radio" name="style_selector" value="subcontainer_style4" <%=style=="subcontainer_style4" ? 'checked="checked"':''%>> <span>Style 4</span> </label> </div> </div> <div class="example col-sm-9 custom_webpage <%=ss_context.page_class%>"> <div class="custom_webpage_section_view custom_webpage_section_subcontainer_view <%=style%>"> <div class="container_holder not_empty panel panel-default"> <div class="custom_webpage_section_view custom_webpage_section_heading_view subcontainer_style1 panel-heading"> <h3>Title</h3> </div> <div class="custom_webpage_section_view custom_webpage_section_richtext_view subcontainer_style1 panel-body"> <div class="html_content">Lorem ipsum dolor sit amet.</div> </div> </div> </div> </div> </div> </div> </script> <script type="text/template" id="custom_webpage_view_additions"> <%if(draft){%> <div class="alert alert-warning alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> DRAFT </div> <%}%> <%if(display!='viewing'){%> <%if(draft){%> <div class="unchanged_publish"> <a class="btn btn-info publish_page" data-simple_publish="true">Publish</a> </div> <% } %> <div class="unsaved_container"> <a class="btn btn-primary unsaved_button">Save Changes</a> <a class="btn btn-info publish_page">Save and Publish</a> <a class="btn btn-primary loading_button submitting">Saving...&nbsp;<i class="fa fa-spinner fa-spin"></i></a> </div> <div class="cpages-options-menu"> <div class="left_fixed_control cpage_app_main_controls"> <a href="#" class="menu_area"> <img src="/res/img/v2/OptionButton.png"> </a> </div> <div class="custom_page_controls"> <div class="ss_icon_menu main_page_controls btn-group-vertical"> <%if(draft){%> <a href="#" class="btn btn-default publish_page" data-simple_publish="true"> <i class="fa fa-thumbs-o-up"></i>&nbsp; <span>Publish</span> </a> <%} else { %> <a href="#" class="btn btn-default unpublish_page"> <i class="fa fa-thumbs-o-down"></i>&nbsp; <span>Unpublish Your Page</span> </a> <% } %> <a href="#" class="save_page btn btn-default"> <i class="fa fa-save"></i>&nbsp; <span>Save Your Page</span> </a> <a href="<%=versioned_url%>" target="_blank" class="btn btn-default preview_page"> <i class="fa fa-laptop"></i>&nbsp; <span>Preview This Page</span> </a> <a href="#" class="view_archive btn btn-default"> <i class="fa fa-archive"></i>&nbsp; <span>See Other Versions</span> </a> <a href="#" class="change_template btn btn-default"> <i class="fa fa-exchange"></i>&nbsp; <span>Switch Templates</span> </a> <a href="#" class="change_page_color btn btn-default"> <i class="fa fa-gear"></i>&nbsp; <span>Miscellaneous Page Options</span> </a> <a href="#" class="set_permissions btn btn-default"> <i class="fa fa-globe"></i>&nbsp; <span>Set Your Page Visibility</span> </a> <a href="#" class="delete_page btn btn-default"> <i class="fa fa-times"></i>&nbsp; <span>Delete Your Page</span> </a> </div> </div> </div> <%}%> </script> <div class="sign_in_modal modal fade" id="sign_in_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> <h4 class="modal-title">Log In</h4> </div> <div class="modal-body"> <div id="sign_in_div"> <div class="sign_in_form"> <form method="post" id="login_form_dropdown" class="form-horizontal" action="/auth/login" role="form"> <input type='hidden' name='associate_with_social_network' value=''> <input type="hidden" name="after_login" value="/cpages/3rd-party-testing-labs"> <div class="form-group"> <label for="member-username-input" class="col-sm-2 control-label">Email:</label> <div class="col-sm-10"> <input type="text" id="member-username-input" class="form-control required" placeholer="email" name="username_dropdown" value=""> </div> </div> <div class="form-group"> <label for="member-password-input" class="col-sm-2 control-label">Password:</label> <div class="col-sm-10"> <input class="form-control required" id="member-password-input" type="password" name="password_dropdown"> <span class="help-block"> <div class="ml-5 pull-right"> <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. 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="fa fa-question-circle icon-question-sign"></span></a> </div> <a href="/auth/forgotten_password" class="pull-right"> Forgot your password? </a> </span> </div> </div> <div class="form-group"> <div class="col-xs-12"> <button type="submit" class="btn btn-primary pull-right">Log In</button> </div> </div> </form> </div> <script> $form = $("#login_form_dropdown"); var validator = $form.validate({ignore:[],focusInvalid:true}); </script> </div> </div> <div class="modal-footer center"> Not a member? <a href="https://mocanntrade.silkstart.com/cpages/membership">Sign up</a>. </div> </div> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10