diff --git a/attack-theme/static/images/attackcon2018-sponsors/attackiq.png b/attack-theme/static/images/attackcon2018-sponsors/attackiq.png new file mode 100644 index 00000000000..a2a20d90b4a Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/attackiq.png differ diff --git a/attack-theme/static/images/attackcon2018-sponsors/crowdstrike.png b/attack-theme/static/images/attackcon2018-sponsors/crowdstrike.png new file mode 100644 index 00000000000..70ec25c3358 Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/crowdstrike.png differ diff --git a/attack-theme/static/images/attackcon2018-sponsors/endgame.png b/attack-theme/static/images/attackcon2018-sponsors/endgame.png new file mode 100644 index 00000000000..1b39bc4532c Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/endgame.png differ diff --git a/attack-theme/static/images/attackcon2018-sponsors/mcafee.png b/attack-theme/static/images/attackcon2018-sponsors/mcafee.png new file mode 100644 index 00000000000..1b5625dce69 Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/mcafee.png differ diff --git a/attack-theme/static/images/attackcon2018-sponsors/redcanary.png b/attack-theme/static/images/attackcon2018-sponsors/redcanary.png new file mode 100644 index 00000000000..f0623ffc8b4 Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/redcanary.png differ diff --git a/attack-theme/static/images/attackcon2018-sponsors/safebreach.png b/attack-theme/static/images/attackcon2018-sponsors/safebreach.png new file mode 100644 index 00000000000..f16c98e7ab2 Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/safebreach.png differ diff --git a/attack-theme/static/images/attackcon2018-sponsors/tripwire.png b/attack-theme/static/images/attackcon2018-sponsors/tripwire.png new file mode 100644 index 00000000000..562bf176c51 Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/tripwire.png differ diff --git a/attack-theme/static/images/attackcon2018-sponsors/verodin.png b/attack-theme/static/images/attackcon2018-sponsors/verodin.png new file mode 100644 index 00000000000..ad4c02ed4e5 Binary files /dev/null and b/attack-theme/static/images/attackcon2018-sponsors/verodin.png differ diff --git a/attack-theme/static/style/_layouts.scss b/attack-theme/static/style/_layouts.scss index 8ccc5563349..2a020cabccd 100644 --- a/attack-theme/static/style/_layouts.scss +++ b/attack-theme/static/style/_layouts.scss @@ -578,6 +578,10 @@ pre { width: 75%; } +.card-attackcon { + width: 90%; +} + .card-data { margin-bottom: rem(0.2); } @@ -845,6 +849,15 @@ pre { } } +.attackcon-columns { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: flex-start; +} + +/* Ensure the sponsors block is below and not affected by the top image */ + /*Card Blocks*/ // container of groups of cards .card-block { @@ -1133,17 +1146,26 @@ div#sidebars { /* attackcon page */ .attackcons { border-top-width: 0px; + .sponsors{ + flex: 1; + padding-left: 15px; + } .sponsors-block { background: #efefef; text-align: center; display: flex; justify-content: space-evenly; flex-wrap: wrap; + flex-direction: column; + width: 200%; .img-container { margin: 10px; + flex: 1 1 20%; + box-sizing: border-box; img { - width: 80%; + width: 100%; margin: auto; + height: auto; } } } diff --git a/attack-theme/templates/general/attackcon-overview.html b/attack-theme/templates/general/attackcon-overview.html index 6a5dff97359..2d11363069b 100644 --- a/attack-theme/templates/general/attackcon-overview.html +++ b/attack-theme/templates/general/attackcon-overview.html @@ -1,4 +1,4 @@ -{% extends "general/two-column.html" %} +{% extends "general/two-column.html" %} {% set active_page = "resources" -%} {% set title = "MITRE ATT&CKcon - " + page.title + " | MITRE ATT&CK®" -%} {% set con = page.data | from_json %} @@ -10,114 +10,121 @@ {% block innerright %} {{ super () }} - + -
- {% set conID = "-".join(con.date.split(' ')) %} -
- {% if "banner_img" in con %} -

- -

- {% endif %} +
+ {% set conID = "-".join(con.date.split(' ')) %} +
+ {% set ifSponsor = "sponsors_img_list" in con %} + {% if "banner_img" in con %} +

+ +

+ {% endif %} - {% if "description" in con %} -

{{con.description}}

- {% endif %} - {% if "blogpost" in con %} -

Click here to read our blog post about {{con.title}}! External site

- {% endif %} -
-
- + {% if "description" in con %} +

{{con.description}}

+ {% endif %} + {% if "blogpost" in con %} +

Click here to read our blog post about {{con.title}}! External site

+ {% endif %} +
+
+
+
Presentations
{% for presentation in con.presentations %} {% set isPanel = "moderator" in presentation %} -
-
-
- -
- {{ presentation.title }} -
-
-

-
- {% if not isPanel %} - {% for presenterGroup in presentation.presenters %}{% if loop.index > 1 %}; {% endif %}{{ " and ".join(presenterGroup.names)}}{% if "organization" in presenterGroup %}, {{presenterGroup.organization}}{% endif %}{% endfor %} - {% else %} - Moderated by {{presentation.moderator.name}}, {{presentation.moderator.organization}} - {% endif %} -
-

-
- {% if not isPanel %} - {{presentation.description}} - {% else %} - Panelists: -
    - {% for panelist in presentation.panelists %} -
  • - {{panelist}} -
  • - {% endfor %} -
- {{presentation.moderator.name}} moderates a panel that discusses:

-
    - {% for topic in presentation.topics %} -
  • - {{topic}} -
  • - {% endfor %} -
- {% endif %} -
-

-
- {% if "video" in presentation %} - - - - {% endif %} - {% if "slides" in presentation %} - - - - {% endif %} +
+
+
+ +
+ {{ presentation.title }}
+
+

+
+ {% if not isPanel %} + {% for presenterGroup in presentation.presenters %}{% if loop.index > 1 %}; {% endif + %}{{ " and ".join(presenterGroup.names)}}{% if "organization" in presenterGroup %}, + {{presenterGroup.organization}}{% endif %}{% endfor %} + {% else %} + Moderated by {{presentation.moderator.name}}, {{presentation.moderator.organization}} + {% endif %} +
+

+
+ {% if not isPanel %} + {{presentation.description}} + {% else %} + Panelists: +
    + {% for panelist in presentation.panelists %} +
  • + {{panelist}} +
  • + {% endfor %} +
+ {{presentation.moderator.name}} moderates a panel that discusses:

+
    + {% for topic in presentation.topics %} +
  • + {{topic}} +
  • + {% endfor %} +
+ {% endif %} +
+

+
+ {% if "video" in presentation %} + + + + {% endif %} + {% if "slides" in presentation %} + + + + {% endif %}
+
{% endfor %}
- {% if "sponsors_img" in con %} +
+ {% if "sponsors_img" in con %}
-

Sponsors

+
Sponsors
- {% elif "sponsors_img_list" in con %} + {% elif "sponsors_img_list" in con %}
-

Sponsors

+
Sponsors
{% for sponsor_img in con.sponsors_img_list %}
@@ -126,9 +133,12 @@

Sponsors

{% endfor %}
- {% endif %} + {% endif %} +
+ +
{% endblock %} diff --git a/data/attackcon.json b/data/attackcon.json index ce4c6841f6e..d22d54708d3 100644 --- a/data/attackcon.json +++ b/data/attackcon.json @@ -1251,7 +1251,17 @@ "description": "Thank you for all the passion and engagement that made ATT&CKcon such a success. Over 250 of you joined us in person at MITRE’s McLean campus for our first ever event that was live streamed to more than 1,000 people at its peak. Our videos have been viewed over 10,000 times already, and there’s a lot of energy around the community to keep improving the ATT&CK framework. Please continue to watch and share these presentations.", "blogpost": "https://medium.com/mitre-attack/attackcon-2018-501d62566233", "banner_img": "/theme/images/attckcon-banner.jpg", - "sponsors_img": "/theme/images/ATTACKcon-sponsors-final.jpg", + "sponsors_img_list": [ + "/theme/images/attackcon2018-sponsors/mcafee.png", + "/theme/images/attackcon2018-sponsors/attackiq.png", + "/theme/images/attackcon2018-sponsors/endgame.png", + "/theme/images/attackcon2018-sponsors/tripwire.png", + "/theme/images/attackcon2018-sponsors/safebreach.png", + "/theme/images/attackcon2018-sponsors/crowdstrike.png", + "/theme/images/attackcon2018-sponsors/redcanary.png", + "/theme/images/attackcon2018-sponsors/verodin.png" + + ], "presentations": [ { "title": "Advancing Infosec, Keynote Presentation",