diff options
author | Vincent Ambo <tazjin@gmail.com> | 2018-05-21T21·17+0200 |
---|---|---|
committer | Vincent Ambo <github@tazj.in> | 2018-05-22T07·45+0200 |
commit | fb9ea437e9fd47d2b4cb432ad6fc576d4a08614f (patch) | |
tree | 26ca843110b11371ab8e6d2fb604995385a18be0 | |
parent | 0bfc8fbf8b652d79ce43df2d1a492dfe539d967e (diff) |
feat(templates): Add new thread view with MDL design
-rw-r--r-- | static/styles.css | 37 | ||||
-rw-r--r-- | templates/index.html | 1 | ||||
-rw-r--r-- | templates/thread.html | 161 |
3 files changed, 137 insertions, 62 deletions
diff --git a/static/styles.css b/static/styles.css index 929e61b6015d..66b3200fd612 100644 --- a/static/styles.css +++ b/static/styles.css @@ -94,3 +94,40 @@ html, body { .converse section.section--center { max-width: 860px; } +.converse .mdl-card .avatar-card { + margin-left: auto; + margin-right: auto; + margin-top: 30px; +} +.mobile-avatar { + width: 30px; + border-radius: 8px; + margin-bottom: 5px; +} +.mobile-date { + text-decoration: none; +} +.converse .mdl-card .post-box { + margin: 20px; +} +.converse .mdl-card .post-actions { + display: flex; + padding-right: 5px; +} +.post-action { + margin: 5px; + margin-bottom: 10px; +} +.converse section.post-section { + padding: 5px; +} +.post-date { + text-decoration: none; + font-size: 80%; +} +.mdl-layout__content { + flex: 1 0 auto; +} +.converse .reply-box { + padding-top: 10px; +} diff --git a/templates/index.html b/templates/index.html index 12369d379238..c104938996e1 100644 --- a/templates/index.html +++ b/templates/index.html @@ -44,7 +44,6 @@ {% for thread in threads -%} <li class="mdl-list__item thread-list-item mdl-list__item--three-line"> <a class="thread-link mdl-color-text--grey-800" href="/thread/{{ thread.id }}"> - <span class="mdl-list__item-primary-content {% if not loop.last %}thread-divider{% endif %}"> <button class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored mdl-list__item-icon"> <i class="material-icons">{% if thread.sticky -%} announcement {%- else -%} library_books{% endif %}</i> diff --git a/templates/thread.html b/templates/thread.html index 957a39d8cb34..c3902a456f9b 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -1,71 +1,110 @@ <!doctype html> <html lang="en"> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> - <meta http-equiv="Content-Security-Policy" content="script-src 'self';"> - <!-- Bootstrap CSS --> - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> - <!-- Custom CSS additions --> - <style>img { max-width:100%; height:auto; }</style> - <title>Converse: {{ title | safe }}</title> - <!-- Syntax highlighting for code --> - <link rel="stylesheet" href="/static/highlight.css"> - <script src="/static/highlight.js"></script> - </head> - <body> - <header> - <nav class="navbar navbar-light bg-light justify-content-between mb-3"> - <a class="navbar-brand" href="/"> - <h2>Converse</h2> - </a> - <a class="btn btn-outline-secondary my-2" href="/">Back to index</a> - </nav> - </header> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0"> + <title>Converse: {{ title | safe }}</title> - <div class="container"> - <div class="list-group d-flex flex-column"> - <div class="list-group-item d-flex row"> - <h3>{{ title | safe }}</h3> - </div> + <!-- TODO --> + <meta http-equiv="Content-Security-Policy" content="script-src https://code.getmdl.io 'self';"> + <!-- <link rel="shortcut icon" href="images/favicon.png"> --> - {% for post in posts -%} - <div id="post-{{ post.id}}" class="list-group-item d-flex row pl-0"> - <div class="d-flex flex-column border-right col-2"> - <img class="mx-auto" src="https://www.gravatar.com/avatar/{{ post.author_gravatar }}?d=monsterid&s=160" style="width: 80px;"/> - <span class="mx-auto text-center"><strong>{{ post.author_name }}</strong></span> - </div> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Ubuntu"> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Ubuntu+Mono"> + <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> + <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.blue_grey-orange.min.css" /> + <link rel="stylesheet" href="/static/styles.css"> + <!-- Syntax highlighting for code --> + <link rel="stylesheet" href="/static/highlight.css"> + <style>img { max-width:100%; height:auto; }</style> + <script src="/static/highlight.js"></script> + </head> + <body class="converse mdl-base mdl-color-text--grey-700 mdl-color--grey-100"> + <div class="mdl-layout mdl-layout--fixed-header mdl-js-layout mdl-color--grey-100"> + <header class="mdl-layout__header mdl-color--primary-dark"> + <div class="mdl-layout__header-row"> + <a href="/" class="mdl-layout-title mdl-color-text--blue-grey-50 cvs-title">Converse: {{ title | safe }}</a> + <div class="mdl-layout-spacer"></div> + <a href="/"> + <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--accent mdl-js-ripple-effect"> + Back to index + </button> + </a> + </div> + </header> + <main class="mdl-layout__content"> + {% for post in posts -%} + <section id="post-{{ post.id }}" class="section--center mdl-grid mdl-grid--no-spacing"> + {# card to display avatars on desktop #} + <div class="mdl-card mdl-shadow--2dp mdl-cell--2-col mdl-cell--hide-phone mdl-cell--hide-tablet avatar-box"> + <div class="avatar-card"> + <img src="https://www.gravatar.com/avatar/{{ post.author_gravatar }}?d=monsterid&s=160" style="width: 80px;"/> + <br> + <span class="user-name">{{ post.author_name }}</span> + </div> + </div> + {# card for main post content #} + <div class="mdl-card mdl-shadow--2dp post-box mdl-cell--10-col"> + {# card section for displaying user & post information on mobile #} + <div class="mdl-card__supporting-text mdl-card--border mdl-cell--hide-desktop mdl-color-text--blue-grey-500 mobile-user"> + <img class="mobile-avatar" src="https://www.gravatar.com/avatar/{{ post.author_gravatar }}?d=monsterid"/> + <span> {{ post.author_name }} posted on </span> + <a class="mdl-color-text--blue-grey-500 mobile-date" href="/thread/{{ id }}#post-{{ post.id }}">{{ post.posted }}</a> + </div> + {# card section to display post date on desktop #} + <div class="mdl-card__menu mdl-cell--hide-phone mdl-cell--hide-tablet"> + <a class="post-date mdl-color-text--blue-grey-500" href="/thread/{{ id }}#post-{{ post.id }}">{{ post.posted }}</a> + </div> + {# card section for actual post content #} + <div class="mdl-card__supporting-text post-box">{{ post.body | safe }}</div> + {# card section for post actions #} + <div class="mdl-card__actions post-actions"> + <div class="mdl-layout-spacer"></div> - <div class="align-self-stretch col">{{ post.body | safe }}</div> + {#%- TODO if post.editable %#} + <!-- <a href="/post/{{ post.id }}/edit" class="badge badge-light border m-1 p-1">Edit</a> --> + {#% endif -%#} - <div class="d-inline-flex flex-column align-items-end ml-auto col-1"> - <a href="/thread/{{ id }}#post-{{ post.id }}" class="ml-auto"> - <small class="text-muted float-right">{{ post.posted }}</small> - </a> + {% if post.editable %} + <a href="/post/{{ post.id }}/edit" class="mdl-button mdl-js-button mdl-button--accent" id="edit-post-{{ post.id }}" aria-label="Edit post"> + <i class="material-icons">edit</i> + <span class="mdl-tooltip mdl-tooltip--top" for="edit-post-{{ post.id }}">Edit post</span> + </a> + {% endif %} + <button class="mdl-button mdl-js-button mdl-button--accent" id="quote-post-{{ post.id }}" aria-label="Quote post" disabled> + <i class="material-icons">reply</i> + <span class="mdl-tooltip mdl-tooltip--top" for="quote-post-{{ post.id }}">Quote post</span> + </button> + </div> + </div> + </section> + {% endfor %} - <div class="d-inline-flex flex-row mt-auto ml-auto"> - {%- if post.editable %} - <a href="/post/{{ post.id }}/edit" class="badge badge-light border m-1 p-1">Edit</a> - {% endif -%} - <a href="#quote" class="badge badge-light border m-1 p-1">Quote</a> - </div> - </div> - </div> - {%- endfor %} + {# section for writing a response on the same page #} + <section id="post-reply" class="section--center mdl-grid mdl-grid--no-spacing reply-box"> + <div class="mdl-card mdl-shadow--2dp mdl-cell--12-col"> + <form id="reply-form" action="/thread/reply" method="post"> + <input type="hidden" id="thread_id" name="thread_id" value="{{ id }}"> - <div class="list-group-item flex-column align-items-start row"> - <form id="reply-form" action="/thread/reply" method="post"> - <input type="hidden" id="thread_id" name="thread_id" value="{{ id }}"> - <label for="body">You can use <strong>Markdown</strong>!</label> - <div class="input-group"> - <textarea class="form-control" id="post" name="post" aria-label="thread response" rows="10"></textarea> - <div class="input-group-append"> - <button class="btn btn-primary" type="submit">Post!</button> - </div> - </div> - </form> + <div class="mdl-card__supporting-text"> + <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label mdl-cell--12-col"> + <textarea class="mdl-textfield__input" type="text" rows="8" id="post" name="post" aria-label="reply content"></textarea> + <label class="mdl-textfield__label" for="post">Write a reply</label> + </div> + <button class="mdl-button mdl-button--raised mdl-button--primary mdl-js-button mdl-js-ripple-effect" type="submit"> + Post! + </button> + </div> + </form> + </div> + </section> + </main> + <footer class="mdl-mini-footer"> + <div class="mdl-mini-footer--right-section"> + <p>Powered by <a href="https://github.com/tazjin/converse">Converse</a></p> + </div> + </footer> </div> - </div> - </div> - </body> + <script src="https://code.getmdl.io/1.3.0/material.min.js"></script> + </body> </html> |