| Index: pages/committee/members.tmpl |
| =================================================================== |
| rename from pages/committee/members/index.md |
| rename to pages/committee/members.tmpl |
| --- a/pages/committee/members/index.md |
| +++ b/pages/committee/members.tmpl |
| @@ -1,40 +1,397 @@ |
| title=Members | The Acceptable Ads Committee |
| -description=Meet the Acceptable Ads Committee. |
| -breadcrumb=Members |
| +description=A list of all Representatives and supporting Members that make up the Acceptable Ads Committee. |
| parent=committee/index |
| custom=1 |
| -<style type="text/css"> |
| - .card |
| - { |
| - border-bottom: 0px; |
| - } |
| +{% block head %} |
| + <style> |
| + @media(min-width: 768px) |
| + { |
| + #committee-structure |
| + { |
| + padding-top: 25%; |
| + margin: 0 auto; |
| + max-width: 70%; |
| + } |
| + } |
| + |
| + .group-list h4 |
| + { |
| + margin-top: 40px; |
| + padding: 8px 22px; |
| + background-color: #E1E1E1; |
| + } |
| + |
| + .group-list dl |
| + { |
| + margin: 22px; |
| + } |
| + |
| + .group-list dt |
| + { |
| + margin: 32px 0 26px 0; |
| + color: #424242; |
| + text-transform: none; |
| + } |
| + |
| + .group-list dd |
| + { |
| + margin: 0; |
| + } |
| + |
| + .member-list |
| + { |
| + display: block; |
| + width: 100%; |
| + margin: 0; |
| + overflow: auto; |
| + } |
| + |
| + .member-list li |
| + { |
| + width: 100%; |
| + float: left; |
| + padding-left: 0px; |
| + margin-bottom: 1em; |
| + } |
| - .card .summary |
| - { |
| - height: 140px; |
| - } |
| + @media(min-width: 768px) |
| + { |
| + .member-list li |
| + { |
| + min-height: 3em; |
| + width: 50%; |
| + } |
| + } |
| + |
| + @media(min-width: 992px) |
| + { |
| + .member-list li |
| + { |
| + width: 33.3333333%; |
| + } |
| + } |
| + |
| + .member-list li:before |
| + { |
| + display: none; |
| + } |
| + </style> |
| +{% endblock %} |
| - .card h3 |
| - { |
| - height: auto; |
| - } |
| +{% set coalitions = { |
| + "for-profit": { |
| + "title": "FOR-PROFIT COALITION", |
| + "description": "This Coalition consists of stakeholders that can be classified as organizations primarily driven by generating profits. The following groups form the For-Profit Coalition: Advertisers, Ad-Tech Agencies, Advertising Agencies, and Publishers and Content Creators.", |
| + "groups": [ |
| + "Advertisers", |
| + "Ad Tech Agencies", |
| + "Advertising Agencies", |
| + "Publishers & Content Creators", |
| + ], |
| + }, |
| + "expert": { |
| + "title": "EXPERT COALITION", |
| + "description": "This Coalition consists of stakeholders who primarily focus on specific issues relevant to their area of expertise. These experts bring a unique and objective perspective to the AAC. The following groups form the Expert Coalition: Creative Agents, Researchers and Academics and User Agents.", |
| + "groups": [ |
| + "Creative Agents", |
| + "Researchers & Academics", |
| + "User Agents", |
| + ], |
| + }, |
| + "user-advocate": { |
| + "title": "USER ADVOCATE COALITION", |
| + "description": "This Coalition consists of stakeholders that can be classified as entities primarily driven by protecting the rights of online users. The following Member Groups form the User Advocate Coalition: Digital Rights Organizations and Individual Users.", |
| + "groups": [ |
| + "Digital Rights Organizations", |
| + "Users", |
| + ], |
| + }, |
| +} %} |
| - html[dir="ltr"] .card |
| +{% set members = [ |
| + { |
| + "group": "Advertisers", |
| + "position": "Representative", |
| + "name": "Breanna Fowler", |
| + "title": "Strategic Partnerships & Advertising", |
| + "org": "Dell", |
| + }, |
| + { |
| + "group": "Advertising Agencies", |
| + "position": "Representative", |
| + "name": "Gabriel Cheng", |
| + "title": "VP Strategy Growth & Partnerships", |
| + "org": "M&C Saatchi Mobile", |
| + }, |
| + { |
| + "group": "Advertising Agencies", |
| + "position": "Member", |
| + "name": "Kevin Vanvalkenburgh", |
| + "title": "Vice President of Connections Planning", |
| + "org": "The Tombras Group", |
| + }, |
| + { |
| + "group": "Advertising Agencies", |
| + "position": "Member", |
| + "name": "Tom Rathbone", |
| + "title": "Head of Technology", |
| + "org": "Schaaf-PartnerCentric", |
| + }, |
| + { |
| + "group": "Advertising Agencies", |
| + "position": "Member", |
| + "name": "Christoph Bornschein", |
| + "title": "CEO/Founder", |
| + "org": "TLGG", |
| + }, |
| + { |
| + "group": "Advertising Agencies", |
| + "position": "Member", |
| + "name": "Will Perkins", |
| + "title": "VP Media", |
| + "org": "Look Listen", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Representative", |
| + "name": "Ari Levenfeld", |
| + "title": "Senior Director of Privacy and Inventory Quality", |
| + "org": "Rocket Fuel Inc.", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Todd Garland", |
| + "title": "Founder", |
| + "org": "BuySellAds", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Sebastien Bock", |
| + "title": "GVP Tech & Product Programmatic & Data", |
| + "org": "Rakuten Marketing", |
| + }, |
| { |
| - border-left: 0px; |
| - } |
| - |
| - html[dir="rtl"] .card |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Jon Malach", |
| + "title": "CEO", |
| + "org": "Native Ads, Inc.", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Francine Hardaway", |
| + "title": "Director of Marketing", |
| + "org": "ZEDO", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Henry Lau", |
| + "title": "Head of Partnerships", |
| + "org": "Instinctive", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Alex Calic", |
| + "title": "Chief Revenue Officer", |
| + "org": "The Media Trust", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Henrik Lohk", |
| + "title": "Co-founder", |
| + "org": "Adtoma AB", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "James Sciolto", |
| + "title": "Co-Founder & Chief Marketing Officer", |
| + "org": "Bidio", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Nicole Pruess", |
| + "title": "Global Managing Director, Publisher Marketplace", |
| + "org": "Criteo", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Mat Bennett", |
| + "title": "Managing Director", |
| + "org": "OKO Digital", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Tom Gabriele", |
| + "title": "Co-Founder", |
| + "org": "WowYow Inc.", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Dan Greenberg", |
| + "title": "Founder & CEO", |
| + "org": "Sharethrough", |
| + }, |
| + { |
| + "group": "Ad Tech Agencies", |
| + "position": "Member", |
| + "name": "Eric Simon", |
| + "title": "COO", |
| + "org": "Skydeo", |
| + }, |
| { |
| - border-right: 0px; |
| - } |
| -</style> |
| + "group": "Creative Agents", |
| + "position": "Representative", |
| + "name": "Jon Lefley", |
| + "title": "Creative Director", |
| + "org": "Saatchi & Saatchi", |
| + }, |
| + { |
| + "group": "Creative Agents", |
| + "position": "Member", |
| + "name": "Tobias Eidem", |
| + "title": "BrandGlobe and former chairman of Sweden’s KIA-index", |
| + "org": "BrandGlobe", |
| + }, |
| + { |
| + "group": "Digital Rights Organizations", |
| + "position": "Representative", |
| + "name": "Holmes Wilson", |
| + "title": "Co-Founder/Co-director", |
| + "org": "Fight for the Future", |
| + }, |
| + { |
| + "group": "Publishers & Content Creators", |
| + "position": "Representative", |
| + "name": "Gavin Hall", |
| + "title": "CTO", |
| + "org": "TED", |
| + }, |
| + { |
| + "group": "Publishers & Content Creators", |
| + "position": "Member", |
| + "name": "Paul Lomax", |
| + "title": "CTO", |
| + "org": "Dennis Media", |
| + }, |
| + { |
| + "group": "Publishers & Content Creators", |
| + "position": "Member", |
| + "name": "Christian Hendricks", |
| + "title": "Founder", |
| + "org": "Local Media Consortium", |
| + }, |
| + { |
| + "group": "Publishers & Content Creators", |
| + "position": "Member", |
| + "name": "Scott Messer", |
| + "title": "VP Content Channels", |
| + "org": "Leaf Group", |
| + }, |
| + { |
| + "group": "Publishers & Content Creators", |
| + "position": "Member", |
| + "name": "Loic Dussart", |
| + "title": "COO", |
| + "org": "KOL", |
| + }, |
| + { |
| + "group": "Researchers & Academics", |
| + "position": "Representative", |
| + "name": "Fran Howarth", |
| + "title": "Security Analyst", |
| + "org": "Bloor Analyst Group", |
| + }, |
| + { |
| + "group": "User Agents", |
| + "position": "Representative", |
| + "name": "Kenny Ye (叶智聪)", |
| + "title": "Director of International Business Development, Alibaba Mobile Group", |
| + "org": "UC Web", |
| + }, |
| +] %} |
| -<div class="container" markdown="1"> |
| -# {{members-heading[Members Heading] Members}} |
| +{% macro member_list(group, position) -%} |
| + {% set count = [] %} |
| + {% for member in members %} |
| + {% if member.group == group and member.position == position %} |
| + {% if (count | length) == 0 %} |
| + <ul class="member-list"> |
| + {% endif %} |
| + {% set count = count.append(None) %} |
| + <li> |
| + <strong>{{ member.name }}</strong><br> |
| + {{ member.title }}, <em>{{ member.org }}</em> |
| + </li> |
| + {% endif %} |
| + {% endfor %} |
| + {% if (count | length) > 0 %} |
| + </ul> |
| + {% endif %} |
| + {% if position == "Member" or (count | length) < 1 %} |
| + <p><a class="btn-primary" href="committee/apply">{{ "Apply" | translate("apply-button", "button label") }}</a></p> |
| + {% endif %} |
| +{% endmacro %} |
| + |
| +{% macro group_list(group) -%} |
| + <section class="group-list"> |
| + <h4>{{ group | translate("group-name-heading", "heading") }}</h4> |
| + <dl> |
| + <dt>{{ "Representative" | translate("representative-heading", "heading") }}</dt> |
| + <dd>{{ member_list(group, "Representative") }}</dd> |
| + </dl> |
| + <dl> |
| + <dt>{{ "Members" | translate("members-heading", "heading") }}</dt> |
| + <dd>{{ member_list(group, "Member") }}</dd> |
| + </dl> |
| + </section> |
| +{%- endmacro %} |
| ---- |
| -</div> |
| +{% macro coalition_section(id) -%} |
| + <section class="section"> |
| + <h3 class="h2">{{ coalitions[id].title | translate("{{ id }}-heading", "heading") }}</h3> |
| + <p class="col-6">{{ coalitions[id].description | translate("{{ id }}-intro") }}</p> |
| + {% for group in coalitions[id].groups %} |
| + {{ group_list(group) }} |
| + {% endfor %} |
| + </section> |
| +{% endmacro %} |
| -<? include members/all-members ?> |
| +<section class="container"> |
| + <div class="row"> |
| + <div class="col-6"> |
| + <h1>{{ "Members" | translate("members-heading", "heading") }}</h1> |
| + <hr> |
| + <p>{{ "The Acceptable Ads Committee is divided into three Coalitions, with each faction consisting of several Members. Each group includes a Representative and multiple supporting Members." | translate("members-intro-2") }}</p> |
| + <p>{{ "Below is a list of all current Representatives and supporting Members, broken down by Coalition." | translate("members-intro-2") }}</p> |
| + </div> |
| + <aside class="col-6"> |
| + <img id="committee-structure" class="block" alt="{{ "Acceptable Ads Committee Structure" | translate("featured-image-alt", "Image alt text") }}" src="/img/png/blog/acceptable-ads-committee-structure.png" /> |
| + </aside> |
| + </div> |
| +</section> |
| + |
| +<section> |
| + |
| + <div class="bg-accent"> |
| + <h2 class="center h3 p-y-md m-a-md">{{ "Meet the Acceptable Ads Committee" | translate("committee-heading", "heading") }}</h2> |
| + </div> |
| + |
| + <div class="container"> |
| + {% for coalition in coalitions %} |
| + {{ coalition_section(coalition) }} |
| + {% endfor %} |
| + </div> |
| + |
| +</section> |